diff --git a/llvm/lib/Analysis/ConstantFolding.cpp b/llvm/lib/Analysis/ConstantFolding.cpp index 08c60b42ae79c..fbc627542b234 100644 --- a/llvm/lib/Analysis/ConstantFolding.cpp +++ b/llvm/lib/Analysis/ConstantFolding.cpp @@ -235,7 +235,8 @@ Constant *FoldBitCast(Constant *C, Type *DestTy, const DataLayout &DL) { ShiftAmt += isLittleEndian ? SrcBitSize : -SrcBitSize; // Mix it in. - Elt = ConstantExpr::getOr(Elt, Src); + Elt = ConstantFoldBinaryOpOperands(Instruction::Or, Elt, Src, DL); + assert(Elt && "Constant folding cannot fail on plain integers"); } Result.push_back(Elt); }