xref: /minix3/external/bsd/llvm/dist/clang/test/CodeGenObjC/ivar-layout-nonfragile-abi2.m (revision f4a2713ac843a11c696ec80c0a5e3e5d80b4d338)
1*f4a2713aSLionel Sambuc// RUN: %clang_cc1 -triple x86_64-apple-darwin10 -emit-llvm -o %t %s
2*f4a2713aSLionel Sambuc// RUN: %clang_cc1 -x objective-c++ -triple x86_64-apple-darwin10 -emit-llvm -o %t %s
3*f4a2713aSLionel Sambuc// rdar: // 7824380
4*f4a2713aSLionel Sambuc
5*f4a2713aSLionel Sambuc@interface Super {
6*f4a2713aSLionel Sambuc  int ivar_super_a : 5;
7*f4a2713aSLionel Sambuc}
8*f4a2713aSLionel Sambuc@end
9*f4a2713aSLionel Sambuc
10*f4a2713aSLionel Sambuc@interface A : Super {
11*f4a2713aSLionel Sambuc@public
12*f4a2713aSLionel Sambuc  int ivar_a : 5;
13*f4a2713aSLionel Sambuc}
14*f4a2713aSLionel Sambuc@end
15*f4a2713aSLionel Sambuc
16*f4a2713aSLionel Sambucint f0(A *a) {
17*f4a2713aSLionel Sambuc  return a->ivar_a;
18*f4a2713aSLionel Sambuc}
19*f4a2713aSLionel Sambuc
20*f4a2713aSLionel Sambuc@interface A () {
21*f4a2713aSLionel Sambuc@public
22*f4a2713aSLionel Sambuc  int ivar_ext_a : 5;
23*f4a2713aSLionel Sambuc  int ivar_ext_b : 5;
24*f4a2713aSLionel Sambuc}@end
25*f4a2713aSLionel Sambuc
26*f4a2713aSLionel Sambucint f1(A *a) {
27*f4a2713aSLionel Sambuc  return a->ivar_ext_a + a->ivar_a;
28*f4a2713aSLionel Sambuc}
29*f4a2713aSLionel Sambuc
30*f4a2713aSLionel Sambuc@interface A () {
31*f4a2713aSLionel Sambuc@public
32*f4a2713aSLionel Sambuc  int ivar_ext2_a : 5;
33*f4a2713aSLionel Sambuc  int ivar_ext2_b : 5;
34*f4a2713aSLionel Sambuc}@end
35*f4a2713aSLionel Sambuc
36*f4a2713aSLionel Sambucint f2(A* a) {
37*f4a2713aSLionel Sambuc  return a->ivar_ext2_a + a->ivar_ext_a + a->ivar_a;
38*f4a2713aSLionel Sambuc}
39*f4a2713aSLionel Sambuc
40*f4a2713aSLionel Sambuc@implementation A {
41*f4a2713aSLionel Sambuc@public
42*f4a2713aSLionel Sambuc  int ivar_b : 5;
43*f4a2713aSLionel Sambuc  int ivar_c : 5;
44*f4a2713aSLionel Sambuc  int ivar_d : 5;
45*f4a2713aSLionel Sambuc}
46*f4a2713aSLionel Sambuc@end
47*f4a2713aSLionel Sambuc
48*f4a2713aSLionel Sambucint f3(A *a) {
49*f4a2713aSLionel Sambuc  return a->ivar_d + a->ivar_ext2_a + a->ivar_ext_a + a->ivar_a;
50*f4a2713aSLionel Sambuc}
51*f4a2713aSLionel Sambuc
52