Source: xtensor
Version: 0.23.10-5
Severity: normal
Control: forwarded -1 https://github.com/xtensor-stack/xtensor/issues/2434

A build of xtensor 0.23.10 is failing on i386 (i686) when xsimd support is 
activated (xsimd 7.5.0).

An excerpt from the build log is,
https://buildd.debian.org/status/fetch.php?pkg=xtensor&arch=i386&ver=0.23.10-5&stamp=1631562580&raw=0


[  4%] Building CXX object 
test/CMakeFiles/test_xtensor_lib.dir/test_xadaptor_semantic.cpp.o
cd /<<PKGBUILDDIR>>/obj-i686-linux-gnu/test && /usr/bin/c++ 
-DXSIMD_ENABLE_XTL_COMPLEX -DXTENSOR_USE_XSIMD -I/<<PKGBUILDDIR>>/include 
-isystem 
/<<PKGBUILDDIR>>/obj-i686-linux-gnu/test/googletest-src/googletest/include 
-isystem /<<PKGBUILDDIR>>/obj-i686-linux-gnu/test/googletest-src/googletest -g 
-O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat 
-Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -march=native 
-std=c++14 -Wunused-parameter -Wextra -Wreorder -Wconversion -Wsign-conversion 
-Wold-style-cast -Wunused-variable -ftemplate-backtrace-limit=0 
-DGTEST_HAS_PTHREAD=1 -o 
CMakeFiles/test_xtensor_lib.dir/test_xadaptor_semantic.cpp.o -c 
/<<PKGBUILDDIR>>/test/test_xadaptor_semantic.cpp
...
In file included from /<<PKGBUILDDIR>>/include/xtensor/xsemantic.hpp:16,
                 from /<<PKGBUILDDIR>>/include/xtensor/xstrided_view.hpp:25,
                 from /<<PKGBUILDDIR>>/include/xtensor/xgenerator.hpp:27,
                 from /<<PKGBUILDDIR>>/include/xtensor/xbuilder.hpp:31,
                 from /<<PKGBUILDDIR>>/include/xtensor/xmanipulation.hpp:13,
                 from /<<PKGBUILDDIR>>/include/xtensor/xmath.hpp:28,
                 from /<<PKGBUILDDIR>>/include/xtensor/xcontainer.hpp:25,
                 from /<<PKGBUILDDIR>>/include/xtensor/xarray.hpp:20,
                 from /<<PKGBUILDDIR>>/test/test_extended_xsort.cpp:15:
