diff options
Diffstat (limited to 'gcc-4.9/gcc/testsuite/g++.dg/template/typedef26.C')
-rw-r--r-- | gcc-4.9/gcc/testsuite/g++.dg/template/typedef26.C | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/gcc-4.9/gcc/testsuite/g++.dg/template/typedef26.C b/gcc-4.9/gcc/testsuite/g++.dg/template/typedef26.C new file mode 100644 index 000000000..7f4bc6b5c --- /dev/null +++ b/gcc-4.9/gcc/testsuite/g++.dg/template/typedef26.C @@ -0,0 +1,40 @@ +// Contributed by Dodji Seketeli <dodji@redhat.com> +// Origin: PR c++/42225 +// { dg-do compile } + +struct A +{ + typedef int TI; +}; + +template<class T0> +struct S0 +{ + int i; +}; + +template<class _T, int> +struct S1 +{ + typedef _T T; + typedef typename T::TI TTI; + typedef S0<TTI> TT0; + typedef S0<typename T::TI> TT1; +}; + +template<class T> +void +foo(const T&) +{ + typedef typename T::TI TTI; + typedef S0<TTI> TT1; + typedef S0<typename T::TI> TT2; +} + +int +main() +{ + A a; + foo (a); +} + |