| //@ ignore-arm stdcall isn't supported |
| #![feature(extended_varargs_abi_support)] |
| |
| #[allow(unsupported_fn_ptr_calling_conventions)] |
| fn baz(f: extern "stdcall" fn(usize, ...)) { |
| //~^ ERROR: C-variadic function must have a compatible calling convention, |
| // like C, cdecl, system, aapcs, win64, sysv64 or efiapi |
| f(22, 44); |
| } |
| |
| fn system(f: extern "system" fn(usize, ...)) { |
| f(22, 44); |
| } |
| #[cfg(target_arch = "x86_64")] |
| fn sysv(f: extern "sysv64" fn(usize, ...)) { |
| f(22, 44); |
| } |
| #[cfg(target_arch = "x86_64")] |
| fn win(f: extern "win64" fn(usize, ...)) { |
| f(22, 44); |
| } |
| #[cfg(any( |
| target_arch = "arm", |
| target_arch = "aarch64", |
| target_arch = "riscv32", |
| target_arch = "riscv64", |
| target_arch = "x86", |
| target_arch = "x86_64" |
| ))] |
| fn efiapi(f: extern "efiapi" fn(usize, ...)) { |
| f(22, 44); |
| } |
| |
| fn main() {} |