rust-lang / rust-lang/rust

[ICE]: `NOP unsize vtable changed principal trait ref`

Open
#158,799 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

-Zassumptions-on-binders A-cranelift C-bug I-ICE needs-triage requires-debug-assertions T-compiler WG-trait-system-refactor
Dominant language
Rust
Stars
119k
Forks
16.1k
PR merge metrics
PR metrics pending

Description

Code

rustc code.rs -Znext-solver=globally -Zassumptions-on-binders -Zcodegen-backend=cranelift -Clink-dead-code

trait Trait<'a> {}
fn change_lt(x: *mut Trait) -> *mut Trait {
    x
}
fn change_lt_hr(x: *mut Trait) -> *mut for<'b> Trait<'b> {
    x
}
fn main() {}

Meta

rustc --version --verbose:

rustc 1.98.0-nightly (ea088e0a3 2026-07-05)
binary: rustc
commit-hash: ea088e0a3dd50c494b4589c3c121d7469dceec8f
commit-date: 2026-07-05
host: x86_64-unknown-linux-gnu
release: 1.98.0-nightly
LLVM version: 22.1.8
Error output
warning: trait objects without an explicit `dyn` are deprecated
 --> code.rs:2:22
  |
2 | fn change_lt(x: *mut Trait) -> *mut Trait {
  |                      ^^^^^
  |
  = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
  = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
  = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
help: if this is a dyn-compatible trait, use `dyn`
  |
2 | fn change_lt(x: *mut dyn Trait) -> *mut Trait {
  |                      +++

warning: trait objects without an explicit `dyn` are deprecated
 --> code.rs:2:37
  |
2 | fn change_lt(x: *mut Trait) -> *mut Trait {
  |                                     ^^^^^
  |
  = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
  = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
help: if this is a dyn-compatible trait, use `dyn`
  |
2 | fn change_lt(x: *mut Trait) -> *mut dyn Trait {
  |                                     +++

warning: trait objects without an explicit `dyn` are deprecated
 --> code.rs:5:25
  |
5 | fn change_lt_hr(x: *mut Trait) -> *mut for<'b> Trait<'b> {
  |                         ^^^^^
  |
  = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
  = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
help: if this is a dyn-compatible trait, use `dyn`
  |
5 | fn change_lt_hr(x: *mut dyn Trait) -> *mut for<'b> Trait<'b> {
  |                         +++

warning: trait objects without an explicit `dyn` are deprecated
 --> code.rs:5:40
  |
5 | fn change_lt_hr(x: *mut Trait) -> *mut for<'b> Trait<'b> {
  |                                        ^^^^^^^^^^^^^^^^^
  |
  = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
  = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
help: if this is a dyn-compatible trait, use `dyn`
  |
5 | fn change_lt_hr(x: *mut Trait) -> *mut dyn for<'b> Trait<'b> {
  |                                        +++

warning: trait `Trait` is never used
 --> code.rs:1:7
  |
1 | trait Trait<'a> {}
  |       ^^^^^
  |
  = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default

warning: function `change_lt` is never used
 --> code.rs:2:4
  |
2 | fn change_lt(x: *mut Trait) -> *mut Trait {
  |    ^^^^^^^^^

warning: function `change_lt_hr` is never used
 --> code.rs:5:4
  |
5 | fn change_lt_hr(x: *mut Trait) -> *mut for<'b> Trait<'b> {
  |    ^^^^^^^^^^^^
Backtrace

thread 'rustc' (2138412) panicked at /rustc-dev/ea088e0a3dd50c494b4589c3c121d7469dceec8f/compiler/rustc_codegen_cranelift/src/unsize.rs:39:17:
NOP unsize vtable changed principal trait ref: Trait<'_> -> for<'a> Trait<'a>
stack backtrace:
   0:     0x7f4664015200 - std[386a84ca6cb05ef6]::backtrace_rs::backtrace::libunwind::trace
                               at /rustc/ea088e0a3dd50c494b4589c3c121d7469dceec8f/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
   1:     0x7f4664015200 - std[386a84ca6cb05ef6]::backtrace_rs::backtrace::trace_unsynchronized::<std[386a84ca6cb05ef6]::sys::backtrace::_print_fmt::{closure#1}>
                               at /rustc/ea088e0a3dd50c494b4589c3c121d7469dceec8f/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
   2:     0x7f4664015200 - std[386a84ca6cb05ef6]::sys::backtrace::_print_fmt
                               at /rustc/ea088e0a3dd50c494b4589c3c121d7469dceec8f/library/std/src/sys/backtrace.rs:74:9
   3:     0x7f4664015200 - <<std[386a84ca6cb05ef6]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[2905569e18bb29b8]::fmt::Display>::fmt
                               at /rustc/ea088e0a3dd50c494b4589c3c121d7469dceec8f/library/std/src/sys/backtrace.rs:44:26
   4:     0x7f465f890c6e - <core[2905569e18bb29b8]::fmt::rt::Argument>::fmt
                               at /rustc/ea088e0a3dd50c494b4589c3c121d7469dceec8f/library/core/src/fmt/rt.rs:152:76
   5:     0x7f465f890c6e - core[2905569e18bb29b8]::fmt::write
   6:     0x7f466402c8ec - std[386a84ca6cb05ef6]::io::default_write_fmt::<std[386a84ca6cb05ef6]::sys::stdio::unix::Stderr>
                               at /rustc/ea088e0a3dd50c494b4589c3c121d7469dceec8f/library/std/src/io/mod.rs:626:11
   7:     0x7f466402c8ec - <std[386a84ca6cb05ef6]::sys::stdio::unix::Stderr as std[386a84ca6cb05ef6]::io::Write>::write_fmt
                               at /rustc/ea088e0a3dd50c494b4589c3c121d7469dceec8f/library/std/src/io/mod.rs:1730:13
   8:     0x7f4663fd6084 - <std[386a84ca6cb05ef6]::sys::backtrace::BacktraceLock>::print
                               at /rustc/ea088e0a3dd50c494b4589c3c121d7469dceec8f/library/std/src/sys/backtrace.rs:47:9
   9:     0x7f4663fd6084 - std[386a84ca6cb05ef6]::panicking::default_hook::{closure#0}
                               at /rustc/ea088e0a3dd50c494b4589c3c121d7469dceec8f/library/std/src/panicking.rs:292:27
  10:     0x7f4664001801 - std[386a84ca6cb05ef6]::panicking::default_hook
                               at /rustc/ea088e0a3dd50c494b4589c3c121d7469dceec8f/library/std/src/panicking.rs:319:9
  11:     0x7f4660bb7ed8 - <alloc[a05d859dfdc0fb3a]::boxed::Box<dyn for<'a, 'b> core[2905569e18bb29b8]::ops::function::Fn<(&'a std[386a84ca6cb05ef6]::panic::PanicHookInfo<'b>,), Output = ()> + core[2905569e18bb29b8]::marker::Send + core[2905569e18bb29b8]::marker::Sync> as core[2905569e18bb29b8]::ops::function::Fn<(&std[386a84ca6cb05ef6]::panic::PanicHookInfo,)>>::call
                               at /rustc-dev/ea088e0a3dd50c494b4589c3c121d7469dceec8f/library/alloc/src/boxed.rs:2333:9
  12:     0x7f4660bb7ed8 - rustc_driver_impl[141f5d82d5532281]::install_ice_hook::{closure#1}
                               at /rustc-dev/ea088e0a3dd50c494b4589c3c121d7469dceec8f/compiler/rustc_driver_impl/src/lib.rs:1483:17
  13:     0x7f4660bb7ed8 - <alloc[a05d859dfdc0fb3a]::boxed::Box<rustc_driver_impl[141f5d82d5532281]::install_ice_hook::{closure#1}> as core[2905569e18bb29b8]::ops::function::Fn<(&dyn for<'a, 'b> core[2905569e18bb29b8]::ops::function::Fn<(&'a std[386a84ca6cb05ef6]::panic::PanicHookInfo<'b>,), Output = ()> + core[2905569e18bb29b8]::marker::Send + core[2905569e18bb29b8]::marker::Sync, &std[386a84ca6cb05ef6]::panic::PanicHookInfo)>>::call
                               at /rustc-dev/ea088e0a3dd50c494b4589c3c121d7469dceec8f/library/alloc/src/boxed.rs:2333:9
  14:     0x7f4660bb7ed8 - std[386a84ca6cb05ef6]::panicking::update_hook::<alloc[a05d859dfdc0fb3a]::boxed::Box<rustc_driver_impl[141f5d82d5532281]::install_ice_hook::{closure#1}>>::{closure#0}
                               at /rustc-dev/ea088e0a3dd50c494b4589c3c121d7469dceec8f/library/std/src/panicking.rs:235:47
  15:     0x7f4664001c8a - <alloc[a05d859dfdc0fb3a]::boxed::Box<dyn for<'a, 'b> core[2905569e18bb29b8]::ops::function::Fn<(&'a std[386a84ca6cb05ef6]::panic::PanicHookInfo<'b>,), Output = ()> + core[2905569e18bb29b8]::marker::Send + core[2905569e18bb29b8]::marker::Sync> as core[2905569e18bb29b8]::ops::function::Fn<(&std[386a84ca6cb05ef6]::panic::PanicHookInfo,)>>::call
                               at /rustc/ea088e0a3dd50c494b4589c3c121d7469dceec8f/library/alloc/src/boxed.rs:2333:9
  16:     0x7f4664001c8a - std[386a84ca6cb05ef6]::panicking::panic_with_hook
                               at /rustc/ea088e0a3dd50c494b4589c3c121d7469dceec8f/library/std/src/panicking.rs:823:13
  17:     0x7f4663fd6152 - std[386a84ca6cb05ef6]::panicking::panic_handler::{closure#0}
                               at /rustc/ea088e0a3dd50c494b4589c3c121d7469dceec8f/library/std/src/panicking.rs:688:13
  18:     0x7f4663fc1649 - std[386a84ca6cb05ef6]::sys::backtrace::__rust_end_short_backtrace::<std[386a84ca6cb05ef6]::panicking::panic_handler::{closure#0}, !>
                               at /rustc/ea088e0a3dd50c494b4589c3c121d7469dceec8f/library/std/src/sys/backtrace.rs:182:18
  19:     0x7f4663fd805d - __rustc[46920232926a116e]::rust_begin_unwind
                               at /rustc/ea088e0a3dd50c494b4589c3c121d7469dceec8f/library/std/src/panicking.rs:679:5
  20:     0x7f465f89199c - core[2905569e18bb29b8]::panicking::panic_fmt
                               at /rustc/ea088e0a3dd50c494b4589c3c121d7469dceec8f/library/core/src/panicking.rs:80:14
  21:     0x7f465036cb79 - rustc_codegen_cranelift[5bd89cd87f29f40b]::unsize::unsized_info
                               at /rustc-dev/ea088e0a3dd50c494b4589c3c121d7469dceec8f/compiler/rustc_codegen_cranelift/src/unsize.rs:39:17
  22:     0x7f465036cb79 - rustc_codegen_cranelift[5bd89cd87f29f40b]::unsize::unsize_ptr
                               at /rustc-dev/ea088e0a3dd50c494b4589c3c121d7469dceec8f/compiler/rustc_codegen_cranelift/src/unsize.rs:83:59
  23:     0x7f465036d9f8 - rustc_codegen_cranelift[5bd89cd87f29f40b]::unsize::coerce_unsized_into::{closure#0}
  24:     0x7f465036d9f8 - rustc_codegen_cranelift[5bd89cd87f29f40b]::unsize::coerce_unsized_into
                               at /rustc-dev/ea088e0a3dd50c494b4589c3c121d7469dceec8f/compiler/rustc_codegen_cranelift/src/unsize.rs:141:49
  25:     0x7f4650361dc2 - rustc_codegen_cranelift[5bd89cd87f29f40b]::base::codegen_stmt
                               at /rustc-dev/ea088e0a3dd50c494b4589c3c121d7469dceec8f/compiler/rustc_codegen_cranelift/src/base.rs:813:21
  26:     0x7f4650361dc2 - rustc_codegen_cranelift[5bd89cd87f29f40b]::base::codegen_fn_body
                               at /rustc-dev/ea088e0a3dd50c494b4589c3c121d7469dceec8f/compiler/rustc_codegen_cranelift/src/base.rs:323:13
  27:     0x7f465035a1d0 - rustc_codegen_cranelift[5bd89cd87f29f40b]::base::codegen_fn::{closure#2}
                               at /rustc-dev/ea088e0a3dd50c494b4589c3c121d7469dceec8f/compiler/rustc_codegen_cranelift/src/base.rs:120:57
  28:     0x7f465035a1d0 - <rustc_data_structures[97f3e4bf34afb871]::profiling::TimingGuard>::run::<(), rustc_codegen_cranelift[5bd89cd87f29f40b]::base::codegen_fn::{closure#2}>
                               at /rustc-dev/ea088e0a3dd50c494b4589c3c121d7469dceec8f/compiler/rustc_data_structures/src/profiling.rs:809:9
  29:     0x7f465035a1d0 - rustc_codegen_cranelift[5bd89cd87f29f40b]::base::codegen_fn
                               at /rustc-dev/ea088e0a3dd50c494b4589c3c121d7469dceec8f/compiler/rustc_codegen_cranelift/src/base.rs:120:50
  30:     0x7f4650384a75 - rustc_codegen_cranelift[5bd89cd87f29f40b]::driver::aot::codegen_cgu
                               at /rustc-dev/ea088e0a3dd50c494b4589c3c121d7469dceec8f/compiler/rustc_codegen_cranelift/src/driver/aot.rs:176:42
  31:     0x7f465031f68e - <rustc_codegen_cranelift[5bd89cd87f29f40b]::driver::aot::AotDriver as rustc_codegen_ssa[ca1634386165ab6d]::traits::backend::ExtraBackendMethods>::compile_codegen_unit::{closure#0}
                               at /rustc-dev/ea088e0a3dd50c494b4589c3c121d7469dceec8f/compiler/rustc_codegen_cranelift/src/driver/aot.rs:293:34
  32:     0x7f465039656a - <rustc_middle[792ff25791e6eb6c]::dep_graph::graph::DepGraph>::with_task::<<rustc_codegen_cranelift[5bd89cd87f29f40b]::driver::aot::AotDriver as rustc_codegen_ssa[ca1634386165ab6d]::traits::backend::ExtraBackendMethods>::compile_codegen_unit::{closure#0}, rustc_codegen_ssa[ca1634386165ab6d]::ModuleCodegen<rustc_codegen_cranelift[5bd89cd87f29f40b]::driver::aot::AotModule>>
                               at /rustc-dev/ea088e0a3dd50c494b4589c3c121d7469dceec8f/compiler/rustc_middle/src/dep_graph/graph.rs:336:22
  33:     0x7f465039656a - <rustc_codegen_cranelift[5bd89cd87f29f40b]::driver::aot::AotDriver as rustc_codegen_ssa[ca1634386165ab6d]::traits::backend::ExtraBackendMethods>::compile_codegen_unit
                               at /rustc-dev/ea088e0a3dd50c494b4589c3c121d7469dceec8f/compiler/rustc_codegen_cranelift/src/driver/aot.rs:289:41
  34:     0x7f46502f0573 - rustc_codegen_ssa[ca1634386165ab6d]::base::codegen_crate::<rustc_codegen_cranelift[5bd89cd87f29f40b]::driver::aot::AotDriver, rustc_codegen_cranelift[5bd89cd87f29f40b]::driver::aot::AotModule>
                               at /rustc-dev/ea088e0a3dd50c494b4589c3c121d7469dceec8f/compiler/rustc_codegen_ssa/src/base.rs:824:42
  35:     0x7f46503a64a6 - <rustc_codegen_cranelift[5bd89cd87f29f40b]::CraneliftCodegenBackend as rustc_codegen_ssa[ca1634386165ab6d]::traits::backend::CodegenBackend>::codegen_crate
                               at /rustc-dev/ea088e0a3dd50c494b4589c3c121d7469dceec8f/compiler/rustc_codegen_cranelift/src/lib.rs:228:22
  36:     0x7f4661962668 - rustc_interface[ce4f83e7df082d47]::passes::start_codegen::{closure#0}
                               at /rustc-dev/ea088e0a3dd50c494b4589c3c121d7469dceec8f/compiler/rustc_interface/src/passes.rs:1305:29
  37:     0x7f4661962668 - <rustc_data_structures[97f3e4bf34afb871]::profiling::VerboseTimingGuard>::run::<alloc[a05d859dfdc0fb3a]::boxed::Box<dyn core[2905569e18bb29b8]::any::Any>, rustc_interface[ce4f83e7df082d47]::passes::start_codegen::{closure#0}>
                               at /rustc-dev/ea088e0a3dd50c494b4589c3c121d7469dceec8f/compiler/rustc_data_structures/src/profiling.rs:845:9
  38:     0x7f4661962668 - <rustc_session[e4e70658598d6b46]::session::Session>::time::<alloc[a05d859dfdc0fb3a]::boxed::Box<dyn core[2905569e18bb29b8]::any::Any>, rustc_interface[ce4f83e7df082d47]::passes::start_codegen::{closure#0}>
                               at /rustc-dev/ea088e0a3dd50c494b4589c3c121d7469dceec8f/compiler/rustc_session/src/utils.rs:17:50
  39:     0x7f4661962668 - rustc_interface[ce4f83e7df082d47]::passes::start_codegen
                               at /rustc-dev/ea088e0a3dd50c494b4589c3c121d7469dceec8f/compiler/rustc_interface/src/passes.rs:1297:28
  40:     0x7f4661962668 - <rustc_interface[ce4f83e7df082d47]::queries::Linker>::codegen_and_build_linker
                               at /rustc-dev/ea088e0a3dd50c494b4589c3c121d7469dceec8f/compiler/rustc_interface/src/queries.rs:33:55
  41:     0x7f4660ba1801 - rustc_driver_impl[141f5d82d5532281]::run_compiler::{closure#0}::{closure#2}
                               at /rustc-dev/ea088e0a3dd50c494b4589c3c121d7469dceec8f/compiler/rustc_driver_impl/src/lib.rs:342:26
  42:     0x7f4660ba1801 - rustc_interface[ce4f83e7df082d47]::passes::create_and_enter_global_ctxt::<core[2905569e18bb29b8]::option::Option<rustc_interface[ce4f83e7df082d47]::queries::Linker>, rustc_driver_impl[141f5d82d5532281]::run_compiler::{closure#0}::{closure#2}>::{closure#2}::{closure#0}
                               at /rustc-dev/ea088e0a3dd50c494b4589c3c121d7469dceec8f/compiler/rustc_interface/src/passes.rs:1035:80
  43:     0x7f4660ba1801 - <core[2905569e18bb29b8]::panic::unwind_safe::AssertUnwindSafe<rustc_interface[ce4f83e7df082d47]::passes::create_and_enter_global_ctxt<core[2905569e18bb29b8]::option::Option<rustc_interface[ce4f83e7df082d47]::queries::Linker>, rustc_driver_impl[141f5d82d5532281]::run_compiler::{closure#0}::{closure#2}>::{closure#2}::{closure#0}> as core[2905569e18bb29b8]::ops::function::FnOnce<()>>::call_once
                               at /rustc-dev/ea088e0a3dd50c494b4589c3c121d7469dceec8f/library/core/src/panic/unwind_safe.rs:275:9
  44:     0x7f4660ba1801 - std[386a84ca6cb05ef6]::panicking::catch_unwind::do_call::<core[2905569e18bb29b8]::panic::unwind_safe::AssertUnwindSafe<rustc_interface[ce4f83e7df082d47]::passes::create_and_enter_global_ctxt<core[2905569e18bb29b8]::option::Option<rustc_interface[ce4f83e7df082d47]::queries::Linker>, rustc_driver_impl[141f5d82d5532281]::run_compiler::{closure#0}::{closure#2}>::{closure#2}::{closure#0}>, core[2905569e18bb29b8]::option::Option<rustc_interface[ce4f83e7df082d47]::queries::Linker>>
                               at /rustc-dev/ea088e0a3dd50c494b4589c3c121d7469dceec8f/library/std/src/panicking.rs:576:43
  45:     0x7f4660ba1801 - std[386a84ca6cb05ef6]::panicking::catch_unwind::<core[2905569e18bb29b8]::option::Option<rustc_interface[ce4f83e7df082d47]::queries::Linker>, core[2905569e18bb29b8]::panic::unwind_safe::AssertUnwindSafe<rustc_interface[ce4f83e7df082d47]::passes::create_and_enter_global_ctxt<core[2905569e18bb29b8]::option::Option<rustc_interface[ce4f83e7df082d47]::queries::Linker>, rustc_driver_impl[141f5d82d5532281]::run_compiler::{closure#0}::{closure#2}>::{closure#2}::{closure#0}>>
                               at /rustc-dev/ea088e0a3dd50c494b4589c3c121d7469dceec8f/library/std/src/panicking.rs:544:19
  46:     0x7f4660ba1801 - std[386a84ca6cb05ef6]::panic::catch_unwind::<core[2905569e18bb29b8]::panic::unwind_safe::AssertUnwindSafe<rustc_interface[ce4f83e7df082d47]::passes::create_and_enter_global_ctxt<core[2905569e18bb29b8]::option::Option<rustc_interface[ce4f83e7df082d47]::queries::Linker>, rustc_driver_impl[141f5d82d5532281]::run_compiler::{closure#0}::{closure#2}>::{closure#2}::{closure#0}>, core[2905569e18bb29b8]::option::Option<rustc_interface[ce4f83e7df082d47]::queries::Linker>>
                               at /rustc-dev/ea088e0a3dd50c494b4589c3c121d7469dceec8f/library/std/src/panic.rs:359:14
  47:     0x7f4660ba1801 - rustc_interface[ce4f83e7df082d47]::passes::create_and_enter_global_ctxt::<core[2905569e18bb29b8]::option::Option<rustc_interface[ce4f83e7df082d47]::queries::Linker>, rustc_driver_impl[141f5d82d5532281]::run_compiler::{closure#0}::{closure#2}>::{closure#2}
                               at /rustc-dev/ea088e0a3dd50c494b4589c3c121d7469dceec8f/compiler/rustc_interface/src/passes.rs:1035:23
  48:     0x7f4660ba1801 - <rustc_middle[792ff25791e6eb6c]::ty::context::GlobalCtxt>::enter::<rustc_interface[ce4f83e7df082d47]::passes::create_and_enter_global_ctxt<core[2905569e18bb29b8]::option::Option<rustc_interface[ce4f83e7df082d47]::queries::Linker>, rustc_driver_impl[141f5d82d5532281]::run_compiler::{closure#0}::{closure#2}>::{closure#2}, core[2905569e18bb29b8]::option::Option<rustc_interface[ce4f83e7df082d47]::queries::Linker>>::{closure#1}
                               at /rustc-dev/ea088e0a3dd50c494b4589c3c121d7469dceec8f/compiler/rustc_middle/src/ty/context.rs:802:37
  49:     0x7f4660ba1801 - rustc_middle[792ff25791e6eb6c]::ty::context::tls::enter_context::<<rustc_middle[792ff25791e6eb6c]::ty::context::GlobalCtxt>::enter<rustc_interface[ce4f83e7df082d47]::passes::create_and_enter_global_ctxt<core[2905569e18bb29b8]::option::Option<rustc_interface[ce4f83e7df082d47]::queries::Linker>, rustc_driver_impl[141f5d82d5532281]::run_compiler::{closure#0}::{closure#2}>::{closure#2}, core[2905569e18bb29b8]::option::Option<rustc_interface[ce4f83e7df082d47]::queries::Linker>>::{closure#1}, core[2905569e18bb29b8]::option::Option<rustc_interface[ce4f83e7df082d47]::queries::Linker>>::{closure#0}
                               at /rustc-dev/ea088e0a3dd50c494b4589c3c121d7469dceec8f/compiler/rustc_middle/src/ty/context/tls.rs:56:9
  50:     0x7f4660ba1801 - <std[386a84ca6cb05ef6]::thread::local::LocalKey<core[2905569e18bb29b8]::cell::Cell<*const ()>>>::try_with::<rustc_middle[792ff25791e6eb6c]::ty::context::tls::enter_context<<rustc_middle[792ff25791e6eb6c]::ty::context::GlobalCtxt>::enter<rustc_interface[ce4f83e7df082d47]::passes::create_and_enter_global_ctxt<core[2905569e18bb29b8]::option::Option<rustc_interface[ce4f83e7df082d47]::queries::Linker>, rustc_driver_impl[141f5d82d5532281]::run_compiler::{closure#0}::{closure#2}>::{closure#2}, core[2905569e18bb29b8]::option::Option<rustc_interface[ce4f83e7df082d47]::queries::Linker>>::{closure#1}, core[2905569e18bb29b8]::option::Option<rustc_interface[ce4f83e7df082d47]::queries::Linker>>::{closure#0}, core[2905569e18bb29b8]::option::Option<rustc_interface[ce4f83e7df082d47]::queries::Linker>>
                               at /rustc-dev/ea088e0a3dd50c494b4589c3c121d7469dceec8f/library/std/src/thread/local.rs:463:12
  51:     0x7f4660ba1801 - <std[386a84ca6cb05ef6]::thread::local::LocalKey<core[2905569e18bb29b8]::cell::Cell<*const ()>>>::with::<rustc_middle[792ff25791e6eb6c]::ty::context::tls::enter_context<<rustc_middle[792ff25791e6eb6c]::ty::context::GlobalCtxt>::enter<rustc_interface[ce4f83e7df082d47]::passes::create_and_enter_global_ctxt<core[2905569e18bb29b8]::option::Option<rustc_interface[ce4f83e7df082d47]::queries::Linker>, rustc_driver_impl[141f5d82d5532281]::run_compiler::{closure#0}::{closure#2}>::{closure#2}, core[2905569e18bb29b8]::option::Option<rustc_interface[ce4f83e7df082d47]::queries::Linker>>::{closure#1}, core[2905569e18bb29b8]::option::Option<rustc_interface[ce4f83e7df082d47]::queries::Linker>>::{closure#0}, core[2905569e18bb29b8]::option::Option<rustc_interface[ce4f83e7df082d47]::queries::Linker>>
                               at /rustc-dev/ea088e0a3dd50c494b4589c3c121d7469dceec8f/library/std/src/thread/local.rs:427:20
  52:     0x7f4660ba1801 - rustc_middle[792ff25791e6eb6c]::ty::context::tls::enter_context::<<rustc_middle[792ff25791e6eb6c]::ty::context::GlobalCtxt>::enter<rustc_interface[ce4f83e7df082d47]::passes::create_and_enter_global_ctxt<core[2905569e18bb29b8]::option::Option<rustc_interface[ce4f83e7df082d47]::queries::Linker>, rustc_driver_impl[141f5d82d5532281]::run_compiler::{closure#0}::{closure#2}>::{closure#2}, core[2905569e18bb29b8]::option::Option<rustc_interface[ce4f83e7df082d47]::queries::Linker>>::{closure#1}, core[2905569e18bb29b8]::option::Option<rustc_interface[ce4f83e7df082d47]::queries::Linker>>
                               at /rustc-dev/ea088e0a3dd50c494b4589c3c121d7469dceec8f/compiler/rustc_middle/src/ty/context/tls.rs:53:9
  53:     0x7f4660ba1801 - <rustc_middle[792ff25791e6eb6c]::ty::context::GlobalCtxt>::enter::<rustc_interface[ce4f83e7df082d47]::passes::create_and_enter_global_ctxt<core[2905569e18bb29b8]::option::Option<rustc_interface[ce4f83e7df082d47]::queries::Linker>, rustc_driver_impl[141f5d82d5532281]::run_compiler::{closure#0}::{closure#2}>::{closure#2}, core[2905569e18bb29b8]::option::Option<rustc_interface[ce4f83e7df082d47]::queries::Linker>>
                               at /rustc-dev/ea088e0a3dd50c494b4589c3c121d7469dceec8f/compiler/rustc_middle/src/ty/context.rs:802:9
  54:     0x7f4660ba1801 - <rustc_middle[792ff25791e6eb6c]::ty::context::TyCtxt>::create_global_ctxt::<core[2905569e18bb29b8]::option::Option<rustc_interface[ce4f83e7df082d47]::queries::Linker>, rustc_interface[ce4f83e7df082d47]::passes::create_and_enter_global_ctxt<core[2905569e18bb29b8]::option::Option<rustc_interface[ce4f83e7df082d47]::queries::Linker>, rustc_driver_impl[141f5d82d5532281]::run_compiler::{closure#0}::{closure#2}>::{closure#2}>
                               at /rustc-dev/ea088e0a3dd50c494b4589c3c121d7469dceec8f/compiler/rustc_middle/src/ty/context.rs:996:13
  55:     0x7f4660ba1801 - rustc_interface[ce4f83e7df082d47]::passes::create_and_enter_global_ctxt::<core[2905569e18bb29b8]::option::Option<rustc_interface[ce4f83e7df082d47]::queries::Linker>, rustc_driver_impl[141f5d82d5532281]::run_compiler::{closure#0}::{closure#2}>
                               at /rustc-dev/ea088e0a3dd50c494b4589c3c121d7469dceec8f/compiler/rustc_interface/src/passes.rs:995:5
  56:     0x7f4660bbc4ef - rustc_driver_impl[141f5d82d5532281]::run_compiler::{closure#0}
                               at /rustc-dev/ea088e0a3dd50c494b4589c3c121d7469dceec8f/compiler/rustc_driver_impl/src/lib.rs:299:22
  57:     0x7f4660bbc4ef - rustc_interface[ce4f83e7df082d47]::interface::run_compiler::<(), rustc_driver_impl[141f5d82d5532281]::run_compiler::{closure#0}>::{closure#1}::{closure#0}
                               at /rustc-dev/ea088e0a3dd50c494b4589c3c121d7469dceec8f/compiler/rustc_interface/src/interface.rs:496:80
  58:     0x7f4660bbc4ef - <core[2905569e18bb29b8]::panic::unwind_safe::AssertUnwindSafe<rustc_interface[ce4f83e7df082d47]::interface::run_compiler<(), rustc_driver_impl[141f5d82d5532281]::run_compiler::{closure#0}>::{closure#1}::{closure#0}> as core[2905569e18bb29b8]::ops::function::FnOnce<()>>::call_once
                               at /rustc-dev/ea088e0a3dd50c494b4589c3c121d7469dceec8f/library/core/src/panic/unwind_safe.rs:275:9
  59:     0x7f4660bbc4ef - std[386a84ca6cb05ef6]::panicking::catch_unwind::do_call::<core[2905569e18bb29b8]::panic::unwind_safe::AssertUnwindSafe<rustc_interface[ce4f83e7df082d47]::interface::run_compiler<(), rustc_driver_impl[141f5d82d5532281]::run_compiler::{closure#0}>::{closure#1}::{closure#0}>, ()>
                               at /rustc-dev/ea088e0a3dd50c494b4589c3c121d7469dceec8f/library/std/src/panicking.rs:576:43
  60:     0x7f4660bbc4ef - std[386a84ca6cb05ef6]::panicking::catch_unwind::<(), core[2905569e18bb29b8]::panic::unwind_safe::AssertUnwindSafe<rustc_interface[ce4f83e7df082d47]::interface::run_compiler<(), rustc_driver_impl[141f5d82d5532281]::run_compiler::{closure#0}>::{closure#1}::{closure#0}>>
                               at /rustc-dev/ea088e0a3dd50c494b4589c3c121d7469dceec8f/library/std/src/panicking.rs:544:19
  61:     0x7f4660bbc4ef - std[386a84ca6cb05ef6]::panic::catch_unwind::<core[2905569e18bb29b8]::panic::unwind_safe::AssertUnwindSafe<rustc_interface[ce4f83e7df082d47]::interface::run_compiler<(), rustc_driver_impl[141f5d82d5532281]::run_compiler::{closure#0}>::{closure#1}::{closure#0}>, ()>
                               at /rustc-dev/ea088e0a3dd50c494b4589c3c121d7469dceec8f/library/std/src/panic.rs:359:14
  62:     0x7f4660bbc4ef - rustc_interface[ce4f83e7df082d47]::interface::run_compiler::<(), rustc_driver_impl[141f5d82d5532281]::run_compiler::{closure#0}>::{closure#1}
                               at /rustc-dev/ea088e0a3dd50c494b4589c3c121d7469dceec8f/compiler/rustc_interface/src/interface.rs:496:23
  63:     0x7f4660ba58c5 - rustc_interface[ce4f83e7df082d47]::util::run_in_thread_pool_with_globals::<rustc_interface[ce4f83e7df082d47]::interface::run_compiler<(), rustc_driver_impl[141f5d82d5532281]::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}
                               at /rustc-dev/ea088e0a3dd50c494b4589c3c121d7469dceec8f/compiler/rustc_interface/src/util.rs:206:17
  64:     0x7f4660ba58c5 - rustc_interface[ce4f83e7df082d47]::util::run_in_thread_with_globals::<rustc_interface[ce4f83e7df082d47]::util::run_in_thread_pool_with_globals<rustc_interface[ce4f83e7df082d47]::interface::run_compiler<(), rustc_driver_impl[141f5d82d5532281]::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}::{closure#0}
                               at /rustc-dev/ea088e0a3dd50c494b4589c3c121d7469dceec8f/compiler/rustc_interface/src/util.rs:162:24
  65:     0x7f4660ba58c5 - <scoped_tls[6b77d594d6d8aca6]::ScopedKey<rustc_span[5976bd4f62357b67]::SessionGlobals>>::set::<rustc_interface[ce4f83e7df082d47]::util::run_in_thread_with_globals<rustc_interface[ce4f83e7df082d47]::util::run_in_thread_pool_with_globals<rustc_interface[ce4f83e7df082d47]::interface::run_compiler<(), rustc_driver_impl[141f5d82d5532281]::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}::{closure#0}, ()>
                               at /rust/deps/scoped-tls-1.0.1/src/lib.rs:137:9
  66:     0x7f4660ba58c5 - rustc_span[5976bd4f62357b67]::create_session_globals_then::<(), rustc_interface[ce4f83e7df082d47]::util::run_in_thread_with_globals<rustc_interface[ce4f83e7df082d47]::util::run_in_thread_pool_with_globals<rustc_interface[ce4f83e7df082d47]::interface::run_compiler<(), rustc_driver_impl[141f5d82d5532281]::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}::{closure#0}>
                               at /rustc-dev/ea088e0a3dd50c494b4589c3c121d7469dceec8f/compiler/rustc_span/src/lib.rs:155:21
  67:     0x7f4660ba58c5 - rustc_interface[ce4f83e7df082d47]::util::run_in_thread_with_globals::<rustc_interface[ce4f83e7df082d47]::util::run_in_thread_pool_with_globals<rustc_interface[ce4f83e7df082d47]::interface::run_compiler<(), rustc_driver_impl[141f5d82d5532281]::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}
                               at /rustc-dev/ea088e0a3dd50c494b4589c3c121d7469dceec8f/compiler/rustc_interface/src/util.rs:158:17
  68:     0x7f4660ba58c5 - std[386a84ca6cb05ef6]::sys::backtrace::__rust_begin_short_backtrace::<rustc_interface[ce4f83e7df082d47]::util::run_in_thread_with_globals<rustc_interface[ce4f83e7df082d47]::util::run_in_thread_pool_with_globals<rustc_interface[ce4f83e7df082d47]::interface::run_compiler<(), rustc_driver_impl[141f5d82d5532281]::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>
                               at /rustc-dev/ea088e0a3dd50c494b4589c3c121d7469dceec8f/library/std/src/sys/backtrace.rs:166:18
  69:     0x7f4660bbffb9 - std[386a84ca6cb05ef6]::thread::lifecycle::spawn_unchecked::<rustc_interface[ce4f83e7df082d47]::util::run_in_thread_with_globals<rustc_interface[ce4f83e7df082d47]::util::run_in_thread_pool_with_globals<rustc_interface[ce4f83e7df082d47]::interface::run_compiler<(), rustc_driver_impl[141f5d82d5532281]::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>::{closure#1}::{closure#0}
                               at /rustc-dev/ea088e0a3dd50c494b4589c3c121d7469dceec8f/library/std/src/thread/lifecycle.rs:70:13
  70:     0x7f4660bbffb9 - <core[2905569e18bb29b8]::panic::unwind_safe::AssertUnwindSafe<std[386a84ca6cb05ef6]::thread::lifecycle::spawn_unchecked<rustc_interface[ce4f83e7df082d47]::util::run_in_thread_with_globals<rustc_interface[ce4f83e7df082d47]::util::run_in_thread_pool_with_globals<rustc_interface[ce4f83e7df082d47]::interface::run_compiler<(), rustc_driver_impl[141f5d82d5532281]::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>::{closure#1}::{closure#0}> as core[2905569e18bb29b8]::ops::function::FnOnce<()>>::call_once
                               at /rustc-dev/ea088e0a3dd50c494b4589c3c121d7469dceec8f/library/core/src/panic/unwind_safe.rs:275:9
  71:     0x7f4660bbffb9 - std[386a84ca6cb05ef6]::panicking::catch_unwind::do_call::<core[2905569e18bb29b8]::panic::unwind_safe::AssertUnwindSafe<std[386a84ca6cb05ef6]::thread::lifecycle::spawn_unchecked<rustc_interface[ce4f83e7df082d47]::util::run_in_thread_with_globals<rustc_interface[ce4f83e7df082d47]::util::run_in_thread_pool_with_globals<rustc_interface[ce4f83e7df082d47]::interface::run_compiler<(), rustc_driver_impl[141f5d82d5532281]::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>::{closure#1}::{closure#0}>, ()>
                               at /rustc-dev/ea088e0a3dd50c494b4589c3c121d7469dceec8f/library/std/src/panicking.rs:576:43
  72:     0x7f4660bbffb9 - std[386a84ca6cb05ef6]::panicking::catch_unwind::<(), core[2905569e18bb29b8]::panic::unwind_safe::AssertUnwindSafe<std[386a84ca6cb05ef6]::thread::lifecycle::spawn_unchecked<rustc_interface[ce4f83e7df082d47]::util::run_in_thread_with_globals<rustc_interface[ce4f83e7df082d47]::util::run_in_thread_pool_with_globals<rustc_interface[ce4f83e7df082d47]::interface::run_compiler<(), rustc_driver_impl[141f5d82d5532281]::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>::{closure#1}::{closure#0}>>
                               at /rustc-dev/ea088e0a3dd50c494b4589c3c121d7469dceec8f/library/std/src/panicking.rs:544:19
  73:     0x7f4660bbffb9 - std[386a84ca6cb05ef6]::panic::catch_unwind::<core[2905569e18bb29b8]::panic::unwind_safe::AssertUnwindSafe<std[386a84ca6cb05ef6]::thread::lifecycle::spawn_unchecked<rustc_interface[ce4f83e7df082d47]::util::run_in_thread_with_globals<rustc_interface[ce4f83e7df082d47]::util::run_in_thread_pool_with_globals<rustc_interface[ce4f83e7df082d47]::interface::run_compiler<(), rustc_driver_impl[141f5d82d5532281]::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>::{closure#1}::{closure#0}>, ()>
                               at /rustc-dev/ea088e0a3dd50c494b4589c3c121d7469dceec8f/library/std/src/panic.rs:359:14
  74:     0x7f4660bbffb9 - std[386a84ca6cb05ef6]::thread::lifecycle::spawn_unchecked::<rustc_interface[ce4f83e7df082d47]::util::run_in_thread_with_globals<rustc_interface[ce4f83e7df082d47]::util::run_in_thread_pool_with_globals<rustc_interface[ce4f83e7df082d47]::interface::run_compiler<(), rustc_driver_impl[141f5d82d5532281]::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>::{closure#1}
                               at /rustc-dev/ea088e0a3dd50c494b4589c3c121d7469dceec8f/library/std/src/thread/lifecycle.rs:68:26
  75:     0x7f4660bbffb9 - <std[386a84ca6cb05ef6]::thread::lifecycle::spawn_unchecked<rustc_interface[ce4f83e7df082d47]::util::run_in_thread_with_globals<rustc_interface[ce4f83e7df082d47]::util::run_in_thread_pool_with_globals<rustc_interface[ce4f83e7df082d47]::interface::run_compiler<(), rustc_driver_impl[141f5d82d5532281]::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>::{closure#1} as core[2905569e18bb29b8]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
                               at /rustc-dev/ea088e0a3dd50c494b4589c3c121d7469dceec8f/library/core/src/ops/function.rs:250:5
  76:     0x7f4664010d1f - <alloc[a05d859dfdc0fb3a]::boxed::Box<dyn core[2905569e18bb29b8]::ops::function::FnOnce<(), Output = ()> + core[2905569e18bb29b8]::marker::Send> as core[2905569e18bb29b8]::ops::function::FnOnce<()>>::call_once
                               at /rustc/ea088e0a3dd50c494b4589c3c121d7469dceec8f/library/alloc/src/boxed.rs:2319:9
  77:     0x7f4664010d1f - <std[386a84ca6cb05ef6]::sys::thread::unix::Thread>::new::thread_start
                               at /rustc/ea088e0a3dd50c494b4589c3c121d7469dceec8f/library/std/src/sys/thread/unix.rs:123:17
  78:     0x7f465de981b9 - <unknown>
  79:     0x7f465df1d21c - <unknown>
  80:                0x0 - <unknown>

error: the compiler unexpectedly panicked. This is a bug

note: we would appreciate a bug report: https://github.com/rust-lang/rust/issues/new?labels=C-bug%2C+I-ICE%2C+T-compiler&template=ice.md

note: please make sure that you have updated to the latest nightly

note: please attach the file at `/home/matthias/vcs/github/CRED/rustc-ice-2026-07-05T07_28_57-2138410.txt` to your bug report

note: rustc 1.98.0-nightly (ea088e0a3 2026-07-05) running on x86_64-unknown-linux-gnu

note: compiler flags: -Z next-solver=globally -Z assumptions-on-binders -Z codegen-backend=cranelift -C link-dead-code

query stack during panic:
end of query stack
stmt _0 = copy _1 as *mut dyn for<'a> Trait<'a> (PointerCoercion(Unsize, Implicit))
fn change_lt_hr(_1: *mut dyn Trait<'_>) -> *mut dyn for<'a> Trait<'a> {
    debug x => _1;
    let mut _0: *mut dyn for<'a> Trait<'a>;

    bb0: {
        _0 = copy _1 as *mut dyn for<'a> Trait<'a> (PointerCoercion(Unsize, Implicit));
        return;
    }
}

warning: 7 warnings emitted

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by running the provided code.rs command with -Znext-solver=globally, -Zassumptions-on-binders, and -Zcodegen-backend=cranelift. Then inspect compiler/rustc_codegen_cranelift/src/unsize.rs, especially unsized_info at line 39 and its callers at lines 83 and 141. Done means this reproducer no longer triggers the ICE and the regression is covered by appropriate compiler testing.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
compilers
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.