Before, we would perform an "optimization" that would simply
discard any leaves with a bottom when we hadn't seen any leaves
with a solution yet, the intention being that we don't need
to collect bottom leaves if there are no solutions.
However, the bottom leaves may precede solution leaves and
then we would erroneously discard them.
map = isl_map_add(map, isl_basic_map_copy(bmap));
if (isl_basic_map_free_equality(bmap, n_out))
goto error;
- } else if (map->n && data->rest) {
- /* not interested in rest if no sol */
+ } else if (data->rest) {
struct isl_basic_set *bset;
bset = isl_basic_set_from_basic_map(isl_basic_map_copy(bmap));
bset = isl_basic_set_drop_dims(bset, n_in, n_out);