optimization/9812: [3.2/3.3 regression] ICE in extract_insn, at recog.c:2148

Matthias Klose doko@net.local
Sun Feb 23 07:16:00 GMT 2003


>Number:         9812
>Category:       optimization
>Synopsis:       [3.2/3.3 regression] ICE in extract_insn, at recog.c:2148
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          ice-on-legal-code
>Submitter-Id:   net
>Arrival-Date:   Sun Feb 23 07:16:00 UTC 2003
>Closed-Date:
>Last-Modified:
>Originator:     Rick Younie <rick@def.debian.net>
>Release:        3.2.2 (Debian) (Debian unstable)
>Organization:
The Debian Project
>Environment:
System: Debian GNU/Linux (unstable)
Architecture: m68k-linux
>Description:
[ Reported to the Debian BTS as report #177840.
  Please CC 177840@bugs.debian.org on replies.
  Log of report can be found at http://bugs.debian.org/177840 ]

  This is a regression compared to gcc-3.0.4 and gcc-2.95.[34].

  The following code, extracted from gtk+2.0 ICEs on m68k-linux, reducing
  to -O1 avoids the ICE.

  Checked with 3.2 branch 20021231 and 3.3 branch 20030221


$ gcc-3.2 -O2 -pthread -g -Wall -fPIC -c bug-177840-3.i
bug-177840-3.i: In function `bilinear_quadrant':
bug-177840-3.i:55: unrecognizable insn:
(insn 263 69 71 (set (reg:DF 17 %fp1)
        (const_double:DF 0 [0x0] 0 [0x0] 0 [0x0])) -1 (nil)
    (nil))
bug-177840-3.i:55: Internal compiler error in extract_insn, at recog.c:2148
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://www.gnu.org/software/gcc/bugs.html> for instructions.

$ /scratch/gcc/gcc-snapshot-20030221/build/gcc/xgcc -B/scratch/gcc/gcc-snapshot-20030221/build/gcc/ -O2 -pthread -g -Wall -fPIC -c bug-177840-3.i
bug-177840-3.i: In function `bilinear_quadrant':
bug-177840-3.i:55: error: unrecognizable insn:
(insn 256 67 68 6 (nil) (set (reg:DF 16 %fp0)
        (const_double:DF 0 [0x0] 0.0 [0x0.0p+0])) -1 (nil)
    (nil))
bug-177840-3.i:55: internal compiler error: in extract_insn, at recog.c:2175
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://www.gnu.org/software/gcc/bugs.html> for instructions.

-------------------------------------------
double
bilinear_quadrant (double bx0, double bx1, double by0, double by1)
{
  double ax0, ax1, ay0, ay1;
  double x0, x1, y0, y1;

  ax0 = 0.;
  ax1 = 1.;
  ay0 = 0.;
  ay1 = 1.;

  if (ax0 < bx0)
    {
      if (ax1 > bx0)
        {
          x0 = bx0;
          x1 = (((ax1) < (bx1)) ? (ax1) : (bx1));
        }
      else
        return 0;
    }
  else
    {
      if (bx1 > ax0)
        {
          x0 = ax0;
          x1 = (((ax1) < (bx1)) ? (ax1) : (bx1));
        }
      else
        return 0;
    }

  if (ay0 < by0)
    {
      if (ay1 > by0)
        {
          y0 = by0;
          y1 = (((ay1) < (by1)) ? (ay1) : (by1));
        }
      else
        return 0;
    }
  else
    {
      if (by1 > ay0)
        {
          y0 = ay0;
          y1 = (((ay1) < (by1)) ? (ay1) : (by1));
        }
      else
        return 0;
    }

  return 0.25 * (x1*x1 - x0*x0) * (y1*y1 - y0*y0);
}
-------------------------------------------

>How-To-Repeat:
	
>Fix:
	
>Release-Note:
>Audit-Trail:
>Unformatted:



More information about the Gcc-bugs mailing list