Skip to content

async functions cause ICE #601

Open
Open

Description

@noahbadoa

Expected Behaviour

Compile TIme Error Message

Example & Steps To Reproduce

Lib.rs file to being compiled by spirv_builder

#![no_std]

async fn testing(){}
#[spirv_std::spirv(compute(threads(1)))]
pub fn main() {
    let temp = testing();
}

System Info

Cargo.toml

[package]
name = "rust_gpu_build"
version = "0.1.0"
edition = "2021"

[dependencies]
libm = "=0.2.11"
spirv-builder = { git = "https://github.com/Rust-GPU/rust-gpu.git"}


[profile.release.build-override]
opt-level = 3
codegen-units = 1
[profile.dev.build-override]
opt-level = 3

rust-toolchain.toml

[toolchain]
channel = "nightly-2025-11-13"
components = ["rust-src", "rustc-dev", "llvm-tools"]

Backtrace

note: compiler flags: --crate-type dylib -C opt-level=3 -C embed-bitcode=no -C codegen-units=1 -C strip=debuginfo -Z unstable-options -Z codegen-backend=/home/user/Documents/vscode/test/rust_gpu/rust_gpu_build/target/debug/librustc_codegen_spirv.so -Z binary-dep-depinfo -C symbol-mangling-version=v0 -Z crate-attr=feature(register_tool) -Z crate-attr=register_tool(rust_gpu) -C overflow-checks=off -C debug-assertions=off -Z inline-mir=off -Z mir-enable-passes=-GVN -Z share-generics=off

Backtrace

