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);
    }
}

Reply via email to