diff options
Diffstat (limited to 'lib/Sema/SemaExprObjC.cpp')
-rw-r--r-- | lib/Sema/SemaExprObjC.cpp | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/lib/Sema/SemaExprObjC.cpp b/lib/Sema/SemaExprObjC.cpp index e2825056c5..de99e182d6 100644 --- a/lib/Sema/SemaExprObjC.cpp +++ b/lib/Sema/SemaExprObjC.cpp @@ -190,10 +190,13 @@ Sema::ExprResult Sema::ActOnClassMessage( if (receiverName->isStr("super")) { if (getCurMethodDecl()) { isSuper = true; - ClassDecl = getCurMethodDecl()->getClassInterface()->getSuperClass(); + ObjCInterfaceDecl *OID = getCurMethodDecl()->getClassInterface(); + if (!OID) + return Diag(lbrac, diag::error_no_super_class_message) + << getCurMethodDecl()->getDeclName(); + ClassDecl = OID->getSuperClass(); if (!ClassDecl) - return Diag(lbrac, diag::error_no_super_class) - << getCurMethodDecl()->getClassInterface()->getDeclName(); + return Diag(lbrac, diag::error_no_super_class) << OID->getDeclName(); if (getCurMethodDecl()->isInstance()) { QualType superTy = Context.getObjCInterfaceType(ClassDecl); superTy = Context.getPointerType(superTy); |