https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71253
Bug ID: 71253 Summary: [7 Regression] ICE during loop distribution w/ -O2 -ftree-loop-distribution Product: gcc Version: 7.0 Status: UNCONFIRMED Keywords: ice-on-valid-code Severity: normal Priority: P3 Component: tree-optimization Assignee: unassigned at gcc dot gnu.org Reporter: asolokha at gmx dot com Target Milestone: --- gcc-7.0.0-alpha20160522 segfaults when compiling the following reduces snippet w/ -O2 -ftree-loop-distribution: int jo, af, yb; long int wt; void nr (void) { int *bf = &yb; for (;;) { while (jo != 0) { long int *ad = (long int *) &yb; for (;;) { int fv; for (*ad = 1; *ad < 3; ++(*ad)) { af = *bf; fv = wt; } bf = (int *) &wt; ad = &wt; do { jo = wt = ((wt != 0) ? 1 : fv); } while (jo != 0); } } bf = ⁡ } } % x86_64-pc-linux-gnu-gcc-7.0.0-alpha20160522 -c -O2 -ftree-loop-distribution gdgqziql.c gdgqziql.c: In function 'nr': gdgqziql.c:5:1: internal compiler error: Segmentation fault nr (void) ^~ #0 0x0000000000bc7170 in last_stmt(basic_block_def*) () #1 0x0000000000c2008b in create_edge_for_control_dependence(graph*, basic_block_def*, int, control_dependences*) [clone .isra.31] () #2 0x0000000000c2141c in build_rdg(vec<loop*, va_heap, vl_ptr>, control_dependences*) () #3 0x0000000000c21740 in distribute_loop(loop*, vec<gimple*, va_heap, vl_ptr>, control_dependences*, int*, bool*) () #4 0x0000000000c246ff in (anonymous namespace)::pass_loop_distribution::execute(function*) () #5 0x0000000000ac4f5c in execute_one_pass(opt_pass*) () #6 0x0000000000ac5518 in execute_pass_list_1(opt_pass*) () #7 0x0000000000ac552a in execute_pass_list_1(opt_pass*) () #8 0x0000000000ac552a in execute_pass_list_1(opt_pass*) () #9 0x0000000000ac5575 in execute_pass_list(function*, opt_pass*) () #10 0x00000000007b1614 in cgraph_node::expand() () #11 0x00000000007b2ec0 in symbol_table::compile() [clone .part.49] () #12 0x00000000007b5273 in symbol_table::finalize_compilation_unit() () #13 0x0000000000b8ebba in compile_file() () #14 0x000000000061a6df in toplev::main(int, char**) () #15 0x000000000061c8f7 in main ()