From c3bbf920555f83634940f3e3993c649f6e3cc699 Mon Sep 17 00:00:00 2001 From: Sven Verdoolaege Date: Fri, 25 Jun 2010 19:40:02 +0200 Subject: isl_tab.c: close_row: fix error handling --- isl_tab.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'isl_tab.c') diff --git a/isl_tab.c b/isl_tab.c index 5ea612cf..695f7bac 100644 --- a/isl_tab.c +++ b/isl_tab.c @@ -1534,11 +1534,15 @@ static int close_row(struct isl_tab *tab, struct isl_tab_var *var) if (isl_tab_push_var(tab, isl_tab_undo_zero, var) < 0) return -1; for (j = tab->n_dead; j < tab->n_col; ++j) { + int recheck; if (isl_int_is_zero(mat->row[var->index][off + j])) continue; isl_assert(tab->mat->ctx, isl_int_is_neg(mat->row[var->index][off + j]), return -1); - if (isl_tab_kill_col(tab, j)) + recheck = isl_tab_kill_col(tab, j); + if (recheck < 0) + return -1; + if (recheck) --j; } if (isl_tab_mark_redundant(tab, var->index) < 0) -- cgit v1.2.3