aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/c-c++-common/gomp/atomic-18.c
blob: a8ed3c7803e8bef4f0ce2ec2e7030d366f500a14 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
int i, v;
float f;

void
foo (int j)
{
  #pragma omp atomic update,update	/* { dg-error "too many atomic clauses" } */
  i = i + 1;
  #pragma omp atomic seq_cst release	/* { dg-error "too many memory order clauses" } */
  i = i + 1;
  #pragma omp atomic read,release	/* { dg-error "incompatible with 'release' clause" } */
  v = i;
  #pragma omp atomic acquire , write	/* { dg-error "incompatible with 'acquire' clause" } */
  i = v;
  #pragma omp atomic capture hint (0) capture	/* { dg-error "too many 'capture' clauses" } */
  v = i = i + 1;
  #pragma omp atomic hint(j + 2)	/* { dg-error "constant integer expression" } */
  i = i + 1;
  #pragma omp atomic hint(f)		/* { dg-error "integ" } */
  i = i + 1;
  #pragma omp atomic foobar		/* { dg-error "expected 'read', 'write', 'update', 'capture', 'compare', 'weak', 'fail', 'seq_cst', 'acq_rel', 'release', 'relaxed' or 'hint' clause" } */
  i = i + 1;				/* { dg-error "expected end of line before" "" { target *-*-* } .-1 } */
}