From f20288c91601dd3fbab6362a3400a0e6c472795f Mon Sep 17 00:00:00 2001 From: Zhongxing Xu Date: Wed, 28 Oct 2009 12:23:03 +0000 Subject: [PATCH] make CallGraph more flexible by letting it accept ASTContext instead of ASTUnit. Patch by Simone Pellegrini. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@85386 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/clang/Analysis/CallGraph.h | 3 +-- lib/Analysis/CallGraph.cpp | 4 +--- tools/wpa/clang-wpa.cpp | 4 ++-- 3 files changed, 4 insertions(+), 7 deletions(-) diff --git a/include/clang/Analysis/CallGraph.h b/include/clang/Analysis/CallGraph.h index fabeea38d5..5edfe6fea8 100644 --- a/include/clang/Analysis/CallGraph.h +++ b/include/clang/Analysis/CallGraph.h @@ -17,7 +17,6 @@ #include "clang/Index/ASTLocation.h" #include "clang/Index/Entity.h" #include "clang/Index/Program.h" -#include "clang/Frontend/ASTUnit.h" #include "llvm/ADT/DenseMap.h" #include "llvm/ADT/GraphTraits.h" #include "llvm/ADT/STLExtras.h" @@ -87,7 +86,7 @@ public: CallGraphNode *getExternalCallingNode() { return ExternalCallingNode; } - void addTU(ASTUnit &AST); + void addTU(ASTContext &AST); idx::Program &getProgram() { return Prog; } diff --git a/lib/Analysis/CallGraph.cpp b/lib/Analysis/CallGraph.cpp index ae8845db63..17dc0685f8 100644 --- a/lib/Analysis/CallGraph.cpp +++ b/lib/Analysis/CallGraph.cpp @@ -68,10 +68,8 @@ CallGraph::~CallGraph() { } } -void CallGraph::addTU(ASTUnit &AST) { - ASTContext &Ctx = AST.getASTContext(); +void CallGraph::addTU(ASTContext& Ctx) { DeclContext *DC = Ctx.getTranslationUnitDecl(); - for (DeclContext::decl_iterator I = DC->decls_begin(), E = DC->decls_end(); I != E; ++I) { diff --git a/tools/wpa/clang-wpa.cpp b/tools/wpa/clang-wpa.cpp index fa2326dc2b..346634b6f6 100644 --- a/tools/wpa/clang-wpa.cpp +++ b/tools/wpa/clang-wpa.cpp @@ -13,7 +13,7 @@ //===----------------------------------------------------------------------===// #include "clang/Analysis/CallGraph.h" - +#include "clang/Frontend/ASTUnit.h" #include "clang/Basic/FileManager.h" #include "clang/Basic/SourceManager.h" #include "clang/Frontend/TextDiagnosticBuffer.h" @@ -56,7 +56,7 @@ int main(int argc, char **argv) { CG.reset(new CallGraph()); for (unsigned i = 0, e = ASTUnits.size(); i != e; ++i) - CG->addTU(*ASTUnits[i]); + CG->addTU(ASTUnits[i]->getASTContext()); CG->ViewCallGraph(); } -- 2.40.0