[PPL-devel] [GIT] ppl/ppl(master): Let bitwise operators be applied to unsigned integer types.

Enea Zaffanella zaffanella at cs.unipr.it
Mon Feb 20 17:32:18 CET 2012


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

Author: Enea Zaffanella <zaffanella at cs.unipr.it>
Date:   Mon Feb 20 17:29:54 2012 +0100

Let bitwise operators be applied to unsigned integer types.
Detected by ECLAIR service utypflag.

---

 src/Linear_Row.cc         |   10 +++++-----
 src/Linear_Row.defs.hh    |    2 +-
 src/Linear_Row.inlines.hh |   39 ++++++++++++++++++++-------------------
 3 files changed, 26 insertions(+), 25 deletions(-)

diff --git a/src/Linear_Row.cc b/src/Linear_Row.cc
index 9b0f52d..5a5de51 100644
--- a/src/Linear_Row.cc
+++ b/src/Linear_Row.cc
@@ -152,14 +152,14 @@ const char* bit_names[] = {rpi_valid, is_rpi, nnc_valid, is_nnc};
 
 void
 PPL::Linear_Row::Flags::ascii_dump(std::ostream& s) const {
-  s << (test_bits(1 << Flags::rpi_validity_bit) ? '+' : '-')
+  s << (test_bits(1U << Flags::rpi_validity_bit) ? '+' : '-')
     << rpi_valid << ' '
-    << (test_bits(1 << Flags::rpi_bit) ? '+' : '-')
+    << (test_bits(1U << Flags::rpi_bit) ? '+' : '-')
     << is_rpi << ' '
     << ' '
-    << (test_bits(1 << Flags::nnc_validity_bit) ? '+' : '-')
+    << (test_bits(1U << Flags::nnc_validity_bit) ? '+' : '-')
     << nnc_valid << ' '
-    << (test_bits(1 << Flags::nnc_bit) ? '+' : '-')
+    << (test_bits(1U << Flags::nnc_bit) ? '+' : '-')
     << is_nnc;
 }
 
@@ -176,7 +176,7 @@ PPL::Linear_Row::Flags::ascii_load(std::istream& s) {
     if (!(s >> str))
       return false;
     if (str[0] == '+')
-      set_bits(1 << (Dense_Row::Flags::first_free_bit + bit));
+      set_bits(1U << (Dense_Row::Flags::first_free_bit + bit));
     else if (str[0] != '-')
       return false;
     if (str.compare(1, strlen(bit_names[bit]), bit_names[bit]) != 0)
diff --git a/src/Linear_Row.defs.hh b/src/Linear_Row.defs.hh
index 65c12db..b42e61f 100644
--- a/src/Linear_Row.defs.hh
+++ b/src/Linear_Row.defs.hh
@@ -187,7 +187,7 @@ public:
   private:
     //! Builds the type from a bit-mask.
     explicit Flags(base_type mask);
-    
+
     //! Constructor from a Dense_Row::Flags object.
     explicit Flags(Dense_Row::Flags flags);
 
diff --git a/src/Linear_Row.inlines.hh b/src/Linear_Row.inlines.hh
index e3037f6..571a7e3 100644
--- a/src/Linear_Row.inlines.hh
+++ b/src/Linear_Row.inlines.hh
@@ -43,75 +43,76 @@ Linear_Row::Flags::Flags(Dense_Row::Flags f)
 
 inline
 Linear_Row::Flags::Flags(const Topology t)
-  : Dense_Row::Flags(t << nnc_bit) {
+  : Dense_Row::Flags(static_cast<unsigned>(t) << nnc_bit) {
 #ifndef NDEBUG
-  set_bits(1 << nnc_validity_bit);
+  set_bits(1U << nnc_validity_bit);
 #endif
 }
 
 inline
 Linear_Row::Flags::Flags(const Topology t, const Kind k)
-  : Dense_Row::Flags((k << rpi_bit) | (t << nnc_bit)) {
+  : Dense_Row::Flags((static_cast<unsigned>(k) << rpi_bit)
+                     | (static_cast<unsigned>(t) << nnc_bit)) {
 #ifndef NDEBUG
-  set_bits((1 << rpi_validity_bit)
-	   | (1 << nnc_validity_bit));
+  set_bits((1U << rpi_validity_bit) | (1U << nnc_validity_bit));
 #endif
 }
 
 inline bool
 Linear_Row::Flags::is_ray_or_point_or_inequality() const {
-  PPL_ASSERT(test_bits(1 << rpi_validity_bit));
-  return test_bits(RAY_OR_POINT_OR_INEQUALITY << rpi_bit);
+  PPL_ASSERT(test_bits(1U << rpi_validity_bit));
+  return
+    test_bits(static_cast<unsigned>(RAY_OR_POINT_OR_INEQUALITY) << rpi_bit);
 }
 
 inline void
 Linear_Row::Flags::set_is_ray_or_point_or_inequality() {
 #ifndef NDEBUG
-  set_bits(1 << rpi_validity_bit);
+  set_bits(1U << rpi_validity_bit);
 #endif
-  set_bits(RAY_OR_POINT_OR_INEQUALITY << rpi_bit);
+  set_bits(static_cast<unsigned>(RAY_OR_POINT_OR_INEQUALITY) << rpi_bit);
 }
 
 inline bool
 Linear_Row::Flags::is_line_or_equality() const {
-  PPL_ASSERT(test_bits(1 << rpi_validity_bit));
+  PPL_ASSERT(test_bits(1U << rpi_validity_bit));
   return !is_ray_or_point_or_inequality();
 }
 
 inline void
 Linear_Row::Flags::set_is_line_or_equality() {
 #ifndef NDEBUG
-  set_bits(1 << rpi_validity_bit);
+  set_bits(1U << rpi_validity_bit);
 #endif
-  reset_bits(RAY_OR_POINT_OR_INEQUALITY << rpi_bit);
+  reset_bits(static_cast<unsigned>(RAY_OR_POINT_OR_INEQUALITY) << rpi_bit);
 }
 
 inline bool
 Linear_Row::Flags::is_not_necessarily_closed() const {
-  PPL_ASSERT(test_bits(1 << nnc_validity_bit));
-  return test_bits(NOT_NECESSARILY_CLOSED << nnc_bit);
+  PPL_ASSERT(test_bits(1U << nnc_validity_bit));
+  return test_bits(static_cast<unsigned>(NOT_NECESSARILY_CLOSED) << nnc_bit);
 }
 
 inline bool
 Linear_Row::Flags::is_necessarily_closed() const {
-  PPL_ASSERT(test_bits(1 << nnc_validity_bit));
+  PPL_ASSERT(test_bits(1U << nnc_validity_bit));
   return !is_not_necessarily_closed();
 }
 
 inline void
 Linear_Row::Flags::set_not_necessarily_closed() {
 #ifndef NDEBUG
-  set_bits(1 << nnc_validity_bit);
+  set_bits(1U << nnc_validity_bit);
 #endif
-  set_bits(NOT_NECESSARILY_CLOSED << nnc_bit);
+  set_bits(static_cast<unsigned>(NOT_NECESSARILY_CLOSED) << nnc_bit);
 }
 
 inline void
 Linear_Row::Flags::set_necessarily_closed() {
 #ifndef NDEBUG
-  set_bits(1 << nnc_validity_bit);
+  set_bits(1U << nnc_validity_bit);
 #endif
-  reset_bits(NOT_NECESSARILY_CLOSED << nnc_bit);
+  reset_bits(static_cast<unsigned>(NOT_NECESSARILY_CLOSED) << nnc_bit);
 }
 
 inline Topology




More information about the PPL-devel mailing list