diff options
| author | varkor <github@varkor.com> | 2018-12-11 12:18:51 +0000 |
|---|---|---|
| committer | varkor <github@varkor.com> | 2018-12-11 12:18:51 +0000 |
| commit | 19ea2d1c8b7c36f8b9006ce46f2b719cc122cd52 (patch) | |
| tree | 9f08067eef2b844df109d84fffd670914cff1add | |
| parent | 3dd5034967ab61bfe4dd906fe794ced1279b318a (diff) | |
| download | rust-19ea2d1c8b7c36f8b9006ce46f2b719cc122cd52.tar.gz rust-19ea2d1c8b7c36f8b9006ce46f2b719cc122cd52.zip | |
Add a mir-opt test
| -rw-r--r-- | src/test/mir-opt/uninhabited-enum.rs | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/src/test/mir-opt/uninhabited-enum.rs b/src/test/mir-opt/uninhabited-enum.rs new file mode 100644 index 00000000000..904a9c43c1b --- /dev/null +++ b/src/test/mir-opt/uninhabited-enum.rs @@ -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 |
