1 // { dg-do compile }
2 // { dg-options "-fsanitize=null -fvtable-verify=std" }
3 // { dg-skip-if "" { *-*-* } { "-flto" } { "" } }
4 
5 template < typename T > struct A
6 {
7   T foo ();
8 };
9 template < typename T > struct C: virtual public A < T >
10 {
11   C & operator<< (C & (C &));
12 };
13 template < typename T >
endl(C<int> & c)14 C < T > &endl (C < int > &c)
15 {
16   c.foo ();
17   return c;
18 }
19 C < int > cout;
20 void
fn()21 fn ()
22 {
23   cout << endl;
24 }
25