mirror of
https://github.com/rust-lang/rust-clippy
synced 2025-02-17 06:28:42 +00:00
Auto merge of #94512 - RalfJung:sdiv-ub, r=oli-obk
Miri/CTFE: properly treat overflow in (signed) division/rem as UB To my surprise, it looks like LLVM treats overflow of signed div/rem as UB. From what I can tell, MIR `Div`/`Rem` directly lowers to the corresponding LLVM operation, so to make that correct we also have to consider these overflows UB in the CTFE/Miri interpreter engine. r? `@oli-obk`
This commit is contained in:
commit
92b6955b12
1 changed files with 4 additions and 4 deletions
|
@ -1,18 +1,18 @@
|
|||
error: this arithmetic operation will overflow
|
||||
error: this operation will panic at runtime
|
||||
--> $DIR/modulo_one.rs:11:5
|
||||
|
|
||||
LL | i32::MIN % (-1); // also caught by rustc
|
||||
| ^^^^^^^^^^^^^^^ attempt to compute the remainder of `i32::MIN % -1_i32`, which would overflow
|
||||
|
|
||||
= note: `#[deny(arithmetic_overflow)]` on by default
|
||||
= note: `#[deny(unconditional_panic)]` on by default
|
||||
|
||||
error: this arithmetic operation will overflow
|
||||
error: this operation will panic at runtime
|
||||
--> $DIR/modulo_one.rs:21:5
|
||||
|
|
||||
LL | INT_MIN % NEG_ONE; // also caught by rustc
|
||||
| ^^^^^^^^^^^^^^^^^ attempt to compute the remainder of `i64::MIN % -1_i64`, which would overflow
|
||||
|
||||
error: this arithmetic operation will overflow
|
||||
error: this operation will panic at runtime
|
||||
--> $DIR/modulo_one.rs:22:5
|
||||
|
|
||||
LL | INT_MIN % STATIC_NEG_ONE; // ONLY caught by rustc
|
||||
|
|
Loading…
Add table
Reference in a new issue