Lower zeroing array assignment to memset for allocatable arrays.
[official-gcc.git] / gcc / testsuite / c-c++-common / gomp / lastprivate-conditional-1.c
blobd4ef49690e8404b333f606640c703495ccec188a
1 void
2 foo (int *p)
4 int a = -1, b = -1, c = -1, d = -1, e = -1, f = -1, g = -1, h = -1;
5 int i;
6 #pragma omp teams
8 #pragma omp distribute lastprivate (conditional: a) /* { dg-error "conditional 'lastprivate' clause on 'distribute' construct" } */
9 for (i = 0; i < 32; i++)
10 if (p[i])
11 a = i;
12 #pragma omp distribute simd lastprivate (conditional: b) /* { dg-error "conditional 'lastprivate' clause on 'distribute' construct" } */
13 for (i = 0; i < 32; i++)
14 if (p[i])
15 b = i;
16 #pragma omp distribute parallel for lastprivate (conditional: c) /* { dg-error "conditional 'lastprivate' clause on 'distribute' construct" } */
17 for (i = 0; i < 32; i++)
18 if (p[i])
19 c = i;
20 #pragma omp distribute parallel for simd lastprivate (conditional: d) /* { dg-error "conditional 'lastprivate' clause on 'distribute' construct" } */
21 for (i = 0; i < 32; i++)
22 if (p[i])
23 d = i;
25 #pragma omp teams distribute parallel for lastprivate (conditional: e) /* { dg-error "conditional 'lastprivate' clause on 'distribute' construct" } */
26 for (i = 0; i < 32; i++)
27 if (p[i])
28 e = i;
29 #pragma omp parallel
31 #pragma omp master
32 #pragma omp taskloop lastprivate (conditional: f) /* { dg-error "conditional 'lastprivate' clause on 'taskloop' construct" } */
33 for (i = 0; i < 32; i++)
34 if (p[i])
35 f = i;
36 #pragma omp master taskloop simd lastprivate (conditional: g) /* { dg-error "conditional 'lastprivate' clause on 'taskloop' construct" } */
37 for (i = 0; i < 32; i++)
38 if (p[i])
39 g = i;
41 #pragma omp parallel master taskloop simd lastprivate (conditional: h) /* { dg-error "conditional 'lastprivate' clause on 'taskloop' construct" } */
42 for (i = 0; i < 32; i++)
43 if (p[i])
44 h = i;
47 struct S { int a, b; };
49 void
50 bar (int *p)
52 struct S s = { -1, -1 }, t = { 1, 2 };
53 int i;
54 #pragma omp parallel for lastprivate (conditional: s) /* { dg-error "non-scalar variable 's' in conditional 'lastprivate' clause" } */
55 for (i = 0; i < 32; i++)
56 if (p[i])
58 struct S u = t;
59 u.b = i;
60 s = u;