// 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<typename> void g1(int = 0, int);    // { dg-error "default" }

template<typename> void g2(int = 0, int) {}  // { dg-error "default" }

template<typename> void g3(int, int);
template<typename> void g3(int = 0, int);    // { dg-error "default" }

template<typename> void g4(int, int);
template<typename> void g4(int = 0, int) {}  // { dg-error "default" }

template<typename> void g5();
template<typename> void g5(int = 0, int);    // { dg-error "default" }

template<typename> void g6();
template<typename> void g6(int = 0, int) {}  // { dg-error "default" }

template<typename T> void g7(T, T)   {}
template<typename T> 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<typename> void G1(int = 0, int);    // { dg-error "default" }

  template<typename> void G2(int = 0, int) {}  // { dg-error "default" }

  template<typename> void G3(int, int);

  template<typename> void G4();
  template<typename> void G4(int = 0, int);    // { dg-error "default" }

  template<typename> void G5();
  template<typename> void G5(int = 0, int) {}  // { dg-error "default" }

  template<typename T> void G6(T, T)   {}
  template<typename T> void G6(T* = 0, T*) {}  // { dg-error "default" }
};

void A::F3(int = 0, int) {}                     // { dg-error "default" }

template<typename> void A::G3(int = 0, int) {}  // { dg-error "default" }


template<typename> 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<typename> void G1(int = 0, int);    // { dg-error "default" }

  template<typename> void G2(int = 0, int) {}  // { dg-error "default" }

  template<typename> void G3(int, int);

  template<typename> void G4();
  template<typename> void G4(int = 0, int);    // { dg-error "default" }

  template<typename> void G5();
  template<typename> void G5(int = 0, int) {}  // { dg-error "default" }

  template<typename T> void G6(T, T)   {}
  template<typename T> void G6(T* = 0, T*) {}  // { dg-error "default" }
};

template<typename T>
void B<T>::F3(int = 0, int) {}  // { dg-error "default" }

template<typename T> template<typename>
void B<T>::G3(int = 0, int) {}  // { dg-error "default" }
