https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71824
--- Comment #14 from rguenther at suse dot de <rguenther at suse dot de> --- On Sun, 5 Feb 2017, drfiemost at email dot it wrote: > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71824 > > --- Comment #13 from Leandro Nini <drfiemost at email dot it> --- > I've applied the patch to the 6.3.1 20170202 snapshot and the former test > compiles but this one triggers the same error: > > typedef struct { float x1; } bx; > typedef struct { > int w; > short o; > } T2P; > T2P a; > int b; > void fn2(); > void fn3(bx*,short); > void fn1() { > unsigned i = 0; > int c; > bx *d; > bx **h; > if (b == 0) { > fn2(); > return; > } > for (; c; c++) > for (; i < 100; i++) { > d = h[i]; > d->x1 = a.w; > } > for (; i < 100; i++) { > d = h[i]; > d->x1 = a.w; > } > if (a.o) > for (; b;) > fn3(d, a.o); > } > > > /opt/gcc/bin/gcc -O2 -floop-interchange bug71824_v2.c > bug71824_v2.c: In function ‘fn1’: > bug71824_v2.c:10:6: internal compiler error: in add_loop_constraints, at > graphite-sese-to-poly.c:931 > void fn1() { > ^~~ > 0x17540ea add_loop_constraints > ../../gcc/graphite-sese-to-poly.c:931 > 0x1754538 build_iteration_domains > ../../gcc/graphite-sese-to-poly.c:1001 > 0x17546b5 build_iteration_domains > ../../gcc/graphite-sese-to-poly.c:1040 > 0x17553ae build_poly_scop(scop*) > ../../gcc/graphite-sese-to-poly.c:1364 > 0x1739ee5 graphite_transform_loops() > ../../gcc/graphite.c:319 > 0x1739f87 graphite_transforms > ../../gcc/graphite.c:356 > 0x173a0ad execute > ../../gcc/graphite.c:433 Confirmed (the testcase works on trunk), it's slightly different in that it ICEs on the first assert. I'll investigate.