diff options
author | Benjamin Kramer <benny.kra@googlemail.com> | 2013-08-24 11:55:49 +0000 |
---|---|---|
committer | Benjamin Kramer <benny.kra@googlemail.com> | 2013-08-24 11:55:49 +0000 |
commit | 892daba8d33b3bd6b3c66067d06f748f9aefd5d7 (patch) | |
tree | 700dcb38c541a840be9419776b070005b35e850a /llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp | |
parent | 139e5c5b75aed5353c3941aa6e8dad1ebb51e2e5 (diff) | |
download | bcm5719-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.cpp | 5 |
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(), |