Fariborz Jahanian | 30364d0 | 2011-05-09 22:03:17 +0000 | [diff] [blame] | 1 | // RUN: %clang_cc1 -emit-llvm-only -triple i386-apple-darwin9 %s |
Fariborz Jahanian | 52bbe7a | 2011-05-06 21:56:12 +0000 | [diff] [blame] | 2 | // rdar://8823265 |
| 3 | |
| 4 | #define ATTR __attribute__((__ms_struct__)) |
| 5 | |
| 6 | struct _struct_0 |
| 7 | { |
| 8 | int member_0 : 25 ; |
| 9 | short member_1 : 6 ; |
| 10 | char member_2 : 2 ; |
| 11 | unsigned short member_3 : 1 ; |
| 12 | unsigned char member_4 : 7 ; |
| 13 | short member_5 : 16 ; |
| 14 | int : 0 ; |
| 15 | char member_7 ; |
| 16 | |
| 17 | } ATTR; |
| 18 | |
| 19 | typedef struct _struct_0 struct_0; |
| 20 | |
| 21 | #define size_struct_0 20 |
| 22 | |
| 23 | struct_0 test_struct_0 = { 18557917, 17, 3, 0, 80, 6487, 93 }; |
| 24 | static int a[(size_struct_0 == sizeof (struct_0)) -1]; |
Fariborz Jahanian | 31e7f22 | 2011-05-06 22:42:22 +0000 | [diff] [blame] | 25 | |
| 26 | struct _struct_1 { |
| 27 | int d; |
| 28 | unsigned char a; |
| 29 | unsigned short b:7; |
| 30 | char c; |
| 31 | } ATTR; |
| 32 | |
| 33 | typedef struct _struct_1 struct_1; |
| 34 | |
| 35 | #define size_struct_1 12 |
| 36 | |
| 37 | struct_1 test_struct_1 = { 18557917, 'a', 3, 'b' }; |
| 38 | |
| 39 | static int a1[(size_struct_1 == sizeof (struct_1)) -1]; |
Fariborz Jahanian | 30364d0 | 2011-05-09 22:03:17 +0000 | [diff] [blame] | 40 | |
| 41 | struct ten { |
| 42 | long long a:3; |
| 43 | long long b:3; |
| 44 | char c; |
| 45 | } __attribute__ ((ms_struct)); |
| 46 | |
| 47 | #define size_struct_2 16 |
| 48 | |
| 49 | static int a2[(size_struct_2 == sizeof (struct ten)) -1]; |