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

            Bug ID: 86981
           Summary: Add Clang's -Wpessmizing-move warning
           Product: gcc
           Version: 9.0
            Status: UNCONFIRMED
          Keywords: diagnostic
          Severity: enhancement
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: redi at gcc dot gnu.org
  Target Milestone: ---

#include <utility>

struct T {
  T() { }
  T(const T&) { }
  T(T&&) { }
};

T f() {
  T t;
  return std::move(t);
}

Clang warns about this:

m.cc:5:21: warning: moving a local object in a return statement prevents copy
elision [-Wpessimizing-move]
T f() { T t; return std::move(t); }
                    ^
m.cc:5:21: note: remove std::move call here
T f() { T t; return std::move(t); }
                    ^~~~~~~~~~ ~
1 warning generated.

Reply via email to