3 // Origin: Debian GCC maintainers <debian-gcc@lists.debian.org>
4 // Wolfgang Bangerth <bangerth@dealii.org>
6 // PR c++/16706: Dependent type calculation during access checking
8 template <typename> struct B {
12 typedef unsigned short int dummy;
15 template <typename _Tp>
16 struct allocator: B<_Tp> {
17 template<typename _Tp1> struct rebind
18 { typedef allocator<_Tp1> other; };
21 template<typename T, typename>
23 typename allocator<T>::template rebind<int>::other i;
27 template <class T> class A {
28 typedef typename X<T,allocator<T> >::dummy dummy;
29 template <class TP> class XWrapper;
34 template <class TP> struct A<T>::XWrapper<TP *>
37 X<int,allocator<int> > x;
40 template class A<int>::XWrapper<int *>;