Call destroy from ~BasicCallGraph.

This fix a memory leak found by valgrind.

Calling it from the base class destructor would not destroy the BasicCallGraph
bits.

FIXME: BasicCallGraph is the only thing that inherits from CallGraph. Can
we merge the two?

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193412 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Rafael Espindola 2013-10-25 15:01:34 +00:00
parent c7ef7c2de7
commit 6e1c511aba
2 changed files with 5 additions and 1 deletions

View File

@ -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.

View File

@ -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;