]> git.proxmox.com Git - rustc.git/blame - src/test/ui/c-variadic/variadic-ffi-1.rs
New upstream version 1.55.0+dfsg1
[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" {
9 fn printf(_: *const u8, ...); //~ ERROR: variadic function must have C or cdecl calling
1a4d82fc
JJ
10}
11
5869c6ff 12extern "C" {
1a4d82fc
JJ
13 fn foo(f: isize, x: u8, ...);
14}
15
16extern "C" fn bar(f: isize, x: u8) {}
17
18fn main() {
19 unsafe {
5869c6ff 20 foo(); //~ ERROR this function takes at least 2 arguments but 0 arguments were supplied
74b04a01 21 foo(1); //~ ERROR this function takes at least 2 arguments but 1 argument was supplied
1a4d82fc 22
48663c56
XL
23 let x: unsafe extern "C" fn(f: isize, x: u8) = foo; //~ ERROR mismatched types
24 let y: extern "C" fn(f: isize, x: u8, ...) = bar; //~ ERROR mismatched types
1a4d82fc 25
48663c56
XL
26 foo(1, 2, 3f32); //~ ERROR can't pass
27 foo(1, 2, true); //~ ERROR can't pass
5869c6ff
XL
28 foo(1, 2, 1i8); //~ ERROR can't pass
29 foo(1, 2, 1u8); //~ ERROR can't pass
48663c56
XL
30 foo(1, 2, 1i16); //~ ERROR can't pass
31 foo(1, 2, 1u16); //~ ERROR can't pass
1a4d82fc
JJ
32 }
33}