[Bug target/39139] New: [4.4 Regression] ICE with stringop and register var
jakub at gcc dot gnu dot org
gcc-bugzilla@gcc.gnu.org
Mon Feb 9 15:53:00 GMT 2009
static inline int
foo (unsigned int x, void *y)
{
register unsigned long r asm ("rax");
register unsigned long a1 asm ("rdi") = a1;
register unsigned long a2 asm ("rsi") = a2;
a1 = (unsigned long) x;
a2 = (unsigned long) y;
asm volatile ("" : "=r" (r), "+r" (a1), "+r" (a2) : : "memory");
return (int) r;
}
struct T { unsigned long t1, t2; unsigned int t3, t4, t5; };
int
bar (unsigned long x, unsigned int y, unsigned long u, unsigned int v)
{
long r;
struct T e = { .t1 = x, .t2 = u };
if (x << y != u << v)
return 5;
r = foo (11, &e);
return e.t3 == x;
}
distilled from xen ICEs at -Os, DIREG class register isn't available. First
appeared between r134096 and r134467, not IRA related.
--
Summary: [4.4 Regression] ICE with stringop and register var
Product: gcc
Version: 4.4.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: target
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: jakub at gcc dot gnu dot org
GCC target triplet: x86_64-linux
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39139
More information about the Gcc-bugs
mailing list