1// PR c++/38348
2// { dg-do compile }
3// { dg-options "-fopenmp" }
4
5const char *p = "abcde";
6
7template <typename T>
8void
9f1 (void)
10{
11#pragma omp for		// { dg-error "forbids incrementing a pointer of type" }
12  for (void *q = (void *)p; q < (void *) (p + 4); q++)	// { dg-error "forbids incrementing a pointer of type" }
13    ;
14}
15
16template <typename T>
17void
18f2 (void)
19{
20#pragma omp for
21  for (const char *q = p; q < p + 4; q++)
22    ;
23}
24
25template <typename T>
26void
27f3 (void)
28{
29#pragma omp for		// { dg-error "forbids incrementing a pointer of type" }
30  for (T q = T (p); q < T (p + 4); q++)
31    ;
32}
33
34int
35main (void)
36{
37  f1 <int> ();		// { dg-message "instantiated from here" }
38  f2 <int> ();
39  f3 <const char *> ();
40  f3 <void *> ();	// { dg-message "instantiated from here" }
41}
42