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

Reply via email to