Inspired by <https://gcc.gnu.org/pipermail/gcc-patches/2022-November/607102.html> "[PATCH] doc: -Wdelete-non-virtual-dtor supersedes -Wnon-virtual-dtor", drop explicitly enabling -Wnon-virtual-dtor in favor of -Wdelete-non-virtual-dtor, which is already enabled by -Wall. (-Wdelete-non-virtual-dtor first appeared in Clang 3.0, <https://github.com/llvm/llvm-project/commit/8bd428574c717e68a8274739d2ba0f6dc16fd0fb> "Add new warning that warns when invoking 'delete' on a polymorphic, non-final, class without a virtual destructor", and GCC 4.7, <https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=014ab419efc12a59efebd2720d79e1c055675c85> "invoke.texi: Document -Wdelete-non-virtual-dtor. [...]") Dropping the explicit setting of -Wnon-virtual-dtor (and nowhere setting it implicitly via -Weffc++) means we can get rid of lots of places that either set -Wno-non-virtual-dtor or use some pragma to ignore -Wnon-virtual-dtor. (In various places across extensions/source/activex/ and winaccessibility/, the commits f26996bd3398afa789a5491968244563ccf70908 "Silence -Werror,-Wnon-virtual-dtor in generated so_activex.h (clang-cl)" and c6086ca6535692496fbd718d174d8eb5a5dea7c7 "Silence -Werror,-Wnon-virtual-dtor in generated UAccCOM.h (clang-cl)" had singled out some includes to wrap them in pragmas. Now that those pragmas are gone again, move those includes back to where they had been prior to being singled out. And the -Wno-non-virtual-dtor in external/firebird/macos-arm64.patch.0 appeared first in ccd0e5f445d4a7d0e7aca6c23c02c61bf14510b2 "Make firebird build for macOS on arm64", which, though it doesn't state it explicitly, apparently created that patch's builds/posix/prefix.darwin_arm64 as a copy of firebird's already existing builds/posix/prefix.* files, which routinely include that warning option too, so keep it there too even if it is probably irrelevant throughout.) Change-Id: I7e4fa9f2c07e267b2ed15607905027f6b78142f3 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/143182 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
...<https://github.com/llvm/llvm-project/commit/0b89d1d59f82cf5b45c250cd5c3351e43ce35ef9> "[Sema] Add deprecation warnings for some compiler provided __has_* type traits", which hits in Boost include files, > In file included from libreofficekit/qa/tilebench/tilebench.cxx:27: > In file included from external/boost/include/boost/property_tree/json_parser.hpp:31: > In file included from workdir/UnpackedTarball/boost/boost/property_tree/json_parser.hpp:14: > In file included from external/boost/include/boost/property_tree/ptree.hpp:31: > In file included from workdir/UnpackedTarball/boost/boost/property_tree/ptree.hpp:16: > In file included from workdir/UnpackedTarball/boost/boost/property_tree/string_path.hpp:15: > In file included from workdir/UnpackedTarball/boost/boost/property_tree/id_translator.hpp:16: > In file included from external/boost/include/boost/optional.hpp:31: > In file included from workdir/UnpackedTarball/boost/boost/optional.hpp:15: > In file included from workdir/UnpackedTarball/boost/boost/optional/optional.hpp:42: > workdir/UnpackedTarball/boost/boost/type_traits/has_nothrow_constructor.hpp:27:84: error: builtin __has_nothrow_constructor is deprecated; use __is_nothrow_constructible instead [-Werror,-Wdeprecated-builtins] > template <class T> struct has_nothrow_constructor : public integral_constant<bool, BOOST_HAS_NOTHROW_CONSTRUCTOR(T)>{}; > ^ > workdir/UnpackedTarball/boost/boost/type_traits/intrinsics.hpp:199:48: note: expanded from macro 'BOOST_HAS_NOTHROW_CONSTRUCTOR' > # define BOOST_HAS_NOTHROW_CONSTRUCTOR(T) (__has_nothrow_constructor(T) && is_default_constructible<T>::value) > ^ etc. Change-Id: I08376710e25013b44279532d6e5fc256ed95cb76 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/137046 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
because I can never remember how to run this script Change-Id: I7782846d192f477096fb315e0b5416d4715d319a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/123546 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Change-Id: Ia89059eea51ca396a7c74143625ac9a6706de198 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/120773 Tested-by: Jenkins Reviewed-by: Ilmari Lauhakangas <ilmari.lauhakangas@libreoffice.org>
...like > In file included from workdir/UnpackedTarball/boost/boost/concept/assert.hpp:35, > from workdir/UnpackedTarball/boost/boost/concept_check.hpp:20, > from workdir/UnpackedTarball/boost/boost/range/concepts.hpp:19, > from workdir/UnpackedTarball/boost/boost/range/size_type.hpp:20, > from workdir/UnpackedTarball/boost/boost/range/size.hpp:21, > from workdir/UnpackedTarball/boost/boost/range/functions.hpp:20, > from workdir/UnpackedTarball/boost/boost/range/iterator_range_core.hpp:38, > from workdir/UnpackedTarball/boost/boost/range/iterator_range.hpp:13, > from external/boost/include/boost/range/iterator_range.hpp:29, > from workdir/UnpackedTarball/boost/boost/range/as_literal.hpp:22, > from workdir/UnpackedTarball/boost/boost/algorithm/string/trim.hpp:19, > from workdir/UnpackedTarball/boost/boost/algorithm/string.hpp:19, > from external/boost/include/boost/algorithm/string.hpp:29, > from sal/cppunittester/cppunittester.cxx:61: > workdir/UnpackedTarball/boost/boost/concept/detail/general.hpp: In instantiation of ‘static void boost::concepts::constraint<Model>::failed() [with Model = boost::algorithm::FinderConcept<boost::algorithm::detail::token_finderF<boost::algorithm::detail::is_any_ofF<char> >, const char*>]’: > workdir/UnpackedTarball/boost/boost/algorithm/string/iter_find.hpp:81:13: required from ‘SequenceSequenceT& boost::algorithm::iter_split(SequenceSequenceT&, RangeT&&, FinderT) [with SequenceSequenceT = std::__debug::vector<std::__cxx11::basic_string<char> >; RangeT = const char*&; FinderT = boost::algorithm::detail::token_finderF<boost::algorithm::detail::is_any_ofF<char> >]’ > workdir/UnpackedTarball/boost/boost/algorithm/string/split.hpp:158:50: required from ‘SequenceSequenceT& boost::algorithm::split(SequenceSequenceT&, RangeT&&, PredicateT, boost::algorithm::token_compress_mode_type) [with SequenceSequenceT = std::__debug::vector<std::__cxx11::basic_string<char> >; RangeT = const char*&; PredicateT = boost::algorithm::detail::is_any_ofF<char>]’ > sal/cppunittester/cppunittester.cxx:303:71: required from here > workdir/UnpackedTarball/boost/boost/concept/detail/general.hpp:47:52: error: ‘this’ pointer null [-Werror=nonnull] > 47 | static void failed() { ((Model*)0)->constraints(); } > | ~~~~~~~~~~~~~~~~~~~~~~~~^~ Change-Id: Ia22b5d510ba41bea138dfcc8d8e0b9eb1e9ad41c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/99217 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
This warning is notorious for false positives so let's disable it here. from sal/cppunittester/cppunittester.cxx:61: workdir/UnpackedTarball/boost/boost/function/function_template.hpp: In function ‘SequenceSequenceT& boost::algorithm::iter_split(SequenceSequenceT&, RangeT&&, FinderT) [with SequenceSequenceT = std::__debug::vector<std::__cxx11::basic_string<char> >; RangeT = const char*&; FinderT = boost::algorithm::detail::token_finderF<boost::algorithm::detail::is_any_ofF<char> >]’: workdir/UnpackedTarball/boost/boost/function/function_template.hpp:904:22: error: ‘*((void*)&<anonymous> +8)’ may be used uninitialized in this function [-Werror=maybe-uninitialized] 904 | std::memcpy(this->functor.data, f.functor.data, sizeof(boost::detail::function::function_buffer)); Change-Id: Id3cf9fae8db190337b6a3eb0c847c019394088ba Reviewed-on: https://gerrit.libreoffice.org/c/core/+/89349 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.stahl@cib.de>
We already get -Wdeprecated-copy (warning about implicitly defined copy functions that will in the future be deleted because other user-provided copy functions exist) automatically through -Wextra, where available. -Wdeprecated-copy-dtor (warning about implicitly defined copy functions that will in the future be deleted because of a user-provided dtor) is split off into its own warning excluded from -Wextra for somewhat unclear reasons, see the discussion at <https://gcc.gnu.org/bugzilla/buglist.cgi?quicksearch=88136> "-Wdeprecated-copy is draconian and shouldn't be in -Wall". But -Wdeprecated-copy-dtor has been useful in finding issues (esp. the Clang 10 trunk version, which, unlike the GCC 9 version, also finds copy functions that are implicitly defined because they are used from template instantiations), see 3e59716375a240576fd6d8759b32b4319506ed70 "Prevent BroadcastRecalcOnRefMoveHandler copies" and 4f98cd0f9ce9c2a331a5d34b3ef9d18f9bb6b235 "ScShapeChild has broken copy functions". We need to disable -Wdeprecated-copy-dtor in files included from external/boost, and in two compilerplugin/clang/test/ files. Change-Id: I74b159c3a046e23661473ddbfe53c92c4136a9db Reviewed-on: https://gerrit.libreoffice.org/85073 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>