diff options
author | Argyrios Kyrtzidis <akyrtzi@gmail.com> | 2015-07-28 06:12:24 +0000 |
---|---|---|
committer | Argyrios Kyrtzidis <akyrtzi@gmail.com> | 2015-07-28 06:12:24 +0000 |
commit | c2a589169cf1bd9a999da67ac6ed9a3f78b919fa (patch) | |
tree | 6536365c5daf60bc6dc0f9ef455e28cb59b19839 /clang/lib/Sema/TreeTransform.h | |
parent | 36b7f1d1c2a006b540efaaecdb0d2c05c1c91772 (diff) | |
download | bcm5719-llvm-c2a589169cf1bd9a999da67ac6ed9a3f78b919fa.tar.gz bcm5719-llvm-c2a589169cf1bd9a999da67ac6ed9a3f78b919fa.zip |
[sema] Fix crash when typo-transforming an expression containing an ObjC super message expression.
rdar://21427916
llvm-svn: 243387
Diffstat (limited to 'clang/lib/Sema/TreeTransform.h')
-rw-r--r-- | clang/lib/Sema/TreeTransform.h | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/clang/lib/Sema/TreeTransform.h b/clang/lib/Sema/TreeTransform.h index 0ec47b8fc19..35408acdad3 100644 --- a/clang/lib/Sema/TreeTransform.h +++ b/clang/lib/Sema/TreeTransform.h @@ -2657,20 +2657,18 @@ public: ExprResult RebuildObjCMessageExpr(SourceLocation SuperLoc, Selector Sel, ArrayRef<SourceLocation> SelectorLocs, + QualType SuperType, ObjCMethodDecl *Method, SourceLocation LBracLoc, MultiExprArg Args, SourceLocation RBracLoc) { - ObjCInterfaceDecl *Class = Method->getClassInterface(); - QualType ReceiverTy = SemaRef.Context.getObjCInterfaceType(Class); - return Method->isInstanceMethod() ? SemaRef.BuildInstanceMessage(nullptr, - ReceiverTy, + SuperType, SuperLoc, Sel, Method, LBracLoc, SelectorLocs, RBracLoc, Args) : SemaRef.BuildClassMessage(nullptr, - ReceiverTy, + SuperType, SuperLoc, Sel, Method, LBracLoc, SelectorLocs, RBracLoc, Args); @@ -10348,6 +10346,7 @@ TreeTransform<Derived>::TransformObjCMessageExpr(ObjCMessageExpr *E) { return getDerived().RebuildObjCMessageExpr(E->getSuperLoc(), E->getSelector(), SelLocs, + E->getReceiverType(), E->getMethodDecl(), E->getLeftLoc(), Args, |