Add more reference-binding examples from the C++0x working paper, all of which seem...
[clang.git] / test / CodeGenObjC / ivar-layout-nonfragile-abi2.m
blob012ccadd9f9257a58fad92a520c59f67c2f9b839
1 // RUN: %clang_cc1 -triple x86_64-apple-darwin10 -fobjc-nonfragile-abi -emit-llvm -o %t %s
2 // RUN: %clang_cc1 -x objective-c++ -triple x86_64-apple-darwin10 -fobjc-nonfragile-abi -emit-llvm -o %t %s
3 // rdar: // 7824380
5 @interface Super {
6   int ivar_super_a : 5;
8 @end
10 @interface A : Super {
11 @public
12   int ivar_a : 5;
14 @end
16 int f0(A *a) {
17   return a->ivar_a;
20 @interface A () {
21 @public
22   int ivar_ext_a : 5;
23   int ivar_ext_b : 5;
24 }@end
26 int f1(A *a) {
27   return a->ivar_ext_a + a->ivar_a;
30 @interface A () {
31 @public
32   int ivar_ext2_a : 5;
33   int ivar_ext2_b : 5;
34 }@end
36 int f2(A* a) {
37   return a->ivar_ext2_a + a->ivar_ext_a + a->ivar_a;
40 @implementation A {
41 @public
42   int ivar_b : 5;
43   int ivar_c : 5;
44   int ivar_d : 5;
46 @end
48 int f3(A *a) {  
49   return a->ivar_d + a->ivar_ext2_a + a->ivar_ext_a + a->ivar_a;