//@ 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);
}
