Seen on Ubuntu 9.10.  The test case is reduced from the output of the Stalin
Scheme to C compiler.

reg...@john-home:~/z/stalin-0.11$ current-gcc -c small.c -O
small.c: In function ‘f1576’:
small.c:86:1: error: unrecognizable insn:
(insn 42 41 43 10 small.c:79 (parallel [
            (set (reg:QI 79)
                (if_then_else:SI (unlt:SI (reg:CCFPU 17 flags)
                        (const_int 0 [0x0]))
                    (const_int -1 [0xffffffff])
                    (const_int 0 [0x0])))
            (clobber (reg:CC 17 flags))
        ]) -1 (nil))
small.c:86:1: internal compiler error: in extract_insn, at recog.c:2097
Please submit a full bug report,
with preprocessed source if appropriate.
See <http://gcc.gnu.org/bugs.html> for instructions.

reg...@john-home:~/z/stalin-0.11$ cat small.c

void gt_error (void);
struct region19168
{
  union
  {
  }
  value;
};
struct w29434
{
};
struct w16638
{
  union
  {
  }
  value;
};
struct w12218
{
  union
  {
  }
  value;
};
struct w9140
{
  union
  {
  }
  value;
};
struct w6194
{
  union
  {
  }
  value;
};
struct w3457
{
  union
  {
  }
  value;
};
struct w49
{
  unsigned tag;
  union
  {
    int fixnum_type;
    float flonum_type;
  }
  value;
};

void
f1576 (struct w49 a15167, struct w49 a15168, unsigned a15169, unsigned a15170,
unsigned t84936, struct w49 t84939, struct w49 t84940)
{
  struct w49 a33604;
  struct w49 t84937;
  struct w16638 t84965;
  switch (t84936)
    {
    case 5960:
      a33604 = t84937;
      switch (t84939.tag)
        {
        case 1048:
          switch (t84940.tag)
            {
            }
        case 1052:
          switch (t84940.tag)
            {
            case 1048:
              if (!((t84939.value.flonum_type) > (t84940.value.fixnum_type)))
                goto l16231;
            }
          gt_error ();
        }
    }
l16231:t84965 = *((struct w16638 *) (&a15168));
}

reg...@john-home:~/z/stalin-0.11$ current-gcc -v

Using built-in specs.
COLLECT_GCC=current-gcc
COLLECT_LTO_WRAPPER=/home/regehr/z/tmp/gcc-r156271-install/libexec/gcc/i686-pc-linux-gnu/4.5.0/lto-wrapper
Target: i686-pc-linux-gnu
Configured with: ../configure --with-libelf=/usr/local --enable-lto
--prefix=/home/regehr/z/tmp/gcc-r156271-install --program-prefix=r156271-
--enable-languages=c,c++
Thread model: posix
gcc version 4.5.0 20100127 (experimental) (GCC)


-- 
           Summary: ice in extract_insn, at recog.c:2097
           Product: gcc
           Version: unknown
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: regehr at cs dot utah dot edu
 GCC build triplet: i686-pc-linux-gnu
  GCC host triplet: i686-pc-linux-gnu
GCC target triplet: i686-pc-linux-gnu


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42891

Reply via email to