blob: e9927304f23f8c380a0f1c9ea5fa0d76a79e2536 [file] [log] [blame]
// run-pass
// compile-flags: -C debug_assertions=yes
// ignore-wasm32-bare compiled with panic=abort by default
// 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_value()).next_power_of_two()
});
assert!(r.is_err());
let r = panic::catch_unwind(|| {
(($t::max_value() >> 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);
}