Skip to content

Commit 4d166fb

Browse files
authored
Upgrade Rust toolchain to 2025-06-16 (#4157)
Relevant upstream PR: - rust-lang/rust#142410 (intrinsics: rename min_align_of to align_of) Resolves: #4155 By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 and MIT licenses.
1 parent 72ceaa3 commit 4d166fb

File tree

6 files changed

+92
-117
lines changed

6 files changed

+92
-117
lines changed

docs/src/rust-feature-support/intrinsics.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -174,8 +174,8 @@ logf32 | Partial | Results are overapproximated |
174174
logf64 | Partial | Results are overapproximated |
175175
maxnumf32 | Yes | |
176176
maxnumf64 | Yes | |
177-
min_align_of | Yes | |
178-
min_align_of_val | Yes | |
177+
align_of | Yes | |
178+
align_of_val | Yes | |
179179
minnumf32 | Yes | |
180180
minnumf64 | Yes | |
181181
move_val_init | No | |

kani-compiler/src/intrinsics.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -309,11 +309,11 @@ impl Intrinsic {
309309
assert_sig_matches!(sig, RigidTy::Bool => RigidTy::Bool);
310310
Self::Likely
311311
}
312-
"min_align_of" => {
312+
"align_of" => {
313313
assert_sig_matches!(sig, => RigidTy::Uint(UintTy::Usize));
314314
Self::MinAlignOf
315315
}
316-
"min_align_of_val" => {
316+
"align_of_val" => {
317317
assert_sig_matches!(sig, RigidTy::RawPtr(_, Mutability::Not) => RigidTy::Uint(UintTy::Usize));
318318
Self::MinAlignOfVal
319319
}

rust-toolchain.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,5 +2,5 @@
22
# SPDX-License-Identifier: Apache-2.0 OR MIT
33

44
[toolchain]
5-
channel = "nightly-2025-06-13"
5+
channel = "nightly-2025-06-16"
66
components = ["llvm-tools", "rustc-dev", "rust-src", "rustfmt"]
Lines changed: 44 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
// Copyright Kani Contributors
22
// SPDX-License-Identifier: Apache-2.0 OR MIT
33

4-
// Check that we get the expected results for the `min_align_of_val` intrinsic
4+
// Check that we get the expected results for the `align_of_val` intrinsic
55
// with common data types. Note that these tests assume an x86_64 architecture,
66
// which is the only architecture supported by Kani at the moment.
77
#![feature(core_intrinsics)]
8-
use std::intrinsics::min_align_of_val;
8+
use std::intrinsics::align_of_val;
99

1010
struct MyStruct {
1111
val: u32,
@@ -26,55 +26,55 @@ fn main() {
2626
#[cfg(target_arch = "x86_64")]
2727
unsafe {
2828
// Scalar types
29-
assert!(min_align_of_val(&0i8) == 1);
30-
assert!(min_align_of_val(&0i16) == 2);
31-
assert!(min_align_of_val(&0i32) == 4);
32-
assert!(min_align_of_val(&0i64) == 8);
33-
assert!(min_align_of_val(&0i128) == 16);
34-
assert!(min_align_of_val(&0isize) == 8);
35-
assert!(min_align_of_val(&0u8) == 1);
36-
assert!(min_align_of_val(&0u16) == 2);
37-
assert!(min_align_of_val(&0u32) == 4);
38-
assert!(min_align_of_val(&0u64) == 8);
39-
assert!(min_align_of_val(&0u128) == 16);
40-
assert!(min_align_of_val(&0usize) == 8);
41-
assert!(min_align_of_val(&0f32) == 4);
42-
assert!(min_align_of_val(&0f64) == 8);
43-
assert!(min_align_of_val(&false) == 1);
44-
assert!(min_align_of_val(&(0 as char)) == 4);
29+
assert!(align_of_val(&0i8) == 1);
30+
assert!(align_of_val(&0i16) == 2);
31+
assert!(align_of_val(&0i32) == 4);
32+
assert!(align_of_val(&0i64) == 8);
33+
assert!(align_of_val(&0i128) == 16);
34+
assert!(align_of_val(&0isize) == 8);
35+
assert!(align_of_val(&0u8) == 1);
36+
assert!(align_of_val(&0u16) == 2);
37+
assert!(align_of_val(&0u32) == 4);
38+
assert!(align_of_val(&0u64) == 8);
39+
assert!(align_of_val(&0u128) == 16);
40+
assert!(align_of_val(&0usize) == 8);
41+
assert!(align_of_val(&0f32) == 4);
42+
assert!(align_of_val(&0f64) == 8);
43+
assert!(align_of_val(&false) == 1);
44+
assert!(align_of_val(&(0 as char)) == 4);
4545
// Compound types (tuple and array)
46-
assert!(min_align_of_val(&(0i32, 0i32)) == 4);
47-
assert!(min_align_of_val(&[0i32; 5]) == 4);
46+
assert!(align_of_val(&(0i32, 0i32)) == 4);
47+
assert!(align_of_val(&[0i32; 5]) == 4);
4848
// Custom data types (struct and enum)
49-
assert!(min_align_of_val(&MyStruct { val: 0u32 }) == 4);
50-
assert!(min_align_of_val(&MyEnum::Variant) == 1);
51-
assert!(min_align_of_val(&CStruct { a: 0u8, b: 0i32 }) == 4);
49+
assert!(align_of_val(&MyStruct { val: 0u32 }) == 4);
50+
assert!(align_of_val(&MyEnum::Variant) == 1);
51+
assert!(align_of_val(&CStruct { a: 0u8, b: 0i32 }) == 4);
5252
}
5353
#[cfg(target_arch = "aarch64")]
5454
unsafe {
5555
// Scalar types
56-
assert!(min_align_of_val(&0i8) == 1);
57-
assert!(min_align_of_val(&0i16) == 2);
58-
assert!(min_align_of_val(&0i32) == 4);
59-
assert!(min_align_of_val(&0i64) == 8);
60-
assert!(min_align_of_val(&0i128) == 16);
61-
assert!(min_align_of_val(&0isize) == 8);
62-
assert!(min_align_of_val(&0u8) == 1);
63-
assert!(min_align_of_val(&0u16) == 2);
64-
assert!(min_align_of_val(&0u32) == 4);
65-
assert!(min_align_of_val(&0u64) == 8);
66-
assert!(min_align_of_val(&0u128) == 16);
67-
assert!(min_align_of_val(&0usize) == 8);
68-
assert!(min_align_of_val(&0f32) == 4);
69-
assert!(min_align_of_val(&0f64) == 8);
70-
assert!(min_align_of_val(&false) == 1);
71-
assert!(min_align_of_val(&(0 as char)) == 4);
56+
assert!(align_of_val(&0i8) == 1);
57+
assert!(align_of_val(&0i16) == 2);
58+
assert!(align_of_val(&0i32) == 4);
59+
assert!(align_of_val(&0i64) == 8);
60+
assert!(align_of_val(&0i128) == 16);
61+
assert!(align_of_val(&0isize) == 8);
62+
assert!(align_of_val(&0u8) == 1);
63+
assert!(align_of_val(&0u16) == 2);
64+
assert!(align_of_val(&0u32) == 4);
65+
assert!(align_of_val(&0u64) == 8);
66+
assert!(align_of_val(&0u128) == 16);
67+
assert!(align_of_val(&0usize) == 8);
68+
assert!(align_of_val(&0f32) == 4);
69+
assert!(align_of_val(&0f64) == 8);
70+
assert!(align_of_val(&false) == 1);
71+
assert!(align_of_val(&(0 as char)) == 4);
7272
// Compound types (tuple and array)
73-
assert!(min_align_of_val(&(0i32, 0i32)) == 4);
74-
assert!(min_align_of_val(&[0i32; 5]) == 4);
73+
assert!(align_of_val(&(0i32, 0i32)) == 4);
74+
assert!(align_of_val(&[0i32; 5]) == 4);
7575
// Custom data types (struct and enum)
76-
assert!(min_align_of_val(&MyStruct { val: 0u32 }) == 4);
77-
assert!(min_align_of_val(&MyEnum::Variant) == 1);
78-
assert!(min_align_of_val(&CStruct { a: 0u8, b: 0i32 }) == 4);
76+
assert!(align_of_val(&MyStruct { val: 0u32 }) == 4);
77+
assert!(align_of_val(&MyEnum::Variant) == 1);
78+
assert!(align_of_val(&CStruct { a: 0u8, b: 0i32 }) == 4);
7979
}
8080
}
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
// Copyright Kani Contributors
2+
// SPDX-License-Identifier: Apache-2.0 OR MIT
3+
4+
// Check that we get the expected results for the `align_of` intrinsic
5+
// with common data types
6+
#![feature(core_intrinsics)]
7+
use std::intrinsics::align_of;
8+
9+
struct MyStruct {}
10+
11+
enum MyEnum {}
12+
13+
#[kani::proof]
14+
fn main() {
15+
// for the following types x86_64 and aarch64 agree on the alignment; see
16+
// AlignOfVal/align_of_fat_ptr.rs for some example of where they don't agree
17+
#[cfg(any(target_arch = "x86_64", target_arch = "aarch64"))]
18+
{
19+
// Scalar types
20+
assert!(align_of::<i8>() == 1);
21+
assert!(align_of::<i16>() == 2);
22+
assert!(align_of::<i32>() == 4);
23+
assert!(align_of::<i64>() == 8);
24+
assert!(align_of::<i128>() == 16);
25+
assert!(align_of::<isize>() == 8);
26+
assert!(align_of::<u8>() == 1);
27+
assert!(align_of::<u16>() == 2);
28+
assert!(align_of::<u32>() == 4);
29+
assert!(align_of::<u64>() == 8);
30+
assert!(align_of::<u128>() == 16);
31+
assert!(align_of::<usize>() == 8);
32+
assert!(align_of::<f32>() == 4);
33+
assert!(align_of::<f64>() == 8);
34+
assert!(align_of::<bool>() == 1);
35+
assert!(align_of::<char>() == 4);
36+
// Compound types (tuple and array)
37+
assert!(align_of::<(i32, i32)>() == 4);
38+
assert!(align_of::<[i32; 5]>() == 4);
39+
// Custom data types (struct and enum)
40+
assert!(align_of::<MyStruct>() == 1);
41+
assert!(align_of::<MyEnum>() == 1);
42+
}
43+
}

tests/kani/Intrinsics/ConstEval/min_align_of.rs

Lines changed: 0 additions & 68 deletions
This file was deleted.

0 commit comments

Comments
 (0)