! RUN: %python %S/../test_errors.py %s %flang -fopenmp ! 2.15.3 Data-Sharing Attribute Clauses ! 2.15.3.1 default Clause subroutine default_none() integer a(3) integer, parameter :: D=10 A = 1 B = 2 !$omp parallel default(none) private(c) !ERROR: The DEFAULT(NONE) clause requires that 'a' must be listed in a data-sharing attribute clause A(1:2) = 3 !ERROR: The DEFAULT(NONE) clause requires that 'b' must be listed in a data-sharing attribute clause B = 4 C = 5 + D !$omp end parallel end subroutine default_none ! Test that indices of sequential loops are privatised and hence do not error ! for DEFAULT(NONE) subroutine default_none_seq_loop integer :: i !$omp parallel do default(none) do i = 1, 10 do j = 1, 20 enddo enddo end subroutine ! Test that DEFAULT(NONE) error check sees implicit references subroutine default_none_nested() integer :: a !$omp parallel default(none) !$omp task !ERROR: The DEFAULT(NONE) clause requires that 'a' must be listed in a data-sharing attribute clause a = 1 !$omp end task !$omp end parallel end subroutine default_none_nested ! Test that we do not error for an explicitly privatized variable subroutine default_none_private() integer :: a !$omp parallel default(none) !$omp task private(a) a = 1 !$omp end task !$omp end parallel end subroutine program mm call default_none() call default_none_seq_loop() call default_none_nested() call default_none_private() !TODO: private, firstprivate, shared end