sepavloff added a comment.

Initial commit (r305379) was reverted (r305381) because it broke self builds. 
The reason was not related to the WillHaveBody flag but was due to the change:

  if (isFriend) {
    Function->setObjectOfFriendDecl();
    if (FunctionTemplate)
      FunctionTemplate->setObjectOfFriendDecl();
  }

Attempt to execute `FunctionTemplate->setObjectOfFriendDecl()` caused assertion 
violation because the declaration had `IDNS_NonMemberOperator` in its 
IdentifierNamespace. There is nothing wrong with this flag, 
`setObjectOfFriendDecl` must be updated accordingly. This is however a problem 
of friend function templates, it will be addressed in other patch. For now the 
call to  `setObjectOfFriendDecl` is made as previously, with the exception that 
it is called for `Function` prior to call to `CheckFunctionDeclaration`, as it 
is necessary for proper diagnostics.


Repository:
  rL LLVM

https://reviews.llvm.org/D30375



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to