xref: /aosp_15_r20/external/clang/test/CodeGen/ms_struct-bitfield-3.c (revision 67e74705e28f6214e480b399dd47ea732279e315)
1*67e74705SXin Li // RUN: %clang_cc1 -emit-llvm-only  -triple i386-apple-darwin9 %s
2*67e74705SXin Li // rdar://8823265
3*67e74705SXin Li 
4*67e74705SXin Li #define ATTR __attribute__((__ms_struct__))
5*67e74705SXin Li 
6*67e74705SXin Li struct _struct_0
7*67e74705SXin Li {
8*67e74705SXin Li   int  member_0   : 25 ;
9*67e74705SXin Li   short  member_1   : 6 ;
10*67e74705SXin Li   char  member_2   : 2 ;
11*67e74705SXin Li   unsigned  short  member_3   : 1 ;
12*67e74705SXin Li   unsigned  char  member_4   : 7 ;
13*67e74705SXin Li   short  member_5   : 16 ;
14*67e74705SXin Li   int  : 0 ;
15*67e74705SXin Li   char  member_7  ;
16*67e74705SXin Li 
17*67e74705SXin Li } ATTR;
18*67e74705SXin Li 
19*67e74705SXin Li typedef struct _struct_0 struct_0;
20*67e74705SXin Li 
21*67e74705SXin Li #define size_struct_0 20
22*67e74705SXin Li 
23*67e74705SXin Li struct_0 test_struct_0 = { 18557917, 17, 3, 0, 80, 6487, 93 };
24*67e74705SXin Li static int a[(size_struct_0 == sizeof (struct_0)) -1];
25*67e74705SXin Li 
26*67e74705SXin Li struct _struct_1 {
27*67e74705SXin Li   int d;
28*67e74705SXin Li   unsigned char a;
29*67e74705SXin Li   unsigned short b:7;
30*67e74705SXin Li   char c;
31*67e74705SXin Li } ATTR;
32*67e74705SXin Li 
33*67e74705SXin Li typedef struct _struct_1 struct_1;
34*67e74705SXin Li 
35*67e74705SXin Li #define size_struct_1 12
36*67e74705SXin Li 
37*67e74705SXin Li struct_1 test_struct_1 = { 18557917, 'a', 3, 'b' };
38*67e74705SXin Li 
39*67e74705SXin Li static int a1[(size_struct_1 == sizeof (struct_1)) -1];
40*67e74705SXin Li 
41*67e74705SXin Li struct ten {
42*67e74705SXin Li   long long a:3;
43*67e74705SXin Li   long long b:3;
44*67e74705SXin Li   char c;
45*67e74705SXin Li } __attribute__ ((ms_struct));
46*67e74705SXin Li 
47*67e74705SXin Li #define size_struct_2 16
48*67e74705SXin Li 
49*67e74705SXin Li static int a2[(size_struct_2 == sizeof (struct ten)) -1];
50