[PATCH] D147655: Implement mangling rules for C++20 concepts and requires-expressions.

Erich Keane via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Wed Apr 5 12:41:10 PDT 2023


erichkeane added a comment.

I can't really review the libcxxabi parts, or the llvm-demangler parts, but everything looks right to me.  I've got a pair of quick questions, otherwise I think this is going to be fine for me.

Note the extra paren changes are something I think are valuable, but I'm trying to figure out their meaning in thsi patch.



================
Comment at: clang/include/clang/AST/ExprConcepts.h:502
                ArrayRef<ParmVarDecl *> LocalParameters,
+               SourceLocation RParenLoc,
                ArrayRef<concepts::Requirement *> Requirements,
----------------
Is this an unrelated change?  Are paren locations required for mangling?


================
Comment at: clang/lib/AST/ItaniumMangle.cpp:5180
+    NotPrimaryExpr();
+    if (RE->getLParenLoc().isValid()) {
+      Out << "rQ";
----------------
What is happening here? What are we deriving from the validity of the paren?  Or is this differentiating:

`requires (something)` vs `requires C<T>` sorta thing?


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D147655/new/

https://reviews.llvm.org/D147655



More information about the cfe-commits mailing list