From Bugzilla Helper:
User-Agent: Mozilla/4.76 [en] (X11; U; Linux 2.2.17-14 i686)
gcc crashes whet trying to compile the MIT Photonic-Bands 1.0 program,
available from http://ab-initio.mit.edu/mpb/download.html
Steps to Reproduce:
1. Install fftw, blas, guile, libctl (from
2. cd mpb-1.0; ./configure
Note: the compiler is gcc-2.96-69
Actual Results: ...
cc -DHAVE_CONFIG_H -I/usr/include -I../util -I../matrices -c -O3 -Wall -W
-Wbad-function-cast -Wcast-qual -Wpointer-arith -Wcast-align -pedantic
maxwell_eps.c -o maxwell_eps.o
In file included from /usr/include/math.h:348,
/usr/include/bits/mathinline.h:186:30: warning: ISO C does not permit named
/usr/include/bits/mathinline.h:190:32: warning: ISO C does not permit named
/usr/include/bits/mathinline.h:201:30: warning: ISO C does not permit named
/usr/include/bits/mathinline.h:205:32: warning: ISO C does not permit named
maxwell_eps.c: In function `set_maxwell_dielectric':
maxwell_eps.c:838: Internal compiler error in fixup_var_refs_1, at
Please submit a full bug report.
See <URL:http://bugzilla.redhat.com/bugzilla/> for instructions.
make: *** [maxwell_eps.o] Error 1
make: Leaving directory
make: *** [all-recursive] Error 1
Expected Results: the mpb executable should have been created
Authors comment from http://ab-initio.mit.edu/mpb/download.html
Linux/x86: There is a bug in gcc 2.95. (and possibly earlier egcs
versions) that causes
problems. This was fixed in gcc 2.95.2. (gcc 2.8.1 and earlier seem to
be okay, too.) The gcc
"2.96" version released with Redhat 7.0 also seems to cause problems
although we haven't yet tracked this down in detail; we recommend using
gcc 2.95.2 instead.
Can you please rerun
cc -DHAVE_CONFIG_H -I/usr/include -I../util -I../matrices -c -O3 -Wall -W -Wbad-function-cast -Wcast-qual -Wpointer-arith -Wcast-align -pedantic maxwell_eps.c -o maxwell_eps.o -save-temps -v
and attach here maxwell_eps.i?
There have been some fixup_var_refs fixes between gcc-2.96-69 and gcc-2.96-77,
so it is well possible this is fixed already, but I'd like to be sure.
Created attachment 11165 [details]
Here is the maxwell_eps.i file
Looks like it is not fixed, happens with gcc 3.0 and 3.1 branches as well.
It can be simplified into:
void foo (void)
double a = 0.0;
double b = a;
if (&b != &a);
which ICEs at -O and above.
I've fixed this in http://gcc.gnu.org/ml/gcc-patches/2001-02/msg01615.html,
waiting for feedback before I put it into rpm.
The fix is in gcc-2.96-77.1 in rawhide.
*** Bug 31076 has been marked as a duplicate of this bug. ***