diff options
Diffstat (limited to 'llvm/lib/Bitcode/Reader/BitcodeReader.cpp')
| -rw-r--r-- | llvm/lib/Bitcode/Reader/BitcodeReader.cpp | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/llvm/lib/Bitcode/Reader/BitcodeReader.cpp b/llvm/lib/Bitcode/Reader/BitcodeReader.cpp index 767b5f5..6dd2fdb 100644 --- a/llvm/lib/Bitcode/Reader/BitcodeReader.cpp +++ b/llvm/lib/Bitcode/Reader/BitcodeReader.cpp @@ -2511,9 +2511,10 @@ Error BitcodeReader::parseConstants() { SmallVector<int, 16> Mask; ShuffleVectorInst::getShuffleMask(Op2, Mask); Value *V = ConstantExpr::getShuffleVector(Op0, Op1, Mask); - ValueList.assignValue( - CstNo, V, - getVirtualTypeID(V->getType(), getContainedTypeID(OpTyID))); + if (Error Err = ValueList.assignValue( + CstNo, V, + getVirtualTypeID(V->getType(), getContainedTypeID(OpTyID)))) + return Err; } for (auto &DelayedSelector : DelayedSelectors) { Type *OpTy = DelayedSelector.OpTy; @@ -2539,7 +2540,8 @@ Error BitcodeReader::parseConstants() { Constant *Op0 = ValueList.getConstantFwdRef(Op0Idx, SelectorTy, SelectorTyID); Value *V = ConstantExpr::getSelect(Op0, Op1, Op2); - ValueList.assignValue(CstNo, V, OpTyID); + if (Error Err = ValueList.assignValue(CstNo, V, OpTyID)) + return Err; } if (NextCstNo != ValueList.size()) @@ -3146,7 +3148,8 @@ Error BitcodeReader::parseConstants() { } assert(V->getType() == getTypeByID(CurTyID) && "Incorrect result type ID"); - ValueList.assignValue(NextCstNo, V, CurTyID); + if (Error Err = ValueList.assignValue(NextCstNo, V, CurTyID)) + return Err; ++NextCstNo; } } @@ -5880,7 +5883,8 @@ Error BitcodeReader::parseFunctionBody(Function *F) { if (!I->getType()->isVoidTy()) { assert(I->getType() == getTypeByID(ResTypeID) && "Incorrect result type ID"); - ValueList.assignValue(NextValueNo++, I, ResTypeID); + if (Error Err = ValueList.assignValue(NextValueNo++, I, ResTypeID)) + return Err; } } |
