summaryrefslogtreecommitdiff
path: root/isl_coalesce.c
diff options
context:
space:
mode:
authorSven Verdoolaege <skimo@kotnet.org>2009-10-10 13:14:19 +0200
committerSven Verdoolaege <skimo@kotnet.org>2009-10-12 22:26:24 +0200
commitec21e6de21d784ee1ba32689aebcbda9f786fd30 (patch)
tree0ded21b776138d08814336cc12e9c58e45c20ad8 /isl_coalesce.c
parentd5cbda10655caf8a2b1bbd4532d6c7d78de7d29b (diff)
downloadisl-ec21e6de21d784ee1ba32689aebcbda9f786fd30.tar.gz
isl-ec21e6de21d784ee1ba32689aebcbda9f786fd30.tar.bz2
isl-ec21e6de21d784ee1ba32689aebcbda9f786fd30.zip
isl_tab: improved error handling
Diffstat (limited to 'isl_coalesce.c')
-rw-r--r--isl_coalesce.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/isl_coalesce.c b/isl_coalesce.c
index a1b5f485..0716916f 100644
--- a/isl_coalesce.c
+++ b/isl_coalesce.c
@@ -240,7 +240,8 @@ static int check_facets(struct isl_map *map, int i, int j,
if (stat != STATUS_VALID)
break;
}
- isl_tab_rollback(tabs[i], snap);
+ if (isl_tab_rollback(tabs[i], snap) < 0)
+ return -1;
if (l < map->p[j]->n_ineq)
break;
}
@@ -390,7 +391,8 @@ static int check_adj_eq(struct isl_map *map, int i, int j,
tabs[i] = isl_tab_select_facet(tabs[i], n_eq + k);
super = contains(map, j, ineq_j, tabs[i]);
if (super) {
- isl_tab_rollback(tabs[i], snap2);
+ if (isl_tab_rollback(tabs[i], snap2) < 0)
+ return -1;
map->p[i] = isl_basic_map_cow(map->p[i]);
if (!map->p[i])
return -1;
@@ -399,7 +401,8 @@ static int check_adj_eq(struct isl_map *map, int i, int j,
drop(map, j, tabs);
changed = 1;
} else
- isl_tab_rollback(tabs[i], snap);
+ if (isl_tab_rollback(tabs[i], snap) < 0)
+ return -1;
return changed;
}