1 // PR c++/8570 2 // { dg-do compile } 3 // { dg-options "" } 4 template <typename T, typename P> 5 class X { // { dg-message "note: previous declaration .* used 2" } 6 public: X()7 X() { } 8 9 private: 10 template <typename U> friend class X; // { dg-error "redeclared with 1 template parameter" } 11 }; 12 13 X<int, int> i; // { dg-message "required" } 14