From b35c585a9a8185ca7de378a0d45ebb68e385e7a0 Mon Sep 17 00:00:00 2001 From: Florian Hahn Date: Fri, 27 Dec 2019 17:38:18 +0000 Subject: [ConstantRange] Respect destination bitwidth for cast results. We returning a full set, we should use ResultBitWidth. Otherwise we might it assertions when the resulting constant ranges are used later on. Reviewers: nikic, spatel, reames Reviewed By: nikic Differential Revision: https://reviews.llvm.org/D71937 --- llvm/lib/IR/ConstantRange.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'llvm/lib/IR/ConstantRange.cpp') diff --git a/llvm/lib/IR/ConstantRange.cpp b/llvm/lib/IR/ConstantRange.cpp index 2a8ea0657db..3d25cb5bfbd 100644 --- a/llvm/lib/IR/ConstantRange.cpp +++ b/llvm/lib/IR/ConstantRange.cpp @@ -641,7 +641,7 @@ ConstantRange ConstantRange::castOp(Instruction::CastOps CastOp, if (getBitWidth() == ResultBitWidth) return *this; else - return getFull(); + return getFull(ResultBitWidth); case Instruction::UIToFP: { // TODO: use input range if available auto BW = getBitWidth(); @@ -662,7 +662,7 @@ ConstantRange ConstantRange::castOp(Instruction::CastOps CastOp, case Instruction::PtrToInt: case Instruction::AddrSpaceCast: // Conservatively return getFull set. - return getFull(); + return getFull(ResultBitWidth); }; } -- cgit v1.2.3