https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80233
Bug ID: 80233 Summary: [7 Regression] ICE in combine_instructions w/ -O2 (and above) Product: gcc Version: 7.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-*-linux-gnu* gcc-7.0.0-alpha20170326 snapshot ICEs on the following snippet w/ -O2 (-Os, -O3, -Ofast): int xg; void t4 (int o9) { int it; if (o9 == 0) { int fx; xg *= it; if (xg == 0) it /= 0; fx = (it != 0) ? (xg < 0) : (xg / o9); if (fx != 0) xg = 0; } } % powerpc-e300c3-linux-gnu-gcc-7.0.0-alpha20170326 -O2 -w -c hzfu8xgw.c hzfu8xgw.c: In function 't4': hzfu8xgw.c:20:1: internal compiler error: Segmentation fault } ^ (gdb) where #0 0x000002aaaba73033 in combine_instructions (nregs=<optimized out>, f=<optimized out>) at /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-7.0.0_alpha20170326/work/gcc-7-20170326/gcc/combine.c:1258 #1 rest_of_handle_combine () at /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-7.0.0_alpha20170326/work/gcc-7-20170326/gcc/combine.c:14650 #2 (anonymous namespace)::pass_combine::execute (this=<optimized out>) at /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-7.0.0_alpha20170326/work/gcc-7-20170326/gcc/combine.c:14695 #3 0x000002aaab2d8ec6 in execute_one_pass (pass=pass@entry=0x2aaac493020) at /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-7.0.0_alpha20170326/work/gcc-7-20170326/gcc/passes.c:2465 #4 0x000002aaab2d98b8 in execute_pass_list_1 (pass=0x2aaac493020) at /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-7.0.0_alpha20170326/work/gcc-7-20170326/gcc/passes.c:2554 #5 0x000002aaab2d98ca in execute_pass_list_1 (pass=0x2aaac492480) at /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-7.0.0_alpha20170326/work/gcc-7-20170326/gcc/passes.c:2555 #6 0x000002aaab2d995c in execute_pass_list (fn=<optimized out>, pass=<optimized out>) at /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-7.0.0_alpha20170326/work/gcc-7-20170326/gcc/passes.c:2565 #7 0x000002aaaaf2a87a in cgraph_node::expand (this=0x3fff72ab000) at /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-7.0.0_alpha20170326/work/gcc-7-20170326/gcc/cgraphunit.c:2038 #8 0x000002aaaaf2c4ca in expand_all_functions () at /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-7.0.0_alpha20170326/work/gcc-7-20170326/gcc/cgraphunit.c:2174 #9 symbol_table::compile (this=0x3fff7127000) at /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-7.0.0_alpha20170326/work/gcc-7-20170326/gcc/cgraphunit.c:2531 #10 0x000002aaaaf2eb03 in symbol_table::finalize_compilation_unit (this=0x3fff7127000) at /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-7.0.0_alpha20170326/work/gcc-7-20170326/gcc/cgraphunit.c:2621 #11 0x000002aaab3d9dfb in compile_file () at /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-7.0.0_alpha20170326/work/gcc-7-20170326/gcc/toplev.c:492 #12 0x000002aaaad4b9c2 in do_compile () at /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-7.0.0_alpha20170326/work/gcc-7-20170326/gcc/toplev.c:2000 #13 toplev::main (this=0x3ffffffc940, argc=23, argv=0x3ffffffca48) at /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-7.0.0_alpha20170326/work/gcc-7-20170326/gcc/toplev.c:2134 #14 0x000002aaaad4e258 in main (argc=23, argv=0x3ffffffca48) at /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-7.0.0_alpha20170326/work/gcc-7-20170326/gcc/main.c:39