xref: /llvm-project/clang/test/Modules/Inputs/odr_hash-Friend/Good.h (revision 0ac2eb7369f8acb6c7c5485299abc66cdcca04b0)
1*0ac2eb73SRichard Trieu template <class T>
2*0ac2eb73SRichard Trieu struct iterator {
Compareiterator3*0ac2eb73SRichard Trieu   void Compare(const iterator &x) { }
Checkiterator4*0ac2eb73SRichard Trieu   friend void Check(iterator) {}
5*0ac2eb73SRichard Trieu };
6*0ac2eb73SRichard Trieu 
7*0ac2eb73SRichard Trieu template <class T = int> struct Box {
8*0ac2eb73SRichard Trieu   iterator<T> I;
9*0ac2eb73SRichard Trieu 
testBox10*0ac2eb73SRichard Trieu   void test() {
11*0ac2eb73SRichard Trieu     Check(I);
12*0ac2eb73SRichard Trieu     I.Compare(I);
13*0ac2eb73SRichard Trieu   }
14*0ac2eb73SRichard Trieu };
15*0ac2eb73SRichard Trieu 
16*0ac2eb73SRichard Trieu // Force instantiation of Box<int>
17*0ac2eb73SRichard Trieu Box<> B;
18