diff options
Diffstat (limited to 'src/test/run-make/raw-dylib-alt-calling-convention/lib.rs')
| -rw-r--r-- | src/test/run-make/raw-dylib-alt-calling-convention/lib.rs | 115 |
1 files changed, 0 insertions, 115 deletions
diff --git a/src/test/run-make/raw-dylib-alt-calling-convention/lib.rs b/src/test/run-make/raw-dylib-alt-calling-convention/lib.rs deleted file mode 100644 index 22f222c12c3..00000000000 --- a/src/test/run-make/raw-dylib-alt-calling-convention/lib.rs +++ /dev/null @@ -1,115 +0,0 @@ -#![feature(abi_vectorcall)] -#![cfg_attr(target_arch = "x86", feature(raw_dylib))] - -#[repr(C)] -#[derive(Clone)] -struct S { - x: u8, - y: i32, -} - -#[repr(C)] -#[derive(Clone)] -struct S2 { - x: i32, - y: u8, -} - -#[repr(C)] -#[derive(Clone)] -struct S3 { - x: [u8; 5], -} - -#[link(name = "extern", kind = "raw-dylib")] -extern "stdcall" { - fn stdcall_fn_1(i: i32); - fn stdcall_fn_2(c: u8, f: f32); - fn stdcall_fn_3(d: f64); - fn stdcall_fn_4(i: u8, j: u8, f: f32); - fn stdcall_fn_5(a: S, b: i32); - fn stdcall_fn_6(a: Option<&S>); - fn stdcall_fn_7(a: S2, b: i32); - fn stdcall_fn_8(a: S3, b: S3); - fn stdcall_fn_9(x: u8, y: f64); - #[link_name = "stdcall_fn_10"] - fn stdcall_fn_10_renamed(i: i32); -} - -#[link(name = "extern", kind = "raw-dylib")] -extern "fastcall" { - fn fastcall_fn_1(i: i32); - fn fastcall_fn_2(c: u8, f: f32); - fn fastcall_fn_3(d: f64); - fn fastcall_fn_4(i: u8, j: u8, f: f32); - fn fastcall_fn_5(a: S, b: i32); - fn fastcall_fn_6(a: Option<&S>); - fn fastcall_fn_7(a: S2, b: i32); - fn fastcall_fn_8(a: S3, b: S3); - fn fastcall_fn_9(x: u8, y: f64); - #[link_name = "fastcall_fn_10"] - fn fastcall_fn_10_renamed(i: i32); -} - -#[cfg(target_env = "msvc")] -#[link(name = "extern", kind = "raw-dylib")] -extern "vectorcall" { - fn vectorcall_fn_1(i: i32); - fn vectorcall_fn_2(c: u8, f: f32); - fn vectorcall_fn_3(d: f64); - fn vectorcall_fn_4(i: u8, j: u8, f: f32); - fn vectorcall_fn_5(a: S, b: i32); - fn vectorcall_fn_6(a: Option<&S>); - fn vectorcall_fn_7(a: S2, b: i32); - fn vectorcall_fn_8(a: S3, b: S3); - fn vectorcall_fn_9(x: u8, y: f64); - #[link_name = "vectorcall_fn_10"] - fn vectorcall_fn_10_renamed(i: i32); -} - -pub fn library_function(run_msvc_only: bool) { - unsafe { - if !run_msvc_only { - stdcall_fn_1(14); - stdcall_fn_2(16, 3.5); - stdcall_fn_3(3.5); - stdcall_fn_4(1, 2, 3.0); - stdcall_fn_5(S { x: 1, y: 2 }, 16); - stdcall_fn_6(Some(&S { x: 10, y: 12 })); - stdcall_fn_7(S2 { x: 15, y: 16 }, 3); - stdcall_fn_8(S3 { x: [1, 2, 3, 4, 5] }, S3 { x: [6, 7, 8, 9, 10] }); - stdcall_fn_9(1, 3.0); - stdcall_fn_10_renamed(19); - - fastcall_fn_1(14); - fastcall_fn_2(16, 3.5); - fastcall_fn_3(3.5); - fastcall_fn_4(1, 2, 3.0); - fastcall_fn_6(Some(&S { x: 10, y: 12 })); - fastcall_fn_8(S3 { x: [1, 2, 3, 4, 5] }, S3 { x: [6, 7, 8, 9, 10] }); - fastcall_fn_9(1, 3.0); - fastcall_fn_10_renamed(19); - } else { - // FIXME: 91167 - // rustc generates incorrect code for the calls to fastcall_fn_5 and fastcall_fn_7 - // on i686-pc-windows-gnu; disabling these until the indicated issue is fixed. - fastcall_fn_5(S { x: 1, y: 2 }, 16); - fastcall_fn_7(S2 { x: 15, y: 16 }, 3); - - // GCC doesn't support vectorcall: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89485 - #[cfg(target_env = "msvc")] - { - vectorcall_fn_1(14); - vectorcall_fn_2(16, 3.5); - vectorcall_fn_3(3.5); - vectorcall_fn_4(1, 2, 3.0); - vectorcall_fn_5(S { x: 1, y: 2 }, 16); - vectorcall_fn_6(Some(&S { x: 10, y: 12 })); - vectorcall_fn_7(S2 { x: 15, y: 16 }, 3); - vectorcall_fn_8(S3 { x: [1, 2, 3, 4, 5] }, S3 { x: [6, 7, 8, 9, 10] }); - vectorcall_fn_9(1, 3.0); - vectorcall_fn_10_renamed(19); - } - } - } -} |
