1// PR c++/28274 2// { dg-do compile } 3 4void f1(int, int, int, int, int = 0); 5void f1(int, int, int, int = 0, int); 6void f1(int, int, int = 0, int, int); 7void f1(int = 0, int, int, int, int); // { dg-error "default" } 8 9void f2(int, int, int, int, int = 0) {} 10void f2(int, int, int, int = 0, int); 11void f2(int, int, int = 0, int, int); 12void f2(int = 0, int, int, int, int); // { dg-error "default" } 13 14void f3(int, int, int, int, int = 0); 15void f3(int, int, int, int = 0, int) {} 16void f3(int, int, int = 0, int, int); 17void f3(int = 0, int, int, int, int); // { dg-error "default" } 18 19void f4(int, int, int, int, int = 0); 20void f4(int, int, int, int = 0, int); 21void f4(int, int, int = 0, int, int) {} 22void f4(int = 0, int, int, int, int); // { dg-error "default" } 23 24void f5(int, int, int, int, int = 0); 25void f5(int, int, int, int = 0, int); 26void f5(int, int, int = 0, int, int); 27void f5(int = 0, int, int, int, int) {} // { dg-error "default" } 28 29 30struct A 31{ 32 void F1(int, int, int = 0); 33 void F2(int, int, int = 0); 34}; 35 36void A::F1(int, int = 0, int) {} 37void A::F2(int = 0, int, int) {} // { dg-error "default" } 38 39 40template<int> struct B 41{ 42 void F1(int, int, int = 0); 43 void F2(int, int, int = 0); 44}; 45 46template<int N> void B<N>::F1(int, int = 0, int) {} // { dg-error "default arguments" } 47template<int N> void B<N>::F2(int = 0, int, int) {} // { dg-error "default arguments|parameter 2" } 48