I get the following ICE with gcc 4.2 on ia64. The reduced testcase fails on gcc 4.0/4.1 with an error but the original file compiles fine and only produces an ICE with gcc 4.2 at -O.
[EMAIL PROTECTED]:~$ /usr/lib/gcc-snapshot/bin/g++ -c -O xstow-tree.cpp xstow-tree.cpp: In member function 'bool Tree::check(Ref<Node>, Ref<Node>, Ref<std::vector<Tree::Link, std::allocator<Tree::Link> > >)': xstow-tree.cpp:718: error: could not split insn (call_insn 359 358 360 24 (parallel [ (call (mem:DI (const:DI (plus:DI (symbol_ref:DI ("_ZTV14VecStringValue") [flags 0x40] <var_decl 0x20000000004fca50 _ZTV14VecStringValue>) (const_int 16 [0x10]))) [0 S8 A64]) (const_int 1 [0x1])) (clobber (reg:DI 320 b0)) (clobber (scratch:DI)) (clobber (scratch:DI)) ]) 322 {call_gp} (insn_list:REG_DEP_TRUE 354 (insn_list:REG_DEP_TRUE 357 (insn_list:REG_DEP_TRUE 358 (nil)))) (expr_list:REG_DEAD (reg:DI 120 r120) (expr_list:REG_DEAD (reg:DI 121 r121) (expr_list:REG_UNUSED (scratch:DI) (expr_list:REG_UNUSED (scratch:DI) (expr_list:REG_UNUSED (reg:DI 320 b0) (nil)))))) (expr_list:REG_DEP_TRUE (use (reg:DI 1 r1)) (expr_list:REG_DEP_TRUE (use (reg:DI 121 r121)) (expr_list:REG_DEP_TRUE (use (reg:DI 120 r120)) (nil))))) xstow-tree.cpp:718: internal compiler error: in final_scan_insn, at final.c:2448 Please submit a full bug report, with preprocessed source if appropriate. See <URL:http://gcc.gnu.org/bugs.html> for instructions. For Debian GNU/Linux specific bug reporting instructions, see <URL:file:///usr/share/doc/gcc-4.1/README.Bugs>. [EMAIL PROTECTED]:~$ /usr/lib/gcc-snapshot/bin/g++ -c xstow-tree.cpp [EMAIL PROTECTED]:~$ Here's proof that the original source is valid code. ;) [EMAIL PROTECTED]:~/src/xstow-0.5.1/src$ /usr/lib/gcc-snapshot/bin/g++ -DHAVE_CONFIG_H -I.. -g -O2 -DNDEBUG -DNFORMAT -DSYSCONFDIR='"/etc/xstow"' -c -o tree.o tree.cpp tree.cpp: In member function 'bool Tree::check(Ref<Node>, Ref<Node>, Ref<std::vector<Tree::Link, std::allocator<Tree::Link> > >)': tree.cpp:613: error: could not split insn (call_insn 4695 32617 32618 444 tree.cpp:468 (parallel [ (call (mem:DI (const:DI (plus:DI (symbol_ref:DI ("_ZTV14VecStringValue") [flags 0x40] <var_decl 0x20000000024fd340 _ZTV14VecStringValue>) (const_int 80 [0x50]))) [0 S8 A64]) (const_int 1 [0x1])) (clobber (reg:DI 320 b0)) (clobber (scratch:DI)) (clobber (scratch:DI)) ]) 322 {call_gp} (nil) (expr_list:REG_DEAD (reg:DI 120 r120) (expr_list:REG_DEAD (reg:DI 121 r121) (expr_list:REG_UNUSED (scratch:DI) (expr_list:REG_UNUSED (scratch:DI) (expr_list:REG_UNUSED (reg:DI 320 b0) (expr_list:REG_EH_REGION (const_int 145 [0x91]) (nil))))))) (expr_list:REG_DEP_TRUE (use (reg:DI 1 r1)) (expr_list:REG_DEP_TRUE (use (reg:DI 121 r121)) (expr_list:REG_DEP_TRUE (use (reg:DI 120 r120)) (nil))))) tree.cpp:613: internal compiler error: in final_scan_insn, at final.c:2448 Please submit a full bug report, with preprocessed source if appropriate. See <URL:http://gcc.gnu.org/bugs.html> for instructions. For Debian GNU/Linux specific bug reporting instructions, see <URL:file:///usr/share/doc/gcc-4.1/README.Bugs>. [EMAIL PROTECTED]:~/src/xstow-0.5.1/src$ g++-4.1 -DHAVE_CONFIG_H -I.. -g -O2 -DNDEBUG -DNFORMAT -DSYSCONFDIR='"/etc/xstow"' -c -o tree.o tree.cpp [EMAIL PROTECTED]:~/src/xstow-0.5.1/src$ g++-4.0 -DHAVE_CONFIG_H -I.. -g -O2 -DNDEBUG -DNFORMAT -DSYSCONFDIR='"/etc/xstow"' -c -o tree.o tree.cpp [EMAIL PROTECTED]:~/src/xstow-0.5.1/src$ -- Summary: [4.2 regression] ICE in final_scan_insn, at final.c:2448 Product: gcc Version: 4.2.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: tbm at cyrius dot com GCC host triplet: ia64-linux-gnu GCC target triplet: ia64-linux-gnu http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28495