[PATCH] D3976: -Wcomma, a new warning for questionable uses of the comma operator
Aaron Ballman via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Mon Aug 15 04:09:05 PDT 2022
aaron.ballman added a comment.
In D3976#3721421 <https://reviews.llvm.org/D3976#3721421>, @gpakosz wrote:
> Hello,
>
> As of today, `-Wcomma` is not really documented: https://clang.llvm.org/docs/DiagnosticsReference.html#wcomma
>
>> The current whitelisted expressions are increments, decrements, assignments, compound assignments, overloaded versions of these operators, **and void returning functions**
FWIW, none of our diagnostics get documentation beyond what you see there (it's auto-generated from the diagnostic definition file).
> About `void` returning functions, the following example <https://godbolt.org/z/Wa8qxKv8j> emits `-Wcomma`:
>
> void foo()
> {
>
> }
>
> int bar(int i)
> {
> return i;
> }
>
> int main(int argc, char* argv[])
> {
> if (foo(), bar(argc))
> return 0;
>
> return -1;
> }
>
>
>
> <source>:13:12: warning: possible misuse of comma operator here [-Wcomma]
> if (foo(), bar(argc))
> ^
> <source>:13:7: note: cast expression to void to silence warning
> if (foo(), bar(argc))
> ^~~~~
> (void)( )
> 1 warning generated.
>
> Should I open a bug?
I think opening a bug is appropriate, good catch!
Repository:
rL LLVM
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D3976/new/
https://reviews.llvm.org/D3976
More information about the cfe-commits
mailing list