From d3e1a77949b9b0e992ca6a118a3103929f745986 Mon Sep 17 00:00:00 2001 From: Richard Biener Date: Fri, 1 Mar 2013 12:29:39 +0000 Subject: [PATCH] re PR middle-end/55481 (-O2 generates a wrong-code infinite loop in C++Benchmark's simple_types_constant_folding int8 xor test) 2013-03-01 Richard Biener PR tree-optimization/55481 * gcc.dg/torture/pr56488.c: New testcase. From-SVN: r196377 --- gcc/testsuite/ChangeLog | 5 +++++ gcc/testsuite/gcc.dg/torture/pr56488.c | 31 ++++++++++++++++++++++++++ 2 files changed, 36 insertions(+) create mode 100644 gcc/testsuite/gcc.dg/torture/pr56488.c diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 527fefb0b6c..8a2daadd2dd 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2013-03-01 Richard Biener + + PR tree-optimization/55481 + * gcc.dg/torture/pr56488.c: New testcase. + 2013-02-28 Konstantin Serebryany Jakub Jelinek diff --git a/gcc/testsuite/gcc.dg/torture/pr56488.c b/gcc/testsuite/gcc.dg/torture/pr56488.c new file mode 100644 index 00000000000..78bac7bede7 --- /dev/null +++ b/gcc/testsuite/gcc.dg/torture/pr56488.c @@ -0,0 +1,31 @@ +/* { dg-do run } */ + +int a, c, d = 1; +struct S { int s; } b, f; +short e; + +static void +foo (int x) +{ + int g[] = { }; + for (e = 0; e != 1; e = e + 5) + { + int *h[1] = { &g[0] }; + if (!x) + return; + f = b; + } +} + +int +main () +{ + int i, j; + for (i = 0; i < 6; i++) + for (j = 8; j; j--) + a = 0; + foo (d); + while (c) + ; + return 0; +}