Add a mir-opt test
This commit is contained in:
parent
3dd5034967
commit
19ea2d1c8b
1 changed files with 37 additions and 0 deletions
37
src/test/mir-opt/uninhabited-enum.rs
Normal file
37
src/test/mir-opt/uninhabited-enum.rs
Normal file
|
@ -0,0 +1,37 @@
|
|||
#![feature(never_type)]
|
||||
|
||||
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
|
Loading…
Add table
Reference in a new issue