xref: /llvm-project/flang/test/Semantics/OpenMP/task01.f90 (revision 502bea25bdc07d1811b8bfea1c2e6bfa8617f72f)
1*3323a4bdSKiran Chandramohan! RUN: not %flang -fsyntax-only -fopenmp %s 2>&1 | FileCheck %s
2*3323a4bdSKiran Chandramohan! OpenMP Version 4.5
3*3323a4bdSKiran Chandramohan! 2.9.1 task Construct
4*3323a4bdSKiran Chandramohan! Invalid entry to OpenMP structured block.
5*3323a4bdSKiran Chandramohan
6*3323a4bdSKiran Chandramohanrecursive subroutine traverse ( P )
7*3323a4bdSKiran Chandramohan  type Node
8*3323a4bdSKiran Chandramohan    type(Node), pointer :: left, right
9*3323a4bdSKiran Chandramohan  end type Node
10*3323a4bdSKiran Chandramohan
11*3323a4bdSKiran Chandramohan  type(Node) :: P
12*3323a4bdSKiran Chandramohan
13*3323a4bdSKiran Chandramohan  !CHECK: invalid branch into an OpenMP structured block
14*3323a4bdSKiran Chandramohan  goto 10
15*3323a4bdSKiran Chandramohan
16*3323a4bdSKiran Chandramohan  if (associated(P%left)) then
17*3323a4bdSKiran Chandramohan    !$omp task
18*3323a4bdSKiran Chandramohan    call traverse(P%left)
19*3323a4bdSKiran Chandramohan    !CHECK: In the enclosing TASK directive branched into
20*3323a4bdSKiran Chandramohan    10 stop
21*3323a4bdSKiran Chandramohan    !$omp end task
22*3323a4bdSKiran Chandramohan  endif
23*3323a4bdSKiran Chandramohan
24*3323a4bdSKiran Chandramohan  if (associated(P%right)) then
25*3323a4bdSKiran Chandramohan    !$omp task
26*3323a4bdSKiran Chandramohan    call traverse(P%right)
27*3323a4bdSKiran Chandramohan    !$omp end task
28*3323a4bdSKiran Chandramohan    endif
29*3323a4bdSKiran Chandramohan  call process ( P )
30*3323a4bdSKiran Chandramohan
31*3323a4bdSKiran Chandramohan end subroutine traverse
32