/* { 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 } */ }