1// { dg-do compile }
2
3// Copyright (C) 2004 Free Software Foundation
4// Contributed by Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
5
6// Nested class of class template as friend
7
8template<class T> struct A
9{
10  struct B1
11  {
12  };
13  struct B2
14  {
15    void f();
16  };
17};
18
19class C {
20  int i;	// { dg-error "private" }
21  template<class T> friend struct A<T>::B1;
22};
23
24template<class T> void A<T>::B2::f()
25{
26  C c;
27  c.i = 0;	// { dg-error "context" }
28}
29
30int main()
31{
32  A<int>::B2 b1;
33  b1.f();	// { dg-message "required" }
34}
35