https://gcc.gnu.org/g:6f4592ae95eed53dc3a370f98c04a8f25f007811
commit r15-7123-g6f4592ae95eed53dc3a370f98c04a8f25f007811
Author: Georg-Johann Lay <a...@gjlay.de>
Date:   Wed Jan 22 12:02:16 2025 +0100

    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.

Diff:
---
 gcc/testsuite/gcc.target/avr/torture/pr118591-1.c | 22 ++++++++++++++++++++++
 gcc/testsuite/gcc.target/avr/torture/pr118591-2.c | 21 +++++++++++++++++++++
 2 files changed, 43 insertions(+)

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 000000000000..814f0410a7fb
--- /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 000000000000..83d360600882
--- /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;
+}

Reply via email to