1// PR c++/16829 2// { dg-do "compile" } 3 4void f1(int = 0, int); // { dg-error "default" } 5 6void f2(int = 0, int) {} // { dg-error "default" } 7 8void f3(int, int); 9void f3(int = 0, int); // { dg-error "default" } 10 11void f4(int, int); 12void f4(int = 0, int) {} // { dg-error "default" } 13 14void f5(); 15void f5(int = 0, int); // { dg-error "default" } 16 17void f6(); 18void f6(int = 0, int) {} // { dg-error "default" } 19 20template<typename> void g1(int = 0, int); // { dg-error "default" } 21 22template<typename> void g2(int = 0, int) {} // { dg-error "default" } 23 24template<typename> void g3(int, int); 25template<typename> void g3(int = 0, int); // { dg-error "default" } 26 27template<typename> void g4(int, int); 28template<typename> void g4(int = 0, int) {} // { dg-error "default" } 29 30template<typename> void g5(); 31template<typename> void g5(int = 0, int); // { dg-error "default" } 32 33template<typename> void g6(); 34template<typename> void g6(int = 0, int) {} // { dg-error "default" } 35 36template<typename T> void g7(T, T) {} 37template<typename T> void g7(T* = 0, T*) {} // { dg-error "default" } 38 39 40struct A 41{ 42 void F1(int = 0, int); // { dg-error "default" } 43 44 void F2(int = 0, int) {} // { dg-error "default" } 45 46 void F3(int, int); 47 48 void F4(); 49 void F4(int = 0, int); // { dg-error "default" } 50 51 void F5(); 52 void F5(int = 0, int) {} // { dg-error "default" } 53 54 template<typename> void G1(int = 0, int); // { dg-error "default" } 55 56 template<typename> void G2(int = 0, int) {} // { dg-error "default" } 57 58 template<typename> void G3(int, int); 59 60 template<typename> void G4(); 61 template<typename> void G4(int = 0, int); // { dg-error "default" } 62 63 template<typename> void G5(); 64 template<typename> void G5(int = 0, int) {} // { dg-error "default" } 65 66 template<typename T> void G6(T, T) {} 67 template<typename T> void G6(T* = 0, T*) {} // { dg-error "default" } 68}; 69 70void A::F3(int = 0, int) {} // { dg-error "default" } 71 72template<typename> void A::G3(int = 0, int) {} // { dg-error "default" } 73 74 75template<typename> struct B 76{ 77 void F1(int = 0, int); // { dg-error "default" } 78 79 void F2(int = 0, int) {} // { dg-error "default" } 80 81 void F3(int, int); 82 83 void F4(); 84 void F4(int = 0, int); // { dg-error "default" } 85 86 void F5(); 87 void F5(int = 0, int) {} // { dg-error "default" } 88 89 template<typename> void G1(int = 0, int); // { dg-error "default" } 90 91 template<typename> void G2(int = 0, int) {} // { dg-error "default" } 92 93 template<typename> void G3(int, int); 94 95 template<typename> void G4(); 96 template<typename> void G4(int = 0, int); // { dg-error "default" } 97 98 template<typename> void G5(); 99 template<typename> void G5(int = 0, int) {} // { dg-error "default" } 100 101 template<typename T> void G6(T, T) {} 102 template<typename T> void G6(T* = 0, T*) {} // { dg-error "default" } 103}; 104 105template<typename T> 106void B<T>::F3(int = 0, int) {} // { dg-error "default" } 107 108template<typename T> template<typename> 109void B<T>::G3(int = 0, int) {} // { dg-error "default" } 110