rust/tests/fail/never_transmute_void.rs

21 lines
452 B
Rust
Raw Normal View History

2017-09-22 06:21:30 -05:00
// This should fail even without validation
2022-07-08 11:08:32 -05:00
//@compile-flags: -Zmiri-disable-validation
//@require-annotations-for-level: ERROR
2017-09-22 06:21:30 -05:00
#![feature(never_type)]
2019-08-18 04:16:02 -05:00
#![allow(unused, invalid_value)]
2017-01-12 04:23:44 -06:00
2022-04-20 16:41:09 -05:00
mod m {
enum VoidI {}
pub struct Void(VoidI);
2017-01-12 04:23:44 -06:00
2022-04-20 16:41:09 -05:00
pub fn f(v: Void) -> ! {
match v.0 {} //~ ERROR: entering unreachable code
2022-04-20 16:41:09 -05:00
}
2017-01-12 04:23:44 -06:00
}
fn main() {
let v = unsafe { std::mem::transmute::<(), m::Void>(()) };
m::f(v); //~ NOTE: inside `main`
2017-01-12 04:23:44 -06:00
}