summaryrefslogtreecommitdiff
path: root/configure.ac
diff options
context:
space:
mode:
authorStephan Bergmann <sbergman@redhat.com>2018-08-28 22:24:19 +0200
committerStephan Bergmann <sbergman@redhat.com>2018-08-29 08:59:15 +0200
commitdc06c8f4989fc28d0c31ebd333e53dfe0e0f5f66 (patch)
tree286085623ca33bd12bb5a44dbeacc86c8fb332df /configure.ac
parentd8d310dcac8ddfdb16756cc863552ef788cfc393 (diff)
-Werror=redundant-move (GCC 9), take two
...after 5b62a43349da6fda13fb33e0f1ec477c21daec8f "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: Stephan Bergmann <sbergman@redhat.com>
Diffstat (limited to 'configure.ac')
-rw-r--r--configure.ac21
1 files changed, 21 insertions, 0 deletions
diff --git a/configure.ac b/configure.ac
index 4a2d71a04877..4ab159b4146a 100644
--- a/configure.ac
+++ b/configure.ac
@@ -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 ===================================================================