1 // PR c++/35368 2 // { dg-require-visibility "" } 3 4 #pragma GCC visibility push (hidden) 5 6 #include <typeinfo> 7 8 const std::type_info& info1 = typeid(int []); 9 const std::type_info& info2 = typeid(int); 10 enum E { e = 0 }; 11 const std::type_info& info3 = typeid(E); 12 struct S { S (); }; 13 const std::type_info& info4 = typeid(S); 14 const std::type_info& info5 = typeid(int *); 15 16 // { dg-final { scan-not-hidden "_ZTVN10__cxxabiv117__array_type_infoE" } } 17 // { dg-final { scan-not-hidden "_ZTVN10__cxxabiv116__enum_type_infoE" } } 18 // { dg-final { scan-hidden "_ZTI1S" } } 19 // { dg-final { scan-hidden "_ZTS1S" } } 20 // { dg-final { scan-hidden "info1" } } 21 // { dg-final { scan-hidden "info2" } } 22 // { dg-final { scan-hidden "info3" } } 23 // { dg-final { scan-hidden "info4" } } 24 // { dg-final { scan-hidden "info5" } } 25