diff options
Diffstat (limited to 'gcc-4.2.1-5666.3/libgomp/testsuite/libgomp.c++/ctor-9.C')
-rw-r--r-- | gcc-4.2.1-5666.3/libgomp/testsuite/libgomp.c++/ctor-9.C | 60 |
1 files changed, 0 insertions, 60 deletions
diff --git a/gcc-4.2.1-5666.3/libgomp/testsuite/libgomp.c++/ctor-9.C b/gcc-4.2.1-5666.3/libgomp/testsuite/libgomp.c++/ctor-9.C deleted file mode 100644 index 215a901f8..000000000 --- a/gcc-4.2.1-5666.3/libgomp/testsuite/libgomp.c++/ctor-9.C +++ /dev/null @@ -1,60 +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& operator=(const B &); -}; - -static B *base; -static B *threadbase; -static int singlethread; -#pragma omp threadprivate(threadbase) - -static unsigned cmask[THR]; - -B& B::operator= (const B &b) -{ - unsigned sindex = &b - base; - unsigned tindex = this - threadbase; - assert(sindex < N); - assert(sindex == tindex); - cmask[omp_get_thread_num ()] |= 1u << tindex; - return *this; -} - -void foo() -{ - #pragma omp parallel - { - B b[N]; - threadbase = b; - #pragma omp single copyprivate(b) - { - assert(omp_get_num_threads () == THR); - singlethread = omp_get_thread_num (); - base = b; - } - } -} - -int main() -{ - omp_set_dynamic (0); - omp_set_num_threads (THR); - foo(); - - for (int i = 0; i < THR; ++i) - if (i == singlethread) - assert(cmask[singlethread] == 0); - else - assert(cmask[i] == (1u << N) - 1); - - return 0; -} |