https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71257
Bug ID: 71257 Summary: OpenMP declare simd linear with ref modifier doesn't accept references to non-integer/non-pointer Product: gcc Version: 6.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: jakub at gcc dot gnu.org Target Milestone: --- struct S { int a; }; #pragma omp declare simd linear(ref(a):1) // { dg-bogus "applied to non-integral non-pointer variable" } int foo (S &a); is not accepted, while it should be. The requirement that linear clause refers only to arguments with integer/pointer type or reference to integer/pointer type applies only when the ref modifier is not used, otherwise the only requirement is that the argument has reference type.