https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71724
Bug ID: 71724 Summary: [5/6/7 Regression] ICE: Segmentation fault, deep recursion between combine_simplify_rtx and subst Product: gcc Version: 5.0 Status: UNCONFIRMED Keywords: ice-on-valid-code Severity: normal Priority: P3 Component: rtl-optimization Assignee: unassigned at gcc dot gnu.org Reporter: asolokha at gmx dot com Target Milestone: --- Target: powerpc-e500v2-linux-gnuspe gcc 5, 6, 7 for 32-bit target all fail to compile the following testcase w/ -O1: long long int ro, t9; void cg (void) { ro = (t9 != 1); ro += (t9 != 0) ? t9 : ro; } % powerpc-e500v2-linux-gnuspe-gcc-5.4.0 -c -O1 fxgjkta3.c powerpc-e500v2-linux-gnuspe-gcc-5.4.0: internal compiler error: Segmentation fault (program cc1) % powerpc-e500v2-linux-gnuspe-gcc-7.0.0-alpha20160626 -c -O1 fxgjkta3.c powerpc-e500v2-linux-gnuspe-gcc-7.0.0-alpha20160626: internal compiler error: Segmentation fault (program cc1) Backtrace for gcc 7: #0 0x0000000000eb99a6 in simplify_binary_operation_1(rtx_code, machine_mode, rtx_def*, rtx_def*, rtx_def*, rtx_def*) () #1 0x0000000000eaf44d in simplify_binary_operation(rtx_code, machine_mode, rtx_def*, rtx_def*) () #2 0x0000000001779ba1 in combine_simplify_rtx(rtx_def*, machine_mode, int, int) () #3 0x000000000177443c in subst(rtx_def*, rtx_def*, rtx_def*, int, int, int) () #4 0x000000000177413d in subst(rtx_def*, rtx_def*, rtx_def*, int, int, int) () #5 0x000000000177413d in subst(rtx_def*, rtx_def*, rtx_def*, int, int, int) () #6 0x0000000001779eaa in combine_simplify_rtx(rtx_def*, machine_mode, int, int) () #7 0x000000000177443c in subst(rtx_def*, rtx_def*, rtx_def*, int, int, int) () #8 0x0000000001779ee5 in combine_simplify_rtx(rtx_def*, machine_mode, int, int) () <…> #171156 0x0000000001779ee5 in combine_simplify_rtx(rtx_def*, machine_mode, int, int) () #171157 0x000000000177443c in subst(rtx_def*, rtx_def*, rtx_def*, int, int, int) () #171158 0x000000000177413d in subst(rtx_def*, rtx_def*, rtx_def*, int, int, int) () #171159 0x0000000001772bfb in subst(rtx_def*, rtx_def*, rtx_def*, int, int, int) () #171160 0x0000000001767ada in try_combine(rtx_insn*, rtx_insn*, rtx_insn*, rtx_insn*, int*, rtx_insn*) () #171161 0x0000000001762fea in combine_instructions(rtx_insn*, unsigned int) () #171162 0x00000000017625b9 in rest_of_handle_combine() () #171163 0x0000000001762565 in (anonymous namespace)::pass_combine::execute(function*) () #171164 0x0000000000dbbbd6 in execute_one_pass(opt_pass*) () #171165 0x0000000000dbc74b in execute_pass_list_1(opt_pass*) () #171166 0x0000000000dbc774 in execute_pass_list_1(opt_pass*) () #171167 0x0000000000dac811 in execute_pass_list(function*, opt_pass*) () #171168 0x0000000000904e8f in cgraph_node::expand() () #171169 0x0000000000909bf8 in expand_all_functions() () #171170 0x0000000000908bff in symbol_table::compile() () #171171 0x0000000000909dc2 in symbol_table::finalize_compilation_unit() () #171172 0x0000000000ef3262 in compile_file() () #171173 0x0000000000ef1c86 in do_compile() () #171174 0x0000000000ef169a in toplev::main(int, char**) () #171175 0x000000000190c540 in main ()