// RUN: %clang_cc1 -fsyntax-only -verify %s
// expected-no-diagnostics
// This test creates cases where implicit instantiations of various entities
// would cause a diagnostic, but provides expliict specializations for those
// entities that avoid the diagnostic. The intent is to verify that
// implicit instantiations do not occur (because the explicit specialization
// is used instead).
;
// C++ [temp.expl.spec]p1:
// An explicit specialization of any of the following:
// -- function template
void
void
void
// -- class template
;
void
T X0<T>::member;
;
X0<void> test_X0;
// -- member function of a class template
void
void
// -- static data member of a class template
NonDefaultConstructible X0<NonDefaultConstructible>::member = 17;
NonDefaultConstructible &
// -- member class of a class template
;
X0<void*>::Inner inner0;
// -- member class template of a class template
;
X0<void*>::InnerTemplate<int> inner_template0;
// -- member function template of a class template
void
void
// example from the standard:
;
;
;
void
void ;