c++: Quash bogus -Wunused-value with new [PR107797]
commite3585e6acdfd5c1793f877476647d2521620c95c
authorMarek Polacek <polacek@redhat.com>
Thu, 19 Jan 2023 22:12:34 +0000 (19 17:12 -0500)
committerMarek Polacek <polacek@redhat.com>
Mon, 23 Jan 2023 21:41:48 +0000 (23 16:41 -0500)
treebe03840369b1fc4e087b3b97fed693bce71e861d
parent72e46b3c7ad5e3d2c69868a510c00707c356106a
c++: Quash bogus -Wunused-value with new [PR107797]

We shouldn't emit "right operand of comma operator has no effect"
when that comma operator was created by the compiler for "new int{}".
convert_to_void/COMPOUND_EXPR already checks warning_suppressed_p so
we can just suppress -Wunused-value.

PR c++/107797

gcc/cp/ChangeLog:

* cvt.cc (ocp_convert): copy_warning when creating a new
COMPOUND_EXPR.
* init.cc (build_new_1): Suppress -Wunused-value on
compiler-generated COMPOUND_EXPRs.

gcc/testsuite/ChangeLog:

* g++.dg/warn/Wunused-value-1.C: New test.
gcc/cp/cvt.cc
gcc/cp/init.cc
gcc/testsuite/g++.dg/warn/Wunused-value-1.C [new file with mode: 0644]