[clang-tools-extra] [clang-tidy] avoid false positive when overload for bugprone-return-const-ref-from-parameter (PR #95434)
Piotr Zegar via cfe-commits
cfe-commits at lists.llvm.org
Fri Jun 14 00:38:42 PDT 2024
================
@@ -18,20 +17,87 @@ namespace clang::tidy::bugprone {
void ReturnConstRefFromParameterCheck::registerMatchers(MatchFinder *Finder) {
Finder->addMatcher(
returnStmt(
- hasReturnValue(declRefExpr(to(parmVarDecl(hasType(hasCanonicalType(
- qualType(matchers::isReferenceToConst()).bind("type"))))))),
- hasAncestor(functionDecl(hasReturnTypeLoc(
- loc(qualType(hasCanonicalType(equalsBoundNode("type"))))))))
+ hasReturnValue(declRefExpr(
+ to(parmVarDecl(hasType(hasCanonicalType(
+ qualType(lValueReferenceType(pointee(
+ qualType(isConstQualified()))))
+ .bind("type"))))
+ .bind("param")))),
+ hasAncestor(
+ functionDecl(hasReturnTypeLoc(loc(qualType(
+ hasCanonicalType(equalsBoundNode("type"))))))
+ .bind("func")))
.bind("ret"),
this);
}
+static bool isSameTypeIgnoringConst(QualType A, QualType B) {
+ A = A.getCanonicalType();
+ B = B.getCanonicalType();
+ A.addConst();
+ B.addConst();
+ return A == B;
----------------
PiotrZSL wrote:
```suggestion
return A.getCanonicalType().withConst() == B.getCanonicalType().withConst();
```
https://github.com/llvm/llvm-project/pull/95434
More information about the cfe-commits
mailing list