1// REQUIRES: x86-64-registered-target
2// RUN: %clang_cc1 -triple x86_64-apple-darwin10 -S -o %t %s
3// RUN: FileCheck < %t %s
4
5// rdar://9072317
6
7/** The problem looks like clang getting confused when a single translation unit
8    contains a protocol with a property and two classes that implement that protocol
9    and synthesize the property.
10*/
11
12@protocol Proto
13@property (assign) id prop;
14@end
15
16@interface NSObject @end
17
18@interface Foo : NSObject <Proto> { int x; } @end
19
20@interface Bar : NSObject <Proto> @end
21
22@implementation Foo
23@synthesize prop;
24@end
25
26@implementation Bar
27@synthesize prop;
28@end
29
30// CHECK: l_OBJC_$_INSTANCE_METHODS_Bar:
31// CHECK-NEXT:        .long   24
32// CHECK-NEXT:        .long   2
33// CHECK-NEXT:        .quad   L_OBJC_METH_VAR_NAME_
34// CHECK-NEXT:        .quad   L_OBJC_METH_VAR_TYPE_
35// CHECK-NEXT:        .quad   "-[Bar prop]"
36