| ! This test checks the lowering of OpenMP Indirect Clause when used with the Declare Target directive |
| |
| ! RUN: not flang -fopenmp -fopenmp-version=52 %s 2>&1 | FileCheck %s |
| |
| module functions |
| implicit none |
| |
| interface |
| function func() result(i) |
| character(1) :: i |
| end function |
| end interface |
| |
| contains |
| function func1() result(i) |
| !CHECK: The INDIRECT clause cannot be used without the ENTER clause with the DECLARE TARGET directive. |
| !$omp declare target indirect(.true.) |
| character(1) :: i |
| i = 'a' |
| return |
| end function |
| end module |
| |
| program main |
| use functions |
| implicit none |
| procedure (func), pointer :: ptr1=>func1 |
| character(1) :: val1 |
| |
| !$omp target map(from: val1) |
| val1 = ptr1() |
| !$omp end target |
| |
| end program |