1 // PR c++/14369 2 3 struct A { }; 4 5 template<class T> 6 struct X : A { barX7 const A* bar() const 8 { return this; } 9 10 const A& foo() const; 11 }; 12 13 template<class T> foo()14 const A& X<T>::foo() const 15 { 16 const A* t = bar(); 17 return *(t ? t : throw 0); 18 } 19 20 21