diff --git a/clang/test/CXX/temp/temp.decls/temp.class.spec/p6.cpp b/clang/test/CXX/temp/temp.decls/temp.class.spec/p6.cpp --- a/clang/test/CXX/temp/temp.decls/temp.class.spec/p6.cpp +++ b/clang/test/CXX/temp/temp.decls/temp.class.spec/p6.cpp @@ -74,3 +74,16 @@ int array0[Outer::Inner::value? 1 : -1]; int array1[Outer::Inner::value? -1 : 1]; } + +namespace print_dependent_TemplateSpecializationType { + +template struct Foo { + template struct Bar; + template struct Bar<0, T, Y> {}; + // expected-note-re@-1 {{previous declaration {{.*}} 'Bar<0UL, int, type-parameter-0-0>' is here}} + template struct Bar<0, U, Y> {}; + // expected-error@-1 {{partial specialization 'Bar<0, int, Y>' cannot be redeclared}} +}; +template struct Foo; // expected-note {{requested here}} + +} // namespace print_dependent_TemplateSpecializationType