aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2015-11-27 13:12:35 +0100
committerJakub Jelinek <jakub@gcc.gnu.org>2015-11-27 13:12:35 +0100
commitf574fc3ac5a136886dbdaf5124326d744f1e06de (patch)
treef960960a7b658aa03b60f11739094ebe7c53cf0a /gcc
parentaf719b2d7837b223d52806e644aee5b3220784b8 (diff)
downloadgcc-f574fc3ac5a136886dbdaf5124326d744f1e06de.zip
gcc-f574fc3ac5a136886dbdaf5124326d744f1e06de.tar.gz
gcc-f574fc3ac5a136886dbdaf5124326d744f1e06de.tar.bz2
re PR rtl-optimization/68250 (wrong code at -O2 and -O3 on x86_64-linux-gnu (in 64-bit mode))
PR rtl-optimization/68250 * gcc.c-torture/execute/pr68250.c: New test. From-SVN: r231009
Diffstat (limited to 'gcc')
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gcc.c-torture/execute/pr68250.c40
2 files changed, 45 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index fe39c93..b5b837d 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2015-11-27 Jakub Jelinek <jakub@redhat.com>
+
+ PR rtl-optimization/68250
+ * gcc.c-torture/execute/pr68250.c: New test.
+
2015-11-27 Marek Polacek <polacek@redhat.com>
* gcc.dg/pr63568.c: Convert to GIMPLE.
diff --git a/gcc/testsuite/gcc.c-torture/execute/pr68250.c b/gcc/testsuite/gcc.c-torture/execute/pr68250.c
new file mode 100644
index 0000000..f00234a
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/execute/pr68250.c
@@ -0,0 +1,40 @@
+/* PR rtl-optimization/68250 */
+
+signed char a, b, h, k, l, m, o;
+short c, d, n;
+int e, f, g, j, q;
+
+void
+fn1 (void)
+{
+ int p = b || a;
+ n = o > 0 || d > 1 >> o ? d : d << o;
+ for (; j; j++)
+ m = c < 0 || m || c << p;
+ l = f + 1;
+ for (; f < 1; f = 1)
+ k = h + 1;
+}
+
+__attribute__((noinline, noclone)) void
+fn2 (int k)
+{
+ if (k != 1)
+ __builtin_abort ();
+}
+
+int
+main ()
+{
+ signed char i;
+ for (; e < 1; e++)
+ {
+ fn1 ();
+ if (k)
+ i = k;
+ if (i > q)
+ g = 0;
+ }
+ fn2 (k);
+ return 0;
+}