diff options
-rw-r--r-- | Driver/RewriteTest.cpp | 4 | ||||
-rw-r--r-- | test/Sema/objc-super-test.m | 17 |
2 files changed, 19 insertions, 2 deletions
diff --git a/Driver/RewriteTest.cpp b/Driver/RewriteTest.cpp index cb990349eb..865328cc98 100644 --- a/Driver/RewriteTest.cpp +++ b/Driver/RewriteTest.cpp @@ -1337,9 +1337,9 @@ Stmt *RewriteTest::RewriteMessageExpr(ObjCMessageExpr *Exp) { CallExpr *Cls = SynthesizeCallToFunctionDecl(GetClassFunctionDecl, &ClsExprs[0], ClsExprs.size()); - // To turn off a warning, type-cast to 'Class' + // To turn off a warning, type-cast to 'id' InitExprs.push_back( - new CastExpr(Context->getObjcClassType(), + new CastExpr(Context->getObjcIdType(), Cls, SourceLocation())); // set 'super class', using objc_getClass(). // struct objc_super QualType superType = getSuperStructType(); diff --git a/test/Sema/objc-super-test.m b/test/Sema/objc-super-test.m new file mode 100644 index 0000000000..7575dfd840 --- /dev/null +++ b/test/Sema/objc-super-test.m @@ -0,0 +1,17 @@ +// RUN: clang -rewrite-test %s | clang + +#include <objc/objc.h> + +@interface SUPER +- (int) MainMethod; +@end + +@interface MyDerived : SUPER +- (int) instanceMethod; +@end + +@implementation MyDerived +- (int) instanceMethod { + return [super MainMethod]; +} +@end |