etienneb created this revision. etienneb added a reviewer: alexfh. etienneb added a subscriber: cfe-commits.
Clang-tidy is reporting a warning of redundant string initialisation on a string parameter initialized with empty string. See bug: 27087 The reported example is: ``` #include <string> void fn(std::string a = ""); ``` http://reviews.llvm.org/D18829 Files: clang-tidy/readability/RedundantStringInitCheck.cpp test/clang-tidy/readability-redundant-string-init.cpp Index: test/clang-tidy/readability-redundant-string-init.cpp =================================================================== --- test/clang-tidy/readability-redundant-string-init.cpp +++ test/clang-tidy/readability-redundant-string-init.cpp @@ -131,3 +131,10 @@ 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 = "") {} + Index: clang-tidy/readability/RedundantStringInitCheck.cpp =================================================================== --- clang-tidy/readability/RedundantStringInitCheck.cpp +++ clang-tidy/readability/RedundantStringInitCheck.cpp @@ -61,7 +61,8 @@ hasInitializer( expr(anyOf(EmptyStringCtorExpr, EmptyStringCtorExprWithTemporaries)) - .bind("expr")))) + .bind("expr"))), + unless(parmVarDecl())) .bind("decl"), this); }
Index: test/clang-tidy/readability-redundant-string-init.cpp =================================================================== --- test/clang-tidy/readability-redundant-string-init.cpp +++ test/clang-tidy/readability-redundant-string-init.cpp @@ -131,3 +131,10 @@ 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 = "") {} + Index: clang-tidy/readability/RedundantStringInitCheck.cpp =================================================================== --- clang-tidy/readability/RedundantStringInitCheck.cpp +++ clang-tidy/readability/RedundantStringInitCheck.cpp @@ -61,7 +61,8 @@ hasInitializer( expr(anyOf(EmptyStringCtorExpr, EmptyStringCtorExprWithTemporaries)) - .bind("expr")))) + .bind("expr"))), + unless(parmVarDecl())) .bind("decl"), this); }
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits