//@ run-pass //@ compile-flags: -C debug_assertions=true //@ needs-unwind //@ ignore-emscripten dies with an LLVM error use std::panic; fn main() { macro_rules! overflow_test { ($t:ident) => ( let r = panic::catch_unwind(|| { ($t::MAX).next_power_of_two() }); assert!(r.is_err()); let r = panic::catch_unwind(|| { (($t::MAX >> 1) + 2).next_power_of_two() }); assert!(r.is_err()); ) } overflow_test!(u8); overflow_test!(u16); overflow_test!(u32); overflow_test!(u64); overflow_test!(u128); }