// Warn if we try to give an instantiation visibility after it's already // been instantiated. // { dg-require-visibility "" } template struct A { void f (T); }; template void A::f (T) { } A ad; template struct __attribute ((visibility ("hidden"))) A; // { dg-warning "already defined" }