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