From ef63e88a9dad54539e1b8510e98e4ed951518c05 Mon Sep 17 00:00:00 2001 From: Eduard-Mihai Burtescu Date: Sat, 8 Feb 2020 19:20:45 +0200 Subject: [PATCH] rustc_codegen_ssa: use `debug_introduce_local` on Operand call results. --- src/librustc_codegen_ssa/mir/block.rs | 3 +++ src/test/codegen/naked-functions.rs | 8 +++----- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/src/librustc_codegen_ssa/mir/block.rs b/src/librustc_codegen_ssa/mir/block.rs index 7f43e665498..0a4610e9e49 100644 --- a/src/librustc_codegen_ssa/mir/block.rs +++ b/src/librustc_codegen_ssa/mir/block.rs @@ -1145,6 +1145,7 @@ impl<'a, 'tcx, Bx: BuilderMethods<'a, 'tcx>> FunctionCx<'a, 'tcx, Bx> { let op = bx.load_operand(place); place.storage_dead(bx); self.locals[index] = LocalRef::Operand(Some(op)); + self.debug_introduce_local(bx, index); } LocalRef::Operand(Some(op)) => { assert!(op.layout.is_zst(), "assigning to initialized SSAtemp"); @@ -1186,6 +1187,7 @@ impl<'a, 'tcx, Bx: BuilderMethods<'a, 'tcx>> FunctionCx<'a, 'tcx, Bx> { let op = bx.load_operand(tmp); tmp.storage_dead(bx); self.locals[index] = LocalRef::Operand(Some(op)); + self.debug_introduce_local(bx, index); } DirectOperand(index) => { // If there is a cast, we have to store and reload. @@ -1200,6 +1202,7 @@ impl<'a, 'tcx, Bx: BuilderMethods<'a, 'tcx>> FunctionCx<'a, 'tcx, Bx> { OperandRef::from_immediate_or_packed_pair(bx, llval, ret_abi.layout) }; self.locals[index] = LocalRef::Operand(Some(op)); + self.debug_introduce_local(bx, index); } } } diff --git a/src/test/codegen/naked-functions.rs b/src/test/codegen/naked-functions.rs index 5050ed14994..493c1b9f0ba 100644 --- a/src/test/codegen/naked-functions.rs +++ b/src/test/codegen/naked-functions.rs @@ -1,5 +1,3 @@ -// ignore-tidy-linelength - // compile-flags: -C no-prepopulate-passes #![crate_type = "lib"] @@ -61,19 +59,19 @@ pub fn naked_recursive() { naked_empty(); - // CHECK-NEXT: %{{[0-9]+}} = call i{{[0-9]+}} @naked_with_return() + // CHECK-NEXT: %_4 = call i{{[0-9]+}} @naked_with_return() // FIXME(#39685) Avoid one block per call. // CHECK-NEXT: br label %bb2 // CHECK: bb2: - // CHECK-NEXT: %{{[0-9]+}} = call i{{[0-9]+}} @naked_with_args_and_return(i{{[0-9]+}} %{{[0-9]+}}) + // CHECK-NEXT: %_3 = call i{{[0-9]+}} @naked_with_args_and_return(i{{[0-9]+}} %_4) // FIXME(#39685) Avoid one block per call. // CHECK-NEXT: br label %bb3 // CHECK: bb3: - // CHECK-NEXT: call void @naked_with_args(i{{[0-9]+}} %{{[0-9]+}}) + // CHECK-NEXT: call void @naked_with_args(i{{[0-9]+}} %_3) // FIXME(#39685) Avoid one block per call. // CHECK-NEXT: br label %bb4