xref: /llvm-project/flang/test/Semantics/OpenMP/copyprivate01.f90 (revision 0ee6646d6fb3b0b9a3655b14bd1cbc18a4e99600)
1*3323a4bdSKiran Chandramohan! RUN: %python %S/../test_errors.py %s %flang_fc1 -fopenmp
2*3323a4bdSKiran Chandramohan! OpenMP Version 4.5
3*3323a4bdSKiran Chandramohan! 2.15.4.2 copyprivate Clause
4*3323a4bdSKiran Chandramohan! A list item that appears in a copyprivate clause may not appear in a
5*3323a4bdSKiran Chandramohan! private or firstprivate clause on the single construct.
6*3323a4bdSKiran Chandramohan
7*3323a4bdSKiran Chandramohanprogram omp_copyprivate
8*3323a4bdSKiran Chandramohan  integer :: a(10), b(10), k
9*3323a4bdSKiran Chandramohan
10*3323a4bdSKiran Chandramohan  k = 10
11*3323a4bdSKiran Chandramohan  a = 10
12*3323a4bdSKiran Chandramohan  b = a * 10
13*3323a4bdSKiran Chandramohan
14*3323a4bdSKiran Chandramohan  !$omp parallel
15*3323a4bdSKiran Chandramohan  !$omp single private(k)
16*3323a4bdSKiran Chandramohan  a = a + k
17*3323a4bdSKiran Chandramohan  !ERROR: COPYPRIVATE variable 'k' may not appear on a PRIVATE or FIRSTPRIVATE clause on a SINGLE construct
18*3323a4bdSKiran Chandramohan  !$omp end single copyprivate(k)
19*3323a4bdSKiran Chandramohan  !$omp single firstprivate(k)
20*3323a4bdSKiran Chandramohan  b = a - k
21*3323a4bdSKiran Chandramohan  !ERROR: COPYPRIVATE variable 'k' may not appear on a PRIVATE or FIRSTPRIVATE clause on a SINGLE construct
22*3323a4bdSKiran Chandramohan  !$omp end single copyprivate(k)
23*3323a4bdSKiran Chandramohan  !$omp end parallel
24*3323a4bdSKiran Chandramohan
25*3323a4bdSKiran Chandramohan  print *, a, b
26*3323a4bdSKiran Chandramohan
27*3323a4bdSKiran Chandramohanend program omp_copyprivate
28