Skip to content

Commit

Permalink
rustc_codegen_ssa: don't treat inlined variables as debuginfo arguments.
Browse files Browse the repository at this point in the history
  • Loading branch information
eddyb committed Feb 3, 2020
1 parent bdd946d commit 80515f7
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 4 deletions.
5 changes: 1 addition & 4 deletions src/librustc_codegen_ssa/mir/debuginfo.rs
Expand Up @@ -307,11 +307,8 @@ impl<'a, 'tcx, Bx: BuilderMethods<'a, 'tcx>> FunctionCx<'a, 'tcx, Bx> {
let var_ty = self.monomorphized_place_ty(place.as_ref());
let var_kind = if self.mir.local_kind(place.local) == mir::LocalKind::Arg
&& place.projection.is_empty()
&& var.source_info.scope == mir::OUTERMOST_SOURCE_SCOPE
{
// FIXME(eddyb, #67586) take `var.source_info.scope` into
// account to avoid using `ArgumentVariable` more than once
// per argument local.

let arg_index = place.local.index() - 1;

// FIXME(eddyb) shouldn't `ArgumentVariable` indices be
Expand Down
11 changes: 11 additions & 0 deletions src/test/ui/mir/mir-inlining/var-debuginfo-issue-67586.rs
@@ -0,0 +1,11 @@
// run-pass
// compile-flags: -Z mir-opt-level=2 -C opt-level=0 -C debuginfo=2

#[inline(never)]
pub fn foo(bar: usize) -> usize {
std::convert::identity(bar)
}

fn main() {
foo(0);
}

0 comments on commit 80515f7

Please sign in to comment.