1 // RUN: %clang_cc1 -fobjc-arc -fobjc-runtime-has-weak -triple x86_64-apple-darwin -print-ivar-layout -emit-llvm %s -o %t-64.s | FileCheck -check-prefix CHECK-LP64 %s
9 @interface AllPointers : NSObject {
16 @implementation AllPointers
18 // CHECK-LP64: strong ivar layout for class 'AllPointers': 0x03, 0x00
20 @class NSString, NSNumber;
21 @interface A : NSObject {
36 @implementation A @end
38 // CHECK-LP64: strong ivar layout for class 'A': 0x02, 0x00
39 // CHECK-LP64: weak ivar layout for class 'A': 0x31, 0x00
41 @implementation B @end
43 // CHECK-LP64: strong ivar layout for class 'B': 0x12, 0x00
45 @interface UnsafePerson {
47 __unsafe_unretained id name;
48 __unsafe_unretained id age;
53 @implementation UnsafePerson @end
55 // CHECK-LP64: strong ivar layout for class 'UnsafePerson': 0x21, 0x00
58 @interface rdar16136439
59 @property (nonatomic, readonly, weak) id first;
62 @implementation rdar16136439 @end
64 // CHECK-LP64: weak ivar layout for class 'rdar16136439': 0x01, 0x00
66 @interface Misalign : NSObject {
71 @interface Misaligned : Misalign {
77 @implementation Misaligned @end
79 // CHECK-LP64: strong ivar layout for class 'Misaligned': 0x01, 0x00