blob: c419f0343f0b85b2af2c6829705114d9088fde05 [file] [log] [blame]
/** 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.
*/
#import <Foundation/Foundation.h>
#include <objc/runtime.h>
@protocol Proto
@property (assign) id prop;
@end
@interface Foo : NSObject <Proto> { id prop; } @end
@interface Bar : NSObject <Proto> { id prop; } @end
@implementation Foo
@synthesize prop;
@end
@implementation Bar
@synthesize prop;
@end
int main() {
IMP Foo_prop = class_getMethodImplementation([Foo class], @selector(prop));
IMP Bar_prop = class_getMethodImplementation([Bar class], @selector(prop));
assert(Foo_prop != Bar_prop);
return 0;
}