aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGeorg-Johann Lay <avr@gjlay.de>2025-01-22 12:02:16 +0100
committerGeorg-Johann Lay <avr@gjlay.de>2025-01-22 12:05:02 +0100
commit6f4592ae95eed53dc3a370f98c04a8f25f007811 (patch)
tree1466e09f217ede315145efb70ba2160e79cef1ca
parente13e751d8144c9cfb7a9f1cd38119d1fa4ab38cf (diff)
downloadgcc-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.
-rw-r--r--gcc/testsuite/gcc.target/avr/torture/pr118591-1.c22
-rw-r--r--gcc/testsuite/gcc.target/avr/torture/pr118591-2.c21
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;
+}