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
8 @interface AllPointers : NSObject {
15 @implementation AllPointers
17 // CHECK-LP64: strong ivar layout for class 'AllPointers': 0x03, 0x00
19 @class NSString, NSNumber;
20 @interface A : NSObject {
35 @implementation A @end
37 // CHECK-LP64: strong ivar layout for class 'A': 0x02, 0x00
38 // CHECK-LP64: weak ivar layout for class 'A': 0x31, 0x00
40 @implementation B @end
42 // CHECK-LP64: strong ivar layout for class 'B': 0x12, 0x00
44 @interface UnsafePerson {
46 __unsafe_unretained id name;
47 __unsafe_unretained id age;
52 @implementation UnsafePerson @end
54 // CHECK-LP64: strong ivar layout for class 'UnsafePerson': 0x21, 0x00
56 @interface rdar16136439
57 @property (nonatomic, readonly, weak) id first;
60 @implementation rdar16136439 @end
62 // CHECK-LP64: weak ivar layout for class 'rdar16136439': 0x01, 0x00
64 @interface Misalign : NSObject {
69 @interface Misaligned : Misalign {
75 @implementation Misaligned @end
77 // CHECK-LP64: strong ivar layout for class 'Misaligned': 0x01, 0x00