[PPL-devel] [GIT] ppl/ppl(master): Fixed bool vs. numeric unsafe mixing.
Abramo Bagnara
abramo.bagnara at gmail.com
Thu Nov 3 16:17:31 CET 2011
Module: ppl/ppl
Branch: master
Commit: 7f72ff168aa3989740f248c1fbe636f01157a9e6
URL: http://www.cs.unipr.it/git/gitweb.cgi?p=ppl/ppl.git;a=commit;h=7f72ff168aa3989740f248c1fbe636f01157a9e6
Author: Abramo Bagnara <abramo.bagnara at gmail.com>
Date: Thu Nov 3 16:13:06 2011 +0100
Fixed bool vs. numeric unsafe mixing.
Detected by ECLAIR service utypflag.
---
src/checked_float.inlines.hh | 6 +++---
src/fpu-c99.inlines.hh | 2 +-
2 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/src/checked_float.inlines.hh b/src/checked_float.inlines.hh
index 5f91f67..c6ed19a 100644
--- a/src/checked_float.inlines.hh
+++ b/src/checked_float.inlines.hh
@@ -801,12 +801,12 @@ set_pos_overflow_float(T& to, Rounding_Dir dir) {
template <typename To_Policy, typename From_Policy, typename T>
inline Result
assign_float_mpz(T& to, const mpz_class& from, Rounding_Dir dir) {
- mpz_srcptr from_z = from.get_mpz_t();
- int sign = mpz_sgn(from_z);
+ int sign = sgn(from);
if (sign == 0) {
to = 0;
return V_EQ;
}
+ mpz_srcptr from_z = from.get_mpz_t();
size_t exponent = mpz_sizeinbase(from_z, 2) - 1;
if (exponent > size_t(Float<T>::Binary::EXPONENT_MAX)) {
if (sign < 0)
@@ -846,7 +846,7 @@ assign_float_mpq(T& to, const mpq_class& from, Rounding_Dir dir) {
return assign_float_mpz<To_Policy, From_Policy>(to, num, dir);
mpz_srcptr num_z = num.get_mpz_t();
mpz_srcptr den_z = den.get_mpz_t();
- int sign = mpz_sgn(num_z);
+ int sign = sgn(num);
signed long exponent = mpz_sizeinbase(num_z, 2) - mpz_sizeinbase(den_z, 2);
if (exponent < Float<T>::Binary::EXPONENT_MIN_DENORM) {
to = 0;
diff --git a/src/fpu-c99.inlines.hh b/src/fpu-c99.inlines.hh
index 7fc12de..cda7a4c 100644
--- a/src/fpu-c99.inlines.hh
+++ b/src/fpu-c99.inlines.hh
@@ -87,7 +87,7 @@ fpu_restore_rounding_direction(fpu_rounding_control_word_type w) {
inline int
fpu_check_inexact() {
#if PPL_CXX_SUPPORTS_IEEE_INEXACT_FLAG
- return fetestexcept(FE_INEXACT) != 0;
+ return fetestexcept(FE_INEXACT) != 0 ? 1 : 0;
#else
return -1;
#endif
More information about the PPL-devel
mailing list