gcc-4.10.0-alpha20140518 fails when compiling the following code w/ -ftree-loop-vectorize -O1 and above: int z; int d; int n(void) { int s; int *q; for (s = 0; s < 1; ++s) { int b; for (d = 0; d < 1; ++d) return 0; for (b = 0; b < 1; ++b) { int o[1] = { 0 }; q = &o[b]; } for (z = 0; z < 1; ++z) return 0; } return *q; } bb234e61.c: In function 'n': bb234e61.c:21:1: internal compiler error: in loop_preheader_edge, at cfgloop.c:1668 4.10.0-alpha20140411 works well here.
I'll have a look.
I cannot reproduce this. What architecture do you see the ICE on?
x86_64-pc-linux-gnu (both host and target), powerpc-e500v2-linux-gnuspe (likewise).
I even have another reproducer which is basically identical to the original one but not completely. int t; int n[1] = { 0 }; void x(void) { int v; int r; int i[4] = { 0 }; for (v = 0; v < 1; ++v) { ++i[3]; for (r = 0; r < 1; ++r) { for (t = 0; t < 1; ++t) return; for (t = 0; t < 1; ++t) /* Irregardless of i's declared size, the ICE only occurs when the array subscript on lines 18 and 11 is exactly 3 (I've checked only the nearest values, however). */ i[3] = n[t]; for (t = 0; t < 1; ++t) return; } } }
OK, it seems to be accidentally fixed somewhere between the two snapshots as now I'm also unable to reproduce it w/ 4.10.0-alpha20140525.
Thanks.