1 // { dg-do assemble  }
2 // Origin: Loring Holden <lsh@cs.brown.edu>
3 
4 template <class V>
5 class _vec3d
6 {
7    public:
8       double _x, _y;
9 };
10 
11 class Wvec : public _vec3d<int> { };
12 
13 template <class T>
14 class TDI {
15    public:
16       T   &get();
17 };
18 
19 template <class T>
20 class hashvar {
21   public :
22    T       _val;
23    TDI<T> *val() const;
get()24    T       get() const { return true ? val()->get() : _val; }
25 };
26 
27 int
main()28 main() {
29    hashvar<Wvec>  CONSTRAINT_DIR;
30    CONSTRAINT_DIR.get();
31 }
32