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