// PR c++/38348 // { dg-do compile } // { dg-options "-fopenmp" } const char *p = "abcde"; template void f1 (void) { #pragma omp for for (void *q = (void *)p; q < (void *) (p + 4); q++) // { dg-warning "forbids incrementing a pointer of type" } ; } template void f2 (void) { #pragma omp for for (const char *q = p; q < p + 4; q++) ; } template void f3 (void) { #pragma omp for for (T q = T (p); q < T (p + 4); q++) // { dg-warning "forbids incrementing a pointer of type" } ; } int main (void) { f1 (); // { dg-message "required from here" } f2 (); f3 (); f3 (); // { dg-message "required from here" } }