[GIT] ppl/ppl(master): Prefer using C_Integer traits rather than macros in <climits>, thereby

Module: ppl/ppl Branch: master Commit: ff759c6b48d0bf2ed81e2bcdaf5aa072d1b540e5 URL: http://www.cs.unipr.it/git/gitweb.cgi?p=ppl/ppl.git;a=commit;h=ff759c6b48d0b...
Author: Enea Zaffanella zaffanella@cs.unipr.it Date: Wed Feb 22 10:09:23 2012 +0100
Prefer using C_Integer traits rather than macros in <climits>, thereby avoiding a few implicit conversions changing signedness. Detected by ECLAIR service utypflag.
---
src/Bit_Matrix.cc | 11 +++++++---- src/Bit_Row.cc | 16 ++++++++-------- src/checked.cc | 9 +++++---- 3 files changed, 20 insertions(+), 16 deletions(-)
diff --git a/src/Bit_Matrix.cc b/src/Bit_Matrix.cc index 75e1fb1..96243f7 100644 --- a/src/Bit_Matrix.cc +++ b/src/Bit_Matrix.cc @@ -25,9 +25,9 @@ site: http://bugseng.com/products/ppl/ . */ #include "Bit_Matrix.defs.hh" #include "globals.defs.hh" #include "swapping_sort.templates.hh" +#include "C_Integer.hh" #include <iostream> #include <string> -#include <climits>
namespace PPL = Parma_Polyhedra_Library;
@@ -85,7 +85,8 @@ PPL::Bit_Matrix::transpose() { const dimension_type ncols = num_columns(); Bit_Matrix tmp(ncols, nrows); for (dimension_type i = nrows; i-- > 0; ) - for (unsigned long j = x[i].last(); j != ULONG_MAX; j = x[i].prev(j)) + for (unsigned long j = x[i].last(); + j != C_Integer<unsigned long>::max; j = x[i].prev(j)) tmp[j].set(i); m_swap(tmp); PPL_ASSERT(OK()); @@ -97,7 +98,8 @@ PPL::Bit_Matrix::transpose_assign(const Bit_Matrix& y) { const dimension_type y_num_columns = y.num_columns(); Bit_Matrix tmp(y_num_columns, y_num_rows); for (dimension_type i = y_num_rows; i-- > 0; ) - for (unsigned long j = y[i].last(); j != ULONG_MAX; j = y[i].prev(j)) + for (unsigned long j = y[i].last(); + j != C_Integer<unsigned long>::max; j = y[i].prev(j)) tmp[j].set(i); m_swap(tmp); PPL_ASSERT(OK()); @@ -205,7 +207,8 @@ PPL::Bit_Matrix::OK() const { const Bit_Row& row = x[i]; if (!row.OK()) return false; - else if (row.last() != ULONG_MAX && row.last() >= row_size) { + else if (row.last() != C_Integer<unsigned long>::max + && row.last() >= row_size) { #ifndef NDEBUG cerr << "Bit_Matrix[" << i << "] is a row with too many bits!" << endl diff --git a/src/Bit_Row.cc b/src/Bit_Row.cc index 9fec973..ac56da2 100644 --- a/src/Bit_Row.cc +++ b/src/Bit_Row.cc @@ -24,7 +24,7 @@ site: http://bugseng.com/products/ppl/ . */ #include "ppl-config.h" #include "Bit_Row.defs.hh" #include "assert.hh" -#include <climits> +#include "C_Integer.hh"
namespace PPL = Parma_Polyhedra_Library;
@@ -38,7 +38,7 @@ PPL::Bit_Row::first() const { if (limb != 0) return li*PPL_BITS_PER_GMP_LIMB + Implementation::first_one(limb); } - return ULONG_MAX; + return C_Integer<unsigned long>::max; }
unsigned long @@ -50,13 +50,13 @@ PPL::Bit_Row::next(unsigned long position) const { // case mpz_scan1() is improved. // // unsigned long r = mpz_scan1(vec, position); - // return (r == ULONG_MAX) ? -1 : r; + // return (r == C_Integer<unsigned long>::max) ? -1 : r;
mp_size_t li = position / PPL_BITS_PER_GMP_LIMB; const mp_size_t vec_size = vec->_mp_size; PPL_ASSERT(vec_size >= 0); if (li >= vec_size) - return ULONG_MAX; + return C_Integer<unsigned long>::max;
// Get the first limb. mp_srcptr p = vec->_mp_d + li; @@ -74,7 +74,7 @@ PPL::Bit_Row::next(unsigned long position) const { ++p; limb = *p; } - return ULONG_MAX; + return C_Integer<unsigned long>::max; }
unsigned long @@ -82,7 +82,7 @@ PPL::Bit_Row::last() const { mp_size_t li = vec->_mp_size; PPL_ASSERT(li >= 0); if (li == 0) - return ULONG_MAX; + return C_Integer<unsigned long>::max; --li; const mp_srcptr p = vec->_mp_d + li; const mp_limb_t limb = *p; @@ -93,7 +93,7 @@ PPL::Bit_Row::last() const { unsigned long PPL::Bit_Row::prev(unsigned long position) const { if (position == 0) - return ULONG_MAX; + return C_Integer<unsigned long>::max;
--position;
@@ -127,7 +127,7 @@ PPL::Bit_Row::prev(unsigned long position) const { --p; limb = *p; } - return ULONG_MAX; + return C_Integer<unsigned long>::max; }
bool diff --git a/src/checked.cc b/src/checked.cc index 2fc1900..b024861 100644 --- a/src/checked.cc +++ b/src/checked.cc @@ -23,7 +23,7 @@ site: http://bugseng.com/products/ppl/ . */
#include "ppl-config.h" #include "checked.defs.hh" -#include <climits> +#include "C_Integer.hh"
namespace Parma_Polyhedra_Library {
@@ -109,7 +109,7 @@ inline bool sum_sign(bool& a_neg, unsigned long& a_mod, bool b_neg, unsigned long b_mod) { if (a_neg == b_neg) { - if (a_mod > ULONG_MAX - b_mod) + if (a_mod > C_Integer<unsigned long>::max - b_mod) return false; a_mod += b_mod; } @@ -279,8 +279,9 @@ parse_number_part(std::istream& is, number_struct& numer) { exp: state = EXPONENT; PPL_ASSERT(numer.base >= 2); - max_exp_div = LONG_MAX / numer.base; - max_exp_rem = static_cast<int>(LONG_MAX % numer.base); + const long l_max = C_Integer<long>::max; + max_exp_div = static_cast<unsigned long>(l_max) / numer.base; + max_exp_rem = static_cast<int>(l_max % static_cast<long>(numer.base)); if (!is.get(c)) return V_CVT_STR_UNK; if (c == '-') {
participants (1)
-
Enea Zaffanella