// { dg-do assemble } // Origin: David Mazieres template struct vector_base { typedef T elm_t; protected: union { double alignment_hack; char defbuf_space[2 * sizeof (elm_t)]; }; elm_t *def_basep () { return reinterpret_cast (defbuf_space); } }; template struct vector : public vector_base { vector () { this->def_basep (); } }; vector iv;