https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71144
Bug ID: 71144 Summary: [6/7 Regression] isl_aff.c:1001: position out of bounds 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: ktkachov at gcc dot gnu.org Target Milestone: --- The testcase: int a, c, d, e, f; int b[1]; short g; void fn1 () { for (; a; a++) if (f) for (; e; e--) { d = 0; for (; d <= 0; d++) if (c) break; (g = a) || (b[a] = 0); } } ICEs with -Ofast -floop-interchange: ../../gcc/isl/isl_aff.c:1001: position out of bounds mycrash.c: In function ‘fn1’: mycrash.c:6:1: internal compiler error: Aborted fn1 () ^~~ 0xbab71f crash_signal ../../gcc/gcc/toplev.c:333 0x13a4fe2 isl_handle_error ../../gcc/isl/isl_ctx.c:96 0x1365fa1 isl_aff_set_coefficient_si ../../gcc/isl/isl_aff.c:1000 0x12342da extract_affine_chrec ../../gcc/gcc/graphite-sese-to-poly.c:239 0x12342da extract_affine ../../gcc/gcc/graphite-sese-to-poly.c:381 0x123418e extract_affine ../../gcc/gcc/graphite-sese-to-poly.c:421 0x123523d add_condition_to_pbb ../../gcc/gcc/graphite-sese-to-poly.c:458 0x123523d add_conditions_to_domain ../../gcc/gcc/graphite-sese-to-poly.c:525 0x123523d build_iteration_domains ../../gcc/gcc/graphite-sese-to-poly.c:1017 0x1234fe5 build_iteration_domains ../../gcc/gcc/graphite-sese-to-poly.c:1040 0x123579f build_poly_scop(scop*) ../../gcc/gcc/graphite-sese-to-poly.c:1364 0x121fb9a graphite_transform_loops() ../../gcc/gcc/graphite.c:319 0x12201a0 graphite_transforms ../../gcc/gcc/graphite.c:356 0x12201a0 execute ../../gcc/gcc/graphite.c:433 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. This is using ISL 0.15 as downloaded from contrib/download_prerequisites. Don't know if this is an ISL bug or a bug in the way GCC communicates with it.