summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--isl_local_space.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/isl_local_space.c b/isl_local_space.c
index 6c4fb840..924b5ca1 100644
--- a/isl_local_space.c
+++ b/isl_local_space.c
@@ -718,7 +718,6 @@ __isl_give isl_local_space *isl_local_space_substitute_equalities(
unsigned total;
unsigned n_div;
- ls = isl_local_space_cow(ls);
if (!ls || !eq)
goto error;
@@ -736,6 +735,12 @@ __isl_give isl_local_space *isl_local_space_substitute_equalities(
for (k = 0; k < ls->div->n_row; ++k) {
if (isl_int_is_zero(ls->div->row[k][1 + j]))
continue;
+ ls = isl_local_space_cow(ls);
+ if (!ls)
+ goto error;
+ ls->div = isl_mat_cow(ls->div);
+ if (!ls->div)
+ goto error;
isl_seq_elim(ls->div->row[k] + 1, eq->eq[i], j, total,
&ls->div->row[k][0]);
normalize_div(ls, k);