Age | Commit message (Collapse) | Author |
|
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>
|
|
...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>
|
|
Change-Id: I25703979ebe94649f9cf1464d282b21a70cfe1fa
Reviewed-on: https://gerrit.libreoffice.org/58041
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
|
|
...reporting such delights as
> [CXX] sal/cppunittester/cppunittester.cxx
> In file included from workdir/UnpackedTarball/boost/boost/mpl/aux_/na_assert.hpp:23,
[...]
> from external/boost/include/boost/algorithm/string.hpp:25,
> from sal/cppunittester/cppunittester.cxx:60:
> workdir/UnpackedTarball/boost/boost/mpl/assert.hpp:188:21: error: unnecessary parentheses in declaration of ‘assert_arg’ [-Werror=parentheses]
> failed ************ (Pred::************
> ^
where boost/mpl/assert.hpp contains
> template< typename Pred >
> failed ************ (Pred::************
> assert_arg( void (*)(Pred), typename assert_arg_pred<Pred>::type )
> );
Change-Id: I6976b2cc23f1d309d27d3fde9098b10c9d877599
Reviewed-on: https://gerrit.libreoffice.org/48386
Tested-by: Jenkins <ci@libreoffice.org>
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
fa7b7f73938e837af2765f8a03f07e404046877b "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 c25eee44966703cb27d632bccb39b20978341ffd "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
|