static void interval_expr_copy(struct expr *dst, struct expr *src)
{
+ assert(dst->etype == EXPR_SET_ELEM);
+ assert(src->etype == EXPR_SET_ELEM);
+
if (src->comment)
dst->comment = xstrdup(src->comment);
if (src->timeout)
struct expr *i, *key;
mpz_t val;
+ assert(left->etype == EXPR_SET_ELEM);
+ assert(!right || right->etype == EXPR_SET_ELEM);
+
mpz_init2(val, set->key->len);
list_for_each_entry(i, &expr_set(set->init)->expressions, list) {
{
struct expr *elem;
+ assert(low->etype == EXPR_SET_ELEM);
+
if (low->key->etype == EXPR_MAPPING) {
expr = mapping_expr_alloc(&low->location, expr,
expr_clone(low->key->right));
char data[len + 1];
struct expr *expr;
+ assert(e->etype == EXPR_SET_ELEM);
+
if (expr_basetype(expr_value(e))->type != TYPE_STRING)
return expr_clone(e);
{
struct expr *elem;
+ assert(expr->etype == EXPR_SET_ELEM);
+ assert(orig->etype == EXPR_SET_ELEM);
+
switch (expr->etype) {
case EXPR_SET_ELEM:
list_splice_init(&orig->stmt_list, &expr->stmt_list);
struct expr *e2 = *(void * const *)p2;
int ret;
+ assert(e1->etype == EXPR_SET_ELEM);
+ assert(e2->etype == EXPR_SET_ELEM);
+
if (expr_value(e1)->etype == EXPR_CONCAT)
return -1;
unsigned int prefix_len;
struct expr *prefix;
+ assert(low->etype == EXPR_SET_ELEM);
+ assert(i->etype == EXPR_SET_ELEM);
+
prefix_len = expr_value(i)->len - mpz_scan0(range, 0);
prefix = prefix_expr_alloc(&low->location,
expr_clone(expr_value(low)),
char data[len + 2];
struct expr *expr;
+ assert(low->etype == EXPR_SET_ELEM);
+ assert(i->etype == EXPR_SET_ELEM);
+
prefix_len = expr_value(i)->len - mpz_scan0(range, 0);
if (prefix_len > i->len || prefix_len % BITS_PER_BYTE)
{
struct expr *tmp;
+ assert(low->etype == EXPR_SET_ELEM);
+ assert(i->etype == EXPR_SET_ELEM);
+
tmp = constant_expr_alloc(&low->location, low->dtype,
low->byteorder, expr_value(low)->len,
NULL);
struct expr *expr;
mpz_t range, p;
+ assert(low->etype == EXPR_SET_ELEM);
+ assert(i->etype == EXPR_SET_ELEM);
+
mpz_init(range);
mpz_init(p);
for (m = 0; m < size; m++) {
i = elements[m];
+ assert(i->etype == EXPR_SET_ELEM);
+
if (i->key->flags & EXPR_F_INTERVAL_END)
interval = false;
else if (interval) {
for (n = 0; n < size; n++) {
i = ranges[n];
+ assert(i->etype == EXPR_SET_ELEM);
+
if (low == NULL) {
if (i->key->flags & EXPR_F_INTERVAL_END) {
/*