diff options
Diffstat (limited to 'src/segtree.c')
-rw-r--r-- | src/segtree.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/segtree.c b/src/segtree.c index 5426e24f..e3bca4ca 100644 --- a/src/segtree.c +++ b/src/segtree.c @@ -552,7 +552,9 @@ void interval_map_decompose(struct expr *set) if (!mpz_cmp_ui(range, 0)) compound_expr_add(set, low); - else if (!range_is_prefix(range) || mpz_cmp_ui(p, 0)) { + else if ((!range_is_prefix(range) || + !(i->dtype->flags & DTYPE_F_PREFIX)) || + mpz_cmp_ui(p, 0)) { struct expr *tmp; tmp = constant_expr_alloc(&low->location, low->dtype, |