aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Sema/DeclSpec.cpp
diff options
context:
space:
mode:
authorCorentin Jabot <corentinjabot@gmail.com>2022-01-27 13:55:08 +0100
committerCorentin Jabot <corentinjabot@gmail.com>2023-10-02 14:33:02 +0200
commitaf4751738db89a142a8880c782d12d4201b222a8 (patch)
treeb58f2c515b189904f4b598a06f0af0e642343b2c /clang/lib/Sema/DeclSpec.cpp
parentbc7d88faf1a595ab59952a2054418cdd0d9eeee8 (diff)
downloadllvm-af4751738db89a142a8880c782d12d4201b222a8.zip
llvm-af4751738db89a142a8880c782d12d4201b222a8.tar.gz
llvm-af4751738db89a142a8880c782d12d4201b222a8.tar.bz2
[C++] Implement "Deducing this" (P0847R7)
This patch implements P0847R7 (partially), CWG2561 and CWG2653. Reviewed By: aaron.ballman, #clang-language-wg Differential Revision: https://reviews.llvm.org/D140828
Diffstat (limited to 'clang/lib/Sema/DeclSpec.cpp')
-rw-r--r--clang/lib/Sema/DeclSpec.cpp12
1 files changed, 12 insertions, 0 deletions
diff --git a/clang/lib/Sema/DeclSpec.cpp b/clang/lib/Sema/DeclSpec.cpp
index d59778b..2d0d575 100644
--- a/clang/lib/Sema/DeclSpec.cpp
+++ b/clang/lib/Sema/DeclSpec.cpp
@@ -420,6 +420,18 @@ bool Declarator::isStaticMember() {
getName().OperatorFunctionId.Operator));
}
+bool Declarator::isExplicitObjectMemberFunction() {
+ if (!isFunctionDeclarator())
+ return false;
+ DeclaratorChunk::FunctionTypeInfo &Fun = getFunctionTypeInfo();
+ if (Fun.NumParams) {
+ auto *P = dyn_cast_or_null<ParmVarDecl>(Fun.Params[0].Param);
+ if (P && P->isExplicitObjectParameter())
+ return true;
+ }
+ return false;
+}
+
bool Declarator::isCtorOrDtor() {
return (getName().getKind() == UnqualifiedIdKind::IK_ConstructorName) ||
(getName().getKind() == UnqualifiedIdKind::IK_DestructorName);