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