Skip to content

Add overflow_checks intrinsic #128666

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
wants to merge 6 commits into
base: master
Choose a base branch
from

Conversation

pitaj
Copy link
Contributor

@pitaj pitaj commented Aug 4, 2024

This adds an intrinsic which allows code in a pre-built library to inherit the overflow checks option from a crate depending on it. This enables code in the standard library to explicitly change behavior based on whether overflow_checks are enabled, regardless of the setting used when standard library was compiled.

This is very similar to the ub_checks intrinsic, and refactors the two to use a common mechanism.

The primary use case for this is to allow the new RangeFrom iterator to yield the maximum element before overflowing, as requested here. I already have a working IterRangeFrom implementation based on this new intrinsic that exhibits the desired behavior.

Prior discussion on Zulip

@rustbot
Copy link
Collaborator

rustbot commented Aug 4, 2024

r? @BoxyUwU

rustbot has assigned @BoxyUwU.
They will have a look at your PR within the next two weeks and either review your PR or reassign to another reviewer.

Use r? to explicitly pick a reviewer

@rustbot rustbot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. labels Aug 4, 2024
@rustbot
Copy link
Collaborator

rustbot commented Aug 4, 2024

Some changes occurred to MIR optimizations

cc @rust-lang/wg-mir-opt

This PR changes Stable MIR

cc @oli-obk, @celinval, @ouz-a

Some changes occurred in src/tools/clippy

cc @rust-lang/clippy

Some changes occurred to the CTFE / Miri engine

cc @rust-lang/miri

This PR changes MIR

cc @oli-obk, @RalfJung, @JakobDegen, @davidtwco, @celinval, @vakaras

Some changes occurred in compiler/rustc_codegen_cranelift

cc @bjorn3

@rustbot rustbot added the T-libs Relevant to the library team, which will review and decide on the PR/issue. label Aug 4, 2024
@saethlin
Copy link
Member

saethlin commented Aug 5, 2024

Given how invasive and boilerplatey the implementation of the intrinsic is, I strongly prefer we not merge this unless it comes with well-motivated use in the standard library implementation.

@pitaj
Copy link
Contributor Author

pitaj commented Aug 5, 2024

Just to be clear, do you mean the existing motivation (better debug behavior for IterRangeFrom) is insufficient?

@saethlin
Copy link
Member

saethlin commented Aug 5, 2024

Oh wow that wording I left was very unclear. I'll try to explain myself better this time.

