1! RUN: %S/test_errors.sh %s %t %flang_fc1 -fopenmp 2! REQUIRES: shell 3! OpenMP Version 4.5 4! 2.15.3.5 lastprivate Clause 5! A variable that appears in a lastprivate clause must be definable. 6 7module protected_var 8 integer, protected :: p 9end module protected_var 10 11program omp_lastprivate 12 use protected_var 13 integer :: i, a(10), b(10), c(10) 14 integer, parameter :: k = 10 15 16 a = 10 17 b = 20 18 19 !ERROR: Variable 'k' on the LASTPRIVATE clause is not definable 20 !$omp parallel do lastprivate(k) 21 do i = 1, 10 22 c(i) = a(i) + b(i) + k 23 end do 24 !$omp end parallel do 25 26 !ERROR: Variable 'p' on the LASTPRIVATE clause is not definable 27 !$omp parallel do lastprivate(p) 28 do i = 1, 10 29 c(i) = a(i) + b(i) + k 30 end do 31 !$omp end parallel do 32 33 call omp_lastprivate_sb(i) 34 35 print *, c 36 37end program omp_lastprivate 38 39subroutine omp_lastprivate_sb(m) 40 integer :: i, a(10), b(10), c(10) 41 integer, intent(in) :: m 42 43 a = 10 44 b = 20 45 46 !ERROR: Variable 'm' on the LASTPRIVATE clause is not definable 47 !$omp parallel do lastprivate(m) 48 do i = 1, 10 49 c(i) = a(i) + b(i) + m 50 end do 51 !$omp end parallel do 52 53 print *, c 54 55end subroutine omp_lastprivate_sb 56