aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/c-c++-common/gomp/for-5.c
blob: 6a1d1db8be3a16ee39a2081d5c8b8f207237543d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
// { dg-options "-fopenmp" }

void bar (void *);

__attribute__((noinline, noclone)) void
foo (void *qx, void *rx, void *sx, int n)
{
  unsigned short (*q)[n], (*r)[n], (*s)[n], (*p)[n];
  q = (typeof (q)) qx;
  r = (typeof (r)) rx;
  s = (typeof (s)) sx;
  int t = 1;
  int o = -1;
  #pragma omp for
  for (p = q; p != r; p += t)		/* { dg-error "increment is not constant 1 or -1" } */
    bar (p);
  #pragma omp for
  for (p = s; p != r; p += o)		/* { dg-error "increment is not constant 1 or -1" } */
    bar (p);
  #pragma omp for
  for (p = q; p != r; p = p + t)	/* { dg-error "increment is not constant 1 or -1" } */
    bar (p);
  #pragma omp for
  for (p = s; p != r; p = p + o)	/* { dg-error "increment is not constant 1 or -1" } */
    bar (p);
  #pragma omp for
  for (p = q; p != r; p = t + p)	/* { dg-error "increment is not constant 1 or -1" } */
    bar (p);
  #pragma omp for
  for (p = s; p != r; p = o + p)	/* { dg-error "increment is not constant 1 or -1" } */
    bar (p);
  #pragma omp for
  for (p = q; p != r; p += 2)		/* { dg-error "increment is not constant 1 or -1" } */
    bar (p);
  #pragma omp for
  for (p = s; p != r; p -= 2)		/* { dg-error "increment is not constant 1 or -1" } */
    bar (p);
  #pragma omp for
  for (p = q; p != r; p = p + 3)	/* { dg-error "increment is not constant 1 or -1" } */
    bar (p);
  #pragma omp for
  for (p = s; p != r; p = p - 3)	/* { dg-error "increment is not constant 1 or -1" } */
    bar (p);
  #pragma omp for
  for (p = q; p != r; p = 4 + p)	/* { dg-error "increment is not constant 1 or -1" } */
    bar (p);
  #pragma omp for
  for (p = s; p != r; p = -5 + p)	/* { dg-error "increment is not constant 1 or -1" } */
    bar (p);
}