1 // { dg-do compile } 2 3 // Contributed by Nathan Sidwell 23 Oct 2003 <nathan@codesourcery.com> 4 // Origin: grigory@stl.sarov.ru 5 // PR c++/12700 ICE with covariancy 6 7 struct c2 { int i; }; 8 9 struct c1 { f8c110 virtual c2& f8() { static c2 a; return a; } 11 }; 12 13 struct c3 : c1, c2 { f8c314 virtual c2& f8() { static c2 a; return a; } 15 }; 16 17 struct c11 : public c1 { f8c1118 virtual c3& f8() { static c3 a; return a; } 19 }; 20 21 struct c15 : virtual c3 { f8c1522 virtual c2& f8() { static c3 a; return a; } 23 }; 24 25 struct c18 : virtual c11 { 26 virtual c15& f8(); 27 }; 28 f8()29c15& c18::f8() { throw 0; } 30