diff options
Diffstat (limited to 'gcc-4.4.3/libgomp/testsuite/libgomp.c++/ctor-11.C')
-rw-r--r-- | gcc-4.4.3/libgomp/testsuite/libgomp.c++/ctor-11.C | 100 |
1 files changed, 0 insertions, 100 deletions
diff --git a/gcc-4.4.3/libgomp/testsuite/libgomp.c++/ctor-11.C b/gcc-4.4.3/libgomp/testsuite/libgomp.c++/ctor-11.C deleted file mode 100644 index 8f501e8c8..000000000 --- a/gcc-4.4.3/libgomp/testsuite/libgomp.c++/ctor-11.C +++ /dev/null @@ -1,100 +0,0 @@ -// PR c++/36308 -// { dg-do run } - -#include <omp.h> -#include <assert.h> - -#define N 10 - -struct B -{ - static int icount; - static int ccount; - static int dcount; - static int xcount; - - B (); - B (const B &); - virtual ~B (); - B& operator= (const B &); - void doit (); - static void clear () { icount = ccount = dcount = xcount = 0; } -}; - -int B::icount; -int B::ccount; -int B::dcount; -int B::xcount; - -B::B () -{ - #pragma omp atomic - icount++; -} - -B::B (const B &) -{ - #pragma omp atomic - ccount++; -} - -B::~B () -{ - #pragma omp atomic - dcount++; -} - -void -B::doit () -{ - #pragma omp atomic - xcount++; -} - -static int nthreads; - -void -test1 () -{ - B b[N]; - #pragma omp parallel private (b) - { - #pragma omp master - nthreads = omp_get_num_threads (); - b[0].doit (); - } -} - -void -test2 () -{ - B b; - #pragma omp parallel firstprivate (b) - { - #pragma omp single - nthreads = omp_get_num_threads (); - b.doit (); - } -} - -int -main () -{ - omp_set_dynamic (0); - omp_set_num_threads (4); - - B::clear (); - test1 (); - assert (B::xcount == nthreads); - assert (B::ccount == 0); - assert (B::icount == (nthreads + 1) * N); - assert (B::dcount == (nthreads + 1) * N); - - B::clear (); - test2 (); - assert (B::xcount == nthreads); - assert (B::ccount == nthreads); - assert (B::icount == 1); - assert (B::dcount == nthreads + 1); - return 0; -} |