user/rttr: FTBFS (armv7): variant_data_policy.h:433:9: error: ‘new’ of ‘initializer_list’ does not extend the lifetime of the underlying array
Found on armv7 using zv/gcc-next
:
...
In file included from /usr/src/packages/user/rttr/src/rttr-0.9.6/src/rttr/../rttr/detail/variant/variant_impl.h:36,
from /usr/src/packages/user/rttr/src/rttr-0.9.6/src/rttr/../rttr/variant.h:1157,
from /usr/src/packages/user/rttr/src/rttr-0.9.6/src/rttr/../rttr/detail/type/get_create_variant_func.h:32,
from /usr/src/packages/user/rttr/src/rttr-0.9.6/src/rttr/../rttr/detail/type/type_impl.h:36,
from /usr/src/packages/user/rttr/src/rttr-0.9.6/src/rttr/../rttr/type.h:1221,
from /usr/src/packages/user/rttr/src/rttr-0.9.6/src/rttr/../rttr/type:31,
from /usr/src/packages/user/rttr/src/rttr-0.9.6/src/unit_tests/variant_sequential_view/variant_sequential_view_test.cpp:30:
/usr/src/packages/user/rttr/src/rttr-0.9.6/src/rttr/../rttr/detail/variant/variant_data_policy.h: In instantiation of ‘static void rttr::detail::variant_data_policy_small<T, Converter>::create(U&&, rttr::detail::variant_data&) [with U = std::initializer_list<int>&; T = std::initializer_list<int>; Converter = rttr::detail::empty_type_converter<std::initializer_list<int> >; rttr::detail::variant_data = std::aligned_storage<8, 8>::type]’:
/usr/src/packages/user/rttr/src/rttr-0.9.6/src/rttr/../rttr/detail/variant/variant_impl.h:64:39: required from ‘rttr::variant::variant(T&&) [with T = std::initializer_list<int>&; Tp = std::initializer_list<int>]’
/usr/src/packages/user/rttr/src/rttr-0.9.6/src/unit_tests/variant_sequential_view/variant_sequential_view_test.cpp:238:23: required from here
/usr/src/packages/user/rttr/src/rttr-0.9.6/src/rttr/../rttr/detail/variant/variant_data_policy.h:433:9: error: ‘new’ of ‘initializer_list’ does not extend the lifetime of the underlying array [-Werror=init-list-lifetime]
433 | new (&dest) T(std::forward<U>(value));
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/src/packages/user/rttr/src/rttr-0.9.6/src/rttr/../rttr/detail/variant/variant_data_policy.h: In instantiation of ‘static void rttr::detail::variant_data_policy_small<T, Converter>::clone(const T&, rttr::detail::variant_data&) [with T = std::initializer_list<int>; Converter = rttr::detail::empty_type_converter<std::initializer_list<int> >; rttr::detail::variant_data = std::aligned_storage<8, 8>::type]’:
/usr/src/packages/user/rttr/src/rttr-0.9.6/src/rttr/../rttr/detail/variant/variant_data_policy.h:236:26: required from ‘static bool rttr::detail::variant_data_base_policy<T, Tp, Converter>::invoke(rttr::detail::variant_policy_operation, const rttr::detail::variant_data&, rttr::detail::argument_wrapper) [with T = std::initializer_list<int>; Tp = rttr::detail::variant_data_policy_small<std::initializer_list<int>, rttr::detail::empty_type_converter<std::initializer_list<int> > >; Converter = rttr::detail::empty_type_converter<std::initializer_list<int> >; rttr::detail::variant_data = std::aligned_storage<8, 8>::type]’
/usr/src/packages/user/rttr/src/rttr-0.9.6/src/rttr/../rttr/detail/variant/variant_impl.h:59:14: required from ‘rttr::variant::variant(T&&) [with T = std::initializer_list<int>&; Tp = std::initializer_list<int>]’
/usr/src/packages/user/rttr/src/rttr-0.9.6/src/unit_tests/variant_sequential_view/variant_sequential_view_test.cpp:238:23: required from here
/usr/src/packages/user/rttr/src/rttr-0.9.6/src/rttr/../rttr/detail/variant/variant_data_policy.h:421:9: error: ‘new’ of ‘initializer_list’ does not extend the lifetime of the underlying array [-Werror=init-list-lifetime]
421 | new (&dest) T(value);
| ^~~~~~~~~~~~~~~~~~~~
/usr/src/packages/user/rttr/src/rttr-0.9.6/src/rttr/../rttr/detail/variant/variant_data_policy.h: In instantiation of ‘static void rttr::detail::variant_data_policy_small<T, Converter>::swap(T&, rttr::detail::variant_data&) [with T = std::initializer_list<int>; Converter = rttr::detail::empty_type_converter<std::initializer_list<int> >; rttr::detail::variant_data = std::aligned_storage<8, 8>::type]’:
/usr/src/packages/user/rttr/src/rttr-0.9.6/src/rttr/../rttr/detail/variant/variant_data_policy.h:241:25: required from ‘static bool rttr::detail::variant_data_base_policy<T, Tp, Converter>::invoke(rttr::detail::variant_policy_operation, const rttr::detail::variant_data&, rttr::detail::argument_wrapper) [with T = std::initializer_list<int>; Tp = rttr::detail::variant_data_policy_small<std::initializer_list<int>, rttr::detail::empty_type_converter<std::initializer_list<int> > >; Converter = rttr::detail::empty_type_converter<std::initializer_list<int> >; rttr::detail::variant_data = std::aligned_storage<8, 8>::type]’
/usr/src/packages/user/rttr/src/rttr-0.9.6/src/rttr/../rttr/detail/variant/variant_impl.h:59:14: required from ‘rttr::variant::variant(T&&) [with T = std::initializer_list<int>&; Tp = std::initializer_list<int>]’
/usr/src/packages/user/rttr/src/rttr-0.9.6/src/unit_tests/variant_sequential_view/variant_sequential_view_test.cpp:238:23: required from here
/usr/src/packages/user/rttr/src/rttr-0.9.6/src/rttr/../rttr/detail/variant/variant_data_policy.h:426:9: error: ‘new’ of ‘initializer_list’ does not extend the lifetime of the underlying array [-Werror=init-list-lifetime]
426 | new (&dest) T(value);
| ^~~~~~~~~~~~~~~~~~~~
cc1plus: all warnings being treated as errors
make[2]: *** [src/unit_tests/CMakeFiles/unit_tests.dir/build.make:930: src/unit_tests/CMakeFiles/unit_tests.dir/variant_sequential_view/variant_sequential_view_test.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
make[1]: *** [CMakeFiles/Makefile2:279: src/unit_tests/CMakeFiles/unit_tests.dir/all] Error 2
make: *** [Makefile:156: all] Error 2
>>> ERROR: rttr: build failed