]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
pt.c (tsubst_friend_function): Push into namespace of friend function before pushdecl...
authorMartin v. Löwis <loewis@informatik.hu-berlin.de>
Mon, 14 Jun 1999 16:13:10 +0000 (16:13 +0000)
committerMartin v. Löwis <loewis@gcc.gnu.org>
Mon, 14 Jun 1999 16:13:10 +0000 (16:13 +0000)
* pt.c (tsubst_friend_function): Push into namespace of friend
function before pushdecl'ing it.

From-SVN: r27522

gcc/cp/ChangeLog
gcc/cp/pt.c

index dc79a5e925a0d052f6ef1893662df9708e4855e9..6d7cd7848204fa16dd6f47734c46fb0656acae61 100644 (file)
@@ -1,3 +1,8 @@
+1999-06-14  Martin von Löwis  <loewis@informatik.hu-berlin.de>
+
+       * pt.c (tsubst_friend_function): Push into namespace of friend
+       function before pushdecl'ing it.
+
 1999-06-14  Nathan Sidwell  <nathan@acm.org>
 
        * call.c (build_new_op): Remove REF_BIND from all operands.
index fbb2b1224fcc21bcd8b73eb79b797a6a8d99deea..26656dc96a9ffc447cf759693e9c330617519243 100644 (file)
@@ -4476,6 +4476,7 @@ tsubst_friend_function (decl, args)
       tree old_decl;
       tree new_friend_template_info;
       tree new_friend_result_template_info;
+      tree ns;
       int  new_friend_is_defn;
 
       /* We must save some information from NEW_FRIEND before calling
@@ -4498,7 +4499,13 @@ tsubst_friend_function (decl, args)
          new_friend_result_template_info = NULL_TREE;
        }
 
+      /* Inside pushdecl_namespace_level, we will push into the 
+        current namespace. However, the friend function should 
+        tyically go into the namespace of the template. */
+      ns = decl_namespace_context (new_friend);
+      push_nested_namespace (ns);
       old_decl = pushdecl_namespace_level (new_friend);
+      pop_nested_namespace (ns);
 
       if (old_decl != new_friend)
        {