1// { dg-do run }
2// { dg-set-target-env-var OMP_CANCELLATION "true" }
3
4#include <omp.h>
5#include "cancel-test.h"
6
7int
8main ()
9{
10  if (!omp_get_cancellation ())
11    return 0;
12  #pragma omp parallel num_threads (32)
13  {
14    S a;
15    #pragma omp sections
16      {
17	{
18	  S b;
19	  #pragma omp cancel sections
20	  abort ();
21	}
22      #pragma omp section
23	{
24	  S c;
25	  #pragma omp cancel sections
26	  abort ();
27	}
28      #pragma omp section
29	{
30	  S d;
31	  #pragma omp cancel sections
32	  abort ();
33	}
34      #pragma omp section
35	{
36	  S e;
37	  #pragma omp cancel sections
38	  abort ();
39	}
40      }
41  }
42  S::verify ();
43}
44