blob: 3e24a8fe72e70dd08a56e26dd0f5407f2107f554 [file] [log] [blame]
// PR c++/89187
// { dg-do compile { target c++11 } }
// { dg-options "-Os -fno-tree-ccp -fno-tree-sra -fno-inline" }
template <typename T, int N> struct A {
typedef T __attribute__((vector_size (N))) type;
};
template <typename T, int N> using B = typename A<T, N>::type;
template <typename T> using C = B<T, 4>;
struct D {
D (C<int> x) : d{x[3]} {}
D foo () { return d; }
C<int> d;
};
extern D d;
struct { D bar () { return d; } } l;
struct E { void baz () const; };
void
E::baz () const
{
l.bar ().foo ();
}