//@ test-mir-pass: ReferencePropagation //@ compile-flags: -g -Zub_checks=false -Zinline-mir -Zmir-enable-passes=+DeadStoreElimination-initial #![feature(core_intrinsics, custom_mir)] #![crate_type = "lib"] use std::intrinsics::mir::*; // EMIT_MIR ref_prop.remap_debuginfo_locals.ReferencePropagation.diff pub fn remap_debuginfo_locals() { // CHECK-LABEL: fn remap_debuginfo_locals() // CHECK: debug a => [[a:_.*]]; // CHECK: bb0: // CHECK-NEXT: [[a]] = const // CHECK-NEXT: DBG: [[a]] = &(*[[a]]); foo(&0); } #[custom_mir(dialect = "runtime", phase = "post-cleanup")] #[inline] fn foo(x: *const usize) -> &'static usize { mir! { debug a => RET; { RET = &*x; RET = &*x; Return() } } }