]> git.lizzy.rs Git - rust.git/blob - src/test/ui/intrinsics/intrinsic-alignment.rs
Rollup merge of #82259 - osa1:issue82156, r=petrochenkov
[rust.git] / src / test / ui / intrinsics / intrinsic-alignment.rs
1 // run-pass
2 // ignore-wasm32-bare seems not important to test here
3
4 #![feature(intrinsics, main)]
5
6 mod rusti {
7     extern "rust-intrinsic" {
8         pub fn pref_align_of<T>() -> usize;
9         pub fn min_align_of<T>() -> usize;
10     }
11 }
12
13 #[cfg(any(target_os = "android",
14           target_os = "dragonfly",
15           target_os = "emscripten",
16           target_os = "freebsd",
17           target_os = "linux",
18           target_os = "macos",
19           target_os = "netbsd",
20           target_os = "openbsd",
21           target_os = "solaris",
22           target_os = "vxworks"))]
23 mod m {
24     #[main]
25     #[cfg(target_arch = "x86")]
26     pub fn main() {
27         unsafe {
28             assert_eq!(::rusti::pref_align_of::<u64>(), 8);
29             assert_eq!(::rusti::min_align_of::<u64>(), 4);
30         }
31     }
32
33     #[main]
34     #[cfg(not(target_arch = "x86"))]
35     pub fn main() {
36         unsafe {
37             assert_eq!(::rusti::pref_align_of::<u64>(), 8);
38             assert_eq!(::rusti::min_align_of::<u64>(), 8);
39         }
40     }
41 }
42
43 #[cfg(target_env = "sgx")]
44 mod m {
45     #[main]
46     #[cfg(target_arch = "x86_64")]
47     pub fn main() {
48         unsafe {
49             assert_eq!(::rusti::pref_align_of::<u64>(), 8);
50             assert_eq!(::rusti::min_align_of::<u64>(), 8);
51         }
52     }
53 }
54
55 #[cfg(target_os = "windows")]
56 mod m {
57     #[main]
58     pub fn main() {
59         unsafe {
60             assert_eq!(::rusti::pref_align_of::<u64>(), 8);
61             assert_eq!(::rusti::min_align_of::<u64>(), 8);
62         }
63     }
64 }