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 6namespace dcl_fct_default_p10 { 7struct A { 8 virtual void f(int a = 7); // expected-note{{'A::f' declared here}} 9}; 10 11struct B : public A { 12 void f(int a); 13}; 14 15void 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 23namespace PR18608 { 24struct A { 25virtual void f() const; 26virtual void f(int x) const; // expected-note{{'A::f' declared here}} 27}; 28 29struct B : public A { 30virtual void f() const; 31}; 32 33void 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