1! RUN: %python %S/../test_errors.py %s %flang_fc1 -fopenmp
2! OpenMP Version 5.1
3! Check OpenMP construct validity for the following directives:
4! 2.21.2 Threadprivate Directive
5
6program main
7  integer :: i, N = 10
8  integer, save :: x
9  common /blk/ y
10
11  !$omp threadprivate(x, /blk/)
12
13  !$omp parallel num_threads(x)
14  !$omp end parallel
15
16  !$omp single copyprivate(x, /blk/)
17  !$omp end single
18
19  !$omp do schedule(static, x)
20  do i = 1, N
21    y = x
22  end do
23  !$omp end do
24
25  !$omp parallel copyin(x, /blk/)
26  !$omp end parallel
27
28  !$omp parallel if(x > 1)
29  !$omp end parallel
30
31  !$omp teams thread_limit(x)
32  !$omp end teams
33
34  !ERROR: A THREADPRIVATE variable cannot be in PRIVATE clause
35  !ERROR: A THREADPRIVATE variable cannot be in PRIVATE clause
36  !$omp parallel private(x, /blk/)
37  !$omp end parallel
38
39  !ERROR: A THREADPRIVATE variable cannot be in FIRSTPRIVATE clause
40  !ERROR: A THREADPRIVATE variable cannot be in FIRSTPRIVATE clause
41  !$omp parallel firstprivate(x, /blk/)
42  !$omp end parallel
43
44  !ERROR: A THREADPRIVATE variable cannot be in SHARED clause
45  !ERROR: A THREADPRIVATE variable cannot be in SHARED clause
46  !$omp parallel shared(x, /blk/)
47  !$omp end parallel
48end
49