isl_basic_map_simplify: avoid infinite loop on empty input
[platform/upstream/isl.git] / isl_tab_pip.c
index 9663979..8d16d5c 100644 (file)
@@ -4989,13 +4989,19 @@ __isl_give isl_vec *isl_tab_basic_set_non_trivial_lexmin(
 {
        int i, j;
        int r;
-       isl_ctx *ctx = isl_basic_set_get_ctx(bset);
+       isl_ctx *ctx;
        isl_vec *v = NULL;
-       isl_vec *sol = isl_vec_alloc(ctx, 0);
+       isl_vec *sol = NULL;
        struct isl_tab *tab;
        struct isl_trivial *triv = NULL;
        int level, init;
 
+       if (!bset)
+               return NULL;
+
+       ctx = isl_basic_set_get_ctx(bset);
+       sol = isl_vec_alloc(ctx, 0);
+
        tab = tab_for_lexmin(bset, NULL, 0, 0);
        if (!tab)
                goto error;
@@ -5111,6 +5117,9 @@ __isl_give isl_vec *isl_tab_basic_set_non_neg_lexmin(
        isl_ctx *ctx = isl_basic_set_get_ctx(bset);
        isl_vec *sol;
 
+       if (!bset)
+               return NULL;
+
        tab = tab_for_lexmin(bset, NULL, 0, 0);
        if (!tab)
                goto error;