!RUN: %python %S/../test_errors.py %s %flang -fopenmp -fopenmp-version=50 subroutine f00 real :: x !ERROR: The type of 'x' is incompatible with the reduction operator. !$omp target in_reduction(.or.: x) !$omp end target end subroutine f01 real :: x !ERROR: Invalid reduction operator in IN_REDUCTION clause. !$omp target in_reduction(.not.: x) !$omp end target end subroutine f02(p) integer, pointer, intent(in) :: p !ERROR: Pointer 'p' with the INTENT(IN) attribute may not appear in a IN_REDUCTION clause !$omp target in_reduction(+: p) !$omp end target end subroutine f03 common /c/ a, b !ERROR: Common block names are not allowed in IN_REDUCTION clause !$omp target in_reduction(+: /c/) !$omp end target end subroutine f04 integer :: x(10) !ERROR: Reference to 'x' must be a contiguous object !$omp target in_reduction(+: x(1:10:2)) !$omp end target end subroutine f05 integer :: x(10) !ERROR: 'x' in IN_REDUCTION clause is a zero size array section !$omp target in_reduction(+: x(1:0)) !$omp end target end subroutine f06 type t integer :: a(10) end type type(t) :: x !ERROR: A variable that is part of another variable cannot appear on the IN_REDUCTION clause !ERROR: The base expression of an array element or section in IN_REDUCTION clause must be an identifier !$omp target in_reduction(+: x%a(2)) !$omp end target end subroutine f07 type t integer :: a(10) end type type(t) :: x !ERROR: A variable that is part of another variable cannot appear on the IN_REDUCTION clause !ERROR: The base expression of an array element or section in IN_REDUCTION clause must be an identifier !$omp target in_reduction(+: x%a(1:10)) !$omp end target end subroutine f08 integer :: x !ERROR: Type parameter inquiry is not permitted in IN_REDUCTION clause !$omp target in_reduction(+: x%kind) !$omp end target end