ParseOptionalTypeSpecifier should consume a token if it returns true.

llvm-svn: 62704
This commit is contained in:
Chris Lattner 2009-01-21 19:19:26 +00:00
parent d1760b7837
commit 78ecd4f61e
1 changed files with 5 additions and 4 deletions

View File

@ -511,9 +511,8 @@ void Parser::ParseDeclarationSpecifiers(DeclSpec &DS,
case tok::identifier: {
// In C++, check to see if this is a scope specifier like foo::bar::, if
// so handle it as such. This is important for ctor parsing.
if (getLang().CPlusPlus &&
TryAnnotateCXXScopeToken())
continue;
if (getLang().CPlusPlus && TryAnnotateCXXScopeToken())
continue;
// This identifier can only be a typedef name if we haven't already seen
// a type-specifier. Without this check we misparse:
@ -842,7 +841,9 @@ bool Parser::ParseOptionalTypeSpecifier(DeclSpec &DS, int& isInvalid,
case tok::kw___cdecl:
case tok::kw___stdcall:
case tok::kw___fastcall:
return PP.getLangOptions().Microsoft;
if (!PP.getLangOptions().Microsoft) return false;
ConsumeToken();
return true;
default:
// Not a type-specifier; do nothing.