basebmp/inc/metafunctions.hxx | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-)
New commits: commit 8bde421ccec9c10fe1382ad68485852889dd4c74 Author: Stephan Bergmann <sberg...@redhat.com> Date: Thu Oct 22 09:40:08 2015 +0200 Work around cid#1328486 ...claiming that "right shifting v by more than 15 bits always yields zero," apparently diagnosing an instanatiation of the template for T = unsigned short. Change-Id: I7c210ff17e4aef8f0e703cc30518f3420e67e7c1 diff --git a/basebmp/inc/metafunctions.hxx b/basebmp/inc/metafunctions.hxx index 4e6efb4..4c35f3b 100644 --- a/basebmp/inc/metafunctions.hxx +++ b/basebmp/inc/metafunctions.hxx @@ -214,10 +214,11 @@ template< typename T > inline T shiftRight( T v, int shift ) static_assert( std::is_unsigned<T>::value, "must be unsigned for promotedBits and the below ': 0' to be correct"); - auto const promotedBits = std::numeric_limits<decltype(+T())>::digits; + using Promoted = decltype(+T()); + auto const promotedBits = std::numeric_limits<Promoted>::digits; return shift >= 0 - ? shift < promotedBits ? v >> shift : 0 - : -shift < promotedBits ? v << (-shift) : 0; + ? shift < promotedBits ? Promoted(v) >> shift : 0 + : -shift < promotedBits ? Promoted(v) << (-shift) : 0; } } // namespace basebmp _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits