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
Description:   Last confirmed: 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

------- Comment #1 From Wolfgang Bangerth 2002-12-04 13:47 -------
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.

------- Comment #2 From s.bosscher@student.tudelft.nl 2003-03-24 20:37 -------
From: Steven Bosscher <s.bosscher@student.tudelft.nl>
To: gcc-gnats@gcc.gnu.org, anonymous@sources.redhat.com,
	gcc-bugs@gcc.gnu.org, nobody@gcc.gnu.org, gcc-prs@gcc.gnu.org
Cc:  
Subject: Re: inline-asm/8803: [3.2/3.3/3.4 regression] Internal compiler error
 in instantiate_virtual_regs_1, at function.c:3974
Date: Mon, 24 Mar 2003 20:37:00 +0100

 http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view%20audit-trail&database=gcc&pr=8803
 
 This still happens on todays 3.3 branch.
 
 # gcc-3.3 -c 8803.c
 8803.c: In function `f':
 8803.c:5: error: impossible constraint in `asm'
 
 # gcc-3.3 -c 8803.c -O
 8803.c: In function `f':
 8803.c:7: internal compiler error: in fixup_var_refs_1, at function.c:1945
 Please submit a full bug report,
 with preprocessed source if appropriate.
 See <URL:http://www.gnu.org/software/gcc/bugs.html> for instructions.
 
 Greetz
 Steven
 
 

------- Comment #3 From Eric Botcazou 2003-04-08 19:13 -------
Responsible-Changed-From-To: unassigned->hubicka
Responsible-Changed-Why: Submitted a fix.

------- Comment #4 From Jan Hubicka 2003-04-10 22:25 -------
State-Changed-From-To: analyzed->closed
State-Changed-Why: Fixed on mainline and 3.3 branch