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
