summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
diff options
context:
space:
mode:
authorBenjamin Kramer <benny.kra@googlemail.com>2013-08-24 11:55:49 +0000
committerBenjamin Kramer <benny.kra@googlemail.com>2013-08-24 11:55:49 +0000
commit892daba8d33b3bd6b3c66067d06f748f9aefd5d7 (patch)
tree700dcb38c541a840be9419776b070005b35e850a /llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
parent139e5c5b75aed5353c3941aa6e8dad1ebb51e2e5 (diff)
downloadbcm5719-llvm-892daba8d33b3bd6b3c66067d06f748f9aefd5d7.tar.gz
bcm5719-llvm-892daba8d33b3bd6b3c66067d06f748f9aefd5d7.zip
DwarfDebug: Delete orphaned children.
Leak found by valgrind. llvm-svn: 189167
Diffstat (limited to 'llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp')
-rw-r--r--llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp5
1 files changed, 4 insertions, 1 deletions
diff --git a/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp b/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
index 89531235358..f625afe71e1 100644
--- a/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
+++ b/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
@@ -639,7 +639,10 @@ DIE *DwarfDebug::constructScopeDIE(CompileUnit *TheCU, LexicalScope *Scope) {
constructImportedEntityDIE(TheCU, i->second, ScopeDIE);
}
- if (!ScopeDIE) return NULL;
+ if (!ScopeDIE) {
+ std::for_each(Children.begin(), Children.end(), deleter<DIE>);
+ return NULL;
+ }
// Add children
for (SmallVectorImpl<DIE *>::iterator I = Children.begin(),
OpenPOWER on IntegriCloud