X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=lib%2FBitcode%2FReader%2FBitcodeReader.cpp;h=a9adaf4febe50cdb057fe8b812bf2c1445a87d3f;hb=8ec0aee3b4a0b038732f30226999145d666186f2;hp=fe48c254d247f6e97819c56964bcc961246ac34d;hpb=dc8beeba1b4cd39941571e8be363fb4cca729d16;p=oota-llvm.git diff --git a/lib/Bitcode/Reader/BitcodeReader.cpp b/lib/Bitcode/Reader/BitcodeReader.cpp index fe48c254d24..a9adaf4febe 100644 --- a/lib/Bitcode/Reader/BitcodeReader.cpp +++ b/lib/Bitcode/Reader/BitcodeReader.cpp @@ -541,7 +541,7 @@ void BitcodeReaderMDValueList::AssignValue(Metadata *MD, unsigned Idx) { } // If there was a forward reference to this value, replace it. - MDNodeFwdDecl *PrevMD = cast(OldMD.get()); + MDTuple *PrevMD = cast(OldMD.get()); PrevMD->replaceAllUsesWith(MD); MDNode::deleteTemporary(PrevMD); --NumFwdRefs; @@ -573,9 +573,12 @@ void BitcodeReaderMDValueList::tryToResolveCycles() { // Resolve any cycles. for (auto &MD : MDValuePtrs) { - assert(!(MD && isa(MD)) && "Unexpected forward reference"); - if (auto *N = dyn_cast_or_null(MD)) - N->resolveCycles(); + auto *N = dyn_cast_or_null(MD); + if (!N) + continue; + + assert(!N->isTemporary() && "Unexpected forward reference"); + N->resolveCycles(); } }