https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71280

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2016-05-25
                 CC|                            |jakub at gcc dot gnu.org
     Ever confirmed|0                           |1

--- Comment #1 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Reduced testcase for -Ofast -mavx:
template <typename T>
struct A
{
  typedef T C[64];
  static T &bar (C &x, int y) { return const_cast<T &>(x[y]); }
};

template <typename T>
struct B
{
  typename A<T>::C D;
  T *begin ();
  T &operator[](int x) { return A<T>::bar (D, x); }
  T &at () { return A<T>::bar (D, 0); }
};

extern B<B<int> > a;

void
foo ()
{
  B<B<B<int> > > b;
  for (int c = 0; c < 64; c++)
    (*(*b.begin ()).begin ())[0] * a.at ()[c];
}

Reply via email to