cancel-sections-1.C 600 B

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