Added --grsimple-view option to clang driver; this is the same as
--grsimple except that it visualizes the ExplodedGraph using dot and
outputs the current function being analyzed.  --grsimple is now silent
except when it emits diagnostics.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47146 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/Driver/ASTConsumers.cpp b/Driver/ASTConsumers.cpp
index 08e2238..73f843f 100644
--- a/Driver/ASTConsumers.cpp
+++ b/Driver/ASTConsumers.cpp
@@ -580,20 +580,23 @@
   class GRSimpleValsVisitor : public CFGVisitor {
     Diagnostic &Diags;
     ASTContext* Ctx;
+    bool Visualize;
   public:
-    GRSimpleValsVisitor(Diagnostic &diags) : Diags(diags) {}
+    GRSimpleValsVisitor(Diagnostic &diags, bool visualize)
+      : Diags(diags), Visualize(visualize) {}
     
     virtual void Initialize(ASTContext &Context) { Ctx = &Context; }    
     virtual void VisitCFG(CFG& C, FunctionDecl&);
+    virtual bool printFuncDeclStart() { return Visualize; }
   };
 } // end anonymous namespace
 
-ASTConsumer* clang::CreateGRSimpleVals(Diagnostic &Diags) {
-  return new GRSimpleValsVisitor(Diags);
+ASTConsumer* clang::CreateGRSimpleVals(Diagnostic &Diags, bool Visualize) {
+  return new GRSimpleValsVisitor(Diags, Visualize);
 }
 
 void GRSimpleValsVisitor::VisitCFG(CFG& C, FunctionDecl& FD) {
-  RunGRSimpleVals(C, FD, *Ctx, Diags);
+  RunGRSimpleVals(C, FD, *Ctx, Diags, Visualize);
 }
 
 //===----------------------------------------------------------------------===//