Closed
Description
Code
pub extern "sysv64" fn f(_: ()) {}
Compiled with rustc --target x86_64-pc-windows-gnu --crate-type lib code.rs
.
Meta
rustc --version --verbose
:
rustc 1.80.0-nightly (ada5e2c7b 2024-05-31)
binary: rustc
commit-hash: ada5e2c7b5427a591e30baeeee2698a5eb6db0bd
commit-date: 2024-05-31
host: x86_64-unknown-linux-gnu
release: 1.80.0-nightly
LLVM version: 18.1.6
Error output
warning: `extern` fn uses type `()`, which is not FFI-safe
--> a.rs:1:29
|
1 | pub extern "sysv64" fn f(_: ()) {}
| ^^ not FFI-safe
|
= help: consider using a struct instead
= note: tuples have unspecified layout
= note: `#[warn(improper_ctypes_definitions)]` on by default
Backtrace
thread 'rustc' panicked at compiler/rustc_target/src/abi/call/x86_64.rs:158:47:
called `Option::unwrap()` on a `None` value
stack backtrace:
0: 0x7f4c3d239df5 - std::backtrace_rs::backtrace::libunwind::trace::h0bda62405550d460
at /rustc/ada5e2c7b5427a591e30baeeee2698a5eb6db0bd/library/std/src/../../backtrace/src/backtrace/libunwind.rs:116:5
1: 0x7f4c3d239df5 - std::backtrace_rs::backtrace::trace_unsynchronized::h92e1f091fb842a50
at /rustc/ada5e2c7b5427a591e30baeeee2698a5eb6db0bd/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
2: 0x7f4c3d239df5 - std::backtrace::Backtrace::create::h5661919a927f881f
at /rustc/ada5e2c7b5427a591e30baeeee2698a5eb6db0bd/library/std/src/backtrace.rs:331:13
3: 0x7f4c3d239d45 - std::backtrace::Backtrace::force_capture::h92377330a7e0012e
at /rustc/ada5e2c7b5427a591e30baeeee2698a5eb6db0bd/library/std/src/backtrace.rs:312:9
4: 0x7f4c39934146 - std[a75323165fe08653]::panicking::update_hook::<alloc[2577b08d1a5511d8]::boxed::Box<rustc_driver_impl[9be41471faca984]::install_ice_hook::{closure#0}>>::{closure#0}
5: 0x7f4c3d254c0b - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::h3a2a9442c441a378
at /rustc/ada5e2c7b5427a591e30baeeee2698a5eb6db0bd/library/alloc/src/boxed.rs:2077:9
6: 0x7f4c3d254c0b - std::panicking::rust_panic_with_hook::he3c87e486ff05d6b
at /rustc/ada5e2c7b5427a591e30baeeee2698a5eb6db0bd/library/std/src/panicking.rs:799:13
7: 0x7f4c3d25494b - std::panicking::begin_panic_handler::{{closure}}::h01ce2bfd91e16fe0
at /rustc/ada5e2c7b5427a591e30baeeee2698a5eb6db0bd/library/std/src/panicking.rs:656:13
8: 0x7f4c3d252189 - std::sys_common::backtrace::__rust_end_short_backtrace::ha36f641af1493052
at /rustc/ada5e2c7b5427a591e30baeeee2698a5eb6db0bd/library/std/src/sys_common/backtrace.rs:171:18
9: 0x7f4c3d2546b7 - rust_begin_unwind
at /rustc/ada5e2c7b5427a591e30baeeee2698a5eb6db0bd/library/std/src/panicking.rs:652:5
10: 0x7f4c3d29ec53 - core::panicking::panic_fmt::h8cbe41bd36f1ccd3
at /rustc/ada5e2c7b5427a591e30baeeee2698a5eb6db0bd/library/core/src/panicking.rs:72:14
11: 0x7f4c3d29ecfc - core::panicking::panic::he30e77852aaaf38d
at /rustc/ada5e2c7b5427a591e30baeeee2698a5eb6db0bd/library/core/src/panicking.rs:146:5
12: 0x7f4c3d29e999 - core::option::unwrap_failed::h63606462f53741c7
at /rustc/ada5e2c7b5427a591e30baeeee2698a5eb6db0bd/library/core/src/option.rs:1987:5
13: 0x7f4c3a38af5f - rustc_target[f4bda3b6c505fe35]::abi::call::x86_64::cast_target
14: 0x7f4c3c63d62d - rustc_target[f4bda3b6c505fe35]::abi::call::x86_64::compute_abi_info::<rustc_middle[353648fe55f979cd]::ty::Ty, rustc_middle[353648fe55f979cd]::ty::layout::LayoutCx<rustc_middle[353648fe55f979cd]::ty::context::TyCtxt>>::{closure#0}.cold
15: 0x7f4c3a578fd3 - rustc_target[f4bda3b6c505fe35]::abi::call::x86_64::compute_abi_info::<rustc_middle[353648fe55f979cd]::ty::Ty, rustc_middle[353648fe55f979cd]::ty::layout::LayoutCx<rustc_middle[353648fe55f979cd]::ty::context::TyCtxt>>
16: 0x7f4c3b4583b5 - rustc_ty_utils[9b1887357cf581ca]::abi::fn_abi_new_uncached
17: 0x7f4c3b449934 - rustc_ty_utils[9b1887357cf581ca]::abi::fn_abi_of_instance
18: 0x7f4c3b4481f3 - rustc_query_impl[9b16a2dee6878131]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[9b16a2dee6878131]::query_impl::fn_abi_of_instance::dynamic_query::{closure#2}::{closure#0}, rustc_middle[353648fe55f979cd]::query::erase::Erased<[u8; 16usize]>>
19: 0x7f4c3b44617b - rustc_query_system[965e295a0f1b428c]::query::plumbing::try_execute_query::<rustc_query_impl[9b16a2dee6878131]::DynamicConfig<rustc_query_system[965e295a0f1b428c]::query::caches::DefaultCache<rustc_middle[353648fe55f979cd]::ty::ParamEnvAnd<(rustc_middle[353648fe55f979cd]::ty::instance::Instance, &rustc_middle[353648fe55f979cd]::ty::list::RawList<(), rustc_middle[353648fe55f979cd]::ty::Ty>)>, rustc_middle[353648fe55f979cd]::query::erase::Erased<[u8; 16usize]>>, false, false, false>, rustc_query_impl[9b16a2dee6878131]::plumbing::QueryCtxt, false>
20: 0x7f4c3b445dc5 - rustc_query_impl[9b16a2dee6878131]::query_impl::fn_abi_of_instance::get_query_non_incr::__rust_end_short_backtrace
21: 0x7f4c3807ce27 - <rustc_codegen_llvm[ca3c5a28d69b7154]::context::CodegenCx as rustc_codegen_ssa[4a5dcf6ebd8d637e]::traits::declare::PreDefineMethods>::predefine_fn
22: 0x7f4c3baf9667 - rustc_codegen_llvm[ca3c5a28d69b7154]::base::compile_codegen_unit::module_codegen
23: 0x7f4c3baf597c - <rustc_codegen_llvm[ca3c5a28d69b7154]::LlvmCodegenBackend as rustc_codegen_ssa[4a5dcf6ebd8d637e]::traits::backend::ExtraBackendMethods>::compile_codegen_unit
24: 0x7f4c3bd04801 - rustc_codegen_ssa[4a5dcf6ebd8d637e]::base::codegen_crate::<rustc_codegen_llvm[ca3c5a28d69b7154]::LlvmCodegenBackend>
25: 0x7f4c3bcf7c4c - <rustc_codegen_llvm[ca3c5a28d69b7154]::LlvmCodegenBackend as rustc_codegen_ssa[4a5dcf6ebd8d637e]::traits::backend::CodegenBackend>::codegen_crate
26: 0x7f4c3bcf75df - rustc_interface[cb0c5c0af19cf814]::passes::start_codegen
27: 0x7f4c3bcf6c5a - <rustc_interface[cb0c5c0af19cf814]::queries::Queries>::codegen_and_build_linker
28: 0x7f4c3ba7723c - rustc_interface[cb0c5c0af19cf814]::interface::run_compiler::<core[bd782e33ccb6b408]::result::Result<(), rustc_span[5e338462bab9c833]::ErrorGuaranteed>, rustc_driver_impl[9be41471faca984]::run_compiler::{closure#0}>::{closure#1}
29: 0x7f4c3ba410c9 - std[a75323165fe08653]::sys_common::backtrace::__rust_begin_short_backtrace::<rustc_interface[cb0c5c0af19cf814]::util::run_in_thread_with_globals<rustc_interface[cb0c5c0af19cf814]::util::run_in_thread_pool_with_globals<rustc_interface[cb0c5c0af19cf814]::interface::run_compiler<core[bd782e33ccb6b408]::result::Result<(), rustc_span[5e338462bab9c833]::ErrorGuaranteed>, rustc_driver_impl[9be41471faca984]::run_compiler::{closure#0}>::{closure#1}, core[bd782e33ccb6b408]::result::Result<(), rustc_span[5e338462bab9c833]::ErrorGuaranteed>>::{closure#0}, core[bd782e33ccb6b408]::result::Result<(), rustc_span[5e338462bab9c833]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[bd782e33ccb6b408]::result::Result<(), rustc_span[5e338462bab9c833]::ErrorGuaranteed>>
30: 0x7f4c3ba40e80 - <<std[a75323165fe08653]::thread::Builder>::spawn_unchecked_<rustc_interface[cb0c5c0af19cf814]::util::run_in_thread_with_globals<rustc_interface[cb0c5c0af19cf814]::util::run_in_thread_pool_with_globals<rustc_interface[cb0c5c0af19cf814]::interface::run_compiler<core[bd782e33ccb6b408]::result::Result<(), rustc_span[5e338462bab9c833]::ErrorGuaranteed>, rustc_driver_impl[9be41471faca984]::run_compiler::{closure#0}>::{closure#1}, core[bd782e33ccb6b408]::result::Result<(), rustc_span[5e338462bab9c833]::ErrorGuaranteed>>::{closure#0}, core[bd782e33ccb6b408]::result::Result<(), rustc_span[5e338462bab9c833]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[bd782e33ccb6b408]::result::Result<(), rustc_span[5e338462bab9c833]::ErrorGuaranteed>>::{closure#2} as core[bd782e33ccb6b408]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
31: 0x7f4c3d25ebfb - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h149a8f3bd2b6d616
at /rustc/ada5e2c7b5427a591e30baeeee2698a5eb6db0bd/library/alloc/src/boxed.rs:2063:9
32: 0x7f4c3d25ebfb - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::hc8ac52b5c9166594
at /rustc/ada5e2c7b5427a591e30baeeee2698a5eb6db0bd/library/alloc/src/boxed.rs:2063:9
33: 0x7f4c3d25ebfb - std::sys::pal::unix::thread::Thread::new::thread_start::h4464ec80ffa1747a
at /rustc/ada5e2c7b5427a591e30baeeee2698a5eb6db0bd/library/std/src/sys/pal/unix/thread.rs:108:17
34: 0x7f4c3d0181b7 - start_thread
35: 0x7f4c3d09a39c - __GI___clone3
36: 0x0 - <unknown>
rustc version: 1.80.0-nightly (ada5e2c7b 2024-05-31)
platform: x86_64-unknown-linux-gnu
query stack during panic:
#0 [fn_abi_of_instance] computing call ABI of `f`
end of query stack
Metadata
Metadata
Assignees
Labels
Area: Concerning the application binary interface (ABI)Category: This is a bug.Issue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️Toolchain: GNU, Operating system: WindowsTarget: x86-64 processors (like x86_64-*) (also known as amd64 and x64)Status: A Minimal Complete and Verifiable Example has been found for this issueRelevant to the compiler team, which will review and decide on the PR/issue.