// { dg-do assemble } #include <iostream> template < class T > class X { protected: union { int x; double y; }; }; template < class T > class Y : public X<T> { public: using X<T>::x; void f () { std::cout << this->x << std::endl; } };