| // RUN: %clang_cc1 -emit-llvm-only -triple x86_64-apple-darwin9 %s |
| // rdar://8823265 |
| |
| #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]; |