diff gen/toir.cpp @ 1270:dd135ff697fa

Fixed class default initializers and type generation. Bug #260 is fixed.
author Tomas Lindquist Olsen <tomas.l.olsen gmail com>
date Mon, 27 Apr 2009 03:40:40 +0200
parents 9014d7f0433f
children 0686701178d3
line wrap: on
line diff
--- a/gen/toir.cpp	Mon Apr 27 01:43:29 2009 +0200
+++ b/gen/toir.cpp	Mon Apr 27 03:40:40 2009 +0200
@@ -217,7 +217,9 @@
         assert(ts->sym);
         ts->sym->codegen(Type::sir);
 
-        return new DVarValue(type, ts->sym->ir.irStruct->getInitSymbol());
+        LLValue* initsym = ts->sym->ir.irStruct->getInitSymbol();
+        initsym = DtoBitCast(initsym, DtoType(ts->pointerTo()));
+        return new DVarValue(type, initsym);
     }
     else
     {
@@ -1645,7 +1647,7 @@
         else {
             assert(ts->sym);
             ts->sym->codegen(Type::sir);
-            DtoAggrCopy(mem,ts->sym->ir.irStruct->getInitSymbol());
+            DtoAggrCopy(mem, ts->sym->ir.irStruct->getInitSymbol());
         }
         return new DImValue(type, mem);
     }