// PR c++/100797 // { dg-do run } bool ok = false; struct S1 { virtual ~S1() {} }; struct S2 { virtual void f1() = 0; }; struct S3: S1, S2 { void f1() { f2(); } virtual void f2() = 0; }; struct S4: S3 { void f2() { ok = true; } using S2::f1; }; int main() { S4().f1(); if (!ok) __builtin_abort (); }