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