summaryrefslogtreecommitdiffstats
path: root/llvm/lib/IR/DIBuilder.cpp
diff options
context:
space:
mode:
authorAdrian Prantl <aprantl@apple.com>2015-02-11 17:45:10 +0000
committerAdrian Prantl <aprantl@apple.com>2015-02-11 17:45:10 +0000
commit18a25b016e5dcfca2d0710df5279b7aca8228bef (patch)
tree577c41f21e3979933e5260f7d921f9cf8873b78a /llvm/lib/IR/DIBuilder.cpp
parent9a8049238eae256b6366ec05e97631afe4c3168c (diff)
downloadbcm5719-llvm-18a25b016e5dcfca2d0710df5279b7aca8228bef.tar.gz
bcm5719-llvm-18a25b016e5dcfca2d0710df5279b7aca8228bef.zip
Allow DIBuilder::replaceVTableHolder() to work with temporary nodes,
tested via the clang test CodeGenCXX/vtable-holder-self-reference.cpp . llvm-svn: 228854
Diffstat (limited to 'llvm/lib/IR/DIBuilder.cpp')
-rw-r--r--llvm/lib/IR/DIBuilder.cpp12
1 files changed, 6 insertions, 6 deletions
diff --git a/llvm/lib/IR/DIBuilder.cpp b/llvm/lib/IR/DIBuilder.cpp
index 5cdb6a6487d..5217a4ea6dc 100644
--- a/llvm/lib/IR/DIBuilder.cpp
+++ b/llvm/lib/IR/DIBuilder.cpp
@@ -1229,12 +1229,12 @@ void DIBuilder::replaceVTableHolder(DICompositeType &T, DICompositeType VTableHo
if (T != VTableHolder)
return;
- // Look for unresolved operands. T has dropped RAUW support and is already
- // marked resolved, orphaning any cycles underneath it.
- assert(T->isResolved() && "Expected self-reference to be resolved");
- for (const MDOperand &O : T->operands())
- if (auto *N = dyn_cast_or_null<MDNode>(O))
- trackIfUnresolved(N);
+ // Look for unresolved operands. T will drop RAUW support, orphaning any
+ // cycles underneath it.
+ if (T->isResolved())
+ for (const MDOperand &O : T->operands())
+ if (auto *N = dyn_cast_or_null<MDNode>(O))
+ trackIfUnresolved(N);
}
void DIBuilder::replaceArrays(DICompositeType &T, DIArray Elements,
OpenPOWER on IntegriCloud