2019-06-24 01:40:45 -05:00
|
|
|
// This should fail even without validation
|
2021-03-25 06:44:30 -05:00
|
|
|
// Some optimizations remove ZST accesses, thus masking this UB.
|
|
|
|
// compile-flags: -Zmir-opt-level=0 -Zmiri-disable-validation
|
2019-06-24 01:40:45 -05:00
|
|
|
|
2017-07-20 15:20:33 -05:00
|
|
|
fn main() {
|
2020-09-07 04:22:49 -05:00
|
|
|
for i in 0..10 { // Try many times as this might work by chance.
|
|
|
|
let x = i as u8;
|
2020-08-20 03:13:21 -05:00
|
|
|
let x = &x as *const _ as *const [u32; 0];
|
2020-08-18 03:11:54 -05:00
|
|
|
// This must fail because alignment is violated. Test specifically for loading ZST.
|
2022-05-25 11:15:37 -05:00
|
|
|
let _x = unsafe { *x }; //~ERROR alignment 4 is required
|
2020-08-18 03:11:54 -05:00
|
|
|
}
|
2017-07-20 15:20:33 -05:00
|
|
|
}
|