external/boost/UnpackedTarball_boost.mk | 2 + external/boost/constexpr.patch.0 | 33 ++++++++++++++++++++++++++++++++ 2 files changed, 35 insertions(+)
New commits: commit ff2a90379fc14cc30e60e829ed20752b8c2fa02a Author: Stephan Bergmann <sberg...@redhat.com> AuthorDate: Wed Aug 3 17:12:34 2022 +0200 Commit: Stephan Bergmann <sberg...@redhat.com> CommitDate: Wed Aug 3 21:40:48 2022 +0200 external/boost: Fix ill-formed constant expression errors ...with recent Clang 16 trunk since <https://github.com/llvm/llvm-project/commit/b3645353041818f61e2580635409ddb81ff5a272> "[Clang] Diagnose ill-formed constant expression when setting a non fixed enum to a value outside the range of the enumeration values", causing > In file included from IWORKTable.cpp:10: > In file included from ./IWORKTable.h:21: > In file included from ./IWORKTypes.h:20: > In file included from external/boost/include/boost/variant.hpp:31: > In file included from workdir/UnpackedTarball/boost/boost/variant.hpp:17: > In file included from workdir/UnpackedTarball/boost/boost/variant/variant.hpp:34: > In file included from workdir/UnpackedTarball/boost/boost/variant/detail/hash_variant.hpp:22: > In file included from workdir/UnpackedTarball/boost/boost/variant/apply_visitor.hpp:16: > In file included from workdir/UnpackedTarball/boost/boost/variant/detail/apply_visitor_unary.hpp:21: > In file included from workdir/UnpackedTarball/boost/boost/mpl/advance.hpp:19: > In file included from workdir/UnpackedTarball/boost/boost/mpl/negate.hpp:17: > In file included from workdir/UnpackedTarball/boost/boost/mpl/integral_c.hpp:32: > workdir/UnpackedTarball/boost/boost/mpl/aux_/integral_wrapper.hpp:73:31: error: non-type template argument is not a constant expression > typedef AUX_WRAPPER_INST( BOOST_MPL_AUX_STATIC_CAST(AUX_WRAPPER_VALUE_TYPE, (value - 1)) ) prior; > ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > workdir/UnpackedTarball/boost/boost/mpl/aux_/static_cast.hpp:24:47: note: expanded from macro 'BOOST_MPL_AUX_STATIC_CAST' > # define BOOST_MPL_AUX_STATIC_CAST(T, expr) static_cast<T>(expr) > ^ > workdir/UnpackedTarball/boost/boost/mpl/integral_c.hpp:31:54: note: expanded from macro 'AUX_WRAPPER_INST' > #define AUX_WRAPPER_INST(value) AUX_WRAPPER_NAME< T, value > > ^~~~~ > workdir/UnpackedTarball/boost/boost/numeric/conversion/detail/meta.hpp:30:46: note: in instantiation of template class 'mpl_::integral_c<boost::numeric::udt_builtin_mixture_enum, boost::numeric::builtin_to_builtin>' requested here > enum { x = ( BOOST_MPL_AUX_VALUE_WKND(T1)::value == BOOST_MPL_AUX_VALUE_WKND(T2)::value ) }; > ^ > workdir/UnpackedTarball/boost/boost/mpl/if.hpp:63:68: note: in instantiation of template class 'boost::numeric::convdetail::equal_to<mpl_::integral_c<boost::numeric::udt_builtin_mixture_enum, boost::numeric::builtin_to_builtin>, mpl_::integral_c<boost::numeric::udt_builtin_mixture_enum, boost::numeric::builtin_to_builtin>>' requested here > BOOST_MPL_AUX_STATIC_CAST(bool, BOOST_MPL_AUX_VALUE_WKND(T1)::value) > ^ > workdir/UnpackedTarball/boost/boost/mpl/eval_if.hpp:37:22: note: in instantiation of template class 'boost::mpl::if_<boost::numeric::convdetail::equal_to<mpl_::integral_c<boost::numeric::udt_builtin_mixture_enum, boost::numeric::builtin_to_builtin>, mpl_::integral_c<boost::numeric::udt_builtin_mixture_enum, boost::numeric::builtin_to_builtin>>, boost::mpl::identity<boost::numeric::convdetail::get_subranged_BuiltIn2BuiltIn<int, unsigned long>>, boost::mpl::eval_if<boost::numeric::convdetail::equal_to<mpl_::integral_c<boost::numeric::udt_builtin_mixture_enum, boost::numeric::builtin_to_builtin>, mpl_::integral_c<boost::numeric::udt_builtin_mixture_enum, boost::numeric::builtin_to_udt>>, boost::mpl::identity<boost::mpl::identity<boost::numeric::convdetail::subranged_BuiltIn2Udt<int, unsigned long>>>, boost::mpl::if_<boost::numeric::convdetail::equal_to<mpl_::integral_c<boost::numeric::udt_builtin_mixture_enum, boost::numeric::builtin_to_builtin>, mpl_::integral_c<boost::numeric::u dt_builtin_mixture_enum, boost::numeric::udt_to_builtin>>, boost::mpl::identity<boost::numeric::convdetail::subranged_Udt2BuiltIn<int, unsigned long>>, boost::mpl::identity<boost::numeric::convdetail::subranged_Udt2Udt<int, unsigned long>>>>>' requested here > typedef typename if_<C,F1,F2>::type f_; > ^ > workdir/UnpackedTarball/boost/boost/numeric/conversion/detail/meta.hpp:81:12: note: in instantiation of template class 'boost::mpl::eval_if<boost::numeric::convdetail::equal_to<mpl_::integral_c<boost::numeric::udt_builtin_mixture_enum, boost::numeric::builtin_to_builtin>, mpl_::integral_c<boost::numeric::udt_builtin_mixture_enum, boost::numeric::builtin_to_builtin>>, boost::mpl::identity<boost::numeric::convdetail::get_subranged_BuiltIn2BuiltIn<int, unsigned long>>, boost::mpl::eval_if<boost::numeric::convdetail::equal_to<mpl_::integral_c<boost::numeric::udt_builtin_mixture_enum, boost::numeric::builtin_to_builtin>, mpl_::integral_c<boost::numeric::udt_builtin_mixture_enum, boost::numeric::builtin_to_udt>>, boost::mpl::identity<boost::mpl::identity<boost::numeric::convdetail::subranged_BuiltIn2Udt<int, unsigned long>>>, boost::mpl::if_<boost::numeric::convdetail::equal_to<mpl_::integral_c<boost::numeric::udt_builtin_mixture_enum, boost::numeric::builtin_to_builtin>, mpl_::integ ral_c<boost::numeric::udt_builtin_mixture_enum, boost::numeric::udt_to_builtin>>, boost::mpl::identity<boost::numeric::convdetail::subranged_Udt2BuiltIn<int, unsigned long>>, boost::mpl::identity<boost::numeric::convdetail::subranged_Udt2Udt<int, unsigned long>>>>>' requested here > mpl::eval_if<is_case0,Case0TypeQ,choose_1_2_3Q>::type > ^ > workdir/UnpackedTarball/boost/boost/numeric/conversion/detail/udt_builtin_mixture.hpp:41:7: note: in instantiation of template class 'boost::numeric::convdetail::ct_switch4<mpl_::integral_c<boost::numeric::udt_builtin_mixture_enum, boost::numeric::builtin_to_builtin>, mpl_::integral_c<boost::numeric::udt_builtin_mixture_enum, boost::numeric::builtin_to_builtin>, mpl_::integral_c<boost::numeric::udt_builtin_mixture_enum, boost::numeric::builtin_to_udt>, mpl_::integral_c<boost::numeric::udt_builtin_mixture_enum, boost::numeric::udt_to_builtin>, boost::numeric::convdetail::get_subranged_BuiltIn2BuiltIn<int, unsigned long>, boost::mpl::identity<boost::numeric::convdetail::subranged_BuiltIn2Udt<int, unsigned long>>, boost::mpl::identity<boost::numeric::convdetail::subranged_Udt2BuiltIn<int, unsigned long>>, boost::mpl::identity<boost::numeric::convdetail::subranged_Udt2Udt<int, unsigned long>>>' requested here > ct_switch4<UdtMixture > ^ > workdir/UnpackedTarball/boost/boost/numeric/conversion/detail/is_subranged.hpp:205:9: note: (skipping 3 contexts in backtrace; use -ftemplate-backtrace-limit=0 to see all) > for_udt_builtin_mixture<udt_builtin_mixture, BuiltIn2BuiltInQ, BuiltIn2UdtQ, Udt2BuiltInQ, Udt2UdtQ>::type > ^ > workdir/UnpackedTarball/boost/boost/numeric/conversion/conversion_traits.hpp:22:7: note: in instantiation of template class 'boost::numeric::convdetail::non_trivial_traits_impl<int, unsigned long>' requested here > : convdetail::get_conversion_traits<T,S>::type > ^ > workdir/UnpackedTarball/boost/boost/numeric/conversion/detail/converter.hpp:584:22: note: in instantiation of template class 'boost::numeric::conversion_traits<int, unsigned long>' requested here > typedef typename Traits::trivial trivial ; > ^ > workdir/UnpackedTarball/boost/boost/numeric/conversion/converter.hpp:29:32: note: in instantiation of template class 'boost::numeric::convdetail::get_converter_impl<boost::numeric::conversion_traits<int, unsigned long>, boost::numeric::def_overflow_handler, boost::numeric::Trunc<unsigned long>, boost::numeric::raw_converter<boost::numeric::conversion_traits<int, unsigned long>>, boost::numeric::UseInternalRangeChecker>' requested here > struct converter : convdetail::get_converter_impl<Traits, > ^ > workdir/UnpackedTarball/boost/boost/numeric/conversion/cast.hpp:53:16: note: in instantiation of template class 'boost::numeric::converter<int, unsigned long, boost::numeric::conversion_traits<int, unsigned long>, boost::numeric::def_overflow_handler, boost::numeric::Trunc<unsigned long>>' requested here > return converter::convert(arg); > ^ > IWORKTable.cpp:782:45: note: in instantiation of function template specialization 'boost::numeric_cast<int, unsigned long>' requested here > cellProps.insert("librevenge:column", numeric_cast<int>(c)); > ^ > workdir/UnpackedTarball/boost/boost/mpl/aux_/integral_wrapper.hpp:73:31: note: integer value -1 is outside the valid range of values [0, 3] for this enumeration type > typedef AUX_WRAPPER_INST( BOOST_MPL_AUX_STATIC_CAST(AUX_WRAPPER_VALUE_TYPE, (value - 1)) ) prior; > ^ > workdir/UnpackedTarball/boost/boost/mpl/aux_/static_cast.hpp:24:47: note: expanded from macro 'BOOST_MPL_AUX_STATIC_CAST' > # define BOOST_MPL_AUX_STATIC_CAST(T, expr) static_cast<T>(expr) > ^ etc. when building ExternalProject_libetonyek Change-Id: I1830c1182a7ab966bb068b5eb97db099c9678fe8 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/137757 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sberg...@redhat.com> diff --git a/external/boost/UnpackedTarball_boost.mk b/external/boost/UnpackedTarball_boost.mk index 384782f586f0..bf1b574da0e7 100644 --- a/external/boost/UnpackedTarball_boost.mk +++ b/external/boost/UnpackedTarball_boost.mk @@ -33,6 +33,8 @@ boost_patches += msvc2017.patch.0 boost_patches += libc++.patch.0 +boost_patches += constexpr.patch.0 + $(eval $(call gb_UnpackedTarball_UnpackedTarball,boost)) $(eval $(call gb_UnpackedTarball_set_tarball,boost,$(BOOST_TARBALL))) diff --git a/external/boost/constexpr.patch.0 b/external/boost/constexpr.patch.0 new file mode 100644 index 000000000000..f641e6e1dcc1 --- /dev/null +++ b/external/boost/constexpr.patch.0 @@ -0,0 +1,33 @@ +--- boost/numeric/conversion/int_float_mixture_enum.hpp ++++ boost/numeric/conversion/int_float_mixture_enum.hpp +@@ -12,7 +12,7 @@ + + namespace boost { namespace numeric + { +- enum int_float_mixture_enum ++ enum int_float_mixture_enum: int + { + integral_to_integral + ,integral_to_float +--- boost/numeric/conversion/sign_mixture_enum.hpp ++++ boost/numeric/conversion/sign_mixture_enum.hpp +@@ -12,7 +12,7 @@ + + namespace boost { namespace numeric + { +- enum sign_mixture_enum ++ enum sign_mixture_enum: int + { + unsigned_to_unsigned + ,signed_to_signed +--- boost/numeric/conversion/udt_builtin_mixture_enum.hpp ++++ boost/numeric/conversion/udt_builtin_mixture_enum.hpp +@@ -12,7 +12,7 @@ + + namespace boost { namespace numeric + { +- enum udt_builtin_mixture_enum ++ enum udt_builtin_mixture_enum: int + { + builtin_to_builtin + ,builtin_to_udt