| #![feature(core_intrinsics, custom_mir)] |
| #![crate_type = "lib"] |
| |
| use std::intrinsics::mir::*; |
| |
| // EMIT_MIR dead_on_invalid_place.invalid_place.PreCodegen.after.mir |
| #[custom_mir(dialect = "runtime")] |
| pub fn invalid_place(c: bool) -> bool { |
| // CHECK-LABEL: fn invalid_place |
| // CHECK: debug c1_ref => [[c1_ref:_[0-9]+]]; |
| // CHECK: bb0: { |
| // We cannot read the reference, since `c1` is dead. |
| // CHECK-NEXT: DBG: [[c1_ref]] = &? |
| // CHECK-NEXT: _0 = copy _1; |
| // CHECK-NEXT: return; |
| mir! { |
| let _c1_ref: &bool; |
| let c1: bool; |
| debug c1_ref => _c1_ref; |
| { |
| c1 = c; |
| _c1_ref = &c1; |
| RET = c; |
| Return() |
| } |
| } |
| } |