diff options
author | Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com> | 2023-11-06 11:37:50 +0100 |
---|---|---|
committer | Arthur Cohen <arthur.cohen@embecosm.com> | 2024-01-16 19:13:12 +0100 |
commit | 0df14bb1f3d944ea7281979d03c812a8d2c09ce7 (patch) | |
tree | a8f6826e5c79d4b683b878f47cc1b4d45def3a1a /gcc | |
parent | 8e3740a25eea13c9639ba9f11a0c1045de7374f8 (diff) | |
download | gcc-0df14bb1f3d944ea7281979d03c812a8d2c09ce7.zip gcc-0df14bb1f3d944ea7281979d03c812a8d2c09ce7.tar.gz gcc-0df14bb1f3d944ea7281979d03c812a8d2c09ce7.tar.bz2 |
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>
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/testsuite/rust/compile/pattern_variadic.rs | 14 | ||||
-rw-r--r-- | gcc/testsuite/rust/execute/torture/named_variadic.rs | 20 |
2 files changed, 34 insertions, 0 deletions
diff --git a/gcc/testsuite/rust/compile/pattern_variadic.rs b/gcc/testsuite/rust/compile/pattern_variadic.rs new file mode 100644 index 0000000..2932b70 --- /dev/null +++ b/gcc/testsuite/rust/compile/pattern_variadic.rs @@ -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 +} diff --git a/gcc/testsuite/rust/execute/torture/named_variadic.rs b/gcc/testsuite/rust/execute/torture/named_variadic.rs new file mode 100644 index 0000000..d9b59cf --- /dev/null +++ b/gcc/testsuite/rust/execute/torture/named_variadic.rs @@ -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 +} |