2022-12-30 14:11:30 -06:00
|
|
|
// compile-flags: -C no-prepopulate-passes -Copt-level=0
|
2019-03-27 08:00:37 -05:00
|
|
|
//
|
|
|
|
// 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() {
|
2023-07-27 16:44:13 -05:00
|
|
|
// CHECK: call void (i32, ...) @variadic_fn(i32 0, i8 {{.*}}, ptr {{.*}})
|
2019-03-27 08:00:37 -05:00
|
|
|
variadic_fn(0, Foo(0), Bar(0, 0, 0))
|
|
|
|
}
|