Mercurial > hg > CbC > CbC_gcc
view gcc/testsuite/gcc.dg/gomp/_Atomic-3.c @ 131:84e7813d76e9
gcc-8.2
author | mir3636 |
---|---|
date | Thu, 25 Oct 2018 07:37:49 +0900 |
parents | 04ced10e8804 |
children |
line wrap: on
line source
/* PR c/65467 */ /* { dg-do compile } */ /* { dg-additional-options "-std=c11" } */ void f1 (void) { _Atomic int i = 0, k[4]; int j = 0; k[0] = 0; k[1] = 0; k[2] = 0; k[3] = 0; #pragma omp parallel reduction (+:i) /* { dg-error "'_Atomic' 'i' in 'reduction' clause" } */ i++; #pragma omp declare reduction (foo: _Atomic int: omp_out += omp_in) initializer (omp_priv = omp_orig * 0) /* { dg-error "'_Atomic' qualified type in '#pragma omp declare reduction'" } */ #pragma omp declare reduction (bar: int: omp_out += omp_in) initializer (omp_priv = omp_orig * 0) #pragma omp parallel reduction (bar:j) j++; #pragma omp parallel reduction (bar:i) /* { dg-error "'_Atomic' 'i' in 'reduction' clause" } */ i++; #pragma omp parallel reduction (+:k) /* { dg-error "'_Atomic' 'k' in 'reduction' clause" } */ k[1]++; #pragma omp parallel reduction (+:k[1:2]) /* { dg-error "'_Atomic' \[^\n\r]* in 'reduction' clause" } */ k[1]++; } void f2 (int *_Atomic p) { #pragma omp simd aligned (p : 16) /* { dg-error "'_Atomic' 'p' in 'aligned' clause" } */ for (int i = 0; i < 16; i++) p[i]++; } _Atomic int x; void f3 (_Atomic int *p) { int i; #pragma omp atomic write x = 6; /* { dg-error "'_Atomic' expression in '#pragma omp atomic'" } */ #pragma omp atomic read i = x; /* { dg-error "'_Atomic' expression in '#pragma omp atomic'" } */ #pragma omp atomic update x += 6; /* { dg-error "'_Atomic' expression in '#pragma omp atomic'" } */ #pragma omp atomic capture i = x *= 2; /* { dg-error "'_Atomic' expression in '#pragma omp atomic'" } */ #pragma omp atomic write p[2] = 6; /* { dg-error "'_Atomic' expression in '#pragma omp atomic'" } */ #pragma omp atomic read i = p[2]; /* { dg-error "'_Atomic' expression in '#pragma omp atomic'" } */ #pragma omp atomic update p[2] += 6; /* { dg-error "'_Atomic' expression in '#pragma omp atomic'" } */ #pragma omp atomic capture i = p[2] *= 2; /* { dg-error "'_Atomic' expression in '#pragma omp atomic'" } */ } #pragma omp declare simd linear(x:1) /* { dg-error "'_Atomic' 'x' in 'linear' clause" } */ int f4 (_Atomic int x, int y) { return x + y; }