summaryrefslogtreecommitdiffstats
path: root/clang/lib/Sema/TreeTransform.h
diff options
context:
space:
mode:
authorArgyrios Kyrtzidis <akyrtzi@gmail.com>2015-07-28 06:12:24 +0000
committerArgyrios Kyrtzidis <akyrtzi@gmail.com>2015-07-28 06:12:24 +0000
commitc2a589169cf1bd9a999da67ac6ed9a3f78b919fa (patch)
tree6536365c5daf60bc6dc0f9ef455e28cb59b19839 /clang/lib/Sema/TreeTransform.h
parent36b7f1d1c2a006b540efaaecdb0d2c05c1c91772 (diff)
downloadbcm5719-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.h9
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,
OpenPOWER on IntegriCloud