// PR c++/16829 // { dg-do "compile" } void f1(int = 0, int); // { dg-error "default" } void f2(int = 0, int) {} // { dg-error "default" } void f3(int, int); void f3(int = 0, int); // { dg-error "default" } void f4(int, int); void f4(int = 0, int) {} // { dg-error "default" } void f5(); void f5(int = 0, int); // { dg-error "default" } void f6(); void f6(int = 0, int) {} // { dg-error "default" } template void g1(int = 0, int); // { dg-error "default" } template void g2(int = 0, int) {} // { dg-error "default" } template void g3(int, int); template void g3(int = 0, int); // { dg-error "default" } template void g4(int, int); template void g4(int = 0, int) {} // { dg-error "default" } template void g5(); template void g5(int = 0, int); // { dg-error "default" } template void g6(); template void g6(int = 0, int) {} // { dg-error "default" } template void g7(T, T) {} template void g7(T* = 0, T*) {} // { dg-error "default" } struct A { void F1(int = 0, int); // { dg-error "default" } void F2(int = 0, int) {} // { dg-error "default" } void F3(int, int); void F4(); void F4(int = 0, int); // { dg-error "default" } void F5(); void F5(int = 0, int) {} // { dg-error "default" } template void G1(int = 0, int); // { dg-error "default" } template void G2(int = 0, int) {} // { dg-error "default" } template void G3(int, int); template void G4(); template void G4(int = 0, int); // { dg-error "default" } template void G5(); template void G5(int = 0, int) {} // { dg-error "default" } template void G6(T, T) {} template void G6(T* = 0, T*) {} // { dg-error "default" } }; void A::F3(int = 0, int) {} // { dg-error "default" } template void A::G3(int = 0, int) {} // { dg-error "default" } template struct B { void F1(int = 0, int); // { dg-error "default" } void F2(int = 0, int) {} // { dg-error "default" } void F3(int, int); void F4(); void F4(int = 0, int); // { dg-error "default" } void F5(); void F5(int = 0, int) {} // { dg-error "default" } template void G1(int = 0, int); // { dg-error "default" } template void G2(int = 0, int) {} // { dg-error "default" } template void G3(int, int); template void G4(); template void G4(int = 0, int); // { dg-error "default" } template void G5(); template void G5(int = 0, int) {} // { dg-error "default" } template void G6(T, T) {} template void G6(T* = 0, T*) {} // { dg-error "default" } }; template void B::F3(int = 0, int) {} // { dg-error "default" } template template void B::G3(int = 0, int) {} // { dg-error "default" }