From f574fc3ac5a136886dbdaf5124326d744f1e06de Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Fri, 27 Nov 2015 13:12:35 +0100 Subject: [PATCH] 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 --- gcc/testsuite/ChangeLog | 5 +++ gcc/testsuite/gcc.c-torture/execute/pr68250.c | 40 +++++++++++++++++++ 2 files changed, 45 insertions(+) create mode 100644 gcc/testsuite/gcc.c-torture/execute/pr68250.c diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index fe39c939e46..b5b837d41e2 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2015-11-27 Jakub Jelinek + + PR rtl-optimization/68250 + * gcc.c-torture/execute/pr68250.c: New test. + 2015-11-27 Marek Polacek * 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 00000000000..f00234a07f0 --- /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; +} -- 2.30.2