https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65597
Jakub Jelinek <jakub at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |jakub at gcc dot gnu.org --- Comment #2 from Jakub Jelinek <jakub at gcc dot gnu.org> --- void bar (int, int); int foo (void) { int i, j; i = 5; j = 8; #pragma omp for simd linear(j:31) for (i = 0; i < 151; i += 31) { bar (i, j); j += 31; } return i + j; } ICEs though. I've just raised a question about this on omp-lang, whether this is valid or not is fuzzy (both in 4.0 and in TR3). Maybe both the Fortran testcase and this one is invalid, maybe just this one and not the Fortran one, maybe both are valid, but it is unclear what they should do. There is also a clear bug on the Fortran FE side: #pragma omp simd linear(count.0:31) linear(i:31) collapse(1) for (count.0 = 0; count.0 < 5; count.0 = count.0 + 1) is clearly wrong, count.0 should have linear(count.0:1).