1 // PR c++/26984
2 // lazily generated typeinfos should not be affected by #pragma vis, but
3 // they should be affected by the visibility of the type they describe.
4 
5 // { dg-require-visibility "" }
6 // { dg-options "-fvisibility-inlines-hidden" }
7 // { dg-final { scan-not-hidden "_ZTIPPi" } }
8 // { dg-final { scan-not-hidden "_ZTSPPi" } }
9 // { dg-final { scan-hidden "_ZTIP1A" } }
10 // { dg-final { scan-hidden "_ZTSP1A" } }
11 
12 #include <typeinfo>
13 
14 #pragma GCC visibility push(hidden)
15 const std::type_info* t = &(typeid(int **));
16 struct A { };
17 #pragma GCC visibility pop
18 
19 const std::type_info* t2 = &(typeid(A *));
20