! 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
module mod0
integer :: mi
contains
subroutine subm()
integer, save :: mmi
!ERROR: The THREADPRIVATE directive and the common block or variable in it must appear in the same declaration section of a scoping unit
!$omp threadprivate(mi)
mi = 1
contains
subroutine subsubm()
!ERROR: The THREADPRIVATE directive and the common block or variable in it must appear in the same declaration section of a scoping unit
!$omp threadprivate(mmi)
end
end
end
module mod1
integer :: mod_i
end
program main
use mod1
integer, save :: i
integer :: j
!ERROR: The THREADPRIVATE directive and the common block or variable in it must appear in the same declaration section of a scoping unit
!$omp threadprivate(mod_i)
contains
subroutine sub()
!ERROR: The THREADPRIVATE directive and the common block or variable in it must appear in the same declaration section of a scoping unit
!ERROR: The THREADPRIVATE directive and the common block or variable in it must appear in the same declaration section of a scoping unit
!$omp threadprivate(i, j)
i = 1
j = 1
end
end