Merged
Conversation
af881fe to
440496d
Compare
2baae57 to
ed816c2
Compare
Contributor
Author
|
Commit job passed, let's try a full build now. bors try |
Contributor
Author
|
bors try |
Contributor
tryAlready running a review |
Contributor
Author
|
bors cancel try |
Contributor
tryBuild failed: |
Contributor
Author
|
bors try |
Contributor
tryBuild failed: |
We want Ferrocene's bors instance as the author email for merge commits, but in the squashed repository there is no commit with that email yet, causing CI to fail. This should be reverted as soon as a PR is merged into the squashed repository. This also changes the fetch depth to ensure we pick up a bors@rust-lang.org commit.
Contributor
Author
|
bors try |
Contributor
tryBuild failed: |
jonathanpallant
approved these changes
Oct 3, 2023
Contributor
Author
|
bors merge |
Contributor
|
Build succeeded:
|
github-actions bot
pushed a commit
that referenced
this pull request
Dec 6, 2023
Change prefetch to avoid deadlock Was abled to reproduce the deadlock in #118205 and created a coredump when it happen. When looking at the backtraces I noticed that the prefetch of exported_symbols (Thread 17 frame 4) started after the "actual" exported_symbols (Thread 2 frame 18) but it also is working on some of the collect_crate_mono_items (Thread 17 frame12 ) that Thread 2 is blocked on resulting in a deadlock. This PR results in less parallell work that can be done at the same time but from what I can find we do not call the query exported_symbols from multiple places in the same join call any more. ``` Thread 17 (Thread 0x7f87b6299700 (LWP 11370)): #0 syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38 #1 0x00007f87be5166a9 in <parking_lot::condvar::Condvar>::wait_until_internal () from /home/andjo403/.rustup/toolchains/stage1/lib/librustc_driver-70ddb84e8f7ce707.so #2 0x00007f87be12d854 in <rustc_query_system::query::job::QueryLatch>::wait_on () from /home/andjo403/.rustup/toolchains/stage1/lib/librustc_driver-70ddb84e8f7ce707.so #3 0x00007f87bd27d16f in rustc_query_system::query::plumbing::try_execute_query::<rustc_query_impl::DynamicConfig<rustc_query_system::query::caches::VecCache<rustc_span::def_id::CrateNum, rustc_middle::query::erase::Erased<[u8; 16]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt, false> () from /home/andjo403/.rustup/toolchains/stage1/lib/librustc_driver-70ddb84e8f7ce707.so #4 0x00007f87bd0b5b6a in rustc_query_impl::query_impl::exported_symbols::get_query_non_incr::__rust_end_short_backtrace () from /home/andjo403/.rustup/toolchains/stage1/lib/librustc_driver-70ddb84e8f7ce707.so #5 0x00007f87bdaebb0a in rustc_metadata::rmeta::encoder::encode_metadata::{closure#1}::{closure#1} () from /home/andjo403/.rustup/toolchains/stage1/lib/librustc_driver-70ddb84e8f7ce707.so #6 0x00007f87bdae1509 in rayon_core::join::join_context::call_b::<core::option::Option<rustc_data_structures::marker::FromDyn<&[(rustc_middle::middle::exported_symbols::ExportedSymbol, rustc_middle::middle::exported_symbols::SymbolExportInfo)]>>, rayon_core::join::join::call<core::option::Option<rustc_data_structures::marker::FromDyn<&[(rustc_middle::middle::exported_symbols::ExportedSymbol, rustc_middle::middle::exported_symbols::SymbolExportInfo)]>>, rustc_data_structures::sync::parallel::enabled::join<rustc_metadata::rmeta::encoder::encode_metadata::{closure#1}::{closure#0}, rustc_metadata::rmeta::encoder::encode_metadata::{closure#1}::{closure#1}, (), &[(rustc_middle::middle::exported_symbols::ExportedSymbol, rustc_middle::middle::exported_symbols::SymbolExportInfo)]>::{closure#0}::{closure#1}>::{closure#0}>::{closure#0} () from /home/andjo403/.rustup/toolchains/stage1/lib/librustc_driver-70ddb84e8f7ce707.so #7 0x00007f87bdae32ff in <rayon_core::job::StackJob<rayon_core::latch::SpinLatch, rayon_core::join::join_context::call_b<core::option::Option<rustc_data_structures::marker::FromDyn<&[(rustc_middle::middle::exported_symbols::ExportedSymbol, rustc_middle::middle::exported_symbols::SymbolExportInfo)]>>, rayon_core::join::join::call<core::option::Option<rustc_data_structures::marker::FromDyn<&[(rustc_middle::middle::exported_symbols::ExportedSymbol, rustc_middle::middle::exported_symbols::SymbolExportInfo)]>>, rustc_data_structures::sync::parallel::enabled::join<rustc_metadata::rmeta::encoder::encode_metadata::{closure#1}::{closure#0}, rustc_metadata::rmeta::encoder::encode_metadata::{closure#1}::{closure#1}, (), &[(rustc_middle::middle::exported_symbols::ExportedSymbol, rustc_middle::middle::exported_symbols::SymbolExportInfo)]>::{closure#0}::{closure#1}>::{closure#0}>::{closure#0}, core::option::Option<rustc_data_structures::marker::FromDyn<&[(rustc_middle::middle::exported_symbols::ExportedSymbol, rustc_middle::middle::exported_symbols::SymbolExportInfo)]>>> as rayon_core::job::Job>::execute () from /home/andjo403/.rustup/toolchains/stage1/lib/librustc_driver-70ddb84e8f7ce707.so #8 0x00007f87b8338823 in <rayon_core::registry::WorkerThread>::wait_until_cold () from /home/andjo403/.rustup/toolchains/stage1/lib/librustc_driver-70ddb84e8f7ce707.so #9 0x00007f87bc2edbaf in rayon_core::join::join_context::<rayon::iter::plumbing::bridge_producer_consumer::helper<rayon::vec::DrainProducer<rustc_middle::mir::mono::MonoItem>, rayon::iter::for_each::ForEachConsumer<rustc_data_structures::sync::parallel::enabled::par_for_each_in<rustc_middle::mir::mono::MonoItem, alloc::vec::Vec<rustc_middle::mir::mono::MonoItem>, rustc_monomorphize::collector::collect_crate_mono_items::{closure#1}::{closure#0}>::{closure#0}::{closure#0}>>::{closure#0}, rayon::iter::plumbing::bridge_producer_consumer::helper<rayon::vec::DrainProducer<rustc_middle::mir::mono::MonoItem>, rayon::iter::for_each::ForEachConsumer<rustc_data_structures::sync::parallel::enabled::par_for_each_in<rustc_middle::mir::mono::MonoItem, alloc::vec::Vec<rustc_middle::mir::mono::MonoItem>, rustc_monomorphize::collector::collect_crate_mono_items::{closure#1}::{closure#0}>::{closure#0}::{closure#0}>>::{closure#1}, (), ()>::{closure#0} () from /home/andjo403/.rustup/toolchains/stage1/lib/librustc_driver-70ddb84e8f7ce707.so #10 0x00007f87bc2ed313 in rayon_core::registry::in_worker::<rayon_core::join::join_context<rayon::iter::plumbing::bridge_producer_consumer::helper<rayon::vec::DrainProducer<rustc_middle::mir::mono::MonoItem>, rayon::iter::for_each::ForEachConsumer<rustc_data_structures::sync::parallel::enabled::par_for_each_in<rustc_middle::mir::mono::MonoItem, alloc::vec::Vec<rustc_middle::mir::mono::MonoItem>, rustc_monomorphize::collector::collect_crate_mono_items::{closure#1}::{closure#0}>::{closure#0}::{closure#0}>>::{closure#0}, rayon::iter::plumbing::bridge_producer_consumer::helper<rayon::vec::DrainProducer<rustc_middle::mir::mono::MonoItem>, rayon::iter::for_each::ForEachConsumer<rustc_data_structures::sync::parallel::enabled::par_for_each_in<rustc_middle::mir::mono::MonoItem, alloc::vec::Vec<rustc_middle::mir::mono::MonoItem>, rustc_monomorphize::collector::collect_crate_mono_items::{closure#1}::{closure#0}>::{closure#0}::{closure#0}>>::{closure#1}, (), ()>::{closure#0}, ((), ())> () from /home/andjo403/.rustup/toolchains/stage1/lib/librustc_driver-70ddb84e8f7ce707.so #11 0x00007f87bc2db2a4 in rayon::iter::plumbing::bridge_producer_consumer::helper::<rayon::vec::DrainProducer<rustc_middle::mir::mono::MonoItem>, rayon::iter::for_each::ForEachConsumer<rustc_data_structures::sync::parallel::enabled::par_for_each_in<rustc_middle::mir::mono::MonoItem, alloc::vec::Vec<rustc_middle::mir::mono::MonoItem>, rustc_monomorphize::collector::collect_crate_mono_items::{closure#1}::{closure#0}>::{closure#0}::{closure#0}>> () from /home/andjo403/.rustup/toolchains/stage1/lib/librustc_driver-70ddb84e8f7ce707.so #12 0x00007f87bc2eead2 in <rayon_core::job::StackJob<rayon_core::latch::SpinLatch, rayon_core::join::join_context::call_b<(), rayon::iter::plumbing::bridge_producer_consumer::helper<rayon::vec::DrainProducer<rustc_middle::mir::mono::MonoItem>, rayon::iter::for_each::ForEachConsumer<rustc_data_structures::sync::parallel::enabled::par_for_each_in<rustc_middle::mir::mono::MonoItem, alloc::vec::Vec<rustc_middle::mir::mono::MonoItem>, rustc_monomorphize::collector::collect_crate_mono_items::{closure#1}::{closure#0}>::{closure#0}::{closure#0}>>::{closure#1}>::{closure#0}, ()> as rayon_core::job::Job>::execute () from /home/andjo403/.rustup/toolchains/stage1/lib/librustc_driver-70ddb84e8f7ce707.so #13 0x00007f87b8338823 in <rayon_core::registry::WorkerThread>::wait_until_cold () from /home/andjo403/.rustup/toolchains/stage1/lib/librustc_driver-70ddb84e8f7ce707.so #14 0x00007f87be52d1f9 in <rayon_core::registry::ThreadBuilder>::run () from /home/andjo403/.rustup/toolchains/stage1/lib/librustc_driver-70ddb84e8f7ce707.so #15 0x00007f87b8461c57 in <scoped_tls::ScopedKey<rustc_span::SessionGlobals>>::set::<rustc_interface::util::run_in_thread_pool_with_globals<rustc_interface::interface::run_compiler<core::result::Result<(), rustc_span::ErrorGuaranteed>, rustc_driver_impl::run_compiler::{closure#0}>::{closure#0}, core::result::Result<(), rustc_span::ErrorGuaranteed>>::{closure#3}::{closure#0}::{closure#0}::{closure#0}, ()> () from /home/andjo403/.rustup/toolchains/stage1/lib/librustc_driver-70ddb84e8f7ce707.so #16 0x00007f87b846e465 in rustc_span::set_session_globals_then::<(), rustc_interface::util::run_in_thread_pool_with_globals<rustc_interface::interface::run_compiler<core::result::Result<(), rustc_span::ErrorGuaranteed>, rustc_driver_impl::run_compiler::{closure#0}>::{closure#0}, core::result::Result<(), rustc_span::ErrorGuaranteed>>::{closure#3}::{closure#0}::{closure#0}::{closure#0}> () from /home/andjo403/.rustup/toolchains/stage1/lib/librustc_driver-70ddb84e8f7ce707.so #17 0x00007f87b844f282 in <<crossbeam_utils::thread::ScopedThreadBuilder>::spawn<<rayon_core::ThreadPoolBuilder>::build_scoped<rustc_interface::util::run_in_thread_pool_with_globals<rustc_interface::interface::run_compiler<core::result::Result<(), rustc_span::ErrorGuaranteed>, rustc_driver_impl::run_compiler::{closure#0}>::{closure#0}, core::result::Result<(), rustc_span::ErrorGuaranteed>>::{closure#3}::{closure#0}::{closure#0}, rustc_interface::util::run_in_thread_pool_with_globals<rustc_interface::interface::run_compiler<core::result::Result<(), rustc_span::ErrorGuaranteed>, rustc_driver_impl::run_compiler::{closure#0}>::{closure#0}, core::result::Result<(), rustc_span::ErrorGuaranteed>>::{closure#3}::{closure#0}::{closure#1}, core::result::Result<(), rustc_span::ErrorGuaranteed>>::{closure#0}::{closure#0}::{closure#0}, ()>::{closure#0} as core::ops::function::FnOnce<()>>::call_once::{shim:vtable#0} () from /home/andjo403/.rustup/toolchains/stage1/lib/librustc_driver-70ddb84e8f7ce707.so #18 0x00007f87b846af58 in <<std::thread::Builder>::spawn_unchecked_<alloc::boxed::Box<dyn core::ops::function::FnOnce<(), Output = ()> + core::marker::Send>, ()>::{closure#1} as core::ops::function::FnOnce<()>>::call_once::{shim:vtable#0} () from /home/andjo403/.rustup/toolchains/stage1/lib/librustc_driver-70ddb84e8f7ce707.so #19 0x00007f87b7898e85 in std::sys::unix::thread::Thread::new::thread_start () from /home/andjo403/.rustup/toolchains/stage1/lib/libstd-d570b0650d35d951.so #20 0x00007f87b7615609 in start_thread (arg=<optimized out>) at pthread_create.c:477 #21 0x00007f87b7755133 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95 Thread 2 (Thread 0x7f87b729b700 (LWP 11368)): #0 syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38 #1 0x00007f87b7887b51 in std::sys::unix::locks::futex_condvar::Condvar::wait () from /home/andjo403/.rustup/toolchains/stage1/lib/libstd-d570b0650d35d951.so #2 0x00007f87b8339478 in <rayon_core::sleep::Sleep>::sleep () from /home/andjo403/.rustup/toolchains/stage1/lib/librustc_driver-70ddb84e8f7ce707.so #3 0x00007f87b83387c3 in <rayon_core::registry::WorkerThread>::wait_until_cold () from /home/andjo403/.rustup/toolchains/stage1/lib/librustc_driver-70ddb84e8f7ce707.so #4 0x00007f87bc2edbaf in rayon_core::join::join_context::<rayon::iter::plumbing::bridge_producer_consumer::helper<rayon::vec::DrainProducer<rustc_middle::mir::mono::MonoItem>, rayon::iter::for_each::ForEachConsumer<rustc_data_structures::sync::parallel::enabled::par_for_each_in<rustc_middle::mir::mono::MonoItem, alloc::vec::Vec<rustc_middle::mir::mono::MonoItem>, rustc_monomorphize::collector::collect_crate_mono_items::{closure#1}::{closure#0}>::{closure#0}::{closure#0}>>::{closure#0}, rayon::iter::plumbing::bridge_producer_consumer::helper<rayon::vec::DrainProducer<rustc_middle::mir::mono::MonoItem>, rayon::iter::for_each::ForEachConsumer<rustc_data_structures::sync::parallel::enabled::par_for_each_in<rustc_middle::mir::mono::MonoItem, alloc::vec::Vec<rustc_middle::mir::mono::MonoItem>, rustc_monomorphize::collector::collect_crate_mono_items::{closure#1}::{closure#0}>::{closure#0}::{closure#0}>>::{closure#1}, (), ()>::{closure#0} () from /home/andjo403/.rustup/toolchains/stage1/lib/librustc_driver-70ddb84e8f7ce707.so #5 0x00007f87bc2ed313 in rayon_core::registry::in_worker::<rayon_core::join::join_context<rayon::iter::plumbing::bridge_producer_consumer::helper<rayon::vec::DrainProducer<rustc_middle::mir::mono::MonoItem>, rayon::iter::for_each::ForEachConsumer<rustc_data_structures::sync::parallel::enabled::par_for_each_in<rustc_middle::mir::mono::MonoItem, alloc::vec::Vec<rustc_middle::mir::mono::MonoItem>, rustc_monomorphize::collector::collect_crate_mono_items::{closure#1}::{closure#0}>::{closure#0}::{closure#0}>>::{closure#0}, rayon::iter::plumbing::bridge_producer_consumer::helper<rayon::vec::DrainProducer<rustc_middle::mir::mono::MonoItem>, rayon::iter::for_each::ForEachConsumer<rustc_data_structures::sync::parallel::enabled::par_for_each_in<rustc_middle::mir::mono::MonoItem, alloc::vec::Vec<rustc_middle::mir::mono::MonoItem>, rustc_monomorphize::collector::collect_crate_mono_items::{closure#1}::{closure#0}>::{closure#0}::{closure#0}>>::{closure#1}, (), ()>::{closure#0}, ((), ())> () from /home/andjo403/.rustup/toolchains/stage1/lib/librustc_driver-70ddb84e8f7ce707.so #6 0x00007f87bc2db50c in <rayon::vec::IntoIter<rustc_middle::mir::mono::MonoItem> as rayon::iter::ParallelIterator>::for_each::<rustc_data_structures::sync::parallel::enabled::par_for_each_in<rustc_middle::mir::mono::MonoItem, alloc::vec::Vec<rustc_middle::mir::mono::MonoItem>, rustc_monomorphize::collector::collect_crate_mono_items::{closure#1}::{closure#0}>::{closure#0}::{closure#0}> () from /home/andjo403/.rustup/toolchains/stage1/lib/librustc_driver-70ddb84e8f7ce707.so #7 0x00007f87bc2e8cd7 in <rustc_session::session::Session>::time::<(), rustc_monomorphize::collector::collect_crate_mono_items::{closure#1}> () from /home/andjo403/.rustup/toolchains/stage1/lib/librustc_driver-70ddb84e8f7ce707.so #8 0x00007f87bc2b8f2c in rustc_monomorphize::collector::collect_crate_mono_items () from /home/andjo403/.rustup/toolchains/stage1/lib/librustc_driver-70ddb84e8f7ce707.so #9 0x00007f87bc2c30d9 in rustc_monomorphize::partitioning::collect_and_partition_mono_items () from /home/andjo403/.rustup/toolchains/stage1/lib/librustc_driver-70ddb84e8f7ce707.so #10 0x00007f87bcf2cde6 in rustc_query_impl::plumbing::__rust_begin_short_backtrace::<rustc_query_impl::query_impl::collect_and_partition_mono_items::dynamic_query::{closure#2}::{closure#0}, rustc_middle::query::erase::Erased<[u8; 24]>> () from /home/andjo403/.rustup/toolchains/stage1/lib/librustc_driver-70ddb84e8f7ce707.so #11 0x00007f87bd156a3c in <rustc_query_impl::query_impl::collect_and_partition_mono_items::dynamic_query::{closure#2} as core::ops::function::FnOnce<(rustc_middle::ty::context::TyCtxt, ())>>::call_once () from /home/andjo403/.rustup/toolchains/stage1/lib/librustc_driver-70ddb84e8f7ce707.so #12 0x00007f87bd1c6a7d in rustc_query_system::query::plumbing::try_execute_query::<rustc_query_impl::DynamicConfig<rustc_query_system::query::caches::SingleCache<rustc_middle::query::erase::Erased<[u8; 24]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt, false> () from /home/andjo403/.rustup/toolchains/stage1/lib/librustc_driver-70ddb84e8f7ce707.so #13 0x00007f87bd15df40 in rustc_query_impl::query_impl::collect_and_partition_mono_items::get_query_non_incr::__rust_end_short_backtrace () from /home/andjo403/.rustup/toolchains/stage1/lib/librustc_driver-70ddb84e8f7ce707.so #14 0x00007f87bd7a0ad9 in rustc_codegen_ssa::back::symbol_export::exported_symbols_provider_local () from /home/andjo403/.rustup/toolchains/stage1/lib/librustc_driver-70ddb84e8f7ce707.so #15 0x00007f87bcf29acb in rustc_query_impl::plumbing::__rust_begin_short_backtrace::<rustc_query_impl::query_impl::exported_symbols::dynamic_query::{closure#2}::{closure#0}, rustc_middle::query::erase::Erased<[u8; 16]>> () from /home/andjo403/.rustup/toolchains/stage1/lib/librustc_driver-70ddb84e8f7ce707.so #16 0x00007f87bcfdb350 in <rustc_query_impl::query_impl::exported_symbols::dynamic_query::{closure#2} as core::ops::function::FnOnce<(rustc_middle::ty::context::TyCtxt, rustc_span::def_id::CrateNum)>>::call_once () from /home/andjo403/.rustup/toolchains/stage1/lib/librustc_driver-70ddb84e8f7ce707.so #17 0x00007f87bd27d64f in rustc_query_system::query::plumbing::try_execute_query::<rustc_query_impl::DynamicConfig<rustc_query_system::query::caches::VecCache<rustc_span::def_id::CrateNum, rustc_middle::query::erase::Erased<[u8; 16]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt, false> () from /home/andjo403/.rustup/toolchains/stage1/lib/librustc_driver-70ddb84e8f7ce707.so #18 0x00007f87bd0b5b6a in rustc_query_impl::query_impl::exported_symbols::get_query_non_incr::__rust_end_short_backtrace () from /home/andjo403/.rustup/toolchains/stage1/lib/librustc_driver-70ddb84e8f7ce707.so #19 0x00007f87bda927ce in rustc_middle::query::plumbing::query_get_at::<rustc_query_system::query::caches::VecCache<rustc_span::def_id::CrateNum, rustc_middle::query::erase::Erased<[u8; 16]>>> () from /home/andjo403/.rustup/toolchains/stage1/lib/librustc_driver-70ddb84e8f7ce707.so #20 0x00007f87bda9c93f in <rustc_metadata::rmeta::encoder::EncodeContext>::encode_crate_root () from /home/andjo403/.rustup/toolchains/stage1/lib/librustc_driver-70ddb84e8f7ce707.so #21 0x00007f87bdaa6ef7 in rustc_metadata::rmeta::encoder::encode_metadata_impl () from /home/andjo403/.rustup/toolchains/stage1/lib/librustc_driver-70ddb84e8f7ce707.so #22 0x00007f87bdae0b77 in rayon_core::join::join_context::<rayon_core::join::join::call<core::option::Option<rustc_data_structures::marker::FromDyn<()>>, rustc_data_structures::sync::parallel::enabled::join<rustc_metadata::rmeta::encoder::encode_metadata::{closure#0}, rustc_metadata::rmeta::encoder::encode_metadata::{closure#1}, (), ()>::{closure#0}::{closure#0}>::{closure#0}, rayon_core::join::join::call<core::option::Option<rustc_data_structures::marker::FromDyn<()>>, rustc_data_structures::sync::parallel::enabled::join<rustc_metadata::rmeta::encoder::encode_metadata::{closure#0}, rustc_metadata::rmeta::encoder::encode_metadata::{closure#1}, (), ()>::{closure#0}::{closure#1}>::{closure#0}, core::option::Option<rustc_data_structures::marker::FromDyn<()>>, core::option::Option<rustc_data_structures::marker::FromDyn<()>>>::{closure#0} () from /home/andjo403/.rustup/toolchains/stage1/lib/librustc_driver-70ddb84e8f7ce707.so #23 0x00007f87bdaded2f in rayon_core::registry::in_worker::<rayon_core::join::join_context<rayon_core::join::join::call<core::option::Option<rustc_data_structures::marker::FromDyn<()>>, rustc_data_structures::sync::parallel::enabled::join<rustc_metadata::rmeta::encoder::encode_metadata::{closure#0}, rustc_metadata::rmeta::encoder::encode_metadata::{closure#1}, (), ()>::{closure#0}::{closure#0}>::{closure#0}, rayon_core::join::join::call<core::option::Option<rustc_data_structures::marker::FromDyn<()>>, rustc_data_structures::sync::parallel::enabled::join<rustc_metadata::rmeta::encoder::encode_metadata::{closure#0}, rustc_metadata::rmeta::encoder::encode_metadata::{closure#1}, (), ()>::{closure#0}::{closure#1}>::{closure#0}, core::option::Option<rustc_data_structures::marker::FromDyn<()>>, core::option::Option<rustc_data_structures::marker::FromDyn<()>>>::{closure#0}, (core::option::Option<rustc_data_structures::marker::FromDyn<()>>, core::option::Option<rustc_data_structures::marker::FromDyn<()>>)> () from /home/andjo403/.rustup/toolchains/stage1/lib/librustc_driver-70ddb84e8f7ce707.so #24 0x00007f87bdaa5a03 in rustc_metadata::rmeta::encoder::encode_metadata () from /home/andjo403/.rustup/toolchains/stage1/lib/librustc_driver-70ddb84e8f7ce707.so #25 0x00007f87bdaed628 in rustc_metadata::fs::encode_and_write_metadata () from /home/andjo403/.rustup/toolchains/stage1/lib/librustc_driver-70ddb84e8f7ce707.so #26 0x00007f87b86608be in rustc_interface::passes::start_codegen () from /home/andjo403/.rustup/toolchains/stage1/lib/librustc_driver-70ddb84e8f7ce707.so #27 0x00007f87b8664946 in <rustc_middle::ty::context::GlobalCtxt>::enter::<<rustc_interface::queries::Queries>::codegen_and_build_linker::{closure#0}, core::result::Result<rustc_interface::queries::Linker, rustc_span::ErrorGuaranteed>> () from /home/andjo403/.rustup/toolchains/stage1/lib/librustc_driver-70ddb84e8f7ce707.so #28 0x00007f87b864db00 in <rustc_interface::queries::Queries>::codegen_and_build_linker () from /home/andjo403/.rustup/toolchains/stage1/lib/librustc_driver-70ddb84e8f7ce707.so #29 0x00007f87b849400f in <rustc_interface::interface::Compiler>::enter::<rustc_driver_impl::run_compiler::{closure#0}::{closure#0}, core::result::Result<core::option::Option<rustc_interface::queries::Linker>, rustc_span::ErrorGuaranteed>> () from /home/andjo403/.rustup/toolchains/stage1/lib/librustc_driver-70ddb84e8f7ce707.so #30 0x00007f87b846e067 in rustc_span::set_source_map::<core::result::Result<(), rustc_span::ErrorGuaranteed>, rustc_interface::interface::run_compiler<core::result::Result<(), rustc_span::ErrorGuaranteed>, rustc_driver_impl::run_compiler::{closure#0}>::{closure#0}::{closure#0}> () from /home/andjo403/.rustup/toolchains/stage1/lib/librustc_driver-70ddb84e8f7ce707.so #31 0x00007f87b844dc13 in <rayon_core::thread_pool::ThreadPool>::install::<rustc_interface::interface::run_compiler<core::result::Result<(), rustc_span::ErrorGuaranteed>, rustc_driver_impl::run_compiler::{closure#0}>::{closure#0}, core::result::Result<(), rustc_span::ErrorGuaranteed>>::{closure#0} () from /home/andjo403/.rustup/toolchains/stage1/lib/librustc_driver-70ddb84e8f7ce707.so #32 0x00007f87b84509a1 in <rayon_core::job::StackJob<rayon_core::latch::LatchRef<rayon_core::latch::LockLatch>, <rayon_core::registry::Registry>::in_worker_cold<<rayon_core::thread_pool::ThreadPool>::install<rustc_interface::interface::run_compiler<core::result::Result<(), rustc_span::ErrorGuaranteed>, rustc_driver_impl::run_compiler::{closure#0}>::{closure#0}, core::result::Result<(), rustc_span::ErrorGuaranteed>>::{closure#0}, core::result::Result<(), rustc_span::ErrorGuaranteed>>::{closure#0}::{closure#0}, core::result::Result<(), rustc_span::ErrorGuaranteed>> as rayon_core::job::Job>::execute () from /home/andjo403/.rustup/toolchains/stage1/lib/librustc_driver-70ddb84e8f7ce707.so #33 0x00007f87b8338823 in <rayon_core::registry::WorkerThread>::wait_until_cold () from /home/andjo403/.rustup/toolchains/stage1/lib/librustc_driver-70ddb84e8f7ce707.so #34 0x00007f87be52d1f9 in <rayon_core::registry::ThreadBuilder>::run () from /home/andjo403/.rustup/toolchains/stage1/lib/librustc_driver-70ddb84e8f7ce707.so #35 0x00007f87b8461c57 in <scoped_tls::ScopedKey<rustc_span::SessionGlobals>>::set::<rustc_interface::util::run_in_thread_pool_with_globals<rustc_interface::interface::run_compiler<core::result::Result<(), rustc_span::ErrorGuaranteed>, rustc_driver_impl::run_compiler::{closure#0}>::{closure#0}, core::result::Result<(), rustc_span::ErrorGuaranteed>>::{closure#3}::{closure#0}::{closure#0}::{closure#0}, ()> () from /home/andjo403/.rustup/toolchains/stage1/lib/librustc_driver-70ddb84e8f7ce707.so #36 0x00007f87b846e465 in rustc_span::set_session_globals_then::<(), rustc_interface::util::run_in_thread_pool_with_globals<rustc_interface::interface::run_compiler<core::result::Result<(), rustc_span::ErrorGuaranteed>, rustc_driver_impl::run_compiler::{closure#0}>::{closure#0}, core::result::Result<(), rustc_span::ErrorGuaranteed>>::{closure#3}::{closure#0}::{closure#0}::{closure#0}> () from /home/andjo403/.rustup/toolchains/stage1/lib/librustc_driver-70ddb84e8f7ce707.so #37 0x00007f87b844f282 in <<crossbeam_utils::thread::ScopedThreadBuilder>::spawn<<rayon_core::ThreadPoolBuilder>::build_scoped<rustc_interface::util::run_in_thread_pool_with_globals<rustc_interface::interface::run_compiler<core::result::Result<(), rustc_span::ErrorGuaranteed>, rustc_driver_impl::run_compiler::{closure#0}>::{closure#0}, core::result::Result<(), rustc_span::ErrorGuaranteed>>::{closure#3}::{closure#0}::{closure#0}, rustc_interface::util::run_in_thread_pool_with_globals<rustc_interface::interface::run_compiler<core::result::Result<(), rustc_span::ErrorGuaranteed>, rustc_driver_impl::run_compiler::{closure#0}>::{closure#0}, core::result::Result<(), rustc_span::ErrorGuaranteed>>::{closure#3}::{closure#0}::{closure#1}, core::result::Result<(), rustc_span::ErrorGuaranteed>>::{closure#0}::{closure#0}::{closure#0}, ()>::{closure#0} as core::ops::function::FnOnce<()>>::call_once::{shim:vtable#0} () from /home/andjo403/.rustup/toolchains/stage1/lib/librustc_driver-70ddb84e8f7ce707.so #38 0x00007f87b846af58 in <<std::thread::Builder>::spawn_unchecked_<alloc::boxed::Box<dyn core::ops::function::FnOnce<(), Output = ()> + core::marker::Send>, ()>::{closure#1} as core::ops::function::FnOnce<()>>::call_once::{shim:vtable#0} () from /home/andjo403/.rustup/toolchains/stage1/lib/librustc_driver-70ddb84e8f7ce707.so #39 0x00007f87b7898e85 in std::sys::unix::thread::Thread::new::thread_start () from /home/andjo403/.rustup/toolchains/stage1/lib/libstd-d570b0650d35d951.so #40 0x00007f87b7615609 in start_thread (arg=<optimized out>) at pthread_create.c:477 #41 0x00007f87b7755133 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95 ``` fixes #118205 fixes #117759 from the latest logs it is the same query map as in #118205 fixes #118529 fixes #117784 cc #118206 r? `@SparrowLii`
bors-ferrocene bot
added a commit
that referenced
this pull request
Apr 28, 2024
565: Use a compatible shasum for Mac r=tshepang a=Hoverbear `sha256sum` is not a valid binary on Mac, and appears to have been silently failing. This is causing the llvm cache to not be used and adding ~20 mins to most Mac workflows. ``` $ sha256sum Error: nu::shell::external_command × External command failed ╭─[entry #1:1:1] 1 │ sha256sum · ────┬──── · ╰── executable was not found ╰──── help: No such file or directory (os error 2) Exit status 1 $ shasum -a 256 asdasd^D 61b4c705859f4158d38090c1e38e8fdc4f3d29db007f012766276aa498835cf6 - ```  https://app.circleci.com/pipelines/github/ferrocene/ferrocene/3574/workflows/9f9f9a89-56a2-4074-bb18-ef5b7a29fa9f/jobs/17241 Co-authored-by: Ana Hobden <ana.hobden@ferrous-systems.com>
github-actions bot
pushed a commit
that referenced
this pull request
May 20, 2024
…mulacrum lldb-formatters: Use StdSliceSyntheticProvider for &str &str has associated summary provider which correctly displays string values in debugger, but while working on rust-lang/rust#124458 I've noticed that a &str inside an enum displays a blob of memory until a 0 is reached (as a c-string) which makes a very bizarre experience when debugging However there is already StdSliceSyntheticProvider which we use for other slices. This PR enables the same synthetic provider to be used for &str, however the summary provider is still fixed to return the string value I've added a test `debuginfo/strings-and-strs.rs` which prior to this PR would output the following in LLDB: ``` * thread #1, name = 'a', stop reason = breakpoint 1.1 frame #0: 0x0000555555556383 a`strings_and_strs::main::h1d2b5f9227b8767d at strings-and-strs.rs:47:5 44 let plain_str = "Hello"; 45 let str_in_struct = Foo { inner: "Hello" }; 46 let str_in_tuple = ("Hello", "World"); -> 47 zzz(); // #break 48 } 49 50 fn zzz() { (lldb) frame var (alloc::string::String) plain_string = "Hello" { vec = size=5 { [0] = 'H' [1] = 'e' [2] = 'l' [3] = 'l' [4] = 'o' } } (&str) plain_str = "Hello" { data_ptr = 0x0000555555557263 "HelloWorld\U00000001gdb_load_rust_pretty_printers.py" length = 5 } (strings_and_strs::Foo) str_in_struct = { inner = "Hello" { data_ptr = 0x0000555555557263 "HelloWorld\U00000001gdb_load_rust_pretty_printers.py" length = 5 } } ((&str, &str)) str_in_tuple = { 0 = "Hello" { data_ptr = 0x0000555555557263 "HelloWorld\U00000001gdb_load_rust_pretty_printers.py" length = 5 } 1 = "World" { data_ptr = 0x0000555555557268 "World\U00000001gdb_load_rust_pretty_printers.py" length = 5 } } ``` After this PR it would look the following way: ``` * thread #1, name = 'a', stop reason = breakpoint 1.1 frame #0: 0x0000555555556383 a`strings_and_strs::main::h1d2b5f9227b8767d at strings-and-strs.rs:47:5 44 let plain_str = "Hello"; 45 let str_in_struct = Foo { inner: "Hello" }; 46 let str_in_tuple = ("Hello", "World"); -> 47 zzz(); // #break 48 } 49 50 fn zzz() { (lldb) frame var (alloc::string::String) plain_string = "Hello" { vec = size=5 { [0] = 'H' [1] = 'e' [2] = 'l' [3] = 'l' [4] = 'o' } } (&str) plain_str = "Hello" { [0] = 'H' [1] = 'e' [2] = 'l' [3] = 'l' [4] = 'o' } (strings_and_strs::Foo) str_in_struct = { inner = "Hello" { [0] = 'H' [1] = 'e' [2] = 'l' [3] = 'l' [4] = 'o' } } ((&str, &str)) str_in_tuple = { 0 = "Hello" { [0] = 'H' [1] = 'e' [2] = 'l' [3] = 'l' [4] = 'o' } 1 = "World" { [0] = 'W' [1] = 'o' [2] = 'r' [3] = 'l' [4] = 'd' } } ```
github-actions bot
pushed a commit
that referenced
this pull request
Jun 7, 2024
…tests, r=erikdesjardins,workingjubilee Repair several `riscv64gc-unknown-linux-gnu` codegen tests Together with joshua.zivkovic@codethink.co.uk, we've been starting to explore improving the state of the `riscv64gc-unknown-linux-gnu` target. Additionally, I'm looking to add support for this platform in [Ferrocene](https://github.com/ferrocene/ferrocene) ([Related PR](#618)). While running the test suite, we noted several tests were failing. It appears that several of the riscv64gc-unknown-linux-gnu codegen tests have not been updated in some time and seem to have experienced a small amount of bitrot. After speaking with `@workingjubilee` (as I have little expertise in LLVM codegen) I believe these changes to be correct. ### `tests/codegen/riscv-abi/call-llvm-intrinsics.rs` I believe this change does not alter what the test is testing and is harmless. ### `tests/codegen/riscv-abi/riscv64-lp64d-abi.rs` The changes largely mirrors those from loongarch64: https://github.com/rust-lang/rust/blob/550d1b4fb6de23990f4108815c3b1a9d1659e5c4/tests/codegen/loongarch-abi/loongarch64-lp64d-abi.rs#L13-L15 https://github.com/rust-lang/rust/blob/550d1b4fb6de23990f4108815c3b1a9d1659e5c4/tests/codegen/loongarch-abi/loongarch64-lp64d-abi.rs#L153-L155 https://github.com/rust-lang/rust/blob/550d1b4fb6de23990f4108815c3b1a9d1659e5c4/tests/codegen/loongarch-abi/loongarch64-lp64d-abi.rs#L259-L261 https://github.com/rust-lang/rust/blob/550d1b4fb6de23990f4108815c3b1a9d1659e5c4/tests/codegen/loongarch-abi/loongarch64-lp64d-abi.rs#L263-L267 ### `tests/codegen/riscv-abi/riscv64-lp64f-lp64d-abi.rs` The changes largely mirror that from loongarch64 or llvm: https://github.com/rust-lang/rust/blob/550d1b4fb6de23990f4108815c3b1a9d1659e5c4/tests/codegen/loongarch-abi/loongarch64-lp64d-abi.rs#L13-L26 https://github.com/rust-lang/llvm-project/blob/5399a24c66cb6164cf32280e7d300488c90d5765/clang/test/CodeGen/RISCV/riscv64-abi.c#L612-L617 ### `tests/ui/debuginfo/debuginfo-emit-llvm-ir-and-split-debuginfo.rs` The test is ignored since `-Csplit-debuginfo=unpacked` is not supported on this platform. Context can be found in #120518. ## Reproducing the failures Using a `config.toml` with the following: ```toml # ... target = [ # ... "riscv64gc-unknown-linux-gnu", ] ``` > [!NOTE] > You may need to install a RICV-V toolchain! We get ours from [here](https://www.embecosm.com/resources/tool-chain-downloads/#riscv-linux). > > If you are using an old (20.04) Ubuntu container the compiler in the repositories (`gcc-riscv64-linux-gnu`) won't work! Run the following test suite: ```bash ./x.py test tests/codegen ``` <details> <summary>Expected output</summary> ``` ana@Autonoma:~/git/rust-lang/rust$ ./x.py test tests/codegen Building bootstrap Finished `dev` profile [unoptimized] target(s) in 0.03s WARNING: The `change-id` is missing in the `config.toml`. This means that you will not be able to track the major changes made to the bootstrap configurations. NOTE: to silence this warning, add `change-id = 124501` at the top of `config.toml` Building stage0 library artifacts (x86_64-unknown-linux-gnu) Finished `release` profile [optimized] target(s) in 0.11s Building compiler artifacts (stage0 -> stage1, x86_64-unknown-linux-gnu) Finished `release` profile [optimized] target(s) in 0.18s Creating a sysroot for stage1 compiler (use `rustup toolchain link 'name' build/host/stage1`) Building stage1 library artifacts (x86_64-unknown-linux-gnu) Finished `release` profile [optimized] target(s) in 0.11s Building stage0 tool compiletest (x86_64-unknown-linux-gnu) Finished `release` profile [optimized] target(s) in 0.11s Testing stage1 compiletest suite=codegen mode=codegen (x86_64-unknown-linux-gnu) running 652 tests iii......ii...iiiiiii...........ii..iii....i......i......i......iii...iiiii..i..i...i... 88/652 .............i............iii..iiii.....................i............................... 176/652 iiiiiii.............iiiiiiiii.iii....i.................i....................i...ii....i. 264/652 ..i........i.........i..i........iii.........i............ii................ii..i....... 352/652 ...............i...i....ii.i.....i......................ii.ii...iiiiiiiiiiiiiiiiiiiiiiii 440/652 iii....................iiiiiiiiiiiiiiii.........................iii.i..........i........ 528/652 ...i...ii...........i...ii.i..i..........i..............................ii.....ii.i..ii. 616/652 .ii................................. test result: ok. 498 passed; 0 failed; 154 ignored; 0 measured; 0 filtered out; finished in 4.76s Building stage1 library artifacts (x86_64-unknown-linux-gnu -> riscv64gc-unknown-linux-gnu) Finished `release` profile [optimized] target(s) in 0.10s Testing stage1 compiletest suite=codegen mode=codegen (x86_64-unknown-linux-gnu -> riscv64gc-unknown-linux-gnu) running 652 tests iii......ii..iiiiiii.....i..i..i.i...i........i..i.......i......iii...iiiii..i.i....i... 88/652 .............i............iii..iiii....................i...............................i 176/652 iiiiii..............iiiiiiiii.iii.....i................i..................i.....ii....i. 264/652 ..i........i..........i.i........iii..........i...........ii................ii..i....... 352/652 ...............i...i....ii.i.....i......................i.......iii.iiiiiiiiiiiiiiiiiiii 440/652 iiii...................iiiiiiiiiiiiiiii................ [codegen] tests/codegen/riscv-abi/call-llvm-intrinsics.rs ... F ..... [codegen] tests/codegen/riscv-abi/riscv64-lp64f-lp64d-abi.rs ... F ..iii.i. [codegen] tests/codegen/riscv-abi/riscv64-lp64d-abi.rs ... F ........i........ 528/652 ...i...ii...........i...ii..i.i..........i..............................ii.....ii.i..ii. 616/652 .ii................................. failures: ---- [codegen] tests/codegen/riscv-abi/call-llvm-intrinsics.rs stdout ---- error: verification with 'FileCheck' failed status: exit status: 1 command: "/home/ana/git/rust-lang/rust/build/x86_64-unknown-linux-gnu/llvm/build/bin/FileCheck" "--input-file" "/home/ana/git/rust-lang/rust/build/x86_64-unknown-linux-gnu/test/codegen/riscv-abi/call-llvm-intrinsics/call-llvm-intrinsics.ll" "/home/ana/git/rust-lang/rust/tests/codegen/riscv-abi/call-llvm-intrinsics.rs" "--check-prefix=CHECK" "--check-prefix" "NONMSVC" "--allow-unused-prefixes" "--dump-input-context" "100" stdout: none --- stderr ------------------------------- /home/ana/git/rust-lang/rust/tests/codegen/riscv-abi/call-llvm-intrinsics.rs:26:12: error: CHECK: expected string not found in input // CHECK: store float 4.000000e+00, float* %{{.}}, align 4 ^ /home/ana/git/rust-lang/rust/build/x86_64-unknown-linux-gnu/test/codegen/riscv-abi/call-llvm-intrinsics/call-llvm-intrinsics.ll:1:1: note: scanning from here ; ModuleID = 'call_llvm_intrinsics.b4a95fd5831b1bb7-cgu.0' ^ /home/ana/git/rust-lang/rust/build/x86_64-unknown-linux-gnu/test/codegen/riscv-abi/call-llvm-intrinsics/call-llvm-intrinsics.ll:53:2: note: possible intended match here store float 4.000000e+00, ptr %3, align 4 ^ Input file: /home/ana/git/rust-lang/rust/build/x86_64-unknown-linux-gnu/test/codegen/riscv-abi/call-llvm-intrinsics/call-llvm-intrinsics.ll Check file: /home/ana/git/rust-lang/rust/tests/codegen/riscv-abi/call-llvm-intrinsics.rs -dump-input=help explains the following input dump. Input was: <<<<<< 1: ; ModuleID = 'call_llvm_intrinsics.b4a95fd5831b1bb7-cgu.0' check:26'0 X~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ error: no match found 2: source_filename = "call_llvm_intrinsics.b4a95fd5831b1bb7-cgu.0" check:26'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 3: target datalayout = "e-m:e-p:64:64-i64:64-i128:128-n32:64-S128" check:26'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 4: target triple = "riscv64-unknown-linux-gnu" check:26'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 5: check:26'0 ~ 6: `@alloc_cebd5a1664be1c73eee4a1aab7937c96` = private unnamed_addr constant <{ [2 x i8] }> <{ [2 x i8] c"A\0A" }>, align 1 check:26'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 7: `@alloc_bddb4fe6d67b5a5a93d73a63d68b4b9e` = private unnamed_addr constant <{ ptr, [8 x i8] }> <{ ptr `@alloc_cebd5a1664be1c73eee4a1aab7937c96,` [8 x i8] c"\02\00\00\00\00\00\00\00" }>, align 8 check:26'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 8: `@0` = private unnamed_addr constant <{ [8 x i8], [8 x i8] }> <{ [8 x i8] zeroinitializer, [8 x i8] undef }>, align 8 check:26'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 9: check:26'0 ~ 10: ; core::ptr::drop_in_place<call_llvm_intrinsics::A> check:26'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 11: ; Function Attrs: uwtable check:26'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~ 12: define internal void `@"_ZN4core3ptr44drop_in_place$LT$call_llvm_intrinsics..A$GT$17hf11b50bd9b9c5359E"(ptr` noalias noundef nonnull align 1 %_1) unnamed_addr #0 { check:26'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 13: start: check:26'0 ~~~~~~~ 14: ; call <call_llvm_intrinsics::A as core::ops::drop::Drop>::drop check:26'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 15: call void `@"_ZN65_$LT$call_llvm_intrinsics..A$u20$as$u20$core..ops..drop..Drop$GT$4drop17hc84a7f61b5f719bdE"(ptr` noalias noundef nonnull align 1 %_1) check:26'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 16: ret void check:26'0 ~~~~~~~~~~ 17: } check:26'0 ~~ 18: check:26'0 ~ 19: ; <call_llvm_intrinsics::A as core::ops::drop::Drop>::drop check:26'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 20: ; Function Attrs: uwtable check:26'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~ 21: define void `@"_ZN65_$LT$call_llvm_intrinsics..A$u20$as$u20$core..ops..drop..Drop$GT$4drop17hc84a7f61b5f719bdE"(ptr` noalias noundef nonnull align 1 %self) unnamed_addr #0 { check:26'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 22: start: check:26'0 ~~~~~~~ 23: %_3 = alloca [48 x i8], align 8 check:26'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 24: call void `@llvm.lifetime.start.p0(i64` 48, ptr %_3) check:26'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 25: store ptr `@alloc_bddb4fe6d67b5a5a93d73a63d68b4b9e,` ptr %_3, align 8 check:26'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 26: %0 = getelementptr inbounds i8, ptr %_3, i64 8 check:26'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 27: store i64 1, ptr %0, align 8 check:26'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 28: %1 = load ptr, ptr `@0,` align 8, !align !4, !noundef !5 check:26'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 29: %2 = load i64, ptr getelementptr inbounds (i8, ptr `@0,` i64 8), align 8 check:26'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 30: %3 = getelementptr inbounds i8, ptr %_3, i64 32 check:26'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 31: store ptr %1, ptr %3, align 8 check:26'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 32: %4 = getelementptr inbounds i8, ptr %3, i64 8 check:26'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 33: store i64 %2, ptr %4, align 8 check:26'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 34: %5 = getelementptr inbounds i8, ptr %_3, i64 16 check:26'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 35: store ptr inttoptr (i64 8 to ptr), ptr %5, align 8 check:26'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 36: %6 = getelementptr inbounds i8, ptr %5, i64 8 check:26'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 37: store i64 0, ptr %6, align 8 check:26'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 38: ; call std::io::stdio::_print check:26'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 39: call void `@_ZN3std2io5stdio6_print17h38b16d890daf9d05E(ptr` noalias nocapture noundef align 8 dereferenceable(48) %_3) check:26'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 40: call void `@llvm.lifetime.end.p0(i64` 48, ptr %_3) check:26'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 41: ret void check:26'0 ~~~~~~~~~~ 42: } check:26'0 ~~ 43: check:26'0 ~ 44: ; call_llvm_intrinsics::do_call check:26'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 45: ; Function Attrs: uwtable check:26'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~ 46: define void `@_ZN20call_llvm_intrinsics7do_call17h1d78694c55381316E()` unnamed_addr #0 { check:26'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 47: start: check:26'0 ~~~~~~~ 48: %0 = alloca [4 x i8], align 4 check:26'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 49: %1 = alloca [4 x i8], align 4 check:26'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 50: %2 = alloca [4 x i8], align 4 check:26'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 51: %3 = alloca [4 x i8], align 4 check:26'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 52: %_1 = alloca [0 x i8], align 1 check:26'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 53: store float 4.000000e+00, ptr %3, align 4 check:26'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ check:26'1 ? possible intended match 54: call void `@llvm.lifetime.start.p0(i64` 4, ptr %2) check:26'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 55: call void `@llvm.memcpy.p0.p0.i64(ptr` align 4 %2, ptr align 4 %3, i64 4, i1 false) check:26'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 56: %4 = load float, ptr %2, align 4 check:26'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 57: call void `@llvm.lifetime.end.p0(i64` 4, ptr %2) check:26'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 58: %5 = call float `@llvm.sqrt.f32(float` %4) #4 check:26'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 59: call void `@llvm.lifetime.start.p0(i64` 4, ptr %1) check:26'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 60: call void `@llvm.lifetime.start.p0(i64` 4, ptr %0) check:26'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 61: store float %5, ptr %0, align 4 check:26'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 62: call void `@llvm.memcpy.p0.p0.i64(ptr` align 4 %1, ptr align 4 %0, i64 4, i1 false) check:26'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 63: call void `@llvm.lifetime.end.p0(i64` 4, ptr %0) check:26'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 64: %_2 = load float, ptr %1, align 4, !noundef !5 check:26'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 65: call void `@llvm.lifetime.end.p0(i64` 4, ptr %1) check:26'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 66: ; call core::ptr::drop_in_place<call_llvm_intrinsics::A> check:26'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 67: call void `@"_ZN4core3ptr44drop_in_place$LT$call_llvm_intrinsics..A$GT$17hf11b50bd9b9c5359E"(ptr` noalias noundef nonnull align 1 %_1) check:26'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 68: ret void check:26'0 ~~~~~~~~~~ 69: } check:26'0 ~~ 70: check:26'0 ~ 71: ; std::io::stdio::_print check:26'0 ~~~~~~~~~~~~~~~~~~~~~~~~~ 72: ; Function Attrs: uwtable check:26'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~ 73: declare void `@_ZN3std2io5stdio6_print17h38b16d890daf9d05E(ptr` noalias nocapture noundef align 8 dereferenceable(48)) unnamed_addr #0 check:26'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 74: check:26'0 ~ 75: ; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: readwrite) check:26'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 76: declare void `@llvm.memcpy.p0.p0.i64(ptr` noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #1 check:26'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 77: check:26'0 ~ 78: ; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) check:26'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 79: declare float `@llvm.sqrt.f32(float)` unnamed_addr #2 check:26'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 80: check:26'0 ~ 81: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) check:26'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 82: declare void `@llvm.lifetime.start.p0(i64` immarg, ptr nocapture) #3 check:26'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 83: check:26'0 ~ 84: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) check:26'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 85: declare void `@llvm.lifetime.end.p0(i64` immarg, ptr nocapture) #3 check:26'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 86: check:26'0 ~ 87: attributes #0 = { uwtable "target-cpu"="generic-rv64" "target-features"="+m,+a,+f,+d,+c" } check:26'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 88: attributes #1 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) } check:26'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 89: attributes #2 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } check:26'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 90: attributes #3 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } check:26'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 91: attributes #4 = { nounwind } check:26'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 92: check:26'0 ~ 93: !llvm.module.flags = !{!0, !1, !2} check:26'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 94: !llvm.ident = !{!3} check:26'0 ~~~~~~~~~~~~~~~~~~~~ 95: check:26'0 ~ 96: !0 = !{i32 8, !"PIC Level", i32 2} check:26'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 97: !1 = !{i32 1, !"Code Model", i32 3} check:26'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 98: !2 = !{i32 1, !"target-abi", !"lp64d"} check:26'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 99: !3 = !{!"rustc version 1.80.0-dev"} check:26'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 100: !4 = !{i64 8} check:26'0 ~~~~~~~~~~~~~~ 101: !5 = !{} check:26'0 ~~~~~~~~~ >>>>>> ------------------------------------------ ---- [codegen] tests/codegen/riscv-abi/riscv64-lp64f-lp64d-abi.rs stdout ---- error: verification with 'FileCheck' failed status: exit status: 1 command: "/home/ana/git/rust-lang/rust/build/x86_64-unknown-linux-gnu/llvm/build/bin/FileCheck" "--input-file" "/home/ana/git/rust-lang/rust/build/x86_64-unknown-linux-gnu/test/codegen/riscv-abi/riscv64-lp64f-lp64d-abi/riscv64-lp64f-lp64d-abi.ll" "/home/ana/git/rust-lang/rust/tests/codegen/riscv-abi/riscv64-lp64f-lp64d-abi.rs" "--check-prefix=CHECK" "--check-prefix" "NONMSVC" "--allow-unused-prefixes" "--dump-input-context" "100" stdout: none --- stderr ------------------------------- /home/ana/git/rust-lang/rust/tests/codegen/riscv-abi/riscv64-lp64f-lp64d-abi.rs:7:11: error: CHECK: expected string not found in input // CHECK: define void `@f_fpr_tracking(float` %0, float %1, float %2, float %3, float %4, float %5, float %6, float %7, i8 zeroext %i) ^ /home/ana/git/rust-lang/rust/build/x86_64-unknown-linux-gnu/test/codegen/riscv-abi/riscv64-lp64f-lp64d-abi/riscv64-lp64f-lp64d-abi.ll:1:1: note: scanning from here ; ModuleID = 'riscv64_lp64f_lp64d_abi.ae8fa95bac1a0604-cgu.0' ^ /home/ana/git/rust-lang/rust/build/x86_64-unknown-linux-gnu/test/codegen/riscv-abi/riscv64-lp64f-lp64d-abi/riscv64-lp64f-lp64d-abi.ll:9:1: note: possible intended match here define void `@f_fpr_tracking(float` %0, float %1, float %2, float %3, float %4, float %5, float %6, float %7, i8 noundef zeroext %i) unnamed_addr #0 { ^ Input file: /home/ana/git/rust-lang/rust/build/x86_64-unknown-linux-gnu/test/codegen/riscv-abi/riscv64-lp64f-lp64d-abi/riscv64-lp64f-lp64d-abi.ll Check file: /home/ana/git/rust-lang/rust/tests/codegen/riscv-abi/riscv64-lp64f-lp64d-abi.rs -dump-input=help explains the following input dump. Input was: <<<<<< 1: ; ModuleID = 'riscv64_lp64f_lp64d_abi.ae8fa95bac1a0604-cgu.0' check:7'0 X~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ error: no match found 2: source_filename = "riscv64_lp64f_lp64d_abi.ae8fa95bac1a0604-cgu.0" check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 3: target datalayout = "e-m:e-p:64:64-i64:64-i128:128-n32:64-S128" check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 4: target triple = "riscv64-unknown-linux-gnu" check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 5: check:7'0 ~ 6: %Tricky1 = type { [1 x float] } check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 7: check:7'0 ~ 8: ; Function Attrs: uwtable check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~ 9: define void `@f_fpr_tracking(float` %0, float %1, float %2, float %3, float %4, float %5, float %6, float %7, i8 noundef zeroext %i) unnamed_addr #0 { check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ check:7'1 ? possible intended match 10: start: check:7'0 ~~~~~~~ 11: %8 = alloca [4 x i8], align 4 check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 12: %h = alloca [4 x i8], align 4 check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 13: %9 = alloca [4 x i8], align 4 check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 14: %g = alloca [4 x i8], align 4 check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 15: %10 = alloca [4 x i8], align 4 check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 16: %f = alloca [4 x i8], align 4 check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 17: %11 = alloca [4 x i8], align 4 check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 18: %e = alloca [4 x i8], align 4 check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 19: %12 = alloca [4 x i8], align 4 check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 20: %d = alloca [4 x i8], align 4 check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 21: %13 = alloca [4 x i8], align 4 check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 22: %c = alloca [4 x i8], align 4 check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 23: %14 = alloca [4 x i8], align 4 check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 24: %b = alloca [4 x i8], align 4 check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 25: %15 = alloca [4 x i8], align 4 check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 26: %a = alloca [4 x i8], align 4 check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 27: call void `@llvm.lifetime.start.p0(i64` 4, ptr %15) check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 28: store float %0, ptr %15, align 4 check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 29: call void `@llvm.memcpy.p0.p0.i64(ptr` align 4 %a, ptr align 4 %15, i64 4, i1 false) check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 30: call void `@llvm.lifetime.end.p0(i64` 4, ptr %15) check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 31: call void `@llvm.lifetime.start.p0(i64` 4, ptr %14) check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 32: store float %1, ptr %14, align 4 check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 33: call void `@llvm.memcpy.p0.p0.i64(ptr` align 4 %b, ptr align 4 %14, i64 4, i1 false) check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 34: call void `@llvm.lifetime.end.p0(i64` 4, ptr %14) check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 35: call void `@llvm.lifetime.start.p0(i64` 4, ptr %13) check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 36: store float %2, ptr %13, align 4 check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 37: call void `@llvm.memcpy.p0.p0.i64(ptr` align 4 %c, ptr align 4 %13, i64 4, i1 false) check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 38: call void `@llvm.lifetime.end.p0(i64` 4, ptr %13) check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 39: call void `@llvm.lifetime.start.p0(i64` 4, ptr %12) check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 40: store float %3, ptr %12, align 4 check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 41: call void `@llvm.memcpy.p0.p0.i64(ptr` align 4 %d, ptr align 4 %12, i64 4, i1 false) check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 42: call void `@llvm.lifetime.end.p0(i64` 4, ptr %12) check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 43: call void `@llvm.lifetime.start.p0(i64` 4, ptr %11) check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 44: store float %4, ptr %11, align 4 check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 45: call void `@llvm.memcpy.p0.p0.i64(ptr` align 4 %e, ptr align 4 %11, i64 4, i1 false) check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 46: call void `@llvm.lifetime.end.p0(i64` 4, ptr %11) check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 47: call void `@llvm.lifetime.start.p0(i64` 4, ptr %10) check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 48: store float %5, ptr %10, align 4 check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 49: call void `@llvm.memcpy.p0.p0.i64(ptr` align 4 %f, ptr align 4 %10, i64 4, i1 false) check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 50: call void `@llvm.lifetime.end.p0(i64` 4, ptr %10) check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 51: call void `@llvm.lifetime.start.p0(i64` 4, ptr %9) check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 52: store float %6, ptr %9, align 4 check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 53: call void `@llvm.memcpy.p0.p0.i64(ptr` align 4 %g, ptr align 4 %9, i64 4, i1 false) check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 54: call void `@llvm.lifetime.end.p0(i64` 4, ptr %9) check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 55: call void `@llvm.lifetime.start.p0(i64` 4, ptr %8) check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 56: store float %7, ptr %8, align 4 check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 57: call void `@llvm.memcpy.p0.p0.i64(ptr` align 4 %h, ptr align 4 %8, i64 4, i1 false) check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 58: call void `@llvm.lifetime.end.p0(i64` 4, ptr %8) check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 59: ret void check:7'0 ~~~~~~~~~~ 60: } check:7'0 ~~ 61: check:7'0 ~ 62: ; Function Attrs: uwtable check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~ 63: define void `@f_float_s_arg(float` %0) unnamed_addr #0 { check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 64: start: check:7'0 ~~~~~~~ 65: %1 = alloca [4 x i8], align 4 check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 66: %a = alloca [4 x i8], align 4 check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 67: call void `@llvm.lifetime.start.p0(i64` 4, ptr %1) check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 68: store float %0, ptr %1, align 4 check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 69: call void `@llvm.memcpy.p0.p0.i64(ptr` align 4 %a, ptr align 4 %1, i64 4, i1 false) check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 70: call void `@llvm.lifetime.end.p0(i64` 4, ptr %1) check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 71: ret void check:7'0 ~~~~~~~~~~ 72: } check:7'0 ~~ 73: check:7'0 ~ 74: ; Function Attrs: uwtable check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~ 75: define float `@f_ret_float_s()` unnamed_addr #0 { check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 76: start: check:7'0 ~~~~~~~ 77: %_0 = alloca [4 x i8], align 4 check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 78: store float 1.000000e+00, ptr %_0, align 4 check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 79: %0 = load float, ptr %_0, align 4 check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 80: ret float %0 check:7'0 ~~~~~~~~~~~~~~ 81: } check:7'0 ~~ 82: check:7'0 ~ 83: ; Function Attrs: uwtable check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~ 84: define void `@f_float_float_s_arg({` float, float } %0) unnamed_addr #0 { check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 85: start: check:7'0 ~~~~~~~ 86: %1 = alloca [8 x i8], align 4 check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 87: %a = alloca [8 x i8], align 4 check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 88: call void `@llvm.lifetime.start.p0(i64` 8, ptr %1) check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 89: store { float, float } %0, ptr %1, align 4 check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 90: call void `@llvm.memcpy.p0.p0.i64(ptr` align 4 %a, ptr align 4 %1, i64 8, i1 false) check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 91: call void `@llvm.lifetime.end.p0(i64` 8, ptr %1) check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 92: ret void check:7'0 ~~~~~~~~~~ 93: } check:7'0 ~~ 94: check:7'0 ~ 95: ; Function Attrs: uwtable check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~ 96: define { float, float } `@f_ret_float_float_s()` unnamed_addr #0 { check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 97: start: check:7'0 ~~~~~~~ 98: %0 = alloca [8 x i8], align 4 check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 99: store float 1.000000e+00, ptr %0, align 4 check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 100: %1 = getelementptr inbounds i8, ptr %0, i64 4 check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 101: store float 2.000000e+00, ptr %1, align 4 check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 102: %2 = load { float, float }, ptr %0, align 4 check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 103: ret { float, float } %2 check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~ 104: } check:7'0 ~~ 105: check:7'0 ~ 106: ; Function Attrs: uwtable check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~ 107: define void `@f_float_float_s_arg_insufficient_fprs(float` %0, float %1, float %2, float %3, float %4, float %5, float %6, i64 %7) unnamed_addr #0 { check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 108: start: check:7'0 ~~~~~~~ 109: %8 = alloca [8 x i8], align 8 check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ . . . >>>>>> ------------------------------------------ ---- [codegen] tests/codegen/riscv-abi/riscv64-lp64d-abi.rs stdout ---- error: verification with 'FileCheck' failed status: exit status: 1 command: "/home/ana/git/rust-lang/rust/build/x86_64-unknown-linux-gnu/llvm/build/bin/FileCheck" "--input-file" "/home/ana/git/rust-lang/rust/build/x86_64-unknown-linux-gnu/test/codegen/riscv-abi/riscv64-lp64d-abi/riscv64-lp64d-abi.ll" "/home/ana/git/rust-lang/rust/tests/codegen/riscv-abi/riscv64-lp64d-abi.rs" "--check-prefix=CHECK" "--check-prefix" "NONMSVC" "--allow-unused-prefixes" "--dump-input-context" "100" stdout: none --- stderr ------------------------------- /home/ana/git/rust-lang/rust/tests/codegen/riscv-abi/riscv64-lp64d-abi.rs:7:11: error: CHECK: expected string not found in input // CHECK: define void `@f_fpr_tracking(double` %0, double %1, double %2, double %3, double %4, double %5, double %6, double %7, i8 zeroext %i) ^ /home/ana/git/rust-lang/rust/build/x86_64-unknown-linux-gnu/test/codegen/riscv-abi/riscv64-lp64d-abi/riscv64-lp64d-abi.ll:1:1: note: scanning from here ; ModuleID = 'riscv64_lp64d_abi.bed282cd9c73cc17-cgu.0' ^ /home/ana/git/rust-lang/rust/build/x86_64-unknown-linux-gnu/test/codegen/riscv-abi/riscv64-lp64d-abi/riscv64-lp64d-abi.ll:9:1: note: possible intended match here define void `@f_fpr_tracking(double` %0, double %1, double %2, double %3, double %4, double %5, double %6, double %7, i8 noundef zeroext %i) unnamed_addr #0 { ^ Input file: /home/ana/git/rust-lang/rust/build/x86_64-unknown-linux-gnu/test/codegen/riscv-abi/riscv64-lp64d-abi/riscv64-lp64d-abi.ll Check file: /home/ana/git/rust-lang/rust/tests/codegen/riscv-abi/riscv64-lp64d-abi.rs -dump-input=help explains the following input dump. Input was: <<<<<< 1: ; ModuleID = 'riscv64_lp64d_abi.bed282cd9c73cc17-cgu.0' check:7'0 X~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ error: no match found 2: source_filename = "riscv64_lp64d_abi.bed282cd9c73cc17-cgu.0" check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 3: target datalayout = "e-m:e-p:64:64-i64:64-i128:128-n32:64-S128" check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 4: target triple = "riscv64-unknown-linux-gnu" check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 5: check:7'0 ~ 6: %Tricky1 = type { [1 x double] } check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 7: check:7'0 ~ 8: ; Function Attrs: uwtable check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~ 9: define void `@f_fpr_tracking(double` %0, double %1, double %2, double %3, double %4, double %5, double %6, double %7, i8 noundef zeroext %i) unnamed_addr #0 { check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ check:7'1 ? possible intended match 10: start: check:7'0 ~~~~~~~ 11: %8 = alloca [8 x i8], align 8 check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 12: %h = alloca [8 x i8], align 8 check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 13: %9 = alloca [8 x i8], align 8 check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 14: %g = alloca [8 x i8], align 8 check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 15: %10 = alloca [8 x i8], align 8 check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 16: %f = alloca [8 x i8], align 8 check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 17: %11 = alloca [8 x i8], align 8 check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 18: %e = alloca [8 x i8], align 8 check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 19: %12 = alloca [8 x i8], align 8 check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 20: %d = alloca [8 x i8], align 8 check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 21: %13 = alloca [8 x i8], align 8 check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 22: %c = alloca [8 x i8], align 8 check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 23: %14 = alloca [8 x i8], align 8 check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 24: %b = alloca [8 x i8], align 8 check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 25: %15 = alloca [8 x i8], align 8 check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 26: %a = alloca [8 x i8], align 8 check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 27: call void `@llvm.lifetime.start.p0(i64` 8, ptr %15) check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 28: store double %0, ptr %15, align 8 check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 29: call void `@llvm.memcpy.p0.p0.i64(ptr` align 8 %a, ptr align 8 %15, i64 8, i1 false) check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 30: call void `@llvm.lifetime.end.p0(i64` 8, ptr %15) check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 31: call void `@llvm.lifetime.start.p0(i64` 8, ptr %14) check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 32: store double %1, ptr %14, align 8 check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 33: call void `@llvm.memcpy.p0.p0.i64(ptr` align 8 %b, ptr align 8 %14, i64 8, i1 false) check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 34: call void `@llvm.lifetime.end.p0(i64` 8, ptr %14) check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 35: call void `@llvm.lifetime.start.p0(i64` 8, ptr %13) check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 36: store double %2, ptr %13, align 8 check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 37: call void `@llvm.memcpy.p0.p0.i64(ptr` align 8 %c, ptr align 8 %13, i64 8, i1 false) check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 38: call void `@llvm.lifetime.end.p0(i64` 8, ptr %13) check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 39: call void `@llvm.lifetime.start.p0(i64` 8, ptr %12) check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 40: store double %3, ptr %12, align 8 check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 41: call void `@llvm.memcpy.p0.p0.i64(ptr` align 8 %d, ptr align 8 %12, i64 8, i1 false) check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 42: call void `@llvm.lifetime.end.p0(i64` 8, ptr %12) check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 43: call void `@llvm.lifetime.start.p0(i64` 8, ptr %11) check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 44: store double %4, ptr %11, align 8 check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 45: call void `@llvm.memcpy.p0.p0.i64(ptr` align 8 %e, ptr align 8 %11, i64 8, i1 false) check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 46: call void `@llvm.lifetime.end.p0(i64` 8, ptr %11) check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 47: call void `@llvm.lifetime.start.p0(i64` 8, ptr %10) check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 48: store double %5, ptr %10, align 8 check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 49: call void `@llvm.memcpy.p0.p0.i64(ptr` align 8 %f, ptr align 8 %10, i64 8, i1 false) check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 50: call void `@llvm.lifetime.end.p0(i64` 8, ptr %10) check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 51: call void `@llvm.lifetime.start.p0(i64` 8, ptr %9) check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 52: store double %6, ptr %9, align 8 check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 53: call void `@llvm.memcpy.p0.p0.i64(ptr` align 8 %g, ptr align 8 %9, i64 8, i1 false) check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 54: call void `@llvm.lifetime.end.p0(i64` 8, ptr %9) check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 55: call void `@llvm.lifetime.start.p0(i64` 8, ptr %8) check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 56: store double %7, ptr %8, align 8 check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 57: call void `@llvm.memcpy.p0.p0.i64(ptr` align 8 %h, ptr align 8 %8, i64 8, i1 false) check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 58: call void `@llvm.lifetime.end.p0(i64` 8, ptr %8) check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 59: ret void check:7'0 ~~~~~~~~~~ 60: } check:7'0 ~~ 61: check:7'0 ~ 62: ; Function Attrs: uwtable check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~ 63: define void `@f_double_s_arg(double` %0) unnamed_addr #0 { check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 64: start: check:7'0 ~~~~~~~ 65: %1 = alloca [8 x i8], align 8 check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 66: %a = alloca [8 x i8], align 8 check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 67: call void `@llvm.lifetime.start.p0(i64` 8, ptr %1) check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 68: store double %0, ptr %1, align 8 check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 69: call void `@llvm.memcpy.p0.p0.i64(ptr` align 8 %a, ptr align 8 %1, i64 8, i1 false) check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 70: call void `@llvm.lifetime.end.p0(i64` 8, ptr %1) check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 71: ret void check:7'0 ~~~~~~~~~~ 72: } check:7'0 ~~ 73: check:7'0 ~ 74: ; Function Attrs: uwtable check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~ 75: define double `@f_ret_double_s()` unnamed_addr #0 { check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 76: start: check:7'0 ~~~~~~~ 77: %_0 = alloca [8 x i8], align 8 check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 78: store double 1.000000e+00, ptr %_0, align 8 check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 79: %0 = load double, ptr %_0, align 8 check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 80: ret double %0 check:7'0 ~~~~~~~~~~~~~~~ 81: } check:7'0 ~~ 82: check:7'0 ~ 83: ; Function Attrs: uwtable check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~ 84: define void `@f_double_double_s_arg({` double, double } %0) unnamed_addr #0 { check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 85: start: check:7'0 ~~~~~~~ 86: %1 = alloca [16 x i8], align 8 check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 87: %a = alloca [16 x i8], align 8 check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 88: call void `@llvm.lifetime.start.p0(i64` 16, ptr %1) check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 89: store { double, double } %0, ptr %1, align 8 check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 90: call void `@llvm.memcpy.p0.p0.i64(ptr` align 8 %a, ptr align 8 %1, i64 16, i1 false) check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 91: call void `@llvm.lifetime.end.p0(i64` 16, ptr %1) check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 92: ret void check:7'0 ~~~~~~~~~~ 93: } check:7'0 ~~ 94: check:7'0 ~ 95: ; Function Attrs: uwtable check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~ 96: define { double, double } `@f_ret_double_double_s()` unnamed_addr #0 { check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 97: start: check:7'0 ~~~~~~~ 98: %0 = alloca [16 x i8], align 8 check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 99: store double 1.000000e+00, ptr %0, align 8 check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 100: %1 = getelementptr inbounds i8, ptr %0, i64 8 check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 101: store double 2.000000e+00, ptr %1, align 8 check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 102: %2 = load { double, double }, ptr %0, align 8 check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 103: ret { double, double } %2 check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 104: } check:7'0 ~~ 105: check:7'0 ~ 106: ; Function Attrs: uwtable check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~ 107: define void `@f_double_float_s_arg({` double, float } %0) unnamed_addr #0 { check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 108: start: check:7'0 ~~~~~~~ 109: %1 = alloca [12 x i8], align 8 check:7'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ . . . >>>>>> ------------------------------------------ failures: [codegen] tests/codegen/riscv-abi/call-llvm-intrinsics.rs [codegen] tests/codegen/riscv-abi/riscv64-lp64f-lp64d-abi.rs [codegen] tests/codegen/riscv-abi/riscv64-lp64d-abi.rs test result: FAILED. 498 passed; 3 failed; 151 ignored; 0 measured; 0 filtered out; finished in 4.70s Some tests failed in compiletest suite=codegen mode=codegen host=x86_64-unknown-linux-gnu target=riscv64gc-unknown-linux-gnu Build completed unsuccessfully in 0:00:15 ``` </details>
github-actions bot
pushed a commit
that referenced
this pull request
Jul 25, 2024
remove debug info from emitting
github-actions bot
pushed a commit
that referenced
this pull request
Aug 7, 2024
…i-obk
Tell users not to file a bug when using internal library features
Actually fixes #97501. I don't think we should suppress the suggestion to add `#![feature(..)]`, though I guess I could be convinced otherwise.
r? `@Nilstrieb` cc `@RalfJung`
Didn't add a test b/c I don't think we test this for lang features either, but I can confirm it does work.
```
warning: the feature `core_intrinsics` is internal to the compiler or standard library
--> /home/michael/test.rs:1:12
|
1 | #![feature(core_intrinsics)]
| ^^^^^^^^^^^^^^^
|
= note: using it is strongly discouraged
= note: `#[warn(internal_features)]` on by default
thread 'rustc' panicked at compiler/rustc_mir_transform/src/validate.rs:94:25:
broken MIR in Item(DefId(0:6 ~ test[42db]::{impl#0}::add)) (after phase change to runtime-optimized) at bb0[0]:
Cannot perform arithmetic Add on type WrapInt8
stack backtrace:
0: begin_panic_handler
at ./library/std/src/panicking.rs:665:5
1: panic_fmt
at ./library/core/src/panicking.rs:74:14
2: fail<alloc::string::String>
at ./compiler/rustc_mir_transform/src/validate.rs:146:9
3: run_pass
at ./compiler/rustc_mir_transform/src/validate.rs:94:13
4: validate_body
at ./compiler/rustc_mir_transform/src/pass_manager.rs:193:5
5: run_passes_inner
at ./compiler/rustc_mir_transform/src/pass_manager.rs:176:13
6: rustc_mir_transform::pass_manager::run_passes
at ./compiler/rustc_mir_transform/src/pass_manager.rs:87:5
7: run_optimization_passes
at ./compiler/rustc_mir_transform/src/lib.rs:561:5
8: inner_optimized_mir
at ./compiler/rustc_mir_transform/src/lib.rs:667:5
9: optimized_mir
at ./compiler/rustc_mir_transform/src/lib.rs:630:21
10: {closure#0}
at ./compiler/rustc_query_impl/src/plumbing.rs:285:13
[... omitted 22 frames ...]
11: query_get_at<rustc_query_system::query::caches::DefIdCache<rustc_middle::query::erase::Erased<[u8; 8]>>>
at ./compiler/rustc_middle/src/query/plumbing.rs:145:17
12: instance_mir
13: collect_items_of_instance
at ./compiler/rustc_monomorphize/src/collector.rs:1203:16
14: {closure#0}
at ./compiler/rustc_monomorphize/src/collector.rs:447:17
15: maybe_grow<(), rustc_monomorphize::collector::collect_items_rec::{closure_env#0}>
at /home/michael/.cargo/registry/src/index.crates.io-6f17d22bba15001f/stacker-0.1.15/src/lib.rs:55:9
16: ensure_sufficient_stack<(), rustc_monomorphize::collector::collect_items_rec::{closure_env#0}>
at ./compiler/rustc_data_structures/src/stack.rs:17:5
17: collect_items_rec
at ./compiler/rustc_monomorphize/src/collector.rs:446:13
18: collect_items_rec
at ./compiler/rustc_monomorphize/src/collector.rs:526:13
19: {closure#0}
at ./compiler/rustc_monomorphize/src/collector.rs:1597:17
20: {closure#0}<rustc_middle::mir::mono::MonoItem, alloc::vec::Vec<rustc_middle::mir::mono::MonoItem, alloc::alloc::Global>, rustc_monomorphize::collector::collect_crate_mono_items::{closure#1}::{closure_env#0}>
at ./compiler/rustc_data_structures/src/sync/parallel.rs:182:34
21: call_once<(), rustc_data_structures::sync::parallel::enabled::par_for_each_in::{closure#0}::{closure#0}::{closure_env#0}<rustc_middle::mir::mono::MonoItem, alloc::vec::Vec<rustc_middle::mir::mono::MonoItem, alloc::alloc::Global>, rustc_monomorphize::collector::collect_crate_mono_items::{closure#1}::{closure_env#0}>>
at ./library/core/src/panic/unwind_safe.rs:272:9
22: do_call<core::panic::unwind_safe::AssertUnwindSafe<rustc_data_structures::sync::parallel::enabled::par_for_each_in::{closure#0}::{closure#0}::{closure_env#0}<rustc_middle::mir::mono::MonoItem, alloc::vec::Vec<rustc_middle::mir::mono::MonoItem, alloc::alloc::Global>, rustc_monomorphize::collector::collect_crate_mono_items::{closure#1}::{closure_env#0}>>, ()>
at ./library/std/src/panicking.rs:557:40
23: try<(), core::panic::unwind_safe::AssertUnwindSafe<rustc_data_structures::sync::parallel::enabled::par_for_each_in::{closure#0}::{closure#0}::{closure_env#0}<rustc_middle::mir::mono::MonoItem, alloc::vec::Vec<rustc_middle::mir::mono::MonoItem, alloc::alloc::Global>, rustc_monomorphize::collector::collect_crate_mono_items::{closure#1}::{closure_env#0}>>>
at ./library/std/src/panicking.rs:521:19
24: run<(), rustc_data_structures::sync::parallel::enabled::par_for_each_in::{closure#0}::{closure#1}::{closure_env#0}<rustc_middle::mir::mono::MonoItem, alloc::vec::Vec<rustc_middle::mir::mono::MonoItem, alloc::alloc::Global>, rustc_monomorphize::collector::collect_crate_mono_items::{closure#1}::{closure_env#0}>>
at ./compiler/rustc_data_structures/src/sync/parallel.rs:28:9
25: {closure#1}<rustc_middle::mir::mono::MonoItem, alloc::vec::Vec<rustc_middle::mir::mono::MonoItem, alloc::alloc::Global>, rustc_monomorphize::collector::collect_crate_mono_items::{closure#1}::{closure_env#0}>
at ./compiler/rustc_data_structures/src/sync/parallel.rs:186:21
26: {closure#0}<rustc_middle::mir::mono::MonoItem, rustc_data_structures::sync::parallel::enabled::par_for_each_in::{closure#0}::{closure_env#1}<rustc_middle::mir::mono::MonoItem, alloc::vec::Vec<rustc_middle::mir::mono::MonoItem, alloc::alloc::Global>, rustc_monomorphize::collector::collect_crate_mono_items::{closure#1}::{closure_env#0}>>
at ./library/core/src/iter/traits/iterator.rs:815:29
27: fold<rustc_middle::mir::mono::MonoItem, alloc::alloc::Global, (), core::iter::traits::iterator::Iterator::for_each::call::{closure_env#0}<rustc_middle::mir::mono::MonoItem, rustc_data_structures::sync::parallel::enabled::par_for_each_in::{closure#0}::{closure_env#1}<rustc_middle::mir::mono::MonoItem, alloc::vec::Vec<rustc_middle::mir::mono::MonoItem, alloc::alloc::Global>, rustc_monomorphize::collector::collect_crate_mono_items::{closure#1}::{closure_env#0}>>>
at ./library/alloc/src/vec/into_iter.rs:317:25
28: for_each<alloc::vec::into_iter::IntoIter<rustc_middle::mir::mono::MonoItem, alloc::alloc::Global>, rustc_data_structures::sync::parallel::enabled::par_for_each_in::{closure#0}::{closure_env#1}<rustc_middle::mir::mono::MonoItem, alloc::vec::Vec<rustc_middle::mir::mono::MonoItem, alloc::alloc::Global>, rustc_monomorphize::collector::collect_crate_mono_items::{closure#1}::{closure_env#0}>>
at ./library/core/src/iter/traits/iterator.rs:818:9
29: {closure#0}<rustc_middle::mir::mono::MonoItem, alloc::vec::Vec<rustc_middle::mir::mono::MonoItem, alloc::alloc::Global>, rustc_monomorphize::collector::collect_crate_mono_items::{closure#1}::{closure_env#0}>
at ./compiler/rustc_data_structures/src/sync/parallel.rs:185:17
30: parallel_guard<(), rustc_data_structures::sync::parallel::enabled::par_for_each_in::{closure_env#0}<rustc_middle::mir::mono::MonoItem, alloc::vec::Vec<rustc_middle::mir::mono::MonoItem, alloc::alloc::Global>, rustc_monomorphize::collector::collect_crate_mono_items::{closure#1}::{closure_env#0}>>
at ./compiler/rustc_data_structures/src/sync/parallel.rs:44:15
31: par_for_each_in<rustc_middle::mir::mono::MonoItem, alloc::vec::Vec<rustc_middle::mir::mono::MonoItem, alloc::alloc::Global>, rustc_monomorphize::collector::collect_crate_mono_items::{closure#1}::{closure_env#0}>
at ./compiler/rustc_data_structures/src/sync/parallel.rs:178:9
32: {closure#1}
at ./compiler/rustc_monomorphize/src/collector.rs:1595:13
33: run<(), rustc_monomorphize::collector::collect_crate_mono_items::{closure_env#1}>
at ./compiler/rustc_data_structures/src/profiling.rs:754:9
34: time<(), rustc_monomorphize::collector::collect_crate_mono_items::{closure_env#1}>
at ./compiler/rustc_session/src/utils.rs:16:9
35: collect_crate_mono_items
at ./compiler/rustc_monomorphize/src/collector.rs:1594:9
36: collect_and_partition_mono_items
at ./compiler/rustc_monomorphize/src/partitioning.rs:1124:30
37: {closure#0}
at ./compiler/rustc_query_impl/src/plumbing.rs:281:9
[... omitted 22 frames ...]
38: query_get_at<rustc_query_system::query::caches::SingleCache<rustc_middle::query::erase::Erased<[u8; 24]>>>
at ./compiler/rustc_middle/src/query/plumbing.rs:145:17
39: collect_and_partition_mono_items
at ./compiler/rustc_middle/src/query/plumbing.rs:423:31
40: collect_and_partition_mono_items
at ./compiler/rustc_middle/src/query/plumbing.rs:414:17
41: codegen_crate<rustc_codegen_llvm::LlvmCodegenBackend>
at ./compiler/rustc_codegen_ssa/src/base.rs:596:25
42: codegen_crate
at ./compiler/rustc_codegen_llvm/src/lib.rs:361:18
43: {closure#0}
at ./compiler/rustc_interface/src/passes.rs:1027:9
44: run<alloc::boxed::Box<dyn core::any::Any, alloc::alloc::Global>, rustc_interface::passes::start_codegen::{closure_env#0}>
at ./compiler/rustc_data_structures/src/profiling.rs:754:9
45: time<alloc::boxed::Box<dyn core::any::Any, alloc::alloc::Global>, rustc_interface::passes::start_codegen::{closure_env#0}>
at ./compiler/rustc_session/src/utils.rs:16:9
46: start_codegen
at ./compiler/rustc_interface/src/passes.rs:1026:19
47: codegen_and_build_linker
at ./compiler/rustc_interface/src/queries.rs:128:31
48: {closure#6}
at ./compiler/rustc_driver_impl/src/lib.rs:451:25
49: {closure#1}<rustc_driver_impl::run_compiler::{closure#0}::{closure#1}::{closure_env#6}, core::result::Result<core::option::Option<rustc_interface::queries::Linker>, rustc_span::ErrorGuaranteed>>
at ./compiler/rustc_middle/src/ty/context.rs:1336:37
50: {closure#0}<rustc_middle::ty::context::{impl#19}::enter::{closure_env#1}<rustc_driver_impl::run_compiler::{closure#0}::{closure#1}::{closure_env#6}, core::result::Result<core::option::Option<rustc_interface::queries::Linker>, rustc_span::ErrorGuaranteed>>, core::result::Result<core::option::Option<rustc_interface::queries::Linker>, rustc_span::ErrorGuaranteed>>
at ./compiler/rustc_middle/src/ty/context/tls.rs:82:9
51: try_with<core::cell::Cell<*const ()>, rustc_middle::ty::context::tls::enter_context::{closure_env#0}<rustc_middle::ty::context::{impl#19}::enter::{closure_env#1}<rustc_driver_impl::run_compiler::{closure#0}::{closure#1}::{closure_env#6}, core::result::Result<core::option::Option<rustc_interface::queries::Linker>, rustc_span::ErrorGuaranteed>>, core::result::Result<core::option::Option<rustc_interface::queries::Linker>, rustc_span::ErrorGuaranteed>>, core::result::Result<core::option::Option<rustc_interface::queries::Linker>, rustc_span::ErrorGuaranteed>>
at ./library/std/src/thread/local.rs:283:12
52: with<core::cell::Cell<*const ()>, rustc_middle::ty::context::tls::enter_context::{closure_env#0}<rustc_middle::ty::context::{impl#19}::enter::{closure_env#1}<rustc_driver_impl::run_compiler::{closure#0}::{closure#1}::{closure_env#6}, core::result::Result<core::option::Option<rustc_interface::queries::Linker>, rustc_span::ErrorGuaranteed>>, core::result::Result<core::option::Option<rustc_interface::queries::Linker>, rustc_span::ErrorGuaranteed>>, core::result::Result<core::option::Option<rustc_interface::queries::Linker>, rustc_span::ErrorGuaranteed>>
at ./library/std/src/thread/local.rs:260:9
53: enter_context<rustc_middle::ty::context::{impl#19}::enter::{closure_env#1}<rustc_driver_impl::run_compiler::{closure#0}::{closure#1}::{closure_env#6}, core::result::Result<core::option::Option<rustc_interface::queries::Linker>, rustc_span::ErrorGuaranteed>>, core::result::Result<core::option::Option<rustc_interface::queries::Linker>, rustc_span::ErrorGuaranteed>>
at ./compiler/rustc_middle/src/ty/context/tls.rs:79:5
54: enter<rustc_driver_impl::run_compiler::{closure#0}::{closure#1}::{closure_env#6}, core::result::Result<core::option::Option<rustc_interface::queries::Linker>, rustc_span::ErrorGuaranteed>>
at ./compiler/rustc_middle/src/ty/context.rs:1336:9
55: <rustc_interface::queries::QueryResult<&rustc_middle::ty::context::GlobalCtxt>>::enter::<core::result::Result<core::option::Option<rustc_interface::queries::Linker>, rustc_span::ErrorGuaranteed>, rustc_driver_impl::run_compiler::{closure#0}::{closure#1}::{closure#6}>
at ./compiler/rustc_interface/src/queries.rs:64:9
56: {closure#1}
at ./compiler/rustc_driver_impl/src/lib.rs:450:13
57: enter<rustc_driver_impl::run_compiler::{closure#0}::{closure_env#1}, core::result::Result<core::option::Option<rustc_interface::queries::Linker>, rustc_span::ErrorGuaranteed>>
at ./compiler/rustc_interface/src/queries.rs:209:19
58: {closure#0}
at ./compiler/rustc_driver_impl/src/lib.rs:388:22
59: {closure#1}<core::result::Result<(), rustc_span::ErrorGuaranteed>, rustc_driver_impl::run_compiler::{closure_env#0}>
at ./compiler/rustc_interface/src/interface.rs:502:27
60: {closure#0}<rustc_interface::interface::run_compiler::{closure_env#1}<core::result::Result<(), rustc_span::ErrorGuaranteed>, rustc_driver_impl::run_compiler::{closure_env#0}>, core::result::Result<(), rustc_span::ErrorGuaranteed>>
at ./compiler/rustc_interface/src/util.rs:154:13
61: {closure#0}<rustc_interface::util::run_in_thread_pool_with_globals::{closure_env#0}<rustc_interface::interface::run_compiler::{closure_env#1}<core::result::Result<(), rustc_span::ErrorGuaranteed>, rustc_driver_impl::run_compiler::{closure_env#0}>, core::result::Result<(), rustc_span::ErrorGuaranteed>>, core::result::Result<(), rustc_span::ErrorGuaranteed>>
at ./compiler/rustc_interface/src/util.rs:106:21
62: set<rustc_span::SessionGlobals, rustc_interface::util::run_in_thread_with_globals::{closure#0}::{closure#0}::{closure_env#0}<rustc_interface::util::run_in_thread_pool_with_globals::{closure_env#0}<rustc_interface::interface::run_compiler::{closure_env#1}<core::result::Result<(), rustc_span::ErrorGuaranteed>, rustc_driver_impl::run_compiler::{closure_env#0}>, core::result::Result<(), rustc_span::ErrorGuaranteed>>, core::result::Result<(), rustc_span::ErrorGuaranteed>>, core::result::Result<(), rustc_span::ErrorGuaranteed>>
at /home/michael/.cargo/registry/src/index.crates.io-6f17d22bba15001f/scoped-tls-1.0.1/src/lib.rs:137:9
63: create_session_globals_then<core::result::Result<(), rustc_span::ErrorGuaranteed>, rustc_interface::util::run_in_thread_with_globals::{closure#0}::{closure#0}::{closure_env#0}<rustc_interface::util::run_in_thread_pool_with_globals::{closure_env#0}<rustc_interface::interface::run_compiler::{closure_env#1}<core::result::Result<(), rustc_span::ErrorGuaranteed>, rustc_driver_impl::run_compiler::{closure_env#0}>, core::result::Result<(), rustc_span::ErrorGuaranteed>>, core::result::Result<(), rustc_span::ErrorGuaranteed>>>
at ./compiler/rustc_span/src/lib.rs:134:5
64: {closure#0}<rustc_interface::util::run_in_thread_pool_with_globals::{closure_env#0}<rustc_interface::interface::run_compiler::{closure_env#1}<core::result::Result<(), rustc_span::ErrorGuaranteed>, rustc_driver_impl::run_compiler::{closure_env#0}>, core::result::Result<(), rustc_span::ErrorGuaranteed>>, core::result::Result<(), rustc_span::ErrorGuaranteed>>
at ./compiler/rustc_interface/src/util.rs:105:17
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
error: the compiler unexpectedly panicked. this is a bug.
note: using internal features is not supported and expected to cause internal compiler errors when used incorrectly
note: rustc 1.82.0-dev running on x86_64-unknown-linux-gnu
query stack during panic:
#0 [optimized_mir] optimizing MIR for `<impl at /home/michael/test.rs:9:1: 9:32>::add`
#1 [collect_and_partition_mono_items] collect_and_partition_mono_items
end of query stack
```
ferrocene-automations bot
pushed a commit
that referenced
this pull request
Sep 10, 2024
better implementation of signed div_floor/ceil Tracking issue for signed `div_floor`/`div_ceil`: rust-lang/rust#88581. This PR improves the implementation of those two functions by adding a better branchless algorithm. Side-by-side comparison of `i32::div_floor` on x86-64: ```asm div_floor_new: div_floor_old: push rax push rax test esi, esi test esi, esi je .LBB0_3 je .LBB1_6 mov eax, esi mov eax, esi not eax not eax lea ecx, [rdi - 2147483648] lea ecx, [rdi - 2147483648] or ecx, eax or ecx, eax je .LBB0_2 je .LBB1_7 mov eax, edi mov eax, edi cdq cdq idiv esi idiv esi xor esi, edi test edx, edx sar esi, 31 setg cl test edx, edx test esi, esi cmove esi, edx sets dil add eax, esi test dil, cl pop rcx jne .LBB1_4 ret test edx, edx .LBB0_3: setns cl lea rdi, [rip + .L__unnamed_1] test esi, esi call qword ptr [rip + panic...] setle dl .LBB0_2: or dl, cl lea rdi, [rip + .L__unnamed_1] jne .LBB1_5 call qword ptr [rip + panic...] .LBB1_4: dec eax .LBB1_5: pop rcx ret .LBB1_6: lea rdi, [rip + .L__unnamed_2] call qword ptr [rip + panic...] .LBB1_7: lea rdi, [rip + .L__unnamed_2] call qword ptr [rip + panic...] ``` And on Aarch64: ```asm _div_floor_new: _div_floor_old: stp x29, x30, [sp, #-16]! stp x29, x30, [sp, #-16]! mov x29, sp mov x29, sp cbz w1, LBB0_4 cbz w1, LBB1_9 mov w8, #-2147483648 mov x8, x0 cmp w0, w8 mov w9, #-2147483648 b.ne LBB0_3 cmp w0, w9 cmn w1, #1 b.ne LBB1_3 b.eq LBB0_5 cmn w1, #1 LBB0_3: b.eq LBB1_10 sdiv w8, w0, w1 LBB1_3: msub w9, w8, w1, w0 sdiv w0, w8, w1 eor w10, w1, w0 msub w8, w0, w1, w8 asr w10, w10, #31 tbz w1, #31, LBB1_5 cmp w9, #0 cmp w8, #0 csel w9, wzr, w10, eq b.gt LBB1_7 add w0, w9, w8 LBB1_5: ldp x29, x30, [sp], #16 cmp w1, #1 ret b.lt LBB1_8 LBB0_4: tbz w8, #31, LBB1_8 adrp x0, l___unnamed_1@PAGE LBB1_7: add x0, x0, l___unnamed_1@PAGEOFF sub w0, w0, #1 bl panic... LBB1_8: LBB0_5: ldp x29, x30, [sp], #16 adrp x0, l___unnamed_1@PAGE ret add x0, x0, l___unnamed_1@PAGEOFF LBB1_9: bl panic... adrp x0, l___unnamed_2@PAGE add x0, x0, l___unnamed_2@PAGEOFF bl panic... LBB1_10: adrp x0, l___unnamed_2@PAGE add x0, x0, l___unnamed_2@PAGEOFF bl panic... ```
bors-ferrocene bot
pushed a commit
that referenced
this pull request
Nov 9, 2024
Optimize `Box::default` and `Arc::default` to construct more types in place
Both the `Arc` and `Box` `Default` impls currently call `T::default()` before allocating, and then moving the resulting `T` into the allocation.
Most `Default` impls are trivial, which should in theory allow
LLVM to construct `T: Default` directly in the `Box` allocation when calling
`<Box<T>>::default()`.
However, the allocation may fail, which necessitates calling `T`'s destructor if it has one.
If the destructor is non-trivial, then LLVM has a hard time proving that it's
sound to elide, which makes it construct `T` on the stack first, and then copy it into the allocation.
Change both of these impls to allocate first, and then call `T::default` into the uninitialized allocation, so that LLVM doesn't have to prove that it's sound to elide the destructor/initial stack copy.
For example, given the following Rust code:
```rust
#[derive(Default, Clone)]
struct Foo {
x: Vec<u8>,
z: String,
y: Vec<u8>,
}
#[no_mangle]
pub fn src() -> Box<Foo> {
Box::default()
}
```
<details open>
<summary>Before this PR:</summary>
```llvm
`@__rust_no_alloc_shim_is_unstable` = external global i8
; drop_in_place() generated in case the allocation fails
; core::ptr::drop_in_place<playground::Foo>
; Function Attrs: nounwind nonlazybind uwtable
define internal fastcc void `@"_ZN4core3ptr36drop_in_place$LT$playground..Foo$GT$17hff376aece491233bE"(ptr` noalias nocapture noundef readonly align 8 dereferenceable(72) %_1) unnamed_addr #0 personality ptr `@rust_eh_personality` {
start:
%_1.val = load i64, ptr %_1, align 8
%0 = icmp eq i64 %_1.val, 0
br i1 %0, label %bb6, label %"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17heaa87468709346b1E.exit.i.i.i4.i"
"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17heaa87468709346b1E.exit.i.i.i4.i": ; preds = %start
%1 = getelementptr inbounds i8, ptr %_1, i64 8
%_1.val6 = load ptr, ptr %1, align 8, !nonnull !3, !noundef !3
tail call void `@__rust_dealloc(ptr` noundef nonnull %_1.val6, i64 noundef %_1.val, i64 noundef 1) #8
br label %bb6
bb6: ; preds = %"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17heaa87468709346b1E.exit.i.i.i4.i", %start
%2 = getelementptr inbounds i8, ptr %_1, i64 24
%.val9 = load i64, ptr %2, align 8
%3 = icmp eq i64 %.val9, 0
br i1 %3, label %bb5, label %"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17heaa87468709346b1E.exit.i.i.i4.i.i11"
"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17heaa87468709346b1E.exit.i.i.i4.i.i11": ; preds = %bb6
%4 = getelementptr inbounds i8, ptr %_1, i64 32
%.val10 = load ptr, ptr %4, align 8, !nonnull !3, !noundef !3
tail call void `@__rust_dealloc(ptr` noundef nonnull %.val10, i64 noundef %.val9, i64 noundef 1) #8
br label %bb5
bb5: ; preds = %"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17heaa87468709346b1E.exit.i.i.i4.i.i11", %bb6
%5 = getelementptr inbounds i8, ptr %_1, i64 48
%.val4 = load i64, ptr %5, align 8
%6 = icmp eq i64 %.val4, 0
br i1 %6, label %"_ZN4core3ptr46drop_in_place$LT$alloc..vec..Vec$LT$u8$GT$$GT$17hb5ca95423e113cf7E.exit16", label %"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17heaa87468709346b1E.exit.i.i.i4.i15"
"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17heaa87468709346b1E.exit.i.i.i4.i15": ; preds = %bb5
%7 = getelementptr inbounds i8, ptr %_1, i64 56
%.val5 = load ptr, ptr %7, align 8, !nonnull !3, !noundef !3
tail call void `@__rust_dealloc(ptr` noundef nonnull %.val5, i64 noundef %.val4, i64 noundef 1) #8
br label %"_ZN4core3ptr46drop_in_place$LT$alloc..vec..Vec$LT$u8$GT$$GT$17hb5ca95423e113cf7E.exit16"
"_ZN4core3ptr46drop_in_place$LT$alloc..vec..Vec$LT$u8$GT$$GT$17hb5ca95423e113cf7E.exit16": ; preds = %bb5, %"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17heaa87468709346b1E.exit.i.i.i4.i15"
ret void
}
; Function Attrs: nonlazybind uwtable
define noalias noundef nonnull align 8 ptr `@src()` unnamed_addr #1 personality ptr `@rust_eh_personality` {
start:
; alloca to place `Foo` in.
%_1 = alloca [72 x i8], align 8
call void `@llvm.lifetime.start.p0(i64` 72, ptr nonnull %_1)
store i64 0, ptr %_1, align 8
%_2.sroa.4.0._1.sroa_idx = getelementptr inbounds i8, ptr %_1, i64 8
store ptr inttoptr (i64 1 to ptr), ptr %_2.sroa.4.0._1.sroa_idx, align 8
%_2.sroa.5.0._1.sroa_idx = getelementptr inbounds i8, ptr %_1, i64 16
%_3.sroa.4.0..sroa_idx = getelementptr inbounds i8, ptr %_1, i64 32
call void `@llvm.memset.p0.i64(ptr` noundef nonnull align 8 dereferenceable(16) %_2.sroa.5.0._1.sroa_idx, i8 0, i64 16, i1 false)
store ptr inttoptr (i64 1 to ptr), ptr %_3.sroa.4.0..sroa_idx, align 8
%_3.sroa.5.0..sroa_idx = getelementptr inbounds i8, ptr %_1, i64 40
%_4.sroa.4.0..sroa_idx = getelementptr inbounds i8, ptr %_1, i64 56
call void `@llvm.memset.p0.i64(ptr` noundef nonnull align 8 dereferenceable(16) %_3.sroa.5.0..sroa_idx, i8 0, i64 16, i1 false)
store ptr inttoptr (i64 1 to ptr), ptr %_4.sroa.4.0..sroa_idx, align 8
%_4.sroa.5.0..sroa_idx = getelementptr inbounds i8, ptr %_1, i64 64
store i64 0, ptr %_4.sroa.5.0..sroa_idx, align 8
%0 = load volatile i8, ptr `@__rust_no_alloc_shim_is_unstable,` align 1, !noalias !4
%_0.i.i.i = tail call noalias noundef align 8 dereferenceable_or_null(72) ptr `@__rust_alloc(i64` noundef 72, i64 noundef 8) #8, !noalias !4
%1 = icmp eq ptr %_0.i.i.i, null
br i1 %1, label %bb2.i, label %"_ZN5alloc5boxed12Box$LT$T$GT$3new17h0864de14f863a27aE.exit"
bb2.i: ; preds = %start
; invoke alloc::alloc::handle_alloc_error
invoke void `@_ZN5alloc5alloc18handle_alloc_error17h98142d0d8d74161bE(i64` noundef 8, i64 noundef 72) #9
to label %.noexc unwind label %cleanup.i
.noexc: ; preds = %bb2.i
unreachable
cleanup.i: ; preds = %bb2.i
%2 = landingpad { ptr, i32 }
cleanup
; call core::ptr::drop_in_place<playground::Foo>
call fastcc void `@"_ZN4core3ptr36drop_in_place$LT$playground..Foo$GT$17hff376aece491233bE"(ptr` noalias noundef nonnull align 8 dereferenceable(72) %_1) #10
resume { ptr, i32 } %2
"_ZN5alloc5boxed12Box$LT$T$GT$3new17h0864de14f863a27aE.exit": ; preds = %start
; Copy from stack to heap if allocation is successful
call void `@llvm.memcpy.p0.p0.i64(ptr` noundef nonnull align 8 dereferenceable(72) %_0.i.i.i, ptr noundef nonnull align 8 dereferenceable(72) %_1, i64 72, i1 false)
call void `@llvm.lifetime.end.p0(i64` 72, ptr nonnull %_1)
ret ptr %_0.i.i.i
}
```
</details>
<details>
<summary>After this PR</summary>
```llvm
; Notice how there's no `drop_in_place()` generated as well
define noalias noundef nonnull align 8 ptr `@src()` unnamed_addr #0 personality ptr `@rust_eh_personality` {
start:
; no stack allocation
%0 = load volatile i8, ptr `@__rust_no_alloc_shim_is_unstable,` align 1
%_0.i.i.i.i.i = tail call noalias noundef align 8 dereferenceable_or_null(72) ptr `@__rust_alloc(i64` noundef 72, i64 noundef 8) #5
%1 = icmp eq ptr %_0.i.i.i.i.i, null
br i1 %1, label %bb3.i, label %"_ZN5alloc5boxed16Box$LT$T$C$A$GT$13new_uninit_in17h80d6355ef4b73ea3E.exit"
bb3.i: ; preds = %start
; call alloc::alloc::handle_alloc_error
tail call void `@_ZN5alloc5alloc18handle_alloc_error17h98142d0d8d74161bE(i64` noundef 8, i64 noundef 72) #6
unreachable
"_ZN5alloc5boxed16Box$LT$T$C$A$GT$13new_uninit_in17h80d6355ef4b73ea3E.exit": ; preds = %start
; construct `Foo` directly into the allocation if successful
store i64 0, ptr %_0.i.i.i.i.i, align 8
%_8.sroa.4.0._1.sroa_idx = getelementptr inbounds i8, ptr %_0.i.i.i.i.i, i64 8
store ptr inttoptr (i64 1 to ptr), ptr %_8.sroa.4.0._1.sroa_idx, align 8
%_8.sroa.5.0._1.sroa_idx = getelementptr inbounds i8, ptr %_0.i.i.i.i.i, i64 16
%_8.sroa.7.0._1.sroa_idx = getelementptr inbounds i8, ptr %_0.i.i.i.i.i, i64 32
tail call void `@llvm.memset.p0.i64(ptr` noundef nonnull align 8 dereferenceable(16) %_8.sroa.5.0._1.sroa_idx, i8 0, i64 16, i1 false)
store ptr inttoptr (i64 1 to ptr), ptr %_8.sroa.7.0._1.sroa_idx, align 8
%_8.sroa.8.0._1.sroa_idx = getelementptr inbounds i8, ptr %_0.i.i.i.i.i, i64 40
%_8.sroa.10.0._1.sroa_idx = getelementptr inbounds i8, ptr %_0.i.i.i.i.i, i64 56
tail call void `@llvm.memset.p0.i64(ptr` noundef nonnull align 8 dereferenceable(16) %_8.sroa.8.0._1.sroa_idx, i8 0, i64 16, i1 false)
store ptr inttoptr (i64 1 to ptr), ptr %_8.sroa.10.0._1.sroa_idx, align 8
%_8.sroa.11.0._1.sroa_idx = getelementptr inbounds i8, ptr %_0.i.i.i.i.i, i64 64
store i64 0, ptr %_8.sroa.11.0._1.sroa_idx, align 8
ret ptr %_0.i.i.i.i.i
}
```
</details>
bors-ferrocene bot
pushed a commit
that referenced
this pull request
Nov 9, 2024
shave 150ms off bootstrap This starts `git` commands inside `GitInfo`and the submodule updates in parallel. Git should already perform internal locking in cases where it needs to serialize a modification. ``` OLD Benchmark #1: ./x check core Time (mean ± σ): 608.7 ms ± 4.4 ms [User: 368.3 ms, System: 455.1 ms] Range (min … max): 602.3 ms … 618.8 ms 10 runs NEW Benchmark #1: ./x check core Time (mean ± σ): 462.8 ms ± 2.6 ms [User: 350.2 ms, System: 485.1 ms] Range (min … max): 457.5 ms … 465.6 ms 10 runs ``` This should help with the rust-analyzer setup which issues many individual `./x check` calls. There's more that could be done but these were the lowest-hanging fruits that I saw.
bors-ferrocene bot
pushed a commit
that referenced
this pull request
Nov 12, 2024
The failure output is: ``` SplitVectorOperand Op #1: t51: i32 = llvm.wasm.alltrue TargetConstant:i32<12408>, t50 rustc-LLVM ERROR: Do not know how to split this operator's operand! ```
ferrocene-automations bot
pushed a commit
that referenced
this pull request
Dec 12, 2024
we get these declarations ``` ; opt level 0 declare x86_intrcc void @page_fault_handler(ptr byval([8 x i8]) align 8, i64) unnamed_addr #1 ; opt level > 0 declare x86_intrcc void @page_fault_handler(ptr noalias nocapture noundef byval([8 x i8]) align 8 dereferenceable(8), i64 noundef) unnamed_addr #1 ``` The space after `i64` in the original regex made the regex not match for opt level 0. Removing the space fixes the issue. ``` declare x86_intrcc void @page_fault_handler(ptr {{.*}}, i64 {{.*}}){{.*}}#[[ATTRS:[0-9]+]] ```
ferrocene-automations bot
pushed a commit
that referenced
this pull request
Jul 15, 2025
fix: check against 'main' function name instead of entrypoint function
ferrocene-automations bot
pushed a commit
that referenced
this pull request
Jul 18, 2025
…buginfo, r=wesleywiser tests: Test line debuginfo for linebreaked function parameters Closes rust-lang/rust#45010 which just [E-needs-test](rust-lang/rust#45010 (comment)). To verify that this is actually a regression test, do this, which is a simplified and adapted version of what compiletest does for 1.39 and then 1.88: ```sh for toolchain in 1.39 1.88; do echo -e "\nWith $toolchain:" rustc +$toolchain "tests/codegen/fn-parameters-on-different-lines-debuginfo.rs" "--emit" "llvm-ir" "-o" "/tmp/fn-parameters-on-different-lines-debuginfo.ll" "-g" "-Copt-level=0" "build/x86_64-unknown-linux-gnu/ci-llvm/bin/FileCheck" "--input-file" "/tmp/fn-parameters-on-different-lines-debuginfo.ll" "tests/codegen/fn-parameters-on-different-lines-debuginfo.rs" "--check-prefix=CHECK" "--dump-input-context" "100" && echo OK || echo FAIL done ``` which gives ``` With 1.39: FAIL With 1.88: OK ``` <details> <summary>Click to expand full output</summary> ``` $ for toolchain in 1.39 1.88; do echo -e "\nWith $toolchain:" rustc +$toolchain "tests/codegen/fn-parameters-on-different-lines-debuginfo.rs" "--emit" "llvm-ir" "-o" "/tmp/fn-parameters-on-different-lines-debuginfo.ll" "-g" "-Copt-level=0" "build/x86_64-unknown-linux-gnu/ci-llvm/bin/FileCheck" "--input-file" "/tmp/fn-parameters-on-different-lines-debuginfo.ll" "tests/codegen/fn-parameters-on-different-lines-debuginfo.rs" "--check-prefix=CHECK" "--dump-input-context" "100" && echo OK || echo FAIL done With 1.39: tests/codegen/fn-parameters-on-different-lines-debuginfo.rs:16:16: error: CHECK-SAME: expected string not found in input // CHECK-SAME: line: 10 ^ /tmp/fn-parameters-on-different-lines-debuginfo.ll:69:42: note: scanning from here !10 = !DILocalVariable(name: "x", arg: 1, scope: !5, file: !3, line: 1, type: !9) ^ /tmp/fn-parameters-on-different-lines-debuginfo.ll:69:64: note: possible intended match here !10 = !DILocalVariable(name: "x", arg: 1, scope: !5, file: !3, line: 1, type: !9) ^ Input file: /tmp/fn-parameters-on-different-lines-debuginfo.ll Check file: tests/codegen/fn-parameters-on-different-lines-debuginfo.rs -dump-input=help explains the following input dump. Input was: <<<<<< 1: ; ModuleID = 'fn_parameters_on_different_lines_debuginfo.3a1fbbbh-cgu.0' 2: source_filename = "fn_parameters_on_different_lines_debuginfo.3a1fbbbh-cgu.0" 3: target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128" 4: target triple = "x86_64-unknown-linux-gnu" 5: 6: ``@str.0`` = internal constant [59 x i8] c"tests/codegen/fn-parameters-on-different-lines-debuginfo.rs" 7: ``@str.1`` = internal constant [28 x i8] c"attempt to add with overflow" 8: ``@panic_loc.2`` = private unnamed_addr constant { { [0 x i8]*, i64 }, { [0 x i8]*, i64 }, i32, i32 } { { [0 x i8]*, i64 } { [0 x i8]* bitcast ([28 x i8]* ``@str.1`` to [0 x i8]*), i64 28 }, { [0 x i8]*, i64 } { [0 x i8]* bitcast ([59 x i8]* ``@str.0`` to [0 x i8]*), i64 59 }, i32 13, i32 3 }, align 8 9: ``@__rustc_debug_gdb_scripts_section__`` = linkonce_odr unnamed_addr constant [34 x i8] c"\01gdb_load_rust_pretty_printers.py\00", section ".debug_gdb_scripts", align 1 10: 11: ; fn_parameters_on_different_lines_debuginfo::foo 12: ; Function Attrs: nonlazybind uwtable 13: define i32 ``@_ZN42fn_parameters_on_different_lines_debuginfo3foo17ha98e7c29f4ed8d60E(i32,`` i32) unnamed_addr #0 !dbg !5 { 14: start: 15: %y = alloca i32, align 4 16: %x = alloca i32, align 4 17: store i32 %0, i32* %x, align 4 18: call void ``@llvm.dbg.declare(metadata`` i32* %x, metadata !10, metadata !DIExpression()), !dbg !11 19: store i32 %1, i32* %y, align 4 20: call void ``@llvm.dbg.declare(metadata`` i32* %y, metadata !12, metadata !DIExpression()), !dbg !11 21: %2 = load i32, i32* %x, align 4, !dbg !13 22: %3 = load i32, i32* %y, align 4, !dbg !14 23: %4 = call { i32, i1 } ``@llvm.sadd.with.overflow.i32(i32`` %2, i32 %3), !dbg !13 24: %5 = extractvalue { i32, i1 } %4, 0, !dbg !13 25: %6 = extractvalue { i32, i1 } %4, 1, !dbg !13 26: %7 = call i1 ``@llvm.expect.i1(i1`` %6, i1 false), !dbg !13 27: br i1 %7, label %panic, label %bb1, !dbg !13 28: 29: bb1: ; preds = %start 30: ret i32 %5, !dbg !15 31: 32: panic: ; preds = %start 33: ; call core::panicking::panic 34: call void ``@_ZN4core9panicking5panic17h2f49f09cf859b728E({`` [0 x i64], { [0 x i8]*, i64 }, [0 x i64], { [0 x i8]*, i64 }, [0 x i32], i32, [0 x i32], i32, [0 x i32] }* noalias readonly align 8 dereferenceable(40) bitcast ({ { [0 x i8]*, i64 }, { [0 x i8]*, i64 }, i32, i32 }* ``@panic_loc.2`` to { [0 x i64], { [0 x i8]*, i64 }, [0 x i64], { [0 x i8]*, i64 }, [0 x i32], i32, [0 x i32], i32, [0 x i32] }*)), !dbg !13 35: unreachable, !dbg !13 36: } 37: 38: ; Function Attrs: nounwind readnone speculatable 39: declare void ``@llvm.dbg.declare(metadata,`` metadata, metadata) #1 40: 41: ; Function Attrs: nounwind readnone speculatable 42: declare { i32, i1 } ``@llvm.sadd.with.overflow.i32(i32,`` i32) #1 43: 44: ; Function Attrs: nounwind readnone 45: declare i1 ``@llvm.expect.i1(i1,`` i1) #2 46: 47: ; core::panicking::panic 48: ; Function Attrs: cold noinline noreturn nonlazybind uwtable 49: declare void ``@_ZN4core9panicking5panic17h2f49f09cf859b728E({`` [0 x i64], { [0 x i8]*, i64 }, [0 x i64], { [0 x i8]*, i64 }, [0 x i32], i32, [0 x i32], i32, [0 x i32] }* noalias readonly align 8 dereferenceable(40)) unnamed_addr #3 50: 51: attributes #0 = { nonlazybind uwtable "probe-stack"="__rust_probestack" "target-cpu"="x86-64" } 52: attributes #1 = { nounwind readnone speculatable } 53: attributes #2 = { nounwind readnone } 54: attributes #3 = { cold noinline noreturn nonlazybind uwtable "probe-stack"="__rust_probestack" "target-cpu"="x86-64" } 55: 56: !llvm.module.flags = !{!0, !1} 57: !llvm.dbg.cu = !{!2} 58: 59: !0 = !{i32 2, !"RtLibUseGOT", i32 1} 60: !1 = !{i32 2, !"Debug Info Version", i32 3} 61: !2 = distinct !DICompileUnit(language: DW_LANG_Rust, file: !3, producer: "clang LLVM (rustc version 1.39.0 (4560ea788 2019-11-04))", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4) 62: !3 = !DIFile(filename: "tests/codegen/fn-parameters-on-different-lines-debuginfo.rs", directory: "/home/martin/src/rust") 63: !4 = !{} 64: !5 = distinct !DISubprogram(name: "foo", linkageName: "_ZN42fn_parameters_on_different_lines_debuginfo3foo17ha98e7c29f4ed8d60E", scope: !6, file: !3, line: 9, type: !7, scopeLine: 9, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !2, templateParams: !4, retainedNodes: !4) 65: !6 = !DINamespace(name: "fn_parameters_on_different_lines_debuginfo", scope: null) 66: !7 = !DISubroutineType(types: !8) 67: !8 = !{!9, !9, !9} 68: !9 = !DIBasicType(name: "i32", size: 32, encoding: DW_ATE_signed) 69: !10 = !DILocalVariable(name: "x", arg: 1, scope: !5, file: !3, line: 1, type: !9) same:16'0 X~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ error: no match found same:16'1 ? possible intended match 70: !11 = !DILocation(line: 1, scope: !5) same:16'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 71: !12 = !DILocalVariable(name: "y", arg: 2, scope: !5, file: !3, line: 1, type: !9) same:16'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 72: !13 = !DILocation(line: 13, column: 2, scope: !5) same:16'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 73: !14 = !DILocation(line: 13, column: 6, scope: !5) same:16'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 74: !15 = !DILocation(line: 13, column: 9, scope: !5) same:16'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ >>>>>> FAIL With 1.88: OK ``` <details>
ferrocene-automations bot
pushed a commit
that referenced
this pull request
Sep 2, 2025
Rehome 30 `tests/ui/issues/` tests to other subdirectories under `tests/ui/` [#1 of Batch #2] Part of rust-lang/rust#133895 Methodology: 1. Refer to the previously written `tests/ui/SUMMARY.md` 2. Find an appropriate category for the test, using the original issue thread and the test contents. 3. Add the issue URL at the bottom (not at the top, as that would mess up stderr line numbers) 4. Rename the tests to make their purpose clearer Inspired by the methodology that `@Kivooeo` was using. r? `@jieyouxu`
bors-ferrocene bot
added a commit
that referenced
this pull request
Sep 4, 2025
1724: Automated pull from upstream `master` r=pvdrz a=ferrocene-automations[bot] :warning: **The automation reported these warnings:** :warning: * There are merge conflicts in this PR. Merge conflict markers have been committed. * Couldn't regenerate the `x.py` completions. Please run `./x run generate-completions` after fixing the merge conflicts. This PR pulls the following changes from the upstream repository: * `145951`: [cleanup and cache proof tree building](https://www.github.com/rust-lang/rust/issues/145951) * `146113`: [Revert introduction of `[workspace.dependencies]`.](https://www.github.com/rust-lang/rust/issues/146113) * `146059`: [explicitly end the lifetime of `va_list`](https://www.github.com/rust-lang/rust/issues/146059) * `145925`: [`-Znext-solver`: support non-defining uses in closures](https://www.github.com/rust-lang/rust/issues/145925) * `145721`: [Update to ar_archive_writer 0.5](https://www.github.com/rust-lang/rust/issues/145721) * `144783`: [fix `#[loop_match]` on diverging loop](https://www.github.com/rust-lang/rust/issues/144783) * `143290`: [pub async fn impl is monomorphized when func itself is monomorphized](https://www.github.com/rust-lang/rust/issues/143290) * `146077`: [Rollup of 5 pull requests](https://www.github.com/rust-lang/rust/issues/146077) * `146068`: [compiletest: Capture panic messages via a custom panic hook](https://www.github.com/rust-lang/rust/issues/146068) * `146060`: [fixup nix dev shell again](https://www.github.com/rust-lang/rust/issues/146060) * `145754`: [fix(lexer): Don't require frontmatters to be escaped with indented fences](https://www.github.com/rust-lang/rust/issues/145754) * `145643`: [coverage: Build an "expansion tree" and use it to unexpand raw spans](https://www.github.com/rust-lang/rust/issues/145643) * `145468`: [dedup recip, powi, to_degrees, and to_radians float tests](https://www.github.com/rust-lang/rust/issues/145468) * `146072`: [Rollup of 6 pull requests](https://www.github.com/rust-lang/rust/issues/146072) * `146051`: [Change std f32 test to pass under Miri](https://www.github.com/rust-lang/rust/issues/146051) * `146046`: [Suggest method name with maybe ty mismatch](https://www.github.com/rust-lang/rust/issues/146046) * `146042`: [Detect negative literal inferred to unsigned integer](https://www.github.com/rust-lang/rust/issues/146042) * `146004`: [resolve: Refactor `struct ExternPreludeEntry`](https://www.github.com/rust-lang/rust/issues/146004) * `145968`: [Add `Bound::copied`](https://www.github.com/rust-lang/rust/issues/145968) * `145421`: [`dump_mir` cleanups](https://www.github.com/rust-lang/rust/issues/145421) * `145663`: [Enforce in bootstrap that test must have stage at least 1 (except for compiletest)](https://www.github.com/rust-lang/rust/issues/145663) * `146038`: [rustdoc-search: split function inverted index by input/output](https://www.github.com/rust-lang/rust/issues/146038) * `146053`: [std: fix `SplitPaths` regression](https://www.github.com/rust-lang/rust/issues/146053) * `146052`: [Rollup of 4 pull requests](https://www.github.com/rust-lang/rust/issues/146052) * `145931`: [Clarify that align_offset overaligns](https://www.github.com/rust-lang/rust/issues/145931) * `145592`: [Fix format string grammar in docs and improve alignment error message for #144023](https://www.github.com/rust-lang/rust/issues/145592) * `145174`: [Ensure consistent drop for panicking drop in hint::select_unpredictable](https://www.github.com/rust-lang/rust/issues/145174) * `144443`: [Make target pointer width in target json an integer](https://www.github.com/rust-lang/rust/issues/144443) * `146039`: [Use absolute path to llvm-bolt, merge-fdata rather than PATH](https://www.github.com/rust-lang/rust/issues/146039) * `145582`: [Detect missing `if let` or `let-else`](https://www.github.com/rust-lang/rust/issues/145582) * `146043`: [Rollup of 4 pull requests](https://www.github.com/rust-lang/rust/issues/146043) * `146036`: [Use move_file for rename in tracing](https://www.github.com/rust-lang/rust/issues/146036) * `146035`: [Update `browser-ui-test` version to `0.21.3`](https://www.github.com/rust-lang/rust/issues/146035) * `146030`: [Fix `sys::process::windows::tests::test_thread_handle` spurious failure](https://www.github.com/rust-lang/rust/issues/146030) * `144964`: [std: clarify `OpenOptions` error for create without write access](https://www.github.com/rust-lang/rust/issues/144964) * `146029`: [Remove incorrect fixme on deprecation target](https://www.github.com/rust-lang/rust/issues/146029) * `145479`: [Hard-code `char::is_control`](https://www.github.com/rust-lang/rust/issues/145479) * `146026`: [Rollup of 5 pull requests](https://www.github.com/rust-lang/rust/issues/146026) * `145969`: [Add Duration::from_nanos_u128](https://www.github.com/rust-lang/rust/issues/145969) * `145776`: [Optimize `.ilog({2,10})` to `.ilog{2,10}()`](https://www.github.com/rust-lang/rust/issues/145776) * `145465`: [Stabilize `array_repeat` feature](https://www.github.com/rust-lang/rust/issues/145465) * `144651`: [Implementation: `#[feature(nonpoison_condvar)]`](https://www.github.com/rust-lang/rust/issues/144651) * `143462`: [fix(lib-std-fs): handle `usize` overflow in `read*`](https://www.github.com/rust-lang/rust/issues/143462) * `123319`: [Add managarm as a tier 3 target](https://www.github.com/rust-lang/rust/issues/123319) * `144494`: [Partial-stabilize the basics from `bigint_helper_methods`](https://www.github.com/rust-lang/rust/issues/144494) * `146023`: [Rollup of 9 pull requests](https://www.github.com/rust-lang/rust/issues/146023) * `146022`: [compiler-builtins subtree update](https://www.github.com/rust-lang/rust/issues/146022) * `146017`: [Mark pipe2 supported in Android](https://www.github.com/rust-lang/rust/issues/146017) * `146000`: [Improve librustdoc error when a file creation/modification failed](https://www.github.com/rust-lang/rust/issues/146000) * `145991`: [std: haiku: fix `B_FIND_PATH_IMAGE_PATH`](https://www.github.com/rust-lang/rust/issues/145991) * `145990`: [`AutoDeref::final_ty` is already resolved](https://www.github.com/rust-lang/rust/issues/145990) * `145967`: [compiler: Include span of too huge enum with `-Cdebuginfo=2`](https://www.github.com/rust-lang/rust/issues/145967) * `145756`: [str: Stabilize `round_char_boundary` feature](https://www.github.com/rust-lang/rust/issues/145756) * `145467`: [Stabilize `strict_provenance_atomic_ptr` feature](https://www.github.com/rust-lang/rust/issues/145467) * `145242`: [std: use a TAIT to define `SplitPaths` on UNIX](https://www.github.com/rust-lang/rust/issues/145242) * `145997`: [Rollup of 4 pull requests](https://www.github.com/rust-lang/rust/issues/145997) * `145984`: [`TokenStream` cleanups](https://www.github.com/rust-lang/rust/issues/145984) * `145982`: [compiletest: Reduce the number of `println!` calls that don't have access to `TestCx`](https://www.github.com/rust-lang/rust/issues/145982) * `145676`: [Rehome 30 `tests/ui/issues/` tests to other subdirectories under `tests/ui/` [#2 of Batch #2]](https://www.github.com/rust-lang/rust/issues/145676) * `145675`: [Rehome 30 `tests/ui/issues/` tests to other subdirectories under `tests/ui/` [#1 of Batch #2]](https://www.github.com/rust-lang/rust/issues/145675) * `145902`: [Avoid more rustc rebuilds in cross-compilation scenarios](https://www.github.com/rust-lang/rust/issues/145902) * `145978`: [Rollup of 9 pull requests](https://www.github.com/rust-lang/rust/issues/145978) * `145977`: [tests: Ignore basic-stepping.rs on riscv64](https://www.github.com/rust-lang/rust/issues/145977) * `145972`: [fix `core::marker::Destruct` doc](https://www.github.com/rust-lang/rust/issues/145972) * `145947`: [Add more to the `[workspace.dependencies]` section in the top-level `Cargo.toml`](https://www.github.com/rust-lang/rust/issues/145947) * `145884`: [Test `instrument-mcount` codegen](https://www.github.com/rust-lang/rust/issues/145884) * `145793`: [std library: use execinfo library also on NetBSD.](https://www.github.com/rust-lang/rust/issues/145793) * `145387`: [Remove TmpLayout in layout_of_enum](https://www.github.com/rust-lang/rust/issues/145387) * `144354`: [fix(std): Fix undefined reference to __my_thread_exit on QNX 8.0](https://www.github.com/rust-lang/rust/issues/144354) * `144275`: [implement Sum and Product for Saturating(u*)](https://www.github.com/rust-lang/rust/issues/144275) * `143713`: [Add a mailmap entry for gnzlbg](https://www.github.com/rust-lang/rust/issues/143713) * `145377`: [Switch next solver to use a specific associated type for trait def id](https://www.github.com/rust-lang/rust/issues/145377) * `145970`: [Rollup of 6 pull requests](https://www.github.com/rust-lang/rust/issues/145970) * `145965`: [Move exporting of profiler and sanitizer symbols to the LLVM backend](https://www.github.com/rust-lang/rust/issues/145965) * `145937`: [add doc-hidden to exports in attribute prelude](https://www.github.com/rust-lang/rust/issues/145937) * `145920`: [bootstrap: Explicitly mark the end of a failed test's captured output](https://www.github.com/rust-lang/rust/issues/145920) * `145853`: [Improve error messages around invalid literals in attribute arguments](https://www.github.com/rust-lang/rust/issues/145853) * `145368`: [CFI: Make `lto` and `linker-plugin-lto` work the same for `compiler_builtins`](https://www.github.com/rust-lang/rust/issues/145368) * `142472`: [Add new `doc(attribute = "...")` attribute](https://www.github.com/rust-lang/rust/issues/142472) * `145807`: [When determining if a trait has no entries for the purposes of omitting vptrs from subtrait vtables, consider its transitive supertraits' entries, instead of just its own entries.](https://www.github.com/rust-lang/rust/issues/145807) * `145958`: [Rollup of 9 pull requests](https://www.github.com/rust-lang/rust/issues/145958) * `145953`: [Update `icu_list` to 2.0](https://www.github.com/rust-lang/rust/issues/145953) * `145941`: [Disable `integer_to_ptr_transmutes` suggestion for unsized types](https://www.github.com/rust-lang/rust/issues/145941) * `145930`: [`const`ify (the unstable) `str::as_str`](https://www.github.com/rust-lang/rust/issues/145930) * `145928`: [Rename `Location::file_with_nul` to `file_as_c_str`](https://www.github.com/rust-lang/rust/issues/145928) * `145926`: [compiletest: Remove several remnants of the old libtest-based executor](https://www.github.com/rust-lang/rust/issues/145926) * `145913`: [Add spin_loop hint for LoongArch](https://www.github.com/rust-lang/rust/issues/145913) * `144864`: [No source fixes](https://www.github.com/rust-lang/rust/issues/144864) * `143193`: [Port `#[link]` to the new attribute parsing infrastructure ](https://www.github.com/rust-lang/rust/issues/143193) * `142727`: [wasm: rm static mut](https://www.github.com/rust-lang/rust/issues/142727) * `145891`: [Update to LLVM 21.1.0](https://www.github.com/rust-lang/rust/issues/145891) * `145949`: [Rollup of 5 pull requests](https://www.github.com/rust-lang/rust/issues/145949) * `145946`: [Remove unnecessary `[dependencies.*]` entries.](https://www.github.com/rust-lang/rust/issues/145946) * `145894`: [Ensure the coordinator thread terminates before its channels drop](https://www.github.com/rust-lang/rust/issues/145894) * `145826`: [Use AcceptContext in AttribueParser::check_target](https://www.github.com/rust-lang/rust/issues/145826) * `145746`: [Fix STD build failing for target_os = "espidf"](https://www.github.com/rust-lang/rust/issues/145746) * `145382`: [Add assembly test for `-Zreg-struct-return` option](https://www.github.com/rust-lang/rust/issues/145382) * `145877`: [Use captures(address) instead of captures(none) for indirect args](https://www.github.com/rust-lang/rust/issues/145877) * `145851`: [rustdoc: a few micro-optimizations targeted at build_impl](https://www.github.com/rust-lang/rust/issues/145851) * `145909`: [Update cargo submodule](https://www.github.com/rust-lang/rust/issues/145909) * `145923`: [Rollup of 6 pull requests](https://www.github.com/rust-lang/rust/issues/145923) * `145905`: [Stop calling unwrap when format foreign has trailing dollar](https://www.github.com/rust-lang/rust/issues/145905) * `145885`: [Inherit TCC in debuginfo tests on macOS](https://www.github.com/rust-lang/rust/issues/145885) * `145740`: [Introduce a `[workspace.dependencies`] section in the top-level `Cargo.toml`](https://www.github.com/rust-lang/rust/issues/145740) * `145625`: [improve float to_degrees/to_radians rounding comments and impl](https://www.github.com/rust-lang/rust/issues/145625) * `145562`: [Simplify macro generating ToString implementations for `&…&str`](https://www.github.com/rust-lang/rust/issues/145562) * `144274`: [add Option::reduce](https://www.github.com/rust-lang/rust/issues/144274) * `140737`: [Region inference: Use outlives-static constraints in constraint search](https://www.github.com/rust-lang/rust/issues/140737) * `145916`: [Rollup of 6 pull requests](https://www.github.com/rust-lang/rust/issues/145916) * `145904`: [Move `riscv64-gc-unknown-linux-musl` from Tier 2 with Host tools to Tier 2](https://www.github.com/rust-lang/rust/issues/145904) * `145335`: [Move WTF-8 code from std into core and alloc](https://www.github.com/rust-lang/rust/issues/145335) * `145290`: [Improve std::fs::read_dir docs](https://www.github.com/rust-lang/rust/issues/145290) * `145078`: [Fix wrong cache line size of riscv64](https://www.github.com/rust-lang/rust/issues/145078) * `143341`: [Mention that casting to *const () is a way to roundtrip with from_raw_parts](https://www.github.com/rust-lang/rust/issues/143341) * `142215`: [Use -Zmir-opt-level=0 in tests for MIR building](https://www.github.com/rust-lang/rust/issues/142215) * `144841`: [Access less HIR attributes from typeck](https://www.github.com/rust-lang/rust/issues/144841) * `145906`: [Rollup of 9 pull requests](https://www.github.com/rust-lang/rust/issues/145906) * `145901`: [Fix typo in comment of library/alloc/src/raw_vec/mod.rs](https://www.github.com/rust-lang/rust/issues/145901) * `145892`: [add a flag to codegen fn attrs for foreign items](https://www.github.com/rust-lang/rust/issues/145892) * `145888`: [platform-support: Fix LoongArch32 host column](https://www.github.com/rust-lang/rust/issues/145888) * `145887`: [bootstrap: Don't panic if codegen-backends is set to empty](https://www.github.com/rust-lang/rust/issues/145887) * `145876`: [Enable building/disting standard library in stage 0](https://www.github.com/rust-lang/rust/issues/145876) * `145840`: [rustc_codegen_ssa: More comprehensive RISC-V ELF flags](https://www.github.com/rust-lang/rust/issues/145840) * `145792`: [Use attribute name in message for "outer attr used as inner attr" errors](https://www.github.com/rust-lang/rust/issues/145792) * `145790`: [Improve dist for gnullvm hosts](https://www.github.com/rust-lang/rust/issues/145790) * `144499`: [ci: Begin running ui tests with `rust.debuginfo-level-tests=1`](https://www.github.com/rust-lang/rust/issues/144499) * `145890`: [GCC backend subtree update](https://www.github.com/rust-lang/rust/issues/145890) * `145886`: [Rollup of 11 pull requests](https://www.github.com/rust-lang/rust/issues/145886) * `145875`: [Make bootstrap command caching opt-in](https://www.github.com/rust-lang/rust/issues/145875) * `145867`: [cg_llvm: Assert that LLVM range-attribute values don't exceed 128 bits](https://www.github.com/rust-lang/rust/issues/145867) * `145863`: [formatting_options: Make all methods `const`](https://www.github.com/rust-lang/rust/issues/145863) * `145861`: [bootstrap: vendor `clippy_test_deps` too](https://www.github.com/rust-lang/rust/issues/145861) * `145841`: [Always build miri for the host in `x run miri`](https://www.github.com/rust-lang/rust/issues/145841) * `145615`: [Fix doc of `std::os::windows::io::BorrowedSocket::borrow_raw`](https://www.github.com/rust-lang/rust/issues/145615) * `145596`: [Losslessly optimize PNG files](https://www.github.com/rust-lang/rust/issues/145596) * `145481`: [Add parentheses for closure when suggesting calling closure](https://www.github.com/rust-lang/rust/issues/145481) * `145076`: [Add new Tier-3 target: riscv64a23-unknown-linux-gnu](https://www.github.com/rust-lang/rust/issues/145076) * `144551`: [Add aarch64_be-unknown-linux-musl target](https://www.github.com/rust-lang/rust/issues/144551) * `144373`: [remove deprecated Error::description in impls](https://www.github.com/rust-lang/rust/issues/144373) * `145874`: [Remove unnecessary stage2 host builds from cross-compiled dist builders](https://www.github.com/rust-lang/rust/issues/145874) * `145871`: [Rollup of 12 pull requests](https://www.github.com/rust-lang/rust/issues/145871) * `145858`: [Update wasm-component-ld dependency](https://www.github.com/rust-lang/rust/issues/145858) * `145856`: [Update books](https://www.github.com/rust-lang/rust/issues/145856) * `145847`: [Don't show warnings from xcrun with -Zverbose-internals](https://www.github.com/rust-lang/rust/issues/145847) * `145845`: [Make `x test distcheck` self-contained](https://www.github.com/rust-lang/rust/issues/145845) * `145821`: [compiletest: if a compiler fails, show its output](https://www.github.com/rust-lang/rust/issues/145821) * `145815`: [Wait for DPkg frontend lock when trying to remove packages](https://www.github.com/rust-lang/rust/issues/145815) * `145814`: [Handle unwinding fatal errors in codegen workers](https://www.github.com/rust-lang/rust/issues/145814) * `145811`: [Fix some minor issues in comments](https://www.github.com/rust-lang/rust/issues/145811) * `145766`: [test(rustfmt): Verify frontmatter is preserved](https://www.github.com/rust-lang/rust/issues/145766) * `145535`: [make rustdoc::invalid_html_tags more robust](https://www.github.com/rust-lang/rust/issues/145535) * `144885`: [Implement some more checks in `ptr_guaranteed_cmp`. ](https://www.github.com/rust-lang/rust/issues/144885) * `143689`: [Allow linking a prebuilt optimized compiler-rt builtins library](https://www.github.com/rust-lang/rust/issues/143689) * `145848`: [Slightly optimize reading of source files](https://www.github.com/rust-lang/rust/issues/145848) * `145711`: [Support non-defining uses in HIR typeck](https://www.github.com/rust-lang/rust/issues/145711) * `145472`: [Enforce in bootstrap that dist and install must have stage at least 1](https://www.github.com/rust-lang/rust/issues/145472) * `145844`: [Rollup of 10 pull requests](https://www.github.com/rust-lang/rust/issues/145844) * `145842`: [rustc-dev-guide subtree update](https://www.github.com/rust-lang/rust/issues/145842) * `145836`: [Remove outdated bug comments](https://www.github.com/rust-lang/rust/issues/145836) * `145830`: [Remove the lifetime from `ExpTokenPair`/`SeqSep`.](https://www.github.com/rust-lang/rust/issues/145830) * `145828`: [Update `bitflags` to 2.9.3.](https://www.github.com/rust-lang/rust/issues/145828) * `145820`: [raw-dylib-elf: set correct `DT_VERDEFNUM`](https://www.github.com/rust-lang/rust/issues/145820) * `145817`: [cg_llvm: Replace the `llvm::Bool` typedef with a proper newtype](https://www.github.com/rust-lang/rust/issues/145817) * `145794`: [bootstrap.py: Improve CPU detection on NetBSD](https://www.github.com/rust-lang/rust/issues/145794) * `145788`: [Fix attribute target checking for macro calls](https://www.github.com/rust-lang/rust/issues/145788) * `145620`: [Account for impossible bounds making seemingly unsatisfyable dyn-to-dyn casts](https://www.github.com/rust-lang/rust/issues/145620) * `135761`: [Dial down detail of B-tree description](https://www.github.com/rust-lang/rust/issues/135761) * `145480`: [Remove chunk size from each chunk in `ChunkedBitSet`.](https://www.github.com/rust-lang/rust/issues/145480) * `145262`: [Make sure to treat only param where clauses as inherent](https://www.github.com/rust-lang/rust/issues/145262) * `137229`: [Add support for macro expansion in rustdoc source code pages](https://www.github.com/rust-lang/rust/issues/137229) * `145812`: [rustdoc: render attributes in Field and Variants sections](https://www.github.com/rust-lang/rust/issues/145812) * `145384`: [Add more tests for the parallel rustc](https://www.github.com/rust-lang/rust/issues/145384) * `137729`: [Port `#[crate_name]` to the new attribute parsing infrastructure](https://www.github.com/rust-lang/rust/issues/137729) * `145805`: [Rollup of 5 pull requests](https://www.github.com/rust-lang/rust/issues/145805) * `145799`: [std/src/lib.rs: mention "search button" instead of "search bar"](https://www.github.com/rust-lang/rust/issues/145799) * `145798`: [Use unnamed lifetime spans as primary spans for `MISMATCHED_LIFETIME_SYNTAXES`](https://www.github.com/rust-lang/rust/issues/145798) * `145554`: [rustc-dev-guide subtree update](https://www.github.com/rust-lang/rust/issues/145554) * `145307`: [Fix `LazyLock` poison panic message](https://www.github.com/rust-lang/rust/issues/145307) * `144531`: [Add lint against integer to pointer transmutes](https://www.github.com/rust-lang/rust/issues/144531) * `145796`: [Rollup of 14 pull requests](https://www.github.com/rust-lang/rust/issues/145796) * `145791`: [Fix ICE when validating transmuting ZST to inhabited enum](https://www.github.com/rust-lang/rust/issues/145791) * `145787`: [citool: cleanup `mismatched_lifetime_syntaxes` warnings](https://www.github.com/rust-lang/rust/issues/145787) * `145782`: [rustdoc: make attributes render consistently](https://www.github.com/rust-lang/rust/issues/145782) * `145781`: [Remove profile section from Clippy](https://www.github.com/rust-lang/rust/issues/145781) * `145774`: [Remove default opts from config](https://www.github.com/rust-lang/rust/issues/145774) * `145744`: [miri: also detect aliasing of in-place argument and return place](https://www.github.com/rust-lang/rust/issues/145744) * `145729`: [Remove two duplicated crates](https://www.github.com/rust-lang/rust/issues/145729) * `145713`: [next-solver: fix `feature(const_trait_impl)` bootstrap](https://www.github.com/rust-lang/rust/issues/145713) * `145670`: [port `sanitize` attribute to the new parsing infrastructure](https://www.github.com/rust-lang/rust/issues/145670) * `145540`: [interpret/allocation: get_range on ProvenanceMap](https://www.github.com/rust-lang/rust/issues/145540) * `145515`: [Optimize `char::encode_utf8`](https://www.github.com/rust-lang/rust/issues/145515) * `145234`: [match exhaustiveness diagnostics: show a trailing comma on singleton tuple consructors in witness patterns (and clean up a little)](https://www.github.com/rust-lang/rust/issues/145234) * `144452`: [std/sys/fd: Relax `READ_LIMIT` on Darwin](https://www.github.com/rust-lang/rust/issues/144452) * `143898`: [opt-dist: rebuild rustc when doing static LLVM builds](https://www.github.com/rust-lang/rust/issues/143898) * `145706`: [change HIR typeck region uniquification handling approach](https://www.github.com/rust-lang/rust/issues/145706) * `145567`: [Weekly `cargo update` (with libc pin)](https://www.github.com/rust-lang/rust/issues/145567) * `145771`: [Update cargo submodule](https://www.github.com/rust-lang/rust/issues/145771) Co-authored-by: Zalathar <Zalathar@users.noreply.github.com> Co-authored-by: Pavel Grigorenko <GrigorenkoPV@ya.ru> Co-authored-by: Nilotpal Gupta <nilotpalgupta0701@gmail.com> Co-authored-by: Jana Dönszelmann <jana@donsz.nl> Co-authored-by: bors <bors@rust-lang.org> Co-authored-by: winstonallo <arthurbiedchar@gmail.com> Co-authored-by: Jonathan Brouwer <jonathantbrouwer@gmail.com> Co-authored-by: Urgau <urgau@numericable.fr> Co-authored-by: Oneirical <manchot@videotron.ca> Co-authored-by: Waffle Lapkin <waffle.lapkin@gmail.com> Co-authored-by: Miguel Ojeda <ojeda@kernel.org> Co-authored-by: Nicholas Nethercote <n.nethercote@gmail.com> Co-authored-by: Jacob Pratt <jacob@jhpratt.dev> Co-authored-by: The rustc-josh-sync Cronjob Bot <github-actions@github.com> Co-authored-by: Robert Bastian <robertbastian@unicode.org>
bors-ferrocene bot
added a commit
that referenced
this pull request
Sep 4, 2025
1724: Automated pull from upstream `master` r=pvdrz a=ferrocene-automations[bot] :warning: **The automation reported these warnings:** :warning: * There are merge conflicts in this PR. Merge conflict markers have been committed. * Couldn't regenerate the `x.py` completions. Please run `./x run generate-completions` after fixing the merge conflicts. This PR pulls the following changes from the upstream repository: * `145951`: [cleanup and cache proof tree building](https://www.github.com/rust-lang/rust/issues/145951) * `146113`: [Revert introduction of `[workspace.dependencies]`.](https://www.github.com/rust-lang/rust/issues/146113) * `146059`: [explicitly end the lifetime of `va_list`](https://www.github.com/rust-lang/rust/issues/146059) * `145925`: [`-Znext-solver`: support non-defining uses in closures](https://www.github.com/rust-lang/rust/issues/145925) * `145721`: [Update to ar_archive_writer 0.5](https://www.github.com/rust-lang/rust/issues/145721) * `144783`: [fix `#[loop_match]` on diverging loop](https://www.github.com/rust-lang/rust/issues/144783) * `143290`: [pub async fn impl is monomorphized when func itself is monomorphized](https://www.github.com/rust-lang/rust/issues/143290) * `146077`: [Rollup of 5 pull requests](https://www.github.com/rust-lang/rust/issues/146077) * `146068`: [compiletest: Capture panic messages via a custom panic hook](https://www.github.com/rust-lang/rust/issues/146068) * `146060`: [fixup nix dev shell again](https://www.github.com/rust-lang/rust/issues/146060) * `145754`: [fix(lexer): Don't require frontmatters to be escaped with indented fences](https://www.github.com/rust-lang/rust/issues/145754) * `145643`: [coverage: Build an "expansion tree" and use it to unexpand raw spans](https://www.github.com/rust-lang/rust/issues/145643) * `145468`: [dedup recip, powi, to_degrees, and to_radians float tests](https://www.github.com/rust-lang/rust/issues/145468) * `146072`: [Rollup of 6 pull requests](https://www.github.com/rust-lang/rust/issues/146072) * `146051`: [Change std f32 test to pass under Miri](https://www.github.com/rust-lang/rust/issues/146051) * `146046`: [Suggest method name with maybe ty mismatch](https://www.github.com/rust-lang/rust/issues/146046) * `146042`: [Detect negative literal inferred to unsigned integer](https://www.github.com/rust-lang/rust/issues/146042) * `146004`: [resolve: Refactor `struct ExternPreludeEntry`](https://www.github.com/rust-lang/rust/issues/146004) * `145968`: [Add `Bound::copied`](https://www.github.com/rust-lang/rust/issues/145968) * `145421`: [`dump_mir` cleanups](https://www.github.com/rust-lang/rust/issues/145421) * `145663`: [Enforce in bootstrap that test must have stage at least 1 (except for compiletest)](https://www.github.com/rust-lang/rust/issues/145663) * `146038`: [rustdoc-search: split function inverted index by input/output](https://www.github.com/rust-lang/rust/issues/146038) * `146053`: [std: fix `SplitPaths` regression](https://www.github.com/rust-lang/rust/issues/146053) * `146052`: [Rollup of 4 pull requests](https://www.github.com/rust-lang/rust/issues/146052) * `145931`: [Clarify that align_offset overaligns](https://www.github.com/rust-lang/rust/issues/145931) * `145592`: [Fix format string grammar in docs and improve alignment error message for #144023](https://www.github.com/rust-lang/rust/issues/145592) * `145174`: [Ensure consistent drop for panicking drop in hint::select_unpredictable](https://www.github.com/rust-lang/rust/issues/145174) * `144443`: [Make target pointer width in target json an integer](https://www.github.com/rust-lang/rust/issues/144443) * `146039`: [Use absolute path to llvm-bolt, merge-fdata rather than PATH](https://www.github.com/rust-lang/rust/issues/146039) * `145582`: [Detect missing `if let` or `let-else`](https://www.github.com/rust-lang/rust/issues/145582) * `146043`: [Rollup of 4 pull requests](https://www.github.com/rust-lang/rust/issues/146043) * `146036`: [Use move_file for rename in tracing](https://www.github.com/rust-lang/rust/issues/146036) * `146035`: [Update `browser-ui-test` version to `0.21.3`](https://www.github.com/rust-lang/rust/issues/146035) * `146030`: [Fix `sys::process::windows::tests::test_thread_handle` spurious failure](https://www.github.com/rust-lang/rust/issues/146030) * `144964`: [std: clarify `OpenOptions` error for create without write access](https://www.github.com/rust-lang/rust/issues/144964) * `146029`: [Remove incorrect fixme on deprecation target](https://www.github.com/rust-lang/rust/issues/146029) * `145479`: [Hard-code `char::is_control`](https://www.github.com/rust-lang/rust/issues/145479) * `146026`: [Rollup of 5 pull requests](https://www.github.com/rust-lang/rust/issues/146026) * `145969`: [Add Duration::from_nanos_u128](https://www.github.com/rust-lang/rust/issues/145969) * `145776`: [Optimize `.ilog({2,10})` to `.ilog{2,10}()`](https://www.github.com/rust-lang/rust/issues/145776) * `145465`: [Stabilize `array_repeat` feature](https://www.github.com/rust-lang/rust/issues/145465) * `144651`: [Implementation: `#[feature(nonpoison_condvar)]`](https://www.github.com/rust-lang/rust/issues/144651) * `143462`: [fix(lib-std-fs): handle `usize` overflow in `read*`](https://www.github.com/rust-lang/rust/issues/143462) * `123319`: [Add managarm as a tier 3 target](https://www.github.com/rust-lang/rust/issues/123319) * `144494`: [Partial-stabilize the basics from `bigint_helper_methods`](https://www.github.com/rust-lang/rust/issues/144494) * `146023`: [Rollup of 9 pull requests](https://www.github.com/rust-lang/rust/issues/146023) * `146022`: [compiler-builtins subtree update](https://www.github.com/rust-lang/rust/issues/146022) * `146017`: [Mark pipe2 supported in Android](https://www.github.com/rust-lang/rust/issues/146017) * `146000`: [Improve librustdoc error when a file creation/modification failed](https://www.github.com/rust-lang/rust/issues/146000) * `145991`: [std: haiku: fix `B_FIND_PATH_IMAGE_PATH`](https://www.github.com/rust-lang/rust/issues/145991) * `145990`: [`AutoDeref::final_ty` is already resolved](https://www.github.com/rust-lang/rust/issues/145990) * `145967`: [compiler: Include span of too huge enum with `-Cdebuginfo=2`](https://www.github.com/rust-lang/rust/issues/145967) * `145756`: [str: Stabilize `round_char_boundary` feature](https://www.github.com/rust-lang/rust/issues/145756) * `145467`: [Stabilize `strict_provenance_atomic_ptr` feature](https://www.github.com/rust-lang/rust/issues/145467) * `145242`: [std: use a TAIT to define `SplitPaths` on UNIX](https://www.github.com/rust-lang/rust/issues/145242) * `145997`: [Rollup of 4 pull requests](https://www.github.com/rust-lang/rust/issues/145997) * `145984`: [`TokenStream` cleanups](https://www.github.com/rust-lang/rust/issues/145984) * `145982`: [compiletest: Reduce the number of `println!` calls that don't have access to `TestCx`](https://www.github.com/rust-lang/rust/issues/145982) * `145676`: [Rehome 30 `tests/ui/issues/` tests to other subdirectories under `tests/ui/` [#2 of Batch #2]](https://www.github.com/rust-lang/rust/issues/145676) * `145675`: [Rehome 30 `tests/ui/issues/` tests to other subdirectories under `tests/ui/` [#1 of Batch #2]](https://www.github.com/rust-lang/rust/issues/145675) * `145902`: [Avoid more rustc rebuilds in cross-compilation scenarios](https://www.github.com/rust-lang/rust/issues/145902) * `145978`: [Rollup of 9 pull requests](https://www.github.com/rust-lang/rust/issues/145978) * `145977`: [tests: Ignore basic-stepping.rs on riscv64](https://www.github.com/rust-lang/rust/issues/145977) * `145972`: [fix `core::marker::Destruct` doc](https://www.github.com/rust-lang/rust/issues/145972) * `145947`: [Add more to the `[workspace.dependencies]` section in the top-level `Cargo.toml`](https://www.github.com/rust-lang/rust/issues/145947) * `145884`: [Test `instrument-mcount` codegen](https://www.github.com/rust-lang/rust/issues/145884) * `145793`: [std library: use execinfo library also on NetBSD.](https://www.github.com/rust-lang/rust/issues/145793) * `145387`: [Remove TmpLayout in layout_of_enum](https://www.github.com/rust-lang/rust/issues/145387) * `144354`: [fix(std): Fix undefined reference to __my_thread_exit on QNX 8.0](https://www.github.com/rust-lang/rust/issues/144354) * `144275`: [implement Sum and Product for Saturating(u*)](https://www.github.com/rust-lang/rust/issues/144275) * `143713`: [Add a mailmap entry for gnzlbg](https://www.github.com/rust-lang/rust/issues/143713) * `145377`: [Switch next solver to use a specific associated type for trait def id](https://www.github.com/rust-lang/rust/issues/145377) * `145970`: [Rollup of 6 pull requests](https://www.github.com/rust-lang/rust/issues/145970) * `145965`: [Move exporting of profiler and sanitizer symbols to the LLVM backend](https://www.github.com/rust-lang/rust/issues/145965) * `145937`: [add doc-hidden to exports in attribute prelude](https://www.github.com/rust-lang/rust/issues/145937) * `145920`: [bootstrap: Explicitly mark the end of a failed test's captured output](https://www.github.com/rust-lang/rust/issues/145920) * `145853`: [Improve error messages around invalid literals in attribute arguments](https://www.github.com/rust-lang/rust/issues/145853) * `145368`: [CFI: Make `lto` and `linker-plugin-lto` work the same for `compiler_builtins`](https://www.github.com/rust-lang/rust/issues/145368) * `142472`: [Add new `doc(attribute = "...")` attribute](https://www.github.com/rust-lang/rust/issues/142472) * `145807`: [When determining if a trait has no entries for the purposes of omitting vptrs from subtrait vtables, consider its transitive supertraits' entries, instead of just its own entries.](https://www.github.com/rust-lang/rust/issues/145807) * `145958`: [Rollup of 9 pull requests](https://www.github.com/rust-lang/rust/issues/145958) * `145953`: [Update `icu_list` to 2.0](https://www.github.com/rust-lang/rust/issues/145953) * `145941`: [Disable `integer_to_ptr_transmutes` suggestion for unsized types](https://www.github.com/rust-lang/rust/issues/145941) * `145930`: [`const`ify (the unstable) `str::as_str`](https://www.github.com/rust-lang/rust/issues/145930) * `145928`: [Rename `Location::file_with_nul` to `file_as_c_str`](https://www.github.com/rust-lang/rust/issues/145928) * `145926`: [compiletest: Remove several remnants of the old libtest-based executor](https://www.github.com/rust-lang/rust/issues/145926) * `145913`: [Add spin_loop hint for LoongArch](https://www.github.com/rust-lang/rust/issues/145913) * `144864`: [No source fixes](https://www.github.com/rust-lang/rust/issues/144864) * `143193`: [Port `#[link]` to the new attribute parsing infrastructure ](https://www.github.com/rust-lang/rust/issues/143193) * `142727`: [wasm: rm static mut](https://www.github.com/rust-lang/rust/issues/142727) * `145891`: [Update to LLVM 21.1.0](https://www.github.com/rust-lang/rust/issues/145891) * `145949`: [Rollup of 5 pull requests](https://www.github.com/rust-lang/rust/issues/145949) * `145946`: [Remove unnecessary `[dependencies.*]` entries.](https://www.github.com/rust-lang/rust/issues/145946) * `145894`: [Ensure the coordinator thread terminates before its channels drop](https://www.github.com/rust-lang/rust/issues/145894) * `145826`: [Use AcceptContext in AttribueParser::check_target](https://www.github.com/rust-lang/rust/issues/145826) * `145746`: [Fix STD build failing for target_os = "espidf"](https://www.github.com/rust-lang/rust/issues/145746) * `145382`: [Add assembly test for `-Zreg-struct-return` option](https://www.github.com/rust-lang/rust/issues/145382) * `145877`: [Use captures(address) instead of captures(none) for indirect args](https://www.github.com/rust-lang/rust/issues/145877) * `145851`: [rustdoc: a few micro-optimizations targeted at build_impl](https://www.github.com/rust-lang/rust/issues/145851) * `145909`: [Update cargo submodule](https://www.github.com/rust-lang/rust/issues/145909) * `145923`: [Rollup of 6 pull requests](https://www.github.com/rust-lang/rust/issues/145923) * `145905`: [Stop calling unwrap when format foreign has trailing dollar](https://www.github.com/rust-lang/rust/issues/145905) * `145885`: [Inherit TCC in debuginfo tests on macOS](https://www.github.com/rust-lang/rust/issues/145885) * `145740`: [Introduce a `[workspace.dependencies`] section in the top-level `Cargo.toml`](https://www.github.com/rust-lang/rust/issues/145740) * `145625`: [improve float to_degrees/to_radians rounding comments and impl](https://www.github.com/rust-lang/rust/issues/145625) * `145562`: [Simplify macro generating ToString implementations for `&…&str`](https://www.github.com/rust-lang/rust/issues/145562) * `144274`: [add Option::reduce](https://www.github.com/rust-lang/rust/issues/144274) * `140737`: [Region inference: Use outlives-static constraints in constraint search](https://www.github.com/rust-lang/rust/issues/140737) * `145916`: [Rollup of 6 pull requests](https://www.github.com/rust-lang/rust/issues/145916) * `145904`: [Move `riscv64-gc-unknown-linux-musl` from Tier 2 with Host tools to Tier 2](https://www.github.com/rust-lang/rust/issues/145904) * `145335`: [Move WTF-8 code from std into core and alloc](https://www.github.com/rust-lang/rust/issues/145335) * `145290`: [Improve std::fs::read_dir docs](https://www.github.com/rust-lang/rust/issues/145290) * `145078`: [Fix wrong cache line size of riscv64](https://www.github.com/rust-lang/rust/issues/145078) * `143341`: [Mention that casting to *const () is a way to roundtrip with from_raw_parts](https://www.github.com/rust-lang/rust/issues/143341) * `142215`: [Use -Zmir-opt-level=0 in tests for MIR building](https://www.github.com/rust-lang/rust/issues/142215) * `144841`: [Access less HIR attributes from typeck](https://www.github.com/rust-lang/rust/issues/144841) * `145906`: [Rollup of 9 pull requests](https://www.github.com/rust-lang/rust/issues/145906) * `145901`: [Fix typo in comment of library/alloc/src/raw_vec/mod.rs](https://www.github.com/rust-lang/rust/issues/145901) * `145892`: [add a flag to codegen fn attrs for foreign items](https://www.github.com/rust-lang/rust/issues/145892) * `145888`: [platform-support: Fix LoongArch32 host column](https://www.github.com/rust-lang/rust/issues/145888) * `145887`: [bootstrap: Don't panic if codegen-backends is set to empty](https://www.github.com/rust-lang/rust/issues/145887) * `145876`: [Enable building/disting standard library in stage 0](https://www.github.com/rust-lang/rust/issues/145876) * `145840`: [rustc_codegen_ssa: More comprehensive RISC-V ELF flags](https://www.github.com/rust-lang/rust/issues/145840) * `145792`: [Use attribute name in message for "outer attr used as inner attr" errors](https://www.github.com/rust-lang/rust/issues/145792) * `145790`: [Improve dist for gnullvm hosts](https://www.github.com/rust-lang/rust/issues/145790) * `144499`: [ci: Begin running ui tests with `rust.debuginfo-level-tests=1`](https://www.github.com/rust-lang/rust/issues/144499) * `145890`: [GCC backend subtree update](https://www.github.com/rust-lang/rust/issues/145890) * `145886`: [Rollup of 11 pull requests](https://www.github.com/rust-lang/rust/issues/145886) * `145875`: [Make bootstrap command caching opt-in](https://www.github.com/rust-lang/rust/issues/145875) * `145867`: [cg_llvm: Assert that LLVM range-attribute values don't exceed 128 bits](https://www.github.com/rust-lang/rust/issues/145867) * `145863`: [formatting_options: Make all methods `const`](https://www.github.com/rust-lang/rust/issues/145863) * `145861`: [bootstrap: vendor `clippy_test_deps` too](https://www.github.com/rust-lang/rust/issues/145861) * `145841`: [Always build miri for the host in `x run miri`](https://www.github.com/rust-lang/rust/issues/145841) * `145615`: [Fix doc of `std::os::windows::io::BorrowedSocket::borrow_raw`](https://www.github.com/rust-lang/rust/issues/145615) * `145596`: [Losslessly optimize PNG files](https://www.github.com/rust-lang/rust/issues/145596) * `145481`: [Add parentheses for closure when suggesting calling closure](https://www.github.com/rust-lang/rust/issues/145481) * `145076`: [Add new Tier-3 target: riscv64a23-unknown-linux-gnu](https://www.github.com/rust-lang/rust/issues/145076) * `144551`: [Add aarch64_be-unknown-linux-musl target](https://www.github.com/rust-lang/rust/issues/144551) * `144373`: [remove deprecated Error::description in impls](https://www.github.com/rust-lang/rust/issues/144373) * `145874`: [Remove unnecessary stage2 host builds from cross-compiled dist builders](https://www.github.com/rust-lang/rust/issues/145874) * `145871`: [Rollup of 12 pull requests](https://www.github.com/rust-lang/rust/issues/145871) * `145858`: [Update wasm-component-ld dependency](https://www.github.com/rust-lang/rust/issues/145858) * `145856`: [Update books](https://www.github.com/rust-lang/rust/issues/145856) * `145847`: [Don't show warnings from xcrun with -Zverbose-internals](https://www.github.com/rust-lang/rust/issues/145847) * `145845`: [Make `x test distcheck` self-contained](https://www.github.com/rust-lang/rust/issues/145845) * `145821`: [compiletest: if a compiler fails, show its output](https://www.github.com/rust-lang/rust/issues/145821) * `145815`: [Wait for DPkg frontend lock when trying to remove packages](https://www.github.com/rust-lang/rust/issues/145815) * `145814`: [Handle unwinding fatal errors in codegen workers](https://www.github.com/rust-lang/rust/issues/145814) * `145811`: [Fix some minor issues in comments](https://www.github.com/rust-lang/rust/issues/145811) * `145766`: [test(rustfmt): Verify frontmatter is preserved](https://www.github.com/rust-lang/rust/issues/145766) * `145535`: [make rustdoc::invalid_html_tags more robust](https://www.github.com/rust-lang/rust/issues/145535) * `144885`: [Implement some more checks in `ptr_guaranteed_cmp`. ](https://www.github.com/rust-lang/rust/issues/144885) * `143689`: [Allow linking a prebuilt optimized compiler-rt builtins library](https://www.github.com/rust-lang/rust/issues/143689) * `145848`: [Slightly optimize reading of source files](https://www.github.com/rust-lang/rust/issues/145848) * `145711`: [Support non-defining uses in HIR typeck](https://www.github.com/rust-lang/rust/issues/145711) * `145472`: [Enforce in bootstrap that dist and install must have stage at least 1](https://www.github.com/rust-lang/rust/issues/145472) * `145844`: [Rollup of 10 pull requests](https://www.github.com/rust-lang/rust/issues/145844) * `145842`: [rustc-dev-guide subtree update](https://www.github.com/rust-lang/rust/issues/145842) * `145836`: [Remove outdated bug comments](https://www.github.com/rust-lang/rust/issues/145836) * `145830`: [Remove the lifetime from `ExpTokenPair`/`SeqSep`.](https://www.github.com/rust-lang/rust/issues/145830) * `145828`: [Update `bitflags` to 2.9.3.](https://www.github.com/rust-lang/rust/issues/145828) * `145820`: [raw-dylib-elf: set correct `DT_VERDEFNUM`](https://www.github.com/rust-lang/rust/issues/145820) * `145817`: [cg_llvm: Replace the `llvm::Bool` typedef with a proper newtype](https://www.github.com/rust-lang/rust/issues/145817) * `145794`: [bootstrap.py: Improve CPU detection on NetBSD](https://www.github.com/rust-lang/rust/issues/145794) * `145788`: [Fix attribute target checking for macro calls](https://www.github.com/rust-lang/rust/issues/145788) * `145620`: [Account for impossible bounds making seemingly unsatisfyable dyn-to-dyn casts](https://www.github.com/rust-lang/rust/issues/145620) * `135761`: [Dial down detail of B-tree description](https://www.github.com/rust-lang/rust/issues/135761) * `145480`: [Remove chunk size from each chunk in `ChunkedBitSet`.](https://www.github.com/rust-lang/rust/issues/145480) * `145262`: [Make sure to treat only param where clauses as inherent](https://www.github.com/rust-lang/rust/issues/145262) * `137229`: [Add support for macro expansion in rustdoc source code pages](https://www.github.com/rust-lang/rust/issues/137229) * `145812`: [rustdoc: render attributes in Field and Variants sections](https://www.github.com/rust-lang/rust/issues/145812) * `145384`: [Add more tests for the parallel rustc](https://www.github.com/rust-lang/rust/issues/145384) * `137729`: [Port `#[crate_name]` to the new attribute parsing infrastructure](https://www.github.com/rust-lang/rust/issues/137729) * `145805`: [Rollup of 5 pull requests](https://www.github.com/rust-lang/rust/issues/145805) * `145799`: [std/src/lib.rs: mention "search button" instead of "search bar"](https://www.github.com/rust-lang/rust/issues/145799) * `145798`: [Use unnamed lifetime spans as primary spans for `MISMATCHED_LIFETIME_SYNTAXES`](https://www.github.com/rust-lang/rust/issues/145798) * `145554`: [rustc-dev-guide subtree update](https://www.github.com/rust-lang/rust/issues/145554) * `145307`: [Fix `LazyLock` poison panic message](https://www.github.com/rust-lang/rust/issues/145307) * `144531`: [Add lint against integer to pointer transmutes](https://www.github.com/rust-lang/rust/issues/144531) * `145796`: [Rollup of 14 pull requests](https://www.github.com/rust-lang/rust/issues/145796) * `145791`: [Fix ICE when validating transmuting ZST to inhabited enum](https://www.github.com/rust-lang/rust/issues/145791) * `145787`: [citool: cleanup `mismatched_lifetime_syntaxes` warnings](https://www.github.com/rust-lang/rust/issues/145787) * `145782`: [rustdoc: make attributes render consistently](https://www.github.com/rust-lang/rust/issues/145782) * `145781`: [Remove profile section from Clippy](https://www.github.com/rust-lang/rust/issues/145781) * `145774`: [Remove default opts from config](https://www.github.com/rust-lang/rust/issues/145774) * `145744`: [miri: also detect aliasing of in-place argument and return place](https://www.github.com/rust-lang/rust/issues/145744) * `145729`: [Remove two duplicated crates](https://www.github.com/rust-lang/rust/issues/145729) * `145713`: [next-solver: fix `feature(const_trait_impl)` bootstrap](https://www.github.com/rust-lang/rust/issues/145713) * `145670`: [port `sanitize` attribute to the new parsing infrastructure](https://www.github.com/rust-lang/rust/issues/145670) * `145540`: [interpret/allocation: get_range on ProvenanceMap](https://www.github.com/rust-lang/rust/issues/145540) * `145515`: [Optimize `char::encode_utf8`](https://www.github.com/rust-lang/rust/issues/145515) * `145234`: [match exhaustiveness diagnostics: show a trailing comma on singleton tuple consructors in witness patterns (and clean up a little)](https://www.github.com/rust-lang/rust/issues/145234) * `144452`: [std/sys/fd: Relax `READ_LIMIT` on Darwin](https://www.github.com/rust-lang/rust/issues/144452) * `143898`: [opt-dist: rebuild rustc when doing static LLVM builds](https://www.github.com/rust-lang/rust/issues/143898) * `145706`: [change HIR typeck region uniquification handling approach](https://www.github.com/rust-lang/rust/issues/145706) * `145567`: [Weekly `cargo update` (with libc pin)](https://www.github.com/rust-lang/rust/issues/145567) * `145771`: [Update cargo submodule](https://www.github.com/rust-lang/rust/issues/145771) Co-authored-by: Zalathar <Zalathar@users.noreply.github.com> Co-authored-by: Pavel Grigorenko <GrigorenkoPV@ya.ru> Co-authored-by: Nilotpal Gupta <nilotpalgupta0701@gmail.com> Co-authored-by: Jana Dönszelmann <jana@donsz.nl> Co-authored-by: bors <bors@rust-lang.org> Co-authored-by: winstonallo <arthurbiedchar@gmail.com> Co-authored-by: Jonathan Brouwer <jonathantbrouwer@gmail.com> Co-authored-by: Urgau <urgau@numericable.fr> Co-authored-by: Oneirical <manchot@videotron.ca> Co-authored-by: Waffle Lapkin <waffle.lapkin@gmail.com> Co-authored-by: Miguel Ojeda <ojeda@kernel.org> Co-authored-by: Nicholas Nethercote <n.nethercote@gmail.com> Co-authored-by: Jacob Pratt <jacob@jhpratt.dev> Co-authored-by: The rustc-josh-sync Cronjob Bot <github-actions@github.com> Co-authored-by: Robert Bastian <robertbastian@unicode.org>
Urhengulas
added a commit
that referenced
this pull request
Sep 23, 2025
Update rustdoc-types v0.39 and some refactorings
jyn514
added a commit
that referenced
this pull request
Oct 3, 2025
Report missing lines specifically
ferrocene-automations bot
pushed a commit
that referenced
this pull request
Jan 14, 2026
This resulted in the following error for me:
error[E0464]: multiple candidates for `rlib` dependency `rustc_literal_escaper` found
--> clippy_dev/src/lib.rs:25:1
|
25 | extern crate rustc_literal_escaper;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= note: candidate #1: /home/pkrones/.rustup/toolchains/nightly-2025-12-25-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_literal_escaper-4f30574e01c3dad1.rlib
= note: candidate #2: /home/pkrones/.rustup/toolchains/nightly-2025-12-25-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_literal_escaper-c8a0e29ad1040cee.rmeta
Other tools in the Rust repo also take that as an explicit dependency, like rust-analyzer or lint-docs.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR runs CI on the squashed
ferrocene/ferrocenerepo, to ensure it actually still works.