diff options
author | Arthur Cohen <arthur.cohen@embecosm.com> | 2022-02-21 15:03:18 +0100 |
---|---|---|
committer | Arthur Cohen <arthur.cohen@embecosm.com> | 2022-02-22 12:06:27 +0100 |
commit | 6db51e39363a4500dd8d3e04d87f682f9ef11f26 (patch) | |
tree | d1a876127ff2bc1b978b89544d1cb60c8d71f0d1 /gcc | |
parent | ded1aca9022faa4a72a97f117ace085ecb34487f (diff) | |
download | gcc-6db51e39363a4500dd8d3e04d87f682f9ef11f26.zip gcc-6db51e39363a4500dd8d3e04d87f682f9ef11f26.tar.gz gcc-6db51e39363a4500dd8d3e04d87f682f9ef11f26.tar.bz2 |
subs_repetition: Add simple test cases
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/testsuite/rust/execute/torture/macros10.rs | 20 | ||||
-rw-r--r-- | gcc/testsuite/rust/execute/torture/macros11.rs | 22 | ||||
-rw-r--r-- | gcc/testsuite/rust/execute/torture/macros12.rs | 20 | ||||
-rw-r--r-- | gcc/testsuite/rust/execute/torture/macros13.rs | 20 |
4 files changed, 82 insertions, 0 deletions
diff --git a/gcc/testsuite/rust/execute/torture/macros10.rs b/gcc/testsuite/rust/execute/torture/macros10.rs new file mode 100644 index 0000000..f1fc34e --- /dev/null +++ b/gcc/testsuite/rust/execute/torture/macros10.rs @@ -0,0 +1,20 @@ +// { dg-output "18\n" } +extern "C" { + fn printf(s: *const i8, ...); +} + +fn print_int(value: i32) { + let s = "%d\n\0" as *const str as *const i8; + printf(s, value); +} + +macro_rules! add_exprs { + ($($e:expr)*) => (0 $(+ $e)*) +} + +fn main() -> i32 { + // 1 + 2 + 15 => 18 + print_int(add_exprs!(1 2 15)); + + 0 +} diff --git a/gcc/testsuite/rust/execute/torture/macros11.rs b/gcc/testsuite/rust/execute/torture/macros11.rs new file mode 100644 index 0000000..7ce7d80 --- /dev/null +++ b/gcc/testsuite/rust/execute/torture/macros11.rs @@ -0,0 +1,22 @@ +// { dg-output "2" } +extern "C" { + fn printf(s: *const i8, ...); +} + +fn print_int(value: i32) { + let s = "%d\n\0"; + let s_p = s as *const str; + let c_p = s_p as *const i8; + unsafe { printf(c_p, value); } +} + +macro_rules! add_exprs { + ($($e:expr)?) => (0 $(+ $e)?) +} + +fn main() -> i32 { + // 2 + print_int(add_exprs!(2)); + + 0 +} diff --git a/gcc/testsuite/rust/execute/torture/macros12.rs b/gcc/testsuite/rust/execute/torture/macros12.rs new file mode 100644 index 0000000..ff4a862 --- /dev/null +++ b/gcc/testsuite/rust/execute/torture/macros12.rs @@ -0,0 +1,20 @@ +// { dg-output "0\n" } +extern "C" { + fn printf(s: *const i8, ...); +} + +fn print_int(value: i32) { + let s = "%d\n\0" as *const str as *const i8; + printf(s, value); +} + +macro_rules! add_exprs { + ($($e:expr)?) => (0 $(+ $e)?) +} + +fn main() -> i32 { + // 0 + print_int(add_exprs!()); + + 0 +} diff --git a/gcc/testsuite/rust/execute/torture/macros13.rs b/gcc/testsuite/rust/execute/torture/macros13.rs new file mode 100644 index 0000000..af5dfe8 --- /dev/null +++ b/gcc/testsuite/rust/execute/torture/macros13.rs @@ -0,0 +1,20 @@ +// { dg-output "18\n" } +extern "C" { + fn printf(s: *const i8, ...); +} + +fn print_int(value: i32) { + let s = "%d\n\0" as *const str as *const i8; + printf(s, value); +} + +macro_rules! add_exprs { + ($($e:expr)+) => (0 $(+ $e)+) +} + +fn main() -> i32 { + // 1 + 2 + 15 => 18 + print_int(add_exprs!(1 2 15)); + + 0 +} |