1 extern "C" void abort (void); 2 3 struct X 4 { 5 int a; 6 char b; 7 int c; 8 }; 9 main()10main() 11 { 12 int i = 0; 13 struct X x; 14 int bad = 0; 15 16 #pragma omp parallel private (i, x) shared (bad) 17 { 18 i = 5; 19 20 #pragma omp single copyprivate (i, x) 21 { 22 i++; 23 x.a = 23; 24 x.b = 42; 25 x.c = 26; 26 } 27 28 if (i != 6 || x.a != 23 || x.b != 42 || x.c != 26) 29 bad = 1; 30 } 31 32 if (bad) 33 abort (); 34 35 return 0; 36 } 37