| // 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]; |