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).

Reply via email to