diff options
author | Matheus Izvekov <mizvekov@gmail.com> | 2025-06-04 04:26:09 -0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-06-04 09:26:09 +0200 |
commit | c95189f87751bc40f69746db49c6ddec6d4e641c (patch) | |
tree | 56ce4d40435f1b93a003e0293c216901366a5baf | |
parent | 93314bd9462d5c41a23fb402be7ae0c7d099e274 (diff) | |
download | llvm-c95189f87751bc40f69746db49c6ddec6d4e641c.zip llvm-c95189f87751bc40f69746db49c6ddec6d4e641c.tar.gz llvm-c95189f87751bc40f69746db49c6ddec6d4e641c.tar.bz2 |
[clang-tidy] NFCI: remove non-functional matcher from SizeofExpressionCheck (#142654)
This matcher would never match anything, because all record types
as-written would be wrapped in an ElaboratedType.
Just fixing that leads to a matcher which has too many false positives
to be useful.
The warning message itself is not great either, it has a hard-coded type
name.
-rw-r--r-- | clang-tools-extra/clang-tidy/bugprone/SizeofExpressionCheck.cpp | 25 |
1 files changed, 7 insertions, 18 deletions
diff --git a/clang-tools-extra/clang-tidy/bugprone/SizeofExpressionCheck.cpp b/clang-tools-extra/clang-tidy/bugprone/SizeofExpressionCheck.cpp index f3d4c22..9eeba86 100644 --- a/clang-tools-extra/clang-tidy/bugprone/SizeofExpressionCheck.cpp +++ b/clang-tools-extra/clang-tidy/bugprone/SizeofExpressionCheck.cpp @@ -170,8 +170,6 @@ void SizeofExpressionCheck::registerMatchers(MatchFinder *Finder) { const auto PointerToStructType = hasUnqualifiedDesugaredType(pointerType(pointee(recordType()))); - const auto PointerToStructTypeWithBinding = - type(PointerToStructType).bind("struct-type"); const auto PointerToStructExpr = expr(hasType(hasCanonicalType(PointerToStructType))); @@ -188,12 +186,10 @@ void SizeofExpressionCheck::registerMatchers(MatchFinder *Finder) { ignoringParenImpCasts(unaryOperator(hasOperatorName("*"))); Finder->addMatcher( - expr(sizeOfExpr(anyOf(has(ignoringParenImpCasts( - expr(PointerToDetectedExpr, unless(DerefExpr), - unless(SubscriptExprWithZeroIndex), - unless(VarWithConstStrLiteralDecl), - unless(cxxThisExpr())))), - has(PointerToStructTypeWithBinding)))) + expr(sizeOfExpr(has(ignoringParenImpCasts(expr( + PointerToDetectedExpr, unless(DerefExpr), + unless(SubscriptExprWithZeroIndex), + unless(VarWithConstStrLiteralDecl), unless(cxxThisExpr())))))) .bind("sizeof-pointer"), this); } @@ -354,16 +350,9 @@ void SizeofExpressionCheck::check(const MatchFinder::MatchResult &Result) { "suspicious usage of 'sizeof(char*)'; do you mean 'strlen'?") << E->getSourceRange(); } else if (const auto *E = Result.Nodes.getNodeAs<Expr>("sizeof-pointer")) { - if (Result.Nodes.getNodeAs<Type>("struct-type")) { - diag(E->getBeginLoc(), - "suspicious usage of 'sizeof(A*)' on pointer-to-aggregate type; did " - "you mean 'sizeof(A)'?") - << E->getSourceRange(); - } else { - diag(E->getBeginLoc(), "suspicious usage of 'sizeof()' on an expression " - "of pointer type") - << E->getSourceRange(); - } + diag(E->getBeginLoc(), "suspicious usage of 'sizeof()' on an expression " + "of pointer type") + << E->getSourceRange(); } else if (const auto *E = Result.Nodes.getNodeAs<BinaryOperator>( "sizeof-compare-constant")) { diag(E->getOperatorLoc(), |