|  | // REQUIRES: x86-64-registered-target | 
|  | // RUN: %clang_cc1 -triple x86_64-apple-darwin10 -fobjc-nonfragile-abi -S -o %t %s | 
|  | // RUN: FileCheck < %t %s | 
|  |  | 
|  | // rdar://9072317 | 
|  |  | 
|  | /** The problem looks like clang getting confused when a single translation unit | 
|  | contains a protocol with a property and two classes that implement that protocol | 
|  | and synthesize the property. | 
|  | */ | 
|  |  | 
|  | @protocol Proto | 
|  | @property (assign) id prop; | 
|  | @end | 
|  |  | 
|  | @interface NSObject @end | 
|  |  | 
|  | @interface Foo : NSObject <Proto> { int x; } @end | 
|  |  | 
|  | @interface Bar : NSObject <Proto> @end | 
|  |  | 
|  | @implementation Foo | 
|  | @synthesize prop; | 
|  | @end | 
|  |  | 
|  | @implementation Bar | 
|  | @synthesize prop; | 
|  | @end | 
|  |  | 
|  | // CHECK: l_OBJC_$_INSTANCE_METHODS_Bar: | 
|  | // CHECK-NEXT        .long   24 | 
|  | // CHECK-NEXT        .long   2 | 
|  | // CHECK-NEXT        .quad   L_OBJC_METH_VAR_NAME_ | 
|  | // CHECK-NEXT        .quad   L_OBJC_METH_VAR_TYPE_ | 
|  | // CHECK-NEXT        .quad   "-[Bar prop]" |