16bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines// RUN: %clang_cc1 -fno-rtti -emit-llvm-only -triple i686-pc-win32 -fms-extensions -fdump-record-layouts %s 2>/dev/null \
2dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt// RUN:            | FileCheck %s
36bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines// RUN: %clang_cc1 -fno-rtti -emit-llvm-only -triple x86_64-pc-win32 -fms-extensions -fdump-record-layouts %s 2>/dev/null \
47967c95891c5f65f6312fbbcb999ac257d776914Warren Hunt// RUN:            | FileCheck %s
5dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt
6dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunttypedef struct A {
7dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt	char x;
8dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt	int a : 22;
9dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt	int : 0;
10dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt	int c : 10;
11dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt	char b : 3;
12dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt	char d: 4;
13dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt	short y;
14dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt} A;
15dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt
16dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt// CHECK: Type: struct A
17dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt// CHECK:   Size:128
18dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt// CHECK:   Alignment:32
19dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt// CHECK:   FieldOffsets: [0, 32, 64, 64, 96, 99, 112]>
20dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt
21dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunttypedef struct B {
22dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt	char x;
23dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt	int : 0;
24dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt	short a : 4;
25dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt	char y;
26dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt} B;
27dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt
28dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt// CHECK: Type: struct B
29dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt// CHECK:   Size:48
30dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt// CHECK:   Alignment:16
31dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt// CHECK:   FieldOffsets: [0, 8, 16, 32]>
32dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt
33dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunttypedef struct C {
34dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt	char x;
35dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt	short a : 4;
36dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt	int : 0;
37dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt	char y;
38dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt} C;
39dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt
40dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt// CHECK: Type: struct C
41dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt// CHECK:   Size:64
42dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt// CHECK:   Alignment:32
43dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt// CHECK:   FieldOffsets: [0, 16, 32, 32]>
44dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt
45dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunttypedef struct D {
46dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt	char x;
47dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt	short : 0;
48dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt	int : 0;
49dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt	char y;
50dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt} D;
51dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt
52dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt// CHECK: Type: struct D
53dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt// CHECK:   Size:16
54dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt// CHECK:   Alignment:8
55dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt// CHECK:   FieldOffsets: [0, 8, 8, 8]>
56dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt
57dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunttypedef union E {
58dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt	char x;
59dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt	long long a : 3;
60dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt	int b : 3;
61dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt	long long : 0;
62dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt	short y;
63dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt} E;
64dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt
65dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt// CHECK: Type: union E
66dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt// CHECK:   Size:64
67dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt// CHECK:   Alignment:16
68dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt// CHECK:   FieldOffsets: [0, 0, 0, 0, 0]>
69dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt
70dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunttypedef struct F {
71dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt	char x;
72dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt	char a : 3;
73dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt	char b : 3;
74dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt	char c : 3;
75dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt	short d : 6;
76dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt	short e : 6;
77dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt	short f : 6;
78dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt	short g : 11;
79dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt	short h : 11;
80dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt	short i : 11;
81dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt	short y;
82dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt} F;
83dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt
84dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt// CHECK: Type: struct F
85dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt// CHECK:   Size:128
86dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt// CHECK:   Alignment:16
87dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt// CHECK:   FieldOffsets: [0, 8, 11, 16, 32, 38, 48, 64, 80, 96, 112]>
88dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt
89dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunttypedef union G {
90dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt	char x;
91dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt	int a : 3;
92dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt	int : 0;
93dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt	long long : 0;
94dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt	short y;
95dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt} G;
96dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt
97dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt// CHECK: Type: union G
98dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt// CHECK:   Size:32
99dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt// CHECK:   Alignment:16
100dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt// CHECK:   FieldOffsets: [0, 0, 0, 0, 0]>
101dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt
102dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunttypedef struct H {
103dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt	unsigned short a : 1;
104dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt	unsigned char : 0;
105dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt	unsigned long : 0;
106dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt	unsigned short c : 1;
107dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt} H;
108dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt
109dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt// CHECK: Type: struct H
110dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt// CHECK:   Size:32
111dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt// CHECK:   Alignment:16
112dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt// CHECK:   FieldOffsets: [0, 16, 16, 16]>
113dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt
1146bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hinestypedef struct I {
1156bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines	short : 8;
1166bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines	__declspec(align(16)) short : 8;
1176bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines} I;
1186bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines
1196bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines// CHECK: Type: struct I
1206bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines// CHECK:   Size:16
1216bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines// CHECK:   Alignment:16
1226bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines// CHECK:   FieldOffsets: [0, 8]
1236bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines
124dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt#pragma pack(push, 1)
125dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt
126dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunttypedef struct A1 {
127dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt	char x;
128dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt	int a : 22;
129dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt	int : 0;
130dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt	int c : 10;
131dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt	char b : 3;
132dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt	char d: 4;
133dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt	short y;
134dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt} A1;
135dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt
136dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt// CHECK: Type: struct A1
137dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt// CHECK:   Size:96
138dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt// CHECK:   Alignment:8
139dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt// CHECK:   FieldOffsets: [0, 8, 40, 40, 72, 75, 80]>
140dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt
141dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunttypedef struct B1 {
142dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt	char x;
143dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt	int : 0;
144dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt	short a : 4;
145dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt	char y;
146dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt} B1;
147dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt
148dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt// CHECK: Type: struct B1
149dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt// CHECK:   Size:32
150dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt// CHECK:   Alignment:8
151dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt// CHECK:   FieldOffsets: [0, 8, 8, 24]>
152dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt
153dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunttypedef struct C1 {
154dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt	char x;
155dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt	short a : 4;
156dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt	int : 0;
157dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt	char y;
158dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt} C1;
159dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt
160dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt// CHECK: Type: struct C1
161dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt// CHECK:   Size:32
162dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt// CHECK:   Alignment:8
163dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt// CHECK:   FieldOffsets: [0, 8, 24, 24]>
164dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt
165dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunttypedef struct D1 {
166dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt	char x;
167dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt	short : 0;
168dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt	int : 0;
169dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt	char y;
170dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt} D1;
171dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt
172dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt// CHECK: Type: struct D1
173dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt// CHECK:   Size:16
174dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt// CHECK:   Alignment:8
175dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt// CHECK:   FieldOffsets: [0, 8, 8, 8]>
176dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt
177dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunttypedef union E1 {
178dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt	char x;
179dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt	long long a : 3;
180dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt	int b : 3;
181dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt	long long : 0;
182dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt	short y;
183dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt} E1;
184dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt
185dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt// CHECK: Type: union E1
186dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt// CHECK:   Size:64
187dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt// CHECK:   Alignment:8
188dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt// CHECK:   FieldOffsets: [0, 0, 0, 0, 0]>
189dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt
190dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunttypedef struct F1 {
191dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt	char x;
192dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt	char a : 3;
193dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt	char b : 3;
194dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt	char c : 3;
195dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt	short d : 6;
196dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt	short e : 6;
197dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt	short f : 6;
198dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt	short g : 11;
199dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt	short h : 11;
200dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt	short i : 11;
201dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt	short y;
202dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt} F1;
203dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt
204dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt// CHECK: Type: struct F1
205dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt// CHECK:   Size:120
206dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt// CHECK:   Alignment:8
207dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt// CHECK:   FieldOffsets: [0, 8, 11, 16, 24, 30, 40, 56, 72, 88, 104]>
208dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt
209dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunttypedef union G1 {
210dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt	char x;
211dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt	int a : 3;
212dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt	int : 0;
213dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt	long long : 0;
214dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt	short y;
215dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt} G1;
216dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt
217dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt// CHECK: Type: union G1
218dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt// CHECK:   Size:32
219dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt// CHECK:   Alignment:8
220dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt// CHECK:   FieldOffsets: [0, 0, 0, 0, 0]>
221dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt
222dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunttypedef struct H1 {
223dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt	unsigned long a : 1;
224dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt	unsigned char : 0;
225dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt	unsigned long : 0;
226dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt	unsigned long c : 1;
227dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt} H1;
228dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt
229dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt// CHECK: Type: struct H1
230dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt// CHECK:   Size:64
231dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt// CHECK:   Alignment:8
232dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt// CHECK:   FieldOffsets: [0, 32, 32, 32]>
233dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt
2346bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hinestypedef struct I1 {
2356bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines	short : 8;
2366bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines	__declspec(align(16)) short : 8;
2376bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines} I1;
2386bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines
2396bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines// CHECK: Type: struct I1
2406bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines// CHECK:   Size:16
2416bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines// CHECK:   Alignment:8
2426bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines// CHECK:   FieldOffsets: [0, 8]
2436bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines
244dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt#pragma pack(pop)
245dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt
246dc58180432868cfa9c060d5c41114634e4b841c7Warren Huntint x[
247dc58180432868cfa9c060d5c41114634e4b841c7Warren Huntsizeof(A ) +
248dc58180432868cfa9c060d5c41114634e4b841c7Warren Huntsizeof(B ) +
249dc58180432868cfa9c060d5c41114634e4b841c7Warren Huntsizeof(C ) +
250dc58180432868cfa9c060d5c41114634e4b841c7Warren Huntsizeof(D ) +
251dc58180432868cfa9c060d5c41114634e4b841c7Warren Huntsizeof(E ) +
252dc58180432868cfa9c060d5c41114634e4b841c7Warren Huntsizeof(F ) +
253dc58180432868cfa9c060d5c41114634e4b841c7Warren Huntsizeof(G ) +
254dc58180432868cfa9c060d5c41114634e4b841c7Warren Huntsizeof(H ) +
2556bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hinessizeof(I ) +
256dc58180432868cfa9c060d5c41114634e4b841c7Warren Huntsizeof(A1) +
257dc58180432868cfa9c060d5c41114634e4b841c7Warren Huntsizeof(B1) +
258dc58180432868cfa9c060d5c41114634e4b841c7Warren Huntsizeof(C1) +
259dc58180432868cfa9c060d5c41114634e4b841c7Warren Huntsizeof(D1) +
260dc58180432868cfa9c060d5c41114634e4b841c7Warren Huntsizeof(E1) +
261dc58180432868cfa9c060d5c41114634e4b841c7Warren Huntsizeof(F1) +
262dc58180432868cfa9c060d5c41114634e4b841c7Warren Huntsizeof(G1) +
263dc58180432868cfa9c060d5c41114634e4b841c7Warren Huntsizeof(H1) +
2646bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hinessizeof(I1) +
265dc58180432868cfa9c060d5c41114634e4b841c7Warren Hunt0];
266