diff options
author | Rafael Espindola <rafael.espindola@gmail.com> | 2013-10-25 15:01:34 +0000 |
---|---|---|
committer | Rafael Espindola <rafael.espindola@gmail.com> | 2013-10-25 15:01:34 +0000 |
commit | 6e1c511aba87ab5f9962ae9328014897459f777a (patch) | |
tree | 4dbed7a0b1d0582c6b88672622eed35f8914ce3f /lib/Analysis | |
parent | c7ef7c2de7f809f6407471048dd0302ebbc824ac (diff) | |
download | external_llvm-6e1c511aba87ab5f9962ae9328014897459f777a.zip external_llvm-6e1c511aba87ab5f9962ae9328014897459f777a.tar.gz external_llvm-6e1c511aba87ab5f9962ae9328014897459f777a.tar.bz2 |
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
Diffstat (limited to 'lib/Analysis')
-rw-r--r-- | lib/Analysis/IPA/CallGraph.cpp | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/lib/Analysis/IPA/CallGraph.cpp b/lib/Analysis/IPA/CallGraph.cpp index 7620fd9..6c18d0d 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; |