Skip to content

Update toolchain 2026-03-06#545

Draft
LegNeato wants to merge 34 commits intomainfrom
pr-542-latest-nightly-refresh
Draft

Update toolchain 2026-03-06#545
LegNeato wants to merge 34 commits intomainfrom
pr-542-latest-nightly-refresh

Conversation

@LegNeato
Copy link
Collaborator

@LegNeato LegNeato commented Mar 7, 2026

Requires #542

Firestar99 and others added 18 commits March 6, 2026 13:39
- Rewrite extern C fn sigs to Rust ABI to satisfy new rustc fn_abi sanity checks.

- Handle direct calls represented as ptr<void> by recovering function signature from callee type/fn_abi.

- Keep generated SPIR-V target JSON aligned with backend target options and rustc 1.93 schema expectations.
Refresh expected stderr for debug_printf trait-path wording and unwrap_or line mapping changes.
Normalize target-spec JSON before comparing backend-expected vs provided JSON by dropping the is-like-gpu key, which rustc rejects in external target JSON for non-nvptx/amdgcn targets.
_args: &[OperandRef<'tcx, Self::Value>],
_is_cleanup: bool,
) -> Self::Value {
bug!("LLVM intrinsic call not supported in SPIR-V backend: {instance:?}")
Copy link
Collaborator Author

Choose a reason for hiding this comment

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

I think we want to use this rather than our own home-grown replacements, but didn't want to do it in this PR.

@LegNeato LegNeato force-pushed the pr-542-latest-nightly-refresh branch from 14cdf92 to 6434ab8 Compare March 7, 2026 00:22
@nazar-pc
Copy link
Contributor

nazar-pc commented Mar 7, 2026

cargo-gpu will need to be updated again to match this, custom target specs since recently require an unstable CLI option:

error: `.json` target specs require -Zjson-target-spec

@nazar-pc
Copy link
Contributor

nazar-pc commented Mar 8, 2026

Tried to update with a patched cargo-gpu locally and it worked, but generated these warnings that were not present before:

Details
warning: failed to find and remove `format_args!` construction for this `panic!`
    --> /home/nazar-pc/.rustup/toolchains/nightly-2026-03-06-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ptr/mod.rs:2086:9
     |
2086 | /         ub_checks::assert_unsafe_precondition!(
2087 | |             check_language_ub,
2088 | |             "ptr::read_volatile requires that the pointer argument is aligned",
...    |
2092 | |             ) => ub_checks::maybe_is_aligned(addr, align)
2093 | |         );
     | |_________^
     |
     = note: compilation may later fail due to leftover `format_args!` internals
     = note: [RUST-GPU BUG] bailed from panic entry-point call args

warning: failed to find and remove `format_args!` construction for this `panic!`
   --> /home/nazar-pc/.rustup/toolchains/nightly-2026-03-06-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ptr/mod.rs:531:5
    |
531 | /     ub_checks::assert_unsafe_precondition!(
532 | |         check_language_ub,
533 | |         "ptr::copy_nonoverlapping requires that both pointer arguments are aligned and non-null \
534 | |         and the specified memory ranges do not overlap",
...   |
547 | |     );
    | |_____^
    |
    = note: compilation may later fail due to leftover `format_args!` internals
    = note: [RUST-GPU BUG] bailed from panic entry-point call args

warning: failed to find and remove `format_args!` construction for this `panic!`
   --> /home/nazar-pc/.rustup/toolchains/nightly-2026-03-06-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/slice/index.rs:240:9
    |
240 | /         assert_unsafe_precondition!(
241 | |             check_language_ub, // okay because of the `assume` below
242 | |             "slice::get_unchecked requires that the index is within the slice",
243 | |             (this: usize = self, len: usize = slice.len()) => this < len
244 | |         );
    | |_________^
    |
    = note: compilation may later fail due to leftover `format_args!` internals
    = note: [RUST-GPU BUG] bailed from fmt::Arguments::new call sequence ([Call(59851, 1387, [3516, 3517])])

warning: failed to find and remove `format_args!` construction for this `panic!`
   --> /home/nazar-pc/.rustup/toolchains/nightly-2026-03-06-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/slice/index.rs:240:9
    |
240 | /         assert_unsafe_precondition!(
241 | |             check_language_ub, // okay because of the `assume` below
242 | |             "slice::get_unchecked requires that the index is within the slice",
243 | |             (this: usize = self, len: usize = slice.len()) => this < len
244 | |         );
    | |_________^
    |
    = note: compilation may later fail due to leftover `format_args!` internals
    = note: [RUST-GPU BUG] bailed from fmt::Arguments::new call sequence ([Call(59882, 1390, [3522, 3523])])

warning: failed to find and remove `format_args!` construction for this `panic!`
   --> /home/nazar-pc/.rustup/toolchains/nightly-2026-03-06-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/slice/index.rs:260:9
    |
