[PATCH] D76083: [clang-tidy] Expand the list of functions in bugprone-unused-return-value
Sam McCall via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Thu Apr 2 16:50:18 PDT 2020
sammccall added inline comments.
================
Comment at: clang-tools-extra/clang-tidy/bugprone/UnusedReturnValueCheck.cpp:98
+ "::access;"
+ "::bind;"
+ "::connect;"
----------------
aaron.ballman wrote:
> jranieri-grammatech wrote:
> > alexfh wrote:
> > > bind has a side effect and returns a success status. Thus, the result being unused isn't necessarily a bug. Same for `connect`. And probably for `setjmp` as well.
> > In terms of bind, connect, and setjmp: while I personally would say that code not using the return value is bugprone, the data suggests that the vast majority of developers are using these functions in the intended manner and the false-positive rate should be low.
> I think we have sufficient statistical data to suggest that these APIs should be on the list because the majority of programmers *do not* use them solely for side effects without using the return value, so my preference is to keep them in the list.
I stumbled upon this review as we're considering turning this check on by default in clangd.
There's a significant difference between unused std::async() (programmer misunderstood contract) and unused ::connect() (ignoring error conditions). The former is ~never noise, and the latter may be (e.g. in experimental or incomplete code).
So there's some value in separating these two lists out either as an option or a separate named check (bugprone-unhandled-error?) I think we probably wouldn't enable this check by default if it includes the error-code functions.
> the majority of programmers *do not* use them solely for side effects
...in popular, distributed software :-)
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D76083/new/
https://reviews.llvm.org/D76083
More information about the cfe-commits
mailing list