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.