llvmorg-github-actions[bot] wrote:
<!--LLVM PR SUMMARY COMMENT--> @llvm/pr-subscribers-clang-tidy Author: Endre Fülöp (gamesh411) <details> <summary>Changes</summary> …d-return-value Casting to (void) is the standard C/C++ idiom for intentionally discarding a return value. The check should respect this by default rather than requiring users to opt in. Both coding standard aliases that used this check (cert-err33-c and the now-removed hicpp-ignored-remove-result) overrode AllowCastToVoid to true, confirming that (void) casts are a legitimate suppression mechanism. --- Full diff: https://github.com/llvm/llvm-project/pull/200173.diff 7 Files Affected: - (modified) clang-tools-extra/clang-tidy/bugprone/UnusedReturnValueCheck.cpp (+1-1) - (modified) clang-tools-extra/clang-tidy/cert/CERTTidyModule.cpp (-1) - (modified) clang-tools-extra/docs/ReleaseNotes.rst (+4) - (modified) clang-tools-extra/docs/clang-tidy/checks/bugprone/unused-return-value.rst (+1-1) - (modified) clang-tools-extra/test/clang-tidy/checkers/bugprone/unused-return-value-custom.cpp (-1) - (modified) clang-tools-extra/test/clang-tidy/checkers/bugprone/unused-return-value-remove.cpp (+1-1) - (modified) clang-tools-extra/test/clang-tidy/checkers/bugprone/unused-return-value.cpp (+1-2) ``````````diff diff --git a/clang-tools-extra/clang-tidy/bugprone/UnusedReturnValueCheck.cpp b/clang-tools-extra/clang-tidy/bugprone/UnusedReturnValueCheck.cpp index c5792cd17b9b2..9156c32078e9c 100644 --- a/clang-tools-extra/clang-tidy/bugprone/UnusedReturnValueCheck.cpp +++ b/clang-tools-extra/clang-tidy/bugprone/UnusedReturnValueCheck.cpp @@ -145,7 +145,7 @@ UnusedReturnValueCheck::UnusedReturnValueCheck(StringRef Name, "^::std::errc$;" "^::std::expected$;" "^::boost::system::error_code$"))), - AllowCastToVoid(Options.get("AllowCastToVoid", false)) {} + AllowCastToVoid(Options.get("AllowCastToVoid", true)) {} UnusedReturnValueCheck::UnusedReturnValueCheck( StringRef Name, ClangTidyContext *Context, diff --git a/clang-tools-extra/clang-tidy/cert/CERTTidyModule.cpp b/clang-tools-extra/clang-tidy/cert/CERTTidyModule.cpp index ee1ce59d80b0d..4e952b59cdfe6 100644 --- a/clang-tools-extra/clang-tidy/cert/CERTTidyModule.cpp +++ b/clang-tools-extra/clang-tidy/cert/CERTTidyModule.cpp @@ -353,7 +353,6 @@ class CERTModule : public ClangTidyModule { Opts["cert-arr39-c.WarnOnSizeOfPointerToAggregate"] = "false"; Opts["cert-dcl16-c.NewSuffixes"] = "L;LL;LU;LLU"; Opts["cert-err33-c.CheckedFunctions"] = CertErr33CCheckedFunctions; - Opts["cert-err33-c.AllowCastToVoid"] = "true"; Opts["cert-oop54-cpp.WarnOnlyIfThisHasSuspiciousField"] = "false"; Opts["cert-str34-c.DiagnoseSignedUnsignedCharComparisons"] = "false"; return Options; diff --git a/clang-tools-extra/docs/ReleaseNotes.rst b/clang-tools-extra/docs/ReleaseNotes.rst index 0b3bb091307e7..8e496edbb8d4e 100644 --- a/clang-tools-extra/docs/ReleaseNotes.rst +++ b/clang-tools-extra/docs/ReleaseNotes.rst @@ -423,6 +423,10 @@ Changes in existing checks ``std::get_temporary_buffer`` to the default list of unsafe functions. (This function is unsafe, useless, deprecated in C++17 and removed in C++20). +- Improved :doc:`bugprone-unused-return-value + <clang-tidy/checks/bugprone/unused-return-value>` check by changing the + default of the ``AllowCastToVoid`` option from `false` to `true`. + - Improved :doc:`bugprone-use-after-move <clang-tidy/checks/bugprone/use-after-move>` check: diff --git a/clang-tools-extra/docs/clang-tidy/checks/bugprone/unused-return-value.rst b/clang-tools-extra/docs/clang-tidy/checks/bugprone/unused-return-value.rst index 725403a6eb818..9395d9fef5b47 100644 --- a/clang-tools-extra/docs/clang-tidy/checks/bugprone/unused-return-value.rst +++ b/clang-tools-extra/docs/clang-tidy/checks/bugprone/unused-return-value.rst @@ -63,7 +63,7 @@ Options .. option:: AllowCastToVoid - Controls whether casting return values to ``void`` is permitted. Default: `false`. + Controls whether casting return values to ``void`` is permitted. Default: `true`. :doc:`cert-err33-c <../cert/err33-c>` is an alias of this check that checks a fixed and large set of standard library functions. diff --git a/clang-tools-extra/test/clang-tidy/checkers/bugprone/unused-return-value-custom.cpp b/clang-tools-extra/test/clang-tidy/checkers/bugprone/unused-return-value-custom.cpp index 3035183573ccd..5bf21d20d3302 100644 --- a/clang-tools-extra/test/clang-tidy/checkers/bugprone/unused-return-value-custom.cpp +++ b/clang-tools-extra/test/clang-tidy/checkers/bugprone/unused-return-value-custom.cpp @@ -53,7 +53,6 @@ void warning() { // CHECK-MESSAGES: [[@LINE-1]]:4: warning: the value returned by this function should not be disregarded; neglecting it may lead to errors (void)fun(); - // CHECK-MESSAGES: [[@LINE-1]]:9: warning: the value returned by this function should not be disregarded; neglecting it may lead to errors ns::Outer::Inner ObjA1; ObjA1.memFun(); diff --git a/clang-tools-extra/test/clang-tidy/checkers/bugprone/unused-return-value-remove.cpp b/clang-tools-extra/test/clang-tidy/checkers/bugprone/unused-return-value-remove.cpp index 2934db6dd2d2c..fee75469ca297 100644 --- a/clang-tools-extra/test/clang-tidy/checkers/bugprone/unused-return-value-remove.cpp +++ b/clang-tools-extra/test/clang-tidy/checkers/bugprone/unused-return-value-remove.cpp @@ -1,5 +1,5 @@ // RUN: %check_clang_tidy %s bugprone-unused-return-value %t -- \ -// RUN: -config='{CheckOptions: {bugprone-unused-return-value.CheckedFunctions: "^::std::remove$;^::std::remove_if$;^::std::unique$", bugprone-unused-return-value.CheckedReturnTypes: "", bugprone-unused-return-value.AllowCastToVoid: true}}' +// RUN: -config='{CheckOptions: {bugprone-unused-return-value.CheckedFunctions: "^::std::remove$;^::std::remove_if$;^::std::unique$", bugprone-unused-return-value.CheckedReturnTypes: ""}}' // RUN: %check_clang_tidy -check-suffixes=NOCAST %s bugprone-unused-return-value %t -- \ // RUN: -config='{CheckOptions: {bugprone-unused-return-value.CheckedFunctions: "^::std::remove$;^::std::remove_if$;^::std::unique$", bugprone-unused-return-value.CheckedReturnTypes: "", bugprone-unused-return-value.AllowCastToVoid: false}}' diff --git a/clang-tools-extra/test/clang-tidy/checkers/bugprone/unused-return-value.cpp b/clang-tools-extra/test/clang-tidy/checkers/bugprone/unused-return-value.cpp index 3fa87b94dc6b4..9aaa8d3c8a35f 100644 --- a/clang-tools-extra/test/clang-tidy/checkers/bugprone/unused-return-value.cpp +++ b/clang-tools-extra/test/clang-tidy/checkers/bugprone/unused-return-value.cpp @@ -1,5 +1,4 @@ -// RUN: %check_clang_tidy %s bugprone-unused-return-value %t -- \ -// RUN: --config="{CheckOptions: {bugprone-unused-return-value.AllowCastToVoid: true}}" -- -fexceptions +// RUN: %check_clang_tidy %s bugprone-unused-return-value %t -- -- -fexceptions #include <vector> #include <memory> `````````` </details> https://github.com/llvm/llvm-project/pull/200173 _______________________________________________ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
