From: Sven Verdoolaege Date: Tue, 21 Sep 2010 11:53:16 +0000 (+0200) Subject: isl_printer_print_qpolynomial: put parentheses around lone integer division X-Git-Tag: isl-0.05~162 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=794007aed0299b0280009fb8b31053b9dedeff39;p=platform%2Fupstream%2Fisl.git isl_printer_print_qpolynomial: put parentheses around lone integer division Otherwise, the integer division could be mistaken for a tuple. Signed-off-by: Sven Verdoolaege --- diff --git a/isl_output.c b/isl_output.c index fc70284..64b4119 100644 --- a/isl_output.c +++ b/isl_output.c @@ -1266,9 +1266,9 @@ static __isl_give isl_printer *print_pow(__isl_take isl_printer *p, static __isl_give isl_printer *upoly_print(__isl_keep struct isl_upoly *up, __isl_keep isl_dim *dim, __isl_keep isl_mat *div, - __isl_take isl_printer *p) + __isl_take isl_printer *p, int outer) { - int i, n, first; + int i, n, first, print_parens; struct isl_upoly_rec *rec; if (!p || !up || !dim || !div) @@ -1281,7 +1281,8 @@ static __isl_give isl_printer *upoly_print(__isl_keep struct isl_upoly *up, if (!rec) goto error; n = upoly_rec_n_non_zero(rec); - if (n > 1) + print_parens = n > 1 || (outer && rec->up.var >= isl_dim_total(dim)); + if (print_parens) p = isl_printer_print_str(p, "("); for (i = 0, first = 1; i < rec->n; ++i) { if (isl_upoly_is_zero(rec->p[i])) @@ -1300,7 +1301,7 @@ static __isl_give isl_printer *upoly_print(__isl_keep struct isl_upoly *up, if (!first) p = isl_printer_print_str(p, " + "); if (i == 0 || !isl_upoly_is_one(rec->p[i])) - p = upoly_print(rec->p[i], dim, div, p); + p = upoly_print(rec->p[i], dim, div, p, 0); } first = 0; if (i == 0) @@ -1310,7 +1311,7 @@ static __isl_give isl_printer *upoly_print(__isl_keep struct isl_upoly *up, p = isl_printer_print_str(p, " * "); p = print_pow(p, dim, div, rec->up.var, i); } - if (n > 1) + if (print_parens) p = isl_printer_print_str(p, ")"); return p; error: @@ -1323,7 +1324,7 @@ __isl_give isl_printer *isl_printer_print_qpolynomial(__isl_take isl_printer *p, { if (!p || !qp) goto error; - p = upoly_print(qp->upoly, qp->dim, qp->div, p); + p = upoly_print(qp->upoly, qp->dim, qp->div, p, 1); return p; error: isl_printer_free(p); @@ -1627,7 +1628,7 @@ static __isl_give isl_printer *print_qpolynomial_c(__isl_take isl_printer *p, qp = isl_qpolynomial_mul(qp, f); } if (qp) - p = upoly_print(qp->upoly, qp->dim, qp->div, p); + p = upoly_print(qp->upoly, qp->dim, qp->div, p, 0); if (!isl_int_is_one(den)) { p = isl_printer_print_str(p, ")/"); p = isl_printer_print_isl_int(p, den);