On 30.12.2014 17:54, Jason Merrill wrote:
On 12/28/2014 01:45 PM, Momchil Velikov wrote:
+      if (!hidden_friend)
+    {
+      DECL_ANTICIPATED (olddecl) = 0;
+      DECL_HIDDEN_FRIEND_P (olddecl) = 0;
+    }

Why not add this...

@@ -2147,10 +2160,6 @@ duplicate_decls (tree newdecl, tree olddecl,
bool newdecl_is_friend)
        if (DECL_DECLARES_FUNCTION_P (newdecl))
      {
        DECL_NONCONVERTING_P (newdecl) = DECL_NONCONVERTING_P (olddecl);
-      olddecl_friend = DECL_FRIEND_P (olddecl);
-      hidden_friend = (DECL_ANTICIPATED (olddecl)
-               && DECL_HIDDEN_FRIEND_P (olddecl)
-               && newdecl_is_friend);

...here?  I don't see a reason why a function template wouldn't hit this
block.

A function template enters the body of the if statement at line 1881,

  if (TREE_CODE (newdecl) == TEMPLATE_DECL)

and exits the function at line 1951 with

      return olddecl;



Reply via email to