Land the long talked about "type system rewrite" patch. This
[llvm/stm8.git] / test / FrontendObjC / 2009-04-27-bitfield-vs-ivar.m
blobcada8438bc95eb42aeb821e1078491d5d8463c73
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
7 // Test instance variable sizing when base class ends in bitfield
8 @interface I3 {
9   unsigned int _iv2 :1;
11 @end
13 @interface I4 : I3 {
14   char _iv4;
16 @end
18 // Test case with no instance variables in derived class
19 @interface I1 {
20   unsigned int _iv2 :1;
22 @end
24 @interface I2 : I1 {
26 @end
28 // Test case with no instance variables anywhere
29 @interface I6 {
31 @end
33 @interface I5 : I6 {
35 @end
37 @implementation I4
38 @end
40 @implementation I2
41 @end
43 @implementation I5
44 @end