Mercurial > hg > CbC > CbC_gcc
view libgomp/testsuite/libgomp.c++/atomic-7.C @ 138:fc828634a951
merge
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Thu, 08 Nov 2018 14:17:14 +0900 |
parents | 04ced10e8804 |
children |
line wrap: on
line source
// { dg-do run } extern "C" void abort (void); template <typename S, typename T> void foo (void) { extern S l, m; extern T i, j; #pragma omp atomic read i = l; #pragma omp atomic read m = j; if (i != 77 || m != 88) abort (); #pragma omp atomic write l = 1 + i + 6 * 1; #pragma omp atomic write j = 170 - 170 + m + 1 * 7; #pragma omp atomic capture i = l += 4; #pragma omp atomic capture m = j += 4; if (i != 88 || m != 99) abort (); #pragma omp atomic capture { i = l; l += 4; } #pragma omp atomic capture { m = j; j += 4; } if (i != 88 || m != 99) abort (); #pragma omp atomic capture { l += 4; i = l; } #pragma omp atomic capture { j += 4; m = j; } if (i != 96 || m != 107) abort (); } long long l, m; int i, j; int main () { l = 77; j = 88; foo <long long, int> (); }