]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/testsuite/c-c++-common/gomp/reduction-1.c
gcc/
[thirdparty/gcc.git] / gcc / testsuite / c-c++-common / gomp / reduction-1.c
CommitLineData
43895be5 1/* { dg-do compile } */
2/* { dg-options "-fopenmp" } */
3
4void bar (int a[10][10][10]);
5extern int f[][2]; /* { dg-error "has incomplete type" "" { target c++ } } */
6extern int g[]; /* { dg-error "has incomplete type" "" { target c++ } } */
7void
8foo (int a[10][10][10], int **b, int x)
9{
10 int c[10][10][0];
11 int d[0];
12 char e[12];
13 #pragma omp parallel reduction(+: a[:4][:0][:7]) /* { dg-error "zero length array section" } */
14 bar (a);
15 #pragma omp parallel reduction(+: b[:7][0:0][:0]) /* { dg-error "zero length array section" } */
16 bar (a);
17 #pragma omp parallel reduction(+: c[:][:][0:]) /* { dg-error "zero length array section|for unknown bound array type length expression must be specified" } */
18 bar (a);
19 #pragma omp parallel reduction(+: a[:4][:0][:x]) /* { dg-error "zero length array section" } */
20 bar (a);
21 #pragma omp parallel reduction(+: b[:x][0:0][:0]) /* { dg-error "zero length array section" } */
22 bar (a);
23 #pragma omp parallel reduction(+: c[:][:x][0:]) /* { dg-error "zero length array section|for unknown bound array type length expression must be specified" } */
24 bar (a);
25 #pragma omp parallel reduction(+: d) /* { dg-error "is a zero size array" } */
26 bar (a);
27 #pragma omp parallel reduction(+: a[0:4])
28 bar (a);
9561765e 29 #pragma omp parallel reduction(+: a[2:4])
43895be5 30 bar (a);
9561765e 31 #pragma omp parallel reduction(+: e[2:4])
32 bar (a);
33 #pragma omp parallel reduction(+: a[x:4])
34 bar (a);
35 #pragma omp parallel reduction(+: e[x:4])
36 bar (a);
37 #pragma omp parallel reduction(+: a[x:x])
38 bar (a);
39 #pragma omp parallel reduction(+: e[x:x])
43895be5 40 bar (a);
41 #pragma omp parallel reduction(+: a[0.5:2]) /* { dg-error "low bound \[^\n\r]* of array section does not have integral type" } */
42 bar (a);
43 #pragma omp parallel reduction(+: a[0:2.5]) /* { dg-error "length \[^\n\r]* of array section does not have integral type" } */
44 bar (a);
45 #pragma omp parallel reduction(+: f[:][0:2]) /* { dg-error "for unknown bound array type length expression must be specified" } */
46 bar (a);
47 #pragma omp parallel reduction(+: a[:][0:10]) /* { dg-error "for pointer type length expression must be specified" } */
48 bar (a);
49 #pragma omp parallel reduction(+: a[:10][0:12]) /* { dg-error "above array section size" } */
50 bar (a);
51 #pragma omp parallel reduction(+: b[0:10][0:10]) /* { dg-error "array section is not contiguous" } */
52 bar (a);
53 #pragma omp parallel reduction(+: a[0:2][0:9]) /* { dg-error "array section is not contiguous" } */
54 bar (a);
55 #pragma omp parallel reduction(+: f) /* { dg-error "has an incomplete type|invalid use of array with unspecified bounds" } */
56 bar (a);
57 #pragma omp parallel reduction(+: g) /* { dg-error "has an incomplete type|invalid use of array with unspecified bounds" } */
58 bar (a);
59}