]> git.lizzy.rs Git - rust.git/blob - tests/ui/abi/issues/issue-62350-sysv-neg-reg-counts.rs
Rollup merge of #106113 - krasimirgg:llvm-16-ext-tyid, r=nikic
[rust.git] / tests / ui / abi / issues / issue-62350-sysv-neg-reg-counts.rs
1 // run-pass
2 #![allow(dead_code)]
3 #![allow(improper_ctypes)]
4
5 // ignore-wasm32-bare no libc to test ffi with
6
7 #[derive(Copy, Clone)]
8 pub struct QuadFloats {
9     a: f32,
10     b: f32,
11     c: f32,
12     d: f32,
13 }
14
15 mod rustrt {
16     use super::QuadFloats;
17
18     #[link(name = "rust_test_helpers", kind = "static")]
19     extern "C" {
20         pub fn get_c_exhaust_sysv64_ints(
21             _: *const (),
22             _: *const (),
23             _: *const (),
24             _: *const (),
25             _: *const (),
26             _: *const (),
27             _: *const (),
28             h: QuadFloats,
29         ) -> f32;
30     }
31 }
32
33 fn test() {
34     unsafe {
35         let null = std::ptr::null();
36         let q = QuadFloats { a: 10.2, b: 20.3, c: 30.4, d: 40.5 };
37         assert_eq!(
38             rustrt::get_c_exhaust_sysv64_ints(null, null, null, null, null, null, null, q),
39             q.c,
40         );
41     }
42 }
43
44 pub fn main() {
45     test();
46 }