[PATCH] D96082: [clang-tidy] Add 'readability-useless-return-value' check

Lukas Hänel via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Tue Feb 16 16:58:49 PST 2021


LukasHanel added a comment.

In D96082#2566984 <https://reviews.llvm.org/D96082#2566984>, @steveire wrote:

> In D96082#2565339 <https://reviews.llvm.org/D96082#2565339>, @aaron.ballman wrote:
>
>> A somewhat similar check that would be interesting is a function that returns the same value on all control paths
>
> I think we shouldn't try to design a new, different check in the comments of this MR.
>
> I think it would be better to finalize what to do with this one.
>
> Request further work to also change expressions in all affected TUs? Or close?

Hi,
I finally managed to run this checker on my own code base and I run into all the above problems:

1. There are some sloppy areas in the code that this checker nicely highlights.
2. Many false-positives for example with callbacks or involving preprocessor
3. Some questionable suggestions, like where it is breaking code-symmetry with a set of handlers that have the same signatures but some always return 0.

In conclusion for this checker:

- it's a good way to spot sloppy areas in the code.
- You couldn't run it in -Werror mode to enforce clean code.
- Yes, I could filter more FP/noise, e.g. functions that have a single return statement in the body; plus maybe assert.
- However, if you have a policy to use the return value of all functions, this checker can be a good way to clean the code first.

I am ok to close this one, I will park it somewhere.

In the meantime, I try to spin up some fixes for the false positives that I see with other checkers, as mentioned above.

As a follow-up to this checker, clang -Wdocumentation does not understand the `@retval` command.
I was thinking of adding a new clang-tidy checker for this to verify/complete the list of documented return values.
In this case where the documentation does not say `@retval 0 always`, than I will come back to the checker here, suggest make the function void or add the "always" to the text :).
The work with the useless-return-value was a study towards this new @retval checker.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D96082/new/

https://reviews.llvm.org/D96082



More information about the cfe-commits mailing list