Refactored all logic to run the GRSimpleVals and CFRef checker into a common
code path in the clang driver.

Renamed options --grsimple to -checker-simple and -check-cfref to -checker-cfref.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@49500 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Analysis/GRSimpleVals.cpp b/lib/Analysis/GRSimpleVals.cpp
index 960476d..c350ab9 100644
--- a/lib/Analysis/GRSimpleVals.cpp
+++ b/lib/Analysis/GRSimpleVals.cpp
@@ -19,6 +19,7 @@
 #include "clang/Analysis/PathDiagnostic.h"
 #include "clang/Analysis/PathSensitive/ValueState.h"
 #include "clang/Analysis/PathSensitive/BugReporter.h"
+#include "clang/Analysis/LocalCheckers.h"
 #include "llvm/Support/Compiler.h"
 #include <sstream>
 
@@ -310,36 +311,10 @@
 }
 
 //===----------------------------------------------------------------------===//
-// Analysis Driver.
+// Transfer Function creation for External clients.
 //===----------------------------------------------------------------------===//
 
-namespace clang {
-  
-unsigned RunGRSimpleVals(CFG& cfg, Decl& CD, ASTContext& Ctx,
-                         Diagnostic& Diag, PathDiagnosticClient* PD,
-                         bool Visualize, bool TrimGraph) {
-
-  // Construct the analysis engine.
-  GRExprEngine Eng(cfg, CD, Ctx);
-  
-  // Set base transfer functions.
-  GRSimpleVals GRSV;
-  Eng.setTransferFunctions(GRSV);
-  
-  // Execute the worklist algorithm.
-  Eng.ExecuteWorkList();
-  
-  // Display warnings.
-  Eng.EmitWarnings(Diag, PD);
-  
-#ifndef NDEBUG
-  if (Visualize) Eng.ViewGraph(TrimGraph);
-#endif
-  
-  return Eng.getGraph().size();
-}
-  
-} // end clang namespace
+GRTransferFuncs* clang::MakeGRSimpleValsTF() { return new GRSimpleVals(); }  
 
 //===----------------------------------------------------------------------===//
 // Transfer function for Casts.