diff --git a/lib/Bitcode/Reader/BitcodeReader.cpp b/lib/Bitcode/Reader/BitcodeReader.cpp index a1ae6baff9f..ea33578502b 100644 --- a/lib/Bitcode/Reader/BitcodeReader.cpp +++ b/lib/Bitcode/Reader/BitcodeReader.cpp @@ -1963,11 +1963,11 @@ error_code BitcodeReader::ParseModule(bool Resume) { Type *Ty = getTypeByID(Record[0]); if (!Ty) return Error(InvalidRecord); - if (!Ty->isPointerTy()) + auto *PTy = dyn_cast(Ty); + if (!PTy) return Error(InvalidTypeForValue); - auto *PTy = cast(Ty); - GlobalAlias *NewGA = + auto *NewGA = new GlobalAlias(PTy->getElementType(), GetDecodedLinkage(Record[2]), "", nullptr, TheModule, PTy->getAddressSpace()); // Old bitcode files didn't have visibility field.