The attached code is compilable with gcc 3.4.3 and one week old 4.0. But today's 4.0 gives an ICE:
> g++-4.0 -v -save-temps -O3 -c test.cpp -o test.o Using built-in specs. Configured with: ../gcc/configure --enable-checking --prefix=/mnt/d/gcc --enable-shared --enable-threads --program-suffix=-4.0 --enable-__cxa_atexit --disable-nls --enable-languages=c,c++ Thread model: posix gcc version 4.0.0 20050202 (experimental) /mnt/d/gcc/libexec/gcc/i686-pc-linux-gnu/4.0.0/cc1plus -E -quiet -v -D_GNU_SOURCE test.cpp -mtune=pentiumpro -O3 -fpch-preprocess -o test.ii ignoring nonexistent directory "/mnt/d/gcc/lib/gcc/i686-pc-linux-gnu/4.0.0/../../../../i686-pc-linux-gnu/include" #include "..." search starts here: #include <...> search starts here: /mnt/d/gcc/lib/gcc/i686-pc-linux-gnu/4.0.0/../../../../include/c++/4.0.0 /mnt/d/gcc/lib/gcc/i686-pc-linux-gnu/4.0.0/../../../../include/c++/4.0.0/i686-pc-linux-gnu /mnt/d/gcc/lib/gcc/i686-pc-linux-gnu/4.0.0/../../../../include/c++/4.0.0/backward /usr/local/include /mnt/d/gcc/include /mnt/d/gcc/lib/gcc/i686-pc-linux-gnu/4.0.0/include /usr/include End of search list. /mnt/d/gcc/libexec/gcc/i686-pc-linux-gnu/4.0.0/cc1plus -fpreprocessed test.ii -quiet -dumpbase test.cpp -mtune=pentiumpro -auxbase-strip test.o -O3 -version -o test.s GNU C++ version 4.0.0 20050202 (experimental) (i686-pc-linux-gnu) compiled by GNU C version 4.0.0 20050202 (experimental). GGC heuristics: --param ggc-min-expand=30 --param ggc-min-heapsize=4096 test.cpp: In member function 'int DlSatTester::testMergedTrees()': test.cpp:51: error: SSA_NAME_OCCURS_IN_ABNORMAL_PHI should be set for SSA_NAME: LL_25in statement: LL_39 = PHI <LL_25(2), LL_29(4)>; PHI argument LL_25 for PHI node LL_39 = PHI <LL_25(2), LL_29(4)>; test.cpp:51: internal compiler error: verify_ssa failed. Please submit a full bug report, with preprocessed source if appropriate. See <URL:http://gcc.gnu.org/bugs.html> for instructions. -- Summary: ICE: SSA_NAME_OCCURS_IN_ABNORMAL_PHI should be set Product: gcc Version: 4.0.0 Status: UNCONFIRMED Severity: normal Priority: P2 Component: c++ AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: tsarkov at cs dot man dot ac dot uk CC: gcc-bugs at gcc dot gnu dot org 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=19768