aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--clang-tools-extra/clang-tidy/readability/RedundantStringInitCheck.cpp3
-rw-r--r--clang-tools-extra/test/clang-tidy/readability-redundant-string-init.cpp7
2 files changed, 9 insertions, 1 deletions
diff --git a/clang-tools-extra/clang-tidy/readability/RedundantStringInitCheck.cpp b/clang-tools-extra/clang-tidy/readability/RedundantStringInitCheck.cpp
index d49c55e..2997e5d 100644
--- a/clang-tools-extra/clang-tidy/readability/RedundantStringInitCheck.cpp
+++ b/clang-tools-extra/clang-tidy/readability/RedundantStringInitCheck.cpp
@@ -61,7 +61,8 @@ void RedundantStringInitCheck::registerMatchers(MatchFinder *Finder) {
hasInitializer(
expr(anyOf(EmptyStringCtorExpr,
EmptyStringCtorExprWithTemporaries))
- .bind("expr"))))
+ .bind("expr"))),
+ unless(parmVarDecl()))
.bind("decl"),
this);
}
diff --git a/clang-tools-extra/test/clang-tidy/readability-redundant-string-init.cpp b/clang-tools-extra/test/clang-tidy/readability-redundant-string-init.cpp
index 1ebba29..4455ad44 100644
--- a/clang-tools-extra/test/clang-tidy/readability-redundant-string-init.cpp
+++ b/clang-tools-extra/test/clang-tidy/readability-redundant-string-init.cpp
@@ -131,3 +131,10 @@ void k() {
std::string d = "u", e = "u", f = "u";
}
+
+// These cases should not generate warnings.
+extern void Param1(std::string param = "");
+extern void Param2(const std::string& param = "");
+void Param3(std::string param = "") {}
+void Param4(STRING param = "") {}
+