// Build don't link: // Origin: Jakub Jelinek // Special g++ Options: -O1 class Type; template class X { public: X(); inline X(int); inline ~X(); }; template const Type &foo(const X *); template inline X::X(int x) { const Type &a = foo(this); } template inline X::~X() { const Type &a = foo(this); } class Y { X a; public: Y(const X &x = X()); }; Y::Y(const X &x) : a(1) { }