#include #include struct S { static int s; int v; S () { #pragma omp atomic s++; } S (int x) { #pragma omp atomic s++; v = x; } ~S () { #pragma omp atomic s--; } S (const S &x) { #pragma omp atomic s++; v = x.v; } static void verify () { if (s) abort (); } void bump () { v++; } }; int S::s = 0;