1 typedef struct __attribute__((__aligned__ (sizeof (void *)))) omp_depend_t {
2 char __omp_depend_t__[2 * sizeof (void *)];
5 omp_depend_t bar (void);
6 extern const omp_depend_t cdepobj;
7 extern omp_depend_t depobj, depobj4;
8 extern omp_depend_t depobja[4];
9 extern omp_depend_t *pdepobj;
16 #pragma omp depobj(x ? depobj : depobj4) depend(in : x ? a : b)
17 #pragma omp depobj(x ? depobj : depobj4) update(inout)
18 #pragma omp task depend (depobj:depobj)
20 #pragma omp depobj(depobj) destroy
21 #pragma omp task depend (iterator (i=1:3) , depobj: *(depobja + i))
23 #pragma omp depobj(pdepobj[0]) depend(mutexinoutset:a)
24 #pragma omp depobj(*pdepobj) destroy
27 template <typename T, typename T2>
29 f2 (T &depobj2, T2 depobj3, T *pdepobj)
33 #pragma omp depobj(depobj1) depend(in : --a)
34 #pragma omp depobj(depobj1) update(inout)
35 #pragma omp task depend (depobj: depobj1)
37 #pragma omp depobj(depobj1) destroy
38 #pragma omp depobj(depobj2) depend(in : a)
39 #pragma omp depobj(depobj2) update(inout)
40 #pragma omp task depend (depobj :depobj2)
42 #pragma omp depobj(depobj2) destroy
43 #pragma omp depobj(depobj3) depend(in : a)
44 #pragma omp depobj(depobj3) update(inout)
45 #pragma omp task depend (depobj : depobj3)
47 #pragma omp depobj(depobj3) destroy
48 for (int q = 1; q < 3; q++)
50 #pragma omp depobj(depobja[q]) depend (in:a)
52 #pragma omp task depend (iterator (i=1:3) , depobj : *(depobja + i))
54 for (int q = 1; q < 3; q++)
56 #pragma omp depobj(depobja[q]) destroy
58 #pragma omp depobj(pdepobj[0]) depend(mutexinoutset:a)
59 #pragma omp depobj(*pdepobj) destroy
65 omp_depend_t depobjx, depobjy;
67 f2 <omp_depend_t, omp_depend_t &> (depobjx, depobjy, pdepobj);
74 omp_depend_t depobjb[4];
75 #pragma omp depobj // { dg-error "expected" }
76 #pragma omp depobj destroy // { dg-error "expected" }
77 #pragma omp depobj (depobj) // { dg-error "expected 'depend', 'destroy' or 'update' clause" }
78 #pragma omp depobj (depobj) foobar // { dg-error "expected 'depend', 'destroy' or 'update' clause" }
79 #pragma omp depobj(bar ()) update(inout) // { dg-error "'depobj' expression is not lvalue expression" }
80 #pragma omp depobj (cdepobj) update(in) // { dg-error "'const' qualified 'depobj' expression" }
81 #pragma omp depobj (depobjb) depend(in: a) // { dg-error "type of 'depobj' expression is not 'omp_depend_t'" }
82 #pragma omp depobj (pdepobj) depend(in: a) // { dg-error "type of 'depobj' expression is not 'omp_depend_t'" }
83 #pragma omp depobj (a) destroy // { dg-error "type of 'depobj' expression is not 'omp_depend_t'" }
84 #pragma omp depobj (depobj) depend(depobj:a) // { dg-error "does not have 'omp_depend_t' type in 'depend' clause with 'depobj' dependence type" }
85 #pragma omp depobj (depobj) depend(depobj:*depobjb) // { dg-error "'depobj' dependence type specified in 'depend' clause on 'depobj' construct" }
86 #pragma omp depobj (depobj) update(foobar) // { dg-error "expected 'in', 'out', 'inout', 'mutexinoutset' or 'inoutset'" }
87 #pragma omp depobj (depobj) depend(in: *depobja) // { dg-error "should not have 'omp_depend_t' type in 'depend' clause with dependence type" }
88 #pragma omp depobj (depobj) depend(in: a) depend(in: b) // { dg-error "expected" }
89 #pragma omp depobj (depobj) depend(in: a) update(out) // { dg-error "expected" }
90 #pragma omp depobj (depobj) depend(in: a, b) // { dg-error "more than one locator in 'depend' clause on 'depobj' construct" }
91 #pragma omp depobj (depobj) depend(source) // { dg-error "'depend\\(source\\)' is only allowed in 'omp ordered'" }
92 #pragma omp depobj (depobj) depend(sink: i + 1, j - 1) // { dg-error "'depend\\(sink\\)' is only allowed in 'omp ordered'" }
93 #pragma omp depobj (depobj) depend(iterator (i = 0:2) , in : a) // { dg-error "'iterator' modifier may not be specified on 'depobj' construct" }
95 #pragma omp depobj (depobj) destroy // { dg-error "'#pragma omp depobj' may only be used in compound statements" }
103 #pragma omp task depend (depobj:depobja[1:2]) // { dg-error "'depend' clause with 'depobj' dependence type on array section" }
105 #pragma omp task depend (depobj : a) // { dg-error "'a' does not have 'omp_depend_t' type in 'depend' clause with 'depobj' dependence type" }
107 #pragma omp task depend (in: depobj) // { dg-error "'depobj' should not have 'omp_depend_t' type in 'depend' clause with dependence type" }
116 #pragma omp depobj (x) depend(in: a)
117 #pragma omp depobj (depobj) depend(in: x) // { dg-error "should not have 'omp_depend_t' type in 'depend' clause with dependence type" }