Fix Value dangling reference debug output

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@231889 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Andrew Kaylor 2015-03-10 23:55:38 +00:00
parent 4ec858ec4b
commit dd3224b24f
2 changed files with 5 additions and 7 deletions

View File

@ -68,7 +68,7 @@ void TypeFinder::run(const Module &M, bool onlyNamed) {
// instructions with this loop.) // instructions with this loop.)
for (User::const_op_iterator OI = I.op_begin(), OE = I.op_end(); for (User::const_op_iterator OI = I.op_begin(), OE = I.op_end();
OI != OE; ++OI) OI != OE; ++OI)
if (!isa<Instruction>(OI)) if (*OI && !isa<Instruction>(OI))
incorporateValue(*OI); incorporateValue(*OI);
// Incorporate types hiding in metadata. // Incorporate types hiding in metadata.

View File

@ -69,15 +69,13 @@ Value::~Value() {
#ifndef NDEBUG // Only in -g mode... #ifndef NDEBUG // Only in -g mode...
// Check to make sure that there are no uses of this value that are still // Check to make sure that there are no uses of this value that are still
// around when the value is destroyed. If there are, then we have a dangling // around when the value is destroyed. If there are, then we have a dangling
// reference and something is wrong. This code is here to print out what is // reference and something is wrong. This code is here to print out where
// still being referenced. The value in question should be printed as // the value is still being referenced.
// a <badref>
// //
if (!use_empty()) { if (!use_empty()) {
dbgs() << "While deleting: " << *VTy << " %" << getName() << "\n"; dbgs() << "While deleting: " << *VTy << " %" << getName() << "\n";
for (use_iterator I = use_begin(), E = use_end(); I != E; ++I) for (auto *U : users())
dbgs() << "Use still stuck around after Def is destroyed:" dbgs() << "Use still stuck around after Def is destroyed:" << *U << "\n";
<< **I << "\n";
} }
#endif #endif
assert(use_empty() && "Uses remain when a value is destroyed!"); assert(use_empty() && "Uses remain when a value is destroyed!");