llvm-project/flang/test/Semantics/omp-task01.f90

33 lines
726 B
Fortran

! RUN: not %flang -fsyntax-only -fopenmp %s 2>&1 | FileCheck %s
! OpenMP Version 4.5
! 2.9.1 task Construct
! Invalid entry to OpenMP structured block.
recursive subroutine traverse ( P )
type Node
type(Node), pointer :: left, right
end type Node
type(Node) :: P
!CHECK: invalid branch into an OpenMP structured block
goto 10
if (associated(P%left)) then
!$omp task
call traverse(P%left)
!CHECK: In the enclosing TASK directive branched into
!CHECK: STOP statement is not allowed in a TASK construct
10 stop
!$omp end task
endif
if (associated(P%right)) then
!$omp task
call traverse(P%right)
!$omp end task
endif
call process ( P )
end subroutine traverse