isl_term_get_exp: return isl_size
authorSven Verdoolaege <sven.verdoolaege@gmail.com>
Tue, 7 Aug 2018 10:09:42 +0000 (7 12:09 +0200)
committerSven Verdoolaege <sven.verdoolaege@gmail.com>
Thu, 6 Sep 2018 15:01:48 +0000 (6 17:01 +0200)
This clarifies what the possible return values are.

Signed-off-by: Sven Verdoolaege <sven.verdoolaege@gmail.com>
doc/user.pod
include/isl/polynomial.h
isl_polynomial.c
isl_range.c

index 5738899..0f886fb 100644 (file)
@@ -2776,7 +2776,7 @@ these functions
                enum isl_dim_type type);
        __isl_give isl_val *isl_term_get_coefficient_val(
                __isl_keep isl_term *term);
-       int isl_term_get_exp(__isl_keep isl_term *term,
+       isl_size isl_term_get_exp(__isl_keep isl_term *term,
                enum isl_dim_type type, unsigned pos);
        __isl_give isl_aff *isl_term_get_div(
                __isl_keep isl_term *term, unsigned pos);
index 2457499..89f2a6c 100644 (file)
@@ -111,7 +111,7 @@ __isl_null isl_term *isl_term_free(__isl_take isl_term *term);
 
 isl_size isl_term_dim(__isl_keep isl_term *term, enum isl_dim_type type);
 __isl_give isl_val *isl_term_get_coefficient_val(__isl_keep isl_term *term);
-int isl_term_get_exp(__isl_keep isl_term *term,
+isl_size isl_term_get_exp(__isl_keep isl_term *term,
        enum isl_dim_type type, unsigned pos);
 __isl_give isl_aff *isl_term_get_div(__isl_keep isl_term *term, unsigned pos);
 
index d60908a..8e69f52 100644 (file)
@@ -4046,16 +4046,16 @@ __isl_give isl_val *isl_term_get_coefficient_val(__isl_keep isl_term *term)
 static
 #include "check_type_range_templ.c"
 
-int isl_term_get_exp(__isl_keep isl_term *term,
+isl_size isl_term_get_exp(__isl_keep isl_term *term,
        enum isl_dim_type type, unsigned pos)
 {
        int offset;
 
        if (isl_term_check_range(term, type, pos, 1) < 0)
-               return -1;
+               return isl_size_error;
        offset = isl_term_offset(term, type);
        if (offset < 0)
-               return -1;
+               return isl_size_error;
 
        return term->pow[offset + pos];
 }
index 8cfac38..d1e48ae 100644 (file)
@@ -199,6 +199,7 @@ static isl_stat collect_fixed_sign_terms(__isl_take isl_term *term, void *user)
        int sign;
        isl_size nparam;
        isl_size nvar;
+       isl_size exp;
 
        nparam = isl_term_dim(term, isl_dim_param);
        nvar = isl_term_dim(term, isl_dim_set);
@@ -213,13 +214,19 @@ static isl_stat collect_fixed_sign_terms(__isl_take isl_term *term, void *user)
        for (i = 0; i < nparam; ++i) {
                if (data->signs[i] > 0)
                        continue;
-               if (isl_term_get_exp(term, isl_dim_param, i) % 2)
+               exp = isl_term_get_exp(term, isl_dim_param, i);
+               if (exp < 0)
+                       return isl_stat_error;
+               if (exp % 2)
                        sign = -sign;
        }
        for (i = 0; i < nvar; ++i) {
                if (data->signs[nparam + i] > 0)
                        continue;
-               if (isl_term_get_exp(term, isl_dim_set, i) % 2)
+               exp = isl_term_get_exp(term, isl_dim_set, i);
+               if (exp < 0)
+                       return isl_stat_error;
+               if (exp % 2)
                        sign = -sign;
        }