(original) (raw)
Yes, we should produce this warning in C++11 mode too. (I could be misrecalling, but I think the rationale for the current behaviour is based on historical GCC behaviour.)
On Sun, 16 Sep 2018, 10:04 David Blaikie via cfe-dev, <cfe-dev@lists.llvm.org> wrote:
Fair point made on that thread - that this is a DR, so technically the std::move is pessimizing even in C++11 mode. Richard: Any thoughts on generalizing the warning to cover these cases even in C++11 mode?\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_On Sat, Sep 15, 2018 at 2:37 AM Dávid Bolvanský <david.bolvansky@gmail.com> wrote:There is a new discussion related to -Wredundant-move warning on GCC bugzilla.pi 14\. 9\. 2018 o 9:53 David Blaikie <dblaikie@gmail.com> napísal(a):On Fri, Sep 14, 2018 at 12:48 AM Stephan Bergmann <sbergman@redhat.com> wrote:On 13/09/2018 18:22, David Blaikie via llvm-dev wrote:
\> On Thu, Sep 13, 2018 at 12:13 AM Dávid Bolvanský via llvm-dev
\> <llvm-dev@lists.llvm.org llvm-dev@lists.llvm.org>> wrote:
\> /home/davidbolvansky/trunk/llvm/unittests/ExecutionEngine/Orc/CompileOnDemandLayerTest.cpp:79:40:
\> required from here
\> /home/davidbolvansky/trunk/llvm/include/llvm/ExecutionEngine/Orc/CompileOnDemandLayer.h:314:29:
\> warning: redundant move in return statement \[-Wredundant-move\]
\> 314 | return std::move(Err);
Note that the move (into the implicit JITSymbol(Error) ctor) is only
redundant if the compiler implements a fix for
<http://www.open-std.org/jtc1/sc22/wg21/docs/cwg\_defects.html#1579>
"Return by converting move constructor". (But not sure whether the LLVM
compiler baselines imply that, anyway.
Looks like that was accepted for C++14, not 11\. So I don't believe it's valid to remove the std::move in C++11 code. (& I believe Clang's warning correctly diagnoses this only in the right language versions) - so we probably want to disable the buggy GCC warning here, then.
In LibreOffice it forced me to
introduce ugly #ifs, to not have to disable that warning outright,
<https://cgit.freedesktop.org/libreoffice/core/commit/?id=dc06c8f4989fc28d0c31ebd333e53dfe0e0f5f66>
"-Werror=redundant-move (GCC 9), take two".)
cfe-dev mailing list
cfe-dev@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev