]> granicus.if.org Git - clang/commitdiff
Simplify.
authorDaniel Dunbar <daniel@zuster.org>
Wed, 11 Nov 2009 10:22:48 +0000 (10:22 +0000)
committerDaniel Dunbar <daniel@zuster.org>
Wed, 11 Nov 2009 10:22:48 +0000 (10:22 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86830 91177308-0d34-0410-b5e6-96231b3b80d8

tools/clang-cc/clang-cc.cpp

index d8c9ddd220d505ac401588aa41cd33d1219c3e07..e55deb51c980e6e3cd5f606e926e03078e02834c 100644 (file)
@@ -633,6 +633,7 @@ static ASTConsumer *CreateConsumerAction(const CompilerInvocation &CompOpts,
     return CreateBlockRewriter(InFile, PP.getDiagnostics(),
                                PP.getLangOptions());
 
+  case FixIt: // We add the rewriter later.
   case ParseSyntaxOnly:
     return new ASTConsumer();
 
@@ -766,23 +767,15 @@ static void ProcessInputFile(const CompilerInvocation &CompOpts,
     DoRewriteTest(PP, OS.get());
     ClearSourceMgr = true;
     break;
+  }
 
-  case FixIt:
-    Consumer.reset(new ASTConsumer());
+  // Check if we want a fix-it rewriter.
+  if (PA == FixIt || !FixItAtLocations.empty()) {
     FixItRewrite = new FixItRewriter(PP.getDiagnostics(),
                                      PP.getSourceManager(),
                                      PP.getLangOptions());
-    break;
-  }
-
-  if (FixItAtLocations.size() > 0) {
-    // Even without the "-fixit" flag, we may have some specific locations where
-    // the user has requested fixes. Process those locations now.
-    if (!FixItRewrite)
-      FixItRewrite = new FixItRewriter(PP.getDiagnostics(),
-                                       PP.getSourceManager(),
-                                       PP.getLangOptions());
-    if (!AddFixItLocations(FixItRewrite, PP.getFileManager())) {
+    if (!FixItAtLocations.empty() &&
+        !AddFixItLocations(FixItRewrite, PP.getFileManager())) {
       // All of the fix-it locations were bad. Don't fix anything.
       delete FixItRewrite;
       FixItRewrite = 0;