When certain optimizations are enabled (but ones which are enabled with -O and -O2), gcc crashes with an internal compiler error due to a segmentation fault.
I encountered this problem while building openssl v0.9.8d. I have reproduced the problem on two different machines with svn builds of gcc trunk taken on 2007-02-08 and 2007-02-09 (revision 121606). The openssl build crashed while compiling evp_pkey.c. I have included the preprocessed and stripped of include file line numbers file e.i file that I am using to reproduce the crash. Compiling it with the following command demonstrates the crash: $ gcc -O2 -march=pentium -pipe -c -o e.o e.i e.i: In function 'EVP_PKEY2PKCS8_broken': e.i:7903: warning: function called through a non-compatible type e.i:7903: note: if this code is reached, the program will abort e.i: In function 'dsa_pkey2pkcs8': e.i:7999: warning: function called through a non-compatible type e.i:7999: note: if this code is reached, the program will abort e.i: In function 'EVP_PKEY2PKCS8_broken': e.i:7937: internal compiler error: Segmentation fault Please submit a full bug report, with preprocessed source if appropriate. See <URL:http://gcc.gnu.org/bugs.html> for instructions. The specific flags that seem to cause problems are different on different compiles of gcc, however! On my one installation, I found I had to at least combine -O with -fschedule-insns and -fschedule-insns2 to crash it, (and of course -O2 would always crash), but when I rebuilt from the same source, with the same build process, on a different machine, I found that either -fdefer-pop or -ftree-lrs alone would crash the compile. Compiling with -march=pentium or -march=pentium-mmx cause the crash, but no other architecture that I tested causes this problem. -- Summary: Optimizations cause ICE segfault w/ -march=pentium Product: gcc Version: 4.3.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: other AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: colin at gibibit dot com GCC build triplet: i686-pc-linux-gnu GCC host triplet: i686-pc-linux-gnu GCC target triplet: i686-pc-linux-gnu http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30749