[Bitcode] Restore bitcast expression auto-upgrade

Restore the autoupgrade from bitcast to ptrtoint+inttoptr, which
was lost as part of D127729.

This fixes the backwards compatibility issue noted in:
https://reviews.llvm.org/D127729#inline-1236519
This commit is contained in:
Nikita Popov
2022-06-29 14:16:30 +02:00
parent 30ea6a0636
commit 1271b8f57a
3 changed files with 5 additions and 3 deletions

View File

@@ -1442,7 +1442,9 @@ Expected<Value *> BitcodeReader::materializeValue(unsigned StartValID,
if (isConstExprSupported(BC->Opcode) && ConstOps.size() == Ops.size()) {
Constant *C;
if (Instruction::isCast(BC->Opcode)) {
C = ConstantExpr::getCast(BC->Opcode, ConstOps[0], BC->getType());
C = UpgradeBitCastExpr(BC->Opcode, ConstOps[0], BC->getType());
if (!C)
C = ConstantExpr::getCast(BC->Opcode, ConstOps[0], BC->getType());
} else if (Instruction::isUnaryOp(BC->Opcode)) {
C = ConstantExpr::get(BC->Opcode, ConstOps[0], BC->Flags);
} else if (Instruction::isBinaryOp(BC->Opcode)) {