xref: /llvm-project/clang/test/CodeGen/ms_struct-bitfield-1.c (revision 0f1c1be1968076d6f96f8a7bcc4a15cf195ecd97)
1 // RUN: %clang_cc1 -emit-llvm-only  -triple x86_64-apple-darwin9 %s
2 
3 #define ATTR __attribute__((__ms_struct__))
4 
5 struct {
6   unsigned int bf_1 : 12;
7   unsigned int : 0;
8   unsigned int bf_2 : 12;
9 } ATTR t1;
10 static int a1[(sizeof(t1) == 8) -1];
11 
12 struct
13 {
14   char foo : 4;
15   short : 0;
16   char bar;
17 } ATTR t2;
18 static int a2[(sizeof(t2) == 4) -1];
19 
20 #pragma ms_struct on
21 struct
22 {
23   char foo : 4;
24   short : 0;
25   char bar;
26 } t3;
27 #pragma ms_struct off
28 static int a3[(sizeof(t3) == 4) -1];
29 
30 struct
31 {
32   char foo : 6;
33   long : 0;
34 } ATTR t4;
35 static int a4[(sizeof(t4) == 8) -1];
36 
37 struct
38 {
39   char foo : 4;
40   short : 0;
41   char bar : 8;
42 } ATTR t5;
43 static int a5[(sizeof(t5) == 4) -1];
44 
45 struct
46 {
47   char foo : 4;
48   short : 0;
49   long  : 0;
50   char bar;
51 } ATTR t6;
52 static int a6[(sizeof(t6) == 4) -1];
53 
54 struct
55 {
56   char foo : 4;
57   long  : 0;
58   short : 0;
59   char bar;
60 } ATTR t7;
61 static int a7[(sizeof(t7) == 16) -1];
62 
63 struct
64 {
65   char foo : 4;
66   short : 0;
67   long  : 0;
68   char bar:7;
69 } ATTR t8;
70 static int a8[(sizeof(t8) == 4) -1];
71 
72 struct
73 {
74   char foo : 4;
75   long  : 0;
76   short : 0;
77   char bar: 8;
78 } ATTR t9;
79 static int a9[(sizeof(t9) == 16) -1];
80 
81 struct
82 {
83   char foo : 4;
84   char : 0;
85   short : 0;
86   int : 0;
87   long  :0;
88   char bar;
89 } ATTR t10;
90 static int a10[(sizeof(t10) == 2) -1];
91