/* { dg-do compile } */ /* { dg-options "-fcilkplus" } */ int *p; extern int stuff(); template void foobar(int a) { #pragma simd for (int i=0; i < a; ++i) p[i] = value; } template void foobar2(int a) { int j = 123; #pragma simd linear(j : value) for (int i=0; i < a; ++i) { p[i] = value; j += stuff(); } } void funky() { foobar <69> (1000); foobar2 <123> (2000); } void foobar3(int a) { int j = 123; #pragma simd linear(j : a + a) /* { dg-error "step size must be an integer" } */ for (int i=0; i < a; ++i) { p[i] = 1234; extern int bar(); j += bar(); } }