1 // { dg-do assemble  }
2 // Origin: Neil Booth, from PR #78
3 
4 namespace MySpace
5  {
6    class Tag1 { };
7    class Tag2 { };
8 
9    template<class Tag>
10    class Object
11    {
12    public:
13 
Forgotten(Object const & m)14      friend void Forgotten(Object const & m) {}
15    };
16 
17    typedef Object<Tag1> U1;
18    typedef Object<Tag2> U2;
19 
foo()20    void foo()
21    {
22      Forgotten(U1());
23      Forgotten(U2());
24    }
25 
bar()26    void bar()
27    {
28      Forgotten(U1());
29    }
30  }
31