1 // PR c++/100797 plus diamond inheritance
2 // { dg-do run }
3 
4 bool ok = false;
~S1S15 struct 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()16 int main() {
17   S4().f1();
18   if (!ok) __builtin_abort ();
19 }
20