! RUN: %flang_fc1 -fdebug-pre-fir-tree -fopenmp %s | FileCheck %s subroutine openmp_sections(x, y) integer, intent(inout)::x, y !============================================================================== ! empty construct !============================================================================== !$omp sections !$omp end sections !CHECK: OpenMPConstruct !CHECK: End OpenMPConstruct !============================================================================== ! single section, without `!$omp section` !============================================================================== !$omp sections call F1() !$omp end sections !CHECK: OpenMPConstruct !CHECK: OpenMPConstruct !CHECK: CallStmt !CHECK: End OpenMPConstruct !CHECK: End OpenMPConstruct !============================================================================== ! single section with `!$omp section` !============================================================================== !$omp sections !$omp section call F1 !$omp end sections !CHECK: OpenMPConstruct !CHECK: OpenMPConstruct !CHECK: CallStmt !CHECK: End OpenMPConstruct !CHECK: End OpenMPConstruct !============================================================================== ! multiple sections !============================================================================== !$omp sections !$omp section call F1 !$omp section call F2 !$omp section call F3 !$omp end sections !CHECK: OpenMPConstruct !CHECK: OpenMPConstruct !CHECK: CallStmt !CHECK: End OpenMPConstruct !CHECK: OpenMPConstruct !CHECK: CallStmt !CHECK: End OpenMPConstruct !CHECK: OpenMPConstruct !CHECK: CallStmt !CHECK: End OpenMPConstruct !CHECK: End OpenMPConstruct !============================================================================== ! multiple sections with clauses !============================================================================== !$omp sections PRIVATE(x) FIRSTPRIVATE(y) !$omp section call F1 !$omp section call F2 !$omp section call F3 !$omp end sections NOWAIT !CHECK: OpenMPConstruct !CHECK: OpenMPConstruct !CHECK: CallStmt !CHECK: End OpenMPConstruct !CHECK: OpenMPConstruct !CHECK: CallStmt !CHECK: End OpenMPConstruct !CHECK: OpenMPConstruct !CHECK: CallStmt !CHECK: End OpenMPConstruct !CHECK: End OpenMPConstruct end subroutine openmp_sections