Move pr121656.c to gcc.dg/torture and replace weak attribute with noipa
attribute.  Verified by reverting

56ca14c4c4f Fix invalid right shift count with recent ifcvt changes

to trigger

FAIL: gcc.dg/torture/pr121656.c   -O1  execution test
FAIL: gcc.dg/torture/pr121656.c   -O2  execution test
FAIL: gcc.dg/torture/pr121656.c   -O3 -g  execution test
FAIL: gcc.dg/torture/pr121656.c   -O2 -flto -fno-use-linker-plugin 
-flto-partition=none  execution test

on Linux/x86-64.

        PR tree-optimization/121656
        * gcc.dg/pr121656.c: Moved to ...
        * gcc.dg/torture/pr121656.c: Here.
        (dg-options): Removed.
        (foo): Replace weak attribute with noipa attribute.

Signed-off-by: H.J. Lu <hjl.to...@gmail.com>
---
 gcc/testsuite/gcc.dg/pr121656.c         | 21 -----------------
 gcc/testsuite/gcc.dg/torture/pr121656.c | 30 +++++++++++++++++++++++++
 2 files changed, 30 insertions(+), 21 deletions(-)
 delete mode 100644 gcc/testsuite/gcc.dg/pr121656.c
 create mode 100644 gcc/testsuite/gcc.dg/torture/pr121656.c

diff --git a/gcc/testsuite/gcc.dg/pr121656.c b/gcc/testsuite/gcc.dg/pr121656.c
deleted file mode 100644
index 00b89418a31..00000000000
--- a/gcc/testsuite/gcc.dg/pr121656.c
+++ /dev/null
@@ -1,21 +0,0 @@
-/* { dg-do run } */
-/* { dg-options "-O1" } */
-
-__attribute__ ((weak))
-void
-foo (int b)
-{
-  if (b != 3)
-    __builtin_abort ();
-}
-
-int a;
-int
-main ()
-{
-  int b = 0;
-  if (a >= 0)
-    b += 3;
-  foo (b);
-  return 0;
-}
diff --git a/gcc/testsuite/gcc.dg/torture/pr121656.c 
b/gcc/testsuite/gcc.dg/torture/pr121656.c
new file mode 100644
index 00000000000..343d414b292
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/torture/pr121656.c
@@ -0,0 +1,30 @@
+/* { dg-do run } */
+
+/* This test fails to run at -O1 and above.  This is caused by
+
+   ebbeaf490c5 [PR rtl-optimization/120553] Improve selecting between 
constants based on sign bit test
+
+   and has been fixed by
+
+   56ca14c4c4f Fix invalid right shift count with recent ifcvt changes
+
+ */
+
+__attribute__ ((noipa))
+void
+foo (int b)
+{
+  if (b != 3)
+    __builtin_abort ();
+}
+
+int a;
+int
+main ()
+{
+  int b = 0;
+  if (a >= 0)
+    b += 3;
+  foo (b);
+  return 0;
+}
-- 
2.51.0

Reply via email to