Add a new expression class, ObjCSuperExpr, to handle the Objective-C 'super'. Remove ObjCThis from PredefinedExpr
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58698 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/Driver/RewriteObjC.cpp b/Driver/RewriteObjC.cpp
index d2aa398..35d7cc8 100644
--- a/Driver/RewriteObjC.cpp
+++ b/Driver/RewriteObjC.cpp
@@ -1899,9 +1899,8 @@
// check if we are sending a message to 'super'
if (!CurMethodDef || !CurMethodDef->isInstance()) return 0;
- if (PredefinedExpr *PDE = dyn_cast<PredefinedExpr>(recExpr))
- if (PDE->getIdentType() == PredefinedExpr::ObjCSuper) {
- const PointerType *PT = PDE->getType()->getAsPointerType();
+ if (ObjCSuperExpr *Super = dyn_cast<ObjCSuperExpr>(recExpr)) {
+ const PointerType *PT = Super->getType()->getAsPointerType();
assert(PT);
ObjCInterfaceType *IT = cast<ObjCInterfaceType>(PT->getPointeeType());
return IT->getDecl();