1 // RUN: %clang_cc1 -fsyntax-only -verify %s 2 // RUN: cp %s %t 3 // RUN: not %clang_cc1 -fsyntax-only -fixit -x c++ %t 4 // RUN: %clang_cc1 -fsyntax-only -pedantic -Werror -x c++ %t 5 6 namespace dcl_fct_default_p10 { 7 struct A { 8 virtual void f(int a = 7); // expected-note{{'A::f' declared here}} 9 }; 10 11 struct B : public A { 12 void f(int a); 13 }; 14 15 void m() { 16 B* pb = new B; 17 A* pa = pb; 18 pa->f(); // OK, calls pa->B::f(7) 19 pb->f(); // expected-error{{too few arguments to function call, expected 1, have 0; did you mean 'A::f'?}} 20 } 21 } 22 23 namespace PR18608 { 24 struct A { 25 virtual void f() const; 26 virtual void f(int x) const; // expected-note{{'A::f' declared here}} 27 }; 28 29 struct B : public A { 30 virtual void f() const; 31 }; 32 33 void test(B b) { 34 b.f(1); // expected-error{{too many arguments to function call, expected 0, have 1; did you mean 'A::f'?}} 35 } 36 } 37