BUG: CVS egcs-2.92.02 19980906: /usr/include/__math.h:287: `asm' operand requires impossible reload

Manfred Hollstein manfred@s-direktnet.de
Sun Sep 6 12:01:00 GMT 1998


On Sun, 6 September 1998, 19:12:45, manfred@s-direktnet.de wrote:

 > While  the  unresolved  symbol  (L<some-number>) problem I've reported
 > some  days  ago is   fixed now,    bootstrapping  the compiler   (with
 > BOOT_CFLAGS="-O9    -g  -funroll-all-loops")     on i586-linux    ends
 > prematurely with a "fatal signal 11" while compiling objc/sendmsg.c:
 > 
 > ./xgcc -B./  -DIN_GCC    -O9 -funroll-all-loops -g -march=pentium -mcpu=pentium -fomit-frame-pointer -W -Wall -I./include  -I. -I../../egcs-19980906/gcc -I../../egcs-19980906/gcc/config -I../../egcs-19980906/gcc/../include -Iobjc \
 > -c ../../egcs-19980906/gcc/objc/sendmsg.c -o objc/sendmsg.o
 > xgcc: Internal compiler error: program cc1 got fatal signal 11
 > 
 > I then checked within gdb with four different optimization levels:
 > 
 >   1. -O9 -funroll-all-loops
 >   2. -O9
 >   3. -O2
 >   4. -O
 > 
 > cc1 is always crashing at the same location. From what I can tell, the
 > variable "set"'s value (HARD_REG_ELT_TYPE *) 0x2b looks rather strange
 > (I've  attached  the file  "sendmsg.i"). Interestingly,  this  doesn't
 > happen with BOOT_CFLAGS="-O2 -g"!

Unfortunately, it dies later on while compiling libiberty/floatformat.c:

gmake[2]: Entering directory `/home/manfred/work/GNU/egcs-19980906-i586-linux/i586-linux/libiberty'
test x"yes" != xyes || \
  /home/manfred/work/GNU/egcs-19980906-i586-linux/gcc/xgcc -B/home/manfred/work/GNU/egcs-19980906-i586-linux/gcc/ -c -DHAVE_CONFIG_H -O9 -march=pentium -mcpu=pentium -fomit-frame-pointer -g  -I. -I../../../egcs-19980906/libiberty/../include  -fpic ../../../egcs-19980906/libiberty/floatformat.c -o pic/floatformat.o
/usr/include/__math.h: In function `floatformat_to_double':
/usr/include/__math.h:287: `asm' operand requires impossible reload
gmake[2]: *** [floatformat.o] Error 1

with /usr/include/__math.h from glibc-devel-2.0.7-19 on Red Hat Linux 5.1:

98-07-14 07:00              /usr/include/__math.h              Page    1

  [snip]
  281   __MATH_INLINE double
  282   ldexp (double __x, int __y)
  283   {
  284     register double __value;
  285     __asm __volatile__
  286       ("fscale"
  287        : "=t" (__value) : "0" (__x), "u" ((double) __y));
  288   
  289     return __value;
  290   }
  [snip]

manfred



More information about the Gcc-bugs mailing list