// { dg-do assemble } // Origin: Benjamin Kosnik class b { int j; public: b(int a = 6): j(a) {} void imbue(int a) {++j;} }; class d: public b { int k; public: d(int a = 7): b(a), k(a) {} void imbue(int a) {++k;} }; //virtual public kills, public ok class mostd: virtual public d { int l; public: mostd(int a = 9): d(a), l(a) {} }; int main() { d dobj; dobj.imbue(5); mostd mobj; mobj.imbue(5); return 0; }