https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86981

--- Comment #1 from Marek Polacek <mpolacek at gcc dot gnu.org> ---
Author: mpolacek
Date: Tue Aug 21 15:38:36 2018
New Revision: 263741

URL: https://gcc.gnu.org/viewcvs?rev=263741&root=gcc&view=rev
Log:
        PR c++/86981, Implement -Wpessimizing-move.
        * c.opt (Wpessimizing-move): New option.

        * typeck.c (decl_in_std_namespace_p): New.
        (is_std_move_p): New.
        (maybe_warn_pessimizing_move): New.
        (can_do_nrvo_p): New, factored out of ...
        (check_return_expr): ... here.  Warn about potentially harmful
        std::move in a return statement.

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

        * g++.dg/cpp0x/Wpessimizing-move1.C: New test.
        * g++.dg/cpp0x/Wpessimizing-move2.C: New test.
        * g++.dg/cpp0x/Wpessimizing-move3.C: New test.
        * g++.dg/cpp0x/Wpessimizing-move4.C: New test.
        * g++.dg/cpp1z/Wpessimizing-move1.C: New test.

Added:
    trunk/gcc/testsuite/g++.dg/cpp0x/Wpessimizing-move1.C
    trunk/gcc/testsuite/g++.dg/cpp0x/Wpessimizing-move2.C
    trunk/gcc/testsuite/g++.dg/cpp0x/Wpessimizing-move3.C
    trunk/gcc/testsuite/g++.dg/cpp0x/Wpessimizing-move4.C
    trunk/gcc/testsuite/g++.dg/cpp1z/Wpessimizing-move1.C
Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/c-family/ChangeLog
    trunk/gcc/c-family/c.opt
    trunk/gcc/cp/ChangeLog
    trunk/gcc/cp/typeck.c
    trunk/gcc/doc/invoke.texi
    trunk/gcc/testsuite/ChangeLog

Reply via email to