1! { dg-do compile } 2! { dg-additional-options "-fdump-tree-original" } 3 4subroutine foo () 5 !$omp parallel 6 !$omp cancel parallel if (.true.) 7 !$omp cancel parallel if (cancel: .true.) 8 !$omp cancel parallel if (.false.) 9 !$omp cancel parallel if (cancel: .false.) 10 !$omp end parallel 11 12 !$omp sections 13 !$omp cancel sections if (cancel: .true.) 14 stop 15 !$omp end sections 16 17 !$omp do 18 do i = 1, 10 19 !$omp cancel do if (.false.) 20 end do 21 22 !$omp task 23 !$omp cancel taskgroup if (cancel: .false.) 24 !$omp end task 25 !$omp task 26 !$omp cancel taskgroup 27 !$omp end task 28end subroutine 29 30! { dg-final { scan-tree-dump-times "__builtin_GOMP_cancel \\(1, 1\\);" 2 "original" } } 31! { dg-final { scan-tree-dump-times "__builtin_GOMP_cancel \\(1, 0\\);" 2 "original" } } 32! { dg-final { scan-tree-dump-times "__builtin_GOMP_cancel \\(4, 1\\);" 1 "original" } } 33! { dg-final { scan-tree-dump-times "__builtin_GOMP_cancel \\(2, 0\\);" 1 "original" } } 34! { dg-final { scan-tree-dump-times "__builtin_GOMP_cancel \\(8, 0\\);" 1 "original" } } 35! { dg-final { scan-tree-dump-times "__builtin_GOMP_cancel \\(8, 1\\);" 1 "original" } } 36