unsigned total;
isl_int s;
+ if (!bmap || !vec)
+ return -1;
+
total = 1 + isl_basic_map_total_dim(bmap);
if (total != vec->size)
return -1;
src = isl_basic_map_order_divs(src);
dst = isl_basic_map_cow(dst);
+ if (!dst)
+ return NULL;
dst = isl_basic_map_extend_space(dst, isl_space_copy(dst->dim),
src->n_div, 0, 2 * src->n_div);
if (!dst)
for (i = 1; i < map->n; ++i)
map->p[0] = isl_basic_map_align_divs(map->p[0], map->p[i]);
- for (i = 1; i < map->n; ++i)
+ for (i = 1; i < map->n; ++i) {
map->p[i] = isl_basic_map_align_divs(map->p[i], map->p[0]);
+ if (!map->p[i])
+ return isl_map_free(map);
+ }
ISL_F_CLR(map, ISL_MAP_NORMALIZED);
return map;