! RUN: %flang_fc1 -fdebug-dump-parse-tree -fopenmp %s | FileCheck %s program openmp_parse_if logical :: cond integer :: i ! CHECK: OmpSimpleStandaloneDirective -> llvm::omp::Directive = target update ! CHECK-NEXT: OmpClause -> If -> OmpIfClause ! CHECK-NOT: DirectiveNameModifier !$omp target update if(cond) to(i) ! CHECK: OmpSimpleStandaloneDirective -> llvm::omp::Directive = target update ! CHECK-NEXT: OmpClause -> If -> OmpIfClause ! CHECK-NEXT: DirectiveNameModifier = TargetUpdate !$omp target update if(target update: cond) to(i) ! CHECK: OmpSimpleStandaloneDirective -> llvm::omp::Directive = target enter data ! CHECK: OmpClause -> If -> OmpIfClause ! CHECK-NEXT: DirectiveNameModifier = TargetEnterData !$omp target enter data map(to: i) if(target enter data: cond) ! CHECK: OmpSimpleStandaloneDirective -> llvm::omp::Directive = target exit data ! CHECK: OmpClause -> If -> OmpIfClause ! CHECK-NEXT: DirectiveNameModifier = TargetExitData !$omp target exit data map(from: i) if(target exit data: cond) ! CHECK: OmpBlockDirective -> llvm::omp::Directive = target data ! CHECK: OmpClause -> If -> OmpIfClause ! CHECK-NEXT: DirectiveNameModifier = TargetData !$omp target data map(tofrom: i) if(target data: cond) !$omp end target data ! CHECK: OmpLoopDirective -> llvm::omp::Directive = target teams distribute parallel do simd ! CHECK: OmpClause -> If -> OmpIfClause ! CHECK-NEXT: DirectiveNameModifier = Target ! CHECK: OmpClause -> If -> OmpIfClause ! CHECK-NEXT: DirectiveNameModifier = Teams ! CHECK: OmpClause -> If -> OmpIfClause ! CHECK-NEXT: DirectiveNameModifier = Parallel ! CHECK: OmpClause -> If -> OmpIfClause ! CHECK-NEXT: DirectiveNameModifier = Simd !$omp target teams distribute parallel do simd if(target: cond) & !$omp& if(teams: cond) if(parallel: cond) if(simd: cond) do i = 1, 10 end do !$omp end target teams distribute parallel do simd ! CHECK: OmpBlockDirective -> llvm::omp::Directive = task ! CHECK-NEXT: OmpClause -> If -> OmpIfClause ! CHECK-NEXT: DirectiveNameModifier = Task !$omp task if(task: cond) !$omp end task ! CHECK: OmpLoopDirective -> llvm::omp::Directive = taskloop ! CHECK-NEXT: OmpClause -> If -> OmpIfClause ! CHECK-NEXT: DirectiveNameModifier = Taskloop !$omp taskloop if(taskloop: cond) do i = 1, 10 end do !$omp end taskloop end program openmp_parse_if