Bug 8803 - [3.2/3.3/3.4 regression] Internal compiler error in instantiate_virtual_regs_1, at function.c:3974
|
Bug#:
8803
|
Product: gcc
|
Version: 3.2.1
|
|
Host:
|
Target:
|
Build:
|
|
Status: RESOLVED
|
Severity: normal
|
Priority: P3
|
|
Resolution: FIXED
|
Assigned To: hubicka@gcc.gnu.org
|
Reported By: anonymous@gcc.gnu.org
|
|
Component: inline-asm
|
Target Milestone: ---
|
|
Summary: [3.2/3.3/3.4 regression] Internal compiler error in instantiate_virtual_regs_1, at function.c:3974
|
|
Keywords: ice-on-invalid-code
|
|
Opened: 2002-12-03 13:36
|
I'm playing with MMX for the first time, so it's possible that
the enclosed code isn't quite legal.
Release:
gcc-3.2.1 (and gcc-3.2)
Environment:
Linux-2.4.19 on Athlon and Linux-2.5.17 on PII
glibc-2.2.4
How-To-Repeat:
g++ -o test test.cc
State-Changed-From-To: open->analyzed
State-Changed-Why: Confirmed. A simpler testcase is
------------------------------------
void f (unsigned char * u) {
char U1U2U3U4 [8];
asm ("pxor %[U], %[U]\n\t"
"punpacklbw %[u], %[U]\n\t"
: [U] "=y" (*U1U2U3U4)
: [u] "m" (*u));
}
--------------------------
on which I get (with 3.2.2pre and 3.3pre)
tmp/g> /home/bangerth/bin/gcc-3.0.4/bin/gcc -c test.cc
test.cc: In function `void f(unsigned char*)':
test.cc:5: parse error before `[' token
tmp/g> /home/bangerth/bin/gcc-3.2/bin/gcc -c test.cc
test.cc: In function `void f(unsigned char*)':
test.cc:7: Internal compiler error in instantiate_virtual_regs_1, at function.c
:3972
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://www.gnu.org/software/gcc/bugs.html> for instructions.
The code did not compile with 3.0.4, since apparently
some syntax about [U] in the asm statement is not understood.
Nevertheless, that it now ICEs is a regression, so I mark it
as that.
Responsible-Changed-From-To: unassigned->hubicka
Responsible-Changed-Why: Submitted a fix.
State-Changed-From-To: analyzed->closed
State-Changed-Why: Fixed on mainline and 3.3 branch