diff options
author | Arthur Cohen <arthur.cohen@embecosm.com> | 2022-03-03 14:26:23 +0100 |
---|---|---|
committer | Arthur Cohen <arthur.cohen@embecosm.com> | 2022-03-03 15:21:09 +0100 |
commit | 0c7e16e1258b67ba8efa1b019802bee4d802d4a5 (patch) | |
tree | 89dfecb7d84cb7a94abf40b63a4eb48fb7069e04 /gcc | |
parent | 4fde21b37a2de2d2915d13d108395e86980aef96 (diff) | |
download | gcc-0c7e16e1258b67ba8efa1b019802bee4d802d4a5.zip gcc-0c7e16e1258b67ba8efa1b019802bee4d802d4a5.tar.gz gcc-0c7e16e1258b67ba8efa1b019802bee4d802d4a5.tar.bz2 |
macros: Add test cases for macro repetition separators
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/testsuite/rust/compile/macro9.rs | 17 | ||||
-rw-r--r-- | gcc/testsuite/rust/execute/torture/macros19.rs | 14 | ||||
-rw-r--r-- | gcc/testsuite/rust/execute/torture/macros20.rs | 14 |
3 files changed, 45 insertions, 0 deletions
diff --git a/gcc/testsuite/rust/compile/macro9.rs b/gcc/testsuite/rust/compile/macro9.rs new file mode 100644 index 0000000..9a59089 --- /dev/null +++ b/gcc/testsuite/rust/compile/macro9.rs @@ -0,0 +1,17 @@ +macro_rules! add { + ($e:expr, $($es:expr),*) => { + $e + add!($($es),*) + }; + ($e:expr) => { + $e + }; +} + +fn main() -> i32 { + let a = add!(15 2 9); // { dg-error "Failed to match any rule within macro" } + let b = add!(15); + let b = add!(15 14); // { dg-error "Failed to match any rule within macro" } + let b = add!(15, 14,); // { dg-error "Failed to match any rule within macro" } + + 0 +} diff --git a/gcc/testsuite/rust/execute/torture/macros19.rs b/gcc/testsuite/rust/execute/torture/macros19.rs new file mode 100644 index 0000000..4732545 --- /dev/null +++ b/gcc/testsuite/rust/execute/torture/macros19.rs @@ -0,0 +1,14 @@ +macro_rules! add { + ($e:expr, $($es:expr),*) => { + $e + add!($($es),*) + }; + ($e:expr) => { + $e + }; +} + +fn main() -> i32 { + let a = add!(15, 2, 9); // 26 + + a - 26 +} diff --git a/gcc/testsuite/rust/execute/torture/macros20.rs b/gcc/testsuite/rust/execute/torture/macros20.rs new file mode 100644 index 0000000..fc116d0 --- /dev/null +++ b/gcc/testsuite/rust/execute/torture/macros20.rs @@ -0,0 +1,14 @@ +macro_rules! add { + ($e:expr big_tok $($es:expr) big_tok *) => { + $e + add!($($es) big_tok *) + }; + ($e:expr) => { + $e + }; +} + +fn main() -> i32 { + let a = add!(15 big_tok 2 big_tok 9); // 26 + + a - 26 +} |