Skip to content

Conversation

bjorn3
Copy link
Member

@bjorn3 bjorn3 commented Sep 18, 2025

I don't think we use them anywhere inside stdarch. And not supporting them will make some future changes I plan to make to unadjusted calls a bit easier. I'm opening this as a separate PR now to make it easier to revert if it turns out stdarch does need it after all.

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

rustbot commented Sep 18, 2025

r? @nnethercote

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

Use r? to explicitly pick a reviewer

@folkertdev
Copy link
Contributor

Would this use a Pair?

#[repr(C, packed)]
struct PackedTuple<T, U> {
x: T,
y: U,
}

@bjorn3
Copy link
Member Author

bjorn3 commented Sep 18, 2025

That uses PassMode::Memory due to both the repr(packed) and the fact that #[repr(simd)] types are not eligible for being part of a PassMode::Pair: https://rust.godbolt.org/z/or71Mf5v9

@rust-log-analyzer
Copy link
Collaborator

The job aarch64-gnu-llvm-20-1 failed! Check out the build log: (web) (plain enhanced) (plain)

Click to see the possible cause of the failure (guessed by this bot)
  libclang-common-17-dev libclang-common-18-dev libclang-rt-16-dev
  libclang-rt-17-dev libclang-rt-18-dev libclang1-16t64 libclang1-17t64
  libcolord2 libcups2t64 libdatrie1 libdav1d7 libdbusmenu-glib4
  libdbusmenu-gtk3-4 libdconf1 libde265-0 libdeflate0 libenchant-2-2 libepoxy0
  libfbclient2 libffi-dev libfftw3-double3 libfontenc1 libgav1-1 libgc1 libgd3
  libgdk-pixbuf-2.0-0 libgdk-pixbuf2.0-bin libgdk-pixbuf2.0-common libglvnd0
  libgraphite2-3 libgtk-3-0t64 libgtk-3-bin libgtk-3-common libharfbuzz0b
  libhashkit2t64 libheif-plugin-aomdec libheif-plugin-libde265 libheif1
  libhunspell-1.7-0 libice6 libicu-dev libimagequant0 libintl-perl
  libintl-xs-perl libjbig0 libjpeg-turbo8 libjpeg8 liblcms2-2 liblerc4
  liblldb-16t64 liblldb-17t64 liblqr-1-0 liblttng-ust-common1t64
  liblttng-ust-ctl5t64 liblttng-ust1t64 libmagickcore-6.q16-7t64
  libmagickwand-6.q16-7t64 libmemcached11t64 libmodule-find-perl
  libmodule-scandeps-perl libncurses-dev libnorm1t64 libobjc-13-dev libobjc4
  libogg0 libopenjp2-7 libpango-1.0-0 libpangocairo-1.0-0 libpangoft2-1.0-0
  libpcre2-16-0 libpcre2-32-0 libpcre2-dev libpcre2-posix3 libpfm4
  libpgm-5.3-0t64 libpixman-1-0 libproc-processtable-perl libqdbm14t64
  librabbitmq4 librav1e0 libraw23t64 librsvg2-2 librsvg2-common libsharpyuv0
  libsm6 libsnappy1v5 libsort-naturally-perl libsvtav1enc1d1 libsybdb5 libtdb1
  libterm-readkey-perl libthai-data libthai0 libtidy5deb1 libtiff6 libtommath1
  libvorbis0a libvorbisfile3 libvulkan1 libwayland-client0 libwayland-cursor0
  libwayland-egl1 libwebp7 libwebpdemux2 libwebpmux3 libxaw7 libxcb-glx0
  libxcb-render0 libxcb-shm0 libxcomposite1 libxcursor1 libxdamage1 libxfixes3
  libxfont2 libxinerama1 libxkbfile1 libxml2-dev libxmu6 libxpm4 libxrandr2
---
Removing libmagickwand-6.q16-7t64:arm64 (8:6.9.12.98+dfsg1-5.2build2) ...
Removing libmagickcore-6.q16-7t64:arm64 (8:6.9.12.98+dfsg1-5.2build2) ...
Removing imagemagick-6-common (8:6.9.12.98+dfsg1-5.2build2) ...
Removing libgd3:arm64 (2.3.3-13+ubuntu24.04.1+deb.sury.org+1) ...
Removing libavif16:arm64 (1.0.4-1ubuntu3) ...
Removing libgav1-1:arm64 (0.18.0-1build3) ...
Removing libabsl20220623t64:arm64 (20220623.1-3.1ubuntu3.2) ...
Removing libaspell15:arm64 (0.60.8.1-1build1) ...
Removing libatspi2.0-0t64:arm64 (2.52.0-1build1) ...
Removing libcups2t64:arm64 (2.4.7-1.2ubuntu7.4) ...
Removing libavahi-client3:arm64 (0.8-13ubuntu6) ...
Removing libavahi-common3:arm64 (0.8-13ubuntu6) ...
---
Removing libimagequant0:arm64 (2.18.0-1build1) ...
Removing libintl-xs-perl (1.33-1build3) ...
Removing libintl-perl (1.33-1build3) ...
Removing libraw23t64:arm64 (0.21.2-2.1ubuntu0.24.04.1) ...
Removing libyuv0:arm64 (0.0~git202401110.af6ac82-1) ...
Removing liblcms2-2:arm64 (2.14-2build1) ...
Removing liblldb-16t64 (1:16.0.6-23ubuntu4) ...
Removing liblldb-17t64 (1:17.0.6-9ubuntu1) ...
Removing liblqr-1-0:arm64 (0.4.2-2.1build2) ...
Removing liblttng-ust1t64:arm64 (2.13.7-1.1ubuntu2) ...
---
Removing libwebpmux3:arm64 (1.3.2-0.4build3) ...
Removing libwebpdemux2:arm64 (1.3.2-0.4build3) ...
Removing libsnappy1v5:arm64 (1.1.10-1build1) ...
Removing libsort-naturally-perl (1.03-4) ...
Removing libsvtav1enc1d1:arm64 (1.7.0+dfsg-2build1) ...
Removing libtdb1:arm64 (1.4.10-1build1) ...
Removing libterm-readkey-perl (2.38-2build4) ...
Removing libthai-data (0.1.29-2build1) ...
Removing libtidy5deb1:arm64 (2:5.6.0-11ubuntu2) ...
Removing libtommath1:arm64 (1.2.1-2build1) ...
---

