about summary refs log tree commit diff
path: root/src/test/codegen/src-hash-algorithm/src-hash-algorithm-md5.rs
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2020-02-08 21:28:05 +0000
committerbors <bors@rust-lang.org>2020-02-08 21:28:05 +0000
commita19edd6b161521a4f66716b3b45b8cf4d3f03f3a (patch)
tree703b6fe5ddb3c85e5b21279a0c82ca8e098668a8 /src/test/codegen/src-hash-algorithm/src-hash-algorithm-md5.rs
parent07a34df18b437319a7ff510077bbab95cf7ec6bc (diff)
parent80515f7528efd2921e474d932755b823eee6f53b (diff)
downloadrust-a19edd6b161521a4f66716b3b45b8cf4d3f03f3a.tar.gz
rust-a19edd6b161521a4f66716b3b45b8cf4d3f03f3a.zip
Auto merge of #68802 - eddyb:debuginfo-there-can-only-be-one-arg, r=nagisa
rustc_codegen_ssa: don't treat inlined variables as debuginfo arguments.

Fixes #67586 by limiting `ArgumentVariable` special-casing to `VarDebugInfo` entries that are in `OUTERMOST_SOURCE_SCOPE`, i.e. the function's own argument scope.
That excludes `VarDebugInfo` from inlined callees, which can also point to the caller's argument locals.

This is a snippet from the optimized MIR (including inlining) of the testcase:
```rust
fn  foo(_1: usize) -> usize {
    debug bar => _1;                     // in scope 0 at ./example.rs:2:12: 2:15
    let mut _0: usize;                   // return place in scope 0 at ./example.rs:2:27: 2:32
    scope 1 {
        debug x => _1;                   // in scope 1 at /rustc/9ed29b6ff6aa2e048b09c27af8f62ee3040bdb37/src/libcore/convert/mod.rs:106:26: 106:27
    }
```
`scope 1` is from inlining the `identity` call, and `debug x => _1;` comes from the body of `core::convert::identity`, so they are now ignored for the purposes of determining the `ArgumentVariable` debuginfo associated to `_1`.
Diffstat (limited to 'src/test/codegen/src-hash-algorithm/src-hash-algorithm-md5.rs')
0 files changed, 0 insertions, 0 deletions