When compiling a C++ file, gcc 4.0.0 and 4.0.1 20050507 prerelease report an internal compiler error:
> /gcc-test/bin/g++ ice.cpp -O2 ice.cpp: In constructor 'SomeException::SomeException(const char*, ...)': ice.cpp:21: internal compiler error: in calc_dfs_tree, at dominance.c:376 Please submit a full bug report, with preprocessed source if appropriate. See <URL:http://gcc.gnu.org/bugs.html> for instructions. > /gcc-test/bin/g++ -v Using built-in specs. Target: powerpc-linux Configured with: ../gcc-4.0-20050507/configure --enable-languages=c,c++ -- prefix=/gcc-test --with-gnu-as --with-gnu-ld --with-system-zlib --without- included-gettext --enable-threads=posix --enable-haifa --enable-sjlj-exceptions powerpc-linux Thread model: posix gcc version 4.0.1 20050507 (prerelease) When not using -O2 or when using -O2 -msoft-float, the ICE isn't reported. This points to /* Save FP registers if needed. */ if (DEFAULT_ABI == ABI_V4 && TARGET_HARD_FLOAT && TARGET_FPRS && ! no_rtl && next_cum.fregno <= FP_ARG_V4_MAX_REG) branch in gcc/config/rs6000/rs6000.c whose contents causes the problem (directly or indirectly). I have managed to create a minimal testcase for the problem and will attach it to this report. -- Summary: Internal compiler error in calc_dfs_tree on valid code Product: gcc Version: 4.0.0 Status: UNCONFIRMED Severity: normal Priority: P2 Component: tree-optimization AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: gcc-bugzilla at antony dot heightanxiety dot com CC: gcc-bugs at gcc dot gnu dot org GCC build triplet: powerpc-unknown-linux GCC host triplet: powerpc-unknown-linux GCC target triplet: powerpc-unknown-linux http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21460