// { dg-do run } | |
// { dg-set-target-env-var OMP_CANCELLATION "true" } | |
#include <omp.h> | |
#include "cancel-test.h" | |
int | |
main () | |
{ | |
if (!omp_get_cancellation ()) | |
return 0; | |
#pragma omp parallel num_threads (32) | |
{ | |
S a; | |
#pragma omp sections | |
{ | |
{ | |
S b; | |
#pragma omp cancel sections | |
abort (); | |
} | |
#pragma omp section | |
{ | |
S c; | |
#pragma omp cancel sections | |
abort (); | |
} | |
#pragma omp section | |
{ | |
S d; | |
#pragma omp cancel sections | |
abort (); | |
} | |
#pragma omp section | |
{ | |
S e; | |
#pragma omp cancel sections | |
abort (); | |
} | |
} | |
} | |
S::verify (); | |
} |