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