[PPL-devel] [GIT] ppl/ppl(master): Avoid implicit conversions changing integer type signedness.
Abramo Bagnara
abramo.bagnara at gmail.com
Thu Feb 23 12:15:13 CET 2012
Module: ppl/ppl
Branch: master
Commit: 6cd5710b5d2c2785398aee90bc39dcf007d0481e
URL: http://www.cs.unipr.it/git/gitweb.cgi?p=ppl/ppl.git;a=commit;h=6cd5710b5d2c2785398aee90bc39dcf007d0481e
Author: Abramo Bagnara <abramo.bagnara at gmail.com>
Date: Thu Feb 23 11:06:51 2012 +0100
Avoid implicit conversions changing integer type signedness.
Detected by ECLAIR service utypflag.
---
src/Bit_Row.cc | 16 ++++++++++------
1 files changed, 10 insertions(+), 6 deletions(-)
diff --git a/src/Bit_Row.cc b/src/Bit_Row.cc
index 4eb09b7..165c839 100644
--- a/src/Bit_Row.cc
+++ b/src/Bit_Row.cc
@@ -36,7 +36,8 @@ PPL::Bit_Row::first() const {
for (mp_size_t li = 0; li < vec_size; ++li, ++p) {
const mp_limb_t limb = *p;
if (limb != 0)
- return li*PPL_BITS_PER_GMP_LIMB + Implementation::first_one(limb);
+ return static_cast<unsigned long>(li) * PPL_BITS_PER_GMP_LIMB
+ + Implementation::first_one(limb);
}
return C_Integer<unsigned long>::max;
}
@@ -52,7 +53,7 @@ PPL::Bit_Row::next(unsigned long position) const {
// unsigned long r = mpz_scan1(vec, position);
// return (r == C_Integer<unsigned long>::max) ? -1 : r;
- mp_size_t li = position / PPL_BITS_PER_GMP_LIMB;
+ mp_size_t li = position / static_cast<mp_size_t>(PPL_BITS_PER_GMP_LIMB);
const mp_size_t vec_size = vec->_mp_size;
PPL_ASSERT(vec_size >= 0);
if (li >= vec_size)
@@ -67,7 +68,8 @@ PPL::Bit_Row::next(unsigned long position) const {
while (true) {
if (limb != 0)
- return li*PPL_BITS_PER_GMP_LIMB + Implementation::first_one(limb);
+ return static_cast<unsigned long>(li) * PPL_BITS_PER_GMP_LIMB
+ + Implementation::first_one(limb);
++li;
if (li == vec_size)
break;
@@ -87,7 +89,8 @@ PPL::Bit_Row::last() const {
const mp_srcptr p = vec->_mp_d + li;
const mp_limb_t limb = *p;
PPL_ASSERT(limb != 0);
- return li*PPL_BITS_PER_GMP_LIMB + Implementation::last_one(limb);
+ return static_cast<unsigned long>(li) * PPL_BITS_PER_GMP_LIMB
+ + Implementation::last_one(limb);
}
unsigned long
@@ -99,7 +102,7 @@ PPL::Bit_Row::prev(unsigned long position) const {
const mp_size_t vec_size = vec->_mp_size;
PPL_ASSERT(vec_size > 0);
- unsigned long li = position / PPL_BITS_PER_GMP_LIMB;
+ mp_size_t li = position / static_cast<mp_size_t>(PPL_BITS_PER_GMP_LIMB);
mp_limb_t limb;
mp_srcptr p = vec->_mp_d;
@@ -120,7 +123,8 @@ PPL::Bit_Row::prev(unsigned long position) const {
while (true) {
if (limb != 0)
- return li*PPL_BITS_PER_GMP_LIMB + Implementation::last_one(limb);
+ return static_cast<unsigned long>(li) * PPL_BITS_PER_GMP_LIMB
+ + Implementation::last_one(limb);
if (li == 0)
break;
--li;
More information about the PPL-devel
mailing list