// PR c++/28274
// { dg-do compile }

void f1(int, int, int, int, int = 0);
void f1(int, int, int, int = 0, int);
void f1(int, int, int = 0, int, int);
void f1(int = 0, int, int, int, int);    // { dg-error "default" }

void f2(int, int, int, int, int = 0) {}
void f2(int, int, int, int = 0, int);
void f2(int, int, int = 0, int, int);
void f2(int = 0, int, int, int, int);    // { dg-error "default" }

void f3(int, int, int, int, int = 0);
void f3(int, int, int, int = 0, int) {}
void f3(int, int, int = 0, int, int);
void f3(int = 0, int, int, int, int);    // { dg-error "default" }

void f4(int, int, int, int, int = 0);
void f4(int, int, int, int = 0, int);
void f4(int, int, int = 0, int, int) {}
void f4(int = 0, int, int, int, int);    // { dg-error "default" }

void f5(int, int, int, int, int = 0);
void f5(int, int, int, int = 0, int);
void f5(int, int, int = 0, int, int);
void f5(int = 0, int, int, int, int) {}  // { dg-error "default" }


struct A
{
  void F1(int, int, int = 0);
  void F2(int, int, int = 0);
};

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


template<int> struct B
{
  void F1(int, int, int = 0);
  void F2(int, int, int = 0);
};

template<int N> void B<N>::F1(int, int = 0, int) {}  // { dg-error "default arguments" }
template<int N> void B<N>::F2(int = 0, int, int) {}  // { dg-error "default arguments|parameter 2" }
