Enable the overflow-related tests for MIR
This commit is contained in:
parent
f2c983b248
commit
bcdb2602f8
@ -11,7 +11,6 @@
|
||||
// these errors are not actually "const_err", they occur in trans/consts
|
||||
// and are unconditional warnings that can't be denied or allowed
|
||||
|
||||
#![feature(rustc_attrs)]
|
||||
#![allow(exceeding_bitshifts)]
|
||||
#![allow(const_err)]
|
||||
|
||||
@ -24,7 +23,6 @@ const FOO: u8 = [5u8][1];
|
||||
//~^ ERROR array index out of bounds
|
||||
//~^^ ERROR array index out of bounds
|
||||
|
||||
#[rustc_no_mir] // FIXME #29769 MIR overflow checking is TBD.
|
||||
fn main() {
|
||||
let a = -std::i8::MIN;
|
||||
//~^ WARN attempted to negate with overflow
|
||||
|
@ -8,7 +8,6 @@
|
||||
// option. This file may not be copied, modified, or distributed
|
||||
// except according to those terms.
|
||||
|
||||
#![feature(rustc_attrs)]
|
||||
#![allow(unused_imports)]
|
||||
|
||||
// Note: the relevant lint pass here runs before some of the constant
|
||||
@ -104,7 +103,6 @@ const VALS_U64: (u64, u64, u64, u64) =
|
||||
//~^ ERROR attempted to multiply with overflow
|
||||
);
|
||||
|
||||
#[rustc_no_mir] // FIXME #29769 MIR overflow checking is TBD.
|
||||
fn main() {
|
||||
foo(VALS_I8);
|
||||
foo(VALS_I16);
|
||||
|
@ -12,8 +12,6 @@
|
||||
|
||||
// error-pattern:attempted to divide by zero
|
||||
|
||||
#![feature(rustc_attrs)]
|
||||
#[rustc_no_mir] // FIXME #29769 MIR overflow checking is TBD.
|
||||
fn main() {
|
||||
let y = 0;
|
||||
let _z = 1 / y;
|
||||
|
@ -12,8 +12,6 @@
|
||||
|
||||
// error-pattern:attempted remainder with a divisor of zero
|
||||
|
||||
#![feature(rustc_attrs)]
|
||||
#[rustc_no_mir] // FIXME #29769 MIR overflow checking is TBD.
|
||||
fn main() {
|
||||
let y = 0;
|
||||
let _z = 1 % y;
|
||||
|
@ -14,8 +14,6 @@
|
||||
// compile-flags: -C debug-assertions
|
||||
|
||||
|
||||
#![feature(rustc_attrs)]
|
||||
#[rustc_no_mir] // FIXME #29769 MIR overflow checking is TBD.
|
||||
fn main() {
|
||||
let _x = 200u8 + 200u8 + 200u8;
|
||||
}
|
||||
|
@ -15,8 +15,6 @@
|
||||
|
||||
#![warn(exceeding_bitshifts)]
|
||||
|
||||
#![feature(rustc_attrs)]
|
||||
#[rustc_no_mir] // FIXME #29769 MIR overflow checking is TBD.
|
||||
fn main() {
|
||||
let _x = 1_i32 << 32;
|
||||
}
|
||||
|
@ -15,8 +15,6 @@
|
||||
|
||||
#![warn(exceeding_bitshifts)]
|
||||
|
||||
#![feature(rustc_attrs)]
|
||||
#[rustc_no_mir] // FIXME #29769 MIR overflow checking is TBD.
|
||||
fn main() {
|
||||
let _x = 1 << -1;
|
||||
}
|
||||
|
@ -15,8 +15,6 @@
|
||||
|
||||
#![warn(exceeding_bitshifts)]
|
||||
|
||||
#![feature(rustc_attrs)]
|
||||
#[rustc_no_mir] // FIXME #29769 MIR overflow checking is TBD.
|
||||
fn main() {
|
||||
let _x = 1_u64 << 64;
|
||||
}
|
||||
|
@ -18,8 +18,6 @@
|
||||
|
||||
#![warn(exceeding_bitshifts)]
|
||||
|
||||
#![feature(rustc_attrs)]
|
||||
#[rustc_no_mir] // FIXME #29769 MIR overflow checking is TBD.
|
||||
fn main() {
|
||||
// this signals overflow when checking is on
|
||||
let x = 1_i8 << 17;
|
||||
|
@ -13,8 +13,6 @@
|
||||
// error-pattern:thread 'main' panicked at 'arithmetic operation overflowed'
|
||||
// compile-flags: -C debug-assertions
|
||||
|
||||
#![feature(rustc_attrs)]
|
||||
#[rustc_no_mir] // FIXME #29769 MIR overflow checking is TBD.
|
||||
fn main() {
|
||||
let x = 200u8 * 4;
|
||||
}
|
||||
|
@ -13,8 +13,6 @@
|
||||
// error-pattern:thread 'main' panicked at 'attempted to negate with overflow'
|
||||
// compile-flags: -C debug-assertions
|
||||
|
||||
#![feature(rustc_attrs)]
|
||||
#[rustc_no_mir] // FIXME #29769 MIR overflow checking is TBD.
|
||||
fn main() {
|
||||
let _x = -std::i8::MIN;
|
||||
}
|
||||
|
@ -15,8 +15,6 @@
|
||||
|
||||
#![warn(exceeding_bitshifts)]
|
||||
|
||||
#![feature(rustc_attrs)]
|
||||
#[rustc_no_mir] // FIXME #29769 MIR overflow checking is TBD.
|
||||
fn main() {
|
||||
let _x = -1_i32 >> 32;
|
||||
}
|
||||
|
@ -15,8 +15,6 @@
|
||||
|
||||
#![warn(exceeding_bitshifts)]
|
||||
|
||||
#![feature(rustc_attrs)]
|
||||
#[rustc_no_mir] // FIXME #29769 MIR overflow checking is TBD.
|
||||
fn main() {
|
||||
let _x = -1_i32 >> -1;
|
||||
}
|
||||
|
@ -15,8 +15,6 @@
|
||||
|
||||
#![warn(exceeding_bitshifts)]
|
||||
|
||||
#![feature(rustc_attrs)]
|
||||
#[rustc_no_mir] // FIXME #29769 MIR overflow checking is TBD.
|
||||
fn main() {
|
||||
let _x = -1_i64 >> 64;
|
||||
}
|
||||
|
@ -18,8 +18,6 @@
|
||||
|
||||
#![warn(exceeding_bitshifts)]
|
||||
|
||||
#![feature(rustc_attrs)]
|
||||
#[rustc_no_mir] // FIXME #29769 MIR overflow checking is TBD.
|
||||
fn main() {
|
||||
// this signals overflow when checking is on
|
||||
let x = 2_i8 >> 17;
|
||||
|
@ -15,8 +15,6 @@
|
||||
|
||||
#![warn(exceeding_bitshifts)]
|
||||
|
||||
#![feature(rustc_attrs)]
|
||||
#[rustc_no_mir] // FIXME #29769 MIR overflow checking is TBD.
|
||||
fn main() {
|
||||
let _n = 1i64 >> [64][0];
|
||||
}
|
||||
|
@ -16,8 +16,6 @@
|
||||
#![warn(exceeding_bitshifts)]
|
||||
#![feature(const_indexing)]
|
||||
|
||||
#![feature(rustc_attrs)]
|
||||
#[rustc_no_mir] // FIXME #29769 MIR overflow checking is TBD.
|
||||
fn main() {
|
||||
let _n = 1i64 >> [64][0];
|
||||
}
|
||||
|
@ -13,8 +13,6 @@
|
||||
// error-pattern:thread 'main' panicked at 'arithmetic operation overflowed'
|
||||
// compile-flags: -C debug-assertions
|
||||
|
||||
#![feature(rustc_attrs)]
|
||||
#[rustc_no_mir] // FIXME #29769 MIR overflow checking is TBD.
|
||||
fn main() {
|
||||
let _x = 42u8 - (42u8 + 1);
|
||||
}
|
||||
|
@ -37,7 +37,6 @@ fn debug_assert() {
|
||||
}
|
||||
|
||||
fn overflow() {
|
||||
#[rustc_no_mir] // FIXME #29769 MIR overflow checking is TBD.
|
||||
fn add(a: u8, b: u8) -> u8 { a + b }
|
||||
|
||||
add(200u8, 200u8);
|
||||
|
@ -19,13 +19,11 @@ use std::thread;
|
||||
macro_rules! check {
|
||||
($($e:expr),*) => {
|
||||
$(assert!(thread::spawn({
|
||||
#[rustc_no_mir] // FIXME #29769 MIR overflow checking is TBD.
|
||||
move|| { $e; }
|
||||
}).join().is_err());)*
|
||||
}
|
||||
}
|
||||
|
||||
#[rustc_no_mir] // FIXME #29769 MIR overflow checking is TBD.
|
||||
fn main() {
|
||||
check![
|
||||
isize::min_value() / -1,
|
||||
|
Loading…
x
Reference in New Issue
Block a user