aboutsummaryrefslogtreecommitdiff
path: root/lib/Parse/ParseObjc.cpp
diff options
context:
space:
mode:
authorSteve Naroff <snaroff@apple.com>2008-07-25 14:30:25 +0000
committerSteve Naroff <snaroff@apple.com>2008-07-25 14:30:25 +0000
commit5928cb633d5d5e73c598d5625bf717a57e6b10a3 (patch)
tree5559cb9dbef4bba22af6be6394ef5aeb5a7903bd /lib/Parse/ParseObjc.cpp
parente3dce51cfb8facc210179f88794a445de7ff5536 (diff)
Fix Parser::ParseObjCMethodDefinition(). Only call the actions module for valid MDecl's.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54013 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Parse/ParseObjc.cpp')
-rw-r--r--lib/Parse/ParseObjc.cpp9
1 files changed, 6 insertions, 3 deletions
diff --git a/lib/Parse/ParseObjc.cpp b/lib/Parse/ParseObjc.cpp
index 7d7ba10a38..38379b14e6 100644
--- a/lib/Parse/ParseObjc.cpp
+++ b/lib/Parse/ParseObjc.cpp
@@ -1292,8 +1292,10 @@ Parser::DeclTy *Parser::ParseObjCMethodDefinition() {
EnterScope(Scope::FnScope|Scope::DeclScope);
// Tell the actions module that we have entered a method definition with the
- // specified Declarator for the method.
- Actions.ObjCActOnStartOfMethodDef(CurScope, MDecl);
+ // specified Declarator for the method. If we don't have an MDecl, avoid
+ // calling the actions module.
+ if (MDecl)
+ Actions.ObjCActOnStartOfMethodDef(CurScope, MDecl);
StmtResult FnBody = ParseCompoundStatementBody();
@@ -1305,7 +1307,8 @@ Parser::DeclTy *Parser::ParseObjCMethodDefinition() {
ExitScope();
// TODO: Pass argument information.
- Actions.ActOnFinishFunctionBody(MDecl, FnBody.Val);
+ if (MDecl)
+ Actions.ActOnFinishFunctionBody(MDecl, FnBody.Val);
return MDecl;
}