Mercurial > hg > CbC > CbC_gcc
view libgomp/testsuite/libgomp.c++/shared-1.C @ 138:fc828634a951
merge
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Thu, 08 Nov 2018 14:17:14 +0900 |
parents | 84e7813d76e9 |
children |
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 (); } int main() { parallel (1, 2); return 0; }