Mercurial > hg > CbC > CbC_gcc
view libgomp/testsuite/libgomp.c++/shared-1.C @ 118:fd00160c1b76
ifdef TARGET_64BIT
author | mir3636 |
---|---|
date | Tue, 27 Feb 2018 15:01:35 +0900 |
parents | a06113de4d67 |
children | 84e7813d76e9 |
line wrap: on
line source
#include <omp.h> extern "C" void abort (void); struct Y { int l[5][10]; }; struct X { struct Y y; float b[10]; }; void parallel (int a, int b) { int i, j; struct X A[10][5]; a = b = 3; for (i = 0; i < 10; i++) for (j = 0; j < 5; j++) A[i][j].y.l[3][3] = -10; #pragma omp parallel shared (a, b, A) num_threads (5) { int i, j; #pragma omp atomic a += omp_get_num_threads (); #pragma omp atomic b += omp_get_num_threads (); #pragma omp for private (j) for (i = 0; i < 10; i++) for (j = 0; j < 5; j++) A[i][j].y.l[3][3] += 20; } for (i = 0; i < 10; i++) for (j = 0; j < 5; j++) if (A[i][j].y.l[3][3] != 10) abort (); if (a != 28) abort (); if (b != 28) abort (); } main() { parallel (1, 2); return 0; }