[PATCH] D3976: -Wcomma, a new warning for questionable uses of the comma operator

Gregory PAKOSZ via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Sat Aug 13 13:22:44 PDT 2022


gpakosz added a comment.
Herald added a project: All.

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**

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?


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