diff options
Diffstat (limited to 'llvm/lib/Bitcode/Reader/BitcodeReader.cpp')
-rw-r--r-- | llvm/lib/Bitcode/Reader/BitcodeReader.cpp | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/llvm/lib/Bitcode/Reader/BitcodeReader.cpp b/llvm/lib/Bitcode/Reader/BitcodeReader.cpp index 6a72ed8..153388b 100644 --- a/llvm/lib/Bitcode/Reader/BitcodeReader.cpp +++ b/llvm/lib/Bitcode/Reader/BitcodeReader.cpp @@ -4168,7 +4168,7 @@ Error BitcodeReader::parseFunctionBody(Function *F) { if (!Vec->getType()->isVectorTy()) return error("Invalid type for value"); I = ExtractElementInst::Create(Vec, Idx); - FullTy = FullTy->getVectorElementType(); + FullTy = cast<VectorType>(FullTy)->getElementType(); InstructionList.push_back(I); break; } @@ -4202,8 +4202,9 @@ Error BitcodeReader::parseFunctionBody(Function *F) { return error("Invalid type for value"); I = new ShuffleVectorInst(Vec1, Vec2, Mask); - FullTy = VectorType::get(FullTy->getVectorElementType(), - Mask->getType()->getVectorElementCount()); + FullTy = + VectorType::get(cast<VectorType>(FullTy)->getElementType(), + cast<VectorType>(Mask->getType())->getElementCount()); InstructionList.push_back(I); break; } @@ -5195,8 +5196,8 @@ Error BitcodeReader::parseFunctionBody(Function *F) { !FullTy->isPointerTy() && !isa<StructType>(FullTy) && !isa<ArrayType>(FullTy) && (!isa<VectorType>(FullTy) || - FullTy->getVectorElementType()->isFloatingPointTy() || - FullTy->getVectorElementType()->isIntegerTy()) && + cast<VectorType>(FullTy)->getElementType()->isFloatingPointTy() || + cast<VectorType>(FullTy)->getElementType()->isIntegerTy()) && "Structured types must be assigned with corresponding non-opaque " "pointer type"); } |