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?

llvm-svn: 193412
This commit is contained in:
Rafael Espindola 2013-10-25 15:01:34 +00:00
parent 0617dece78
commit cd9791ce72
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;