p3.cpp revision 4a529d26d6ccfc9b3d11031f1256f4f87055c562
123730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)// RUN: %clang_cc1 -fsyntax-only -verify %s
223730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)
323730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)void nondecl(int (*f)(int x = 5)) // expected-error {{default arguments can only be specified}}
423730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles){
523730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)  void (*f2)(int = 17)  // expected-error {{default arguments can only be specified}}
623730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)  = (void (*)(int = 42))f; // expected-error {{default arguments can only be specified}}
723730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)}
823730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)
923730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)struct X0 {
1023730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)  int (*f)(int = 17); // expected-error{{default arguments can only be specified for parameters in a function declaration}}
1123730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)
1223730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)  void mem8(int (*fp)(int) = (int (*)(int = 17))0); // expected-error{{default arguments can only be specified for parameters in a function declaration}}
1323730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)};
1423730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)