[clangd] Re-land "support outgoing calls in call hierarchy" (#117673)
[llvm-project.git] / flang / test / Semantics / OpenMP / target01.f90
blob545cc8a7b69f84590bc56ab5fea181d420caab08
1 ! RUN: %python %S/../test_errors.py %s %flang_fc1 -fopenmp -fopenmp-version=51
3 subroutine foo(b)
4 use iso_c_binding
5 integer :: x,y
6 type(C_PTR) :: b
7 !ERROR: Variable 'x' may not appear on both MAP and PRIVATE clauses on a TARGET construct
8 !$omp target map(x) private(x)
9 x = x + 1
10 !$omp end target
12 !ERROR: Variable 'y' in IS_DEVICE_PTR clause must be of type C_PTR
13 !$omp target map(x) is_device_ptr(y)
14 x = x + 1
15 !$omp end target
17 !ERROR: Variable 'b' may not appear on both IS_DEVICE_PTR and HAS_DEVICE_ADDR clauses on a TARGET construct
18 !$omp target map(x) is_device_ptr(b) has_device_addr(b)
19 x = x + 1
20 !$omp end target
22 !ERROR: Variable 'b' may not appear on both IS_DEVICE_PTR and PRIVATE clauses on a TARGET construct
23 !$omp target map(x) is_device_ptr(b) private(b)
24 x = x + 1
25 !$omp end target
27 !ERROR: Variable 'y' may not appear on both HAS_DEVICE_ADDR and FIRSTPRIVATE clauses on a TARGET construct
28 !$omp target map(x) has_device_addr(y) firstprivate(y)
29 y = y - 1
30 !$omp end target
32 end subroutine foo
34 subroutine bar(b1, b2, b3)
35 use iso_c_binding
36 integer :: y
37 type(c_ptr) :: c
38 type(c_ptr), allocatable :: b1
39 type(c_ptr), pointer :: b2
40 type(c_ptr), value :: b3
42 !WARNING: Variable 'c' in IS_DEVICE_PTR clause must be a dummy argument. This semantic check is deprecated from OpenMP 5.2 and later.
43 !$omp target is_device_ptr(c)
44 y = y + 1
45 !$omp end target
46 !WARNING: Variable 'b1' in IS_DEVICE_PTR clause must be a dummy argument that does not have the ALLOCATABLE, POINTER or VALUE attribute. This semantic check is deprecated from OpenMP 5.2 and later.
47 !$omp target is_device_ptr(b1)
48 y = y + 1
49 !$omp end target
50 !WARNING: Variable 'b2' in IS_DEVICE_PTR clause must be a dummy argument that does not have the ALLOCATABLE, POINTER or VALUE attribute. This semantic check is deprecated from OpenMP 5.2 and later.
51 !$omp target is_device_ptr(b2)
52 y = y + 1
53 !$omp end target
54 !WARNING: Variable 'b3' in IS_DEVICE_PTR clause must be a dummy argument that does not have the ALLOCATABLE, POINTER or VALUE attribute. This semantic check is deprecated from OpenMP 5.2 and later.
55 !$omp target is_device_ptr(b3)
56 y = y + 1
57 !$omp end target
58 end subroutine bar