[Clang] Correctly determine constexprness of dependent lambdas. (#124468)
[llvm-project.git] / flang / test / Parser / OpenMP / master-unparse.f90
blob30c293a521b5d1eaaa3bda7557284100cedb08f4
1 ! RUN: %flang_fc1 -fdebug-unparse -fopenmp %s | FileCheck --ignore-case %s
2 ! RUN: %flang_fc1 -fdebug-dump-parse-tree -fopenmp %s | FileCheck --check-prefix="PARSE-TREE" %s
4 ! Check for parsing of master directive
7 subroutine test_master()
8 integer :: c = 1
9 !PARSE-TREE: OmpBeginBlockDirective
10 !PARSE-TREE-NEXT: OmpBlockDirective -> llvm::omp::Directive = master
11 !CHECK: !$omp master
12 !$omp master
13 c = c + 1
14 !$omp end master
15 end subroutine
17 subroutine test_master_taskloop_simd()
18 integer :: i, j = 1
19 !PARSE-TREE: OmpBeginLoopDirective
20 !PARSE-TREE-NEXT: OmpLoopDirective -> llvm::omp::Directive = master taskloop simd
21 !CHECK: !$omp master taskloop simd
22 !$omp master taskloop simd
23 do i=1,10
24 j = j + 1
25 end do
26 !$omp end master taskloop simd
27 end subroutine
29 subroutine test_master_taskloop
30 integer :: i, j = 1
31 !PARSE-TREE: OmpBeginLoopDirective
32 !PARSE-TREE-NEXT: OmpLoopDirective -> llvm::omp::Directive = master taskloop
33 !CHECK: !$omp master taskloop
34 !$omp master taskloop
35 do i=1,10
36 j = j + 1
37 end do
38 !$omp end master taskloop
39 end subroutine
41 subroutine test_parallel_master
42 integer :: c = 2
43 !PARSE-TREE: OmpBeginBlockDirective
44 !PARSE-TREE-NEXT: OmpBlockDirective -> llvm::omp::Directive = parallel master
45 !CHECK: !$omp parallel master
46 !$omp parallel master
47 c = c + 2
48 !$omp end parallel master
49 end subroutine
51 subroutine test_parallel_master_taskloop_simd
52 integer :: i, j = 1
53 !PARSE-TREE: OmpBeginLoopDirective
54 !PARSE-TREE-NEXT: OmpLoopDirective -> llvm::omp::Directive = parallel master taskloop simd
55 !CHECK: !$omp parallel master taskloop simd
56 !$omp parallel master taskloop simd
57 do i=1,10
58 j = j + 1
59 end do
60 !$omp end parallel master taskloop simd
61 end subroutine
63 subroutine test_parallel_master_taskloop
64 integer :: i, j = 1
65 !PARSE-TREE: OmpBeginLoopDirective
66 !PARSE-TREE-NEXT: OmpLoopDirective -> llvm::omp::Directive = parallel master taskloop
67 !CHECK: !$omp parallel master taskloop
68 !$omp parallel master taskloop
69 do i=1,10
70 j = j + 1
71 end do
72 !$omp end parallel master taskloop
73 end subroutine