From 9d465067af7432a99b7d20a80a44e4e791863ba3 Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Thu, 26 Nov 2015 12:52:11 +0100 Subject: [PATCH] re PR rtl-optimization/68249 (wrong code at -O2 and -O3 on x86_64-linux-gnu) PR rtl-optimization/68249 PR rtl-optimization/68321 * gcc.c-torture/execute/pr68249.c: New test. * gcc.c-torture/execute/pr68321.c: New test. From-SVN: r230939 --- gcc/testsuite/ChangeLog | 7 ++++ gcc/testsuite/gcc.c-torture/execute/pr68249.c | 36 ++++++++++++++++++ gcc/testsuite/gcc.c-torture/execute/pr68321.c | 38 +++++++++++++++++++ 3 files changed, 81 insertions(+) create mode 100644 gcc/testsuite/gcc.c-torture/execute/pr68249.c create mode 100644 gcc/testsuite/gcc.c-torture/execute/pr68321.c diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 6f6cc20ba0e..612fd975463 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,10 @@ +2015-11-26 Jakub Jelinek + + PR rtl-optimization/68249 + PR rtl-optimization/68321 + * gcc.c-torture/execute/pr68249.c: New test. + * gcc.c-torture/execute/pr68321.c: New test. + 2015-11-26 Ilya Enkovich PR target/68416 diff --git a/gcc/testsuite/gcc.c-torture/execute/pr68249.c b/gcc/testsuite/gcc.c-torture/execute/pr68249.c new file mode 100644 index 00000000000..9ef48022081 --- /dev/null +++ b/gcc/testsuite/gcc.c-torture/execute/pr68249.c @@ -0,0 +1,36 @@ +/* PR rtl-optimization/68249 */ + +int a, b, c, g, k, l, m, n; +char h; + +void +fn1 () +{ + for (; k; k++) + { + m = b || c < 0 || c > 1 ? : c; + g = l = n || m < 0 || (m > 1) > 1 >> m ? : 1 << m; + } + l = b + 1; + for (; b < 1; b++) + h = a + 1; +} + +int +main () +{ + char j; + for (; a < 1; a++) + { + fn1 (); + if (h) + j = h; + if (j > c) + g = 0; + } + + if (h != 1) + __builtin_abort (); + + return 0; +} diff --git a/gcc/testsuite/gcc.c-torture/execute/pr68321.c b/gcc/testsuite/gcc.c-torture/execute/pr68321.c new file mode 100644 index 00000000000..d2551034744 --- /dev/null +++ b/gcc/testsuite/gcc.c-torture/execute/pr68321.c @@ -0,0 +1,38 @@ +/* PR rtl-optimization/68321 */ + +int e = 1, u = 5, t2, t5, i, k; +int a[1], b, m; +char n, t; + +int +fn1 (int p1) +{ + int g[1]; + for (;;) + { + if (p1 / 3) + for (; t5;) + u || n; + t2 = p1 & 4; + if (b + 1) + return 0; + u = g[0]; + } +} + +int +main () +{ + for (; e >= 0; e--) + { + char c; + if (!m) + c = t; + fn1 (c); + } + + if (a[t2] != 0) + __builtin_abort (); + + return 0; +} -- 2.30.2