34 lines
1.0 KiB
Fortran
34 lines
1.0 KiB
Fortran
! RUN: %python %S/../test_errors.py %s %flang_fc1 -fopenmp
|
|
! OpenMP Version 5.1
|
|
! Check OpenMP construct validity for the following directives:
|
|
! 2.21.2 Threadprivate Directive
|
|
|
|
subroutine host_assoc_fail()
|
|
integer :: i
|
|
! ERROR: A variable that appears in a THREADPRIVATE directive must be declared in the scope of a module or have the SAVE attribute, either explicitly or implicitly
|
|
!$omp threadprivate(i)
|
|
real :: r
|
|
! ERROR: A variable that appears in a THREADPRIVATE directive must be declared in the scope of a module or have the SAVE attribute, either explicitly or implicitly
|
|
!$omp threadprivate(r)
|
|
contains
|
|
subroutine internal()
|
|
!$omp parallel
|
|
print *, i, r
|
|
!$omp end parallel
|
|
end subroutine internal
|
|
end subroutine host_assoc_fail
|
|
|
|
! This sub-test is not supposed to emit a compiler error.
|
|
subroutine host_assoc()
|
|
integer, save :: i
|
|
!$omp threadprivate(i)
|
|
real, save :: r
|
|
!$omp threadprivate(r)
|
|
contains
|
|
subroutine internal()
|
|
!$omp parallel
|
|
print *, i, r
|
|
!$omp end parallel
|
|
end subroutine internal
|
|
end subroutine host_assoc
|