stack backtrace:
0: __rustc::rust_begin_unwind
1: core::panicking::panic_fmt
2: core::panicking::assert_failed_inner
3: core::panicking::assert_failed::<rustc_middle::mir::BasicBlock, rustc_middle::mir::BasicBlock>
4: <rustc_mir_transform::ssa_range_prop::RangeSet as rustc_middle::mir::visit::MutVisitor>::visit_terminator
5: <rustc_mir_transform::ssa_range_prop::SsaRangePropagation as rustc_mir_transform::pass_manager::MirPass>::run_pass
6: rustc_mir_transform::pass_manager::run_passes_inner
7: rustc_mir_transform::run_optimization_passes
8: rustc_mir_transform::optimized_mir
[... omitted 2 frames ...]
9: rustc_mir_transform::cross_crate_inline::cross_crate_inlinable
[... omitted 2 frames ...]
10: rustc_mir_transform::inline::process_blocks::<rustc_mir_transform::inline::NormalInliner>
11: <rustc_mir_transform::inline::Inline as rustc_mir_transform::pass_manager::MirPass>::run_pass
12: rustc_mir_transform::pass_manager::run_passes_inner
13: rustc_mir_transform::run_optimization_passes
14: rustc_mir_transform::optimized_mir
[... omitted 2 frames ...]
15: <rustc_middle::ty::context::TyCtxt>::instance_mir
16: rustc_monomorphize::collector::items_of_instance
[... omitted 2 frames ...]
17: rustc_monomorphize::collector::collect_items_rec
18: rustc_monomorphize::collector::collect_items_root
19: <rustc_data_structures::sync::parallel::ParallelGuard>::run::<(), rustc_data_structures::sync::parallel::par_for_each_in<rustc_middle::mono::MonoItem, alloc::vec::Vec<rustc_middle::mono::MonoItem>, rustc_monomorphize::collector::collect_crate_mono_items::{closure#1}::{closure#0}>::{closure#0}::{closure#1}::{closure#0}>
20: <alloc::vec::into_iter::IntoIter<rustc_middle::mono::MonoItem> as core::iter::traits::iterator::Iterator>::fold::<(), core::iter::traits::iterator::Iterator::for_each::call<rustc_middle::mono::MonoItem, rustc_data_structures::sync::parallel::par_for_each_in<rustc_middle::mono::MonoItem, alloc::vec::Vec<rustc_middle::mono::MonoItem>, rustc_monomorphize::collector::collect_crate_mono_items::{closure#1}::{closure#0}>::{closure#0}::{closure#1}>::{closure#0}>
21: rustc_data_structures::sync::parallel::par_for_each_in::<rustc_middle::mono::MonoItem, alloc::vec::Vec<rustc_middle::mono::MonoItem>, rustc_monomorphize::collector::collect_crate_mono_items::{closure#1}::{closure#0}>
22: <rustc_session::session::Session>::time::<(), rustc_monomorphize::collector::collect_crate_mono_items::{closure#1}>
23: rustc_monomorphize::collector::collect_crate_mono_items
24: rustc_monomorphize::partitioning::collect_and_partition_mono_items
[... omitted 2 frames ...]
25: rustc_codegen_ssa::base::codegen_crate::<rustc_codegen_llvm::LlvmCodegenBackend>
26: <rustc_codegen_llvm::LlvmCodegenBackend as rustc_codegen_ssa::traits::backend::CodegenBackend>::codegen_crate
27: <rustc_session::session::Session>::time::<alloc::boxed::Box<dyn core::any::Any>, rustc_interface::passes::start_codegen::{closure#0}>
28: rustc_interface::passes::start_codegen
29: <rustc_interface::queries::Linker>::codegen_and_build_linker
30: <std::thread::local::LocalKey<core::cell::Cell<*const ()>>>::with::<rustc_middle::ty::context::tls::enter_context<<rustc_middle::ty::context::GlobalCtxt>::enter<rustc_interface::passes::create_and_enter_global_ctxt<core::option::Option<rustc_interface::queries::Linker>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}>::{closure#2}, core::option::Option<rustc_interface::queries::Linker>>::{closure#1}, core::option::Option<rustc_interface::queries::Linker>>::{closure#0}, core::option::Option<rustc_interface::queries::Linker>>
31: <rustc_middle::ty::context::TyCtxt>::create_global_ctxt::<core::option::Option<rustc_interface::queries::Linker>, rustc_interface::passes::create_and_enter_global_ctxt<core::option::Option<rustc_interface::queries::Linker>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}>::{closure#2}>
32: rustc_interface::passes::create_and_enter_global_ctxt::<core::option::Option<rustc_interface::queries::Linker>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}>
33: <scoped_tls::ScopedKey<rustc_span::SessionGlobals>>::set::<rustc_interface::util::run_in_thread_with_globals<rustc_interface::util::run_in_thread_pool_with_globals<rustc_interface::interface::run_compiler<(), rustc_driver_impl::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}::{closure#0}, ()>
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
Code
Meta
Triggers with
-C opt-level=2and aboverustc --version --verbose:Also triggers on stable: https://godbolt.org/z/vroWrhjoz
Error output
Backtrace