This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug middle-end/28010] New: [4.1/4.2 regression] ICE because of fold_rtx endless recursion


typedef struct
{
  unsigned int addr;
  unsigned int next;
  unsigned int prev;
} list;

static inline list *
shift (list * l, unsigned na)
{
  return (list *) ((char *) l + na);
}

static inline int
is_valid (list * l)
{
  return shift (l, l->prev)->next == (l->addr);
}

static inline int
not_empty (list * l)
{
  return shift (l, l->next) != l;
}

void aaa (void);

void
func (list * l)
{
  unsigned int a = l->addr;

  while (1)
    {
      while (not_empty (l))
        aaa ();
      if (is_valid (l))
        aaa ();
    }
}

ICEs with -O1 -m32 and above.  Might be related to PR27616, but without
debugging/fixing one of these that's hard to say.


-- 
           Summary: [4.1/4.2 regression] ICE because of fold_rtx endless
                    recursion
           Product: gcc
           Version: 4.1.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: middle-end
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: jakub at gcc dot gnu dot org
GCC target triplet: i?86-linux


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]