aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Faure <faure@kde.org>2024-01-02 19:32:42 +0100
committerDavid Faure <faure@kde.org>2024-01-02 19:32:42 +0100
commitf873489b598babea915ffe3b69b3ea219be638fc (patch)
tree8ea931cb122879ef4660ab3a12793ad946673cc5
parenta28926e182c013315b9ca3108af3393b8e7e5b2a (diff)
Adapt detaching-member to the C++17 AST
-rw-r--r--src/checks/manuallevel/detaching-member.cpp5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/checks/manuallevel/detaching-member.cpp b/src/checks/manuallevel/detaching-member.cpp
index d35ad4bd..68780c22 100644
--- a/src/checks/manuallevel/detaching-member.cpp
+++ b/src/checks/manuallevel/detaching-member.cpp
@@ -123,7 +123,10 @@ void DetachingMember::VisitStmt(clang::Stmt *stm)
if (parentFunc && parentFunc->getNumParams() == parentCall->getNumArgs()) {
int i = 0;
for (auto *argExpr : parentCall->arguments()) {
- if (auto *expr2 = clazy::getFirstChildOfType<CXXMemberCallExpr>(argExpr)) {
+ auto expr2 = dyn_cast<CXXMemberCallExpr>(argExpr); // C++17
+ if (!expr2)
+ expr2 = clazy::getFirstChildOfType<CXXMemberCallExpr>(argExpr); // C++14
+ if (expr2) {
if (expr2 == memberCall) {
// Success, we found which arg
ParmVarDecl *parm = parentFunc->getParamDecl(i);