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
1010struct 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}
0 commit comments