diff options
author | Stephan Bergmann <sbergman@redhat.com> | 2017-11-08 15:15:54 +0100 |
---|---|---|
committer | Stephan Bergmann <sbergman@redhat.com> | 2017-11-08 15:15:54 +0100 |
commit | e62b087fce09b8ce4bc33f2c7820130e4d72937b (patch) | |
tree | be4ce47bd4db9f6e883c8a62268b2b762194e0b1 | |
parent | 74564900e73e7d9ffc7acabe047ae151c3e02abf (diff) |
Drop HAVE_GCC_ATTRIBUTE_WARN_UNUSED_STL
For one, loplugin:unusedvariablecheck does not merely check for unused variables
with types from the standard library since
fe2164949b38a7f73883dbdcb3271b94e5c81744 "teach unusedvariablecheck plugin about
SfxPoolItem subclasses", so disabling loplugin:unusedvariablecheck based on
HAVE_GCC_ATTRIBUTE_WARN_UNUSED_STL is wrong.
For another, I have seen no standard library implementation that decorates its
types with such "warn-if-unused" attributes, and
<http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0600r0.pdf>
"[[nodiscard]] in the Library" (which proposes to add the corresponding C++17
attribute to just a few select functions and no types at all) makes it appear
unlikely that will happen.
Change-Id: I0a7759e1caf3e3137057c9689080948a4d6747e0
-rw-r--r-- | compilerplugins/clang/unusedvariablecheck.cxx | 7 | ||||
-rw-r--r-- | config_host/config_global.h.in | 2 | ||||
-rw-r--r-- | configure.ac | 15 |
3 files changed, 0 insertions, 24 deletions
diff --git a/compilerplugins/clang/unusedvariablecheck.cxx b/compilerplugins/clang/unusedvariablecheck.cxx index 57b78cca5a69..32b7cd966940 100644 --- a/compilerplugins/clang/unusedvariablecheck.cxx +++ b/compilerplugins/clang/unusedvariablecheck.cxx @@ -11,11 +11,6 @@ #include <config_global.h> -// If there is support for warn_unused attribute even in STL classes, then there's -// no point in having this check enabled, otherwise keep it at least for STL -// (LO classes won't get duplicated warnings, as the attribute is different). -#if !HAVE_GCC_ATTRIBUTE_WARN_UNUSED_STL - #include "compat.hxx" #include "check.hxx" #include "unusedvariablecheck.hxx" @@ -81,6 +76,4 @@ static Plugin::Registration< UnusedVariableCheck > X( "unusedvariablecheck" ); } // namespace -#endif - /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/config_host/config_global.h.in b/config_host/config_global.h.in index 0a7912e6dd69..e0dc1418e9cb 100644 --- a/config_host/config_global.h.in +++ b/config_host/config_global.h.in @@ -22,7 +22,5 @@ Any change in this header will cause a rebuild of almost everything. #define HAVE_SYSLOG_H 0 /* Compiler supports __attribute__((warn_unused)). */ #define HAVE_GCC_ATTRIBUTE_WARN_UNUSED 0 -/* C++ library uses __attribute__((warn_unused)) for basic types like std::string. */ -#define HAVE_GCC_ATTRIBUTE_WARN_UNUSED_STL 0 #endif diff --git a/configure.ac b/configure.ac index 8a8c6a5be5b4..fdd9c005fc1a 100644 --- a/configure.ac +++ b/configure.ac @@ -5904,21 +5904,6 @@ if test "$GCC" = "yes" -o "$COM_IS_CLANG" = TRUE; then ], [AC_MSG_RESULT([no])]) AC_LANG_POP([C++]) - AC_MSG_CHECKING([whether STL uses __attribute__((warn_unused))]) - AC_LANG_PUSH([C++]) - save_CXXFLAGS=$CXXFLAGS - CXXFLAGS="$CXXFLAGS -Werror -Wunused" - AC_COMPILE_IFELSE([AC_LANG_SOURCE([ - #include <string> - void f() { std::string s; } - ])], [ - AC_MSG_RESULT([no]) - ], [ - AC_DEFINE([HAVE_GCC_ATTRIBUTE_WARN_UNUSED_STL],[1]) - AC_MSG_RESULT([yes])]) - CXXFLAGS=$save_CXXFLAGS - AC_LANG_POP([C++]) - AC_MSG_CHECKING([whether $CXX supports __attribute__((warn_unused))]) AC_LANG_PUSH([C++]) save_CXXFLAGS=$CXXFLAGS |