aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/c-c++-common/gomp/target-update-iterators-1.c
blob: 53b22f07e1d7aa49ae296b1cd26243aebe85bab4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
/* { dg-do compile } */
/* { dg-options "-fopenmp" } */

#define DIM1 17
#define DIM2 39

void f (int **x, float **y)
{
  #pragma omp target update to (iterator(i=0:DIM1): x[i][:DIM2])

  #pragma omp target update to (iterator(i=0:DIM1): x[i][:DIM2], y[i][:DIM2])

  #pragma omp target update to (iterator(i=0:DIM1), present: x[i][:DIM2])

  #pragma omp target update to (iterator(i=0:DIM1), iterator(j=0:DIM2): x[i][j]) /* { dg-error "too many 'iterator' modifiers" } */
  /* { dg-error "'#pragma omp target update' must contain at least one 'from' or 'to' clauses" "" { target *-*-* } .-1 } */

  #pragma omp target update from (iterator(i=0:DIM1), something: x[i][j]) /* { dg-error "'from' clause with modifier other than 'iterator' or 'present'" } */
  /* { dg-error "expected '\\)' before 'something'" "" { target c } .-1 } */
  /* { dg-error "'#pragma omp target update' must contain at least one 'from' or 'to' clauses" "" { target *-*-* } .-2 } */
}