1234567891011121314151617181920212223242526272829 |
- #include <omp.h>
- #include <stdlib.h>
- struct S { S () : s (42) {} S (const S &x) : s (x.s) {}; ~S () {} int s; };
- int
- main ()
- {
- S s;
- s.s = 113;
- #pragma omp parallel num_threads(4) default(firstprivate)
- {
- if (s.s != 113)
- abort ();
- s.s = omp_get_thread_num ();
- #pragma omp barrier
- if (s.s != omp_get_thread_num ())
- abort ();
- }
- #pragma omp parallel num_threads(4) default(private)
- {
- if (s.s != 42)
- abort ();
- s.s = omp_get_thread_num () + 13;
- #pragma omp barrier
- if (s.s != omp_get_thread_num () + 13)
- abort ();
- }
- }
|