From 9fc6a27b5c6ea2c775646c4474b9084da76b1764 Mon Sep 17 00:00:00 2001 From: liushuyu Date: Tue, 2 Aug 2022 02:17:48 -0600 Subject: expand: correctly handles non-macro nodes ... ... when expanding macros recursively to avoid improperly stripping them Signed-off-by: Zixing Liu --- gcc/testsuite/rust/compile/macro-issue1403.rs | 31 +++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 gcc/testsuite/rust/compile/macro-issue1403.rs (limited to 'gcc/testsuite') diff --git a/gcc/testsuite/rust/compile/macro-issue1403.rs b/gcc/testsuite/rust/compile/macro-issue1403.rs new file mode 100644 index 0000000..756d374 --- /dev/null +++ b/gcc/testsuite/rust/compile/macro-issue1403.rs @@ -0,0 +1,31 @@ +// { dg-do compile } +// { dg-options "-O1 -gdwarf-5 -dA -w" } +macro_rules! stmt { + ($s:stmt) => { + $s + }; + ($s:stmt, $($ss:stmt),*) => { + $s; + stmt!($($ss),*); + }; +} + +pub fn test() -> i32 { + stmt!( + let a = 1 + ); + stmt!( + let b = 2, + let c = 3, + let d = 4, + let e = 5, + let f = b + c + d + e + ); + // { dg-final { scan-assembler "14" } } + f +} + +fn main() { + let _ = test(); +} + -- cgit v1.1