From 9b5c46c2011aec71a60b06c2a337bec0398c3efb Mon Sep 17 00:00:00 2001 From: Jason Merrill Date: Fri, 26 Mar 2004 14:20:50 -0500 Subject: [PATCH] re PR c++/13294 (namespace associations vs. specializations) PR c++/13294 * pt.c (maybe_process_partial_specialization): Remember the context of a specialization. From-SVN: r79992 --- gcc/cp/ChangeLog | 6 ++++++ gcc/cp/pt.c | 10 +++++++++- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index e59e9c1a9ec..e3d3a268637 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,9 @@ +2004-03-25 Jason Merrill + + PR c++/13294 + * pt.c (maybe_process_partial_specialization): Remember the + context of a specialization. + 2004-03-25 Kazu Hirata * cxx-pretty-print.c: Fix comment typos. diff --git a/gcc/cp/pt.c b/gcc/cp/pt.c index be2f2c7c405..3e3d0e91f5d 100644 --- a/gcc/cp/pt.c +++ b/gcc/cp/pt.c @@ -733,7 +733,15 @@ maybe_process_partial_specialization (tree type) { tree tpl_ns = decl_namespace_context (CLASSTYPE_TI_TEMPLATE (type)); if (is_associated_namespace (current_namespace, tpl_ns)) - /* Same or super-using namespace. */; + /* Same or super-using namespace. */ + { + if (DECL_NAMESPACE_SCOPE_P (CLASSTYPE_TI_TEMPLATE (type))) + /* If this is a specialization of a namespace-scope class + template, remember the context of the + specialization. */ + TYPE_CONTEXT (type) = DECL_CONTEXT (TYPE_NAME (type)) + = FROB_CONTEXT (current_namespace); + } else { pedwarn ("specializing `%#T' in different namespace", type); -- 2.30.2