Skip to content

Test CI after the squash#1

Merged
bors-ferrocene[bot] merged 3 commits intomainfrom
pa-try-ci
Oct 3, 2023
Merged

Test CI after the squash#1
bors-ferrocene[bot] merged 3 commits intomainfrom
pa-try-ci

Conversation

@emilyalbini
Copy link
Contributor

This PR runs CI on the squashed ferrocene/ferrocene repo, to ensure it actually still works.

@emilyalbini emilyalbini force-pushed the pa-try-ci branch 2 times, most recently from af881fe to 440496d Compare October 3, 2023 12:12
@emilyalbini emilyalbini force-pushed the pa-try-ci branch 2 times, most recently from 2baae57 to ed816c2 Compare October 3, 2023 12:34
@emilyalbini
Copy link
Contributor Author

Commit job passed, let's try a full build now.

bors try

bors-ferrocene bot added a commit that referenced this pull request Oct 3, 2023
@emilyalbini
Copy link
Contributor Author

bors try

@bors-ferrocene
Copy link
Contributor

bors-ferrocene bot commented Oct 3, 2023

try

Already running a review

@emilyalbini
Copy link
Contributor Author

bors cancel try

@bors-ferrocene
Copy link
Contributor

bors-ferrocene bot commented Oct 3, 2023

try

Build failed:

@emilyalbini
Copy link
Contributor Author

bors try

bors-ferrocene bot added a commit that referenced this pull request Oct 3, 2023
@bors-ferrocene
Copy link
Contributor

bors-ferrocene bot commented Oct 3, 2023

try

Build 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.
@emilyalbini
Copy link
Contributor Author

bors try

bors-ferrocene bot added a commit that referenced this pull request Oct 3, 2023
@bors-ferrocene
Copy link
Contributor

bors-ferrocene bot commented Oct 3, 2023

try

Build failed:

@emilyalbini
Copy link
Contributor Author

bors merge

@bors-ferrocene
Copy link
Contributor

bors-ferrocene bot commented Oct 3, 2023

Build succeeded:

  • full

@bors-ferrocene bors-ferrocene bot merged commit 1f72838 into main Oct 3, 2023
@bors-ferrocene bors-ferrocene bot deleted the pa-try-ci branch October 3, 2023 14:52
@github-actions github-actions bot added the backport:maybe PR candidate for backport label Oct 3, 2023
bors-ferrocene bot added a commit that referenced this pull request Oct 6, 2023
31: Test and fix CI for the 1.74 branch r=pietroalbini a=pietroalbini

I just squashed the 1.74 branch in `release/1.74`, this is the equivalent of #1 and #30 for it.

Co-authored-by: Pietro Albini <pietro.albini@ferrous-systems.com>
bors-ferrocene bot added a commit that referenced this pull request Oct 9, 2023
36: Test and fix CI for the 1.73 branch r=tshepang a=pietroalbini

I just squashed the 1.73 branch in `release/1.73`, this is the equivalent of #1 and #30 for it.

Co-authored-by: Pietro Albini <pietro.albini@ferrous-systems.com>
bors-ferrocene bot added a commit that referenced this pull request Oct 24, 2023
36: Test and fix CI for the 1.73 branch r=pietroalbini a=pietroalbini

I just squashed the 1.73 branch in `release/1.73`, this is the equivalent of #1 and #30 for it.

Co-authored-by: Pietro Albini <pietro.albini@ferrous-systems.com>
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`
@emilyalbini emilyalbini removed the backport:maybe PR candidate for backport label Jan 24, 2024
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  -
```

![image](https://github.com/ferrocene/ferrocene/assets/130903/0b2ab3ac-c775-43d3-b4c9-066d21ced5d1)
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 2, 2025
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>
Urhengulas pushed a commit that referenced this pull request Aug 1, 2025
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
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.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants