mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-22 23:04:33 +00:00
36 lines
775 B
Rust
36 lines
775 B
Rust
|
pub enum Void {}
|
||
|
|
||
|
#[no_mangle]
|
||
|
pub fn process_never(input: *const !) {
|
||
|
let _input = unsafe { &*input };
|
||
|
}
|
||
|
|
||
|
#[no_mangle]
|
||
|
pub fn process_void(input: *const Void) {
|
||
|
let _input = unsafe { &*input };
|
||
|
// In the future, this should end with `unreachable`, but we currently only do
|
||
|
// unreachability analysis for `!`.
|
||
|
}
|
||
|
|
||
|
fn main() {}
|
||
|
|
||
|
// END RUST SOURCE
|
||
|
//
|
||
|
// START rustc.process_never.SimplifyLocals.after.mir
|
||
|
// bb0: {
|
||
|
// StorageLive(_2);
|
||
|
// _2 = &(*_1);
|
||
|
// StorageDead(_2);
|
||
|
// unreachable;
|
||
|
// }
|
||
|
// END rustc.process_never.SimplifyLocals.after.mir
|
||
|
//
|
||
|
// START rustc.process_void.SimplifyLocals.after.mir
|
||
|
// bb0: {
|
||
|
// StorageLive(_2);
|
||
|
// _2 = &(*_1);
|
||
|
// StorageDead(_2);
|
||
|
// return;
|
||
|
// }
|
||
|
// END rustc.process_void.SimplifyLocals.after.mir
|