diff options
Diffstat (limited to 'gcc/testsuite/g++.dg/template/nested1.C')
-rw-r--r-- | gcc/testsuite/g++.dg/template/nested1.C | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.dg/template/nested1.C b/gcc/testsuite/g++.dg/template/nested1.C new file mode 100644 index 000000000..ed2028b3c --- /dev/null +++ b/gcc/testsuite/g++.dg/template/nested1.C @@ -0,0 +1,15 @@ +/* PR c++/4633 */ +/* { dg-do compile } */ + +// The 'class X' inside the template used to escape (somehow), +// so that the typedef claimed that it was redefining X. + +template <typename T> struct S ; + +template <> struct S<float> +{ + template <class, class> struct R; + template <class X> struct R<X, X> { }; + + typedef int X; +}; |