summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/segtree.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/src/segtree.c b/src/segtree.c
index fa11967a..32e071f6 100644
--- a/src/segtree.c
+++ b/src/segtree.c
@@ -522,9 +522,13 @@ static void set_insert_interval(struct expr *set, struct seg_tree *tree,
mpz_set(expr->value, ei->left);
expr = set_elem_expr_alloc(&internal_location, expr);
- if (ei->expr != NULL && ei->expr->ops->type == EXPR_MAPPING)
- expr = mapping_expr_alloc(&ei->expr->location, expr,
- expr_get(ei->expr->right));
+ if (ei->expr != NULL) {
+ if (ei->expr->comment)
+ expr->comment = xstrdup(ei->expr->comment);
+ if (ei->expr->ops->type == EXPR_MAPPING)
+ expr = mapping_expr_alloc(&ei->expr->location, expr,
+ expr_get(ei->expr->right));
+ }
if (ei->flags & EI_F_INTERVAL_END)
expr->flags |= EXPR_F_INTERVAL_END;