[PATCH] D126818: Itanium ABI: Implement mangling for constrained friends
Aaron Ballman via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Fri Jun 3 07:01:28 PDT 2022
aaron.ballman added a comment.
I'm a bit uneasy that this is implementing something that's not yet been accepted into the Itanium ABI document. That runs the risk of requiring an ABI break if the Itanium document changes directions before finalizing. Also, what should we be doing for the Microsoft mangling, or do we already handle that properly?
================
Comment at: clang/include/clang/AST/Decl.h:2495
+ // constraints on it, so that we can decide to mangle this with its containing
+ // scope and the 'F' for itanium.
+ bool isConstrainedFriend() const;
----------------
================
Comment at: clang/lib/AST/ItaniumMangle.cpp:668-669
+ // different functions. See [temp.friend]p9.
+ if (FD->isConstrainedFriend())
+ return FD->getLexicalDeclContext();
+ }
----------------
Formatting looks off here -- should clang-format the patch.
================
Comment at: clang/lib/AST/ItaniumMangle.cpp:672-674
+ // If this is a friend, and has constraints, mangle it in the decl context
+ // of its lexical context, since in different scopes, they are considered
+ // different functions. See [temp.friend]p9.
----------------
I don't know that repeating the comment here is helpful.
================
Comment at: clang/lib/AST/ItaniumMangle.cpp:1733
// <nested-name>
- // ::= N [<CV-qualifiers>] [<ref-qualifier>] <prefix> <unqualified-name> E
+ // ::= N [<CV-qualifiers>] [<ref-qualifier>] <prefix> [F}
+ // <unqualified-name> E
----------------
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D126818/new/
https://reviews.llvm.org/D126818
More information about the cfe-commits
mailing list