1! RUN: %f18 -fdebug-pre-fir-tree -fparse-only -fopenacc %s | FileCheck %s
2
3! Test structure of the Pre-FIR tree with OpenACC construct
4
5! CHECK: Subroutine foo
6subroutine foo()
7  ! CHECK-NEXT: <<OpenACCConstruct>>
8  ! CHECK-NEXT: <<OpenACCConstruct>>
9  !$acc parallel
10  !$acc loop
11  ! CHECK-NEXT: <<DoConstruct>>
12  ! CHECK-NEXT: NonLabelDoStmt
13  do i=1,5
14    ! CHECK-NEXT: PrintStmt
15    print *, "hey"
16    ! CHECK-NEXT: <<DoConstruct>>
17    ! CHECK-NEXT: NonLabelDoStmt
18    do j=1,5
19      ! CHECK-NEXT: PrintStmt
20      print *, "hello", i, j
21    ! CHECK-NEXT: EndDoStmt
22    ! CHECK-NEXT: <<End DoConstruct>>
23    end do
24  ! CHECK-NEXT: EndDoStmt
25  ! CHECK-NEXT: <<End DoConstruct>>
26  end do
27  !$acc end parallel
28  ! CHECK-NEXT: <<End OpenACCConstruct>>
29  ! CHECK-NEXT: <<End OpenACCConstruct>>
30  ! CHECK-NEXT: ContinueStmt
31end subroutine
32! CHECK-NEXT: EndSubroutine foo
33
34! CHECK: Subroutine foo
35subroutine foo2()
36  ! CHECK-NEXT: <<OpenACCConstruct>>
37  !$acc parallel loop
38  ! CHECK-NEXT: <<DoConstruct>>
39  ! CHECK-NEXT: NonLabelDoStmt
40  do i=1,5
41  ! CHECK-NEXT: EndDoStmt
42  ! CHECK-NEXT: <<End DoConstruct>>
43  end do
44  !$acc end parallel loop
45  ! CHECK-NEXT: <<End OpenACCConstruct>>
46  ! CHECK-NEXT: ContinueStmt
47end subroutine
48! CHECK-NEXT: EndSubroutine foo2
49
50