gccrs: Add named variadic argument test
Variadic arguments may have a name or a pattern. This commit provides two new tests in order to ensure their correct behavior. gcc/testsuite/ChangeLog: * rust/compile/pattern_variadic.rs: New test. * rust/execute/torture/named_variadic.rs: New test. Signed-off-by: Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
This commit is contained in:
parent
8e3740a25e
commit
0df14bb1f3
2 changed files with 34 additions and 0 deletions
14
gcc/testsuite/rust/compile/pattern_variadic.rs
Normal file
14
gcc/testsuite/rust/compile/pattern_variadic.rs
Normal file
|
@ -0,0 +1,14 @@
|
|||
extern "C" {
|
||||
fn printf(fmt: *const i8, _: ...);
|
||||
}
|
||||
|
||||
fn main() -> i32 {
|
||||
unsafe {
|
||||
printf(
|
||||
"%s" as *const str as *const i8,
|
||||
"Message" as *const str as *const i8,
|
||||
);
|
||||
}
|
||||
|
||||
0
|
||||
}
|
20
gcc/testsuite/rust/execute/torture/named_variadic.rs
Normal file
20
gcc/testsuite/rust/execute/torture/named_variadic.rs
Normal file
|
@ -0,0 +1,20 @@
|
|||
// { dg-output "Named variadic" }
|
||||
|
||||
extern "C" {
|
||||
fn printf(fmt: *const i8, variadic: ...);
|
||||
}
|
||||
|
||||
fn print(s: &str) {
|
||||
unsafe {
|
||||
printf(
|
||||
"%s" as *const str as *const i8,
|
||||
s as *const str as *const i8,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
fn main() -> i32 {
|
||||
print("Named variadic");
|
||||
|
||||
0
|
||||
}
|
Loading…
Add table
Reference in a new issue