260 | /         assert_unsafe_precondition!(
261 | |             check_library_ub,
262 | |             "slice::get_unchecked_mut requires that the index is within the slice",
263 | |             (this: usize = self, len: usize = slice.len()) => this < len
264 | |         );
    | |_________^
    |
    = note: compilation may later fail due to leftover `format_args!` internals
    = note: [RUST-GPU BUG] bailed from fmt::Arguments::new call sequence ([Call(59911, 1381, [3527, 3528])])

warning: failed to find and remove `format_args!` construction for this `panic!`
   --> /home/nazar-pc/.rustup/toolchains/nightly-2026-03-06-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/slice/index.rs:240:9
    |
240 | /         assert_unsafe_precondition!(
241 | |             check_language_ub, // okay because of the `assume` below
242 | |             "slice::get_unchecked requires that the index is within the slice",
243 | |             (this: usize = self, len: usize = slice.len()) => this < len
244 | |         );
    | |_________^
    |
    = note: compilation may later fail due to leftover `format_args!` internals
    = note: [RUST-GPU BUG] bailed from fmt::Arguments::new call sequence ([Call(59936, 1393, [3533, 3534])])

warning: failed to find and remove `format_args!` construction for this `panic!`
   --> /home/nazar-pc/.rustup/toolchains/nightly-2026-03-06-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/slice/index.rs:240:9
    |
240 | /         assert_unsafe_precondition!(
241 | |             check_language_ub, // okay because of the `assume` below
242 | |             "slice::get_unchecked requires that the index is within the slice",
243 | |             (this: usize = self, len: usize = slice.len()) => this < len
244 | |         );
    | |_________^
    |
    = note: compilation may later fail due to leftover `format_args!` internals
    = note: [RUST-GPU BUG] bailed from fmt::Arguments::new call sequence ([Call(59967, 1396, [3539, 3540])])

warning: failed to find and remove `format_args!` construction for this `panic!`
   --> /home/nazar-pc/.rustup/toolchains/nightly-2026-03-06-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/slice/index.rs:240:9
    |
240 | /         assert_unsafe_precondition!(
241 | |             check_language_ub, // okay because of the `assume` below
242 | |             "slice::get_unchecked requires that the index is within the slice",
243 | |             (this: usize = self, len: usize = slice.len()) => this < len
244 | |         );
    | |_________^
    |
    = note: compilation may later fail due to leftover `format_args!` internals
    = note: [RUST-GPU BUG] bailed from fmt::Arguments::new call sequence ([Call(59998, 1399, [3545, 3546])])

warning: failed to find and remove `format_args!` construction for this `panic!`
   --> /home/nazar-pc/.rustup/toolchains/nightly-2026-03-06-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/slice/index.rs:260:9
    |
260 | /         assert_unsafe_precondition!(
261 | |             check_library_ub,
262 | |             "slice::get_unchecked_mut requires that the index is within the slice",
263 | |             (this: usize = self, len: usize = slice.len()) => this < len
264 | |         );
    | |_________^
    |
    = note: compilation may later fail due to leftover `format_args!` internals
    = note: [RUST-GPU BUG] bailed from fmt::Arguments::new call sequence ([Call(60027, 1384, [3550, 3551])])

warning: failed to find and remove `format_args!` construction for this `panic!`
   --> /home/nazar-pc/.rustup/toolchains/nightly-2026-03-06-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/slice/index.rs:240:9
    |
240 | /         assert_unsafe_precondition!(
241 | |             check_language_ub, // okay because of the `assume` below
242 | |             "slice::get_unchecked requires that the index is within the slice",
243 | |             (this: usize = self, len: usize = slice.len()) => this < len
244 | |         );
    | |_________^
    |
    = note: compilation may later fail due to leftover `format_args!` internals
    = note: [RUST-GPU BUG] bailed from fmt::Arguments::new call sequence ([Call(60052, 1402, [3556, 3557])])

warning: failed to find and remove `format_args!` construction for this `panic!`
   --> /home/nazar-pc/.rustup/toolchains/nightly-2026-03-06-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/slice/index.rs:326:9
    |
326 | /         assert_unsafe_precondition!(
327 | |             check_library_ub,
328 | |             "slice::get_unchecked_mut requires that the index is within the slice",
329 | |             (end: usize = self.end(), len: usize = slice.len()) => end <= len
330 | |         );
    | |_________^
    |
    = note: compilation may later fail due to leftover `format_args!` internals
    = note: [RUST-GPU BUG] bailed from fmt::Arguments::new call sequence ([Call(60985, 1071, [60970]), Call(60988, 1378, [3948, 3949])])

@nazar-pc nazar-pc mentioned this pull request Mar 8, 2026
@LegNeato
Copy link
Collaborator Author

LegNeato commented Mar 8, 2026

Cool, I'll take a look. There were some changes in this area.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants