]> granicus.if.org Git - clang/commitdiff
eliminate a call to NextToken() when parsing ::foo
authorChris Lattner <sabre@nondot.org>
Sat, 19 Dec 2009 01:11:05 +0000 (01:11 +0000)
committerChris Lattner <sabre@nondot.org>
Sat, 19 Dec 2009 01:11:05 +0000 (01:11 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@91738 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Parse/ParseTentative.cpp

index f521bc3a7a625dff9bd2c1a5667723c79e80eec4..51c56706bb596f6615226bd32632bfc03bbd585c 100644 (file)
@@ -680,9 +680,10 @@ Parser::TPResult Parser::isCXXDeclarationSpecifier() {
     // Otherwise, not a typename.
     return TPResult::False();
 
-  case tok::coloncolon:     // ::foo::bar
-    if (NextToken().is(tok::kw_new) ||    // ::new
-        NextToken().is(tok::kw_delete))   // ::delete
+  case tok::coloncolon: {    // ::foo::bar
+    const Token &Next = NextToken();
+    if (Next.is(tok::kw_new) ||    // ::new
+        Next.is(tok::kw_delete))   // ::delete
       return TPResult::False();
 
     // Annotate typenames and C++ scope specifiers.  If we get one, just
@@ -691,7 +692,8 @@ Parser::TPResult Parser::isCXXDeclarationSpecifier() {
       return isCXXDeclarationSpecifier();
     // Otherwise, not a typename.
     return TPResult::False();
-
+  }
+      
     // decl-specifier:
     //   storage-class-specifier
     //   type-specifier
@@ -699,7 +701,6 @@ Parser::TPResult Parser::isCXXDeclarationSpecifier() {
     //   'friend'
     //   'typedef'
     //   'constexpr'
-
   case tok::kw_friend:
   case tok::kw_typedef:
   case tok::kw_constexpr: