| !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 taskgroup task_reduction(.or.: x) | |
| !$omp end taskgroup | |
| end | |
| subroutine f01 | |
| real :: x | |
| !ERROR: Invalid reduction operator in TASK_REDUCTION clause | |
| !$omp taskgroup task_reduction(.not.: x) | |
| !$omp end taskgroup | |
| end | |
| subroutine f02(p) | |
| integer, pointer, intent(in) :: p | |
| !ERROR: Pointer 'p' with the INTENT(IN) attribute may not appear in a TASK_REDUCTION clause | |
| !$omp taskgroup task_reduction(+: p) | |
| !$omp end taskgroup | |
| end | |
| subroutine f03 | |
| common /c/ a, b | |
| !ERROR: Common block names are not allowed in TASK_REDUCTION clause | |
| !$omp taskgroup task_reduction(+: /c/) | |
| !$omp end taskgroup | |
| end | |
| subroutine f04 | |
| integer :: x(10) | |
| !ERROR: Reference to 'x' must be a contiguous object | |
| !$omp taskgroup task_reduction(+: x(1:10:2)) | |
| !$omp end taskgroup | |
| end | |
| subroutine f05 | |
| integer :: x(10) | |
| !ERROR: 'x' in TASK_REDUCTION clause is a zero size array section | |
| !$omp taskgroup task_reduction(+: x(1:0)) | |
| !$omp end taskgroup | |
| 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 TASK_REDUCTION clause | |
| !ERROR: The base expression of an array element or section in TASK_REDUCTION clause must be an identifier | |
| !$omp taskgroup task_reduction(+: x%a(2)) | |
| !$omp end taskgroup | |
| 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 TASK_REDUCTION clause | |
| !ERROR: The base expression of an array element or section in TASK_REDUCTION clause must be an identifier | |
| !$omp taskgroup task_reduction(+: x%a(1:10)) | |
| !$omp end taskgroup | |
| end | |
| subroutine f08 | |
| integer :: x | |
| !ERROR: Type parameter inquiry is not allowed as a list item on TASK_REDUCTION clause | |
| !$omp taskgroup task_reduction(+: x%kind) | |
| !$omp end taskgroup | |
| end |