new g77 x86 ICE in 19990328
Mon May 24 01:18:00 GMT 1999

>  In message <19990328181544.10702.qmail@deer>you write:
>  > This is a new ICE -- no ICE in previous snapshots.  Could someone
>  > currently working on the x86 backend look into it, and let me know
>  > if it turns out to be a g77 front-end bug, e.g. a latent one uncovered
>  > by recent improvements to the x86?
>  > 
>  > --------
>  > [craig@deer play]$ /develop/egcs/19990328/bin/g77 -O2 -v -c ice.f 
>  > g77 version egcs-2.93.14 19990328 (gcc2 ss-980929 experimental) (from FSF-g
>  > 77 version 0.5.24-19990313)
>  > Reading specs from /develop/egcs/19990328/lib/gcc-lib/i686-pc-linux-gnu/egc
>  > s-2.93.14/specs
>  > gcc version egcs-2.93.14 19990328 (gcc2 ss-980929 experimental)
>  >  /develop/egcs/19990328/lib/gcc-lib/i686-pc-linux-gnu/egcs-2.93.14/f771 ice
>  > .f -quiet -dumpbase ice.f -O2 -version -fversion -o /tmp/ccsUcaaa.s
>  > GNU F77 version egcs-2.93.14 19990328 (gcc2 ss-980929 experimental) (i686-p
>  > c-linux-gnu) compiled by GNU C version egcs-2.93.14 19990328 (gcc2 ss-98092
>  > 9 experimental).
>  > GNU Fortran Front End version 0.5.24-19990313
>  > ../../egcs-19990328/gcc/config/i386/i386.c:3697: Internal compiler error in
>  >  function print_operand
>  > Please submit a full bug report to `'.
>  > See <URL: > for details.
>  > [craig@deer play]$
>I just tried this with the current gcc-2.95 CVS sources.  It appears to be
>happy now.

This test case is now in g77.f-torture/compile/19990502-0.f and has
been discussed (on egcs-bugs, I think) under that name.

The upshot is, yes, it stopped failing, due to my patch introducing
flag_errno_math to prevent g77 from generating code to update errno
if SQRT is given a negative argument.

That means the back-end bug probably is still there.

Also, I'm probably going to remove the test case, because I can't
find any info on where I got it from in my email archives, and don't
want to put it in a release with the author's permission.  I am going
to try some web searches for the author and the code first, though,
in case I can get a clear answer (or lead) that way.

Anyway, if you're looking for a back-end bug to squash, fire up gdb
on f771, set arg to compile the test-case with the indicated options,
break at lang_init_options, finish it, re-set flag_errno_math to 1,
then continue.

If it runs to completion, great; if not, the bug (in the back end)
is still there.

IIRC, somebody already investigated it and determined it to be (another?)
case of %argp somehow creeping in as an (invalid) operand for some

        tq vm, (burley)

More information about the Gcc-bugs mailing list