1// { dg-do assemble  }
2
3template <class T>
4class S
5{
6protected:
7  template <class U>
8  void f(U); // { dg-error "" } is protected
9
10private:
11  template <class U>
12  void g(U); // { dg-error "" } is private
13};
14
15
16void f()
17{
18  S<double> s;
19  s.f(3); // { dg-error "" } within this context
20  s.g(2.0); // { dg-error "" } within this context
21}
22