FileManager FileMgr;
std::vector<ASTUnit*> ASTUnits;
+ Program Prog;
+
if (InputFilenames.empty())
return 0;
}
llvm::OwningPtr<CallGraph> CG;
- CG.reset(new CallGraph());
+ CG.reset(new CallGraph(Prog));
for (unsigned i = 0, e = ASTUnits.size(); i != e; ++i)
CG->addTU(ASTUnits[i]->getASTContext());
class CallGraph {
/// Program manages all Entities.
- idx::Program Prog;
+ idx::Program &Prog;
typedef std::map<idx::Entity, CallGraphNode *> FunctionMapTy;
CallGraphNode *ExternalCallingNode;
public:
- CallGraph();
+ CallGraph(idx::Program &P);
~CallGraph();
typedef FunctionMapTy::iterator iterator;
}
}
-CallGraph::CallGraph() : Root(0) {
+CallGraph::CallGraph(Program &P) : Prog(P), Root(0) {
ExternalCallingNode = getOrInsertFunction(Entity());
}