1651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines// RUN: rm -rf %t
2651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines// RUN: %clang_cc1 -fmodules -verify -fmodules-cache-path=%t -I %S/Inputs/template-specialization-visibility -std=c++11 %s
3651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines//
46bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines// expected-no-diagnostics
5651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines
6651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines#include "c.h"
7651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines
8651f13cea278ec967336033dd032faef0e9fc2ecStephen HinesS<int> implicit_inst_class_template;
9651f13cea278ec967336033dd032faef0e9fc2ecStephen Hinesint k1 = implicit_inst_class_template.n;
10651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines
116bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen HinesS<char> explicit_inst_class_template;
12651f13cea278ec967336033dd032faef0e9fc2ecStephen Hinesint k2 = explicit_inst_class_template.n;
13651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines
14651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines#include "a.h"
15651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines
16651f13cea278ec967336033dd032faef0e9fc2ecStephen HinesT<int>::S implicit_inst_member_class_template;
17651f13cea278ec967336033dd032faef0e9fc2ecStephen Hinesint k3 = implicit_inst_member_class_template.n;
18651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines
196bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen HinesT<char>::S explicit_inst_member_class_template;
20651f13cea278ec967336033dd032faef0e9fc2ecStephen Hinesint k4 = explicit_inst_member_class_template.n;
21651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines
22651f13cea278ec967336033dd032faef0e9fc2ecStephen HinesT<int>::E implicit_inst_member_enum_template;
23651f13cea278ec967336033dd032faef0e9fc2ecStephen Hinesint k5 = decltype(implicit_inst_member_enum_template)::e;
24651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines
256bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen HinesT<char>::E explicit_inst_member_enum_template;
26651f13cea278ec967336033dd032faef0e9fc2ecStephen Hinesint k6 = decltype(explicit_inst_member_enum_template)::e;
27