From b3fc41658c86ece2609227632c29285e62f28760 Mon Sep 17 00:00:00 2001 From: Sven Verdoolaege Date: Fri, 5 Jul 2013 17:00:46 +0200 Subject: [PATCH] isl_aff_add: accept NULL pointer on zero-size allocation Signed-off-by: Sven Verdoolaege --- isl_aff.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/isl_aff.c b/isl_aff.c index 5fdb343a..8d8d6f51 100644 --- a/isl_aff.c +++ b/isl_aff.c @@ -1503,6 +1503,7 @@ __isl_give isl_aff *isl_aff_add(__isl_take isl_aff *aff1, int *exp1 = NULL; int *exp2 = NULL; isl_mat *div; + int n_div1, n_div2; if (!aff1 || !aff2) goto error; @@ -1512,12 +1513,14 @@ __isl_give isl_aff *isl_aff_add(__isl_take isl_aff *aff1, isl_die(ctx, isl_error_invalid, "spaces don't match", goto error); - if (aff1->ls->div->n_row == 0 && aff2->ls->div->n_row == 0) + n_div1 = isl_aff_dim(aff1, isl_dim_div); + n_div2 = isl_aff_dim(aff2, isl_dim_div); + if (n_div1 == 0 && n_div2 == 0) return add_expanded(aff1, aff2); - exp1 = isl_alloc_array(ctx, int, aff1->ls->div->n_row); - exp2 = isl_alloc_array(ctx, int, aff2->ls->div->n_row); - if (!exp1 || !exp2) + exp1 = isl_alloc_array(ctx, int, n_div1); + exp2 = isl_alloc_array(ctx, int, n_div2); + if ((n_div1 && !exp1) || (n_div2 && !exp2)) goto error; div = isl_merge_divs(aff1->ls->div, aff2->ls->div, exp1, exp2); -- 2.11.4.GIT