8555 – [3.2 regression] ICE in gen_split_1231 (original) (raw)

Description kris.demuynck 2002-11-12 12:36:03 UTC

zz.c: In function `find_max': zz.c:19: Internal compiler error in gen_split_1231, at insn-emit.c:16727

Release: gcc version 3.2

Environment: Linux, RedHat 7.1, 2.4.9-31smp kernel Dell WS410, dual P3 450Mhz, 512MB SDRAM

How-To-Repeat: gcc -march=pentium3 -O2 -fomit-frame-pointer -ffast-math -funroll-loops -c zz.c

Comment 1 kris.demuynck 2002-11-12 12:36:03 UTC

Fix:

  1. Turning off any of the following optimization flags: -march=pentium3 -O2 -fomit-frame-pointer -ffast-math -funroll-loops
  2. Some simple recoding; See the problem file 'zz.c' for an example

Comment 2 Volker Reichelt 2002-11-12 14:57:50 UTC

State-Changed-From-To: open->analyzed State-Changed-Why: Confirmed. gcc 3.1 and mainline are not affected, but gcc 3.2 and the 3.2.1 prerelease produce an ICE.

Here's a shorter example that triggers the bug (just compile with
gcc -march=pentium3 -O -ffast-math -funroll-loops -c)

-------------------------snip here-----------------------
float foo (float *a)
{
  int i, j;
  float x=a[j=i-1], y;

  for ( j=i; --j>=0; )
    if( (y=a[j]) > x )
      x = y;

  return x;
}
-------------------------snip here-----------------------

Since the bug is a regression on the branch, I rate the PR "high priority".

Comment 6 Eric Botcazou 2003-03-28 22:44:33 UTC

Responsible-Changed-From-To: unassigned->jakub Responsible-Changed-Why: Any reason why you didn't put the fix on the 3.2 branch?

Comment 7 Joe Buck 2003-04-25 21:21:47 UTC

State-Changed-From-To: analyzed->closed State-Changed-Why: Fixed for 3.3.