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