diff options
Diffstat (limited to 'gcc-4.2.1-5666.3/libgomp/testsuite/libgomp.c++/ctor-8.C')
-rw-r--r-- | gcc-4.2.1-5666.3/libgomp/testsuite/libgomp.c++/ctor-8.C | 77 |
1 files changed, 0 insertions, 77 deletions
diff --git a/gcc-4.2.1-5666.3/libgomp/testsuite/libgomp.c++/ctor-8.C b/gcc-4.2.1-5666.3/libgomp/testsuite/libgomp.c++/ctor-8.C deleted file mode 100644 index 5c0d81b73..000000000 --- a/gcc-4.2.1-5666.3/libgomp/testsuite/libgomp.c++/ctor-8.C +++ /dev/null @@ -1,77 +0,0 @@ -// { dg-do run } -// { dg-require-effective-target tls_runtime } - -#include <omp.h> -#include <assert.h> - -#define N 10 -#define THR 4 - -struct B -{ - B(); - B(const B &); - ~B(); - B& operator=(const B &); - void doit(); -}; - -static B *base; -static B *threadbase; -static unsigned cmask[THR]; -static unsigned dmask[THR]; - -#pragma omp threadprivate(threadbase) - -B::B() -{ - assert (base == 0); -} - -B::B(const B &b) -{ - unsigned index = &b - base; - assert (index < N); - cmask[omp_get_thread_num()] |= 1u << index; -} - -B::~B() -{ - if (threadbase) - { - unsigned index = this - threadbase; - assert (index < N); - dmask[omp_get_thread_num()] |= 1u << index; - } -} - -void foo() -{ - B b[N]; - - base = b; - - #pragma omp parallel firstprivate(b) - { - assert (omp_get_num_threads () == THR); - threadbase = b; - } - - threadbase = 0; -} - -int main() -{ - omp_set_dynamic (0); - omp_set_num_threads (THR); - foo(); - - for (int i = 0; i < THR; ++i) - { - unsigned xmask = (1u << N) - 1; - assert (cmask[i] == xmask); - assert (dmask[i] == xmask); - } - - return 0; -} |