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 target/11576] [3.3 regression] internal error at emit-rtl.c:2017


PLEASE REPLY TO gcc-bugzilla@gcc.gnu.org ONLY, *NOT* gcc-bugs@gcc.gnu.org.

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



------- Additional Comments From kazu at cs dot umass dot edu  2003-09-06 14:42 -------
Slightly more reduced:

struct page {
  struct page *next, *prev;
  int index;
  int counter;
};

int bits, table;

int
foo (struct page *new, struct page *head, int offset)
{
  int value = (offset + bits) & (1 << bits);
  int hash = table + value;

  new->index++;

  {
    int *v = &new->counter;
    int flags;

    asm volatile ("" : "=r" (flags) :             : "er0");
    (*v)++;
    asm volatile ("" :              : "r" (flags) : "er0");
  }

  new->index = offset;

  {
    struct page *prev = head;
    struct page *next = head->next;

    next->prev = new;
    new->next = next;
    new->prev = prev;
    prev->next = new;
  }

  return (int) new + hash;
}


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