1extern "C" void abort (void);
2
3struct X
4{
5  int a;
6  char b;
7  int c;
8};
9
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