[clang][modules] Don't prevent translation of FW_Private includes when explicitly...
[llvm-project.git] / clang / test / Modules / Inputs / cxx-templates-c.h
blobe5395b6c7ed83b452b838d06e22ca54da43194a8
1 template<typename> struct MergeSpecializations;
2 template<typename T> struct MergeSpecializations<T[]> {
3 typedef int partially_specialized_in_c;
4 };
5 template<> struct MergeSpecializations<bool> {
6 typedef int explicitly_specialized_in_c;
7 };
9 template<typename T> struct MergeTemplateDefinitions {
10 static constexpr int f();
11 static constexpr int g();
13 template<typename T> constexpr int MergeTemplateDefinitions<T>::g() { return 2; }
15 template<typename T1 = int>
16 struct MergeAnonUnionMember {
17 MergeAnonUnionMember() { (void)values.t1; }
18 union { int t1; } values;
20 inline MergeAnonUnionMember<> maum_c() { return {}; }
22 template<typename T> struct DontWalkPreviousDeclAfterMerging { struct Inner { typedef T type; }; };
23 typedef DontWalkPreviousDeclAfterMerging<char>::Inner dwpdam_typedef;
25 namespace TestInjectedClassName {
26 template<typename T> struct X { X(); };
27 typedef X<char[3]> C;