https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94672
--- Comment #3 from Jakub Jelinek <jakub at gcc dot gnu.org> --- Note, just making (some or all) optional PARM_DECLs predetermined shared (or firstprivate) by the langhook isn't correct, because subroutine foo (array) real, optional :: array(:) !$omp parallel default(none) ! { dg-error "enclosing" } if (.not.present (array)) stop 1 ! { dg-error "not specified in enclosing" } !$omp end parallel end subroutine is now correctly rejected, but used to be accepts-invalid before this change.