! RUN: bbc -pft-test -o %t %s | FileCheck %s module mm !dir$ some directive 1 type t logical :: tag contains final :: fin end type !dir$ some directive 2 contains !dir$ some directive 3 subroutine fin(x) type(t), intent(inout) :: x x%tag =.true. !dir$ some directive 4 call s1 call s2 print*, 'fin', x contains !dir$ some directive 5 subroutine s1 print*, 's1' !dir$ some directive 6 end subroutine s1 !dir$ some directive 7 subroutine s2 !dir$ some directive 8 if (.true.) then !dir$ some directive 9 print*, 's2' !dir$ some directive 10 endif !dir$ some directive 11 end subroutine s2 !dir$ some directive 12 end subroutine fin !dir$ some directive 13 end module mm !dir$ some directive 14 end ! CHECK: Module mm: module mm ! CHECK: CompilerDirective: !some directive 1 ! CHECK: CompilerDirective: !some directive 2 ! CHECK: Contains ! CHECK: CompilerDirective: !some directive 3 ! CHECK: Subroutine fin: subroutine fin(x) ! CHECK: AssignmentStmt: x%tag =.true. ! CHECK: CompilerDirective: !some directive 4 ! CHECK: CallStmt: call s1 ! CHECK: CallStmt: call s2 ! CHECK: PrintStmt: print*, 'fin', x ! CHECK: EndSubroutineStmt: end subroutine fin ! CHECK: Contains ! CHECK: CompilerDirective: !some directive 5 ! CHECK: Subroutine s1: subroutine s1 ! CHECK: PrintStmt: print*, 's1' ! CHECK: CompilerDirective: !some directive 6 ! CHECK: EndSubroutineStmt: end subroutine s1 ! CHECK: End Subroutine s1 ! CHECK: CompilerDirective: !some directive 7 ! CHECK: Subroutine s2: subroutine s2 ! CHECK: CompilerDirective: !some directive 8 ! CHECK: <> -> 7 ! CHECK: IfThenStmt -> 7: if(.true.) then ! CHECK: ^CompilerDirective: !some directive 9 ! CHECK: PrintStmt: print*, 's2' ! CHECK: CompilerDirective: !some directive 10 ! CHECK: EndIfStmt: endif ! CHECK: <> ! CHECK: CompilerDirective: !some directive 11 ! CHECK: EndSubroutineStmt: end subroutine s2 ! CHECK: End Subroutine s2 ! CHECK: CompilerDirective: !some directive 12 ! CHECK: End Contains ! CHECK: End Subroutine fin ! CHECK: CompilerDirective: !some directive 13 ! CHECK: End Contains ! CHECK: End Module mm ! CHECK: CompilerDirective: !some directive 14 ! CHECK: Program ! CHECK: EndProgramStmt: end ! CHECK: End Program