/* { dg-do compile { target c++11 } } */ /* { dg-options "-fopenmp" } */ constexpr int step (int x) { return x; } constexpr int val = 1; constexpr int ref = 2; constexpr int uval = 3; #pragma omp declare simd linear (val (x) : step (1)) linear (ref (y) : step (2)) linear (uval (z) : step (3)) int foo (int x, int &y, int &z); #pragma omp declare simd linear (val (x) : val) linear (ref (y) : ref) linear (uval (z) : uval) int bar (int x, int &y, int &z); #pragma omp declare simd linear (val (x) : ref) linear (ref (y) : uval) linear (uval (z) : val) int baz (int x, int &y, int &z); #pragma omp declare simd linear (val (x) : uval) linear (ref (y) : val) linear (uval (z) : ref) int qux (int x, int &y, int &z);