// PR c++/100872 template struct S { #pragma omp declare simd aligned(a : N * 2) aligned(b) linear(ref(b): N) float foo (float *a, T *&b) { return *a + *b; } }; S<16, float> s; float bar (float *a, float *p) { return s.foo (a, p); }