aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
Diffstat (limited to 'gcc')
-rw-r--r--gcc/testsuite/rust/compile/macro_return.rs (renamed from gcc/testsuite/rust/compile/xfail/macro_return.rs)2
-rw-r--r--gcc/testsuite/rust/compile/torture/macro_as_expr.rs14
2 files changed, 15 insertions, 1 deletions
diff --git a/gcc/testsuite/rust/compile/xfail/macro_return.rs b/gcc/testsuite/rust/compile/macro_return.rs
index c335929..8b06f87 100644
--- a/gcc/testsuite/rust/compile/xfail/macro_return.rs
+++ b/gcc/testsuite/rust/compile/macro_return.rs
@@ -1,4 +1,4 @@
-// { dg-excess-errors "...." { xfail *-*-*-* *-*-* } }
+// { dg-additional-options "-w" }
macro_rules! add {
($a:expr) => { $a };
diff --git a/gcc/testsuite/rust/compile/torture/macro_as_expr.rs b/gcc/testsuite/rust/compile/torture/macro_as_expr.rs
new file mode 100644
index 0000000..b0084e7
--- /dev/null
+++ b/gcc/testsuite/rust/compile/torture/macro_as_expr.rs
@@ -0,0 +1,14 @@
+// { dg-additional-options "-w" }
+
+macro_rules! add {
+ ($a:expr) => { $a };
+ ($a:expr, $($b:expr),+) => { $a + add!($($b),*) }
+}
+
+fn main() -> i32 {
+ if add!(add!(1, 2)) > add!(5) {
+ add!(1, add!(2, 3), add!(4))
+ } else {
+ add!(5, add!(6, 7), add!(8), 9) + 10
+ }
+}