1// { dg-do assemble } 2// Origin: David Mazieres <dm@amsterdam.lcs.mit.edu> 3 4template<class T> struct vector_base { 5 typedef T elm_t; 6protected: 7 union { 8 double alignment_hack; 9 char defbuf_space[2 * sizeof (elm_t)]; 10 }; 11 elm_t *def_basep () { return reinterpret_cast<elm_t *> (defbuf_space); } 12}; 13 14template<class T> struct vector : public vector_base<T> { 15 vector () { this->def_basep (); } 16}; 17 18vector<int> iv; 19