diff options
Diffstat (limited to 'gcc-4.4.3/libgomp/testsuite/libgomp.c++/pr27337.C')
-rw-r--r-- | gcc-4.4.3/libgomp/testsuite/libgomp.c++/pr27337.C | 87 |
1 files changed, 0 insertions, 87 deletions
diff --git a/gcc-4.4.3/libgomp/testsuite/libgomp.c++/pr27337.C b/gcc-4.4.3/libgomp/testsuite/libgomp.c++/pr27337.C deleted file mode 100644 index 6db2465ec..000000000 --- a/gcc-4.4.3/libgomp/testsuite/libgomp.c++/pr27337.C +++ /dev/null @@ -1,87 +0,0 @@ -// PR middle-end/27337 -// { dg-do run } - -#include <omp.h> - -extern "C" void abort (void); - -struct S -{ - S (); - ~S (); - S (const S &); - int i; -}; - -int n[3]; - -S::S () : i(18) -{ - if (omp_get_thread_num () != 0) -#pragma omp atomic - n[0]++; -} - -S::~S () -{ - if (omp_get_thread_num () != 0) -#pragma omp atomic - n[1]++; -} - -S::S (const S &x) -{ - if (x.i != 18) - abort (); - i = 118; - if (omp_get_thread_num () != 0) -#pragma omp atomic - n[2]++; -} - -S -foo () -{ - int i; - S ret; - -#pragma omp parallel for firstprivate (ret) lastprivate (ret) \ - schedule (static, 1) num_threads (4) - for (i = 0; i < 4; i++) - ret.i += omp_get_thread_num (); - - return ret; -} - -S -bar () -{ - int i; - S ret; - -#pragma omp parallel for num_threads (4) - for (i = 0; i < 4; i++) -#pragma omp atomic - ret.i += omp_get_thread_num () + 1; - - return ret; -} - -S x; - -int -main (void) -{ - omp_set_dynamic (false); - x = foo (); - if (n[0] != 0 || n[1] != 3 || n[2] != 3) - abort (); - if (x.i != 118 + 3) - abort (); - x = bar (); - if (n[0] != 0 || n[1] != 3 || n[2] != 3) - abort (); - if (x.i != 18 + 0 + 1 + 2 + 3 + 4) - abort (); - return 0; -} |