blob: c0a42a2ef465c67ba11881002921eaff7585c2cf [file] [log] [blame]
/* Test parsing of #pragma omp declare simd */
/* { dg-do compile } */
#pragma omp declare simd
int a; /* { dg-error "not immediately followed by a function declaration or definition" } */
#pragma omp declare simd
int fn1 (int a), fn2 (int a); /* { dg-error "not immediately followed by a single function declaration or definition" } */
#pragma omp declare simd
int b, fn3 (int a); /* { dg-error "not immediately followed by a function declaration or definition" } */
#pragma omp declare simd linear (a)
int fn4 (int a), c; /* { dg-error "not immediately followed by a function declaration or definition" } */
int t;
#pragma omp declare simd
#pragma omp declare simd
#pragma omp threadprivate(t) /* { dg-error "must be followed by function declaration or definition or another" } */
int fn5 (int a);
#pragma omp declare simd inbranch notinbranch /* { dg-error "clause is incompatible with" } */
int fn6 (int);
#pragma omp declare simd aligned (a, b)
int fn7 (int *a, int b[64]);
#pragma omp declare simd aligned (a) /* { dg-error "neither a pointer nor an array" } */
int fn8 (int a);
#pragma omp declare simd aligned (c) /* { dg-error "neither a pointer nor an array" } */
int fn9 (float c);
#pragma omp declare simd aligned (d) /* { dg-error "neither a pointer nor an array" } */
int fn10 (double d);
struct D { int d; };
#pragma omp declare simd aligned (e) /* { dg-error "neither a pointer nor an array" } */
int fn11 (struct D e);
#pragma omp declare simd linear(a:7) uniform(a) /* { dg-error "appears more than once" } */
int f12 (int a);
#pragma omp declare simd linear(a) linear(a) /* { dg-error "appears more than once" } */
int f13 (int a);
#pragma omp declare simd linear(a) linear(a:7) /* { dg-error "appears more than once" } */
int f14 (int a);
#pragma omp declare simd linear(a:6) linear(a:6)/* { dg-error "appears more than once" } */
int f15 (int a);
#pragma omp declare simd uniform(a) uniform(a) /* { dg-error "appears more than once" } */
int f16 (int a);
#pragma omp declare simd uniform(a) aligned (a: 32)
int f17 (int *a);