summaryrefslogtreecommitdiffstats
path: root/src/segtree.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/segtree.c')
-rw-r--r--src/segtree.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/segtree.c b/src/segtree.c
index 060951c0..5b69ffb9 100644
--- a/src/segtree.c
+++ b/src/segtree.c
@@ -473,10 +473,14 @@ extern void interval_map_decompose(struct expr *set);
static struct expr *expr_value(struct expr *expr)
{
- if (expr->ops->type == EXPR_MAPPING)
+ switch (expr->ops->type) {
+ case EXPR_MAPPING:
return expr->left->key;
- else
+ case EXPR_SET_ELEM:
return expr->key;
+ default:
+ BUG("invalid expression type %s\n", expr->ops->name);
+ }
}
static int expr_value_cmp(const void *p1, const void *p2)