about summary refs log tree commit diff
path: root/tests/mir-opt/uninhabited_enum.rs
blob: 90b5353f29143f7b56009270088710bdb8c58090 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
// skip-filecheck
#![feature(never_type)]

#[derive(Copy, Clone)]
pub enum Void {}

// EMIT_MIR uninhabited_enum.process_never.SimplifyLocals-final.after.mir
#[no_mangle]
pub fn process_never(input: *const !) {
    let _input = unsafe { *input };
}

// EMIT_MIR uninhabited_enum.process_void.SimplifyLocals-final.after.mir
#[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() {}