https://gcc.gnu.org/bugzilla/show_bug.cgi?id=120239
--- Comment #3 from Jonathan Wakely <redi at gcc dot gnu.org> ---
We could probably still do better.
Clang says:
foo.cc:3:6: error: expected ';' after expression
3 | { 0 };
| ^
| ;
foo.cc:3:5: warning: expression result unused [-Wunused-value]
3 | { 0 };
| ^
1 warning and 1 error generated.
This makes it a little more clear that the problem is that 0 is an expression,
not a statement, and then it also points out that the unused expression is
useless on its own.
EDG similarly points out a useless unused expression.
"foo.cc", line 3: warning: expression has no effect
{ 0 };
^
"foo.cc", line 3: error: expected a ";"
{ 0 };
^
1 error detected in the compilation of "foo.cc".