1 // revisions: noopt opt opt_with_overflow_checks 2 //[noopt]compile-flags: -C opt-level=0 3 //[opt]compile-flags: -O 4 //[opt_with_overflow_checks]compile-flags: -C overflow-checks=on -O 5 6 // build-fail 7 8 #![deny(const_err)] 9 10 use std::thread; 11 main()12fn main() { 13 assert!(thread::spawn(move|| { isize::MIN / -1; }).join().is_err()); 14 //~^ ERROR arithmetic operation will overflow 15 assert!(thread::spawn(move|| { i8::MIN / -1; }).join().is_err()); 16 //~^ ERROR arithmetic operation will overflow 17 assert!(thread::spawn(move|| { i16::MIN / -1; }).join().is_err()); 18 //~^ ERROR arithmetic operation will overflow 19 assert!(thread::spawn(move|| { i32::MIN / -1; }).join().is_err()); 20 //~^ ERROR arithmetic operation will overflow 21 assert!(thread::spawn(move|| { i64::MIN / -1; }).join().is_err()); 22 //~^ ERROR arithmetic operation will overflow 23 assert!(thread::spawn(move|| { i128::MIN / -1; }).join().is_err()); 24 //~^ ERROR arithmetic operation will overflow 25 assert!(thread::spawn(move|| { 1isize / 0; }).join().is_err()); 26 //~^ ERROR operation will panic 27 assert!(thread::spawn(move|| { 1i8 / 0; }).join().is_err()); 28 //~^ ERROR operation will panic 29 assert!(thread::spawn(move|| { 1i16 / 0; }).join().is_err()); 30 //~^ ERROR operation will panic 31 assert!(thread::spawn(move|| { 1i32 / 0; }).join().is_err()); 32 //~^ ERROR operation will panic 33 assert!(thread::spawn(move|| { 1i64 / 0; }).join().is_err()); 34 //~^ ERROR operation will panic 35 assert!(thread::spawn(move|| { 1i128 / 0; }).join().is_err()); 36 //~^ ERROR operation will panic 37 assert!(thread::spawn(move|| { isize::MIN % -1; }).join().is_err()); 38 //~^ ERROR arithmetic operation will overflow 39 assert!(thread::spawn(move|| { i8::MIN % -1; }).join().is_err()); 40 //~^ ERROR arithmetic operation will overflow 41 assert!(thread::spawn(move|| { i16::MIN % -1; }).join().is_err()); 42 //~^ ERROR arithmetic operation will overflow 43 assert!(thread::spawn(move|| { i32::MIN % -1; }).join().is_err()); 44 //~^ ERROR arithmetic operation will overflow 45 assert!(thread::spawn(move|| { i64::MIN % -1; }).join().is_err()); 46 //~^ ERROR arithmetic operation will overflow 47 assert!(thread::spawn(move|| { i128::MIN % -1; }).join().is_err()); 48 //~^ ERROR arithmetic operation will overflow 49 assert!(thread::spawn(move|| { 1isize % 0; }).join().is_err()); 50 //~^ ERROR operation will panic 51 assert!(thread::spawn(move|| { 1i8 % 0; }).join().is_err()); 52 //~^ ERROR operation will panic 53 assert!(thread::spawn(move|| { 1i16 % 0; }).join().is_err()); 54 //~^ ERROR operation will panic 55 assert!(thread::spawn(move|| { 1i32 % 0; }).join().is_err()); 56 //~^ ERROR operation will panic 57 assert!(thread::spawn(move|| { 1i64 % 0; }).join().is_err()); 58 //~^ ERROR operation will panic 59 assert!(thread::spawn(move|| { 1i128 % 0; }).join().is_err()); 60 //~^ ERROR operation will panic 61 } 62