From 03307a0903f1ca42ba8828a2672df5806716ded6 Mon Sep 17 00:00:00 2001 From: Wolfgang Bumiller Date: Sat, 28 Jul 2012 21:59:34 +0200 Subject: [PATCH] ir_block_create_fieldaddress to pass on fieldtype from its input field --- ir.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/ir.c b/ir.c index b3d49ec..35f00b2 100644 --- a/ir.c +++ b/ir.c @@ -1270,6 +1270,8 @@ on_error: ir_value* ir_block_create_fieldaddress(ir_block *self, const char *label, ir_value *ent, ir_value *field) { + ir_value *v; + /* Support for various pointer types todo if so desired */ if (ent->vtype != TYPE_ENTITY) return NULL; @@ -1277,7 +1279,9 @@ ir_value* ir_block_create_fieldaddress(ir_block *self, const char *label, ir_val if (field->vtype != TYPE_FIELD) return NULL; - return ir_block_create_general_instr(self, label, INSTR_ADDRESS, ent, field, TYPE_POINTER); + v = ir_block_create_general_instr(self, label, INSTR_ADDRESS, ent, field, TYPE_POINTER); + v->fieldtype = field->fieldtype; + return v; } ir_value* ir_block_create_load_from_ent(ir_block *self, const char *label, ir_value *ent, ir_value *field, int outype) -- 2.39.2