Skip to content

ICE:rustc panicked at compiler\rustc_mir_transform\src\validate.rs:1560:30 #140850

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
sososopy opened this issue May 9, 2025 · 2 comments
Open
Labels
-Zvalidate-mir Unstable option: MIR validation C-bug Category: This is a bug. I-ICE Issue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️ needs-triage This issue may need triage. Remove it if it has been sufficiently triaged. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue.

Comments

@sososopy
Copy link

sososopy commented May 9, 2025

The code is generated by a fuzzer and reduced manually and I tried to search similar issue but got no results.
My apologies if this is a repetitive question

Code

//-Z validate-mir
fn A() -> impl {
    while A() {}
    loop {}
}
fn main() {}

Meta

rustc --version --verbose:

rustc 1.88.0-nightly (50aa04180 2025-05-08)
binary: rustc
commit-hash: 50aa04180709189a03dde5fd1c05751b2625ed37
commit-date: 2025-05-08
host: x86_64-pc-windows-msvc
release: 1.88.0-nightly
LLVM version: 20.1.4

Error output

error: at least one trait must be specified
    |
177 | fn A() -> impl {
    |           ^^^^

error: internal compiler error: compiler\rustc_mir_transform\src\validate.rs:1560:30: unhandled type: Alias(Opaque, AliasTy { args: [], def_id: DefId(0:4 ~ test[354f]::A::{opaque#0}), .. })
Backtrace

thread 'rustc' panicked at compiler\rustc_mir_transform\src\validate.rs:1560:30:
Box<dyn Any>
stack backtrace:
   0:     0x7ffd45bbd382 - std::backtrace_rs::backtrace::win64::trace
                               at /rustc/50aa04180709189a03dde5fd1c05751b2625ed37/library\std\src\..\..\backtrace\src\backtrace\win64.rs:85
   1:     0x7ffd45bbd382 - std::backtrace_rs::backtrace::trace_unsynchronized
                               at /rustc/50aa04180709189a03dde5fd1c05751b2625ed37/library\std\src\..\..\backtrace\src\backtrace\mod.rs:66  
   2:     0x7ffd45bbd382 - std::sys::backtrace::_print_fmt
                               at /rustc/50aa04180709189a03dde5fd1c05751b2625ed37/library\std\src\sys\backtrace.rs:66
   3:     0x7ffd45bbd382 - std::sys::backtrace::impl$0::print::impl$0::fmt
                               at /rustc/50aa04180709189a03dde5fd1c05751b2625ed37/library\std\src\sys\backtrace.rs:39
   4:     0x7ffd45befb4b - core::fmt::rt::Argument::fmt
                               at /rustc/50aa04180709189a03dde5fd1c05751b2625ed37/library\core\src\fmt\rt.rs:181
   5:     0x7ffd45befb4b - core::fmt::write
                               at /rustc/50aa04180709189a03dde5fd1c05751b2625ed37/library\core\src\fmt\mod.rs:1446
   6:     0x7ffd45bb34d7 - std::io::default_write_fmt
                               at /rustc/50aa04180709189a03dde5fd1c05751b2625ed37/library\std\src\io\mod.rs:639
   7:     0x7ffd45bb34d7 - std::io::Write::write_fmt<std::sys::stdio::windows::Stderr>
                               at /rustc/50aa04180709189a03dde5fd1c05751b2625ed37/library\std\src\io\mod.rs:1914
   8:     0x7ffd45bbd1c5 - std::sys::backtrace::BacktraceLock::print
                               at /rustc/50aa04180709189a03dde5fd1c05751b2625ed37/library\std\src\sys\backtrace.rs:42
   9:     0x7ffd45bc2e1a - std::panicking::default_hook::closure$0
                               at /rustc/50aa04180709189a03dde5fd1c05751b2625ed37/library\std\src\panicking.rs:300   
  10:     0x7ffd45bc2bb0 - std::panicking::default_hook
                               at /rustc/50aa04180709189a03dde5fd1c05751b2625ed37/library\std\src\panicking.rs:327   
  11:     0x7ffd472e08d9 - core[f111e4a7ef605334]::slice::sort::unstable::heapsort::heapsort::<((rustc_lint_defs[bc50006dd5ee5521]::Level, &str), usize), <((rustc_lint_defs[bc50006dd5ee5521]::Level, &str), usize) as core[f111e4a7ef605334]::cmp::PartialOrd>::lt>
  12:     0x7ffd45bc3aae - std::panicking::rust_panic_with_hook
                               at /rustc/50aa04180709189a03dde5fd1c05751b2625ed37/library\std\src\panicking.rs:841
  13:     0x7ffd48b737d3 - RINvNtNtNtNtCskHcYUSqe9DI_4core5slice4sort6stable9quicksort9quicksortTjRNtNtCsgBC9fiOAFQn_12rustc_errors7snippet10AnnotationENCINvMNtCsamXvYCKHpPZ_5alloc5sliceSB15_11sort_by_keyTINtNtBa_3cmp7ReversejEbENCNCNvMs5_NtB1c_7emitterNtB3o_12HumanEmitter18render_s
  14:     0x7ffd48b66e79 - std[aad7a0f80ff4ecfa]::sys::backtrace::__rust_end_short_backtrace::<std[aad7a0f80ff4ecfa]::panicking::begin_panic<rustc_errors[c16db17667fbb355]::ExplicitBug>::{closure#0}, !>
  15:     0x7ffd48b61d6f - std[aad7a0f80ff4ecfa]::panicking::begin_panic::<rustc_errors[c16db17667fbb355]::ExplicitBug>
  16:     0x7ffd48b80a55 - <rustc_errors[c16db17667fbb355]::diagnostic::BugAbort as rustc_errors[c16db17667fbb355]::diagnostic::EmissionGuarantee>::emit_producing_guarantee
  17:     0x7ffd48ac6949 - rustc_middle[22e762101f903b8f]::util::bug::span_bug_fmt::<rustc_span[590cee7fbea9b74]::span_encoding::Span>
  18:     0x7ffd48a9928d - <rustc_middle[22e762101f903b8f]::ty::consts::Const>::walk
  19:     0x7ffd48a99056 - <rustc_middle[22e762101f903b8f]::ty::consts::Const>::walk
  20:     0x7ffd48ac6842 - rustc_middle[22e762101f903b8f]::util::bug::bug_fmt
  21:     0x7ffd4613bea4 - <rustc_mir_transform[57db05d0ea21705e]::validate::Validator as rustc_mir_transform[57db05d0ea21705e]::pass_manager::MirPass>::run_pass
  22:     0x7ffd4612c743 - <rustc_mir_transform[57db05d0ea21705e]::validate::Validator as rustc_mir_transform[57db05d0ea21705e]::pass_manager::MirPass>::run_pass
  23:     0x7ffd47a21437 - <rustc_mir_transform[57db05d0ea21705e]::post_drop_elaboration::CheckLiveDrops as rustc_mir_transform[57db05d0ea21705e]::pass_manager::MirLint>::run_lint
  24:     0x7ffd46058cee - rustc_mir_transform[57db05d0ea21705e]::mir_built
  25:     0x7ffd46b0eb8b - rustc_query_impl[d652848cb58f7d7f]::plumbing::query_key_hash_verify_all
  26:     0x7ffd46a3bed4 - RINvNtNtCs1OtVrNO53sG_18rustc_query_system5query8plumbing17try_execute_queryINtCsioPD87bJVb7_16rustc_query_impl13DynamicConfigINtNtCs4XH7gZc0tJl_21rustc_data_structures9vec_cache8VecCacheNtNtCskbO0hp1YYUt_9rustc_hir6hir_id7OwnerIdINtNtNtCs2ZN7GrsimL3_12rus
  27:     0x7ffd46b12c62 - rustc_query_impl[d652848cb58f7d7f]::plumbing::query_key_hash_verify_all
  28:     0x7ffd46049429 - rustc_mir_transform[57db05d0ea21705e]::ffi_unwind_calls::has_ffi_unwind_calls
  29:     0x7ffd46b0da2b - rustc_query_impl[d652848cb58f7d7f]::plumbing::query_key_hash_verify_all
  30:     0x7ffd46a4762e - RINvNtNtCs1OtVrNO53sG_18rustc_query_system5query8plumbing17try_execute_queryINtCsioPD87bJVb7_16rustc_query_impl13DynamicConfigINtNtCs4XH7gZc0tJl_21rustc_data_structures9vec_cache8VecCacheNtNtCstCNOwk8FZ8_10rustc_span6def_id10LocalDefIdINtNtNtCs2ZN7GrsimL3_
  31:     0x7ffd46b1d840 - rustc_query_impl[d652848cb58f7d7f]::plumbing::query_key_hash_verify_all
  32:     0x7ffd4605a491 - rustc_mir_transform[57db05d0ea21705e]::mir_promoted
  33:     0x7ffd46b0ca09 - rustc_query_impl[d652848cb58f7d7f]::plumbing::query_key_hash_verify_all
  34:     0x7ffd46a43c21 - RINvNtNtCs1OtVrNO53sG_18rustc_query_system5query8plumbing17try_execute_queryINtCsioPD87bJVb7_16rustc_query_impl13DynamicConfigINtNtCs4XH7gZc0tJl_21rustc_data_structures9vec_cache8VecCacheNtNtCstCNOwk8FZ8_10rustc_span6def_id10LocalDefIdINtNtNtCs2ZN7GrsimL3_
  35:     0x7ffd46b13212 - rustc_query_impl[d652848cb58f7d7f]::plumbing::query_key_hash_verify_all
  36:     0x7ffd46309918 - rustc_borrowck[f94e5613ded3b3c6]::mir_borrowck
  37:     0x7ffd46b0c98b - rustc_query_impl[d652848cb58f7d7f]::plumbing::query_key_hash_verify_all
  38:     0x7ffd46a3bed4 - RINvNtNtCs1OtVrNO53sG_18rustc_query_system5query8plumbing17try_execute_queryINtCsioPD87bJVb7_16rustc_query_impl13DynamicConfigINtNtCs4XH7gZc0tJl_21rustc_data_structures9vec_cache8VecCacheNtNtCskbO0hp1YYUt_9rustc_hir6hir_id7OwnerIdINtNtNtCs2ZN7GrsimL3_12rus
  39:     0x7ffd46b17412 - rustc_query_impl[d652848cb58f7d7f]::plumbing::query_key_hash_verify_all
  40:     0x7ffd454015ca - <rustc_hir_analysis[7fbad424b7a1f69a]::collect::resolve_bound_vars::is_late_bound_map::AllCollector as rustc_hir[eb2b9f614ea32def]::intravisit::Visitor>::visit_opaque_ty
  41:     0x7ffd4540198a - <rustc_hir_analysis[7fbad424b7a1f69a]::collect::resolve_bound_vars::is_late_bound_map::AllCollector as rustc_hir[eb2b9f614ea32def]::intravisit::Visitor>::visit_opaque_ty
  42:     0x7ffd45739deb - <alloc[78ca1fd804cb7045]::sync::Arc<rustc_session[dc649e9a0adc57bd]::config::OutputFilenames>>::drop_slow
  43:     0x7ffd469d6e05 - RINvNtNtCs1OtVrNO53sG_18rustc_query_system5query8plumbing17try_execute_queryINtCsioPD87bJVb7_16rustc_query_impl13DynamicConfigINtNtB4_6caches10DefIdCacheINtNtNtCs2ZN7GrsimL3_12rustc_middle5query5erase6ErasedAhj8_EEKb0_KB3r_KB3r_ENtNtB1f_8plumbing9QueryCtxt
  44:     0x7ffd457434a4 - rustc_query_impl[d652848cb58f7d7f]::query_system
  45:     0x7ffd45f2cf8d - <rustc_hir_analysis[7fbad424b7a1f69a]::collect::resolve_bound_vars::is_late_bound_map::ConstrainedCollector as rustc_hir[eb2b9f614ea32def]::intravisit::Visitor>::visit_ty
  46:     0x7ffd46b0ea00 - rustc_query_impl[d652848cb58f7d7f]::plumbing::query_key_hash_verify_all
  47:     0x7ffd469d6e05 - RINvNtNtCs1OtVrNO53sG_18rustc_query_system5query8plumbing17try_execute_queryINtCsioPD87bJVb7_16rustc_query_impl13DynamicConfigINtNtB4_6caches10DefIdCacheINtNtNtCs2ZN7GrsimL3_12rustc_middle5query5erase6ErasedAhj8_EEKb0_KB3r_KB3r_ENtNtB1f_8plumbing9QueryCtxt
  48:     0x7ffd46b10a66 - rustc_query_impl[d652848cb58f7d7f]::plumbing::query_key_hash_verify_all
  49:     0x7ffd453dde2c - rustc_hir_analysis[7fbad424b7a1f69a]::check::check::check_abi_fn_ptr
  50:     0x7ffd45ef4244 - rustc_hir_analysis[7fbad424b7a1f69a]::check::wfcheck::check_well_formed
  51:     0x7ffd46b0d48b - rustc_query_impl[d652848cb58f7d7f]::plumbing::query_key_hash_verify_all
  52:     0x7ffd46a478ce - RINvNtNtCs1OtVrNO53sG_18rustc_query_system5query8plumbing17try_execute_queryINtCsioPD87bJVb7_16rustc_query_impl13DynamicConfigINtNtCs4XH7gZc0tJl_21rustc_data_structures9vec_cache8VecCacheNtNtCstCNOwk8FZ8_10rustc_span6def_id10LocalDefIdINtNtNtCs2ZN7GrsimL3_
  53:     0x7ffd46b1de65 - rustc_query_impl[d652848cb58f7d7f]::plumbing::query_key_hash_verify_all
  54:     0x7ffd45f04965 - rustc_hir_analysis[7fbad424b7a1f69a]::check::wfcheck::check_mod_type_wf
  55:     0x7ffd4573af0b - <alloc[78ca1fd804cb7045]::sync::Arc<rustc_session[dc649e9a0adc57bd]::config::OutputFilenames>>::drop_slow
  56:     0x7ffd45687636 - RINvNtNtCs1OtVrNO53sG_18rustc_query_system5query8plumbing17try_execute_queryINtCsioPD87bJVb7_16rustc_query_impl13DynamicConfigINtNtB4_6caches12DefaultCacheNtNtCstCNOwk8FZ8_10rustc_span6def_id13LocalModDefIdINtNtNtCs2ZN7GrsimL3_12rustc_middle5query5erase6Er
  57:     0x7ffd4574f630 - rustc_query_impl[d652848cb58f7d7f]::query_system
  58:     0x7ffd45f4f8fe - rustc_hir_analysis[7fbad424b7a1f69a]::check_crate
  59:     0x7ffd45c271d3 - <rustc_interface[2753224ec3fdb3d8]::passes::LintStoreExpandImpl as rustc_expand[e6543defcfeccacc]::base::LintStoreExpand>::pre_expansion_lint
  60:     0x7ffd4252da87 - rustc_interface[2753224ec3fdb3d8]::passes::analysis
  61:     0x7ffd4573dc9a - <alloc[78ca1fd804cb7045]::sync::Arc<rustc_session[dc649e9a0adc57bd]::config::OutputFilenames>>::drop_slow
  62:     0x7ffd456466ba - RINvNtNtCs1OtVrNO53sG_18rustc_query_system5query8plumbing17try_execute_queryINtCsioPD87bJVb7_16rustc_query_impl13DynamicConfigINtNtB4_6caches11SingleCacheINtNtNtCs2ZN7GrsimL3_12rustc_middle5query5erase6ErasedAhj0_EEKb0_KB3s_KB3s_ENtNtB1f_8plumbing9QueryCtx
  63:     0x7ffd457442c3 - rustc_query_impl[d652848cb58f7d7f]::query_system
  64:     0x7ffd424eecb5 - std[aad7a0f80ff4ecfa]::sys::backtrace::__rust_begin_short_backtrace::<<std[aad7a0f80ff4ecfa]::thread::Builder>::spawn_unchecked_<ctrlc[d1d1c403957100d4]::set_handler_inner<rustc_driver_impl[66120e850aa3d048]::install_ctrlc_handler::{closure#0}>::{closure#0}, ()>::{closure#1}::{closure#0}::{closure#0}, ()>
  65:     0x7ffd424e8f13 - std[aad7a0f80ff4ecfa]::sys::backtrace::__rust_begin_short_backtrace::<<std[aad7a0f80ff4ecfa]::thread::Builder>::spawn_unchecked_<ctrlc[d1d1c403957100d4]::set_handler_inner<rustc_driver_impl[66120e850aa3d048]::install_ctrlc_handler::{closure#0}>::{closure#0}, ()>::{closure#1}::{closure#0}::{closure#0}, ()>
  66:     0x7ffd424e479f - RINvNtNtCseFo9rzt8nG0_3std3sys9backtrace28___rust_begin_short_backtraceNCNCINvNtCs3nk84nPWrZA_15rustc_interface4util26run_in_thread_with_globalsNCINvB1e_31run_in_thread_pool_with_globalsNCINvNtB1g_9interface12run_compileruNCNvCs8LjMsns72Ye_17rustc_driver_i
  67:     0x7ffd424f3010 - std[aad7a0f80ff4ecfa]::sys::backtrace::__rust_begin_short_backtrace::<<std[aad7a0f80ff4ecfa]::thread::Builder>::spawn_unchecked_<ctrlc[d1d1c403957100d4]::set_handler_inner<rustc_driver_impl[66120e850aa3d048]::install_ctrlc_handler::{closure#0}>::{closure#0}, ()>::{closure#1}::{closure#0}::{closure#0}, ()>
  68:     0x7ffd45bc7e1d - alloc::boxed::impl$28::call_once
                               at /rustc/50aa04180709189a03dde5fd1c05751b2625ed37/library\alloc\src\boxed.rs:1966
  69:     0x7ffd45bc7e1d - alloc::boxed::impl$28::call_once
                               at /rustc/50aa04180709189a03dde5fd1c05751b2625ed37/library\alloc\src\boxed.rs:1966
  70:     0x7ffd45bc7e1d - std::sys::pal::windows::thread::impl$0::new::thread_start
                               at /rustc/50aa04180709189a03dde5fd1c05751b2625ed37/library\std\src\sys\pal\windows\thread.rs:56
  71:     0x7ffe20097374 - BaseThreadInitThunk
  72:     0x7ffe2057cc91 - RtlUserThreadStart

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: compiler flags: -Z validate-mir

query stack during panic:
#0 [mir_built] building MIR for `A`
#1 [has_ffi_unwind_calls] checking if `A` contains FFI-unwind calls
... and 7 other queries... use `env RUST_BACKTRACE=1` to see the full query stack
error: aborting due to 2 previous errors

@sososopy sososopy added I-ICE Issue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️ T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. C-bug Category: This is a bug. labels May 9, 2025
@rustbot rustbot added the needs-triage This issue may need triage. Remove it if it has been sufficiently triaged. label May 9, 2025
@compiler-errors compiler-errors added the -Zvalidate-mir Unstable option: MIR validation label May 9, 2025
@matthiaskrgr
Copy link
Member

looks like a duplicate of #126680 I think

@sososopy
Copy link
Author

One interesting thing is that when I specified the specific type constraints for the program and added the main function, it also spawned ICE at stable rustc 1.86.0

fn A() -> impl Clone{
    while A() {}
    loop {}
}
fn main() {}

rustc --version --verbose:

rustc 1.86.0 (05f9846f8 2025-03-31)
binary: rustc
commit-hash: 05f9846f893b09a1be1fc8560e33fc3c815cfecb
commit-date: 2025-03-31
host: x86_64-pc-windows-msvc
release: 1.86.0
LLVM version: 19.1.7
error: internal compiler error: broken MIR in DefId(0:3 ~ test[97a0]::A) (Terminator { source_info: SourceInfo { span: .\test.rs:2:11: 2:14 (#0), scope: scope[0] }, kind: switchInt(move _3) -> [0: bb5, otherwise: bb4] }): bad SwitchInt discr ty Alias(Opaque, AliasTy { args: [], def_id: DefId(0:4 ~ test[97a0]::A::{opaque#0}), .. })
  |
2 |     while A() {}
  |           ^^^
  |
note: delayed at compiler\rustc_borrowck\src\type_check\mod.rs:1051:21 - disabled backtrace
  |
2 |     while A() {}
  |           ^^^

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: rustc 1.86.0 (05f9846f8 2025-03-31) running on x86_64-pc-windows-msvc

query stack during panic:
end of query stack

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
-Zvalidate-mir Unstable option: MIR validation C-bug Category: This is a bug. I-ICE Issue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️ needs-triage This issue may need triage. Remove it if it has been sufficiently triaged. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue.
Projects
None yet
Development

No branches or pull requests

4 participants