This is just a FYI, and is really a gforth, not a gcc problem. However, since I've just dropped gforth compiled with egcs into powertools-7.2, I figgered I'd report the problem. Nuke the package in powertools if you want <shrug>
This bug is probably due to gcc-2.96 producing incorrect code (guess based on experience with similar symptoms in other settings).
Yeah, engine() couldn't be shorter... So far I've found one GCSE bug which caused engine-ditc.o to be miscompiled. With this fixed, there is some other bug which causes engine.o to be miscompiled with -fomit-frame-pointer (taking this one out fixes it). I'll dig some more.
I have now tested this a little more and found that Gforts works with gcc-2.96 on Intel if it is configured with --enable-force-reg. I found that I get a good result (correct and fast code) with gcc version 2.96 20000731 (Red Hat Linux 7.1 2.96-81) by configuring in the following way: CC="gcc -fno-gcse" ./configure --enable-force-reg --enable-indirect-threaded I will look into the generated code for the crashing versions soon.
The compiler included in Red Hat Linux 7.1 and later versions of Red Hat Linux compiles gforth-5.0 correctly. The errata compiler for Red Hat Linux 7.0 (gcc-2.96-85) also compiles gforth-5.0 correctly.