@@ -6239,7 +6239,8 @@ __isl_give isl_map *isl_map_add_basic_map(__isl_take isl_map *map,
isl_basic_map_free(bmap);
return map;
}
- isl_assert(map->ctx, isl_space_is_equal(map->dim, bmap->dim), goto error);
+ if (isl_map_basic_map_check_equal_space(map, bmap) < 0)
+ goto error;
isl_assert(map->ctx, map->n < map->size, goto error);
map->p[map->n] = bmap;
map->n++;
@@ -8771,6 +8772,17 @@ isl_bool isl_set_has_equal_space(__isl_keep isl_set *set1,
return isl_map_has_equal_space(set_to_map(set1), set_to_map(set2));
}
+#undef TYPE1
+#define TYPE1 isl_map
+#undef TYPE2
+#define TYPE2 isl_basic_map
+#undef TYPE_PAIR
+#define TYPE_PAIR isl_map_basic_map
+
+static
+#include "isl_type_has_equal_space_templ.c"
+#include "isl_type_check_equal_space_templ.c"
+
static isl_bool map_is_equal(__isl_keep isl_map *map1, __isl_keep isl_map *map2)
{
isl_bool is_subset;
@@ -556,6 +556,8 @@ isl_stat isl_basic_set_check_equal_space(__isl_keep isl_basic_set *bset1,
__isl_keep isl_basic_set *bset2);
isl_stat isl_basic_map_check_equal_space(__isl_keep isl_basic_map *bmap1,
__isl_keep isl_basic_map *bmap2);
+isl_stat isl_map_basic_map_check_equal_space(__isl_keep isl_map *map,
+ __isl_keep isl_basic_map *bmap);
__isl_give isl_mat *isl_basic_set_extract_equalities(
__isl_keep isl_basic_set *bset);
@@ -3223,9 +3223,8 @@ __isl_give isl_map *isl_map_gist_basic_map(__isl_take isl_map *map,
context = isl_basic_map_remove_redundancies(context);
map = isl_map_cow(map);
- if (!map || !context)
+ if (isl_map_basic_map_check_equal_space(map, context) < 0)
goto error;
- isl_assert(map->ctx, isl_space_is_equal(map->dim, context->dim), goto error);
map = isl_map_compute_divs(map);
if (!map)
goto error;