> On Thu, Mar 10, 2016 at 05:12:59PM +0100, Jan Hubicka wrote: > > --- testsuite/g++.dg/lto/pr69589_0.C (revision 0) > > +++ testsuite/g++.dg/lto/pr69589_0.C (working copy) > > @@ -0,0 +1,26 @@ > > +// { dg-lto-do link } > > +// { dg-lto-options "-O2 -rdynamic" } > > Shouldn't this have > // { dg-require-visibility "hidden" } > when it uses the visibility push(hidden) ?
You are right, I will add it to the testcase. Honza > > > +// { dg-extra-ld-options "-r -nostdlib" } > > +#pragma GCC visibility push(hidden) > > +struct A { int &operator[] (long); }; > > +template <typename> struct B; > > +template <typename T, typename = B<T> > > > +using Z = int; > > +template <typename> struct C; > > +struct S { > > + int e; > > + virtual ~S () {} > > +}; > > +struct D : S { > > + A a; > > + long i; > > + D() { { e ? &a[i] : nullptr; } } > > +}; > > +template <> > > +struct C<int> { Z<S> m8 () const; }; > > +Z<S> > > +C<int>::m8 () const > > +{ > > + D (); > > +} > > Jakub