default-1.C 585 B

1234567891011121314151617181920212223242526272829
  1. #include <omp.h>
  2. #include <stdlib.h>
  3. struct S { S () : s (42) {} S (const S &x) : s (x.s) {}; ~S () {} int s; };
  4. int
  5. main ()
  6. {
  7. S s;
  8. s.s = 113;
  9. #pragma omp parallel num_threads(4) default(firstprivate)
  10. {
  11. if (s.s != 113)
  12. abort ();
  13. s.s = omp_get_thread_num ();
  14. #pragma omp barrier
  15. if (s.s != omp_get_thread_num ())
  16. abort ();
  17. }
  18. #pragma omp parallel num_threads(4) default(private)
  19. {
  20. if (s.s != 42)
  21. abort ();
  22. s.s = omp_get_thread_num () + 13;
  23. #pragma omp barrier
  24. if (s.s != omp_get_thread_num () + 13)
  25. abort ();
  26. }
  27. }