1 #include <stdlib.h>
2 #include <omp.h>
3 
4 struct S
5 {
6   static int s;
7   int v;
SS8   S ()
9   {
10     #pragma omp atomic
11     s++;
12   }
13 
SS14   S (int x)
15   {
16     #pragma omp atomic
17     s++;
18     v = x;
19   }
20 
~SS21   ~S ()
22   {
23     #pragma omp atomic
24     s--;
25   }
26 
SS27   S (const S &x)
28   {
29     #pragma omp atomic
30     s++;
31     v = x.v;
32   }
33 
34   static void
verifyS35   verify ()
36   {
37     if (s) abort ();
38   }
39 
40   void
bumpS41   bump ()
42   {
43     v++;
44   }
45 };
46 
47 int S::s = 0;
48