diff options
author | Georg-Johann Lay <avr@gjlay.de> | 2025-01-22 12:02:16 +0100 |
---|---|---|
committer | Georg-Johann Lay <avr@gjlay.de> | 2025-01-22 12:05:02 +0100 |
commit | 6f4592ae95eed53dc3a370f98c04a8f25f007811 (patch) | |
tree | 1466e09f217ede315145efb70ba2160e79cef1ca /gcc | |
parent | e13e751d8144c9cfb7a9f1cd38119d1fa4ab38cf (diff) | |
download | gcc-6f4592ae95eed53dc3a370f98c04a8f25f007811.zip gcc-6f4592ae95eed53dc3a370f98c04a8f25f007811.tar.gz gcc-6f4592ae95eed53dc3a370f98c04a8f25f007811.tar.bz2 |
AVR: Add test cases for PR118591.
gcc/testsuite/
PR rtl-optimization/118591
* gcc.target/avr/torture/pr118591-1.c: New test.
* gcc.target/avr/torture/pr118591-2.c: New test.
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/testsuite/gcc.target/avr/torture/pr118591-1.c | 22 | ||||
-rw-r--r-- | gcc/testsuite/gcc.target/avr/torture/pr118591-2.c | 21 |
2 files changed, 43 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.target/avr/torture/pr118591-1.c b/gcc/testsuite/gcc.target/avr/torture/pr118591-1.c new file mode 100644 index 0000000..814f041 --- /dev/null +++ b/gcc/testsuite/gcc.target/avr/torture/pr118591-1.c @@ -0,0 +1,22 @@ +/* { dg-do run { target { ! avr_tiny } } } */ +/* { dg-additional-options "-std=c99 -mlra" } */ + +__attribute__((noipa)) +void func2 (long long a1, long long a2, long b) +{ + static unsigned char count = 0; + if (b != count++) + __builtin_abort (); +} + +int main (void) +{ + for (long b = 0; b < 5; ++b) + { + __asm ("" ::: "r5", "r9", "r24", "r20", "r16", "r12", "r30"); + + func2 (0, 0, b); + } + + return 0; +} diff --git a/gcc/testsuite/gcc.target/avr/torture/pr118591-2.c b/gcc/testsuite/gcc.target/avr/torture/pr118591-2.c new file mode 100644 index 0000000..83d3606 --- /dev/null +++ b/gcc/testsuite/gcc.target/avr/torture/pr118591-2.c @@ -0,0 +1,21 @@ +/* Test case failed on avrtiny. */ +/* { dg-do run } */ +/* { dg-additional-options "-std=c99 -mlra" } */ + +__attribute__((noipa)) +void func2 (long a, long b) +{ + static unsigned char count = 0; + if (b != count++) + __builtin_abort (); +} + +int main (void) +{ + for (long b = 0; b < 5; ++b) + { + func2 (0, b); + } + + return 0; +} |