1// { dg-options "-O -Wno-psabi" } 2// { dg-do compile } 3 4struct A { int a; }; 5template <typename T, typename V> struct B { V operator[] (T); }; 6union U { long double ld; void *v; }; 7A a; 8 9void 10bar (U &x) 11{ 12 if (x.v) *reinterpret_cast <A *>(x.v) = a; 13} 14 15struct C { C (A) { c.ld = 0; bar (c); } U c; }; 16struct D { A d, e; void foo () { f[0][d] = e; } B <int, B <A, C> > f; }; 17 18void 19baz () 20{ 21 D d; 22 d.foo (); 23} 24