/* { dg-do compile } */
/* { dg-options "-fopenmp" } */

extern int a;
#pragma omp declare target
#pragma omp declare target to (a)
#pragma omp end declare target
int b;
#pragma omp declare target to (b) link (b)	/* { dg-error "appears more than once on the same .declare target. directive" } */
int c;
#pragma omp declare target (c)
#pragma omp declare target link (c)		/* { dg-error "specified both in declare target" } */
int foo (void);
#pragma omp declare target link (foo)		/* { dg-error "is not a variable in clause" } */
struct S;
extern struct S d[];				/* { dg-error "array type has incomplete element type" "" { target c } } */
#pragma omp declare target to (d)		/* { dg-error "does not have a mappable type in" } */
extern struct S e;
#pragma omp declare target link (e)		/* { dg-error "does not have a mappable type in" } */
extern int f[];
#pragma omp declare target to (f)		/* { dg-error "does not have a mappable type in" } */
int g, h;
#pragma omp threadprivate (g, h)
#pragma omp declare target to (g)		/* { dg-error "is threadprivate variable in" } */
#pragma omp declare target link (h)		/* { dg-error "is threadprivate variable in" } */
int j[10];
#pragma omp declare target to (j[0:4])		/* { dg-error "expected" } */
int k, l;
#pragma omp declare target
int m;
#pragma omp end declare target
#pragma omp declare target to (k)
#pragma omp declare target (k)
#pragma omp declare target to (k, m) link (l)
#pragma omp declare target link (l)
int n, o, s, t;
#pragma omp declare target to (n) to (n)	/* { dg-error "appears more than once on the same .declare target. directive" } */
#pragma omp declare target link (o, o)		/* { dg-error "appears more than once on the same .declare target. directive" } */
#pragma omp declare target (s, t, s)		/* { dg-error "appears more than once on the same .declare target. directive" } */
int p, q, r;
#pragma omp declare target (p) to (q)		/* { dg-error "expected end of line before .to." } */
#pragma omp declare target to (p) (q) link (r)	/* { dg-error "expected .#pragma omp. clause before" } */
#pragma omp declare target link (r) (p)		/* { dg-error "expected .#pragma omp. clause before" } */
#pragma omp declare target
#pragma omp end declare target to (p)		/* { dg-error "expected end of line before .to." } */
