as seen e.g. at
> In file included from engine/cppuhelper/source/defaultbootstrap.cxx:27:
> In file included from engine/cppuhelper/source/servicemanager.hxx:35:
> In file included from engine/external/boost/include/boost/container/small_vector.hpp:31:
> In file included from engine/workdir/UnpackedTarball/boost/boost/container/small_vector.hpp:27:
> In file included from engine/workdir/UnpackedTarball/boost/boost/container/vector.hpp:61:
> In file included from engine/workdir/UnpackedTarball/boost/boost/move/algo/adaptive_merge.hpp:16:
> engine/workdir/UnpackedTarball/boost/boost/move/algo/detail/adaptive_sort_merge.hpp:261:17: error: unused function template 'needed_keys_count' [-Werror,-Wunused-template]
> 261 | static SizeType needed_keys_count(SizeType n_block_a, SizeType n_block_b)
> | ^~~~~~~~~~~~~~~~~
and
> In file included from engine/vcl/source/outdev/eps.cxx:22:
> In file included from engine/include/vcl/metaact.hxx:45:
> In file included from engine/workdir/UnpackedTarball/boost/boost/container/vector.hpp:61:
> In file included from engine/workdir/UnpackedTarball/boost/boost/move/algo/adaptive_merge.hpp:16:
> engine/workdir/UnpackedTarball/boost/boost/move/algo/detail/adaptive_sort_merge.hpp:261:17: error: unused function template 'needed_keys_count' [-Werror,-Wunused-template]
> 261 | static SizeType needed_keys_count(SizeType n_block_a, SizeType n_block_b)
> | ^~~~~~~~~~~~~~~~~
Signed-off-by: Stephan Bergmann <stephan.bergmann@collabora.com>
Change-Id: I1c81650c82df717317846769ea3ac016d9a14652
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/7281
Reviewed-by: Noel Grandin <noel.grandin@collabora.com>
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
(cherry picked from commit fd3a8cc0417525806d45522fc6752c6678b2d433)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/208736
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
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 f26996bd33 "Silence
-Werror,-Wnon-virtual-dtor in generated so_activex.h (clang-cl)" and
c6086ca653 "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
ccd0e5f445 "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>
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
3e59716375 "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>
...messages like:
> workdir/UnpackedTarball/boost\boost/bimap/detail/map_view_iterator.hpp(138,18): error: unqualified friend declaration referring to type outside of the nearest enclosing namespace is a Microsoft extension; add a nested name specifier [-Werror,-Wmicrosoft-unqualified-friend]
> friend class iterator_core_access;
> ^
> ::boost::iterators::
Change-Id: I393b7c95943a55d5f755cfed41e0b7bc3306c568
Reviewed-on: https://gerrit.libreoffice.org/47673
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
...that appears to only be necessary for Clang <= 3.4, so no longer needed since
fa7b7f7393 "Document that Clang 3.4.2 is known to
be too old"
Change-Id: I09361f6ffc23b8d20d65d3c84d9003719e2159f8
Reviewed-on: https://gerrit.libreoffice.org/46787
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
...as required by clang-cl:
> [build CXX] avmedia/source/framework/modeltools.cxx
> In file included from C:/lo64/core/avmedia/source/framework/modeltools.cxx:29:
> In file included from C:/lo64/core/external/boost/include\boost/exception/diagnostic_information.hpp:23:
> In file included from C:/lo64/core/workdir/UnpackedTarball/boost\boost/exception/diagnostic_information.hpp:17:
> C:/lo64/core/workdir/UnpackedTarball/boost\boost/exception/info.hpp(103,13): error: 'boost::exception_detail::error_info_container_impl' has virtual functions but non-virtual destructor [-Werror,-Wnon-virtual-dtor]
> ~error_info_container_impl() throw()
> ^
> C:/lo64/core/workdir/UnpackedTarball/boost\boost/exception/info.hpp(172,21): error: delete called on non-final 'boost::exception_detail::error_info_container_impl' that has virtual functions but non-virtual destructor [-Werror,-Wdelete-non-virtual-dtor]
> delete this;
> ^
> 2 errors generated.
Change-Id: I026f7e72d027becb68ac9118616ed6d8f2ecbf80
Reviewed-on: https://gerrit.libreoffice.org/41225
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
...since <http://llvm.org/viewvc/llvm-project?view=revision&revision=301647>
"Use the -Wunknown-warning-option group for the 'unknown warning group'
diagnostic in #pragma diagnostic".
* external/boost/include/boost/{locale.hpp,locale/gnu_gettext.hpp} would have
been removed by 'make cmd cmd=bin/gen-boost-headers' as they are still unused
from c25eee4496 "build boost::locale library",
but there's reportedly a patch in Gerrit to actually use them, so I fixed them
manually for now.
* The deviating comment style is to keep lines no wider than 80 characters.
Change-Id: I64603ae8d8a82781eda46f12c9dd5c68dcf395b9
...like
workdir/UnpackedTarball/liborcus/m4/boost.m4:#include <boost/version.hpp>
which would then be mis-parsed by
grep -o '\bboost.*\.\(h\|hpp\|ipp\)'
to a HEADER of
boost.m4:#include <boost/version.hpp
instead of just
boost/version.hpp
(-h is a non-standard GNU grep extension, but so is the already used -r. An
alternative fix would be to replace the later grep -o with something like
grep -o '\bboost[^#]*\.\(h\|hpp\|ipp\)'
instead.)
Change-Id: I0b41ed520b2fed70e8982abc0e84a34804c02549