[HLSL] Implement RWBuffer::operator[] via __builtin_hlsl_resource_getpointer (#117017)
[llvm-project.git] / flang / test / Semantics / OpenMP / resolve06.f90
blobcf544dfb73cad3ab21865284d93875eb84261f3a
1 ! REQUIRES: openmp_runtime
3 ! RUN: %python %S/../test_errors.py %s %flang_fc1 %openmp_flags -fopenmp-version=50
4 use omp_lib
5 !2.11.4 Allocate Clause
6 !For any list item that is specified in the allocate
7 !clause on a directive, a data-sharing attribute clause
8 !that may create a private copy of that list item must be
9 !specified on the same directive.
11 integer :: N = 2
13 !ERROR: The ALLOCATE clause requires that 'x' must be listed in a private data-sharing attribute clause on the same directive
14 !$omp parallel allocate(omp_default_mem_space : x)
15 do i = 1, N
16 x = 2
17 enddo
18 !$omp end parallel
20 !ERROR: The ALLOCATE clause requires that 'y' must be listed in a private data-sharing attribute clause on the same directive
21 !$omp parallel allocate(omp_default_mem_space : y) firstprivate(x)
22 do i = 1, N
23 x = 2
24 enddo
25 !$omp end parallel
27 !ERROR: The ALLOCATE clause requires that 'x' must be listed in a private data-sharing attribute clause on the same directive
28 !ERROR: The ALLOCATE clause requires that 'x' must be listed in a private data-sharing attribute clause on the same directive
29 !$omp parallel allocate(omp_default_mem_space : x) allocate(omp_default_mem_space : x)
30 do i = 1, N
31 x = 2
32 enddo
33 !$omp end parallel
35 !ERROR: The ALLOCATE clause requires that 'f' must be listed in a private data-sharing attribute clause on the same directive
36 !$omp parallel allocate(omp_default_mem_space : f) shared(f)
37 do i = 1, N
38 x = 2
39 enddo
40 !$omp end parallel
42 !ERROR: The ALLOCATE clause requires that 'q' must be listed in a private data-sharing attribute clause on the same directive
43 !$omp parallel private(t) allocate(omp_default_mem_space : z, t, q, r) firstprivate(z, r)
44 do i = 1, N
45 x = 2
46 enddo
47 !$omp end parallel
49 !ERROR: The ALLOCATE clause requires that 'b' must be listed in a private data-sharing attribute clause on the same directive
50 !ERROR: The ALLOCATE clause requires that 'c' must be listed in a private data-sharing attribute clause on the same directive
51 !$omp parallel allocate(omp_default_mem_space : a, b, c, d) firstprivate(a, d)
52 do i = 1, N
53 x = 2
54 enddo
55 !$omp end parallel
56 end