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