1 // { dg-do assemble } 2 extern "C" int printf(const char *, ...); 3 4 struct VB { fVB5 virtual void f() { 6 printf("VB\n"); 7 } 8 }; 9 10 class M : public virtual VB { 11 public: 12 int i; f()13 void f() { 14 printf("M(%d)\n", i); 15 } 16 }; 17 18 class lM : public M { 19 }; 20 21 class rM : public M { 22 }; 23 24 class D : public lM, rM { // { dg-error "" } ambiguous function 25 } d; 26 main()27int main() { 28 ((lM*)&d)->i = 1; 29 ((rM*)&d)->i = 2; 30 ((rM*)&d)->f(); 31 ((lM*)&d)->f(); 32 ((VB*)&d)->f(); 33 } 34