https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82592

            Bug ID: 82592
           Summary: [8 Regression] ICE in extract_constrain_insn, at
                    recog.c:2207 (error: insn does not satisfy its
                    constraints)
           Product: gcc
           Version: 8.0
            Status: UNCONFIRMED
          Keywords: ice-on-valid-code
          Severity: normal
          Priority: P3
         Component: target
          Assignee: unassigned at gcc dot gnu.org
          Reporter: asolokha at gmx dot com
  Target Milestone: ---
            Target: x86_64-unknown-linux-gnu

gcc-8.0.0-alpha20171015 snapshot (r253772) ICEs when compiling the following
snippet w/ -O2 (-O3, -Ofast) -funroll-loops:

int pb;

void
ch (unsigned char np, char fc)
{
  unsigned char *y6 = &np;

  if (fc != 0)
    {
      unsigned char *z1 = &np;

      for (;;)
        if (*y6 != 0)
          for (fc = 0; fc < 12; ++fc)
            {
              int hh;
              int tp;

              if (fc != 0)
                hh = (*z1 != 0) ? fc : 0;
              else
                hh = pb;

              tp = fc > 0;
              if (hh == tp)
                *y6 = 1;
            }
    }

  if (np != 0)
    y6 = (unsigned char *)&fc;
  if (pb != 0 && *y6 != 0)
    for (;;)
      {
      }
}

% x86_64-unknown-linux-gnu-gcc-8.0.0-alpha20171015 -O2 -funroll-loops -c
id5cyx54.c
id5cyx54.c: In function 'ch':
id5cyx54.c:36:1: error: insn does not satisfy its constraints:
 }
 ^
(insn 565 340 357 42 (parallel [
            (set (reg:CCZ 17 flags)
                (compare:CCZ (plus:SI (reg:SI 2 cx [120])
                        (const_int 2 [0x2]))
                    (const_int 0 [0])))
            (set (reg:SI 1 dx [orig:91 ivtmp.14 ] [91])
                (plus:SI (reg:SI 2 cx [120])
                    (const_int 2 [0x2])))
        ]) 225 {*addsi_2}
     (nil))
during RTL pass: rnreg
id5cyx54.c:36:1: internal compiler error: in extract_constrain_insn, at
recog.c:2207

Reply via email to