1// { dg-do compile }
2
3// PR c++/3663
4// Enforce access of nested type.
5
6template <typename A>
7class S {
8  class T {};				// { dg-error "private" }
9};
10
11template <typename A>
12typename A::T* f (A) {			// { dg-error "this context" }
13  return 0;
14}
15
16void g () {
17  f (S<int> ());			// { dg-message "required|no match" }
18}
19