annotate gcc/testsuite/g++.dg/gomp/declare-simd-2.C @ 152:2b5abeee2509

update gcc11
author anatofuz
date Mon, 25 May 2020 07:50:57 +0900
parents 04ced10e8804
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
111
kono
parents:
diff changeset
1 // Test parsing of #pragma omp declare simd
kono
parents:
diff changeset
2 // { dg-do compile }
kono
parents:
diff changeset
3
kono
parents:
diff changeset
4 #pragma omp declare simd
kono
parents:
diff changeset
5 int a; // { dg-error "not immediately followed by function declaration or definition" }
kono
parents:
diff changeset
6
kono
parents:
diff changeset
7 #pragma omp declare simd
kono
parents:
diff changeset
8 int fn1 (int a), fn2 (int a); // { dg-error "not immediately followed by a single function declaration or definition" }
kono
parents:
diff changeset
9
kono
parents:
diff changeset
10 #pragma omp declare simd
kono
parents:
diff changeset
11 int b, fn3 (int a); // { dg-error "not immediately followed by function declaration or definition" }
kono
parents:
diff changeset
12
kono
parents:
diff changeset
13 #pragma omp declare simd linear (a)
kono
parents:
diff changeset
14 int fn4 (int a), c; // { dg-error "not immediately followed by function declaration or definition" }
kono
parents:
diff changeset
15
kono
parents:
diff changeset
16 #pragma omp declare simd
kono
parents:
diff changeset
17 extern "C" // { dg-error "not immediately followed by function declaration or definition" }
kono
parents:
diff changeset
18 {
kono
parents:
diff changeset
19 int fn5 (int a);
kono
parents:
diff changeset
20 }
kono
parents:
diff changeset
21
kono
parents:
diff changeset
22 #pragma omp declare simd // { dg-error "not immediately followed by function declaration or definition" }
kono
parents:
diff changeset
23 namespace N1
kono
parents:
diff changeset
24 {
kono
parents:
diff changeset
25 int fn6 (int a);
kono
parents:
diff changeset
26 }
kono
parents:
diff changeset
27
kono
parents:
diff changeset
28 #pragma omp declare simd simdlen (4)
kono
parents:
diff changeset
29 struct A
kono
parents:
diff changeset
30 { // { dg-error "not immediately followed by function declaration or definition" }
kono
parents:
diff changeset
31 int fn7 (int a);
kono
parents:
diff changeset
32 };
kono
parents:
diff changeset
33
kono
parents:
diff changeset
34 #pragma omp declare simd
kono
parents:
diff changeset
35 template <typename T>
kono
parents:
diff changeset
36 struct B
kono
parents:
diff changeset
37 { // { dg-error "not immediately followed by function declaration or definition" }
kono
parents:
diff changeset
38 int fn8 (int a);
kono
parents:
diff changeset
39 };
kono
parents:
diff changeset
40
kono
parents:
diff changeset
41 struct C
kono
parents:
diff changeset
42 {
kono
parents:
diff changeset
43 #pragma omp declare simd // { dg-error "not immediately followed by function declaration or definition" }
kono
parents:
diff changeset
44 public: // { dg-error "expected unqualified-id before" }
kono
parents:
diff changeset
45 int fn9 (int a);
kono
parents:
diff changeset
46 };
kono
parents:
diff changeset
47
kono
parents:
diff changeset
48 int t;
kono
parents:
diff changeset
49
kono
parents:
diff changeset
50 #pragma omp declare simd
kono
parents:
diff changeset
51 #pragma omp declare simd
kono
parents:
diff changeset
52 #pragma omp threadprivate(t) // { dg-error "not immediately followed by function declaration or definition" }
kono
parents:
diff changeset
53 int fn10 (int a);
kono
parents:
diff changeset
54
kono
parents:
diff changeset
55 #pragma omp declare simd inbranch notinbranch // { dg-error "clause is incompatible with" }
kono
parents:
diff changeset
56 int fn11 (int);
kono
parents:
diff changeset
57
kono
parents:
diff changeset
58 struct D
kono
parents:
diff changeset
59 {
kono
parents:
diff changeset
60 int d;
kono
parents:
diff changeset
61 #pragma omp declare simd simdlen (N) linear (a : sizeof (e) + sizeof (this->e)) // { dg-error "was not declared" }
kono
parents:
diff changeset
62 template <int N>
kono
parents:
diff changeset
63 int fn12 (int a);
kono
parents:
diff changeset
64 int e;
kono
parents:
diff changeset
65 };
kono
parents:
diff changeset
66
kono
parents:
diff changeset
67 #pragma omp declare simd aligned (a, b, c, d)
kono
parents:
diff changeset
68 int fn13 (int *a, int b[64], int *&c, int (&d)[64]);
kono
parents:
diff changeset
69
kono
parents:
diff changeset
70 #pragma omp declare simd aligned (a) // { dg-error "neither a pointer nor an array" }
kono
parents:
diff changeset
71 int fn14 (int a);
kono
parents:
diff changeset
72
kono
parents:
diff changeset
73 #pragma omp declare simd aligned (b) // { dg-error "neither a pointer nor an array" }
kono
parents:
diff changeset
74 int fn14 (int &b);
kono
parents:
diff changeset
75
kono
parents:
diff changeset
76 #pragma omp declare simd aligned (c) // { dg-error "neither a pointer nor an array" }
kono
parents:
diff changeset
77 int fn14 (float c);
kono
parents:
diff changeset
78
kono
parents:
diff changeset
79 #pragma omp declare simd aligned (d) // { dg-error "neither a pointer nor an array" }
kono
parents:
diff changeset
80 int fn14 (double &d);
kono
parents:
diff changeset
81
kono
parents:
diff changeset
82 #pragma omp declare simd aligned (e) // { dg-error "neither a pointer nor an array" }
kono
parents:
diff changeset
83 int fn14 (D e);
kono
parents:
diff changeset
84
kono
parents:
diff changeset
85 #pragma omp declare simd linear(a:7) uniform(a) // { dg-error "appears more than once" }
kono
parents:
diff changeset
86 int f15 (int a);
kono
parents:
diff changeset
87 #pragma omp declare simd linear(a) linear(a) // { dg-error "appears more than once" }
kono
parents:
diff changeset
88 int f16 (int a);
kono
parents:
diff changeset
89 #pragma omp declare simd linear(a) linear(a:7) // { dg-error "appears more than once" }
kono
parents:
diff changeset
90 int f17 (int a);
kono
parents:
diff changeset
91 #pragma omp declare simd linear(a:6) linear(a:6)// { dg-error "appears more than once" }
kono
parents:
diff changeset
92 int f18 (int a);
kono
parents:
diff changeset
93 #pragma omp declare simd uniform(a) uniform(a) // { dg-error "appears more than once" }
kono
parents:
diff changeset
94 int f19 (int a);
kono
parents:
diff changeset
95 #pragma omp declare simd uniform(a) aligned (a: 32)
kono
parents:
diff changeset
96 int f20 (int *a);
kono
parents:
diff changeset
97
kono
parents:
diff changeset
98 // { dg-error "has no member" "" { target *-*-* } 61 }