isl_output.c: next_is_opposite: return isl_stat
authorSven Verdoolaege <sven.verdoolaege@gmail.com>
Sun, 12 Aug 2018 14:49:47 +0000 (12 16:49 +0200)
committerSven Verdoolaege <sven.verdoolaege@gmail.com>
Sun, 2 Sep 2018 14:19:04 +0000 (2 16:19 +0200)
This clarifies what the possible return values are.

Signed-off-by: Sven Verdoolaege <sven.verdoolaege@gmail.com>
isl_output.c

index 0bd8bdf..1d3431c 100644 (file)
@@ -466,23 +466,24 @@ static __isl_give isl_printer *print_omega_parameters(
  * If the next constraint is a div constraint, then it is ignored
  * since div constraints are not printed.
  */
-static int next_is_opposite(__isl_keep isl_basic_map *bmap, int i, int last)
+static isl_bool next_is_opposite(__isl_keep isl_basic_map *bmap, int i,
+       int last)
 {
        unsigned total = isl_basic_map_total_dim(bmap);
        unsigned o_div = isl_basic_map_offset(bmap, isl_dim_div);
 
        if (i + 1 >= bmap->n_ineq)
-               return 0;
+               return isl_bool_false;
        if (isl_seq_last_non_zero(bmap->ineq[i + 1], 1 + total) != last)
-               return 0;
+               return isl_bool_false;
        if (last >= o_div) {
                isl_bool is_div;
                is_div = isl_basic_map_is_div_constraint(bmap,
                                            bmap->ineq[i + 1], last - o_div);
                if (is_div < 0)
-                       return -1;
+                       return isl_bool_error;
                if (is_div)
-                       return 0;
+                       return isl_bool_false;
        }
        return isl_int_abs_eq(bmap->ineq[i][last], bmap->ineq[i + 1][last]) &&
                !isl_int_eq(bmap->ineq[i][last], bmap->ineq[i + 1][last]);
@@ -775,6 +776,7 @@ static __isl_give isl_printer *print_constraints(__isl_keep isl_basic_map *bmap,
                first = 0;
        }
        for (i = 0; i < bmap->n_ineq; ++i) {
+               isl_bool combine;
                int l = isl_seq_last_non_zero(bmap->ineq[i], 1 + total);
                int strict;
                int s;
@@ -801,7 +803,10 @@ static __isl_give isl_printer *print_constraints(__isl_keep isl_basic_map *bmap,
                        isl_seq_neg(c->el, bmap->ineq[i], 1 + total);
                if (strict)
                        isl_int_set_si(c->el[0], 0);
-               if (!dump && next_is_opposite(bmap, i, l)) {
+               combine = dump ? isl_bool_false : next_is_opposite(bmap, i, l);
+               if (combine < 0)
+                       goto error;
+               if (combine) {
                        op = constraint_op(-s, strict, latex);
                        p = print_half_constraint(p, space, div, c->el, l,
                                                op, latex);