Break circular dependency between FIR dialect and utilities
[llvm-project.git] / flang / test / Semantics / OpenMP / nested-teams.f90
blob80c59e07fbaa686f69c3efe81ba8879591dd7b8d
1 ! RUN: %python %S/../test_errors.py %s %flang -fopenmp
3 ! OpenMP Version 5.0
4 ! Check OpenMP construct validity for the following directives:
5 ! 2.7 Teams Construct
7 program main
8 integer :: i, j, N = 10
9 real :: a, b, c
11 !$omp teams
12 a = 3.14
13 !$omp end teams
15 !$omp target
16 !$omp teams
17 a = 3.14
18 !$omp end teams
19 !$omp end target
21 !$omp target
22 !$omp parallel
23 !ERROR: TEAMS region can only be strictly nested within the implicit parallel region or TARGET region
24 !$omp teams
25 a = 3.14
26 !$omp end teams
27 !$omp end parallel
28 !$omp end target
30 !$omp parallel
31 !ERROR: TEAMS region can only be strictly nested within the implicit parallel region or TARGET region
32 !$omp teams
33 a = 3.14
34 !$omp end teams
35 !$omp end parallel
37 !$omp do
38 do i = 1, N
39 !ERROR: TEAMS region can only be strictly nested within the implicit parallel region or TARGET region
40 !$omp teams
41 a = 3.14
42 !$omp end teams
43 end do
45 !$omp master
46 !ERROR: TEAMS region can only be strictly nested within the implicit parallel region or TARGET region
47 !$omp teams
48 a = 3.14
49 !$omp end teams
50 !$omp end master
52 !$omp target parallel
53 !ERROR: TEAMS region can only be strictly nested within the implicit parallel region or TARGET region
54 !$omp teams
55 a = 3.14
56 !$omp end teams
57 !$omp end target parallel
59 !$omp target
60 !$omp teams
61 !ERROR: Only `DISTRIBUTE` or `PARALLEL` regions are allowed to be strictly nested inside `TEAMS` region.
62 !ERROR: TEAMS region can only be strictly nested within the implicit parallel region or TARGET region
63 !$omp teams
64 a = 3.14
65 !$omp end teams
66 !$omp end teams
67 !$omp end target
69 !$omp target teams
70 !ERROR: TEAMS region can only be strictly nested within the implicit parallel region or TARGET region
71 !$omp teams
72 a = 3.14
73 !$omp end teams
74 !$omp end target teams
76 !ERROR: TARGET construct with nested TEAMS region contains statements or directives outside of the TEAMS construct
77 !$omp target
78 do i = 1, N
79 !$omp teams
80 a = 3.14
81 !$omp end teams
82 enddo
83 !$omp end target
85 !ERROR: TARGET construct with nested TEAMS region contains statements or directives outside of the TEAMS construct
86 !$omp target
87 if (i .GT. 1) then
88 if (j .GT. 1) then
89 !$omp teams
90 a = 3.14
91 !$omp end teams
92 end if
93 end if
94 !$omp end target
96 !ERROR: TARGET construct with nested TEAMS region contains statements or directives outside of the TEAMS construct
97 !$omp target
98 b = 3.14
99 !$omp teams
100 a = 3.14
101 !$omp end teams
102 !$omp end target
104 !ERROR: TARGET construct with nested TEAMS region contains statements or directives outside of the TEAMS construct
105 !$omp target
106 !$omp teams
107 a = 3.14
108 !$omp end teams
109 c = 3.14
110 !$omp end target
112 end program main