Lines Matching refs:old
250 struct symbol *old = expr->ctype;
254 old = base_type(old, &oldmod, &oldas);
258 if (old == new && oldas == newas) {
315 static struct expression * cast_to(struct expression *old, struct symbol *type)
319 warn_for_different_enum_types (old->pos, old->ctype, type);
321 if (old->ctype != &null_ctype && is_same_type(old, type))
322 return old;
324 expr = alloc_expression(old->pos, EXPR_IMPLIED_CAST);
327 expr->cast_expression = old;
328 expr->flags = cast_flags(expr, old);
2512 * Get designators for next element, switch old ones to EXPR_POS.
2514 * The innermost designator is returned in *v. Designators in old
2517 static struct expression *next_designators(struct expression *old,
2523 if (!old)
2525 if (old->type == EXPR_INDEX) {
2529 copy = next_designators(old->idx_expression,
2530 old->ctype, e, v);
2532 n = old->idx_to + 1;
2533 if (array_element_offset(old->ctype->bit_size, n) == ctype->bit_size) {
2534 convert_index(old);
2540 n = old->idx_to;
2546 new->ctype = old->ctype;
2547 convert_index(old);
2548 } else if (old->type == EXPR_IDENTIFIER) {
2553 copy = next_designators(old->ident_expression,
2554 old->ctype, e, v);
2556 field = old->field->next_subobject;
2558 convert_ident(old);
2569 * The "old->offset - old->field->offset"
2573 offset = old->offset - old->field->offset;
2575 field = old->field;
2584 convert_ident(old);
2856 struct expression *old = expr->cast_expression;
2859 int oclass = classify_type(degenerate(old), &otype);
2869 ctype = usual_conversions(expr->op, old, zero,
2872 expr->left = cast_to(old, ctype);
2878 static int cast_flags(struct expression *expr, struct expression *old)
2886 flags = old->flags & ~CEF_CONST_MASK;
2897 if (old->flags & CEF_ADDR)
2910 else if (old->flags & CEF_FLOAT)
2924 if (old->flags & (CEF_ICE | CEF_ADDR))