summaryrefslogtreecommitdiff
path: root/src/shared/cplusplus/Parser.cpp
diff options
context:
space:
mode:
authorErik Verbruggen <erik.verbruggen@nokia.com>2010-01-22 09:44:40 +0100
committerErik Verbruggen <erik.verbruggen@nokia.com>2010-01-22 09:54:00 +0100
commit007d76aadabe93d46394796dd2ad85aa667178b3 (patch)
treea7e6c6876d140540057f2ded342bc3daf9a81cc6 /src/shared/cplusplus/Parser.cpp
parent800f4babc68f7d44d62da9f38ad51079fc1c8db6 (diff)
downloadqt-creator-007d76aadabe93d46394796dd2ad85aa667178b3.tar.gz
Fixed bug in ObjC class field parsing which could result in an invalid pointer in the AST.
Diffstat (limited to 'src/shared/cplusplus/Parser.cpp')
-rw-r--r--src/shared/cplusplus/Parser.cpp8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/shared/cplusplus/Parser.cpp b/src/shared/cplusplus/Parser.cpp
index c906a123f8..69ff99708f 100644
--- a/src/shared/cplusplus/Parser.cpp
+++ b/src/shared/cplusplus/Parser.cpp
@@ -5142,8 +5142,6 @@ bool Parser::parseObjCPropertyDeclaration(DeclarationAST *&node, SpecifierListAS
if (!parseObjCPropertyAttribute(last->value)) {
_translationUnit->error(_tokenIndex, "expected token `%s' got `%s'",
Token::name(T_IDENTIFIER), tok().spell());
- while (LA() != T_RPAREN)
- consumeToken();
break;
}
}
@@ -5152,9 +5150,11 @@ bool Parser::parseObjCPropertyDeclaration(DeclarationAST *&node, SpecifierListAS
match(T_RPAREN, &(ast->rparen_token));
}
- parseSimpleDeclaration(ast->simple_declaration, /*accept-struct-declarators = */ true);
+ if (parseSimpleDeclaration(ast->simple_declaration, /*accept-struct-declarators = */ true))
+ node = ast;
+ else
+ _translationUnit->error(_tokenIndex, "expected a simple declaration");
- node = ast;
return true;
}