From 8099f0d8f2ed9b59708525acbcb43ff78ca17a2e Mon Sep 17 00:00:00 2001 From: Bill Currie <bill@taniwha.org> Date: Wed, 30 Jul 2003 20:57:50 +0000 Subject: [PATCH] handle addresses of void defs --- tools/qfcc/source/emit.c | 8 ++++---- tools/qfcc/source/expr.c | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/tools/qfcc/source/emit.c b/tools/qfcc/source/emit.c index 1cc97f947..238bee41b 100644 --- a/tools/qfcc/source/emit.c +++ b/tools/qfcc/source/emit.c @@ -342,13 +342,13 @@ emit_move_expr (expr_t *e) if (dst_type->type == ev_struct && src_type->type == ev_struct) { size_expr = new_short_expr (type_size (dst->type)); } else if (dst_type->type == ev_struct) { - //if (dst->alias) - // dst = dst->alias; + if (dst->alias) + dst = dst->alias; dst = emit_sub_expr (address_expr (new_def_expr (dst), 0, 0), 0); size_expr = new_integer_expr (type_size (dst_type)); } else if (src_type->type == ev_struct) { - //if (src->alias) - // src = src->alias; + if (src->alias) + src = src->alias; src = emit_sub_expr (address_expr (new_def_expr (src), 0, 0), 0); size_expr = new_integer_expr (type_size (dst_type->aux_type)); } else { diff --git a/tools/qfcc/source/expr.c b/tools/qfcc/source/expr.c index 3b59cab69..864095afa 100644 --- a/tools/qfcc/source/expr.c +++ b/tools/qfcc/source/expr.c @@ -2097,7 +2097,7 @@ address_expr (expr_t *e1, expr_t *e2, type_t *t) e->e.pointer.val = 0; e->e.pointer.type = t; e->e.pointer.def = def; - } else if (type->type == ev_array) { + } else if (type->type == ev_array || type->type == ev_void) { e = e1; e->type = ex_pointer; e->e.pointer.val = 0;