Upgrade toolchain to 2025-08-10 #4289
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Culprit PR: rust-lang/rust#144192
The upstream PR adds a new generic argument
U
for some atomic intrinsics, so our tests need to include those.Solely changing the tests to infer the generic argument makes compilation succeed, but this
atomic_xor
harness fails with this error:This happens because
codegen_atomic_binop
currently handles the case whereT
is a pointer by checking ifvar2
is a pointer, then castingvar1
andvar2
tosize_t
:kani/kani-compiler/src/codegen_cprover_gotoc/codegen/intrinsic.rs
Lines 241 to 245 in 41849d2
fetch_xor
:since
var2
is no longer a pointer, we hit the else case, and thus the solution from #3047 no longer takes effect.The solution is to instead check if
var1
is a pointer. We also remove the cast ofvar2
to a size_t, since per the new documentation:U
is guaranteed to be ausize
ifT
is a pointer, and we codegen usizes assize_t
s already.Resolves #4284
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 and MIT licenses.