summaryrefslogtreecommitdiffstats
path: root/src/test/codegen/issue-58881.rs
blob: 0900a33377bcdc41993464d83fb5043e9bccde70 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
// compile-flags: -C no-prepopulate-passes
//
// only-x86_64
// ignore-windows

#![crate_type = "lib"]

extern "C" {
    fn variadic_fn(_: i32, ...);
}

#[repr(C)]
struct Foo(u8);
#[repr(C)]
struct Bar(u64, u64, u64);

// Ensure that emit arguments of the correct type.
pub unsafe fn test_call_variadic() {
    // CHECK: call void (i32, ...) @variadic_fn(i32 0, i8 {{.*}}, {{%Bar\*|ptr}} {{.*}})
    variadic_fn(0, Foo(0), Bar(0, 0, 0))
}