diff --git a/src/operator.rs b/src/operator.rs index 538f4125c6ea63b7ca5e171cdff625cc822b7faf..6292095ccd0b0707d29c37bf920e4c4ba45624e2 100644 --- a/src/operator.rs +++ b/src/operator.rs @@ -60,7 +60,13 @@ impl<'a, 'tcx> EvalContext<'a, 'tcx> { ) -> EvalResult<'tcx, bool> { let (val, overflowed) = self.binop_with_overflow(op, left, right)?; self.write_primval(dest, val, dest_ty)?; - Ok(overflowed.to_bool()?) + if overflowed.is_concrete() { + Ok(overflowed.to_bool()?) + } else { + // keeps the old behavior of ignoring overflow for symbolic ops + // this works because the return value is never used + Ok(false) + } } }