// build-pass
#![feature(rustc_attrs)]

macro_rules! apply {
    ($val:expr) => {
        #[rustc_layout_scalar_valid_range_start($val)]
        #[repr(transparent)]
        pub(crate) struct NonZero<T>(pub(crate) T);
    }
}

apply!(1);

fn main() {
    let _x = unsafe { NonZero(1) };
}