thread 'rustc' panicked at /home/user/.cargo/git/checkouts/rust-gpu-d06d15e2ba0f0ae2/3089687/crates/rustc_codegen_spirv/src/abi.rs:694:17:
Box<dyn Any>
stack backtrace:
   0:     0x72d6bda4062b - std::backtrace::Backtrace::create::hec63f2c97908c8bb
   1:     0x72d6bda40575 - std::backtrace::Backtrace::force_capture::hdeafaeab7a30ed19
   2:     0x72d6bca325d2 - std[c8d4bb381711e68]::panicking::update_hook::<alloc[2508525745eabac6]::boxed::Box<rustc_driver_impl[3c4699642b322592]::install_ice_hook::{closure#1}>>::{closure#0}
   3:     0x72d6bca31e61 - std[c8d4bb381711e68]::panicking::update_hook::<alloc[2508525745eabac6]::boxed::Box<rustc_driver_impl[3c4699642b322592]::install_ice_hook::{closure#1}>>::{closure#0}
   4:     0x72d6bda4157b - std::panicking::panic_with_hook::he0d479546e4ce5b9
   5:     0x72d6bca6e3d1 - std[c8d4bb381711e68]::panicking::begin_panic::<rustc_errors[4a6b3a26dff7b902]::ExplicitBug>::{closure#0}
   6:     0x72d6bca60876 - std[c8d4bb381711e68]::sys::backtrace::__rust_end_short_backtrace::<std[c8d4bb381711e68]::panicking::begin_panic<rustc_errors[4a6b3a26dff7b902]::ExplicitBug>::{closure#0}, !>
   7:     0x72d6bca5dfc9 - std[c8d4bb381711e68]::panicking::begin_panic::<rustc_errors[4a6b3a26dff7b902]::ExplicitBug>
   8:     0x72d6bca8cc01 - <rustc_errors[4a6b3a26dff7b902]::diagnostic::BugAbort as rustc_errors[4a6b3a26dff7b902]::diagnostic::EmissionGuarantee>::emit_producing_guarantee
   9:     0x72d6bcff43cc - <rustc_errors[4a6b3a26dff7b902]::DiagCtxtHandle>::span_bug::<rustc_span[5a5bd85de0de1f2b]::span_encoding::Span, alloc[2508525745eabac6]::string::String>
  10:     0x72d6bd017907 - rustc_middle[8d85ffaee97d78d]::util::bug::opt_span_bug_fmt::<rustc_span[5a5bd85de0de1f2b]::span_encoding::Span>::{closure#0}
  11:     0x72d6bd017aaa - rustc_middle[8d85ffaee97d78d]::ty::context::tls::with_opt::<rustc_middle[8d85ffaee97d78d]::util::bug::opt_span_bug_fmt<rustc_span[5a5bd85de0de1f2b]::span_encoding::Span>::{closure#0}, !>::{closure#0}
  12:     0x72d6bd0084bb - rustc_middle[8d85ffaee97d78d]::ty::context::tls::with_context_opt::<rustc_middle[8d85ffaee97d78d]::ty::context::tls::with_opt<rustc_middle[8d85ffaee97d78d]::util::bug::opt_span_bug_fmt<rustc_span[5a5bd85de0de1f2b]::span_encoding::Span>::{closure#0}, !>::{closure#0}, !>
  13:     0x72d6bb2e1367 - rustc_middle[8d85ffaee97d78d]::util::bug::span_bug_fmt::<rustc_span[5a5bd85de0de1f2b]::span_encoding::Span>
  14:     0x72d6aa9bc5d7 - rustc_codegen_spirv::abi::trans_struct_or_union::ha96f07edea0769ca
                               at /home/user/.cargo/git/checkouts/rust-gpu-d06d15e2ba0f0ae2/3089687/crates/rustc_codegen_spirv/src/abi.rs:694:17
  15:     0x72d6aa9b7baf - rustc_codegen_spirv::abi::trans_aggregate::hf4fbb1662fb7fb41
                               at /home/user/.cargo/git/checkouts/rust-gpu-d06d15e2ba0f0ae2/3089687/crates/rustc_codegen_spirv/src/abi.rs:620:14
  16:     0x72d6aa99211d - <rustc_abi::layout::ty::TyAndLayout<rustc_middle::ty::Ty> as rustc_codegen_spirv::abi::ConvSpirvType>::spirv_type::h8234b12324b82a25
                               at /home/user/.cargo/git/checkouts/rust-gpu-d06d15e2ba0f0ae2/3089687/crates/rustc_codegen_spirv/src/abi.rs:398:49
  17:     0x72d6aaa5f131 - <rustc_codegen_spirv::abi::PointeeTy as rustc_codegen_spirv::abi::ConvSpirvType>::spirv_type::h3830201235ced2fe
                               at /home/user/.cargo/git/checkouts/rust-gpu-d06d15e2ba0f0ae2/3089687/crates/rustc_codegen_spirv/src/abi.rs:238:37
  18:     0x72d6aa9b773e - rustc_codegen_spirv::abi::trans_scalar::h805b7b315b296307
                               at /home/user/.cargo/git/checkouts/rust-gpu-d06d15e2ba0f0ae2/3089687/crates/rustc_codegen_spirv/src/abi.rs:463:42
  19:     0x72d6aa991dc9 - <rustc_abi::layout::ty::TyAndLayout<rustc_middle::ty::Ty> as rustc_codegen_spirv::abi::ConvSpirvType>::spirv_type::h8234b12324b82a25
                               at /home/user/.cargo/git/checkouts/rust-gpu-d06d15e2ba0f0ae2/3089687/crates/rustc_codegen_spirv/src/abi.rs:317:44
  20:     0x72d6aa990e4d - <rustc_target::callconv::FnAbi<rustc_middle::ty::Ty> as rustc_codegen_spirv::abi::ConvSpirvType>::spirv_type::h9f3db060cd539813
                               at /home/user/.cargo/git/checkouts/rust-gpu-d06d15e2ba0f0ae2/3089687/crates/rustc_codegen_spirv/src/abi.rs:264:51
  21:     0x72d6aab83383 - rustc_codegen_spirv::codegen_cx::declare::<impl rustc_codegen_spirv::codegen_cx::CodegenCx>::declare_fn_ext::heb39882c95280c42
                               at /home/user/.cargo/git/checkouts/rust-gpu-d06d15e2ba0f0ae2/3089687/crates/rustc_codegen_spirv/src/codegen_cx/declare.rs:75:36
  22:     0x72d6aab80db0 - rustc_codegen_spirv::codegen_cx::declare::<impl rustc_codegen_spirv::maybe_pqp_cg_ssa::traits::declare::PreDefineCodegenMethods for rustc_codegen_spirv::codegen_cx::CodegenCx>::predefine_fn::ha68ce7ccd72c4b18
                               at /home/user/.cargo/git/checkouts/rust-gpu-d06d15e2ba0f0ae2/3089687/crates/rustc_codegen_spirv/src/codegen_cx/declare.rs:364:29
  23:     0x72d6aaf83089 - <rustc_middle::mir::mono::MonoItem as rustc_codegen_spirv::maybe_pqp_cg_ssa::mono_item::MonoItemExt>::predefine::h69e12c3d6246e1d5
                               at /home/user/Documents/vscode/test/rust_gpu/rust_gpu_build/target/debug/build/rustc_codegen_spirv-7f7173e9ec8af35a/out/pqp_cg_ssa/src/mono_item.rs:80:24
  24:     0x72d6ab021bf5 - <rustc_codegen_spirv::SpirvCodegenBackend as rustc_codegen_spirv::maybe_pqp_cg_ssa::traits::backend::ExtraBackendMethods>::compile_codegen_unit::{{closure}}::h410f004d7d3b2843
                               at /home/user/.cargo/git/checkouts/rust-gpu-d06d15e2ba0f0ae2/3089687/crates/rustc_codegen_spirv/src/lib.rs:460:27
  25:     0x72d6ab0210f7 - <rustc_codegen_spirv::SpirvCodegenBackend as rustc_codegen_spirv::maybe_pqp_cg_ssa::traits::backend::ExtraBackendMethods>::compile_codegen_unit::h6dc8143f98460e2f
                               at /home/user/.cargo/git/checkouts/rust-gpu-d06d15e2ba0f0ae2/3089687/crates/rustc_codegen_spirv/src/lib.rs:489:36
  26:     0x72d6aabb0991 - rustc_codegen_spirv::maybe_pqp_cg_ssa::base::codegen_crate::he1242eca30e59433
                               at /home/user/Documents/vscode/test/rust_gpu/rust_gpu_build/target/debug/build/rustc_codegen_spirv-7f7173e9ec8af35a/out/pqp_cg_ssa/src/base.rs:808:42
  27:     0x72d6ab01c93a - <rustc_codegen_spirv::SpirvCodegenBackend as rustc_codegen_spirv::maybe_pqp_cg_ssa::traits::backend::CodegenBackend>::codegen_crate::h669390948f05c4b9
                               at /home/user/.cargo/git/checkouts/rust-gpu-d06d15e2ba0f0ae2/3089687/crates/rustc_codegen_spirv/src/lib.rs:240:18
  28:     0x72d6bf4c6f8d - <rustc_interface[23742b77bf084c1c]::queries::Linker>::codegen_and_build_linker
  29:     0x72d6bf4c3b4d - <rustc_interface[23742b77bf084c1c]::passes::create_and_enter_global_ctxt<core[9a42bb1793c5c9a8]::option::Option<rustc_interface[23742b77bf084c1c]::queries::Linker>, rustc_driver_impl[3c4699642b322592]::run_compiler::{closure#0}::{closure#2}>::{closure#2} as core[9a42bb1793c5c9a8]::ops::function::FnOnce<(&rustc_session[158844ada7f0f676]::session::Session, rustc_middle[8d85ffaee97d78d]::ty::context::CurrentGcx, alloc[2508525745eabac6]::sync::Arc<rustc_data_structures[ae499ee93fe3a250]::jobserver::Proxy>, &std[c8d4bb381711e68]::sync::once_lock::OnceLock<rustc_middle[8d85ffaee97d78d]::ty::context::GlobalCtxt>, &rustc_data_structures[ae499ee93fe3a250]::sync::worker_local::WorkerLocal<rustc_middle[8d85ffaee97d78d]::arena::Arena>, &rustc_data_structures[ae499ee93fe3a250]::sync::worker_local::WorkerLocal<rustc_hir[3a966f3954156600]::Arena>, rustc_driver_impl[3c4699642b322592]::run_compiler::{closure#0}::{closure#2})>>::call_once::{shim:vtable#0}
  30:     0x72d6bf3223a9 - rustc_interface[23742b77bf084c1c]::interface::run_compiler::<(), rustc_driver_impl[3c4699642b322592]::run_compiler::{closure#0}>::{closure#1}
  31:     0x72d6bf34cf7b - std[c8d4bb381711e68]::sys::backtrace::__rust_begin_short_backtrace::<rustc_interface[23742b77bf084c1c]::util::run_in_thread_with_globals<rustc_interface[23742b77bf084c1c]::util::run_in_thread_pool_with_globals<rustc_interface[23742b77bf084c1c]::interface::run_compiler<(), rustc_driver_impl[3c4699642b322592]::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>
  32:     0x72d6bf34cc54 - <<std[c8d4bb381711e68]::thread::Builder>::spawn_unchecked_<rustc_interface[23742b77bf084c1c]::util::run_in_thread_with_globals<rustc_interface[23742b77bf084c1c]::util::run_in_thread_pool_with_globals<rustc_interface[23742b77bf084c1c]::interface::run_compiler<(), rustc_driver_impl[3c4699642b322592]::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>::{closure#1} as core[9a42bb1793c5c9a8]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
  33:     0x72d6bf350faf - std::sys::thread::unix::Thread::new::thread_start::hfb7aed7a74f6cac0
  34:     0x72d6b8a9a97a - start_thread
  35:     0x72d6b8b22d2c - __clone3
  36:                0x0 - <unknown>


rustc version: 1.93.0-nightly (01867557c 2025-11-12)
platform: x86_64-unknown-linux-gnu

query stack during panic:
end of query stack
thread 'rustc' panicked at /home/user/.cargo/git/checkouts/rust-gpu-d06d15e2ba0f0ae2/3089687/crates/rustc_codegen_spirv/src/abi.rs:694:17:
Box<dyn Any>
stack backtrace:
   0:     0x72d6bda4062b - std::backtrace::Backtrace::create::hec63f2c97908c8bb
   1:     0x72d6bda40575 - std::backtrace::Backtrace::force_capture::hdeafaeab7a30ed19
   2:     0x72d6bca325d2 - std[c8d4bb381711e68]::panicking::update_hook::<alloc[2508525745eabac6]::boxed::Box<rustc_driver_impl[3c4699642b322592]::install_ice_hook::{closure#1}>>::{closure#0}
   3:     0x72d6bda4157b - std::panicking::panic_with_hook::he0d479546e4ce5b9
   4:     0x72d6bca6e3d1 - std[c8d4bb381711e68]::panicking::begin_panic::<rustc_errors[4a6b3a26dff7b902]::ExplicitBug>::{closure#0}
   5:     0x72d6bca60876 - std[c8d4bb381711e68]::sys::backtrace::__rust_end_short_backtrace::<std[c8d4bb381711e68]::panicking::begin_panic<rustc_errors[4a6b3a26dff7b902]::ExplicitBug>::{closure#0}, !>
   6:     0x72d6bca5dfc9 - std[c8d4bb381711e68]::panicking::begin_panic::<rustc_errors[4a6b3a26dff7b902]::ExplicitBug>
   7:     0x72d6bca8cc01 - <rustc_errors[4a6b3a26dff7b902]::diagnostic::BugAbort as rustc_errors[4a6b3a26dff7b902]::diagnostic::EmissionGuarantee>::emit_producing_guarantee
   8:     0x72d6bcff43cc - <rustc_errors[4a6b3a26dff7b902]::DiagCtxtHandle>::span_bug::<rustc_span[5a5bd85de0de1f2b]::span_encoding::Span, alloc[2508525745eabac6]::string::String>
   9:     0x72d6bd017907 - rustc_middle[8d85ffaee97d78d]::util::bug::opt_span_bug_fmt::<rustc_span[5a5bd85de0de1f2b]::span_encoding::Span>::{closure#0}
  10:     0x72d6bd017aaa - rustc_middle[8d85ffaee97d78d]::ty::context::tls::with_opt::<rustc_middle[8d85ffaee97d78d]::util::bug::opt_span_bug_fmt<rustc_span[5a5bd85de0de1f2b]::span_encoding::Span>::{closure#0}, !>::{closure#0}
  11:     0x72d6bd0084bb - rustc_middle[8d85ffaee97d78d]::ty::context::tls::with_context_opt::<rustc_middle[8d85ffaee97d78d]::ty::context::tls::with_opt<rustc_middle[8d85ffaee97d78d]::util::bug::opt_span_bug_fmt<rustc_span[5a5bd85de0de1f2b]::span_encoding::Span>::{closure#0}, !>::{closure#0}, !>
  12:     0x72d6bb2e1367 - rustc_middle[8d85ffaee97d78d]::util::bug::span_bug_fmt::<rustc_span[5a5bd85de0de1f2b]::span_encoding::Span>
  13:     0x72d6aa9bc5d7 - rustc_codegen_spirv::abi::trans_struct_or_union::ha96f07edea0769ca
                               at /home/user/.cargo/git/checkouts/rust-gpu-d06d15e2ba0f0ae2/3089687/crates/rustc_codegen_spirv/src/abi.rs:694:17
  14:     0x72d6aa9b7baf - rustc_codegen_spirv::abi::trans_aggregate::hf4fbb1662fb7fb41
                               at /home/user/.cargo/git/checkouts/rust-gpu-d06d15e2ba0f0ae2/3089687/crates/rustc_codegen_spirv/src/abi.rs:620:14
  15:     0x72d6aa99211d - <rustc_abi::layout::ty::TyAndLayout<rustc_middle::ty::Ty> as rustc_codegen_spirv::abi::ConvSpirvType>::spirv_type::h8234b12324b82a25
                               at /home/user/.cargo/git/checkouts/rust-gpu-d06d15e2ba0f0ae2/3089687/crates/rustc_codegen_spirv/src/abi.rs:398:49
  16:     0x72d6aaa5f131 - <rustc_codegen_spirv::abi::PointeeTy as rustc_codegen_spirv::abi::ConvSpirvType>::spirv_type::h3830201235ced2fe
                               at /home/user/.cargo/git/checkouts/rust-gpu-d06d15e2ba0f0ae2/3089687/crates/rustc_codegen_spirv/src/abi.rs:238:37
  17:     0x72d6aa9b773e - rustc_codegen_spirv::abi::trans_scalar::h805b7b315b296307
                               at /home/user/.cargo/git/checkouts/rust-gpu-d06d15e2ba0f0ae2/3089687/crates/rustc_codegen_spirv/src/abi.rs:463:42
  18:     0x72d6aa991dc9 - <rustc_abi::layout::ty::TyAndLayout<rustc_middle::ty::Ty> as rustc_codegen_spirv::abi::ConvSpirvType>::spirv_type::h8234b12324b82a25
                               at /home/user/.cargo/git/checkouts/rust-gpu-d06d15e2ba0f0ae2/3089687/crates/rustc_codegen_spirv/src/abi.rs:317:44
  19:     0x72d6aa990e4d - <rustc_target::callconv::FnAbi<rustc_middle::ty::Ty> as rustc_codegen_spirv::abi::ConvSpirvType>::spirv_type::h9f3db060cd539813
                               at /home/user/.cargo/git/checkouts/rust-gpu-d06d15e2ba0f0ae2/3089687/crates/rustc_codegen_spirv/src/abi.rs:264:51
  20:     0x72d6aab83383 - rustc_codegen_spirv::codegen_cx::declare::<impl rustc_codegen_spirv::codegen_cx::CodegenCx>::declare_fn_ext::heb39882c95280c42
                               at /home/user/.cargo/git/checkouts/rust-gpu-d06d15e2ba0f0ae2/3089687/crates/rustc_codegen_spirv/src/codegen_cx/declare.rs:75:36
  21:     0x72d6aab80db0 - rustc_codegen_spirv::codegen_cx::declare::<impl rustc_codegen_spirv::maybe_pqp_cg_ssa::traits::declare::PreDefineCodegenMethods for rustc_codegen_spirv::codegen_cx::CodegenCx>::predefine_fn::ha68ce7ccd72c4b18
                               at /home/user/.cargo/git/checkouts/rust-gpu-d06d15e2ba0f0ae2/3089687/crates/rustc_codegen_spirv/src/codegen_cx/declare.rs:364:29
  22:     0x72d6aaf83089 - <rustc_middle::mir::mono::MonoItem as rustc_codegen_spirv::maybe_pqp_cg_ssa::mono_item::MonoItemExt>::predefine::h69e12c3d6246e1d5
                               at /home/user/Documents/vscode/test/rust_gpu/rust_gpu_build/target/debug/build/rustc_codegen_spirv-7f7173e9ec8af35a/out/pqp_cg_ssa/src/mono_item.rs:80:24
  23:     0x72d6ab021bf5 - <rustc_codegen_spirv::SpirvCodegenBackend as rustc_codegen_spirv::maybe_pqp_cg_ssa::traits::backend::ExtraBackendMethods>::compile_codegen_unit::{{closure}}::h410f004d7d3b2843
                               at /home/user/.cargo/git/checkouts/rust-gpu-d06d15e2ba0f0ae2/3089687/crates/rustc_codegen_spirv/src/lib.rs:460:27
  24:     0x72d6ab0210f7 - <rustc_codegen_spirv::SpirvCodegenBackend as rustc_codegen_spirv::maybe_pqp_cg_ssa::traits::backend::ExtraBackendMethods>::compile_codegen_unit::h6dc8143f98460e2f
                               at /home/user/.cargo/git/checkouts/rust-gpu-d06d15e2ba0f0ae2/3089687/crates/rustc_codegen_spirv/src/lib.rs:489:36
  25:     0x72d6aabb0991 - rustc_codegen_spirv::maybe_pqp_cg_ssa::base::codegen_crate::he1242eca30e59433
                               at /home/user/Documents/vscode/test/rust_gpu/rust_gpu_build/target/debug/build/rustc_codegen_spirv-7f7173e9ec8af35a/out/pqp_cg_ssa/src/base.rs:808:42
  26:     0x72d6ab01c93a - <rustc_codegen_spirv::SpirvCodegenBackend as rustc_codegen_spirv::maybe_pqp_cg_ssa::traits::backend::CodegenBackend>::codegen_crate::h669390948f05c4b9
                               at /home/user/.cargo/git/checkouts/rust-gpu-d06d15e2ba0f0ae2/3089687/crates/rustc_codegen_spirv/src/lib.rs:240:18
  27:     0x72d6bf4c6f8d - <rustc_interface[23742b77bf084c1c]::queries::Linker>::codegen_and_build_linker
  28:     0x72d6bf4c3b4d - <rustc_interface[23742b77bf084c1c]::passes::create_and_enter_global_ctxt<core[9a42bb1793c5c9a8]::option::Option<rustc_interface[23742b77bf084c1c]::queries::Linker>, rustc_driver_impl[3c4699642b322592]::run_compiler::{closure#0}::{closure#2}>::{closure#2} as core[9a42bb1793c5c9a8]::ops::function::FnOnce<(&rustc_session[158844ada7f0f676]::session::Session, rustc_middle[8d85ffaee97d78d]::ty::context::CurrentGcx, alloc[2508525745eabac6]::sync::Arc<rustc_data_structures[ae499ee93fe3a250]::jobserver::Proxy>, &std[c8d4bb381711e68]::sync::once_lock::OnceLock<rustc_middle[8d85ffaee97d78d]::ty::context::GlobalCtxt>, &rustc_data_structures[ae499ee93fe3a250]::sync::worker_local::WorkerLocal<rustc_middle[8d85ffaee97d78d]::arena::Arena>, &rustc_data_structures[ae499ee93fe3a250]::sync::worker_local::WorkerLocal<rustc_hir[3a966f3954156600]::Arena>, rustc_driver_impl[3c4699642b322592]::run_compiler::{closure#0}::{closure#2})>>::call_once::{shim:vtable#0}
  29:     0x72d6bf3223a9 - rustc_interface[23742b77bf084c1c]::interface::run_compiler::<(), rustc_driver_impl[3c4699642b322592]::run_compiler::{closure#0}>::{closure#1}
  30:     0x72d6bf34cf7b - std[c8d4bb381711e68]::sys::backtrace::__rust_begin_short_backtrace::<rustc_interface[23742b77bf084c1c]::util::run_in_thread_with_globals<rustc_interface[23742b77bf084c1c]::util::run_in_thread_pool_with_globals<rustc_interface[23742b77bf084c1c]::interface::run_compiler<(), rustc_driver_impl[3c4699642b322592]::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>
  31:     0x72d6bf34cc54 - <<std[c8d4bb381711e68]::thread::Builder>::spawn_unchecked_<rustc_interface[23742b77bf084c1c]::util::run_in_thread_with_globals<rustc_interface[23742b77bf084c1c]::util::run_in_thread_pool_with_globals<rustc_interface[23742b77bf084c1c]::interface::run_compiler<(), rustc_driver_impl[3c4699642b322592]::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>::{closure#1} as core[9a42bb1793c5c9a8]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
  32:     0x72d6bf350faf - std::sys::thread::unix::Thread::new::thread_start::hfb7aed7a74f6cac0
  33:     0x72d6b8a9a97a - start_thread
  34:     0x72d6b8b22d2c - __clone3
  35:                0x0 - <unknown>


query stack during panic:
end of query stack

Activity

  1. Firestar99 commented on May 28, 2026

    @Firestar99
    Member

    Am aware, not sure how hard it would be to fix. But even if we did fis this ICE, you'll likely won't be able to use futures anyway due to their use of function pointers, so this would only help if you have a crate that has some async but you're not planning on using any of it

  2. noahbadoa commented on May 28, 2026

    @noahbadoa
    Author

    From looking at godbolt I'm 90% unmodified rustc doesn't use function pointers for statically dispatched async functions. Under the hood impl Future values are still statically typed so they can use static dispatch. The only technical hurdle in implementing this feature would be that rustc might by default use a u8 as a discriminate to store what await point the future is at. However statically dispatched async functions are basically useless right now because rust doesn't give you a way to explicitly type them so you can't store them structs or such. So I don't see much use in this feature.

    Filled not as a feature request just for the ICE

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions