! RUN: %python %S/../test_errors.py %s %flang -fopenacc ! Check OpenACC reduction validity. program openacc_reduction_validity integer :: i real :: r complex :: c logical :: l !$acc parallel reduction(+:i) !$acc end parallel !$acc parallel reduction(*:i) !$acc end parallel !$acc parallel reduction(min:i) !$acc end parallel !$acc parallel reduction(max:i) !$acc end parallel !$acc parallel reduction(iand:i) !$acc end parallel !$acc parallel reduction(ior:i) !$acc end parallel !$acc parallel reduction(ieor:i) !$acc end parallel !ERROR: reduction operator not supported for integer type !$acc parallel reduction(.and.:i) !$acc end parallel !ERROR: reduction operator not supported for integer type !$acc parallel reduction(.or.:i) !$acc end parallel !ERROR: reduction operator not supported for integer type !$acc parallel reduction(.eqv.:i) !$acc end parallel !ERROR: reduction operator not supported for integer type !$acc parallel reduction(.neqv.:i) !$acc end parallel !$acc parallel reduction(+:r) !$acc end parallel !$acc parallel reduction(*:r) !$acc end parallel !$acc parallel reduction(min:r) !$acc end parallel !$acc parallel reduction(max:r) !$acc end parallel !ERROR: reduction operator not supported for real type !$acc parallel reduction(iand:r) !$acc end parallel !ERROR: reduction operator not supported for real type !$acc parallel reduction(ior:r) !$acc end parallel !ERROR: reduction operator not supported for real type !$acc parallel reduction(ieor:r) !$acc end parallel !ERROR: reduction operator not supported for real type !$acc parallel reduction(.and.:r) !$acc end parallel !ERROR: reduction operator not supported for real type !$acc parallel reduction(.or.:r) !$acc end parallel !ERROR: reduction operator not supported for real type !$acc parallel reduction(.eqv.:r) !$acc end parallel !ERROR: reduction operator not supported for real type !$acc parallel reduction(.neqv.:r) !$acc end parallel !$acc parallel reduction(+:c) !$acc end parallel !$acc parallel reduction(*:c) !$acc end parallel !ERROR: reduction operator not supported for complex type !$acc parallel reduction(min:c) !$acc end parallel !ERROR: reduction operator not supported for complex type !$acc parallel reduction(max:c) !$acc end parallel !ERROR: reduction operator not supported for complex type !$acc parallel reduction(iand:c) !$acc end parallel !ERROR: reduction operator not supported for complex type !$acc parallel reduction(ior:c) !$acc end parallel !ERROR: reduction operator not supported for complex type !$acc parallel reduction(ieor:c) !$acc end parallel !ERROR: reduction operator not supported for complex type !$acc parallel reduction(.and.:c) !$acc end parallel !ERROR: reduction operator not supported for complex type !$acc parallel reduction(.or.:c) !$acc end parallel !ERROR: reduction operator not supported for complex type !$acc parallel reduction(.eqv.:c) !$acc end parallel !ERROR: reduction operator not supported for complex type !$acc parallel reduction(.neqv.:c) !$acc end parallel !$acc parallel reduction(.and.:l) !$acc end parallel !$acc parallel reduction(.or.:l) !$acc end parallel !$acc parallel reduction(.eqv.:l) !$acc end parallel !$acc parallel reduction(.neqv.:l) !$acc end parallel !ERROR: reduction operator not supported for logical type !$acc parallel reduction(+:l) !$acc end parallel !ERROR: reduction operator not supported for logical type !$acc parallel reduction(*:l) !$acc end parallel !ERROR: reduction operator not supported for logical type !$acc parallel reduction(min:l) !$acc end parallel !ERROR: reduction operator not supported for logical type !$acc parallel reduction(max:l) !$acc end parallel !ERROR: reduction operator not supported for logical type !$acc parallel reduction(iand:l) !$acc end parallel !ERROR: reduction operator not supported for logical type !$acc parallel reduction(ior:l) !$acc end parallel !ERROR: reduction operator not supported for logical type !$acc parallel reduction(ieor:l) !$acc end parallel end program