-
Notifications
You must be signed in to change notification settings - Fork 13.6k
Closed
Closed
Copy link
Labels
A-debuginfoArea: Debugging information in compiled programs (DWARF, PDB, etc.)Area: Debugging information in compiled programs (DWARF, PDB, etc.)C-bugCategory: This is a bug.Category: This is a bug.
Description
The following code calls is_digit
with a constant radix:
rust/tests/mir-opt/issues/issue_59352.rs
Lines 13 to 16 in 37b22cf
pub fn num_to_digit(num: char) -> u32 { | |
// CHECK-NOT: panic | |
if num.is_digit(8) { num.to_digit(8).unwrap() } else { 0 } | |
} |
The MIR inliner preserves a local variable that's "holding" the value
let mut _3: u32; // in scope 0 at $DIR/issue_59352.rs:+2:12: +2:23 | |
scope 1 (inlined char::methods::<impl char>::is_digit) { // at $DIR/issue_59352.rs:15:12: 15:23 | |
debug self => _1; // in scope 1 at $SRC_DIR/core/src/char/methods.rs:LL:COL | |
debug radix => _3; // in scope 1 at $SRC_DIR/core/src/char/methods.rs:LL:COL |
But it's actually dead -- nothing sets _3
to anything, so that debug info node is useless.
(I'm working on a PR that will remove always-uninitialized debug info like that _3
, which is how I noticed this. So I opened this in case the debuginfo folks want this to work instead of just being dropped.)
Metadata
Metadata
Assignees
Labels
A-debuginfoArea: Debugging information in compiled programs (DWARF, PDB, etc.)Area: Debugging information in compiled programs (DWARF, PDB, etc.)C-bugCategory: This is a bug.Category: This is a bug.