]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
gccrs: patterns: Add execution testcases to verify proper pattern matching
authorArthur Cohen <arthur.cohen@embecosm.com>
Fri, 21 Apr 2023 09:22:52 +0000 (11:22 +0200)
committerArthur Cohen <arthur.cohen@embecosm.com>
Tue, 16 Jan 2024 17:34:12 +0000 (18:34 +0100)
These testcases are similar to the ones added in #2072 but regarding
execution. One more issue was opened from them - #2144

gcc/testsuite/ChangeLog:

* rust/execute/torture/issue-1852-1.rs: New test.
* rust/execute/torture/issue-1852.rs: New test.

gcc/testsuite/rust/execute/torture/issue-1852-1.rs [new file with mode: 0644]
gcc/testsuite/rust/execute/torture/issue-1852.rs [new file with mode: 0644]

diff --git a/gcc/testsuite/rust/execute/torture/issue-1852-1.rs b/gcc/testsuite/rust/execute/torture/issue-1852-1.rs
new file mode 100644 (file)
index 0000000..1286c1b
--- /dev/null
@@ -0,0 +1,15 @@
+enum Foo {
+    A,
+    B(i32),
+}
+
+fn main() -> i32 {
+    let result = Foo::A;
+
+    let value = match result {
+        Foo::A => 15,
+        Foo::B(x) => x,
+    };
+
+    value - 15
+}
diff --git a/gcc/testsuite/rust/execute/torture/issue-1852.rs b/gcc/testsuite/rust/execute/torture/issue-1852.rs
new file mode 100644 (file)
index 0000000..a8bf128
--- /dev/null
@@ -0,0 +1,15 @@
+enum Foo {
+    A,
+    B(i32),
+}
+
+fn main() -> i32 {
+    let result = Foo::B(123);
+
+    let value = match result {
+        Foo::A => 15,
+        Foo::B(x) => x,
+    };
+
+    value - 123
+}