| ! RUN: %python %S/test_errors.py %s %flang -fopenmp |
| |
| ! OpenMP Version 5.0 |
| ! Check OpenMP construct validity for the following directives: |
| ! 2.7 Teams Construct |
| |
| program main |
| integer :: i, j, N = 10 |
| real :: a, b, c |
| |
| !$omp teams |
| a = 3.14 |
| !$omp end teams |
| |
| !$omp target |
| !$omp teams |
| a = 3.14 |
| !$omp end teams |
| !$omp end target |
| |
| !$omp target |
| !$omp parallel |
| !ERROR: TEAMS region can only be strictly nested within the implicit parallel region or TARGET region |
| !$omp teams |
| a = 3.14 |
| !$omp end teams |
| !$omp end parallel |
| !$omp end target |
| |
| !$omp parallel |
| !ERROR: TEAMS region can only be strictly nested within the implicit parallel region or TARGET region |
| !$omp teams |
| a = 3.14 |
| !$omp end teams |
| !$omp end parallel |
| |
| !$omp do |
| do i = 1, N |
| !ERROR: TEAMS region can only be strictly nested within the implicit parallel region or TARGET region |
| !$omp teams |
| a = 3.14 |
| !$omp end teams |
| end do |
| |
| !$omp master |
| !ERROR: TEAMS region can only be strictly nested within the implicit parallel region or TARGET region |
| !$omp teams |
| a = 3.14 |
| !$omp end teams |
| !$omp end master |
| |
| !$omp target parallel |
| !ERROR: TEAMS region can only be strictly nested within the implicit parallel region or TARGET region |
| !$omp teams |
| a = 3.14 |
| !$omp end teams |
| !$omp end target parallel |
| |
| !$omp target |
| !$omp teams |
| !ERROR: Only `DISTRIBUTE` or `PARALLEL` regions are allowed to be strictly nested inside `TEAMS` region. |
| !ERROR: TEAMS region can only be strictly nested within the implicit parallel region or TARGET region |
| !$omp teams |
| a = 3.14 |
| !$omp end teams |
| !$omp end teams |
| !$omp end target |
| |
| !$omp target teams |
| !ERROR: TEAMS region can only be strictly nested within the implicit parallel region or TARGET region |
| !$omp teams |
| a = 3.14 |
| !$omp end teams |
| !$omp end target teams |
| |
| !ERROR: TARGET construct with nested TEAMS region contains statements or directives outside of the TEAMS construct |
| !$omp target |
| do i = 1, N |
| !$omp teams |
| a = 3.14 |
| !$omp end teams |
| enddo |
| !$omp end target |
| |
| !ERROR: TARGET construct with nested TEAMS region contains statements or directives outside of the TEAMS construct |
| !$omp target |
| if (i .GT. 1) then |
| if (j .GT. 1) then |
| !$omp teams |
| a = 3.14 |
| !$omp end teams |
| end if |
| end if |
| !$omp end target |
| |
| !ERROR: TARGET construct with nested TEAMS region contains statements or directives outside of the TEAMS construct |
| !$omp target |
| b = 3.14 |
| !$omp teams |
| a = 3.14 |
| !$omp end teams |
| !$omp end target |
| |
| !ERROR: TARGET construct with nested TEAMS region contains statements or directives outside of the TEAMS construct |
| !$omp target |
| !$omp teams |
| a = 3.14 |
| !$omp end teams |
| c = 3.14 |
| !$omp end target |
| |
| end program main |