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