diff --git a/src/shared/cplusplus/Parser.cpp b/src/shared/cplusplus/Parser.cpp index 9882293000e1224c78039f95a83d680262449e57..bd2f88abce3868e890a5af0d2564b2f185a0b634 100644 --- a/src/shared/cplusplus/Parser.cpp +++ b/src/shared/cplusplus/Parser.cpp @@ -3772,7 +3772,6 @@ bool Parser::parseObjCMethodDefinitionList() DeclarationAST *declaration = 0; parseDeclaration(declaration); } else { - unsigned start = cursor(); DeclarationAST *declaration = 0; if (! parseBlockDeclaration(declaration)) { rewind(start); @@ -3791,10 +3790,12 @@ bool Parser::parseObjCMethodDefinitionList() bool Parser::parseObjCMethodDefinition() { - if (LA() != T_MINUS && LA() != T_PLUS) + if (! parseObjCMethodPrototype()) return false; - parseObjCMethodSignature(); + if (LA() == T_SEMICOLON) + consumeToken(); + StatementAST *function_body = 0; parseFunctionBody(function_body); return true;