Closed
Description
This snippet of Rust code:
#![feature(core_intrinsics)]
#![no_std]
use spirv_std::spirv;
#[spirv(compute(threads(1)))]
pub fn main() {
core::intrinsics::bswap(-1_i32);
}
causes a panic in rust-gpu
:
thread 'rustc' panicked at crates/rustc_codegen_spirv/src/builder/builder_methods.rs:1243:9:
Expected types to be equal:
i32
==
u32
stack backtrace:
0: 0x7fc78dc61935 - std::backtrace_rs::backtrace::libunwind::trace::h19be1b2eef092323
at /rustc/244da22fabd9fa677bbd0ac601a88e5ca6917526/library/std/src/../../backtrace/src/backtrace/libunwind.rs:105:5
1: 0x7fc78dc61935 - std::backtrace_rs::backtrace::trace_unsynchronized::h5fb87216a898ae13
at /rustc/244da22fabd9fa677bbd0ac601a88e5ca6917526/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
2: 0x7fc78dc61935 - std::sys_common::backtrace::_print_fmt::hb7c11d9dfb93defb
at /rustc/244da22fabd9fa677bbd0ac601a88e5ca6917526/library/std/src/sys_common/backtrace.rs:68:5
3: 0x7fc78dc61935 - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::hb67a26e8fbf63961
at /rustc/244da22fabd9fa677bbd0ac601a88e5ca6917526/library/std/src/sys_common/backtrace.rs:44:22
4: 0x7fc78dcb0a6b - core::fmt::rt::Argument::fmt::hf262f5ae63b7280d
at /rustc/244da22fabd9fa677bbd0ac601a88e5ca6917526/library/core/src/fmt/rt.rs:165:63
5: 0x7fc78dcb0a6b - core::fmt::write::hf662053177767752
at /rustc/244da22fabd9fa677bbd0ac601a88e5ca6917526/library/core/src/fmt/mod.rs:1157:21
6: 0x7fc78dc5653f - std::io::Write::write_fmt::hbe0746a38afa3ed8
at /rustc/244da22fabd9fa677bbd0ac601a88e5ca6917526/library/std/src/io/mod.rs:1832:15
7: 0x7fc78dc6170e - std::sys_common::backtrace::_print::h449d3837fdc38e9e
at /rustc/244da22fabd9fa677bbd0ac601a88e5ca6917526/library/std/src/sys_common/backtrace.rs:47:5
8: 0x7fc78dc6170e - std::sys_common::backtrace::print::hbaf62f5795d4cfbf
at /rustc/244da22fabd9fa677bbd0ac601a88e5ca6917526/library/std/src/sys_common/backtrace.rs:34:9
9: 0x7fc78dc64079 - std::panicking::default_hook::{{closure}}::hd3baa576f047dd31
10: 0x7fc78dc63dbd - std::panicking::default_hook::h629aac334d35fabe
at /rustc/244da22fabd9fa677bbd0ac601a88e5ca6917526/library/std/src/panicking.rs:298:9
11: 0x7fc78a652cfc - std[db34fec1d5020528]::panicking::update_hook::<alloc[d9f9aafa851aff33]::boxed::Box<rustc_driver_impl[5c10b38f6ed04dbe]::install_ice_hook::{closure#0}>>::{closure#0}
12: 0x7fc78a652cfc - std[db34fec1d5020528]::panicking::update_hook::<alloc[d9f9aafa851aff33]::boxed::Box<rustc_driver_impl[5c10b38f6ed04dbe]::install_ice_hook::{closure#0}>>::{closure#0}
13: 0x7fc78dc64776 - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::h1a245891e3b97a26
at /rustc/244da22fabd9fa677bbd0ac601a88e5ca6917526/library/alloc/src/boxed.rs:2036:9
14: 0x7fc78dc64776 - std::panicking::rust_panic_with_hook::h9a48efc72c1f19d6
at /rustc/244da22fabd9fa677bbd0ac601a88e5ca6917526/library/std/src/panicking.rs:799:13
15: 0x7fc78dc64524 - std::panicking::begin_panic_handler::{{closure}}::h7ba519a7ff46ba95
at /rustc/244da22fabd9fa677bbd0ac601a88e5ca6917526/library/std/src/panicking.rs:664:13
16: 0x7fc78dc61df9 - std::sys_common::backtrace::__rust_end_short_backtrace::h542fa69f276529d5
at /rustc/244da22fabd9fa677bbd0ac601a88e5ca6917526/library/std/src/sys_common/backtrace.rs:171:18
17: 0x7fc78dc64257 - rust_begin_unwind
at /rustc/244da22fabd9fa677bbd0ac601a88e5ca6917526/library/std/src/panicking.rs:652:5
18: 0x7fc78dcacf33 - core::panicking::panic_fmt::h7eb870b4cabf95b0
at /rustc/244da22fabd9fa677bbd0ac601a88e5ca6917526/library/core/src/panicking.rs:72:14
19: 0x7fc77c19cc68 - rustc_codegen_spirv::builder::builder_methods::<impl rustc_codegen_ssa::traits::builder::BuilderMethods for rustc_codegen_spirv::builder::Builder>::and::h3de7ceafa7d09fef
at /home/michal/rust-gpu/crates/rustc_codegen_spirv/src/builder/builder_methods.rs:1243:9
20: 0x7fc77c1b9eef - rustc_codegen_spirv::builder::intrinsics::<impl rustc_codegen_ssa::traits::intrinsic::IntrinsicCallMethods for rustc_codegen_spirv::builder::Builder>::codegen_intrinsic_call::he18382318c092a0d
at /home/michal/rust-gpu/crates/rustc_codegen_spirv/src/builder/intrinsics.rs:283:36
21: 0x7fc77c314eb9 - rustc_codegen_ssa::mir::intrinsic::<impl rustc_codegen_ssa::mir::FunctionCx<Bx>>::codegen_intrinsic_call::hdaedf831c17413ba
at /rustc/244da22fabd9fa677bbd0ac601a88e5ca6917526/compiler/rustc_codegen_ssa/src/mir/intrinsic.rs:508:24
22: 0x7fc77c2fa3e7 - rustc_codegen_ssa::mir::block::<impl rustc_codegen_ssa::mir::FunctionCx<Bx>>::codegen_call_terminator::hd798a22cb753efca
at /rustc/244da22fabd9fa677bbd0ac601a88e5ca6917526/compiler/rustc_codegen_ssa/src/mir/block.rs:956:23
23: 0x7fc77c2f835e - rustc_codegen_ssa::mir::block::<impl rustc_codegen_ssa::mir::FunctionCx<Bx>>::codegen_terminator::h212fef884ce12aa2
at /rustc/244da22fabd9fa677bbd0ac601a88e5ca6917526/compiler/rustc_codegen_ssa/src/mir/block.rs:1372:18
24: 0x7fc77c2f56b7 - rustc_codegen_ssa::mir::block::<impl rustc_codegen_ssa::mir::FunctionCx<Bx>>::codegen_block::h2b1f27c23923db79
at /rustc/244da22fabd9fa677bbd0ac601a88e5ca6917526/compiler/rustc_codegen_ssa/src/mir/block.rs:1259:32
25: 0x7fc77c2f20f6 - rustc_codegen_ssa::mir::codegen_mir::h0a3c6b6a40bb9cf3
at /rustc/244da22fabd9fa677bbd0ac601a88e5ca6917526/compiler/rustc_codegen_ssa/src/mir/mod.rs:270:13
26: 0x7fc77c097ef3 - rustc_codegen_ssa::base::codegen_instance::h0aa41afa02875a8d
at /rustc/244da22fabd9fa677bbd0ac601a88e5ca6917526/compiler/rustc_codegen_ssa/src/base.rs:386:5
27: 0x7fc77bf20e8d - <rustc_middle::mir::mono::MonoItem as rustc_codegen_ssa::mono_item::MonoItemExt>::define::h7866994c40a1de5e
at /rustc/244da22fabd9fa677bbd0ac601a88e5ca6917526/compiler/rustc_codegen_ssa/src/mono_item.rs:104:17
28: 0x7fc77c082b7e - <rustc_codegen_spirv::SpirvCodegenBackend as rustc_codegen_ssa::traits::backend::ExtraBackendMethods>::compile_codegen_unit::{{closure}}::hb88818f6b57b290e
at /home/michal/rust-gpu/crates/rustc_codegen_spirv/src/lib.rs:427:17
29: 0x7fc77c07379d - <rustc_codegen_spirv::SpirvCodegenBackend as rustc_codegen_ssa::traits::backend::ExtraBackendMethods>::compile_codegen_unit::hbed45f46a5f82cb3
at /home/michal/rust-gpu/crates/rustc_codegen_spirv/src/lib.rs:439:36
30: 0x7fc77c096432 - rustc_codegen_ssa::base::codegen_crate::hc5fcfd2f6ef47857
at /rustc/244da22fabd9fa677bbd0ac601a88e5ca6917526/compiler/rustc_codegen_ssa/src/base.rs:746:34
31: 0x7fc77c07238a - <rustc_codegen_spirv::SpirvCodegenBackend as rustc_codegen_ssa::traits::backend::CodegenBackend>::codegen_crate::h9e9308d203a90d6d
at /home/michal/rust-gpu/crates/rustc_codegen_spirv/src/lib.rs:225:18
32: 0x7fc78c8fc8df - rustc_interface[b67c563168272ea]::passes::start_codegen
33: 0x7fc78c8fbf5a - <rustc_interface[b67c563168272ea]::queries::Queries>::codegen_and_build_linker
34: 0x7fc78c617136 - rustc_interface[b67c563168272ea]::interface::run_compiler::<core[888f6a0b8de5a452]::result::Result<(), rustc_span[ff1220fe343bc5a6]::ErrorGuaranteed>, rustc_driver_impl[5c10b38f6ed04dbe]::run_compiler::{closure#0}>::{closure#1}
35: 0x7fc78c5fd509 - std[db34fec1d5020528]::sys_common::backtrace::__rust_begin_short_backtrace::<rustc_interface[b67c563168272ea]::util::run_in_thread_with_globals<rustc_interface[b67c563168272ea]::util::run_in_thread_pool_with_globals<rustc_interface[b67c563168272ea]::interface::run_compiler<core[888f6a0b8de5a452]::result::Result<(), rustc_span[ff1220fe343bc5a6]::ErrorGuaranteed>, rustc_driver_impl[5c10b38f6ed04dbe]::run_compiler::{closure#0}>::{closure#1}, core[888f6a0b8de5a452]::result::Result<(), rustc_span[ff1220fe343bc5a6]::ErrorGuaranteed>>::{closure#0}, core[888f6a0b8de5a452]::result::Result<(), rustc_span[ff1220fe343bc5a6]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[888f6a0b8de5a452]::result::Result<(), rustc_span[ff1220fe343bc5a6]::ErrorGuaranteed>>
36: 0x7fc78c5fd2ba - <<std[db34fec1d5020528]::thread::Builder>::spawn_unchecked_<rustc_interface[b67c563168272ea]::util::run_in_thread_with_globals<rustc_interface[b67c563168272ea]::util::run_in_thread_pool_with_globals<rustc_interface[b67c563168272ea]::interface::run_compiler<core[888f6a0b8de5a452]::result::Result<(), rustc_span[ff1220fe343bc5a6]::ErrorGuaranteed>, rustc_driver_impl[5c10b38f6ed04dbe]::run_compiler::{closure#0}>::{closure#1}, core[888f6a0b8de5a452]::result::Result<(), rustc_span[ff1220fe343bc5a6]::ErrorGuaranteed>>::{closure#0}, core[888f6a0b8de5a452]::result::Result<(), rustc_span[ff1220fe343bc5a6]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[888f6a0b8de5a452]::result::Result<(), rustc_span[ff1220fe343bc5a6]::ErrorGuaranteed>>::{closure#2} as core[888f6a0b8de5a452]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
37: 0x7fc78dc6e60b - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::ha4af6e05c1d0cf88
at /rustc/244da22fabd9fa677bbd0ac601a88e5ca6917526/library/alloc/src/boxed.rs:2022:9
38: 0x7fc78dc6e60b - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h102b55c00467134a
at /rustc/244da22fabd9fa677bbd0ac601a88e5ca6917526/library/alloc/src/boxed.rs:2022:9
39: 0x7fc78dc6e60b - std::sys::pal::unix::thread::Thread::new::thread_start::hde2208f61633c92b
at /rustc/244da22fabd9fa677bbd0ac601a88e5ca6917526/library/std/src/sys/pal/unix/thread.rs:108:17
40: 0x7fc7874a66d7 - start_thread
41: 0x7fc78752a60c - __clone3
42: 0x0 - <unknown>
error: the compiler unexpectedly panicked. this is a bug.
note: we would appreciate a bug report: https://github.com/rust-lang/rust/issues/new?labels=C-bug%2C+I-ICE%2C+T-compiler&template=ice.md
note: please make sure that you have updated to the latest nightly
note: please attach the file at `/home/michal/rust-gpu/rustc-ice-2024-12-02T22_24_58-50766.txt` to your bug report
note: compiler flags: --crate-type lib --crate-type dylib -C opt-level=3 -C embed-bitcode=no -C codegen-units=1 -C incremental=[REDACTED] -C strip=debuginfo -Z unstable-options -Z codegen-backend=/home/michal/rust-gpu/target/debug/deps/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
note: some of the compiler flags provided by cargo are hidden
query stack during panic:
end of query stack
error: the compiler unexpectedly panicked. this is a bug.
note: we would appreciate a bug report: https://github.com/rust-gpu/rust-gpu/issues/new
note: please make sure that you have updated to the latest nightly
note: please attach the file at `/home/michal/rust-gpu/rustc-ice-2024-12-02T22_24_58-50766.txt` to your bug report
note: compiler flags: --crate-type lib --crate-type dylib -C opt-level=3 -C embed-bitcode=no -C codegen-units=1 -C incremental=[REDACTED] -C strip=debuginfo -Z unstable-options -Z codegen-backend=/home/michal/rust-gpu/target/debug/deps/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
note: some of the compiler flags provided by cargo are hidden
query stack during panic:
end of query stack
note: `rust-gpu` version `0.9.0`
This seems to be caused by implementation of bswap
assuming its argument is unsigned, which is not correct.
BTW: This bug is the very first boon of fuzzing rustgpu
with rustlants
!