aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Bitcode/Reader/BitcodeReader.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/lib/Bitcode/Reader/BitcodeReader.cpp')
-rw-r--r--llvm/lib/Bitcode/Reader/BitcodeReader.cpp12
1 files changed, 9 insertions, 3 deletions
diff --git a/llvm/lib/Bitcode/Reader/BitcodeReader.cpp b/llvm/lib/Bitcode/Reader/BitcodeReader.cpp
index 6a3012d..63b084c 100644
--- a/llvm/lib/Bitcode/Reader/BitcodeReader.cpp
+++ b/llvm/lib/Bitcode/Reader/BitcodeReader.cpp
@@ -5076,8 +5076,10 @@ Error BitcodeReader::parseFunctionBody(Function *F) {
cast<InvokeInst>(I)->setCallingConv(
static_cast<CallingConv::ID>(CallingConv::MaxID & CCInfo));
cast<InvokeInst>(I)->setAttributes(PAL);
- if (Error Err = propagateAttributeTypes(cast<CallBase>(I), ArgTyIDs))
+ if (Error Err = propagateAttributeTypes(cast<CallBase>(I), ArgTyIDs)) {
+ I->deleteValue();
return Err;
+ }
break;
}
@@ -5171,8 +5173,10 @@ Error BitcodeReader::parseFunctionBody(Function *F) {
cast<CallBrInst>(I)->setCallingConv(
static_cast<CallingConv::ID>((0x7ff & CCInfo) >> bitc::CALL_CCONV));
cast<CallBrInst>(I)->setAttributes(PAL);
- if (Error Err = propagateAttributeTypes(cast<CallBase>(I), ArgTyIDs))
+ if (Error Err = propagateAttributeTypes(cast<CallBase>(I), ArgTyIDs)) {
+ I->deleteValue();
return Err;
+ }
break;
}
case bitc::FUNC_CODE_INST_UNREACHABLE: // UNREACHABLE
@@ -5784,8 +5788,10 @@ Error BitcodeReader::parseFunctionBody(Function *F) {
TCK = CallInst::TCK_NoTail;
cast<CallInst>(I)->setTailCallKind(TCK);
cast<CallInst>(I)->setAttributes(PAL);
- if (Error Err = propagateAttributeTypes(cast<CallBase>(I), ArgTyIDs))
+ if (Error Err = propagateAttributeTypes(cast<CallBase>(I), ArgTyIDs)) {
+ I->deleteValue();
return Err;
+ }
if (FMF.any()) {
if (!isa<FPMathOperator>(I))
return error("Fast-math-flags specified for call without "