1f4a2713aSLionel Sambuc// RUN: %clang_cc1 -fobjc-arc -fobjc-runtime-has-weak -triple x86_64-apple-darwin -S %s -o %t-64.s 2f4a2713aSLionel Sambuc// RUN: FileCheck -check-prefix CHECK-LP64 --input-file=%t-64.s %s 3*0a6a1f1dSLionel Sambuc// REQUIRES: x86-registered-target 4f4a2713aSLionel Sambuc// rdar://8991729 5f4a2713aSLionel Sambuc 6f4a2713aSLionel Sambuc@interface NSObject { 7f4a2713aSLionel Sambuc id isa; 8f4a2713aSLionel Sambuc} 9f4a2713aSLionel Sambuc@end 10f4a2713aSLionel Sambuc 11f4a2713aSLionel Sambuc@interface AllPointers : NSObject { 12f4a2713aSLionel Sambuc id foo; 13f4a2713aSLionel Sambuc id __strong bar; 14f4a2713aSLionel Sambuc NSObject *bletch; 15f4a2713aSLionel Sambuc} 16f4a2713aSLionel Sambuc@end 17f4a2713aSLionel Sambuc 18f4a2713aSLionel Sambuc@implementation AllPointers 19f4a2713aSLionel Sambuc@end 20f4a2713aSLionel Sambuc// CHECK-LP64: L_OBJC_CLASS_NAME_1: 21f4a2713aSLionel Sambuc// CHECK-LP64-NEXT: .asciz "\003" 22f4a2713aSLionel Sambuc 23f4a2713aSLionel Sambuc@class NSString, NSNumber; 24f4a2713aSLionel Sambuc@interface A : NSObject { 25f4a2713aSLionel Sambuc NSString *foo; 26f4a2713aSLionel Sambuc NSNumber *bar; 27f4a2713aSLionel Sambuc unsigned int bletch; 28f4a2713aSLionel Sambuc __weak id delegate; 29f4a2713aSLionel Sambuc} 30f4a2713aSLionel Sambuc@end 31f4a2713aSLionel Sambuc 32f4a2713aSLionel Sambuc@interface B : A { 33f4a2713aSLionel Sambuc unsigned int x; 34f4a2713aSLionel Sambuc NSString *y; 35f4a2713aSLionel Sambuc NSString *z; 36f4a2713aSLionel Sambuc} 37f4a2713aSLionel Sambuc@end 38f4a2713aSLionel Sambuc 39f4a2713aSLionel Sambuc@implementation A @end 40f4a2713aSLionel Sambuc 41f4a2713aSLionel Sambuc@implementation B @end 42f4a2713aSLionel Sambuc 43f4a2713aSLionel Sambuc// CHECK-LP64: L_OBJC_CLASS_NAME_15: 44f4a2713aSLionel Sambuc// CHECK-LP64-NEXT: .asciz "\022" 45f4a2713aSLionel Sambuc 46f4a2713aSLionel Sambuc@interface UnsafePerson { 47f4a2713aSLionel Sambuc@public 48f4a2713aSLionel Sambuc __unsafe_unretained id name; 49f4a2713aSLionel Sambuc __unsafe_unretained id age; 50f4a2713aSLionel Sambuc id value; 51f4a2713aSLionel Sambuc} 52f4a2713aSLionel Sambuc@end 53f4a2713aSLionel Sambuc 54f4a2713aSLionel Sambuc@implementation UnsafePerson @end 55f4a2713aSLionel Sambuc// CHECK-LP64: L_OBJC_CLASS_NAME_20: 56f4a2713aSLionel Sambuc// CHECK-LP64-NEXT: .asciz "!" 57*0a6a1f1dSLionel Sambuc 58*0a6a1f1dSLionel Sambuc// rdar://16136439 59*0a6a1f1dSLionel Sambuc@interface rdar16136439 60*0a6a1f1dSLionel Sambuc @property (nonatomic, readonly, weak) id first; 61*0a6a1f1dSLionel Sambuc@end 62*0a6a1f1dSLionel Sambuc 63*0a6a1f1dSLionel Sambuc@implementation rdar16136439 @end 64*0a6a1f1dSLionel Sambuc// CHECK-LP64: L_OBJC_PROP_NAME_ATTR_29: 65*0a6a1f1dSLionel Sambuc// CHECK-LP64-NEXT: .asciz "T@,R,W,N,V_first" 66