---- [assembly] tests/assembly-llvm/target-feature-multiple.rs#TWOFLAGS stdout ----
------rustc stdout------------------------------

------rustc stderr------------------------------
warning: unused import: `minicore::*`
##[warning]  --> /checkout/tests/assembly-llvm/target-feature-multiple.rs:24:5
   |
24 | use minicore::*;
   |     ^^^^^^^^^^^
   |
   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default

warning: `extern` block uses type `(u32, i32)`, which is not FFI-safe
##[warning]  --> /checkout/tests/assembly-llvm/target-feature-multiple.rs:29:31
   |
29 |     fn x86_rdrand32_step() -> (u32, i32);
   |                               ^^^^^^^^^^ not FFI-safe
   |
   = help: consider using a struct instead
   = note: tuples have unspecified layout
   = note: `#[warn(improper_ctypes)]` on by default

warning: `extern` block uses type `(u32, i32)`, which is not FFI-safe
##[warning]  --> /checkout/tests/assembly-llvm/target-feature-multiple.rs:31:31
   |
31 |     fn x86_rdseed32_step() -> (u32, i32);
   |                               ^^^^^^^^^^ not FFI-safe
   |
   = help: consider using a struct instead
   = note: tuples have unspecified layout


thread 'rustc' (222914) panicked at compiler/rustc_ty_utils/src/abi.rs:601:17:
Tried to make Pair(ArgAttributes { regular: NoUndef, arg_ext: None, pointee_size: Size(0 bytes), pointee_align: None }, ArgAttributes { regular: NoUndef, arg_ext: None, pointee_size: Size(0 bytes), pointee_align: None }) direct
stack backtrace:
   0: __rustc::rust_begin_unwind
   1: core::panicking::panic_fmt
   2: <rustc_target::callconv::ArgAbi<rustc_middle::ty::Ty>>::make_direct_deprecated
   3: rustc_ty_utils::abi::fn_abi_new_uncached
   4: rustc_ty_utils::abi::fn_abi_of_instance
      [... omitted 3 frames ...]
   5: rustc_monomorphize::mono_checks::abi_check::check_feature_dependent_abi
   6: rustc_monomorphize::mono_checks::check_mono_item
      [... omitted 3 frames ...]
   7: rustc_monomorphize::collector::items_of_instance
      [... omitted 3 frames ...]
   8: rustc_monomorphize::collector::collect_items_rec
   9: rustc_monomorphize::collector::collect_items_root
  10: <rustc_data_structures::sync::parallel::ParallelGuard>::run::<(), rustc_data_structures::sync::parallel::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#1}::{closure#0}>
  11: <alloc::vec::into_iter::IntoIter<rustc_middle::mir::mono::MonoItem> as core::iter::traits::iterator::Iterator>::fold::<(), core::iter::traits::iterator::Iterator::for_each::call<rustc_middle::mir::mono::MonoItem, rustc_data_structures::sync::parallel::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#1}>::{closure#0}>
  12: rustc_data_structures::sync::parallel::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}>
  13: <rustc_session::session::Session>::time::<(), rustc_monomorphize::collector::collect_crate_mono_items::{closure#1}>
  14: rustc_monomorphize::collector::collect_crate_mono_items
  15: rustc_monomorphize::partitioning::collect_and_partition_mono_items
      [... omitted 3 frames ...]
  16: rustc_codegen_ssa::back::symbol_export::exported_generic_symbols_provider_local
      [... omitted 3 frames ...]
  17: <rustc_metadata::rmeta::encoder::EncodeContext>::encode_crate_root
  18: rustc_metadata::rmeta::encoder::encode_metadata::{closure#3}::{closure#0}
  19: <rustc_metadata::rmeta::encoder::encode_metadata::{closure#3} as core::ops::function::FnOnce<(rustc_middle::ty::context::TyCtxt, &std::path::Path)>>::call_once
  20: rustc_metadata::rmeta::encoder::encode_metadata
  21: rustc_metadata::fs::encode_and_write_metadata
  22: rustc_interface::passes::start_codegen
  23: <rustc_interface::queries::Linker>::codegen_and_build_linker
  24: <std::thread::local::LocalKey<core::cell::Cell<*const ()>>>::with::<rustc_middle::ty::context::tls::enter_context<<rustc_middle::ty::context::GlobalCtxt>::enter<rustc_interface::passes::create_and_enter_global_ctxt<core::option::Option<rustc_interface::queries::Linker>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}>::{closure#2}::{closure#0}, core::option::Option<rustc_interface::queries::Linker>>::{closure#1}, core::option::Option<rustc_interface::queries::Linker>>::{closure#0}, core::option::Option<rustc_interface::queries::Linker>>
  25: <rustc_middle::ty::context::TyCtxt>::create_global_ctxt::<core::option::Option<rustc_interface::queries::Linker>, rustc_interface::passes::create_and_enter_global_ctxt<core::option::Option<rustc_interface::queries::Linker>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}>::{closure#2}::{closure#0}>
  26: <rustc_interface::passes::create_and_enter_global_ctxt<core::option::Option<rustc_interface::queries::Linker>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}>::{closure#2} as core::ops::function::FnOnce<(&rustc_session::session::Session, rustc_middle::ty::context::CurrentGcx, alloc::sync::Arc<rustc_data_structures::jobserver::Proxy>, &std::sync::once_lock::OnceLock<rustc_middle::ty::context::GlobalCtxt>, &rustc_data_structures::sync::worker_local::WorkerLocal<rustc_middle::arena::Arena>, &rustc_data_structures::sync::worker_local::WorkerLocal<rustc_hir::Arena>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2})>>::call_once::{shim:vtable#0}
  27: <alloc::boxed::Box<dyn for<'a> core::ops::function::FnOnce<(&'a rustc_session::session::Session, rustc_middle::ty::context::CurrentGcx, alloc::sync::Arc<rustc_data_structures::jobserver::Proxy>, &'a std::sync::once_lock::OnceLock<rustc_middle::ty::context::GlobalCtxt<'a>>, &'a rustc_data_structures::sync::worker_local::WorkerLocal<rustc_middle::arena::Arena<'a>>, &'a rustc_data_structures::sync::worker_local::WorkerLocal<rustc_hir::Arena<'a>>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}), Output = core::option::Option<rustc_interface::queries::Linker>>> as core::ops::function::FnOnce<(&rustc_session::session::Session, rustc_middle::ty::context::CurrentGcx, alloc::sync::Arc<rustc_data_structures::jobserver::Proxy>, &std::sync::once_lock::OnceLock<rustc_middle::ty::context::GlobalCtxt>, &rustc_data_structures::sync::worker_local::WorkerLocal<rustc_middle::arena::Arena>, &rustc_data_structures::sync::worker_local::WorkerLocal<rustc_hir::Arena>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2})>>::call_once
  28: rustc_interface::passes::create_and_enter_global_ctxt::<core::option::Option<rustc_interface::queries::Linker>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}>
  29: <scoped_tls::ScopedKey<rustc_span::SessionGlobals>>::set::<rustc_interface::util::run_in_thread_with_globals<rustc_interface::util::run_in_thread_pool_with_globals<rustc_interface::interface::run_compiler<(), rustc_driver_impl::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}::{closure#0}, ()>
  30: rustc_span::create_session_globals_then::<(), rustc_interface::util::run_in_thread_with_globals<rustc_interface::util::run_in_thread_pool_with_globals<rustc_interface::interface::run_compiler<(), rustc_driver_impl::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}::{closure#0}>
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.

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.92.0-nightly (346939ff3 2025-09-18) running on aarch64-unknown-linux-gnu

note: compiler flags: -Z threads=1 -Z simulate-remapped-rust-src-base=/rustc/FAKE_PREFIX -Z translate-remapped-path-to-local-path=no -Z ignore-directory-in-diagnostics-source-blocks=/cargo -Z ignore-directory-in-diagnostics-source-blocks=/checkout/vendor -C debug-assertions=no -Z codegen-source-order -C prefer-dynamic -C rpath -C debuginfo=0 -C target-feature=+rdrnd -C target-feature=+rdseed -C panic=abort -C force-unwind-tables=yes

query stack during panic:
#0 [fn_abi_of_instance] computing call ABI of `x86_rdrand32_step`
#1 [check_mono_item] monomorphization-time checking
#2 [items_of_instance] collecting items used by `foo`
#3 [collect_and_partition_mono_items] collect_and_partition_mono_items
#4 [exported_generic_symbols] collecting exported generic symbols for crate `0`
end of query stack
warning: 3 warnings emitted


------------------------------------------

error in revision `TWOFLAGS`: compilation failed!
status: exit status: 101
command: env -u RUSTC_LOG_COLOR RUSTC_ICE="0" RUST_BACKTRACE="short" "/checkout/obj/build/aarch64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/tests/assembly-llvm/target-feature-multiple.rs" "-Zthreads=1" "-Zsimulate-remapped-rust-src-base=/rustc/FAKE_PREFIX" "-Ztranslate-remapped-path-to-local-path=no" "-Z" "ignore-directory-in-diagnostics-source-blocks=/cargo" "-Z" "ignore-directory-in-diagnostics-source-blocks=/checkout/vendor" "--sysroot" "/checkout/obj/build/aarch64-unknown-linux-gnu/stage2" "--cfg" "twoflags" "--check-cfg" "cfg(test,FALSE,twoflags,singleflag)" "-O" "-Cdebug-assertions=no" "-Zcodegen-source-order" "--emit" "asm" "-C" "prefer-dynamic" "-o" "/checkout/obj/build/aarch64-unknown-linux-gnu/test/assembly-llvm/target-feature-multiple.TWOFLAGS/target-feature-multiple.s" "-A" "internal_features" "-A" "unused_parens" "-A" "unused_braces" "-Crpath" "-Cdebuginfo=0" "--target=x86_64-unknown-linux-gnu" "-C" "target-feature=+rdrnd" "-C" "target-feature=+rdseed" "-Cpanic=abort" "-Cforce-unwind-tables=yes" "--extern" "minicore=/checkout/obj/build/aarch64-unknown-linux-gnu/test/assembly-llvm/target-feature-multiple.TWOFLAGS/libminicore.rlib"
stdout: none
--- stderr -------------------------------
warning: unused import: `minicore::*`
##[warning]  --> /checkout/tests/assembly-llvm/target-feature-multiple.rs:24:5
   |
24 | use minicore::*;
   |     ^^^^^^^^^^^
   |
   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default

warning: `extern` block uses type `(u32, i32)`, which is not FFI-safe
##[warning]  --> /checkout/tests/assembly-llvm/target-feature-multiple.rs:29:31
   |
29 |     fn x86_rdrand32_step() -> (u32, i32);
   |                               ^^^^^^^^^^ not FFI-safe
   |
   = help: consider using a struct instead
   = note: tuples have unspecified layout
   = note: `#[warn(improper_ctypes)]` on by default

warning: `extern` block uses type `(u32, i32)`, which is not FFI-safe
##[warning]  --> /checkout/tests/assembly-llvm/target-feature-multiple.rs:31:31
   |
31 |     fn x86_rdseed32_step() -> (u32, i32);
   |                               ^^^^^^^^^^ not FFI-safe
   |
   = help: consider using a struct instead
   = note: tuples have unspecified layout


thread 'rustc' (222914) panicked at compiler/rustc_ty_utils/src/abi.rs:601:17:
Tried to make Pair(ArgAttributes { regular: NoUndef, arg_ext: None, pointee_size: Size(0 bytes), pointee_align: None }, ArgAttributes { regular: NoUndef, arg_ext: None, pointee_size: Size(0 bytes), pointee_align: None }) direct
stack backtrace:
   0: __rustc::rust_begin_unwind
   1: core::panicking::panic_fmt
   2: <rustc_target::callconv::ArgAbi<rustc_middle::ty::Ty>>::make_direct_deprecated
   3: rustc_ty_utils::abi::fn_abi_new_uncached
   4: rustc_ty_utils::abi::fn_abi_of_instance
      [... omitted 3 frames ...]
   5: rustc_monomorphize::mono_checks::abi_check::check_feature_dependent_abi
   6: rustc_monomorphize::mono_checks::check_mono_item
      [... omitted 3 frames ...]
   7: rustc_monomorphize::collector::items_of_instance
      [... omitted 3 frames ...]
   8: rustc_monomorphize::collector::collect_items_rec
   9: rustc_monomorphize::collector::collect_items_root
  10: <rustc_data_structures::sync::parallel::ParallelGuard>::run::<(), rustc_data_structures::sync::parallel::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#1}::{closure#0}>
  11: <alloc::vec::into_iter::IntoIter<rustc_middle::mir::mono::MonoItem> as core::iter::traits::iterator::Iterator>::fold::<(), core::iter::traits::iterator::Iterator::for_each::call<rustc_middle::mir::mono::MonoItem, rustc_data_structures::sync::parallel::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#1}>::{closure#0}>
  12: rustc_data_structures::sync::parallel::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}>
  13: <rustc_session::session::Session>::time::<(), rustc_monomorphize::collector::collect_crate_mono_items::{closure#1}>
  14: rustc_monomorphize::collector::collect_crate_mono_items
  15: rustc_monomorphize::partitioning::collect_and_partition_mono_items
      [... omitted 3 frames ...]
  16: rustc_codegen_ssa::back::symbol_export::exported_generic_symbols_provider_local
      [... omitted 3 frames ...]
  17: <rustc_metadata::rmeta::encoder::EncodeContext>::encode_crate_root
  18: rustc_metadata::rmeta::encoder::encode_metadata::{closure#3}::{closure#0}
  19: <rustc_metadata::rmeta::encoder::encode_metadata::{closure#3} as core::ops::function::FnOnce<(rustc_middle::ty::context::TyCtxt, &std::path::Path)>>::call_once
  20: rustc_metadata::rmeta::encoder::encode_metadata
  21: rustc_metadata::fs::encode_and_write_metadata
  22: rustc_interface::passes::start_codegen
  23: <rustc_interface::queries::Linker>::codegen_and_build_linker
  24: <std::thread::local::LocalKey<core::cell::Cell<*const ()>>>::with::<rustc_middle::ty::context::tls::enter_context<<rustc_middle::ty::context::GlobalCtxt>::enter<rustc_interface::passes::create_and_enter_global_ctxt<core::option::Option<rustc_interface::queries::Linker>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}>::{closure#2}::{closure#0}, core::option::Option<rustc_interface::queries::Linker>>::{closure#1}, core::option::Option<rustc_interface::queries::Linker>>::{closure#0}, core::option::Option<rustc_interface::queries::Linker>>
  25: <rustc_middle::ty::context::TyCtxt>::create_global_ctxt::<core::option::Option<rustc_interface::queries::Linker>, rustc_interface::passes::create_and_enter_global_ctxt<core::option::Option<rustc_interface::queries::Linker>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}>::{closure#2}::{closure#0}>
  26: <rustc_interface::passes::create_and_enter_global_ctxt<core::option::Option<rustc_interface::queries::Linker>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}>::{closure#2} as core::ops::function::FnOnce<(&rustc_session::session::Session, rustc_middle::ty::context::CurrentGcx, alloc::sync::Arc<rustc_data_structures::jobserver::Proxy>, &std::sync::once_lock::OnceLock<rustc_middle::ty::context::GlobalCtxt>, &rustc_data_structures::sync::worker_local::WorkerLocal<rustc_middle::arena::Arena>, &rustc_data_structures::sync::worker_local::WorkerLocal<rustc_hir::Arena>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2})>>::call_once::{shim:vtable#0}
  27: <alloc::boxed::Box<dyn for<'a> core::ops::function::FnOnce<(&'a rustc_session::session::Session, rustc_middle::ty::context::CurrentGcx, alloc::sync::Arc<rustc_data_structures::jobserver::Proxy>, &'a std::sync::once_lock::OnceLock<rustc_middle::ty::context::GlobalCtxt<'a>>, &'a rustc_data_structures::sync::worker_local::WorkerLocal<rustc_middle::arena::Arena<'a>>, &'a rustc_data_structures::sync::worker_local::WorkerLocal<rustc_hir::Arena<'a>>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}), Output = core::option::Option<rustc_interface::queries::Linker>>> as core::ops::function::FnOnce<(&rustc_session::session::Session, rustc_middle::ty::context::CurrentGcx, alloc::sync::Arc<rustc_data_structures::jobserver::Proxy>, &std::sync::once_lock::OnceLock<rustc_middle::ty::context::GlobalCtxt>, &rustc_data_structures::sync::worker_local::WorkerLocal<rustc_middle::arena::Arena>, &rustc_data_structures::sync::worker_local::WorkerLocal<rustc_hir::Arena>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2})>>::call_once
  28: rustc_interface::passes::create_and_enter_global_ctxt::<core::option::Option<rustc_interface::queries::Linker>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}>
  29: <scoped_tls::ScopedKey<rustc_span::SessionGlobals>>::set::<rustc_interface::util::run_in_thread_with_globals<rustc_interface::util::run_in_thread_pool_with_globals<rustc_interface::interface::run_compiler<(), rustc_driver_impl::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}::{closure#0}, ()>
  30: rustc_span::create_session_globals_then::<(), rustc_interface::util::run_in_thread_with_globals<rustc_interface::util::run_in_thread_pool_with_globals<rustc_interface::interface::run_compiler<(), rustc_driver_impl::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}::{closure#0}>
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.

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.92.0-nightly (346939ff3 2025-09-18) running on aarch64-unknown-linux-gnu

note: compiler flags: -Z threads=1 -Z simulate-remapped-rust-src-base=/rustc/FAKE_PREFIX -Z translate-remapped-path-to-local-path=no -Z ignore-directory-in-diagnostics-source-blocks=/cargo -Z ignore-directory-in-diagnostics-source-blocks=/checkout/vendor -C debug-assertions=no -Z codegen-source-order -C prefer-dynamic -C rpath -C debuginfo=0 -C target-feature=+rdrnd -C target-feature=+rdseed -C panic=abort -C force-unwind-tables=yes

query stack during panic:
#0 [fn_abi_of_instance] computing call ABI of `x86_rdrand32_step`
#1 [check_mono_item] monomorphization-time checking
#2 [items_of_instance] collecting items used by `foo`
#3 [collect_and_partition_mono_items] collect_and_partition_mono_items
#4 [exported_generic_symbols] collecting exported generic symbols for crate `0`
end of query stack
warning: 3 warnings emitted
------------------------------------------

---- [assembly] tests/assembly-llvm/target-feature-multiple.rs#TWOFLAGS stdout end ----
---- [assembly] tests/assembly-llvm/target-feature-multiple.rs#SINGLEFLAG stdout ----
------rustc stdout------------------------------

------rustc stderr------------------------------
warning: unused import: `minicore::*`
##[warning]  --> /checkout/tests/assembly-llvm/target-feature-multiple.rs:24:5
   |
24 | use minicore::*;
   |     ^^^^^^^^^^^
   |
   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default

warning: `extern` block uses type `(u32, i32)`, which is not FFI-safe
##[warning]  --> /checkout/tests/assembly-llvm/target-feature-multiple.rs:29:31
   |
29 |     fn x86_rdrand32_step() -> (u32, i32);
   |                               ^^^^^^^^^^ not FFI-safe
   |
   = help: consider using a struct instead
   = note: tuples have unspecified layout
   = note: `#[warn(improper_ctypes)]` on by default

warning: `extern` block uses type `(u32, i32)`, which is not FFI-safe
##[warning]  --> /checkout/tests/assembly-llvm/target-feature-multiple.rs:31:31
   |
31 |     fn x86_rdseed32_step() -> (u32, i32);
   |                               ^^^^^^^^^^ not FFI-safe
   |
   = help: consider using a struct instead
   = note: tuples have unspecified layout


thread 'rustc' (222913) panicked at compiler/rustc_ty_utils/src/abi.rs:601:17:
Tried to make Pair(ArgAttributes { regular: NoUndef, arg_ext: None, pointee_size: Size(0 bytes), pointee_align: None }, ArgAttributes { regular: NoUndef, arg_ext: None, pointee_size: Size(0 bytes), pointee_align: None }) direct
stack backtrace:
   0: __rustc::rust_begin_unwind
   1: core::panicking::panic_fmt
   2: <rustc_target::callconv::ArgAbi<rustc_middle::ty::Ty>>::make_direct_deprecated
   3: rustc_ty_utils::abi::fn_abi_new_uncached
   4: rustc_ty_utils::abi::fn_abi_of_instance
      [... omitted 3 frames ...]
   5: rustc_monomorphize::mono_checks::abi_check::check_feature_dependent_abi
   6: rustc_monomorphize::mono_checks::check_mono_item
      [... omitted 3 frames ...]
   7: rustc_monomorphize::collector::items_of_instance
      [... omitted 3 frames ...]
   8: rustc_monomorphize::collector::collect_items_rec
   9: rustc_monomorphize::collector::collect_items_root
  10: <rustc_data_structures::sync::parallel::ParallelGuard>::run::<(), rustc_data_structures::sync::parallel::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#1}::{closure#0}>
  11: <alloc::vec::into_iter::IntoIter<rustc_middle::mir::mono::MonoItem> as core::iter::traits::iterator::Iterator>::fold::<(), core::iter::traits::iterator::Iterator::for_each::call<rustc_middle::mir::mono::MonoItem, rustc_data_structures::sync::parallel::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#1}>::{closure#0}>
  12: rustc_data_structures::sync::parallel::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}>
  13: <rustc_session::session::Session>::time::<(), rustc_monomorphize::collector::collect_crate_mono_items::{closure#1}>
  14: rustc_monomorphize::collector::collect_crate_mono_items
  15: rustc_monomorphize::partitioning::collect_and_partition_mono_items
      [... omitted 3 frames ...]
  16: rustc_codegen_ssa::back::symbol_export::exported_generic_symbols_provider_local
      [... omitted 3 frames ...]
  17: <rustc_metadata::rmeta::encoder::EncodeContext>::encode_crate_root
  18: rustc_metadata::rmeta::encoder::encode_metadata::{closure#3}::{closure#0}
  19: <rustc_metadata::rmeta::encoder::encode_metadata::{closure#3} as core::ops::function::FnOnce<(rustc_middle::ty::context::TyCtxt, &std::path::Path)>>::call_once
  20: rustc_metadata::rmeta::encoder::encode_metadata
  21: rustc_metadata::fs::encode_and_write_metadata
  22: rustc_interface::passes::start_codegen
  23: <rustc_interface::queries::Linker>::codegen_and_build_linker
  24: <std::thread::local::LocalKey<core::cell::Cell<*const ()>>>::with::<rustc_middle::ty::context::tls::enter_context<<rustc_middle::ty::context::GlobalCtxt>::enter<rustc_interface::passes::create_and_enter_global_ctxt<core::option::Option<rustc_interface::queries::Linker>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}>::{closure#2}::{closure#0}, core::option::Option<rustc_interface::queries::Linker>>::{closure#1}, core::option::Option<rustc_interface::queries::Linker>>::{closure#0}, core::option::Option<rustc_interface::queries::Linker>>
  25: <rustc_middle::ty::context::TyCtxt>::create_global_ctxt::<core::option::Option<rustc_interface::queries::Linker>, rustc_interface::passes::create_and_enter_global_ctxt<core::option::Option<rustc_interface::queries::Linker>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}>::{closure#2}::{closure#0}>
  26: <rustc_interface::passes::create_and_enter_global_ctxt<core::option::Option<rustc_interface::queries::Linker>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}>::{closure#2} as core::ops::function::FnOnce<(&rustc_session::session::Session, rustc_middle::ty::context::CurrentGcx, alloc::sync::Arc<rustc_data_structures::jobserver::Proxy>, &std::sync::once_lock::OnceLock<rustc_middle::ty::context::GlobalCtxt>, &rustc_data_structures::sync::worker_local::WorkerLocal<rustc_middle::arena::Arena>, &rustc_data_structures::sync::worker_local::WorkerLocal<rustc_hir::Arena>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2})>>::call_once::{shim:vtable#0}
  27: <alloc::boxed::Box<dyn for<'a> core::ops::function::FnOnce<(&'a rustc_session::session::Session, rustc_middle::ty::context::CurrentGcx, alloc::sync::Arc<rustc_data_structures::jobserver::Proxy>, &'a std::sync::once_lock::OnceLock<rustc_middle::ty::context::GlobalCtxt<'a>>, &'a rustc_data_structures::sync::worker_local::WorkerLocal<rustc_middle::arena::Arena<'a>>, &'a rustc_data_structures::sync::worker_local::WorkerLocal<rustc_hir::Arena<'a>>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}), Output = core::option::Option<rustc_interface::queries::Linker>>> as core::ops::function::FnOnce<(&rustc_session::session::Session, rustc_middle::ty::context::CurrentGcx, alloc::sync::Arc<rustc_data_structures::jobserver::Proxy>, &std::sync::once_lock::OnceLock<rustc_middle::ty::context::GlobalCtxt>, &rustc_data_structures::sync::worker_local::WorkerLocal<rustc_middle::arena::Arena>, &rustc_data_structures::sync::worker_local::WorkerLocal<rustc_hir::Arena>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2})>>::call_once
  28: rustc_interface::passes::create_and_enter_global_ctxt::<core::option::Option<rustc_interface::queries::Linker>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}>
  29: <scoped_tls::ScopedKey<rustc_span::SessionGlobals>>::set::<rustc_interface::util::run_in_thread_with_globals<rustc_interface::util::run_in_thread_pool_with_globals<rustc_interface::interface::run_compiler<(), rustc_driver_impl::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}::{closure#0}, ()>
  30: rustc_span::create_session_globals_then::<(), rustc_interface::util::run_in_thread_with_globals<rustc_interface::util::run_in_thread_pool_with_globals<rustc_interface::interface::run_compiler<(), rustc_driver_impl::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}::{closure#0}>
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.

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.92.0-nightly (346939ff3 2025-09-18) running on aarch64-unknown-linux-gnu

note: compiler flags: -Z threads=1 -Z simulate-remapped-rust-src-base=/rustc/FAKE_PREFIX -Z translate-remapped-path-to-local-path=no -Z ignore-directory-in-diagnostics-source-blocks=/cargo -Z ignore-directory-in-diagnostics-source-blocks=/checkout/vendor -C debug-assertions=no -Z codegen-source-order -C prefer-dynamic -C rpath -C debuginfo=0 -C target-feature=+rdrnd,+rdseed -C panic=abort -C force-unwind-tables=yes

query stack during panic:
#0 [fn_abi_of_instance] computing call ABI of `x86_rdrand32_step`
#1 [check_mono_item] monomorphization-time checking
#2 [items_of_instance] collecting items used by `foo`
#3 [collect_and_partition_mono_items] collect_and_partition_mono_items
#4 [exported_generic_symbols] collecting exported generic symbols for crate `0`
end of query stack
warning: 3 warnings emitted


------------------------------------------

error in revision `SINGLEFLAG`: compilation failed!
status: exit status: 101
command: env -u RUSTC_LOG_COLOR RUSTC_ICE="0" RUST_BACKTRACE="short" "/checkout/obj/build/aarch64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/tests/assembly-llvm/target-feature-multiple.rs" "-Zthreads=1" "-Zsimulate-remapped-rust-src-base=/rustc/FAKE_PREFIX" "-Ztranslate-remapped-path-to-local-path=no" "-Z" "ignore-directory-in-diagnostics-source-blocks=/cargo" "-Z" "ignore-directory-in-diagnostics-source-blocks=/checkout/vendor" "--sysroot" "/checkout/obj/build/aarch64-unknown-linux-gnu/stage2" "--cfg" "singleflag" "--check-cfg" "cfg(test,FALSE,twoflags,singleflag)" "-O" "-Cdebug-assertions=no" "-Zcodegen-source-order" "--emit" "asm" "-C" "prefer-dynamic" "-o" "/checkout/obj/build/aarch64-unknown-linux-gnu/test/assembly-llvm/target-feature-multiple.SINGLEFLAG/target-feature-multiple.s" "-A" "internal_features" "-A" "unused_parens" "-A" "unused_braces" "-Crpath" "-Cdebuginfo=0" "--target=x86_64-unknown-linux-gnu" "-C" "target-feature=+rdrnd,+rdseed" "-Cpanic=abort" "-Cforce-unwind-tables=yes" "--extern" "minicore=/checkout/obj/build/aarch64-unknown-linux-gnu/test/assembly-llvm/target-feature-multiple.SINGLEFLAG/libminicore.rlib"
stdout: none
--- stderr -------------------------------
warning: unused import: `minicore::*`
##[warning]  --> /checkout/tests/assembly-llvm/target-feature-multiple.rs:24:5
   |
24 | use minicore::*;
   |     ^^^^^^^^^^^
   |
   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default

warning: `extern` block uses type `(u32, i32)`, which is not FFI-safe
##[warning]  --> /checkout/tests/assembly-llvm/target-feature-multiple.rs:29:31
   |
29 |     fn x86_rdrand32_step() -> (u32, i32);
   |                               ^^^^^^^^^^ not FFI-safe
   |
   = help: consider using a struct instead
   = note: tuples have unspecified layout
   = note: `#[warn(improper_ctypes)]` on by default

warning: `extern` block uses type `(u32, i32)`, which is not FFI-safe
##[warning]  --> /checkout/tests/assembly-llvm/target-feature-multiple.rs:31:31
   |
31 |     fn x86_rdseed32_step() -> (u32, i32);
   |                               ^^^^^^^^^^ not FFI-safe
   |
   = help: consider using a struct instead
   = note: tuples have unspecified layout


thread 'rustc' (222913) panicked at compiler/rustc_ty_utils/src/abi.rs:601:17:
Tried to make Pair(ArgAttributes { regular: NoUndef, arg_ext: None, pointee_size: Size(0 bytes), pointee_align: None }, ArgAttributes { regular: NoUndef, arg_ext: None, pointee_size: Size(0 bytes), pointee_align: None }) direct
stack backtrace:
   0: __rustc::rust_begin_unwind
   1: core::panicking::panic_fmt
   2: <rustc_target::callconv::ArgAbi<rustc_middle::ty::Ty>>::make_direct_deprecated
   3: rustc_ty_utils::abi::fn_abi_new_uncached
   4: rustc_ty_utils::abi::fn_abi_of_instance
      [... omitted 3 frames ...]
   5: rustc_monomorphize::mono_checks::abi_check::check_feature_dependent_abi
   6: rustc_monomorphize::mono_checks::check_mono_item
      [... omitted 3 frames ...]
   7: rustc_monomorphize::collector::items_of_instance
      [... omitted 3 frames ...]
   8: rustc_monomorphize::collector::collect_items_rec
   9: rustc_monomorphize::collector::collect_items_root
  10: <rustc_data_structures::sync::parallel::ParallelGuard>::run::<(), rustc_data_structures::sync::parallel::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#1}::{closure#0}>
  11: <alloc::vec::into_iter::IntoIter<rustc_middle::mir::mono::MonoItem> as core::iter::traits::iterator::Iterator>::fold::<(), core::iter::traits::iterator::Iterator::for_each::call<rustc_middle::mir::mono::MonoItem, rustc_data_structures::sync::parallel::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#1}>::{closure#0}>
  12: rustc_data_structures::sync::parallel::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}>
  13: <rustc_session::session::Session>::time::<(), rustc_monomorphize::collector::collect_crate_mono_items::{closure#1}>
  14: rustc_monomorphize::collector::collect_crate_mono_items
  15: rustc_monomorphize::partitioning::collect_and_partition_mono_items
      [... omitted 3 frames ...]
  16: rustc_codegen_ssa::back::symbol_export::exported_generic_symbols_provider_local
      [... omitted 3 frames ...]
  17: <rustc_metadata::rmeta::encoder::EncodeContext>::encode_crate_root
  18: rustc_metadata::rmeta::encoder::encode_metadata::{closure#3}::{closure#0}
  19: <rustc_metadata::rmeta::encoder::encode_metadata::{closure#3} as core::ops::function::FnOnce<(rustc_middle::ty::context::TyCtxt, &std::path::Path)>>::call_once
  20: rustc_metadata::rmeta::encoder::encode_metadata
  21: rustc_metadata::fs::encode_and_write_metadata
  22: rustc_interface::passes::start_codegen
  23: <rustc_interface::queries::Linker>::codegen_and_build_linker
  24: <std::thread::local::LocalKey<core::cell::Cell<*const ()>>>::with::<rustc_middle::ty::context::tls::enter_context<<rustc_middle::ty::context::GlobalCtxt>::enter<rustc_interface::passes::create_and_enter_global_ctxt<core::option::Option<rustc_interface::queries::Linker>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}>::{closure#2}::{closure#0}, core::option::Option<rustc_interface::queries::Linker>>::{closure#1}, core::option::Option<rustc_interface::queries::Linker>>::{closure#0}, core::option::Option<rustc_interface::queries::Linker>>
  25: <rustc_middle::ty::context::TyCtxt>::create_global_ctxt::<core::option::Option<rustc_interface::queries::Linker>, rustc_interface::passes::create_and_enter_global_ctxt<core::option::Option<rustc_interface::queries::Linker>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}>::{closure#2}::{closure#0}>
  26: <rustc_interface::passes::create_and_enter_global_ctxt<core::option::Option<rustc_interface::queries::Linker>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}>::{closure#2} as core::ops::function::FnOnce<(&rustc_session::session::Session, rustc_middle::ty::context::CurrentGcx, alloc::sync::Arc<rustc_data_structures::jobserver::Proxy>, &std::sync::once_lock::OnceLock<rustc_middle::ty::context::GlobalCtxt>, &rustc_data_structures::sync::worker_local::WorkerLocal<rustc_middle::arena::Arena>, &rustc_data_structures::sync::worker_local::WorkerLocal<rustc_hir::Arena>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2})>>::call_once::{shim:vtable#0}
  27: <alloc::boxed::Box<dyn for<'a> core::ops::function::FnOnce<(&'a rustc_session::session::Session, rustc_middle::ty::context::CurrentGcx, alloc::sync::Arc<rustc_data_structures::jobserver::Proxy>, &'a std::sync::once_lock::OnceLock<rustc_middle::ty::context::GlobalCtxt<'a>>, &'a rustc_data_structures::sync::worker_local::WorkerLocal<rustc_middle::arena::Arena<'a>>, &'a rustc_data_structures::sync::worker_local::WorkerLocal<rustc_hir::Arena<'a>>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}), Output = core::option::Option<rustc_interface::queries::Linker>>> as core::ops::function::FnOnce<(&rustc_session::session::Session, rustc_middle::ty::context::CurrentGcx, alloc::sync::Arc<rustc_data_structures::jobserver::Proxy>, &std::sync::once_lock::OnceLock<rustc_middle::ty::context::GlobalCtxt>, &rustc_data_structures::sync::worker_local::WorkerLocal<rustc_middle::arena::Arena>, &rustc_data_structures::sync::worker_local::WorkerLocal<rustc_hir::Arena>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2})>>::call_once
  28: rustc_interface::passes::create_and_enter_global_ctxt::<core::option::Option<rustc_interface::queries::Linker>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}>
  29: <scoped_tls::ScopedKey<rustc_span::SessionGlobals>>::set::<rustc_interface::util::run_in_thread_with_globals<rustc_interface::util::run_in_thread_pool_with_globals<rustc_interface::interface::run_compiler<(), rustc_driver_impl::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}::{closure#0}, ()>
  30: rustc_span::create_session_globals_then::<(), rustc_interface::util::run_in_thread_with_globals<rustc_interface::util::run_in_thread_pool_with_globals<rustc_interface::interface::run_compiler<(), rustc_driver_impl::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}::{closure#0}>
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.

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.92.0-nightly (346939ff3 2025-09-18) running on aarch64-unknown-linux-gnu

note: compiler flags: -Z threads=1 -Z simulate-remapped-rust-src-base=/rustc/FAKE_PREFIX -Z translate-remapped-path-to-local-path=no -Z ignore-directory-in-diagnostics-source-blocks=/cargo -Z ignore-directory-in-diagnostics-source-blocks=/checkout/vendor -C debug-assertions=no -Z codegen-source-order -C prefer-dynamic -C rpath -C debuginfo=0 -C target-feature=+rdrnd,+rdseed -C panic=abort -C force-unwind-tables=yes

query stack during panic:
#0 [fn_abi_of_instance] computing call ABI of `x86_rdrand32_step`
#1 [check_mono_item] monomorphization-time checking
#2 [items_of_instance] collecting items used by `foo`
#3 [collect_and_partition_mono_items] collect_and_partition_mono_items
#4 [exported_generic_symbols] collecting exported generic symbols for crate `0`
end of query stack
warning: 3 warnings emitted
------------------------------------------

---- [assembly] tests/assembly-llvm/target-feature-multiple.rs#SINGLEFLAG stdout end ----

failures:
    [assembly] tests/assembly-llvm/target-feature-multiple.rs#TWOFLAGS
    [assembly] tests/assembly-llvm/target-feature-multiple.rs#SINGLEFLAG

Copy link
Contributor

@nnethercote nnethercote left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The test failure suggests it's not valid?

View changes since this review

@nnethercote
Copy link
Contributor

@rustbot author

@rustbot rustbot added S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Sep 18, 2025
@bjorn3
Copy link
Member Author

bjorn3 commented Sep 19, 2025

Indeed

@bjorn3 bjorn3 closed this Sep 19, 2025
@rustbot rustbot removed the S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. label Sep 19, 2025
@bjorn3 bjorn3 deleted the no_pair_unadjusted branch September 19, 2025 08:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
T-compiler Relevant to the compiler team, which will review and decide on the PR/issue.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants