// PR c++/27000 // Implicitly instantiated templates should not be affected by // #pragma visibility. /* { dg-do compile } */ /* { dg-require-visibility "" } */ /* { dg-final { scan-not-hidden "_ZN1SIiED1Ev" } } */ /* { dg-final { scan-not-hidden "_ZN1SIiEC1ERKi" } } */ template struct S { S (const T &); ~S (); T t; }; template S::S (const T &x) { t = x; } template S::~S () { } #pragma GCC visibility push(hidden) struct U { S s; U () : s (6) { } } u; #pragma GCC visibility pop