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

--- Comment #4 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Ah, ok, I see what do you mean.
The thing is that the implementation of loop bind(teams) as distribute parallel
do simd
is effectively just an implementation detail, and per the spec j is not private
in the
loop construct, but private on teams.
I think we need to discuss this in lang committee then (what behavior is for
int i, j;
#pragma omp teams private (j)
{
  #pragma omp loop bind(teams)
  for (i = 0; i < 16; ++i)
    for (j = 0; j < 16; ++j)
      ;
}
).
Obviously, if private (j) is on omp loop rather than omp teams, it has to work
as expected.

Reply via email to