44 lines
1.3 KiB
Fortran
44 lines
1.3 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
|
|
|
|
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
|