| // EMIT_MIR_FOR_EACH_PANIC_STRATEGY |
| |
| fn src(x: &&u8) -> bool { |
| // CHECK-LABEL: fn src( |
| // CHECK: debug y => [[Y:_.*]]; |
| // CHECK: bb0: |
| // CHECK: [[BORROW_u8:_.*]] = copy (*_1); |
| // CHECK: [[Y]] = copy (*[[BORROW_u8]]); |
| // CHECK: bb1: |
| // BORROW_u8 outside its lifetime in bb1. |
| // CHECK-NOT: copy (*[[BORROW_u8]]); |
| // CHECK: copy (*_1); |
| // CHECK-NOT: _0 = const true; |
| // CHECK: _0 = Eq({{.*}}, {{.*}}); |
| // CHECK-NOT: _0 = const true; |
| let y = **x; |
| unsafe { unknown() }; |
| **x == y |
| } |
| |
| #[inline(never)] |
| unsafe fn unknown() { |
| // CHECK-LABEL: fn unknown( |
| } |
| |
| fn main() { |
| // CHECK-LABEL: fn main( |
| src(&&0); |
| } |
| |
| // EMIT_MIR deref_nested_borrows.src.GVN.diff |
| // EMIT_MIR deref_nested_borrows.src.PreCodegen.after.mir |