]> granicus.if.org Git - clang/commitdiff
use early exits to reduce nesting.
authorChris Lattner <sabre@nondot.org>
Sun, 4 Jan 2009 22:32:19 +0000 (22:32 +0000)
committerChris Lattner <sabre@nondot.org>
Sun, 4 Jan 2009 22:32:19 +0000 (22:32 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61642 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Parse/Parser.cpp

index 3c79d6405cb2c5551221938d04d166f966b4095c..381c84e3178ddc8ff37a60a8716c24bd10ea0b01 100644 (file)
@@ -784,48 +784,49 @@ void Parser::TryAnnotateTypeOrScopeToken() {
   // FIXME: check for a template-id token here, and look it up if it
   // names a type.
 
-  if (SS.isNotEmpty()) {
-    // A C++ scope specifier that isn't followed by a typename.
-    // Push the current token back into the token stream (or revert it if it is
-    // cached) and use an annotation scope token for current token.
-    if (PP.isBacktrackEnabled())
-      PP.RevertCachedTokens(1);
-    else
-      PP.EnterToken(Tok);
-    Tok.setKind(tok::annot_cxxscope);
-    Tok.setAnnotationValue(SS.getScopeRep());
-    Tok.setAnnotationRange(SS.getRange());
-
-    // In case the tokens were cached, have Preprocessor replace them with the
-    // annotation token.
-    PP.AnnotateCachedTokens(Tok);
-  }
+  if (SS.isEmpty())
+    return;
+  
+  // A C++ scope specifier that isn't followed by a typename.
+  // Push the current token back into the token stream (or revert it if it is
+  // cached) and use an annotation scope token for current token.
+  if (PP.isBacktrackEnabled())
+    PP.RevertCachedTokens(1);
+  else
+    PP.EnterToken(Tok);
+  Tok.setKind(tok::annot_cxxscope);
+  Tok.setAnnotationValue(SS.getScopeRep());
+  Tok.setAnnotationRange(SS.getRange());
+
+  // In case the tokens were cached, have Preprocessor replace them with the
+  // annotation token.
+  PP.AnnotateCachedTokens(Tok);
 }
 
 /// TryAnnotateScopeToken - Like TryAnnotateTypeOrScopeToken but only
 /// annotates C++ scope specifiers.
 void Parser::TryAnnotateCXXScopeToken() {
   assert(getLang().CPlusPlus &&
-         "Call sites of this function should be guarded by checking for C++.");
+         "Call sites of this function should be guarded by checking for C++");
 
   if (Tok.is(tok::annot_cxxscope))
     return;
 
   CXXScopeSpec SS;
-  if (MaybeParseCXXScopeSpecifier(SS)) {
+  if (!MaybeParseCXXScopeSpecifier(SS))
+    return;
 
-    // Push the current token back into the token stream (or revert it if it is
-    // cached) and use an annotation scope token for current token.
-    if (PP.isBacktrackEnabled())
-      PP.RevertCachedTokens(1);
-    else
-      PP.EnterToken(Tok);
-    Tok.setKind(tok::annot_cxxscope);
-    Tok.setAnnotationValue(SS.getScopeRep());
-    Tok.setAnnotationRange(SS.getRange());
-
-    // In case the tokens were cached, have Preprocessor replace them with the
-    // annotation token.
-    PP.AnnotateCachedTokens(Tok);
-  }
+  // Push the current token back into the token stream (or revert it if it is
+  // cached) and use an annotation scope token for current token.
+  if (PP.isBacktrackEnabled())
+    PP.RevertCachedTokens(1);
+  else
+    PP.EnterToken(Tok);
+  Tok.setKind(tok::annot_cxxscope);
+  Tok.setAnnotationValue(SS.getScopeRep());
+  Tok.setAnnotationRange(SS.getRange());
+
+  // In case the tokens were cached, have Preprocessor replace them with the
+  // annotation token.
+  PP.AnnotateCachedTokens(Tok);
 }