aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/g++.dg/gomp/declare-simd-6.C
blob: 09137ee5b98f4e9c579e87304b7add36c982b1db (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
// PR c++/71257
// { dg-do compile }
// { dg-options "-fopenmp-simd" }

struct S { int a; };
#pragma omp declare simd linear(val(a):2)
int f1 (int &a);
#pragma omp declare simd linear(uval(a):2)
unsigned short f2 (unsigned short &a);
#pragma omp declare simd linear(ref(a):1)
int f3 (long long int &a);
#pragma omp declare simd linear(a:1)
int f4 (int &a);
#pragma omp declare simd linear(val(a))
int f5 (int a);
#pragma omp declare simd linear(uval(a):2)		// { dg-error "modifier applied to non-reference variable" }
int f6 (unsigned short a);
#pragma omp declare simd linear(ref(a):1)		// { dg-error "modifier applied to non-reference variable" }
int f7 (unsigned long int a);
#pragma omp declare simd linear(a:1)
int f8 (int a);
#pragma omp declare simd linear(val(a):2)		// { dg-error "applied to non-integral non-pointer variable" }
int f9 (S &a);
#pragma omp declare simd linear(uval(a):2)		// { dg-error "applied to non-integral non-pointer variable" }
int f10 (S &a);
#pragma omp declare simd linear(ref(a):1)		// { dg-bogus "applied to non-integral non-pointer variable" }
int f11 (S &a);
#pragma omp declare simd linear(a:1)			// { dg-error "applied to non-integral non-pointer variable" }
int f12 (S &a);
#pragma omp declare simd linear(val(a))			// { dg-error "applied to non-integral non-pointer variable" }
int f13 (S a);
#pragma omp declare simd linear(uval(a):2)		// { dg-error "modifier applied to non-reference variable" }
int f14 (S a);
#pragma omp declare simd linear(ref(a):1)		// { dg-error "modifier applied to non-reference variable" }
int f15 (S a);
#pragma omp declare simd linear(a:1)			// { dg-error "applied to non-integral non-pointer variable" }
int f16 (S a);