[llvm-commits] [test-suite] r130020 - in /test-suite/trunk/SingleSource/UnitTests/ObjC: instance-method-metadata.m instance-method-metadata.reference_output

Fariborz Jahanian fjahanian at apple.com
Fri Apr 22 15:03:25 PDT 2011


Author: fjahanian
Date: Fri Apr 22 17:03:25 2011
New Revision: 130020

URL: http://llvm.org/viewvc/llvm-project?rev=130020&view=rev
Log:
Executable test for clang's // rdar:// 9072317


Added:
    test-suite/trunk/SingleSource/UnitTests/ObjC/instance-method-metadata.m
    test-suite/trunk/SingleSource/UnitTests/ObjC/instance-method-metadata.reference_output

Added: test-suite/trunk/SingleSource/UnitTests/ObjC/instance-method-metadata.m
URL: http://llvm.org/viewvc/llvm-project/test-suite/trunk/SingleSource/UnitTests/ObjC/instance-method-metadata.m?rev=130020&view=auto
==============================================================================
--- test-suite/trunk/SingleSource/UnitTests/ObjC/instance-method-metadata.m (added)
+++ test-suite/trunk/SingleSource/UnitTests/ObjC/instance-method-metadata.m Fri Apr 22 17:03:25 2011
@@ -0,0 +1,29 @@
+/** 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>
+
+ at protocol Proto
+ at property (assign) id prop;
+ at end
+
+ at interface Foo : NSObject <Proto> { int x; } @end
+ at interface Bar : NSObject <Proto> @end
+
+ at implementation Foo
+ at synthesize prop;
+ at end
+ at implementation Bar
+ at synthesize prop;
+ at 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;
+}
+

Added: test-suite/trunk/SingleSource/UnitTests/ObjC/instance-method-metadata.reference_output
URL: http://llvm.org/viewvc/llvm-project/test-suite/trunk/SingleSource/UnitTests/ObjC/instance-method-metadata.reference_output?rev=130020&view=auto
==============================================================================
--- test-suite/trunk/SingleSource/UnitTests/ObjC/instance-method-metadata.reference_output (added)
+++ test-suite/trunk/SingleSource/UnitTests/ObjC/instance-method-metadata.reference_output Fri Apr 22 17:03:25 2011
@@ -0,0 +1 @@
+exit 0





More information about the llvm-commits mailing list