diff options
author | Mark Mitchell <mark@codesourcery.com> | 2001-02-16 07:57:51 +0000 |
---|---|---|
committer | Mark Mitchell <mmitchel@gcc.gnu.org> | 2001-02-16 07:57:51 +0000 |
commit | b60ecc04e87b9ca4aaa6c79f46800cc3cf49d3d7 (patch) | |
tree | 0ff816e191ef22c77d83b7424b5d60465c5a2166 | |
parent | 1d2e075ae0b174bd27eaf3db17200689074037c3 (diff) | |
download | gcc-b60ecc04e87b9ca4aaa6c79f46800cc3cf49d3d7.zip gcc-b60ecc04e87b9ca4aaa6c79f46800cc3cf49d3d7.tar.gz gcc-b60ecc04e87b9ca4aaa6c79f46800cc3cf49d3d7.tar.bz2 |
pt.c (push_template_decl_real): Don't remangle the name of a class template.
* pt.c (push_template_decl_real): Don't remangle the name of a
class template.
From-SVN: r39752
-rw-r--r-- | gcc/cp/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/cp/pt.c | 4 | ||||
-rw-r--r-- | gcc/testsuite/g++.old-deja/g++.pt/friend48.C | 17 |
3 files changed, 25 insertions, 1 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 92f434b..a4413a9 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,8 @@ +2001-02-15 Mark Mitchell <mark@codesourcery.com> + + * pt.c (push_template_decl_real): Don't remangle the name of a + class template. + 2001-02-15 Jim Meyering <meyering@lucent.com> * Make-lang.in (c++.install-common): Depend on installdirs. diff --git a/gcc/cp/pt.c b/gcc/cp/pt.c index f82981bd..2f34815 100644 --- a/gcc/cp/pt.c +++ b/gcc/cp/pt.c @@ -2718,7 +2718,9 @@ push_template_decl_real (decl, is_friend) { SET_TYPE_TEMPLATE_INFO (TREE_TYPE (tmpl), info); if ((!ctx || TREE_CODE (ctx) != FUNCTION_DECL) - && TREE_CODE (TREE_TYPE (decl)) != ENUMERAL_TYPE) + && TREE_CODE (TREE_TYPE (decl)) != ENUMERAL_TYPE + /* Don't change the name if we've already set it up. */ + && !IDENTIFIER_TEMPLATE (DECL_NAME (decl))) DECL_NAME (decl) = classtype_mangled_name (TREE_TYPE (decl)); } else if (DECL_LANG_SPECIFIC (decl)) diff --git a/gcc/testsuite/g++.old-deja/g++.pt/friend48.C b/gcc/testsuite/g++.old-deja/g++.pt/friend48.C new file mode 100644 index 0000000..af0e3ca --- /dev/null +++ b/gcc/testsuite/g++.old-deja/g++.pt/friend48.C @@ -0,0 +1,17 @@ +// Build don't link: +// Origin: Mark Mitchell <mark@codesourcery.com> + +template <class T> +class C { + template <class U> + friend class ::C; +}; + +namespace N +{ +template <class T> +class D { + template <class U> + friend class N::D; +}; +}; |