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 Smithtemplate<typename T> inline auto C(T) {} 77a591a4aSRichard Smith f()87a591a4aSRichard Smithinline 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