[PATCH] D151383: [clang-tidy] Check for specific return types on all functions
NagaChaitanya Vellanki via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Wed May 24 15:49:39 PDT 2023
chaitanyav updated this revision to Diff 525359.
chaitanyav added a comment.
Reuse diag code
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D151383/new/
https://reviews.llvm.org/D151383
Files:
clang-tools-extra/clang-tidy/bugprone/UnusedReturnValueCheck.cpp
Index: clang-tools-extra/clang-tidy/bugprone/UnusedReturnValueCheck.cpp
===================================================================
--- clang-tools-extra/clang-tidy/bugprone/UnusedReturnValueCheck.cpp
+++ clang-tools-extra/clang-tidy/bugprone/UnusedReturnValueCheck.cpp
@@ -156,6 +156,15 @@
auto UnusedInRangeForStmt = cxxForRangeStmt(hasBody(MatchedCallExpr));
auto UnusedInCaseStmt = switchCase(forEach(MatchedCallExpr));
+ Finder->addMatcher(
+ callExpr(callee(functionDecl(anyOf(
+ hasReturnTypeLoc(loc(asString("std::error_code"))),
+ hasReturnTypeLoc(loc(asString("std::expected"))),
+ hasReturnTypeLoc(loc(asString("boost::system::error_code"))),
+ hasReturnTypeLoc(loc(asString("abseil::Status")))))))
+ .bind("return-types"),
+ this);
+
Finder->addMatcher(
stmt(anyOf(UnusedInCompoundStmt, UnusedInIfStmt, UnusedInWhileStmt,
UnusedInDoStmt, UnusedInForStmt, UnusedInRangeForStmt,
@@ -164,13 +173,17 @@
}
void UnusedReturnValueCheck::check(const MatchFinder::MatchResult &Result) {
- if (const auto *Matched = Result.Nodes.getNodeAs<CallExpr>("match")) {
- diag(Matched->getBeginLoc(),
- "the value returned by this function should be used")
- << Matched->getSourceRange();
- diag(Matched->getBeginLoc(),
- "cast the expression to void to silence this warning",
- DiagnosticIDs::Note);
+ const char *callExprBindingNames[] = {"return-types", "match"};
+ for (const char *callExprBindingName : callExprBindingNames) {
+ if (const auto *Matched =
+ Result.Nodes.getNodeAs<CallExpr>(callExprBindingName)) {
+ diag(Matched->getBeginLoc(),
+ "the value returned by this function should be used")
+ << Matched->getSourceRange();
+ diag(Matched->getBeginLoc(),
+ "cast the expression to void to silence this warning",
+ DiagnosticIDs::Note);
+ };
}
}
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D151383.525359.patch
Type: text/x-patch
Size: 2004 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20230524/25425c9c/attachment.bin>
More information about the cfe-commits
mailing list