[clang-tools-extra] [clang-tidy] Add bugprone-move-shared-pointer-contents check. (PR #67467)

Baranov Victor via cfe-commits cfe-commits at lists.llvm.org
Sat Jun 21 11:54:48 PDT 2025


vbvictor wrote:

I played with matchers a bit, one `hasDescendant` may be eliminated by:

```diff
diff --git a/clang-tools-extra/clang-tidy/bugprone/MoveSharedPointerContentsCheck.cpp b/clang-tools-extra/clang-tidy/bugprone/MoveSharedPointerContentsCheck.cpp
index 4d5c25bf9f27..ab5e13fbb9cc 100644
--- a/clang-tools-extra/clang-tidy/bugprone/MoveSharedPointerContentsCheck.cpp
+++ b/clang-tools-extra/clang-tidy/bugprone/MoveSharedPointerContentsCheck.cpp
@@ -70,12 +70,11 @@ void MoveSharedPointerContentsCheck::registerMatchers(MatchFinder *Finder) {
           hasArgument(
               0, unaryOperator(
                      hasOperatorName("*"),
-                     hasUnaryOperand(allOf(
-                         hasDescendant(declRefExpr(hasType(qualType(
-                             isSharedPointer(matchers::matchesAnyListedName(
-                                 SharedPointerClasses)))))),
-                         cxxMemberCallExpr(
-                             callee(cxxMethodDecl(hasName("get")))))))))
+                     hasUnaryOperand(cxxMemberCallExpr(
+                         callee(cxxMethodDecl(hasName("get"))),
+                         on(hasType(qualType(isSharedPointer(
+                             matchers::matchesAnyListedName(
+                                 SharedPointerClasses))))))))))
           .bind("get_call")));
```


https://github.com/llvm/llvm-project/pull/67467


More information about the cfe-commits mailing list