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