Bug 53680 - gcc-2.96-85: ICE in fixup_var_refs_1
Summary: gcc-2.96-85: ICE in fixup_var_refs_1
Keywords:
Status: CLOSED DEFERRED
Alias: None
Product: Red Hat Linux
Classification: Retired
Component: gcc
Version: 7.1
Hardware: i386
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Jakub Jelinek
QA Contact: Brian Brock
URL: http://www.linuxgazette.com/issue69/m...
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2001-09-14 21:25 UTC by Stas Sergeev
Modified: 2007-04-18 16:37 UTC (History)
0 users

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2001-09-17 17:27:42 UTC
Embargoed:


Attachments (Terms of Use)
This program causes ICE. Just untar it and make. (4.64 KB, application/octet-stream)
2001-09-14 21:35 UTC, Stas Sergeev
no flags Details

Description Stas Sergeev 2001-09-14 21:25:22 UTC
From Bugzilla Helper:
User-Agent: Mozilla/4.76 [en] (X11; U; Linux 2.2.19 i686)

Description of problem:
I was trying to compile the (small) program from the URL above.
gcc ICE on it...

Version-Release number of selected component (if applicable):
gcc-2.96-85

How reproducible:
Always

Steps to Reproduce:
1. wget http://www.linuxgazette.com/issue69/misc/mathew/Makefile.txt
2. mv Makefile.txt Makefile
3. wget http://www.linuxgazette.com/issue69/misc/mathew/myaudio.c.txt
4. mv myaudio.c.txt myaudio.c
5. wget http://www.linuxgazette.com/issue69/misc/mathew/myaudio.h.txt
6. mv myaudio.h.txt myaudio.h
7. make
8. file myaudio.o

Actual Results:  
myaudio.h: In function `getvect':
myaudio.h:117: Internal compiler error in fixup_var_refs_1, at
function.c:1874
Please submit a full bug report.
See <URL:http://bugzilla.redhat.com/bugzilla/> for instructions.
make: *** [myaudio.o] o[IBKA 1


Expected Results:
myaudio.o: ELF 32-bit LSB relocatable, Intel 80386, version 1, not stripped

Comment 1 Stas Sergeev 2001-09-14 21:35:00 UTC
Created attachment 31799 [details]
This program causes ICE. Just untar it and make.

Comment 2 Jakub Jelinek 2001-09-17 10:04:03 UTC
This is a bug in myaudio.h, getvect's asm constraints are bogus (anyone
care to explain me what the code actually wants to do?).
int foo (int x)
{
  int a, b, c;

  asm("" : "=a" (a) : "c" (x), "m" (b), "m" (a), "m" (c));
  return a;
}
is a simplified testcase, note a being requested into eax register and into
memory at the same time. Note that this ICEs with gcc 2.95.x, gcc 3.0.1
and gcc 3.1 CVS head too.

Comment 3 Stas Sergeev 2001-09-17 17:27:36 UTC
I am very sorry for reopening this bug, but I think it is important to mention
that this program compiles with no problems with gcc-2.91.66 aka kgcc from
RH7.0. And I also have to admit that, being compiled with kgcc, the program
works, really!
It is a driver for pc-speaker and it really plays simple sounds thru the beeper.
I am sorry for such an importunate behavior, I just think that if it works
being compiled with kgcc, it should also work with gcc.

Comment 4 Jakub Jelinek 2001-09-18 08:37:31 UTC
It does not matter. The source is crappy, gcc inline asm's have to be written
so that they can be fulfilled by gcc.
If you want to compile this, removing getvect routine altogether should help,
AFAIC nothing uses it.


Note You need to log in before you can comment on or make changes to this bug.