| ! 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 |