diff --git a/include/llvm/Analysis/CallGraph.h b/include/llvm/Analysis/CallGraph.h index 591484dd278..926da76b5f3 100644 --- a/include/llvm/Analysis/CallGraph.h +++ b/include/llvm/Analysis/CallGraph.h @@ -152,7 +152,7 @@ protected: CallGraph() {} public: - virtual ~CallGraph() { destroy(); } + virtual ~CallGraph() { } /// initialize - Call this method before calling other methods, /// re/initializes the state of the CallGraph. diff --git a/lib/Analysis/IPA/CallGraph.cpp b/lib/Analysis/IPA/CallGraph.cpp index 7620fd9842c..6c18d0d1a64 100644 --- a/lib/Analysis/IPA/CallGraph.cpp +++ b/lib/Analysis/IPA/CallGraph.cpp @@ -46,12 +46,16 @@ public: ExternalCallingNode(0), CallsExternalNode(0) { initializeBasicCallGraphPass(*PassRegistry::getPassRegistry()); } + ~BasicCallGraph() { + destroy(); + } // runOnModule - Compute the call graph for the specified module. virtual bool runOnModule(Module &M) { CallGraph::initialize(M); ExternalCallingNode = getOrInsertFunction(0); + assert(!CallsExternalNode); CallsExternalNode = new CallGraphNode(0); Root = 0;