re PR c++/40007 (specialization causes access problem in primary template)
[gcc.git] / gcc / testsuite / g++.dg / template / access11.C
1 // Copyright (C) 2003 Free Software Foundation
2 // Contributed by Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
3 // { dg-do compile }
4
5 // Access checking during explicit instantiation.
6
7 class A {
8 typedef int X; // { dg-error "private" }
9 };
10
11 class X {
12 private:
13 template <typename T> struct Y;
14 };
15
16 template <> struct X::Y<int> {
17 A::X x; // { dg-error "this context" }
18 };
19
20 template <typename T> struct X::Y {
21 typename T::X x; // { dg-error "this context" }
22 };
23
24 template struct X::Y<A>; // { dg-message "instantiated from here" }