Kaydet (Commit) dc06c8f4 authored tarafından Stephan Bergmann's avatar Stephan Bergmann

-Werror=redundant-move (GCC 9), take two

...after 5b62a433 "Revert
'-Werror=redundant-move'" to fix the build for GCC 8.1 again.  Turns out the
std::move can only be dropped if the compiler has a fix for CWG1579.  For GCC
that's the case starting with GCC 5.1, so the !HAVE_CXX_GWG1579_FIX case can
hopefully be removed again soon, see the mail thread starting at
<https://lists.freedesktop.org/archives/libreoffice/2018-July/080588.html>
"Compiler baselines (was: [Libreoffice-qa] minutes of ESC call ...)").

Change-Id: I3592cad7fb503db921c37e92831a34785a1054a1
Reviewed-on: https://gerrit.libreoffice.org/59741
Tested-by: Jenkins
Reviewed-by: 's avatarStephan Bergmann <sbergman@redhat.com>
üst d8d310dc
......@@ -26,4 +26,8 @@ Any change in this header will cause a rebuild of almost everything.
/* Guaranteed copy elision (C++17), __cpp_guaranteed_copy_elision (C++2a): */
#define HAVE_CPP_GUARANTEED_COPY_ELISION 0
/* Fix for <http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#1579> "Return by converting
move constructor": */
#define HAVE_CXX_CWG1579_FIX 0
#endif
......@@ -6438,6 +6438,27 @@ CXXFLAGS=$save_CXXFLAGS
AC_LANG_POP([C++])
AC_SUBST([HAVE_CPP_GUARANTEED_COPY_ELISION])
HAVE_CXX_CWG1579_FIX=
AC_MSG_CHECKING([whether $CXX has a fix for CWG1579])
AC_LANG_PUSH([C++])
save_CXXFLAGS=$CXXFLAGS
CXXFLAGS="$CXXFLAGS $CXXFLAGS_CXX11"
AC_COMPILE_IFELSE([AC_LANG_SOURCE([
#include <memory>
struct S1 {};
struct S2: S1 {};
std::unique_ptr<S1> f() {
std::unique_ptr<S2> s2(new S2);
return s2;
}
])], [
AC_DEFINE([HAVE_CXX_CWG1579_FIX],[1])
AC_MSG_RESULT([yes])
], [AC_MSG_RESULT([no])])
CXXFLAGS=$save_CXXFLAGS
AC_LANG_POP([C++])
AC_SUBST([HAVE_CXX_CWG1579_FIX])
dnl ===================================================================
dnl system stl sanity tests
dnl ===================================================================
......
......@@ -18,6 +18,8 @@
*/
#include <memory>
#include <config_global.h>
#include <drawinglayer/animation/animationtiming.hxx>
#include <basegfx/numeric/ftools.hxx>
#include <o3tl/make_unique.hxx>
......@@ -190,7 +192,11 @@ namespace drawinglayer
pNew->append(*i);
}
#if HAVE_CXX_CWG1579_FIX
return pNew;
#else
return std::move(pNew);
#endif
}
bool AnimationEntryList::operator==(const AnimationEntry& rCandidate) const
......@@ -283,7 +289,11 @@ namespace drawinglayer
pNew->append(*i);
}
#if HAVE_CXX_CWG1579_FIX
return pNew;
#else
return std::move(pNew);
#endif
}
bool AnimationEntryLoop::operator==(const AnimationEntry& rCandidate) const
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment