c++: Implement -Wself-move warning [PR81159]
authorMarek Polacek <polacek@redhat.com>
Mon, 8 Aug 2022 21:45:28 +0000 (17:45 -0400)
committerMarek Polacek <polacek@redhat.com>
Fri, 26 Aug 2022 16:56:34 +0000 (12:56 -0400)
commit0abb78dda084a14b3d955757c6431fff71c263f3
treee50c14d175e4d5e2e61ea340f47f00f92cf039a6
parent1e2462890ac748a5e5b6a34fdeb61e7027863a90
c++: Implement -Wself-move warning [PR81159]

About 5 years ago we got a request to implement -Wself-move, which
warns about useless moves like this:

  int x;
  x = std::move (x);

This patch implements that warning.

PR c++/81159

gcc/c-family/ChangeLog:

* c.opt (Wself-move): New option.

gcc/cp/ChangeLog:

* typeck.cc (maybe_warn_self_move): New.
(cp_build_modify_expr): Call maybe_warn_self_move.

gcc/ChangeLog:

* doc/invoke.texi: Document -Wself-move.

gcc/testsuite/ChangeLog:

* g++.dg/warn/Wself-move1.C: New test.
gcc/c-family/c.opt
gcc/cp/typeck.cc
gcc/doc/invoke.texi
gcc/testsuite/g++.dg/warn/Wself-move1.C [new file with mode: 0644]