Bug#1103067: Patch to fix
Dima Kogan
dkogan at debian.org
Mon May 19 08:50:48 BST 2025
To fix this it's necessary to add the "long long int" flavor of
make_unsigned to Meta.h (such as done in the attached patch). I'll run
some more tests (primarily to make sure this doesn't break amd64) in the
next few days and do a Team upload, if nobody beats me to it.
-------------- next part --------------
diff --git a/Eigen/src/Core/util/Meta.h b/Eigen/src/Core/util/Meta.h
index 81ae2a3..dd25676 100755
--- a/Eigen/src/Core/util/Meta.h
+++ b/Eigen/src/Core/util/Meta.h
@@ -177,12 +177,15 @@ template<> struct is_integral<unsigned __int64> { enum { value = true }; }
using std::make_unsigned;
#else
// TODO: Possibly improve this implementation of make_unsigned.
// It is currently used only by
// template<typename Scalar> struct random_default_impl<Scalar, false, true>.
template<typename> struct make_unsigned;
+
+template<> struct make_unsigned<long long int> { typedef unsigned long long int type; };
+
template<> struct make_unsigned<char> { typedef unsigned char type; };
template<> struct make_unsigned<signed char> { typedef unsigned char type; };
template<> struct make_unsigned<unsigned char> { typedef unsigned char type; };
template<> struct make_unsigned<signed short> { typedef unsigned short type; };
template<> struct make_unsigned<unsigned short> { typedef unsigned short type; };
template<> struct make_unsigned<signed int> { typedef unsigned int type; };
More information about the debian-science-maintainers
mailing list