[PATCH] D147068: Fix merging of member-like constrained friends across modules.

Richard Smith - zygoloid via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Tue Mar 28 10:59:03 PDT 2023


rsmith created this revision.
rsmith added a reviewer: aaron.ballman.
Herald added a project: All.
rsmith requested review of this revision.
Herald added a project: clang.
Herald added a subscriber: cfe-commits.

When a friend declaration has a requires-clause, and either it's a
non-template function or it's a function template whose requires-clause
depends on an enclosing template parameter, it is member-like for the
purpose of redeclaration checking. Specifically, the lexically enclosing
class becomes part of its signature, so it can only be redeclared by
another declaration within the same class.

Previously we supported this rule when parsing declarations, but not
when merging them across modules.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D147068

Files:
  clang/docs/ReleaseNotes.rst
  clang/include/clang/AST/ASTContext.h
  clang/include/clang/AST/Decl.h
  clang/lib/AST/ASTContext.cpp
  clang/lib/AST/Decl.cpp
  clang/lib/Sema/SemaOverload.cpp
  clang/test/Modules/merge-constrained-friends.cpp

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D147068.509075.patch
Type: text/x-patch
Size: 8298 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20230328/30318a8e/attachment.bin>


More information about the cfe-commits mailing list