https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102505
--- Comment #1 from G. Steinmetz <gs...@t-online.de> --- $ cat z2.cc struct A { A(): i(42) { } int i; int f() { return i; } }; struct D : A { long double pad; }; struct B : virtual D { int j = i + f(); int k = A::i + A::f(); }; struct C: B { int pad; }; int main() { C c; if (c.j != 84 || c.k != 84) __builtin_abort(); }