/<<PKGBUILDDIR>>/include/xtensor/xassign.hpp: In instantiation of ‘static void 
xt::strided_loop_assigner<simd>::run(E1&, const E2&) [with E1 = 
xt::xtensor_container<xt::uvector<long int, std::allocator<long int> >, 1, 
xt::layout_type::row_major, xt::xtensor_expression_tag>; E2 = 
xt::xtensor_view<xt::xiterator_adaptor<long int*, const long int*>, 1, 
xt::layout_type::row_major, xt::xtensor_expression_tag>; bool simd = true]’:
/<<PKGBUILDDIR>>/include/xtensor/xassign.hpp:399:60:   required from ‘static 
void 
xt::xexpression_assigner_base<xt::xtensor_expression_tag>::assign_data(xt::xexpression<D>&,
 const xt::xexpression<E2>&, bool) [with E1 = 
xt::xtensor_container<xt::uvector<long int, std::allocator<long int> >, 1, 
xt::layout_type::row_major, xt::xtensor_expression_tag>; E2 = 
xt::xtensor_view<xt::xiterator_adaptor<long int*, const long int*>, 1, 
xt::layout_type::row_major, xt::xtensor_expression_tag>]’
/<<PKGBUILDDIR>>/include/xtensor/xassign.hpp:413:31:   required from ‘static 
void xt::xexpression_assigner<Tag>::assign_xexpression(E1&, const E2&) [with E1 
= xt::xexpression<xt::xtensor_container<xt::uvector<long int, 
std::allocator<long int> >, 1, xt::layout_type::row_major, 
xt::xtensor_expression_tag> >; E2 = 
xt::xexpression<xt::xtensor_view<xt::xiterator_adaptor<long int*, const long 
int*>, 1, xt::layout_type::row_major, xt::xtensor_expression_tag> >; Tag = 
xt::xtensor_expression_tag]’
/<<PKGBUILDDIR>>/include/xtensor/xassign.hpp:204:58:   required from 
‘xt::assign_xexpression<xt::xtensor_container<xt::uvector<long int, 
std::allocator<long int> >, 1, xt::layout_type::row_major, 
xt::xtensor_expression_tag>, xt::xtensor_view<xt::xiterator_adaptor<long int*, 
const long int*>, 1, xt::layout_type::row_major, xt::xtensor_expression_tag> 
>::<lambda(auto:65)> [with auto:65 = xtl::identity]’
/usr/include/xtl/xmeta_utils.hpp:597:22:   required from ‘decltype(auto) 
xtl::mpl::static_if(std::false_type, const TF&, const FF&) [with TF = 
xt::assign_xexpression<xt::xtensor_container<xt::uvector<long int, 
std::allocator<long int> >, 1, xt::layout_type::row_major, 
xt::xtensor_expression_tag>, xt::xtensor_view<xt::xiterator_adaptor<long int*, 
const long int*>, 1, xt::layout_type::row_major, xt::xtensor_expression_tag> 
>::<lambda(auto:64)>; FF = 
xt::assign_xexpression<xt::xtensor_container<xt::uvector<long int, 
std::allocator<long int> >, 1, xt::layout_type::row_major, 
xt::xtensor_expression_tag>, xt::xtensor_view<xt::xiterator_adaptor<long int*, 
const long int*>, 1, xt::layout_type::row_major, xt::xtensor_expression_tag> 
>::<lambda(auto:65)>; std::false_type = std::integral_constant<bool, false>]’
/usr/include/xtl/xmeta_utils.hpp:603:29:   required from ‘decltype(auto) 
xtl::mpl::static_if(const TF&, const FF&) [with bool cond = false; TF = 
xt::assign_xexpression<xt::xtensor_container<xt::uvector<long int, 
std::allocator<long int> >, 1, xt::layout_type::row_major, 
xt::xtensor_expression_tag>, xt::xtensor_view<xt::xiterator_adaptor<long int*, 
const long int*>, 1, xt::layout_type::row_major, xt::xtensor_expression_tag> 
>::<lambda(auto:64)>; FF = 
xt::assign_xexpression<xt::xtensor_container<xt::uvector<long int, 
std::allocator<long int> >, 1, xt::layout_type::row_major, 
xt::xtensor_expression_tag>, xt::xtensor_view<xt::xiterator_adaptor<long int*, 
const long int*>, 1, xt::layout_type::row_major, xt::xtensor_expression_tag> 
>::<lambda(auto:65)>]’
/<<PKGBUILDDIR>>/include/xtensor/xassign.hpp:198:58:   required from ‘void 
xt::assign_xexpression(xt::xexpression<D>&, const xt::xexpression<E2>&) [with 
E1 = xt::xtensor_container<xt::uvector<long int, std::allocator<long int> >, 1, 
xt::layout_type::row_major, xt::xtensor_expression_tag>; E2 = 
xt::xtensor_view<xt::xiterator_adaptor<long int*, const long int*>, 1, 
xt::layout_type::row_major, xt::xtensor_expression_tag>]’
/<<PKGBUILDDIR>>/include/xtensor/xsemantic.hpp:623:31:   required from 
‘xt::xcontainer_semantic<D>::derived_type& 
xt::xcontainer_semantic<D>::assign_xexpression(const xt::xexpression<E>&) [with 
E = xt::xtensor_view<xt::xiterator_adaptor<long int*, const long int*>, 1, 
xt::layout_type::row_major, xt::xtensor_expression_tag>; D = 
xt::xtensor_container<xt::uvector<long int, std::allocator<long int> >, 1, 
xt::layout_type::row_major, xt::xtensor_expression_tag>; 
xt::xcontainer_semantic<D>::derived_type = 
xt::xtensor_container<xt::uvector<long int, std::allocator<long int> >, 1, 
xt::layout_type::row_major, xt::xtensor_expression_tag>]’
/<<PKGBUILDDIR>>/include/xtensor/xsemantic.hpp:489:55:   required from 
‘xt::xsemantic_base<D>::derived_type& xt::xsemantic_base<D>::assign(const 
xt::xexpression<E>&) [with E = xt::xtensor_view<xt::xiterator_adaptor<long 
int*, const long int*>, 1, xt::layout_type::row_major, 
xt::xtensor_expression_tag>; D = xt::xtensor_container<xt::uvector<long int, 
std::allocator<long int> >, 1, xt::layout_type::row_major, 
xt::xtensor_expression_tag>; xt::xsemantic_base<D>::derived_type = 
xt::xtensor_container<xt::uvector<long int, std::allocator<long int> >, 1, 
xt::layout_type::row_major, xt::xtensor_expression_tag>]’
/<<PKGBUILDDIR>>/include/xtensor/xtensor.hpp:550:30:   required from 
‘xt::xtensor_container<EC, N, L, Tag>::xtensor_container(const 
xt::xexpression<E>&) [with E = xt::xtensor_view<xt::xiterator_adaptor<long 
int*, const long int*>, 1, xt::layout_type::row_major, 
xt::xtensor_expression_tag>; EC = xt::uvector<long int, std::allocator<long 
int> >; unsigned int N = 1; xt::layout_type L = xt::layout_type::row_major; Tag 
= xt::xtensor_expression_tag]’
/<<PKGBUILDDIR>>/include/xtensor/xsemantic.hpp:600:24:   required from 
‘xt::xsemantic_base<D>::derived_type& xt::xsemantic_base<D>::operator=(const 
xt::xexpression<E>&) [with E = xt::xtensor_view<xt::xiterator_adaptor<long 
int*, const long int*>, 1, xt::layout_type::row_major, 
xt::xtensor_expression_tag>; D = xt::xtensor_container<xt::uvector<long int, 
std::allocator<long int> >, 1, xt::layout_type::row_major, 
xt::xtensor_expression_tag>; xt::xsemantic_base<D>::derived_type = 
xt::xtensor_container<xt::uvector<long int, std::allocator<long int> >, 1, 
xt::layout_type::row_major, xt::xtensor_expression_tag>]’
/<<PKGBUILDDIR>>/include/xtensor/xsemantic.hpp:647:36:   required from 
‘xt::xcontainer_semantic<D>::derived_type& 
xt::xcontainer_semantic<D>::operator=(const xt::xexpression<E>&) [with E = 
xt::xtensor_view<xt::xiterator_adaptor<long int*, const long int*>, 1, 
xt::layout_type::row_major, xt::xtensor_expression_tag>; D = 
xt::xtensor_container<xt::uvector<long int, std::allocator<long int> >, 1, 
xt::layout_type::row_major, xt::xtensor_expression_tag>; 
xt::xcontainer_semantic<D>::derived_type = 
xt::xtensor_container<xt::uvector<long int, std::allocator<long int> >, 1, 
xt::layout_type::row_major, xt::xtensor_expression_tag>]’
/<<PKGBUILDDIR>>/include/xtensor/xtensor.hpp:560:40:   required from 
‘xt::xtensor_container<EC, N, L, Tag>::self_type& xt::xtensor_container<EC, N, 
L, Tag>::operator=(const xt::xexpression<E>&) [with E = 
xt::xtensor_view<xt::xiterator_adaptor<long int*, const long int*>, 1, 
xt::layout_type::row_major, xt::xtensor_expression_tag>; EC = xt::uvector<long 
int, std::allocator<long int> >; unsigned int N = 1; xt::layout_type L = 
xt::layout_type::row_major; Tag = xt::xtensor_expression_tag; 
xt::xtensor_container<EC, N, L, Tag>::self_type = 
xt::xtensor_container<xt::uvector<long int, std::allocator<long int> >, 1, 
xt::layout_type::row_major, xt::xtensor_expression_tag>]’
/<<PKGBUILDDIR>>/include/xtensor/xsort.hpp:480:17:   required from ‘auto 
xt::partition(const xt::xexpression<D>&, const C&, std::ptrdiff_t) [with E = 
xt::xtensor_view<xt::xiterator_adaptor<long int*, const long int*>, 1, 
xt::layout_type::row_major, xt::xtensor_expression_tag>; C = 
std::array<unsigned int, 2>; <template-parameter-1-3> = int; std::ptrdiff_t = 
int]’
/<<PKGBUILDDIR>>/include/xtensor/xsort.hpp:709:40:   required from ‘typename 
std::decay<_Tp>::type::value_type xt::median(E&&) [with E = 
xt::xarray_container<xt::uvector<long int, xsimd::aligned_allocator<long int, 
32> >, xt::layout_type::row_major, xt::svector<unsigned int, 4, 
std::allocator<unsigned int>, true>, xt::xtensor_expression_tag>&; typename 
std::decay<_Tp>::type::value_type = long int]’
/<<PKGBUILDDIR>>/test/test_extended_xsort.cpp:110:9:   required from here
/<<PKGBUILDDIR>>/include/xtensor/xassign.hpp:957:82: error: invalid use of 
incomplete type ‘xt::xstepper<const xt::xtensor_view<xt::xiterator_adaptor<long 
int*, const long int*>, 1, xt::layout_type::row_major, 
xt::xtensor_expression_tag> >::simd_return_type<long int>’ {aka ‘class 
xsimd::batch<long int, 8>’}
  957 |                 res_stepper.store_simd(fct_stepper.template 
step_simd<value_type>());
      |                                        
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
In file included from /usr/include/xsimd/types/xsimd_base.hpp:26,
                 from /usr/include/xsimd/types/xsimd_traits.hpp:16,
                 from /usr/include/xsimd/xsimd.hpp:16,
                 from /<<PKGBUILDDIR>>/include/xtensor/xtensor_config.hpp:75,
                 from /<<PKGBUILDDIR>>/include/xtensor/xbuffer_adaptor.hpp:21,
                 from /<<PKGBUILDDIR>>/include/xtensor/xarray.hpp:19,
                 from /<<PKGBUILDDIR>>/test/test_extended_xsort.cpp:15:
