https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106504
--- Comment #1 from Jakub Jelinek <jakub at gcc dot gnu.org> --- There have been discussions about this in several F2Fs. For linear it is desirable to allow private outer var because linear is the implicit behavior of simd iterators and people want to be able to use them even if they are private outer (say even simple void foo (int *a) { int i; #pragma omp simd for (i = 0; i < 16; i++) a[i] = i; } would be then invalid). Some people wanted to just drop the requirements even for lastprivate etc. (silently not assign to outer var).