xref: /minix3/external/bsd/llvm/dist/clang/test/Modules/template-specialization-visibility.cpp (revision 0a6a1f1d05b60e214de2f05a7310ddd1f0e590e7)
1*0a6a1f1dSLionel Sambuc // RUN: rm -rf %t
2*0a6a1f1dSLionel Sambuc // RUN: %clang_cc1 -fmodules -verify -fmodules-cache-path=%t -I %S/Inputs/template-specialization-visibility -std=c++11 %s
3*0a6a1f1dSLionel Sambuc //
4*0a6a1f1dSLionel Sambuc // expected-no-diagnostics
5*0a6a1f1dSLionel Sambuc 
6*0a6a1f1dSLionel Sambuc #include "c.h"
7*0a6a1f1dSLionel Sambuc 
8*0a6a1f1dSLionel Sambuc S<int> implicit_inst_class_template;
9*0a6a1f1dSLionel Sambuc int k1 = implicit_inst_class_template.n;
10*0a6a1f1dSLionel Sambuc 
11*0a6a1f1dSLionel Sambuc S<char> explicit_inst_class_template;
12*0a6a1f1dSLionel Sambuc int k2 = explicit_inst_class_template.n;
13*0a6a1f1dSLionel Sambuc 
14*0a6a1f1dSLionel Sambuc #include "a.h"
15*0a6a1f1dSLionel Sambuc 
16*0a6a1f1dSLionel Sambuc T<int>::S implicit_inst_member_class_template;
17*0a6a1f1dSLionel Sambuc int k3 = implicit_inst_member_class_template.n;
18*0a6a1f1dSLionel Sambuc 
19*0a6a1f1dSLionel Sambuc T<char>::S explicit_inst_member_class_template;
20*0a6a1f1dSLionel Sambuc int k4 = explicit_inst_member_class_template.n;
21*0a6a1f1dSLionel Sambuc 
22*0a6a1f1dSLionel Sambuc T<int>::E implicit_inst_member_enum_template;
23*0a6a1f1dSLionel Sambuc int k5 = decltype(implicit_inst_member_enum_template)::e;
24*0a6a1f1dSLionel Sambuc 
25*0a6a1f1dSLionel Sambuc T<char>::E explicit_inst_member_enum_template;
26*0a6a1f1dSLionel Sambuc int k6 = decltype(explicit_inst_member_enum_template)::e;
27