comparison gcc/testsuite/g++.dg/gomp/sharing-2.C @ 145:1830386684a0

gcc-9.2.0
author anatofuz
date Thu, 13 Feb 2020 11:34:05 +0900
parents 04ced10e8804
children
comparison
equal deleted inserted replaced
131:84e7813d76e9 145:1830386684a0
3 struct T 3 struct T
4 { 4 {
5 int i; 5 int i;
6 mutable int j; 6 mutable int j;
7 }; 7 };
8 struct U
9 {
10 int i, j;
11 };
8 struct S 12 struct S
9 { 13 {
10 const static int d = 1; 14 const static int d = 1;
11 const static T e; 15 const static T e;
16 const static U f;
12 void foo (int, T); 17 void foo (int, T);
13 }; 18 };
14 19
15 const int S::d; 20 const int S::d;
16 const T S::e = { 2, 3 }; 21 const T S::e = { 2, 3 };
22 const U S::f = { 4, 5 };
17 23
18 void bar (const int &); 24 void bar (const int &);
19 25
20 void 26 void
21 S::foo (const int x, const T y) 27 S::foo (const int x, const T y)
26 bar (d); 32 bar (d);
27 #pragma omp parallel firstprivate (y) 33 #pragma omp parallel firstprivate (y)
28 bar (y.i); 34 bar (y.i);
29 #pragma omp parallel firstprivate (e) // { dg-error "is predetermined" } 35 #pragma omp parallel firstprivate (e) // { dg-error "is predetermined" }
30 bar (e.i); 36 bar (e.i);
31 #pragma omp parallel shared (x) // { dg-error "is predetermined" } 37 #pragma omp parallel firstprivate (f)
38 bar (f.i);
39 #pragma omp parallel shared (x)
32 bar (x); 40 bar (x);
33 #pragma omp parallel shared (d) // { dg-error "is predetermined" } 41 #pragma omp parallel shared (d) // { dg-error "is predetermined" }
34 bar (d); 42 bar (d);
35 #pragma omp parallel shared (e) // { dg-error "is predetermined" } 43 #pragma omp parallel shared (e) // { dg-error "is predetermined" }
36 bar (e.i); 44 bar (e.i);
45 #pragma omp parallel shared (f) // { dg-error "is predetermined" }
46 bar (f.i);
37 #pragma omp parallel shared (y) 47 #pragma omp parallel shared (y)
38 bar (y.i); 48 bar (y.i);
39 #pragma omp parallel private (x) // { dg-error "is predetermined" } 49 #pragma omp parallel private (x) // { dg-error "may appear only in 'shared' or 'firstprivate' clauses" }
40 bar (x); 50 bar (x);
41 #pragma omp parallel private (d) // { dg-error "is predetermined" } 51 #pragma omp parallel private (d) // { dg-error "is predetermined" }
42 bar (d); 52 bar (d);
43 #pragma omp parallel private (y) 53 #pragma omp parallel private (y)
44 bar (y.i); 54 bar (y.i);
45 #pragma omp parallel private (e) // { dg-error "is predetermined" } 55 #pragma omp parallel private (e) // { dg-error "is predetermined" }
46 bar (e.i); 56 bar (e.i);
57 #pragma omp parallel private (f) // { dg-error "is predetermined" }
58 bar (f.i);
47 } 59 }