1 // RUN: %clang_cc1 -emit-llvm-only -triple x86_64-apple-darwin9 %s 2 // rdar://8823265 3 4 #define ATTR __attribute__((__ms_struct__)) 5 6 struct 7 { 8 char foo; 9 long : 0; 10 char bar; 11 } ATTR t1; 12 13 struct 14 { 15 char foo; 16 long : 0; 17 char : 0; 18 int : 0; 19 char bar; 20 } ATTR t2; 21 22 struct 23 { 24 char foo; 25 long : 0; 26 char : 0; 27 int : 0; 28 char bar; 29 long : 0; 30 char : 0; 31 } ATTR t3; 32 33 struct 34 { 35 long : 0; 36 char bar; 37 } ATTR t4; 38 39 struct 40 { 41 long : 0; 42 long : 0; 43 char : 0; 44 char bar; 45 } ATTR t5; 46 47 struct 48 { 49 long : 0; 50 long : 0; 51 char : 0; 52 char bar; 53 } ATTR t6; 54 55 struct 56 { 57 char foo; 58 long : 0; 59 int : 0; 60 char bar; 61 char bar1; 62 long : 0; 63 char bar2; 64 char bar3; 65 char : 0; 66 char bar4; 67 char bar5; 68 char : 0; 69 char bar6; 70 char bar7; 71 } ATTR t7; 72 73 struct 74 { 75 long : 0; 76 long : 0; 77 char : 0; 78 } ATTR t8; 79 80 struct 81 { 82 char foo; 83 long : 0; 84 int : 0; 85 char bar; 86 char bar1; 87 long : 0; 88 char bar2; 89 char bar3; 90 char : 0; 91 char bar4; 92 char bar5; 93 char : 0; 94 char bar6; 95 char bar7; 96 int i1; 97 char : 0; 98 long : 0; 99 char :4; 100 char bar8; 101 char : 0; 102 char bar9; 103 char bar10; 104 int i2; 105 char : 0; 106 long : 0; 107 char :4; 108 } ATTR t9; 109 110 struct 111 { 112 char foo: 8; 113 long : 0; 114 char bar; 115 } ATTR t10; 116 117 static int arr1[(sizeof(t1) == 2) -1]; 118 static int arr2[(sizeof(t2) == 2) -1]; 119 static int arr3[(sizeof(t3) == 2) -1]; 120 static int arr4[(sizeof(t4) == 1) -1]; 121 static int arr5[(sizeof(t5) == 1) -1]; 122 static int arr6[(sizeof(t6) == 1) -1]; 123 static int arr7[(sizeof(t7) == 9) -1]; 124 static int arr8[(sizeof(t8) == 0) -1]; 125 static int arr9[(sizeof(t9) == 28) -1]; 126 static int arr10[(sizeof(t10) == 16) -1]; 127 128 int main() { 129 return 0; 130 } 131 132