I was going to do a --enable-checking=release buil to test some compile time
preformance but I ran into an ICE.  This does not happen on a
----enable-checking=yes build because the source is different
but the testcase is reproduce there.

The last time the reduced testcase (and full source, ifcvt.c) is known to work
is rev 110452.
I am testing with rev 110522.

Any trying to reduce this further causes the ICE to go away as the order of the
BBs have change but that seem wrong in general.   This is a real blocker as it
means when we branch the bootstrap starts to fail.

Reduced testcase:
extern void fancy_abort (void) __attribute__ ((__noreturn__));
typedef struct edge_def {
  int dest;
  int flags;
}*edge;
typedef struct {
  int **container;
}edge_iterator;
static __inline__ unsigned char ei_cond (edge_iterator ei3, edge *p)
{
  if (!ei_end_p (ei3))
    return 1;
  *p = 0;
  return 0;
}
int block_fallthru (edge_iterator ei1, edge e)
{
  while (ei_cond ((ei1), &(e)))
    {
      if (e->flags & 1)
        break;
      edge_iterator ei2 = ei1;
      if (!(ei2.container))
        fancy_abort ();
    }
  return (e) ? e->dest : 0;
}


-- 
           Summary: [4.2 Regression] ICE in df_find_use
           Product: gcc
           Version: 4.2.0
            Status: UNCONFIRMED
          Keywords: ice-on-valid-code, build
          Severity: blocker
          Priority: P3
         Component: rtl-optimization
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: pinskia at gcc dot gnu dot org
GCC target triplet: powerpc-darwin


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

Reply via email to