brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.5 KiB · 249b27e Raw
61 lines · plain
1! RUN: %python %S/../test_errors.py %s %flang_fc1 -fopenmp2! OpenMP Version 4.53! 2.15.4.2 copyprivate Clause4! All list items that appear in the copyprivate clause must be either5! threadprivate or private in the enclosing context.6 7program omp_copyprivate8  integer :: a(10), b(10)9  real, dimension(:), allocatable :: c10  real, dimension(:), pointer :: d11  integer, save :: k12 13  !$omp threadprivate(k)14 15  k = 1016  a = 1017  b = a + 1018 19  !$omp parallel20  !$omp single21  a = a + k22  !$omp end single copyprivate(k)23  !$omp single24  b = b - a25  !ERROR: COPYPRIVATE variable 'b' is not PRIVATE or THREADPRIVATE in outer context26  !$omp end single copyprivate(b)27  !$omp end parallel28 29  !$omp parallel sections private(a)30  !$omp section31  !$omp parallel32  !$omp single33  a = a * b + k34  !ERROR: COPYPRIVATE variable 'a' is not PRIVATE or THREADPRIVATE in outer context35  !$omp end single copyprivate(a)36  !$omp end parallel37  !$omp end parallel sections38 39  !The use of FIRSTPRIVATE with COPYPRIVATE is allowed40  !$omp parallel firstprivate(a)41  !$omp single42  a = a + k43  !$omp end single copyprivate(a)44  !$omp end parallel45 46  print *, a, b47 48  !$omp task49    !$omp parallel private(c, d)50      allocate(c(5))51      allocate(d(10))52      !$omp single53        c = 2254        d = 3355      !Check that 'c' and 'd' inherit PRIVATE DSA from the enclosing PARALLEL56      !and no error occurs.57      !$omp end single copyprivate(c, d)58    !$omp end parallel59  !$omp end task60end program omp_copyprivate61