/usr/include/xsimd/types/xsimd_utils.hpp:26:11: note: declaration of 
‘xt::xstepper<const xt::xtensor_view<xt::xiterator_adaptor<long int*, const 
long int*>, 1, xt::layout_type::row_major, xt::xtensor_expression_tag> 
>::simd_return_type<long int>’ {aka ‘class xsimd::batch<long int, 8>’}
   26 |     class batch;
      |           ^~~~~
In file included from /<<PKGBUILDDIR>>/include/xtensor/xarray.hpp:20,
                 from /<<PKGBUILDDIR>>/test/test_extended_xsort.cpp:15:
/<<PKGBUILDDIR>>/include/xtensor/xcontainer.hpp: In instantiation of 
‘xt::container_simd_return_type_t<typename 
xt::xcontainer_inner_types<D>::storage_type, typename 
xt::xcontainer_inner_types<D>::storage_type::value_type, requested_type> 
xt::xcontainer<D>::load_simd(xt::xcontainer<D>::size_type) const [with align = 
xsimd::unaligned_mode; requested_type = long int; unsigned int N = 8; D = 
xt::xtensor_view<xt::xiterator_adaptor<long int*, const long int*>, 1, 
xt::layout_type::row_major, xt::xtensor_expression_tag>; 
xt::container_simd_return_type_t<typename 
xt::xcontainer_inner_types<D>::storage_type, typename 
xt::xcontainer_inner_types<D>::storage_type::value_type, requested_type> = 
xsimd::batch<long int, 8>; typename 
xt::xcontainer_inner_types<D>::storage_type::value_type = long int; typename 
xt::xcontainer_inner_types<D>::storage_type = xt::xiterator_adaptor<long int*, 
const long int*>; xt::xcontainer<D>::size_type = unsigned int]’:
/<<PKGBUILDDIR>>/include/xtensor/xassign.hpp:671:104:   required from ‘static 
void xt::linear_assigner<simd_assign>::run(E1&, const E2&) [with E1 = 
xt::xtensor_container<xt::uvector<long int, std::allocator<long int> >, 1, 
xt::layout_type::row_major, xt::xtensor_expression_tag>; E2 = 
xt::xtensor_view<xt::xiterator_adaptor<long int*, const long int*>, 1, 
xt::layout_type::row_major, xt::xtensor_expression_tag>; bool simd_assign = 
true]’
/<<PKGBUILDDIR>>/include/xtensor/xassign.hpp:390:50:   required from ‘static 
void 
xt::xexpression_assigner_base<xt::xtensor_expression_tag>::assign_data(xt::xexpression<D>&,
 const xt::xexpression<E2>&, bool) [with E1 = 
xt::xtensor_container<xt::uvector<long int, std::allocator<long int> >, 1, 
xt::layout_type::row_major, xt::xtensor_expression_tag>; E2 = 
xt::xtensor_view<xt::xiterator_adaptor<long int*, const long int*>, 1, 
xt::layout_type::row_major, xt::xtensor_expression_tag>]’
/<<PKGBUILDDIR>>/include/xtensor/xassign.hpp:413:31:   required from ‘static 
void xt::xexpression_assigner<Tag>::assign_xexpression(E1&, const E2&) [with E1 
= xt::xexpression<xt::xtensor_container<xt::uvector<long int, 
std::allocator<long int> >, 1, xt::layout_type::row_major, 
xt::xtensor_expression_tag> >; E2 = 
xt::xexpression<xt::xtensor_view<xt::xiterator_adaptor<long int*, const long 
int*>, 1, xt::layout_type::row_major, xt::xtensor_expression_tag> >; Tag = 
xt::xtensor_expression_tag]’
/<<PKGBUILDDIR>>/include/xtensor/xassign.hpp:204:58:   required from 
‘xt::assign_xexpression<xt::xtensor_container<xt::uvector<long int, 
std::allocator<long int> >, 1, xt::layout_type::row_major, 
xt::xtensor_expression_tag>, xt::xtensor_view<xt::xiterator_adaptor<long int*, 
const long int*>, 1, xt::layout_type::row_major, xt::xtensor_expression_tag> 
>::<lambda(auto:65)> [with auto:65 = xtl::identity]’
/usr/include/xtl/xmeta_utils.hpp:597:22:   required from ‘decltype(auto) 
xtl::mpl::static_if(std::false_type, const TF&, const FF&) [with TF = 
xt::assign_xexpression<xt::xtensor_container<xt::uvector<long int, 
std::allocator<long int> >, 1, xt::layout_type::row_major, 
xt::xtensor_expression_tag>, xt::xtensor_view<xt::xiterator_adaptor<long int*, 
const long int*>, 1, xt::layout_type::row_major, xt::xtensor_expression_tag> 
>::<lambda(auto:64)>; FF = 
xt::assign_xexpression<xt::xtensor_container<xt::uvector<long int, 
std::allocator<long int> >, 1, xt::layout_type::row_major, 
xt::xtensor_expression_tag>, xt::xtensor_view<xt::xiterator_adaptor<long int*, 
const long int*>, 1, xt::layout_type::row_major, xt::xtensor_expression_tag> 
>::<lambda(auto:65)>; std::false_type = std::integral_constant<bool, false>]’
/usr/include/xtl/xmeta_utils.hpp:603:29:   required from ‘decltype(auto) 
xtl::mpl::static_if(const TF&, const FF&) [with bool cond = false; TF = 
xt::assign_xexpression<xt::xtensor_container<xt::uvector<long int, 
std::allocator<long int> >, 1, xt::layout_type::row_major, 
xt::xtensor_expression_tag>, xt::xtensor_view<xt::xiterator_adaptor<long int*, 
const long int*>, 1, xt::layout_type::row_major, xt::xtensor_expression_tag> 
>::<lambda(auto:64)>; FF = 
xt::assign_xexpression<xt::xtensor_container<xt::uvector<long int, 
std::allocator<long int> >, 1, xt::layout_type::row_major, 
xt::xtensor_expression_tag>, xt::xtensor_view<xt::xiterator_adaptor<long int*, 
const long int*>, 1, xt::layout_type::row_major, xt::xtensor_expression_tag> 
>::<lambda(auto:65)>]’
/<<PKGBUILDDIR>>/include/xtensor/xassign.hpp:198:58:   required from ‘void 
xt::assign_xexpression(xt::xexpression<D>&, const xt::xexpression<E2>&) [with 
E1 = xt::xtensor_container<xt::uvector<long int, std::allocator<long int> >, 1, 
xt::layout_type::row_major, xt::xtensor_expression_tag>; E2 = 
xt::xtensor_view<xt::xiterator_adaptor<long int*, const long int*>, 1, 
xt::layout_type::row_major, xt::xtensor_expression_tag>]’
/<<PKGBUILDDIR>>/include/xtensor/xsemantic.hpp:623:31:   required from 
‘xt::xcontainer_semantic<D>::derived_type& 
xt::xcontainer_semantic<D>::assign_xexpression(const xt::xexpression<E>&) [with 
E = xt::xtensor_view<xt::xiterator_adaptor<long int*, const long int*>, 1, 
xt::layout_type::row_major, xt::xtensor_expression_tag>; D = 
xt::xtensor_container<xt::uvector<long int, std::allocator<long int> >, 1, 
xt::layout_type::row_major, xt::xtensor_expression_tag>; 
xt::xcontainer_semantic<D>::derived_type = 
xt::xtensor_container<xt::uvector<long int, std::allocator<long int> >, 1, 
xt::layout_type::row_major, xt::xtensor_expression_tag>]’
/<<PKGBUILDDIR>>/include/xtensor/xsemantic.hpp:489:55:   required from 
‘xt::xsemantic_base<D>::derived_type& xt::xsemantic_base<D>::assign(const 
xt::xexpression<E>&) [with E = xt::xtensor_view<xt::xiterator_adaptor<long 
int*, const long int*>, 1, xt::layout_type::row_major, 
xt::xtensor_expression_tag>; D = xt::xtensor_container<xt::uvector<long int, 
std::allocator<long int> >, 1, xt::layout_type::row_major, 
xt::xtensor_expression_tag>; xt::xsemantic_base<D>::derived_type = 
xt::xtensor_container<xt::uvector<long int, std::allocator<long int> >, 1, 
xt::layout_type::row_major, xt::xtensor_expression_tag>]’
/<<PKGBUILDDIR>>/include/xtensor/xtensor.hpp:550:30:   required from 
‘xt::xtensor_container<EC, N, L, Tag>::xtensor_container(const 
xt::xexpression<E>&) [with E = xt::xtensor_view<xt::xiterator_adaptor<long 
int*, const long int*>, 1, xt::layout_type::row_major, 
xt::xtensor_expression_tag>; EC = xt::uvector<long int, std::allocator<long 
int> >; unsigned int N = 1; xt::layout_type L = xt::layout_type::row_major; Tag 
= xt::xtensor_expression_tag]’
/<<PKGBUILDDIR>>/include/xtensor/xsemantic.hpp:600:24:   required from 
‘xt::xsemantic_base<D>::derived_type& xt::xsemantic_base<D>::operator=(const 
xt::xexpression<E>&) [with E = xt::xtensor_view<xt::xiterator_adaptor<long 
int*, const long int*>, 1, xt::layout_type::row_major, 
xt::xtensor_expression_tag>; D = xt::xtensor_container<xt::uvector<long int, 
std::allocator<long int> >, 1, xt::layout_type::row_major, 
xt::xtensor_expression_tag>; xt::xsemantic_base<D>::derived_type = 
xt::xtensor_container<xt::uvector<long int, std::allocator<long int> >, 1, 
xt::layout_type::row_major, xt::xtensor_expression_tag>]’
/<<PKGBUILDDIR>>/include/xtensor/xsemantic.hpp:647:36:   required from 
‘xt::xcontainer_semantic<D>::derived_type& 
xt::xcontainer_semantic<D>::operator=(const xt::xexpression<E>&) [with E = 
xt::xtensor_view<xt::xiterator_adaptor<long int*, const long int*>, 1, 
xt::layout_type::row_major, xt::xtensor_expression_tag>; D = 
xt::xtensor_container<xt::uvector<long int, std::allocator<long int> >, 1, 
xt::layout_type::row_major, xt::xtensor_expression_tag>; 
xt::xcontainer_semantic<D>::derived_type = 
xt::xtensor_container<xt::uvector<long int, std::allocator<long int> >, 1, 
xt::layout_type::row_major, xt::xtensor_expression_tag>]’
/<<PKGBUILDDIR>>/include/xtensor/xtensor.hpp:560:40:   required from 
‘xt::xtensor_container<EC, N, L, Tag>::self_type& xt::xtensor_container<EC, N, 
L, Tag>::operator=(const xt::xexpression<E>&) [with E = 
xt::xtensor_view<xt::xiterator_adaptor<long int*, const long int*>, 1, 
xt::layout_type::row_major, xt::xtensor_expression_tag>; EC = xt::uvector<long 
int, std::allocator<long int> >; unsigned int N = 1; xt::layout_type L = 
xt::layout_type::row_major; Tag = xt::xtensor_expression_tag; 
xt::xtensor_container<EC, N, L, Tag>::self_type = 
xt::xtensor_container<xt::uvector<long int, std::allocator<long int> >, 1, 
xt::layout_type::row_major, xt::xtensor_expression_tag>]’
/<<PKGBUILDDIR>>/include/xtensor/xsort.hpp:480:17:   required from ‘auto 
xt::partition(const xt::xexpression<D>&, const C&, std::ptrdiff_t) [with E = 
xt::xtensor_view<xt::xiterator_adaptor<long int*, const long int*>, 1, 
xt::layout_type::row_major, xt::xtensor_expression_tag>; C = 
std::array<unsigned int, 2>; <template-parameter-1-3> = int; std::ptrdiff_t = 
int]’
/<<PKGBUILDDIR>>/include/xtensor/xsort.hpp:709:40:   required from ‘typename 
std::decay<_Tp>::type::value_type xt::median(E&&) [with E = 
xt::xarray_container<xt::uvector<long int, xsimd::aligned_allocator<long int, 
32> >, xt::layout_type::row_major, xt::svector<unsigned int, 4, 
std::allocator<unsigned int>, true>, xt::xtensor_expression_tag>&; typename 
std::decay<_Tp>::type::value_type = long int]’
/<<PKGBUILDDIR>>/test/test_extended_xsort.cpp:110:9:   required from here
/<<PKGBUILDDIR>>/include/xtensor/xcontainer.hpp:733:17: error: return type 
‘xt::container_simd_return_type_t<xt::xiterator_adaptor<long int*, const long 
int*>, long int, long int>’ {aka ‘class xsimd::batch<long int, 8>’} is 
incomplete
  733 |     inline auto xcontainer<D>::load_simd(size_type i) const
      |                 ^~~~~~~~~~~~~
/<<PKGBUILDDIR>>/include/xtensor/xcontainer.hpp:738:62: error: invalid use of 
incomplete type ‘xsimd::simd_return_type<long int, long int, 8>’ {aka ‘class 
xsimd::batch<long int, 8>’}
  738 |         return xt_simd::load_simd<value_type, 
requested_type>(std::addressof(storage()[i]), align_mode());
      |                
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


Reported at https://github.com/xtensor-stack/xtensor/issues/2434

xsimd Issue#287 might be related, 
https://github.com/xtensor-stack/xsimd/issues/287


-- System Information:
Debian Release: bookworm/sid
  APT prefers unstable
  APT policy: (500, 'unstable'), (1, 'experimental')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 5.10.0-8-amd64 (SMP w/8 CPU threads)
Kernel taint flags: TAINT_OOT_MODULE
Locale: LANG=en_AU.UTF-8, LC_CTYPE=en_AU.UTF-8 (charmap=UTF-8), 
LANGUAGE=en_AU:en
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled

Reply via email to