[Libreoffice-commits] core.git: config_host/config_global.h.in configure.ac include/sal

Libreoffice Gerrit user logerrit at kemper.freedesktop.org
Sat Dec 8 14:41:20 UTC 2018


 config_host/config_global.h.in |    3 ---
 configure.ac                   |    9 ++++-----
 include/sal/types.h            |    2 +-
 3 files changed, 5 insertions(+), 9 deletions(-)

New commits:
commit a061abd3949f933e93c84f9f67f0700055a054f7
Author:     Stephan Bergmann <sbergman at redhat.com>
AuthorDate: Fri Dec 7 12:04:53 2018 +0100
Commit:     Stephan Bergmann <sbergman at redhat.com>
CommitDate: Sat Dec 8 15:40:59 2018 +0100

    HAVE_CPP_ATTRIBUTE_NODISCARD is always true now
    
    ...but for safety, leave the configure.ac check in for some longer.
    
    Also, save removing now-redundant SAL_WARN_UNUSED_RESULT in internal code for a
    follow-up commit.
    
    Change-Id: Ibe30b51c5cc4abc270f955c7c40b59f268986672
    Reviewed-on: https://gerrit.libreoffice.org/64771
    Tested-by: Jenkins
    Reviewed-by: Stephan Bergmann <sbergman at redhat.com>

diff --git a/config_host/config_global.h.in b/config_host/config_global.h.in
index 8c0be58faba7..2e986fbe24b6 100644
--- a/config_host/config_global.h.in
+++ b/config_host/config_global.h.in
@@ -21,9 +21,6 @@ Any change in this header will cause a rebuild of almost everything.
 /* Compiler supports __attribute__((warn_unused)). */
 #define HAVE_GCC_ATTRIBUTE_WARN_UNUSED 0
 
-/* [[nodiscard]] (C++17), __has_cpp_attribute(nodiscard) (C++2a): */
-#define HAVE_CPP_ATTRIBUTE_NODISCARD 0
-
 /* Guaranteed copy elision (C++17), __cpp_guaranteed_copy_elision (C++2a): */
 #define HAVE_CPP_GUARANTEED_COPY_ELISION 0
 
diff --git a/configure.ac b/configure.ac
index f05c84110f4f..1dc1b712302d 100644
--- a/configure.ac
+++ b/configure.ac
@@ -6447,7 +6447,8 @@ AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
 CXXFLAGS=$save_CXXFLAGS
 AC_LANG_POP([C++])
 
-AC_MSG_CHECKING([[whether $CXX supports [[nodiscard]]]])
+dnl This check can eventually be removed completely (e.g., after libreoffice-6-3 branch off):
+AC_MSG_CHECKING([[that $CXX supports [[nodiscard]]]])
 AC_LANG_PUSH([C++])
 save_CXXFLAGS=$CXXFLAGS
 CXXFLAGS="$CXXFLAGS $CXXFLAGS_CXX11"
@@ -6467,10 +6468,8 @@ AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
         #else
         [[nodiscard]] int f();
         #endif
-    ]])], [
-        AC_DEFINE([HAVE_CPP_ATTRIBUTE_NODISCARD],[1])
-        AC_MSG_RESULT([yes])
-    ], [AC_MSG_RESULT([no])])
+    ]])],
+    AC_MSG_RESULT([yes]), AC_MSG_ERROR([$CXX lacks required [[nodiscard]] support]))
 CXXFLAGS=$save_CXXFLAGS
 AC_LANG_POP([C++])
 
diff --git a/include/sal/types.h b/include/sal/types.h
index 74d5c8886203..e2442ea6c998 100644
--- a/include/sal/types.h
+++ b/include/sal/types.h
@@ -292,7 +292,7 @@ typedef void *                   sal_Handle;
     Compilers that support a construct of this nature will emit a compile
     time warning on unchecked return value.
 */
-#if defined __cplusplus && HAVE_CPP_ATTRIBUTE_NODISCARD
+#if defined LIBO_INTERNAL_ONLY && defined __cplusplus
 #define SAL_WARN_UNUSED_RESULT [[nodiscard]]
 #elif (defined __GNUC__ \
      && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 1))) \


More information about the Libreoffice-commits mailing list