clean up header.
[oota-llvm.git] / test / FrontendObjC / 2009-04-27-bitfield-vs-ivar.m
1 // RUN: %llvmgcc -S -x objective-c -m64 -fobjc-abi-version=2 %s -o %t
2 // RUN: grep {OBJC_CLASS_RO_\\\$_I4} %t | grep {i32 0, i32 1, i32 2, i32 0}
3 // RUN: grep {OBJC_CLASS_RO_\\\$_I2} %t | grep {i32 0, i32 1, i32 1, i32 0}
4 // RUN: grep {OBJC_CLASS_RO_\\\$_I5} %t | grep {i32 0, i32 0, i32 0, i32 0}
5 // XTARGET: darwin
6
7 // Test instance variable sizing when base class ends in bitfield
8 @interface I3 {
9   unsigned int _iv2 :1;
10 }
11 @end
12
13 @interface I4 : I3 {
14   char _iv4;
15 }
16 @end
17
18 // Test case with no instance variables in derived class
19 @interface I1 {
20   unsigned int _iv2 :1;
21 }
22 @end
23
24 @interface I2 : I1 {
25 }
26 @end
27
28 // Test case with no instance variables anywhere
29 @interface I6 {
30 }
31 @end
32
33 @interface I5 : I6 {
34 }
35 @end
36
37 @implementation I4
38 @end
39
40 @implementation I2
41 @end
42
43 @implementation I5
44 @end