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