diff options
author | John McCall <rjmccall@apple.com> | 2012-07-31 00:33:55 +0000 |
---|---|---|
committer | John McCall <rjmccall@apple.com> | 2012-07-31 00:33:55 +0000 |
commit | bd9b65ae534cb11aa39737aa43ab82bb29e078f6 (patch) | |
tree | 63c2cf737aaa60133a690edd7a728e9091edf612 /lib/CodeGen/CGCall.cpp | |
parent | f0324d33967f28758f7243c7bb1a469c5a0394b6 (diff) |
Don't crash *or* insert a bogus autorelease when emitting a
this-adjustment thunk in ARC++.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161014 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/CodeGen/CGCall.cpp')
-rw-r--r-- | lib/CodeGen/CGCall.cpp | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/lib/CodeGen/CGCall.cpp b/lib/CodeGen/CGCall.cpp index 37a9a5eaff..9deec19bf8 100644 --- a/lib/CodeGen/CGCall.cpp +++ b/lib/CodeGen/CGCall.cpp @@ -1405,7 +1405,8 @@ static llvm::Value *tryEmitFusedAutoreleaseOfResult(CodeGenFunction &CGF, static llvm::Value *tryRemoveRetainOfSelf(CodeGenFunction &CGF, llvm::Value *result) { // This is only applicable to a method with an immutable 'self'. - const ObjCMethodDecl *method = dyn_cast<ObjCMethodDecl>(CGF.CurCodeDecl); + const ObjCMethodDecl *method = + dyn_cast_or_null<ObjCMethodDecl>(CGF.CurCodeDecl); if (!method) return 0; const VarDecl *self = method->getSelfDecl(); if (!self->getType().isConstQualified()) return 0; |