https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71506
Martin Liška <marxin at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Last reconfirmed| |2016-06-13 CC| |marxin at gcc dot gnu.org Ever confirmed|0 |1 --- Comment #1 from Martin Liška <marxin at gcc dot gnu.org> --- Confirmed on 5.3.1 with following back-trace: #0 0x00007ffff6aa2908 in raise () from /lib64/libc.so.6 #1 0x00007ffff6aa3d5a in abort () from /lib64/libc.so.6 #2 0x00007ffff7add04b in isl_handle_error () from /usr/lib64/libisl.so.15 #3 0x00007ffff7ad62ba in isl_constraint_set_coefficient_val () from /usr/lib64/libisl.so.15 #4 0x0000000000ec1bf2 in build_linearized_memory_access (pdr=0x19fe790, map=0x1a0d2c0) at ../../gcc/graphite-interchange.c:129 #5 pdr_stride_in_loop (pdr=0x19fe790, depth=0, stride=0x7fffffffd560) at ../../gcc/graphite-interchange.c:215 #6 memory_strides_in_loop_1 (loop=0x1a0fc10, depth=0, strides=0x7fffffffd670) at ../../gcc/graphite-interchange.c:301 #7 0x0000000000ec6caa in lst_interchange_profitable_p (depth2=<optimized out>, depth1=<optimized out>, nest=0x1a0fc10) at ../../gcc/graphite-interchange.c:418 #8 lst_try_interchange_loops (loop2=<optimized out>, loop1=<optimized out>, scop=<optimized out>) at ../../gcc/graphite-interchange.c:555 #9 lst_interchange_select_inner (scop=scop@entry=0x19fe550, outer_father=outer_father@entry=0x1a0fc70, outer=outer@entry=0, inner_father=inner_father@entry=0x1a0fc40) at ../../gcc/graphite-interchange.c:618 #10 0x0000000000ec9941 in lst_interchange_select_outer (scop=scop@entry=0x19fe550, loop=0x1a0fc40, outer=outer@entry=0) at ../../gcc/graphite-interchange.c:644 #11 0x0000000000ec998e in lst_interchange_select_outer (scop=scop@entry=0x19fe550, loop=0x1a0fc70, outer=outer@entry=0) at ../../gcc/graphite-interchange.c:654 #12 0x0000000000ec99dc in scop_do_interchange (scop=scop@entry=0x19fe550) at ../../gcc/graphite-interchange.c:666 #13 0x0000000000e228ab in apply_poly_transforms (scop=scop@entry=0x19fe550) at ../../gcc/graphite-poly.c:280 #14 0x0000000000e1e0e9 in graphite_transform_loops () at ../../gcc/graphite.c:310 #15 0x0000000000e1e561 in graphite_transforms (fun=<optimized out>) at ../../gcc/graphite.c:339 #16 (anonymous namespace)::pass_graphite_transforms::execute (this=<optimized out>, fun=<optimized out>) at ../../gcc/graphite.c:420 #17 0x0000000000879216 in execute_one_pass (pass=pass@entry=0x19932e0) at ../../gcc/passes.c:2330 #18 0x0000000000879646 in execute_pass_list_1 (pass=0x19932e0) at ../../gcc/passes.c:2383 #19 0x0000000000879658 in execute_pass_list_1 (pass=0x1993280) at ../../gcc/passes.c:2384 #20 0x0000000000879658 in execute_pass_list_1 (pass=0x1992e60) at ../../gcc/passes.c:2384 #21 0x0000000000879658 in execute_pass_list_1 (pass=0x1991d20, pass@entry=0x1991c60) at ../../gcc/passes.c:2384 #22 0x0000000000879699 in execute_pass_list (fn=0x7ffff69f1690, pass=0x1991c60) at ../../gcc/passes.c:2394 #23 0x000000000062dc8b in cgraph_node::expand (this=this@entry=0x7ffff6880498) at ../../gcc/cgraphunit.c:1896 #24 0x000000000062ef74 in expand_all_functions () at ../../gcc/cgraphunit.c:2032 #25 symbol_table::compile (this=this@entry=0x7ffff6873000) at ../../gcc/cgraphunit.c:2385 #26 0x0000000000630410 in symbol_table::compile (this=0x7ffff6873000) at ../../gcc/timevar.h:110 #27 symbol_table::finalize_compilation_unit (this=0x7ffff6873000) at ../../gcc/cgraphunit.c:2462 #28 0x00000000004ce4d3 in cp_write_global_declarations () at ../../gcc/cp/decl2.c:4849 #29 0x000000000091d763 in compile_file () at ../../gcc/toplev.c:613 #30 0x000000000045f095 in do_compile () at ../../gcc/toplev.c:2067 #31 toplev::main (this=this@entry=0x7fffffffdad0, argc=argc@entry=17, argv=argv@entry=0x7fffffffdbd8) at ../../gcc/toplev.c:2165 #32 0x000000000045fd8a in main (argc=17, argv=0x7fffffffdbd8) at ../../gcc/main.c:39 Reduced test-case $ cat tc.cc enum enums { PLANE_TYPES }; typedef enums vp9_coeff_count[2][6][6][2]; typedef struct { vp9_coeff_count coef_counts[][PLANE_TYPES]; } RD_COUNTS; struct A { RD_COUNTS rd_counts; }; int accumulate_rd_opt_j, accumulate_rd_opt_k, accumulate_rd_opt_l, accumulate_rd_opt_n, fn1_m; A *fn1_td; void fn1() { for (; fn1_m; fn1_m++) { accumulate_rd_opt_n = 0; for (; accumulate_rd_opt_n < 2; accumulate_rd_opt_n++) fn1_td->rd_counts .coef_counts[0][accumulate_rd_opt_j][accumulate_rd_opt_k] [accumulate_rd_opt_l][fn1_m][accumulate_rd_opt_n] = PLANE_TYPES; } }