1! { dg-do compile }
2
3subroutine foo ()
4  !$omp parallel
5    !$omp cancel parallel if (.true.)
6    !$omp cancel parallel if (cancel: .true.)
7
8    !$omp cancel parallel if (.true.) if (.true.)                   ! { dg-error "Failed to match clause" }
9    !$omp cancel parallel if (cancel: .true.) if (cancel: .true.)   ! { dg-error "Failed to match clause" }
10    !$omp cancel parallel if (cancel: .true.) if (.true.)           ! { dg-error "IF clause without modifier at .1. used together with IF clauses with modifiers" }
11    !$omp cancel parallel if (cancel: .true.) if (parallel: .true.) ! { dg-error "IF clause modifier PARALLEL at .1. not appropriate for the current OpenMP construct" }
12    !$omp cancel parallel if (.true.) if (cancel: .true.)           ! { dg-error "Failed to match clause at" }
13    !$omp cancel parallel if (parallel: .true.) if (cancel: .true.) ! { dg-error "IF clause modifier PARALLEL at .1. not appropriate for the current OpenMP construct" }
14  !$omp end parallel
15end subroutine
16