| #include <omp.h> | |
| extern void abort (void); | |
| struct X | |
| { | |
| int a; | |
| char b; | |
| int c; | |
| }; | |
| int | |
| main() | |
| { | |
| int i = 0; | |
| struct X x; | |
| int bad = 0; | |
| #pragma omp parallel private (i, x) shared (bad) | |
| { | |
| i = 5; | |
| #pragma omp single copyprivate (i, x) | |
| { | |
| i++; | |
| x.a = 23; | |
| x.b = 42; | |
| x.c = 26; | |
| } | |
| if (i != 6 || x.a != 23 || x.b != 42 || x.c != 26) | |
| bad = 1; | |
| } | |
| if (bad) | |
| abort (); | |
| return 0; | |
| } |