@@@ -2208,30 -2204,24 +2208,35 @@@ static __isl_give isl_printer *print_pw
__isl_keep isl_pw_aff *pwaff)
{
int i;
+ isl_set *domain;
+ isl_space *space;
if (pwaff->n < 1)
isl_die(p->ctx, isl_error_unsupported,
"cannot print empty isl_pw_aff in C format", goto error);
+ space = isl_pw_aff_get_domain_space(pwaff);
+ if (!space)
+ goto error;
+ domain = isl_pw_aff_domain(isl_pw_aff_copy(pwaff));
+
for (i = 0; i < pwaff->n - 1; ++i) {
+ isl_set *set_i;
+
p = isl_printer_print_str(p, "(");
- p = print_set_c(p, space, pwaff->p[i].set);
+
+ set_i = isl_set_copy(pwaff->p[i].set);
+ set_i = isl_set_gist(set_i, isl_set_copy(domain));
- p = print_set_c(p, pwaff->dim, set_i);
++ p = print_set_c(p, space, set_i);
+ isl_set_free(set_i);
+
p = isl_printer_print_str(p, ") ? (");
p = print_aff_c(p, pwaff->p[i].aff);
p = isl_printer_print_str(p, ") : ");
}
+ isl_set_free(domain);
+ isl_space_free(space);
return print_aff_c(p, pwaff->p[pwaff->n - 1].aff);
error: