https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105242

--- Comment #2 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Why do you say accepts invalid for C/C++?
void
foo (int i1, int i2, int j1, int j2, int k1, int k2)
{
  int k = 1;
  #pragma omp target parallel for simd collapse(3) firstprivate (k)
  for (int ii = i1; ii <= i2; ++ii)
    for (int jj = j1; jj <= j2; ++jj)
      for (int kk = k1; kk <= k2; ++kk)
        {
          if (kk > 5)
            k = 0;
          if (kk == 7)
            break;
        }
}
is certainly rejected:
pr105242.c: In function ‘foo’:
pr105242.c:13:13: error: break statement used with OpenMP for loop
   13 |             break;
      |             ^~~~~
by both C and C++ (all the way back to GCC 6).

Reply via email to