URL
https://opencores.org/ocsvn/openrisc/openrisc/trunk
Subversion Repositories openrisc
[/] [openrisc/] [trunk/] [gnu-old/] [gcc-4.2.2/] [gcc/] [testsuite/] [g++.dg/] [template/] [crash21.C] - Rev 816
Compare with Previous | Blame | View Log
// { dg-do compile }
// Origin: Debian GCC maintainers <debian-gcc@lists.debian.org>
// Wolfgang Bangerth <bangerth@dealii.org>
// PR c++/16706: Dependent type calculation during access checking
template <typename> struct B {
B() throw() {}
struct S { };
static int i;
typedef unsigned short int dummy;
};
template <typename _Tp>
struct allocator: B<_Tp> {
template<typename _Tp1> struct rebind
{ typedef allocator<_Tp1> other; };
};
template<typename T, typename>
struct X {
typename allocator<T>::template rebind<int>::other i;
typedef int* dummy;
};
template <class T> class A {
typedef typename X<T,allocator<T> >::dummy dummy;
template <class TP> class XWrapper;
};
template <class T>
template <class TP> struct A<T>::XWrapper<TP *>
{
XWrapper() {}
X<int,allocator<int> > x;
};
template class A<int>::XWrapper<int *>;