This is the mail archive of the
gcc-prs@gcc.gnu.org
mailing list for the GCC project.
Re: optimization/10017: [3.2/3.3/3.4 regression] ICE: unable to find aregister to spill in class `GENERAL_REGS'
- From: Volker Reichelt <reichelt at igpm dot rwth-aachen dot de>
- To: nobody at gcc dot gnu dot org
- Cc: gcc-prs at gcc dot gnu dot org,
- Date: 10 Mar 2003 21:06:02 -0000
- Subject: Re: optimization/10017: [3.2/3.3/3.4 regression] ICE: unable to find aregister to spill in class `GENERAL_REGS'
- Reply-to: Volker Reichelt <reichelt at igpm dot rwth-aachen dot de>
The following reply was made to PR optimization/10017; it has been noted by GNATS.
From: Volker Reichelt <reichelt at igpm dot rwth-aachen dot de>
To: gcc-gnats at gcc dot gnu dot org, gcc-bugs at gcc dot gnu dot org, qboosh at pld dot org dot pl
Cc:
Subject: Re: optimization/10017: [3.2/3.3/3.4 regression] ICE: unable to find a
register to spill in class `GENERAL_REGS'
Date: Mon, 10 Mar 2003 22:04:33 +0100 (CET)
Here's a reduced testcase:
---------------------------------snip here---------------------------
void foo (long long i);
long long bar (int *p);
void baz()
{
static void *array[2] = { &&L0, &&L1 };
register void *p asm ("esi");
register int *q asm ("edi");
register int *r asm ("ebx");
for(;;)
{
L0: *q = *r; goto *p;
L1: foo(bar(q) << *q);
}
}
---------------------------------snip here---------------------------
It crashes every compiler version since 3.0, but compiles fine with gcc 2.95.x.
(Just compile with "gcc -march=i686 -c".)
(The problems with gcc 2.95.x concerning the original example seem to be a
different issue.) Therefore, I rate this as a regression.
The bug category is probably wrong, perhaps it is a middle-end bug
or even inline-asm since the register variable have "asm" attached.
Could somebody with more insight change the categeory?
Regards,
Volker
http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view%20audit-trail&database=gcc&pr=10017