c++: redeclared hidden friend take 2 [PR105852]
[official-gcc.git] / gcc / testsuite / g++.dg / modules / tpl-friend-2_a.C
blobc12857fbf69c052db30dd4c37600a0365634d2c8
1 // { dg-additional-options "-fmodules-ts -fdump-lang-module-graph-blocks" }
2 // injection followed by declaration
4 export module foo;
5 // { dg-module-cmi foo }
7 template <typename T> class TPL
9   friend void foo (T, void *); // { dg-warning "non-template function" }
11   T member;
14 template class TPL<int>;  // instantiate
16 void foo (int, void *);
18 // { dg-final { scan-lang-dump {Cluster members:\n  \[0\]=decl definition '::template TPL'\n(  \[.\]=[^\n]*'\n)*  \[.\]=decl declaration '::template foo'\n(  \[.\]=[^\n]*'\n)*  \[.\]=binding '::TPL'} module } }
19 // { dg-final { scan-lang-dump {Cluster members:\n  \[0\]=decl declaration '::foo'\n  \[.\]=binding '::foo'} module } }
20 // { dg-final { scan-lang-dump {Cluster members:\n  \[0\]=specialization definition '::TPL<int>'} module } }