use the correct type when taking the address of a pointer derefernece

This commit is contained in:
Bill Currie 2003-05-13 19:42:14 +00:00
parent dd39fde9cf
commit f59f766af1
2 changed files with 2 additions and 2 deletions

View File

@ -338,7 +338,7 @@ emit_move_expr (expr_t *e)
src_type = get_type (e2); src_type = get_type (e2);
src = emit_sub_expr (e2, 0); src = emit_sub_expr (e2, 0);
dst = emit_sub_expr (e1, 0); dst = emit_sub_expr (e1, 0);
if (dst_type->type == ev_struct && src_type->type == ev_struct) { if (dst_type->type == ev_struct && src_type->type == ev_struct) {
size_expr = new_short_expr (type_size (dst->type)); size_expr = new_short_expr (type_size (dst->type));
} else if (dst_type->type == ev_struct) { } else if (dst_type->type == ev_struct) {

View File

@ -2097,7 +2097,7 @@ address_expr (expr_t *e1, expr_t *e2, type_t *t)
e = e1->e.expr.e1; e = e1->e.expr.e1;
type = get_type (e)->aux_type; type = get_type (e)->aux_type;
if (e->type == ex_expr && e->e.expr.op == '.') { if (e->type == ex_expr && e->e.expr.op == '.') {
e->e.expr.type = pointer_type (e->e.expr.type); e->e.expr.type = e->e.expr.type;
e->e.expr.op = '&'; e->e.expr.op = '&';
} }
break; break;