]> git.proxmox.com Git - rustc.git/blame - src/test/ui/c-variadic/variadic-ffi-1.rs
Update unsuspicious file list
[rustc.git] / src / test / ui / c-variadic / variadic-ffi-1.rs
CommitLineData
136023e0
XL
1// needs-llvm-components: x86
2// compile-flags: --target=i686-pc-windows-msvc --crate-type=rlib
3#![no_core]
4#![feature(no_core, lang_items)]
5#[lang="sized"]
6trait Sized { }
7cac9316
XL
7
8extern "stdcall" {
487cf647
FG
9 fn printf(_: *const u8, ...);
10 //~^ ERROR: C-variadic function must have a compatible calling convention,
11 // like C, cdecl, win64, sysv64 or efiapi
1a4d82fc
JJ
12}
13
5869c6ff 14extern "C" {
1a4d82fc
JJ
15 fn foo(f: isize, x: u8, ...);
16}
17
18extern "C" fn bar(f: isize, x: u8) {}
19
20fn main() {
21 unsafe {
5869c6ff 22 foo(); //~ ERROR this function takes at least 2 arguments but 0 arguments were supplied
74b04a01 23 foo(1); //~ ERROR this function takes at least 2 arguments but 1 argument was supplied
1a4d82fc 24
48663c56
XL
25 let x: unsafe extern "C" fn(f: isize, x: u8) = foo; //~ ERROR mismatched types
26 let y: extern "C" fn(f: isize, x: u8, ...) = bar; //~ ERROR mismatched types
1a4d82fc 27
48663c56
XL
28 foo(1, 2, 3f32); //~ ERROR can't pass
29 foo(1, 2, true); //~ ERROR can't pass
5869c6ff
XL
30 foo(1, 2, 1i8); //~ ERROR can't pass
31 foo(1, 2, 1u8); //~ ERROR can't pass
48663c56
XL
32 foo(1, 2, 1i16); //~ ERROR can't pass
33 foo(1, 2, 1u16); //~ ERROR can't pass
1a4d82fc
JJ
34 }
35}