1 // PR c++/100797 plus diamond inheritance 2 // { dg-do run } 3 4 bool ok = false; ~S1S15struct S1 { virtual ~S1() {} }; 6 struct S2 { virtual void f1() = 0; }; 7 struct S3: S1, virtual S2 { f1S38 void f1() { f2(); } 9 virtual void f2() = 0; 10 }; 11 struct SX: virtual S2 { }; 12 struct S4: SX, S3 { f2S413 void f2() { ok = true; } 14 using S2::f1; 15 }; main()16int main() { 17 S4().f1(); 18 if (!ok) __builtin_abort (); 19 } 20