]> granicus.if.org Git - clang/commitdiff
add -view-call-graph option to wpa.
authorZhongxing Xu <xuzhongxing@gmail.com>
Fri, 2 Jul 2010 06:58:30 +0000 (06:58 +0000)
committerZhongxing Xu <xuzhongxing@gmail.com>
Fri, 2 Jul 2010 06:58:30 +0000 (06:58 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@107462 91177308-0d34-0410-b5e6-96231b3b80d8

examples/wpa/clang-wpa.cpp

index c75626dab5d2aeb11e8989e88053350002e68934..04a706e0a0ca8d2f2d9e7438a517367387ff6c87 100644 (file)
@@ -26,6 +26,9 @@ using namespace idx;
 static llvm::cl::list<std::string>
 InputFilenames(llvm::cl::Positional, llvm::cl::desc("<input AST files>"));
 
+static llvm::cl::opt<bool> ViewCallGraph("view-call-graph", 
+                                     llvm::cl::desc("Display the call graph."));
+
 int main(int argc, char **argv) {
   llvm::cl::ParseCommandLineOptions(argc, argv, "clang-wpa");
   FileManager FileMgr;
@@ -48,11 +51,14 @@ int main(int argc, char **argv) {
     ASTUnits.push_back(AST.take());
   }
 
-  llvm::OwningPtr<CallGraph> CG;
-  CG.reset(new CallGraph(Prog));
+  if (ViewCallGraph) {
+    llvm::OwningPtr<CallGraph> CG;
+    CG.reset(new CallGraph(Prog));
 
-  for (unsigned i = 0, e = ASTUnits.size(); i != e; ++i)
-    CG->addTU(ASTUnits[i]->getASTContext());
+    for (unsigned i = 0, e = ASTUnits.size(); i != e; ++i)
+      CG->addTU(ASTUnits[i]->getASTContext());
 
-  CG->ViewCallGraph();
+    CG->ViewCallGraph();
+    return 0;
+  }
 }