From 03307a0903f1ca42ba8828a2672df5806716ded6 Mon Sep 17 00:00:00 2001
From: Wolfgang Bumiller <wolfgang.linux@bumiller.com>
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.5