Move logic for "-checker-simple" to the new AnalysisConsumer interface.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@53028 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/Driver/AnalysisConsumer.cpp b/Driver/AnalysisConsumer.cpp
index 57be0ff..ea24186 100644
--- a/Driver/AnalysisConsumer.cpp
+++ b/Driver/AnalysisConsumer.cpp
@@ -227,24 +227,30 @@
 }
 
 
-static void ActionRefLeakCheckerAux(AnalysisManager& mgr, bool GCEnabled,
-                                    bool StandardWarnings) {
-    
-  // Construct the analysis engine.
-  GRExprEngine Eng(*mgr.getCFG(), *mgr.getCodeDecl(), mgr.getContext());
+static void ActionGRExprEngine(AnalysisManager& mgr, GRTransferFuncs* tf) {
   
-  // Construct the transfer function object.
-  llvm::OwningPtr<GRTransferFuncs>
-  TF(MakeCFRefCountTF(mgr.getContext(), GCEnabled, StandardWarnings,
-                      mgr.getLangOptions()));
-     
-  Eng.setTransferFunctions(TF.get());
-
+  llvm::OwningPtr<GRTransferFuncs> TF(tf);
+  
+  // Construct the analysis engine.
+  GRExprEngine Eng(*mgr.getCFG(), *mgr.getCodeDecl(), mgr.getContext());  
+  Eng.setTransferFunctions(tf);
+  
   // Execute the worklist algorithm.
   Eng.ExecuteWorkList();
-   
+  
   // Display warnings.
-  Eng.EmitWarnings(mgr.getDiagnostic(), mgr.getPathDiagnosticClient());     
+  Eng.EmitWarnings(mgr.getDiagnostic(), mgr.getPathDiagnosticClient());   
+}
+
+static void ActionRefLeakCheckerAux(AnalysisManager& mgr, bool GCEnabled,
+                                    bool StandardWarnings) {
+
+  GRTransferFuncs* TF = MakeCFRefCountTF(mgr.getContext(),
+                                         GCEnabled,
+                                         StandardWarnings,
+                                         mgr.getLangOptions());
+    
+  ActionGRExprEngine(mgr, TF);
 }
 
 static void ActionRefLeakChecker(AnalysisManager& mgr) {
@@ -267,6 +273,10 @@
  }
 }
 
+static void ActionSimpleChecks(AnalysisManager& mgr) {
+  ActionGRExprEngine(mgr, MakeGRSimpleValsTF());
+}
+
 //===----------------------------------------------------------------------===//
 // AnalysisConsumer creation.
 //===----------------------------------------------------------------------===//
@@ -298,6 +308,10 @@
         C->addCodeAction(&ActionRefLeakChecker);
         break;
         
+      case CheckerSimple:
+        C->addCodeAction(&ActionSimpleChecks);
+        break;
+        
       default: break;
     }