[Bug target/11576] [3.3 regression] internal error at emit-rtl.c:2017
kazu at cs dot umass dot edu
gcc-bugzilla@gcc.gnu.org
Sat Sep 6 03:59:00 GMT 2003
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 03:59 -------
Slightly more reduced:
struct list {
struct list *next, *prev;
};
struct page {
struct list list;
int index;
int counter;
};
int bits, table;
int
foo (struct page *page, struct list *head, int offset)
{
int value = (offset >> bits) & (1 << bits);
int hash = table + value;
page->index |= 1;
{
int *v = &page->counter;
int flags;
asm volatile ("" : "=r" (flags) : : "er0");
(*v)++;
asm volatile ("" : : "r" (flags) : "er0");
}
page->index = offset;
{
struct list *new = &page->list;
struct list *prev = head;
struct list *next = head->next;
next->prev = new;
new->next = next;
new->prev = prev;
prev->next = new;
}
return (int) page + hash;
}
More information about the Gcc-bugs
mailing list