xref: /llvm-project/clang/test/Modules/Inputs/merge-template-pattern-visibility/b.h (revision a72a70aeb94c0b4cd4c5ef855cbc42da13fc0463)
17a591a4aSRichard Smith template<typename, typename = int> struct A;
27a591a4aSRichard Smith template<typename T> struct B;
37a591a4aSRichard Smith 
47a591a4aSRichard Smith template<typename, typename> struct A {};
57a591a4aSRichard Smith template<typename T> struct B : A<T> {};
C(T)66f4e2e03SRichard Smith template<typename T> inline auto C(T) {}
77a591a4aSRichard Smith 
f()87a591a4aSRichard Smith inline void f() {
97a591a4aSRichard Smith   B<int> bi;
106f4e2e03SRichard Smith   C(0);
117a591a4aSRichard Smith }
12*6561f92bSRichard Smith 
13*6561f92bSRichard Smith namespace CrossModuleMerge {
14*6561f92bSRichard Smith   template<typename, typename = int> struct A;
15*6561f92bSRichard Smith   template<typename T> struct B;
16*6561f92bSRichard Smith 
17*6561f92bSRichard Smith   template<typename, typename> struct A {};
18*6561f92bSRichard Smith   template<typename T> struct B : A<T> {};
C(T)19*6561f92bSRichard Smith   template<typename T> inline auto C(T) {}
20*6561f92bSRichard Smith }
21