Skip to content

rustc explain panics with error code longer than 4 digits #140647

Closed
@chputnam

Description

@chputnam

The following command line causes rustc to panic:

rustc --explain E10000

Based on the panic message, any error code above 9999 likely triggers this panic.
rustc --version --verbose:

rustc 1.88.0-nightly (d6a325d93 2025-05-03)
binary: rustc
commit-hash: d6a325d93a84077580c677f89affbe45682606c3
commit-date: 2025-05-03
host: x86_64-pc-windows-msvc
release: 1.88.0-nightly
LLVM version: 20.1.4

It appears that the panicking assertion assumes that code further up the stack does basic validation of the error code, when in fact that isn't happening.

Error output

thread 'main' panicked at /rustc/d6a325d93a84077580c677f89affbe45682606c3\compiler\rustc_errors\src\codes.rs:9:1:
assertion failed: value <= 9999
stack backtrace:
   0:     0x7ff992ebd4c2 - std::backtrace_rs::backtrace::win64::trace
                               at /rustc/d6a325d93a84077580c677f89affbe45682606c3/library\std\src\..\..\backtrace\src\backtrace\win64.rs:85
   1:     0x7ff992ebd4c2 - std::backtrace_rs::backtrace::trace_unsynchronized
                               at /rustc/d6a325d93a84077580c677f89affbe45682606c3/library\std\src\..\..\backtrace\src\backtrace\mod.rs:66
   2:     0x7ff992ebd4c2 - std::sys::backtrace::_print_fmt
                               at /rustc/d6a325d93a84077580c677f89affbe45682606c3/library\std\src\sys\backtrace.rs:66
   3:     0x7ff992ebd4c2 - std::sys::backtrace::impl$0::print::impl$0::fmt
                               at /rustc/d6a325d93a84077580c677f89affbe45682606c3/library\std\src\sys\backtrace.rs:39
   4:     0x7ff992eefccb - core::fmt::rt::Argument::fmt
                               at /rustc/d6a325d93a84077580c677f89affbe45682606c3/library\core\src\fmt\rt.rs:181
   5:     0x7ff992eefccb - core::fmt::write
                               at /rustc/d6a325d93a84077580c677f89affbe45682606c3/library\core\src\fmt\mod.rs:1446
   6:     0x7ff992eb3577 - std::io::default_write_fmt
                               at /rustc/d6a325d93a84077580c677f89affbe45682606c3/library\std\src\io\mod.rs:639
   7:     0x7ff992eb3577 - std::io::Write::write_fmt<std::sys::stdio::windows::Stderr>
                               at /rustc/d6a325d93a84077580c677f89affbe45682606c3/library\std\src\io\mod.rs:1914
   8:     0x7ff992ebd305 - std::sys::backtrace::BacktraceLock::print
                               at /rustc/d6a325d93a84077580c677f89affbe45682606c3/library\std\src\sys\backtrace.rs:42
   9:     0x7ff992ec2faa - std::panicking::default_hook::closure$0
                               at /rustc/d6a325d93a84077580c677f89affbe45682606c3/library\std\src\panicking.rs:300
  10:     0x7ff992ec2d40 - std::panicking::default_hook
                               at /rustc/d6a325d93a84077580c677f89affbe45682606c3/library\std\src\panicking.rs:327
  11:     0x7ff9945c40c9 - core[87a27484b78f7475]::slice::sort::unstable::heapsort::heapsort::<((rustc_lint_defs[b0c94f99b9e7b658]::Level, &str), usize), <((rustc_lint_defs[b0c94f99b9e7b658]::Level, &str), usize) as core[87a27484b78f7475]::cmp::PartialOrd>::lt>
  12:     0x7ff992ec3c3e - std::panicking::rust_panic_with_hook
                               at /rustc/d6a325d93a84077580c677f89affbe45682606c3/library\std\src\panicking.rs:841
  13:     0x7ff992ec3962 - std::panicking::begin_panic_handler::closure$0
                               at /rustc/d6a325d93a84077580c677f89affbe45682606c3/library\std\src\panicking.rs:699
  14:     0x7ff992ebe28f - std::sys::backtrace::__rust_end_short_backtrace<std::panicking::begin_panic_handler::closure_env$0,never$>
                               at /rustc/d6a325d93a84077580c677f89affbe45682606c3/library\std\src\sys\backtrace.rs:168
  15:     0x7ff992ec359e - std::panicking::begin_panic_handler
                               at /rustc/d6a325d93a84077580c677f89affbe45682606c3/library\std\src\panicking.rs:697
  16:     0x7ff996030751 - core::panicking::panic_fmt
                               at /rustc/d6a325d93a84077580c677f89affbe45682606c3/library\core\src\panicking.rs:75
  17:     0x7ff99603080d - core::panicking::panic
                               at /rustc/d6a325d93a84077580c677f89affbe45682606c3/library\core\src\panicking.rs:145
  18:     0x7ff98f7f8387 - rustc_driver_impl[4bf9a847fe62d732]::run_compiler
  19:     0x7ff98f8039c7 - rustc_driver_impl[4bf9a847fe62d732]::main
  20:     0x7ff7bb711039 - _wctype
  21:     0x7ff7bb711006 - _wctype
  22:     0x7ff7bb71101c - _wctype
  23:     0x7ff992ea280c - std::rt::lang_start_internal::closure$0
                               at /rustc/d6a325d93a84077580c677f89affbe45682606c3/library\std\src\rt.rs:168
  24:     0x7ff992ea280c - std::panicking::try::do_call
                               at /rustc/d6a325d93a84077580c677f89affbe45682606c3/library\std\src\panicking.rs:589
  25:     0x7ff992ea280c - std::panicking::try
                               at /rustc/d6a325d93a84077580c677f89affbe45682606c3/library\std\src\panicking.rs:552
  26:     0x7ff992ea280c - std::panic::catch_unwind
                               at /rustc/d6a325d93a84077580c677f89affbe45682606c3/library\std\src\panic.rs:359
  27:     0x7ff992ea280c - std::rt::lang_start_internal
                               at /rustc/d6a325d93a84077580c677f89affbe45682606c3/library\std\src\rt.rs:164
  28:     0x7ff7bb71106a - main
  29:     0x7ff7bb71126c - invoke_main
                               at D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:78
  30:     0x7ff7bb71126c - __scrt_common_main_seh
                               at D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288
  31:     0x7ffa7b61e8d7 - BaseThreadInitThunk
  32:     0x7ffa7c8114fc - RtlUserThreadStart

error: the compiler unexpectedly panicked. this is a bug.

Metadata

Metadata

Assignees

Labels

A-diagnosticsArea: Messages for errors, warnings, and lintsC-bugCategory: This is a bug.I-ICEIssue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️P-lowLow priorityT-compilerRelevant to the compiler team, which will review and decide on the PR/issue.

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions