aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorPierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>2023-11-06 11:37:50 +0100
committerArthur Cohen <arthur.cohen@embecosm.com>2024-01-16 19:13:12 +0100
commit0df14bb1f3d944ea7281979d03c812a8d2c09ce7 (patch)
treea8f6826e5c79d4b683b878f47cc1b4d45def3a1a /gcc
parent8e3740a25eea13c9639ba9f11a0c1045de7374f8 (diff)
downloadgcc-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.rs14
-rw-r--r--gcc/testsuite/rust/execute/torture/named_variadic.rs20
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
+}