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;