aboutsummaryrefslogtreecommitdiff
path: root/lib/Parse/ParseDecl.cpp
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2009-01-21 19:19:26 +0000
committerChris Lattner <sabre@nondot.org>2009-01-21 19:19:26 +0000
commit837acd040662ba3e9fcfbf4be754416b00b18216 (patch)
tree3d44f16578c2019c451807bd43d1b8eb546bf9da /lib/Parse/ParseDecl.cpp
parent2fe9e9a4909c03a4316adb5bd16bcc4c13cac632 (diff)
ParseOptionalTypeSpecifier should consume a token if it returns true.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62704 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Parse/ParseDecl.cpp')
-rw-r--r--lib/Parse/ParseDecl.cpp9
1 files changed, 5 insertions, 4 deletions
diff --git a/lib/Parse/ParseDecl.cpp b/lib/Parse/ParseDecl.cpp
index bf922780c7..384bdc19d0 100644
--- a/lib/Parse/ParseDecl.cpp
+++ b/lib/Parse/ParseDecl.cpp
@@ -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.