http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57718
Bug ID: 57718 Summary: ICE in execute_todo, passes.c:2002 at -O3 (both -m32 & -m64) Product: gcc Version: 4.9.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: tree-optimization Assignee: unassigned at gcc dot gnu.org Reporter: su at cs dot ucdavis.edu With current gcc trunk on x86_64-linux, the following code causes an ICE when compiled at -O3 (both -m32 and -m64). This is a regression from 4.8.x. It may be related to 57592. $ gcc-trunk -v gcc version 4.9.0 20130625 (experimental) [trunk revision 200388] (GCC) $ gcc-trunk -O2 -c reduced.c $ gcc-4.8 -O3 -c reduced.c $ gcc-trunk -O3 -c reduced.c reduced.c: In function ‘foo’: reduced.c:3:6: internal compiler error: Segmentation fault void foo () ^ 0x7d729f crash_signal ../../gcc-trunk/gcc/toplev.c:333 0x7ff31b ssa_default_def(function*, tree_node*) ../../gcc-trunk/gcc/tree-dfa.c:314 0x7ff5e0 get_or_create_ssa_default_def(function*, tree_node*) ../../gcc-trunk/gcc/tree-dfa.c:362 0x8187fa get_reaching_def ../../gcc-trunk/gcc/tree-into-ssa.c:1184 0x81e96b maybe_replace_use ../../gcc-trunk/gcc/tree-into-ssa.c:1784 0x81e96b rewrite_update_stmt ../../gcc-trunk/gcc/tree-into-ssa.c:1967 0x81e96b rewrite_update_enter_block ../../gcc-trunk/gcc/tree-into-ssa.c:2136 0xb3801a walk_dominator_tree(dom_walk_data*, basic_block_def*) ../../gcc-trunk/gcc/domwalk.c:210 0x817503 rewrite_blocks ../../gcc-trunk/gcc/tree-into-ssa.c:2216 0x81dc1e update_ssa(unsigned int) ../../gcc-trunk/gcc/tree-into-ssa.c:3303 0x74a3db execute_function_todo ../../gcc-trunk/gcc/passes.c:1942 0x74ab7e execute_todo ../../gcc-trunk/gcc/passes.c:2002 Please submit a full bug report, with preprocessed source if appropriate. Please include the complete backtrace with any bug report. See <http://gcc.gnu.org/bugs.html> for instructions. ---------------------------------------------------------- int a, b, c, d, e, f; void foo () { int g; for (;;) { f = 0; for (; f <= 1; f++) { a = 0; for (; a <= 4; a++) b |= a >= g; if (d) continue; e = 0; } c = bar () < b; } }