| // RUN: %clang_cc1 -emit-llvm-only -triple x86_64-apple-darwin9 %s | |
| #define ATTR __attribute__((__ms_struct__)) | |
| struct { | |
| unsigned int bf_1 : 12; | |
| unsigned int : 0; | |
| unsigned int bf_2 : 12; | |
| } ATTR t1; | |
| static int a1[(sizeof(t1) == 8) -1]; | |
| struct | |
| { | |
| char foo : 4; | |
| short : 0; | |
| char bar; | |
| } ATTR t2; | |
| static int a2[(sizeof(t2) == 4) -1]; | |
| #pragma ms_struct on | |
| struct | |
| { | |
| char foo : 4; | |
| short : 0; | |
| char bar; | |
| } t3; | |
| #pragma ms_struct off | |
| static int a3[(sizeof(t3) == 4) -1]; | |
| struct | |
| { | |
| char foo : 6; | |
| long : 0; | |
| } ATTR t4; | |
| static int a4[(sizeof(t4) == 8) -1]; | |
| struct | |
| { | |
| char foo : 4; | |
| short : 0; | |
| char bar : 8; | |
| } ATTR t5; | |
| static int a5[(sizeof(t5) == 4) -1]; | |
| struct | |
| { | |
| char foo : 4; | |
| short : 0; | |
| long : 0; | |
| char bar; | |
| } ATTR t6; | |
| static int a6[(sizeof(t6) == 4) -1]; | |
| struct | |
| { | |
| char foo : 4; | |
| long : 0; | |
| short : 0; | |
| char bar; | |
| } ATTR t7; | |
| static int a7[(sizeof(t7) == 16) -1]; | |
| struct | |
| { | |
| char foo : 4; | |
| short : 0; | |
| long : 0; | |
| char bar:7; | |
| } ATTR t8; | |
| static int a8[(sizeof(t8) == 4) -1]; | |
| struct | |
| { | |
| char foo : 4; | |
| long : 0; | |
| short : 0; | |
| char bar: 8; | |
| } ATTR t9; | |
| static int a9[(sizeof(t9) == 16) -1]; | |
| struct | |
| { | |
| char foo : 4; | |
| char : 0; | |
| short : 0; | |
| int : 0; | |
| long :0; | |
| char bar; | |
| } ATTR t10; | |
| static int a10[(sizeof(t10) == 2) -1]; |