diff options
author | Adrian Prantl <aprantl@apple.com> | 2015-02-11 17:45:10 +0000 |
---|---|---|
committer | Adrian Prantl <aprantl@apple.com> | 2015-02-11 17:45:10 +0000 |
commit | 18a25b016e5dcfca2d0710df5279b7aca8228bef (patch) | |
tree | 577c41f21e3979933e5260f7d921f9cf8873b78a /llvm/lib/IR/DIBuilder.cpp | |
parent | 9a8049238eae256b6366ec05e97631afe4c3168c (diff) | |
download | bcm5719-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.cpp | 12 |
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, |