From: Jakub Jelinek Date: Fri, 27 Nov 2015 12:12:35 +0000 (+0100) Subject: re PR rtl-optimization/68250 (wrong code at -O2 and -O3 on x86_64-linux-gnu (in 64... X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=f574fc3ac5a136886dbdaf5124326d744f1e06de;p=gcc.git 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 --- 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; +}