https://gcc.gnu.org/g:25652e25b53c1a47162256dcf644d2f19f9b0966

commit 25652e25b53c1a47162256dcf644d2f19f9b0966
Author: Pierre-Emmanuel Patry <pierre-emmanuel.pa...@embecosm.com>
Date:   Mon Nov 6 11:37:50 2023 +0100

    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.pa...@embecosm.com>

Diff:
---
 gcc/testsuite/rust/compile/pattern_variadic.rs       | 14 ++++++++++++++
 gcc/testsuite/rust/execute/torture/named_variadic.rs | 20 ++++++++++++++++++++
 2 files changed, 34 insertions(+)

diff --git a/gcc/testsuite/rust/compile/pattern_variadic.rs 
b/gcc/testsuite/rust/compile/pattern_variadic.rs
new file mode 100644
index 000000000000..2932b70f5b47
--- /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 000000000000..d9b59cff41c0
--- /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
+}

Reply via email to