The implementation strategy that is currently used for the runtime UB checks (intrinsic which lowers to a new NullOp that's branched on) is concerningly heavy on both compiler implementation complexity and compile-time overhead. There are 4 places where the runtime UB checks are cfg'd out or not merged yet because their compile-time overhead isn't justifiable (ptr::read, ptr::write, Alignment::new_unchecked, and Layout::from_size_align_unchecked). The compile-time overhead is directly caused by the fact that both sides of the if are implemented in the library source.

Before we merge the compiler complexity in this PR, I want evidence that actually using the new intrinsic for its intended purpose has tolerable compile-time overhead. If the compile-time overhead of the approach in this PR is so high that its use must be avoided in often-instantiated code paths, we should find another strategy. So what would make me happy is a draft PR based on this one (or just modifying this PR) that swaps in the new range types and uses this new overflow_checks() intrinsic in their implementation, and a perf run that demonstrates a tolerable compile-time hit.


I've mostly put up with the UB checks implementation because I have finite time to investigate things, and it has so far been a mostly-successful way to deliver a feature we've been missing for years. My leading theory on a better way to do this is to have a magic const (I mentioned it in this issue #120848 and now I wish I could link to that one checkbox directly) because that would prevent this system from leaking into the types for MIR.

@bors
Copy link
Collaborator

bors commented Aug 6, 2024

☔ The latest upstream changes (presumably #128707) made this pull request unmergeable. Please resolve the merge conflicts.

@BoxyUwU BoxyUwU added S-blocked Status: Blocked on something else such as an RFC or other implementation work. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Aug 14, 2024
@BoxyUwU
Copy link
Member

BoxyUwU commented Sep 16, 2024

It's worth noting that like the UB checks flag, if this gets added we need to ensure that ctfe always runs with either the flag enabled or disabled and is not affected by any kind of rustc flag as otherwise it would be unsound for const generics (#129552). I think what @saethlin said about making sure this is actually usable in practice is a good point so marked this as S-blocked until that is resolved.

@celinval
Copy link
Contributor

I'm wondering if these cases where we want to enable extra checks in the standard library should be fixed by improving and stabilizing the cargo option to build the standard library together with the target crate.

@saethlin
Copy link
Member

I too would love to see all of the issues addressed: https://github.com/rust-lang/wg-cargo-std-aware/issues?q=is%3Aissue+label%3A%22stabilization+blocker%22+is%3Aopen but it's a huge engineering and political effort. If you'd like to push forward such work, a PR is not the right place to advocate for it.

@celinval
Copy link
Contributor

celinval commented Sep 17, 2024

I too would love to see all of the issues addressed: https://github.com/rust-lang/wg-cargo-std-aware/issues?q=is%3Aissue+label%3A%22stabilization+blocker%22+is%3Aopen but it's a huge engineering and political effort. If you'd like to push forward such work, a PR is not the right place to advocate for it.

I'm just trying to understand the motivation behind the chosen approach, which I think is a fair point to ask.

What are the trade-offs and why this has to be solved by adding more logic to the compiler backend so the std library behaves like any other cargo dependency.

From what I understand, building the standard library in cargo is out of the table given its current state. So thank you for clarifying.

@BoxyUwU
Copy link
Member

BoxyUwU commented Nov 21, 2024

I'm gonna close this since it's not had any activity for ~2 months and making progress seems somewhat blocked. Feel free to re-open this at some future point.

@BoxyUwU BoxyUwU closed this Nov 21, 2024
@pitaj pitaj reopened this May 4, 2025
@pitaj pitaj force-pushed the intrinsic-overflow_checks branch from 803f841 to a7c9eb6 Compare May 4, 2025 05:55
@rustbot
Copy link
Collaborator

rustbot commented May 4, 2025

Some changes occurred to the intrinsics. Make sure the CTFE / Miri interpreter
gets adapted for the changes, if necessary.

cc @rust-lang/miri, @RalfJung, @oli-obk, @lcnr

Some changes occurred in compiler/rustc_codegen_ssa

cc @WaffleLapkin

Some changes occurred to the CTFE machinery

cc @RalfJung, @oli-obk, @lcnr

The Miri subtree was changed

cc @rust-lang/miri

Some changes occurred to constck

cc @fee1-dead

@pitaj
Copy link
Contributor Author

pitaj commented May 4, 2025

Reopening this because I noticed the recent addition of the contract_checks intrinsic, and thought of a way to try the overflow_checks intrinsic out by modifying the legacy RangeFrom code to use it.

Running perf on this PR should give us some idea of how much impact this kind of check would have on compile times if the new RangeFrom became the default. Tests are expected to fail, but perf should still be able to run (the broken logic only affects debug mode).

@rust-log-analyzer
Copy link
Collaborator

The job x86_64-gnu-tools failed! Check out the build log: (web) (plain)

Click to see the possible cause of the failure (guessed by this bot)
[RUSTC-TIMING] cfg_if test:false 0.043
   Compiling futures-sink v0.3.30
[RUSTC-TIMING] cfg_if test:false 0.043

thread 'rustc' panicked at compiler/rustc_middle/src/mir/interpret/allocation/init_mask.rs:541:9:
assertion `left == right` failed: optimized implementation of find_bit is wrong for start=Size(0 bytes) end=Size(408 bytes) is_init=false init_mask=InitMaskMaterialized {
    blocks: [
        18446744073709551615,
        18446744073709551615,
        18446744073709551615,
        18446744073709551615,
        18446744073709551615,
---
 right: Some(Size(402 bytes))
stack backtrace:
   0:     0x7f0583ed9610 - <<std[e7d048001937a456]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[a0693f67f127056c]::fmt::Display>::fmt
   1:     0x7f0583f35eaf - core[a0693f67f127056c]::fmt::write
   2:     0x7f0583ecc669 - <std[e7d048001937a456]::sys::stdio::unix::Stderr as std[e7d048001937a456]::io::Write>::write_fmt
   3:     0x7f0583ed94b2 - <std[e7d048001937a456]::sys::backtrace::BacktraceLock>::print
   4:     0x7f0583eddcb8 - std[e7d048001937a456]::panicking::default_hook::{closure#0}
   5:     0x7f0583edda52 - std[e7d048001937a456]::panicking::default_hook
   6:     0x7f057f495d74 - std[e7d048001937a456]::panicking::update_hook::<alloc[53524e6519978be9]::boxed::Box<rustc_driver_impl[ad80a649651ec1a7]::install_ice_hook::{closure#1}>>::{closure#0}
   7:     0x7f0583ede933 - std[e7d048001937a456]::panicking::rust_panic_with_hook
   8:     0x7f0583ede52e - std[e7d048001937a456]::panicking::begin_panic_handler::{closure#0}
   9:     0x7f0583ed9c29 - std[e7d048001937a456]::sys::backtrace::__rust_end_short_backtrace::<std[e7d048001937a456]::panicking::begin_panic_handler::{closure#0}, !>
  10:     0x7f0583ede13d - __rustc[20fdd7711f0291b8]::rust_begin_unwind
  11:     0x7f0583f31af0 - core[a0693f67f127056c]::panicking::panic_fmt
  12:     0x7f0583f3205a - core[a0693f67f127056c]::panicking::assert_failed_inner
  13:     0x7f05837b8dec - core[a0693f67f127056c]::panicking::assert_failed::<core[a0693f67f127056c]::option::Option<rustc_abi[f9edd2ae83d58e]::Size>, core[a0693f67f127056c]::option::Option<rustc_abi[f9edd2ae83d58e]::Size>>
  14:     0x7f058375bb27 - <rustc_middle[3dc565fff7e923fe]::mir::interpret::allocation::init_mask::InitMaskMaterialized>::find_bit
  15:     0x7f058375bc6a - <rustc_middle[3dc565fff7e923fe]::mir::interpret::allocation::init_mask::InitMask>::prepare_copy
  16:     0x7f058122828e - <rustc_const_eval[1816531ae4516e22]::interpret::eval_context::InterpCx<rustc_const_eval[1816531ae4516e22]::const_eval::machine::CompileTimeMachine>>::mem_copy_repeatedly
  17:     0x7f058125ff87 - <rustc_const_eval[1816531ae4516e22]::interpret::eval_context::InterpCx<rustc_const_eval[1816531ae4516e22]::const_eval::machine::CompileTimeMachine>>::copy_op_no_validate::<rustc_const_eval[1816531ae4516e22]::interpret::operand::OpTy, rustc_const_eval[1816531ae4516e22]::interpret::place::MPlaceTy>
  18:     0x7f0581250a1c - <rustc_const_eval[1816531ae4516e22]::interpret::eval_context::InterpCx<rustc_const_eval[1816531ae4516e22]::const_eval::machine::CompileTimeMachine>>::return_from_current_stack_frame
  19:     0x7f0581248700 - <rustc_const_eval[1816531ae4516e22]::interpret::eval_context::InterpCx<rustc_const_eval[1816531ae4516e22]::const_eval::machine::CompileTimeMachine>>::eval_terminator
  20:     0x7f058128a884 - rustc_const_eval[1816531ae4516e22]::const_eval::eval_queries::eval_static_initializer_provider
  21:     0x7f058217fb01 - rustc_query_impl[14d02d897b4dbe1f]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[14d02d897b4dbe1f]::query_impl::eval_static_initializer::dynamic_query::{closure#2}::{closure#0}, rustc_middle[3dc565fff7e923fe]::query::erase::Erased<[u8; 16usize]>>
  22:     0x7f0582097bc1 - <rustc_query_impl[14d02d897b4dbe1f]::query_impl::eval_static_initializer::dynamic_query::{closure#2} as core[a0693f67f127056c]::ops::function::FnOnce<(rustc_middle[3dc565fff7e923fe]::ty::context::TyCtxt, rustc_span[7cb28b38d9c7ea73]::def_id::DefId)>>::call_once
  23:     0x7f0581f69662 - rustc_query_system[92564f505af70d07]::query::plumbing::try_execute_query::<rustc_query_impl[14d02d897b4dbe1f]::DynamicConfig<rustc_query_system[92564f505af70d07]::query::caches::DefIdCache<rustc_middle[3dc565fff7e923fe]::query::erase::Erased<[u8; 16usize]>>, false, false, false>, rustc_query_impl[14d02d897b4dbe1f]::plumbing::QueryCtxt, false>
  24:     0x7f05822ea2fb - rustc_query_impl[14d02d897b4dbe1f]::query_impl::eval_static_initializer::get_query_non_incr::__rust_end_short_backtrace
  25:     0x7f058039eec0 - <rustc_middle[3dc565fff7e923fe]::ty::context::TyCtxt>::par_hir_body_owners::<rustc_hir_analysis[ed9cda6a6374726f]::check_crate::{closure#2}>::{closure#0}
  26:     0x7f058039153a - rustc_data_structures[446af8e930281612]::sync::parallel::par_for_each_in::<&rustc_span[7cb28b38d9c7ea73]::def_id::LocalDefId, &[rustc_span[7cb28b38d9c7ea73]::def_id::LocalDefId], <rustc_middle[3dc565fff7e923fe]::ty::context::TyCtxt>::par_hir_body_owners<rustc_hir_analysis[ed9cda6a6374726f]::check_crate::{closure#2}>::{closure#0}>
  27:     0x7f0580479c57 - rustc_hir_analysis[ed9cda6a6374726f]::check_crate
  28:     0x7f057f844675 - rustc_interface[2bf740a3c7130f36]::passes::analysis
  29:     0x7f058218cab3 - rustc_query_impl[14d02d897b4dbe1f]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[14d02d897b4dbe1f]::query_impl::analysis::dynamic_query::{closure#2}::{closure#0}, rustc_middle[3dc565fff7e923fe]::query::erase::Erased<[u8; 0usize]>>
  30:     0x7f05820b5261 - <rustc_query_impl[14d02d897b4dbe1f]::query_impl::analysis::dynamic_query::{closure#2} as core[a0693f67f127056c]::ops::function::FnOnce<(rustc_middle[3dc565fff7e923fe]::ty::context::TyCtxt, ())>>::call_once
  31:     0x7f0581f7c1e9 - rustc_query_system[92564f505af70d07]::query::plumbing::try_execute_query::<rustc_query_impl[14d02d897b4dbe1f]::DynamicConfig<rustc_query_system[92564f505af70d07]::query::caches::SingleCache<rustc_middle[3dc565fff7e923fe]::query::erase::Erased<[u8; 0usize]>>, false, false, false>, rustc_query_impl[14d02d897b4dbe1f]::plumbing::QueryCtxt, false>
  32:     0x7f05824b85f2 - rustc_query_impl[14d02d897b4dbe1f]::query_impl::analysis::get_query_non_incr::__rust_end_short_backtrace
  33:     0x7f057f3c231b - <std[e7d048001937a456]::thread::local::LocalKey<core[a0693f67f127056c]::cell::Cell<*const ()>>>::with::<rustc_middle[3dc565fff7e923fe]::ty::context::tls::enter_context<<rustc_middle[3dc565fff7e923fe]::ty::context::GlobalCtxt>::enter<rustc_interface[2bf740a3c7130f36]::passes::create_and_enter_global_ctxt<core[a0693f67f127056c]::option::Option<rustc_interface[2bf740a3c7130f36]::queries::Linker>, rustc_driver_impl[ad80a649651ec1a7]::run_compiler::{closure#0}::{closure#2}>::{closure#2}::{closure#0}, core[a0693f67f127056c]::option::Option<rustc_interface[2bf740a3c7130f36]::queries::Linker>>::{closure#1}, core[a0693f67f127056c]::option::Option<rustc_interface[2bf740a3c7130f36]::queries::Linker>>::{closure#0}, core[a0693f67f127056c]::option::Option<rustc_interface[2bf740a3c7130f36]::queries::Linker>>
  34:     0x7f057f438972 - <rustc_middle[3dc565fff7e923fe]::ty::context::TyCtxt>::create_global_ctxt::<core[a0693f67f127056c]::option::Option<rustc_interface[2bf740a3c7130f36]::queries::Linker>, rustc_interface[2bf740a3c7130f36]::passes::create_and_enter_global_ctxt<core[a0693f67f127056c]::option::Option<rustc_interface[2bf740a3c7130f36]::queries::Linker>, rustc_driver_impl[ad80a649651ec1a7]::run_compiler::{closure#0}::{closure#2}>::{closure#2}::{closure#0}>
  35:     0x7f057f3bf456 - <rustc_interface[2bf740a3c7130f36]::passes::create_and_enter_global_ctxt<core[a0693f67f127056c]::option::Option<rustc_interface[2bf740a3c7130f36]::queries::Linker>, rustc_driver_impl[ad80a649651ec1a7]::run_compiler::{closure#0}::{closure#2}>::{closure#2} as core[a0693f67f127056c]::ops::function::FnOnce<(&rustc_session[19b393e2e4c2e421]::session::Session, rustc_middle[3dc565fff7e923fe]::ty::context::CurrentGcx, alloc[53524e6519978be9]::sync::Arc<rustc_data_structures[446af8e930281612]::jobserver::Proxy>, &std[e7d048001937a456]::sync::once_lock::OnceLock<rustc_middle[3dc565fff7e923fe]::ty::context::GlobalCtxt>, &rustc_data_structures[446af8e930281612]::sync::worker_local::WorkerLocal<rustc_middle[3dc565fff7e923fe]::arena::Arena>, &rustc_data_structures[446af8e930281612]::sync::worker_local::WorkerLocal<rustc_hir[d18396b0c3461120]::Arena>, rustc_driver_impl[ad80a649651ec1a7]::run_compiler::{closure#0}::{closure#2})>>::call_once::{shim:vtable#0}
  36:     0x7f057f49f5a6 - <alloc[53524e6519978be9]::boxed::Box<dyn for<'a> core[a0693f67f127056c]::ops::function::FnOnce<(&'a rustc_session[19b393e2e4c2e421]::session::Session, rustc_middle[3dc565fff7e923fe]::ty::context::CurrentGcx, alloc[53524e6519978be9]::sync::Arc<rustc_data_structures[446af8e930281612]::jobserver::Proxy>, &'a std[e7d048001937a456]::sync::once_lock::OnceLock<rustc_middle[3dc565fff7e923fe]::ty::context::GlobalCtxt<'a>>, &'a rustc_data_structures[446af8e930281612]::sync::worker_local::WorkerLocal<rustc_middle[3dc565fff7e923fe]::arena::Arena<'a>>, &'a rustc_data_structures[446af8e930281612]::sync::worker_local::WorkerLocal<rustc_hir[d18396b0c3461120]::Arena<'a>>, rustc_driver_impl[ad80a649651ec1a7]::run_compiler::{closure#0}::{closure#2}), Output = core[a0693f67f127056c]::option::Option<rustc_interface[2bf740a3c7130f36]::queries::Linker>>> as core[a0693f67f127056c]::ops::function::FnOnce<(&rustc_session[19b393e2e4c2e421]::session::Session, rustc_middle[3dc565fff7e923fe]::ty::context::CurrentGcx, alloc[53524e6519978be9]::sync::Arc<rustc_data_structures[446af8e930281612]::jobserver::Proxy>, &std[e7d048001937a456]::sync::once_lock::OnceLock<rustc_middle[3dc565fff7e923fe]::ty::context::GlobalCtxt>, &rustc_data_structures[446af8e930281612]::sync::worker_local::WorkerLocal<rustc_middle[3dc565fff7e923fe]::arena::Arena>, &rustc_data_structures[446af8e930281612]::sync::worker_local::WorkerLocal<rustc_hir[d18396b0c3461120]::Arena>, rustc_driver_impl[ad80a649651ec1a7]::run_compiler::{closure#0}::{closure#2})>>::call_once
  37:     0x7f057f39d6a7 - rustc_interface[2bf740a3c7130f36]::passes::create_and_enter_global_ctxt::<core[a0693f67f127056c]::option::Option<rustc_interface[2bf740a3c7130f36]::queries::Linker>, rustc_driver_impl[ad80a649651ec1a7]::run_compiler::{closure#0}::{closure#2}>
  38:     0x7f057f421ca5 - rustc_span[7cb28b38d9c7ea73]::create_session_globals_then::<(), rustc_interface[2bf740a3c7130f36]::util::run_in_thread_with_globals<rustc_interface[2bf740a3c7130f36]::util::run_in_thread_pool_with_globals<rustc_interface[2bf740a3c7130f36]::interface::run_compiler<(), rustc_driver_impl[ad80a649651ec1a7]::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}::{closure#0}>
  39:     0x7f057f419059 - std[e7d048001937a456]::sys::backtrace::__rust_begin_short_backtrace::<rustc_interface[2bf740a3c7130f36]::util::run_in_thread_with_globals<rustc_interface[2bf740a3c7130f36]::util::run_in_thread_pool_with_globals<rustc_interface[2bf740a3c7130f36]::interface::run_compiler<(), rustc_driver_impl[ad80a649651ec1a7]::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>
  40:     0x7f057f41c924 - <<std[e7d048001937a456]::thread::Builder>::spawn_unchecked_<rustc_interface[2bf740a3c7130f36]::util::run_in_thread_with_globals<rustc_interface[2bf740a3c7130f36]::util::run_in_thread_pool_with_globals<rustc_interface[2bf740a3c7130f36]::interface::run_compiler<(), rustc_driver_impl[ad80a649651ec1a7]::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>::{closure#1} as core[a0693f67f127056c]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
  41:     0x7f0583ee2365 - <std[e7d048001937a456]::sys::pal::unix::thread::Thread>::new::thread_start
---
note: please make sure that you have updated to the latest nightly

note: please attach the file at `/cargo/registry/src/index.crates.io-1949cf8c6b5b557f/unicode-ident-1.0.12/rustc-ice-2025-05-04T06_16_16-30172.txt` to your bug report

note: compiler flags: --crate-type lib -C embed-bitcode=no -Z binary-dep-depinfo -Z on-broken-pipe=kill -Z unstable-options

note: some of the compiler flags provided by cargo are hidden

query stack during panic:
#0 [eval_static_initializer] evaluating initializer of static `tables::TRIE_START`
#1 [analysis] running analysis passes on this crate
end of query stack

thread 'rustc' panicked at compiler/rustc_middle/src/mir/interpret/allocation/init_mask.rs:541:9:
assertion `left == right` failed: optimized implementation of find_bit is wrong for start=Size(0 bytes) end=Size(1800 bytes) is_init=false init_mask=InitMaskMaterialized {
    blocks: [
        18446744073709551615,
        18446744073709551615,
        18446744073709551615,
        18446744073709551615,
        18446744073709551615,
---
 right: Some(Size(1793 bytes))
stack backtrace:
   0:     0x7f0583ed9610 - <<std[e7d048001937a456]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[a0693f67f127056c]::fmt::Display>::fmt
   1:     0x7f0583f35eaf - core[a0693f67f127056c]::fmt::write
   2:     0x7f0583ecc669 - <std[e7d048001937a456]::sys::stdio::unix::Stderr as std[e7d048001937a456]::io::Write>::write_fmt
   3:     0x7f0583ed94b2 - <std[e7d048001937a456]::sys::backtrace::BacktraceLock>::print
   4:     0x7f0583eddcb8 - std[e7d048001937a456]::panicking::default_hook::{closure#0}
   5:     0x7f0583edda52 - std[e7d048001937a456]::panicking::default_hook
   6:     0x7f057f495d74 - std[e7d048001937a456]::panicking::update_hook::<alloc[53524e6519978be9]::boxed::Box<rustc_driver_impl[ad80a649651ec1a7]::install_ice_hook::{closure#1}>>::{closure#0}
   7:     0x7f0583ede933 - std[e7d048001937a456]::panicking::rust_panic_with_hook
   8:     0x7f0583ede52e - std[e7d048001937a456]::panicking::begin_panic_handler::{closure#0}
   9:     0x7f0583ed9c29 - std[e7d048001937a456]::sys::backtrace::__rust_end_short_backtrace::<std[e7d048001937a456]::panicking::begin_panic_handler::{closure#0}, !>
  10:     0x7f0583ede13d - __rustc[20fdd7711f0291b8]::rust_begin_unwind
  11:     0x7f0583f31af0 - core[a0693f67f127056c]::panicking::panic_fmt
  12:     0x7f0583f3205a - core[a0693f67f127056c]::panicking::assert_failed_inner
  13:     0x7f05837b8dec - core[a0693f67f127056c]::panicking::assert_failed::<core[a0693f67f127056c]::option::Option<rustc_abi[f9edd2ae83d58e]::Size>, core[a0693f67f127056c]::option::Option<rustc_abi[f9edd2ae83d58e]::Size>>
  14:     0x7f058375bb27 - <rustc_middle[3dc565fff7e923fe]::mir::interpret::allocation::init_mask::InitMaskMaterialized>::find_bit
  15:     0x7f058375bc6a - <rustc_middle[3dc565fff7e923fe]::mir::interpret::allocation::init_mask::InitMask>::prepare_copy
  16:     0x7f058122828e - <rustc_const_eval[1816531ae4516e22]::interpret::eval_context::InterpCx<rustc_const_eval[1816531ae4516e22]::const_eval::machine::CompileTimeMachine>>::mem_copy_repeatedly
  17:     0x7f058125ff87 - <rustc_const_eval[1816531ae4516e22]::interpret::eval_context::InterpCx<rustc_const_eval[1816531ae4516e22]::const_eval::machine::CompileTimeMachine>>::copy_op_no_validate::<rustc_const_eval[1816531ae4516e22]::interpret::operand::OpTy, rustc_const_eval[1816531ae4516e22]::interpret::place::MPlaceTy>
  18:     0x7f0581250a1c - <rustc_const_eval[1816531ae4516e22]::interpret::eval_context::InterpCx<rustc_const_eval[1816531ae4516e22]::const_eval::machine::CompileTimeMachine>>::return_from_current_stack_frame
  19:     0x7f0581248700 - <rustc_const_eval[1816531ae4516e22]::interpret::eval_context::InterpCx<rustc_const_eval[1816531ae4516e22]::const_eval::machine::CompileTimeMachine>>::eval_terminator
  20:     0x7f058128a884 - rustc_const_eval[1816531ae4516e22]::const_eval::eval_queries::eval_static_initializer_provider
  21:     0x7f058217fb01 - rustc_query_impl[14d02d897b4dbe1f]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[14d02d897b4dbe1f]::query_impl::eval_static_initializer::dynamic_query::{closure#2}::{closure#0}, rustc_middle[3dc565fff7e923fe]::query::erase::Erased<[u8; 16usize]>>
  22:     0x7f0582097bc1 - <rustc_query_impl[14d02d897b4dbe1f]::query_impl::eval_static_initializer::dynamic_query::{closure#2} as core[a0693f67f127056c]::ops::function::FnOnce<(rustc_middle[3dc565fff7e923fe]::ty::context::TyCtxt, rustc_span[7cb28b38d9c7ea73]::def_id::DefId)>>::call_once
  23:     0x7f0581f69662 - rustc_query_system[92564f505af70d07]::query::plumbing::try_execute_query::<rustc_query_impl[14d02d897b4dbe1f]::DynamicConfig<rustc_query_system[92564f505af70d07]::query::caches::DefIdCache<rustc_middle[3dc565fff7e923fe]::query::erase::Erased<[u8; 16usize]>>, false, false, false>, rustc_query_impl[14d02d897b4dbe1f]::plumbing::QueryCtxt, false>
  24:     0x7f05822ea2fb - rustc_query_impl[14d02d897b4dbe1f]::query_impl::eval_static_initializer::get_query_non_incr::__rust_end_short_backtrace
  25:     0x7f058039eec0 - <rustc_middle[3dc565fff7e923fe]::ty::context::TyCtxt>::par_hir_body_owners::<rustc_hir_analysis[ed9cda6a6374726f]::check_crate::{closure#2}>::{closure#0}
  26:     0x7f058039153a - rustc_data_structures[446af8e930281612]::sync::parallel::par_for_each_in::<&rustc_span[7cb28b38d9c7ea73]::def_id::LocalDefId, &[rustc_span[7cb28b38d9c7ea73]::def_id::LocalDefId], <rustc_middle[3dc565fff7e923fe]::ty::context::TyCtxt>::par_hir_body_owners<rustc_hir_analysis[ed9cda6a6374726f]::check_crate::{closure#2}>::{closure#0}>
  27:     0x7f0580479c57 - rustc_hir_analysis[ed9cda6a6374726f]::check_crate
  28:     0x7f057f844675 - rustc_interface[2bf740a3c7130f36]::passes::analysis
  29:     0x7f058218cab3 - rustc_query_impl[14d02d897b4dbe1f]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[14d02d897b4dbe1f]::query_impl::analysis::dynamic_query::{closure#2}::{closure#0}, rustc_middle[3dc565fff7e923fe]::query::erase::Erased<[u8; 0usize]>>
  30:     0x7f05820b5261 - <rustc_query_impl[14d02d897b4dbe1f]::query_impl::analysis::dynamic_query::{closure#2} as core[a0693f67f127056c]::ops::function::FnOnce<(rustc_middle[3dc565fff7e923fe]::ty::context::TyCtxt, ())>>::call_once
  31:     0x7f0581f7c1e9 - rustc_query_system[92564f505af70d07]::query::plumbing::try_execute_query::<rustc_query_impl[14d02d897b4dbe1f]::DynamicConfig<rustc_query_system[92564f505af70d07]::query::caches::SingleCache<rustc_middle[3dc565fff7e923fe]::query::erase::Erased<[u8; 0usize]>>, false, false, false>, rustc_query_impl[14d02d897b4dbe1f]::plumbing::QueryCtxt, false>
  32:     0x7f05824b85f2 - rustc_query_impl[14d02d897b4dbe1f]::query_impl::analysis::get_query_non_incr::__rust_end_short_backtrace
  33:     0x7f057f3c231b - <std[e7d048001937a456]::thread::local::LocalKey<core[a0693f67f127056c]::cell::Cell<*const ()>>>::with::<rustc_middle[3dc565fff7e923fe]::ty::context::tls::enter_context<<rustc_middle[3dc565fff7e923fe]::ty::context::GlobalCtxt>::enter<rustc_interface[2bf740a3c7130f36]::passes::create_and_enter_global_ctxt<core[a0693f67f127056c]::option::Option<rustc_interface[2bf740a3c7130f36]::queries::Linker>, rustc_driver_impl[ad80a649651ec1a7]::run_compiler::{closure#0}::{closure#2}>::{closure#2}::{closure#0}, core[a0693f67f127056c]::option::Option<rustc_interface[2bf740a3c7130f36]::queries::Linker>>::{closure#1}, core[a0693f67f127056c]::option::Option<rustc_interface[2bf740a3c7130f36]::queries::Linker>>::{closure#0}, core[a0693f67f127056c]::option::Option<rustc_interface[2bf740a3c7130f36]::queries::Linker>>
  34:     0x7f057f438972 - <rustc_middle[3dc565fff7e923fe]::ty::context::TyCtxt>::create_global_ctxt::<core[a0693f67f127056c]::option::Option<rustc_interface[2bf740a3c7130f36]::queries::Linker>, rustc_interface[2bf740a3c7130f36]::passes::create_and_enter_global_ctxt<core[a0693f67f127056c]::option::Option<rustc_interface[2bf740a3c7130f36]::queries::Linker>, rustc_driver_impl[ad80a649651ec1a7]::run_compiler::{closure#0}::{closure#2}>::{closure#2}::{closure#0}>
  35:     0x7f057f3bf456 - <rustc_interface[2bf740a3c7130f36]::passes::create_and_enter_global_ctxt<core[a0693f67f127056c]::option::Option<rustc_interface[2bf740a3c7130f36]::queries::Linker>, rustc_driver_impl[ad80a649651ec1a7]::run_compiler::{closure#0}::{closure#2}>::{closure#2} as core[a0693f67f127056c]::ops::function::FnOnce<(&rustc_session[19b393e2e4c2e421]::session::Session, rustc_middle[3dc565fff7e923fe]::ty::context::CurrentGcx, alloc[53524e6519978be9]::sync::Arc<rustc_data_structures[446af8e930281612]::jobserver::Proxy>, &std[e7d048001937a456]::sync::once_lock::OnceLock<rustc_middle[3dc565fff7e923fe]::ty::context::GlobalCtxt>, &rustc_data_structures[446af8e930281612]::sync::worker_local::WorkerLocal<rustc_middle[3dc565fff7e923fe]::arena::Arena>, &rustc_data_structures[446af8e930281612]::sync::worker_local::WorkerLocal<rustc_hir[d18396b0c3461120]::Arena>, rustc_driver_impl[ad80a649651ec1a7]::run_compiler::{closure#0}::{closure#2})>>::call_once::{shim:vtable#0}
  36:     0x7f057f49f5a6 - <alloc[53524e6519978be9]::boxed::Box<dyn for<'a> core[a0693f67f127056c]::ops::function::FnOnce<(&'a rustc_session[19b393e2e4c2e421]::session::Session, rustc_middle[3dc565fff7e923fe]::ty::context::CurrentGcx, alloc[53524e6519978be9]::sync::Arc<rustc_data_structures[446af8e930281612]::jobserver::Proxy>, &'a std[e7d048001937a456]::sync::once_lock::OnceLock<rustc_middle[3dc565fff7e923fe]::ty::context::GlobalCtxt<'a>>, &'a rustc_data_structures[446af8e930281612]::sync::worker_local::WorkerLocal<rustc_middle[3dc565fff7e923fe]::arena::Arena<'a>>, &'a rustc_data_structures[446af8e930281612]::sync::worker_local::WorkerLocal<rustc_hir[d18396b0c3461120]::Arena<'a>>, rustc_driver_impl[ad80a649651ec1a7]::run_compiler::{closure#0}::{closure#2}), Output = core[a0693f67f127056c]::option::Option<rustc_interface[2bf740a3c7130f36]::queries::Linker>>> as core[a0693f67f127056c]::ops::function::FnOnce<(&rustc_session[19b393e2e4c2e421]::session::Session, rustc_middle[3dc565fff7e923fe]::ty::context::CurrentGcx, alloc[53524e6519978be9]::sync::Arc<rustc_data_structures[446af8e930281612]::jobserver::Proxy>, &std[e7d048001937a456]::sync::once_lock::OnceLock<rustc_middle[3dc565fff7e923fe]::ty::context::GlobalCtxt>, &rustc_data_structures[446af8e930281612]::sync::worker_local::WorkerLocal<rustc_middle[3dc565fff7e923fe]::arena::Arena>, &rustc_data_structures[446af8e930281612]::sync::worker_local::WorkerLocal<rustc_hir[d18396b0c3461120]::Arena>, rustc_driver_impl[ad80a649651ec1a7]::run_compiler::{closure#0}::{closure#2})>>::call_once
  37:     0x7f057f39d6a7 - rustc_interface[2bf740a3c7130f36]::passes::create_and_enter_global_ctxt::<core[a0693f67f127056c]::option::Option<rustc_interface[2bf740a3c7130f36]::queries::Linker>, rustc_driver_impl[ad80a649651ec1a7]::run_compiler::{closure#0}::{closure#2}>
  38:     0x7f057f421ca5 - rustc_span[7cb28b38d9c7ea73]::create_session_globals_then::<(), rustc_interface[2bf740a3c7130f36]::util::run_in_thread_with_globals<rustc_interface[2bf740a3c7130f36]::util::run_in_thread_pool_with_globals<rustc_interface[2bf740a3c7130f36]::interface::run_compiler<(), rustc_driver_impl[ad80a649651ec1a7]::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}::{closure#0}>
  39:     0x7f057f419059 - std[e7d048001937a456]::sys::backtrace::__rust_begin_short_backtrace::<rustc_interface[2bf740a3c7130f36]::util::run_in_thread_with_globals<rustc_interface[2bf740a3c7130f36]::util::run_in_thread_pool_with_globals<rustc_interface[2bf740a3c7130f36]::interface::run_compiler<(), rustc_driver_impl[ad80a649651ec1a7]::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>
  40:     0x7f057f41c924 - <<std[e7d048001937a456]::thread::Builder>::spawn_unchecked_<rustc_interface[2bf740a3c7130f36]::util::run_in_thread_with_globals<rustc_interface[2bf740a3c7130f36]::util::run_in_thread_pool_with_globals<rustc_interface[2bf740a3c7130f36]::interface::run_compiler<(), rustc_driver_impl[ad80a649651ec1a7]::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>::{closure#1} as core[a0693f67f127056c]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
  41:     0x7f0583ee2365 - <std[e7d048001937a456]::sys::pal::unix::thread::Thread>::new::thread_start
---
note: please make sure that you have updated to the latest nightly

note: please attach the file at `/cargo/registry/src/index.crates.io-1949cf8c6b5b557f/unicode-ident-1.0.12/rustc-ice-2025-05-04T06_16_16-30172.txt` to your bug report

note: compiler flags: --crate-type lib -C embed-bitcode=no -Z binary-dep-depinfo -Z on-broken-pipe=kill -Z unstable-options

note: some of the compiler flags provided by cargo are hidden

query stack during panic:
#0 [eval_static_initializer] evaluating initializer of static `tables::TRIE_CONTINUE`
#1 [analysis] running analysis passes on this crate
end of query stack

thread 'rustc' panicked at compiler/rustc_middle/src/mir/interpret/allocation/init_mask.rs:541:9:
assertion `left == right` failed: optimized implementation of find_bit is wrong for start=Size(0 bytes) end=Size(7616 bytes) is_init=false init_mask=InitMaskMaterialized {
    blocks: [
        18446744073709551615,
        18446744073709551615,
        18446744073709551615,
        18446744073709551615,
        18446744073709551615,
---
 right: Some(Size(7584 bytes))
stack backtrace:
   0:     0x7f0583ed9610 - <<std[e7d048001937a456]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[a0693f67f127056c]::fmt::Display>::fmt
   1:     0x7f0583f35eaf - core[a0693f67f127056c]::fmt::write
   2:     0x7f0583ecc669 - <std[e7d048001937a456]::sys::stdio::unix::Stderr as std[e7d048001937a456]::io::Write>::write_fmt
   3:     0x7f0583ed94b2 - <std[e7d048001937a456]::sys::backtrace::BacktraceLock>::print
   4:     0x7f0583eddcb8 - std[e7d048001937a456]::panicking::default_hook::{closure#0}
   5:     0x7f0583edda52 - std[e7d048001937a456]::panicking::default_hook
   6:     0x7f057f495d74 - std[e7d048001937a456]::panicking::update_hook::<alloc[53524e6519978be9]::boxed::Box<rustc_driver_impl[ad80a649651ec1a7]::install_ice_hook::{closure#1}>>::{closure#0}
   7:     0x7f0583ede933 - std[e7d048001937a456]::panicking::rust_panic_with_hook
   8:     0x7f0583ede52e - std[e7d048001937a456]::panicking::begin_panic_handler::{closure#0}
   9:     0x7f0583ed9c29 - std[e7d048001937a456]::sys::backtrace::__rust_end_short_backtrace::<std[e7d048001937a456]::panicking::begin_panic_handler::{closure#0}, !>
  10:     0x7f0583ede13d - __rustc[20fdd7711f0291b8]::rust_begin_unwind
  11:     0x7f0583f31af0 - core[a0693f67f127056c]::panicking::panic_fmt
  12:     0x7f0583f3205a - core[a0693f67f127056c]::panicking::assert_failed_inner
  13:     0x7f05837b8dec - core[a0693f67f127056c]::panicking::assert_failed::<core[a0693f67f127056c]::option::Option<rustc_abi[f9edd2ae83d58e]::Size>, core[a0693f67f127056c]::option::Option<rustc_abi[f9edd2ae83d58e]::Size>>
  14:     0x7f058375bb27 - <rustc_middle[3dc565fff7e923fe]::mir::interpret::allocation::init_mask::InitMaskMaterialized>::find_bit
  15:     0x7f058375bc6a - <rustc_middle[3dc565fff7e923fe]::mir::interpret::allocation::init_mask::InitMask>::prepare_copy
  16:     0x7f058122828e - <rustc_const_eval[1816531ae4516e22]::interpret::eval_context::InterpCx<rustc_const_eval[1816531ae4516e22]::const_eval::machine::CompileTimeMachine>>::mem_copy_repeatedly
  17:     0x7f058125ff87 - <rustc_const_eval[1816531ae4516e22]::interpret::eval_context::InterpCx<rustc_const_eval[1816531ae4516e22]::const_eval::machine::CompileTimeMachine>>::copy_op_no_validate::<rustc_const_eval[1816531ae4516e22]::interpret::operand::OpTy, rustc_const_eval[1816531ae4516e22]::interpret::place::MPlaceTy>
  18:     0x7f0581250a1c - <rustc_const_eval[1816531ae4516e22]::interpret::eval_context::InterpCx<rustc_const_eval[1816531ae4516e22]::const_eval::machine::CompileTimeMachine>>::return_from_current_stack_frame
  19:     0x7f0581248700 - <rustc_const_eval[1816531ae4516e22]::interpret::eval_context::InterpCx<rustc_const_eval[1816531ae4516e22]::const_eval::machine::CompileTimeMachine>>::eval_terminator
  20:     0x7f058128a884 - rustc_const_eval[1816531ae4516e22]::const_eval::eval_queries::eval_static_initializer_provider
  21:     0x7f058217fb01 - rustc_query_impl[14d02d897b4dbe1f]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[14d02d897b4dbe1f]::query_impl::eval_static_initializer::dynamic_query::{closure#2}::{closure#0}, rustc_middle[3dc565fff7e923fe]::query::erase::Erased<[u8; 16usize]>>
  22:     0x7f0582097bc1 - <rustc_query_impl[14d02d897b4dbe1f]::query_impl::eval_static_initializer::dynamic_query::{closure#2} as core[a0693f67f127056c]::ops::function::FnOnce<(rustc_middle[3dc565fff7e923fe]::ty::context::TyCtxt, rustc_span[7cb28b38d9c7ea73]::def_id::DefId)>>::call_once
  23:     0x7f0581f69662 - rustc_query_system[92564f505af70d07]::query::plumbing::try_execute_query::<rustc_query_impl[14d02d897b4dbe1f]::DynamicConfig<rustc_query_system[92564f505af70d07]::query::caches::DefIdCache<rustc_middle[3dc565fff7e923fe]::query::erase::Erased<[u8; 16usize]>>, false, false, false>, rustc_query_impl[14d02d897b4dbe1f]::plumbing::QueryCtxt, false>
  24:     0x7f05822ea2fb - rustc_query_impl[14d02d897b4dbe1f]::query_impl::eval_static_initializer::get_query_non_incr::__rust_end_short_backtrace
  25:     0x7f058039eec0 - <rustc_middle[3dc565fff7e923fe]::ty::context::TyCtxt>::par_hir_body_owners::<rustc_hir_analysis[ed9cda6a6374726f]::check_crate::{closure#2}>::{closure#0}
  26:     0x7f058039153a - rustc_data_structures[446af8e930281612]::sync::parallel::par_for_each_in::<&rustc_span[7cb28b38d9c7ea73]::def_id::LocalDefId, &[rustc_span[7cb28b38d9c7ea73]::def_id::LocalDefId], <rustc_middle[3dc565fff7e923fe]::ty::context::TyCtxt>::par_hir_body_owners<rustc_hir_analysis[ed9cda6a6374726f]::check_crate::{closure#2}>::{closure#0}>
  27:     0x7f0580479c57 - rustc_hir_analysis[ed9cda6a6374726f]::check_crate
  28:     0x7f057f844675 - rustc_interface[2bf740a3c7130f36]::passes::analysis
  29:     0x7f058218cab3 - rustc_query_impl[14d02d897b4dbe1f]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[14d02d897b4dbe1f]::query_impl::analysis::dynamic_query::{closure#2}::{closure#0}, rustc_middle[3dc565fff7e923fe]::query::erase::Erased<[u8; 0usize]>>
  30:     0x7f05820b5261 - <rustc_query_impl[14d02d897b4dbe1f]::query_impl::analysis::dynamic_query::{closure#2} as core[a0693f67f127056c]::ops::function::FnOnce<(rustc_middle[3dc565fff7e923fe]::ty::context::TyCtxt, ())>>::call_once
  31:     0x7f0581f7c1e9 - rustc_query_system[92564f505af70d07]::query::plumbing::try_execute_query::<rustc_query_impl[14d02d897b4dbe1f]::DynamicConfig<rustc_query_system[92564f505af70d07]::query::caches::SingleCache<rustc_middle[3dc565fff7e923fe]::query::erase::Erased<[u8; 0usize]>>, false, false, false>, rustc_query_impl[14d02d897b4dbe1f]::plumbing::QueryCtxt, false>
  32:     0x7f05824b85f2 - rustc_query_impl[14d02d897b4dbe1f]::query_impl::analysis::get_query_non_incr::__rust_end_short_backtrace
  33:     0x7f057f3c231b - <std[e7d048001937a456]::thread::local::LocalKey<core[a0693f67f127056c]::cell::Cell<*const ()>>>::with::<rustc_middle[3dc565fff7e923fe]::ty::context::tls::enter_context<<rustc_middle[3dc565fff7e923fe]::ty::context::GlobalCtxt>::enter<rustc_interface[2bf740a3c7130f36]::passes::create_and_enter_global_ctxt<core[a0693f67f127056c]::option::Option<rustc_interface[2bf740a3c7130f36]::queries::Linker>, rustc_driver_impl[ad80a649651ec1a7]::run_compiler::{closure#0}::{closure#2}>::{closure#2}::{closure#0}, core[a0693f67f127056c]::option::Option<rustc_interface[2bf740a3c7130f36]::queries::Linker>>::{closure#1}, core[a0693f67f127056c]::option::Option<rustc_interface[2bf740a3c7130f36]::queries::Linker>>::{closure#0}, core[a0693f67f127056c]::option::Option<rustc_interface[2bf740a3c7130f36]::queries::Linker>>
  34:     0x7f057f438972 - <rustc_middle[3dc565fff7e923fe]::ty::context::TyCtxt>::create_global_ctxt::<core[a0693f67f127056c]::option::Option<rustc_interface[2bf740a3c7130f36]::queries::Linker>, rustc_interface[2bf740a3c7130f36]::passes::create_and_enter_global_ctxt<core[a0693f67f127056c]::option::Option<rustc_interface[2bf740a3c7130f36]::queries::Linker>, rustc_driver_impl[ad80a649651ec1a7]::run_compiler::{closure#0}::{closure#2}>::{closure#2}::{closure#0}>
  35:     0x7f057f3bf456 - <rustc_interface[2bf740a3c7130f36]::passes::create_and_enter_global_ctxt<core[a0693f67f127056c]::option::Option<rustc_interface[2bf740a3c7130f36]::queries::Linker>, rustc_driver_impl[ad80a649651ec1a7]::run_compiler::{closure#0}::{closure#2}>::{closure#2} as core[a0693f67f127056c]::ops::function::FnOnce<(&rustc_session[19b393e2e4c2e421]::session::Session, rustc_middle[3dc565fff7e923fe]::ty::context::CurrentGcx, alloc[53524e6519978be9]::sync::Arc<rustc_data_structures[446af8e930281612]::jobserver::Proxy>, &std[e7d048001937a456]::sync::once_lock::OnceLock<rustc_middle[3dc565fff7e923fe]::ty::context::GlobalCtxt>, &rustc_data_structures[446af8e930281612]::sync::worker_local::WorkerLocal<rustc_middle[3dc565fff7e923fe]::arena::Arena>, &rustc_data_structures[446af8e930281612]::sync::worker_local::WorkerLocal<rustc_hir[d18396b0c3461120]::Arena>, rustc_driver_impl[ad80a649651ec1a7]::run_compiler::{closure#0}::{closure#2})>>::call_once::{shim:vtable#0}
  36:     0x7f057f49f5a6 - <alloc[53524e6519978be9]::boxed::Box<dyn for<'a> core[a0693f67f127056c]::ops::function::FnOnce<(&'a rustc_session[19b393e2e4c2e421]::session::Session, rustc_middle[3dc565fff7e923fe]::ty::context::CurrentGcx, alloc[53524e6519978be9]::sync::Arc<rustc_data_structures[446af8e930281612]::jobserver::Proxy>, &'a std[e7d048001937a456]::sync::once_lock::OnceLock<rustc_middle[3dc565fff7e923fe]::ty::context::GlobalCtxt<'a>>, &'a rustc_data_structures[446af8e930281612]::sync::worker_local::WorkerLocal<rustc_middle[3dc565fff7e923fe]::arena::Arena<'a>>, &'a rustc_data_structures[446af8e930281612]::sync::worker_local::WorkerLocal<rustc_hir[d18396b0c3461120]::Arena<'a>>, rustc_driver_impl[ad80a649651ec1a7]::run_compiler::{closure#0}::{closure#2}), Output = core[a0693f67f127056c]::option::Option<rustc_interface[2bf740a3c7130f36]::queries::Linker>>> as core[a0693f67f127056c]::ops::function::FnOnce<(&rustc_session[19b393e2e4c2e421]::session::Session, rustc_middle[3dc565fff7e923fe]::ty::context::CurrentGcx, alloc[53524e6519978be9]::sync::Arc<rustc_data_structures[446af8e930281612]::jobserver::Proxy>, &std[e7d048001937a456]::sync::once_lock::OnceLock<rustc_middle[3dc565fff7e923fe]::ty::context::GlobalCtxt>, &rustc_data_structures[446af8e930281612]::sync::worker_local::WorkerLocal<rustc_middle[3dc565fff7e923fe]::arena::Arena>, &rustc_data_structures[446af8e930281612]::sync::worker_local::WorkerLocal<rustc_hir[d18396b0c3461120]::Arena>, rustc_driver_impl[ad80a649651ec1a7]::run_compiler::{closure#0}::{closure#2})>>::call_once
  37:     0x7f057f39d6a7 - rustc_interface[2bf740a3c7130f36]::passes::create_and_enter_global_ctxt::<core[a0693f67f127056c]::option::Option<rustc_interface[2bf740a3c7130f36]::queries::Linker>, rustc_driver_impl[ad80a649651ec1a7]::run_compiler::{closure#0}::{closure#2}>
  38:     0x7f057f421ca5 - rustc_span[7cb28b38d9c7ea73]::create_session_globals_then::<(), rustc_interface[2bf740a3c7130f36]::util::run_in_thread_with_globals<rustc_interface[2bf740a3c7130f36]::util::run_in_thread_pool_with_globals<rustc_interface[2bf740a3c7130f36]::interface::run_compiler<(), rustc_driver_impl[ad80a649651ec1a7]::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}::{closure#0}>
  39:     0x7f057f419059 - std[e7d048001937a456]::sys::backtrace::__rust_begin_short_backtrace::<rustc_interface[2bf740a3c7130f36]::util::run_in_thread_with_globals<rustc_interface[2bf740a3c7130f36]::util::run_in_thread_pool_with_globals<rustc_interface[2bf740a3c7130f36]::interface::run_compiler<(), rustc_driver_impl[ad80a649651ec1a7]::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>
  40:     0x7f057f41c924 - <<std[e7d048001937a456]::thread::Builder>::spawn_unchecked_<rustc_interface[2bf740a3c7130f36]::util::run_in_thread_with_globals<rustc_interface[2bf740a3c7130f36]::util::run_in_thread_pool_with_globals<rustc_interface[2bf740a3c7130f36]::interface::run_compiler<(), rustc_driver_impl[ad80a649651ec1a7]::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>::{closure#1} as core[a0693f67f127056c]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
  41:     0x7f0583ee2365 - <std[e7d048001937a456]::sys::pal::unix::thread::Thread>::new::thread_start
---
note: please make sure that you have updated to the latest nightly

note: please attach the file at `/cargo/registry/src/index.crates.io-1949cf8c6b5b557f/unicode-ident-1.0.12/rustc-ice-2025-05-04T06_16_16-30172.txt` to your bug report

note: compiler flags: --crate-type lib -C embed-bitcode=no -Z binary-dep-depinfo -Z on-broken-pipe=kill -Z unstable-options

note: some of the compiler flags provided by cargo are hidden

query stack during panic:
#0 [eval_static_initializer] evaluating initializer of static `tables::LEAF`
#1 [analysis] running analysis passes on this crate
end of query stack
[RUSTC-TIMING] unicode_ident test:false 0.192
error: could not compile `unicode-ident` (lib)

Caused by:
  process didn't exit successfully: `/checkout/obj/build/bootstrap/debug/rustc /checkout/obj/build/bootstrap/debug/rustc --crate-name unicode_ident --edition=2018 /cargo/registry/src/index.crates.io-1949cf8c6b5b557f/unicode-ident-1.0.12/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C embed-bitcode=no --check-cfg 'cfg(docsrs,test)' --check-cfg 'cfg(feature, values())' -C metadata=06dbcbb6cdd72a37 -C extra-filename=-1ec43eaf17be9a35 --out-dir /checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/release/deps -L dependency=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/release/deps --cap-lints allow -Z binary-dep-depinfo` (exit status: 101)
warning: build failed, waiting for other jobs to finish...
[RUSTC-TIMING] futures_sink test:false 0.138
[RUSTC-TIMING] futures_core test:false 0.207
[RUSTC-TIMING] itoa test:false 0.251
[RUSTC-TIMING] build_script_build test:false 0.359
---
    Finished `dev` profile [unoptimized] target(s) in 0.05s
##[endgroup]
WARN: currently no CI rustc builds have rustc debug assertions enabled. Please either set `rust.debug-assertions` to `false` if you want to use download CI rustc or set `rust.download-rustc` to `false`.
[TIMING] core::build_steps::tool::LibcxxVersionTool { target: x86_64-unknown-linux-gnu } -- 0.001
ERROR: Tool `book` was not recorded in tool state.
ERROR: Tool `nomicon` was not recorded in tool state.
ERROR: Tool `reference` was not recorded in tool state.
ERROR: Tool `rust-by-example` was not recorded in tool state.
ERROR: Tool `edition-guide` was not recorded in tool state.
ERROR: Tool `embedded-book` was not recorded in tool state.
Build completed unsuccessfully in 0:00:00
  local time: Sun May  4 06:16:18 UTC 2025
  network time: Sun, 04 May 2025 06:16:18 GMT
##[error]Process completed with exit code 1.
Post job cleanup.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
S-blocked Status: Blocked on something else such as an RFC or other implementation work. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. T-libs Relevant to the library team, which will review and decide on the PR/issue.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants