xtensor-stack/xtl

/usr/include/xtl/xsequence.hpp:132:24: error: ‘ret’ may be used uninitialized

drew-parsons opened this issue · 0 comments

xsequence.hpp gives an error message

/usr/include/xtl/xsequence.hpp:132:24: error: ‘ret’ may be used uninitialized [-Werror=maybe-uninitialized]
  132 |                 return ret;
      |                        ^~~
/usr/include/xtl/xsequence.hpp: In static member function ‘static _Res std::_Function_handler<_Res(_ArgTypes ...), _Functor>::_M_invoke(const std::_Any_data&, _ArgTypes&& ...) [with _Res = xt::xtensor_container<xt::uvector<bool, std::allocator<bool> >, 1, xt::layout_type::row_major, xt::xtensor_expression_tag>; _Functor = dolfinx_wrappers::fem(pybind11::module&)::<lambda(const dolfinx::fem::FunctionSpace&, const std::function<pybind11::array_t<bool>(const pybind11::array_t<double, 16>&)>&)>::<lambda(xt::xtensor<double, 2>&)>; _ArgTypes = {const xt::xtensor_container<xt::uvector<double, std::allocator<double> >, 2, xt::layout_type::row_major, xt::xtensor_expression_tag>&}]’:
/usr/include/xtl/xsequence.hpp:130:19: note: ‘ret’ declared here
  130 |                 R ret;
      |                   ^~~

It's currently preventing the debian build of dolfinx on mip64el, build log here. In this context it's treated as an error (-Werror=maybe-uninitialized) causing the build to fail. (I haven't understood why it's only affecting mips64el and not other architectures. The other dolfinx builds are found at https://buildd.debian.org/status/package.php?p=fenics-dolfinx )

The error also shows up in xtensor 0.7.4 CI testing on the conventional amd64 architecture, e.g https://ci.debian.net/data/autopkgtest/testing/amd64/x/xtensor/25056327/log.gz In this context it's treated as a warning (-Wmaybe-uninitialized) not an error, so the tests pass. But the warning is still there.

Are code changes possible to prevent this warning from being emitted?