| 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 |