https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96354
Jakub Jelinek <jakub at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Assignee|marxin at gcc dot gnu.org |jakub at gcc dot gnu.org --- Comment #10 from Jakub Jelinek <jakub at gcc dot gnu.org> --- Slightly adjusted testcase: template <int N> struct A { typedef double T[N]; }; template <int N> struct B { typename A<N>::T b; double *baz () { return b; } }; template <int N> struct C { B<N> d; C (); }; template <int N> C<N>::C () { double c = *d.baz (); } template <int N> void operator- (C<N>, const C<N> &); template <int> struct D {}; template <int N, int M> C<N> foo (D<N>, C<M>) { C<N> t; return t; } int e; struct E { D<3> d; void bar (); }; void E::bar () { #pragma omp simd for (int i = 0; i < e; i++) { C<3> f, g; g - foo (d, f); } }