[PPL-devel] [GIT] ppl/ppl(master): Fixed implementation defined implicit cast.

Abramo Bagnara abramo.bagnara at gmail.com
Fri Feb 24 14:34:42 CET 2012


Module: ppl/ppl
Branch: master
Commit: 5e2ed9a48ac7e6bf2f68b5395791f4e7f4379e19
URL:    http://www.cs.unipr.it/git/gitweb.cgi?p=ppl/ppl.git;a=commit;h=5e2ed9a48ac7e6bf2f68b5395791f4e7f4379e19

Author: Abramo Bagnara <abramo.bagnara at gmail.com>
Date:   Fri Feb 24 14:30:27 2012 +0100

Fixed implementation defined implicit cast.
Detected by ECLAIR service utypflag.

---

 src/OR_Matrix.inlines.hh |    8 ++++----
 1 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/src/OR_Matrix.inlines.hh b/src/OR_Matrix.inlines.hh
index 2bc43b5..448bc0b 100644
--- a/src/OR_Matrix.inlines.hh
+++ b/src/OR_Matrix.inlines.hh
@@ -243,14 +243,14 @@ template <typename T>
 template <typename U>
 inline typename OR_Matrix<T>::template any_row_iterator<U>&
 OR_Matrix<T>::any_row_iterator<U>::operator+=(const difference_type m) {
-  difference_type increment = m + m*m/2 + m*e;
+  difference_type increment = m + m * m / 2 + m * static_cast<difference_type>(e);
   if (e % 2 == 0 && m % 2 != 0)
     ++increment;
-  e += m;
-  i += increment;
+  e = static_cast<dimension_type>(static_cast<difference_type>(e) + m);
+  i = static_cast<dimension_type>(static_cast<difference_type>(i) + increment);
   value.first += increment;
 #if PPL_OR_MATRIX_EXTRA_DEBUG
-  value.size_ += (m - m%2);
+  value.size_ = static_cast<dimension_type>(static_cast<difference_type>(value.size_) + m - m % 2);
 #endif
   return *this;
 }




More information about the PPL-devel mailing list