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) ? > +// { 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