From 909c9c44a59e69d8adb175482989204de3cf5ace Mon Sep 17 00:00:00 2001
From: Kristof Szabados <Kristof.Szabados@ericsson.com>
Date: Sun, 27 Nov 2016 15:03:41 +0100
Subject: [PATCH] these indeces at their point of usage can only be positive
 integers

Signed-off-by: Kristof Szabados <Kristof.Szabados@ericsson.com>
---
 compiler2/subtypestuff.hh | 24 ++++++++++++------------
 1 file changed, 12 insertions(+), 12 deletions(-)

diff --git a/compiler2/subtypestuff.hh b/compiler2/subtypestuff.hh
index 24422353c..bdf4b0f9c 100644
--- a/compiler2/subtypestuff.hh
+++ b/compiler2/subtypestuff.hh
@@ -419,10 +419,10 @@ RangeListConstraint<LIMITTYPE> RangeListConstraint<LIMITTYPE>::set_operation(con
       sweep_points.add(sweep_point_t(spi.a_idx, -1));
       spi.a_idx++;
     } else { // both are within the vector, get smaller or get both if equal
-      if (values[spi.a_idx]<other.values[spi.b_idx]) {
+      if (values[(size_t)spi.a_idx]<other.values[(size_t)spi.b_idx]) {
         sweep_points.add(sweep_point_t(spi.a_idx, -1));
         spi.a_idx++;
-      } else if (values[spi.a_idx]==other.values[spi.b_idx]) {
+      } else if (values[(size_t)spi.a_idx]==other.values[(size_t)spi.b_idx]) {
         sweep_points.add(spi);
         spi.a_idx++;
         spi.b_idx++;
@@ -443,7 +443,7 @@ RangeListConstraint<LIMITTYPE> RangeListConstraint<LIMITTYPE>::set_operation(con
     bool a_point = false;
     if (sweep_points[i].a_idx!=-1) { // we are at a value in A
       a_point = true;
-      if (intervals[sweep_points[i].a_idx]) { // this is a starting point of an interval in A
+      if (intervals[(size_t)sweep_points[i].a_idx]) { // this is a starting point of an interval in A
         a_interval = true;
         if (in_a) FATAL_ERROR("RangeListConstraint::set_operation(): invalid double interval");
         in_a = true;
@@ -457,7 +457,7 @@ RangeListConstraint<LIMITTYPE> RangeListConstraint<LIMITTYPE>::set_operation(con
     bool b_point = false;
     if (sweep_points[i].b_idx!=-1) { // we are at a value in B
       b_point = true;
-      if (other.intervals[sweep_points[i].b_idx]) { // this is a starting point of an interval in B
+      if (other.intervals[(size_t)sweep_points[i].b_idx]) { // this is a starting point of an interval in B
         b_interval = true;
         if (in_b) FATAL_ERROR("RangeListConstraint::set_operation(): invalid double interval");
         in_b = true;
@@ -479,15 +479,15 @@ RangeListConstraint<LIMITTYPE> RangeListConstraint<LIMITTYPE>::set_operation(con
     {
       LIMITTYPE first, second;
       if (sweep_points[i-1].a_idx!=-1) {
-        first = values[sweep_points[i-1].a_idx];
+        first = values[(size_t)sweep_points[i-1].a_idx];
       } else {
-        if (sweep_points[i-1].b_idx!=-1) first = other.values[sweep_points[i-1].b_idx];
+        if (sweep_points[i-1].b_idx!=-1) first = other.values[(size_t)sweep_points[i-1].b_idx];
         else FATAL_ERROR("RangeListConstraint::set_operation()");
       }
       if (sweep_points[i].a_idx!=-1) {
-        second = values[sweep_points[i].a_idx];
+        second = values[(size_t)sweep_points[i].a_idx];
       } else {
-        if (sweep_points[i].b_idx!=-1) second = other.values[sweep_points[i].b_idx];
+        if (sweep_points[i].b_idx!=-1) second = other.values[(size_t)sweep_points[i].b_idx];
         else FATAL_ERROR("RangeListConstraint::set_operation()");
       }
       if (first.is_adjacent(second)) {
@@ -506,9 +506,9 @@ RangeListConstraint<LIMITTYPE> RangeListConstraint<LIMITTYPE>::set_operation(con
         } else {
           LIMITTYPE l;
           if (sweep_points[i].a_idx!=-1) {
-            l = values[sweep_points[i].a_idx];
+            l = values[(size_t)sweep_points[i].a_idx];
           } else {
-            if (sweep_points[i].b_idx!=-1) l = other.values[sweep_points[i].b_idx];
+            if (sweep_points[i].b_idx!=-1) l = other.values[(size_t)sweep_points[i].b_idx];
             else FATAL_ERROR("RangeListConstraint::set_operation()");
           }
           ret_val.values.add(l);
@@ -521,9 +521,9 @@ RangeListConstraint<LIMITTYPE> RangeListConstraint<LIMITTYPE>::set_operation(con
         } else {
           LIMITTYPE l;
           if (sweep_points[i].a_idx!=-1) {
-            l = values[sweep_points[i].a_idx];
+            l = values[(size_t)sweep_points[i].a_idx];
           } else {
-            if (sweep_points[i].b_idx!=-1) l = other.values[sweep_points[i].b_idx];
+            if (sweep_points[i].b_idx!=-1) l = other.values[(size_t)sweep_points[i].b_idx];
             else FATAL_ERROR("RangeListConstraint::set_operation()");
           }
           ret_val.values.add(l);
-- 
GitLab