rust/tests/fail/unaligned_pointers/unaligned_ptr_zst.rs

14 lines
499 B
Rust
Raw Normal View History

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