Fixed class default initializers and type generation. Bug #260 is fixed.

This commit is contained in:
Tomas Lindquist Olsen
2009-04-27 03:40:40 +02:00
parent 3bd5cf70c2
commit ba38e15f0d
9 changed files with 169 additions and 44 deletions

View File

@@ -217,7 +217,9 @@ DValue* VarExp::toElem(IRState* p)
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 @@ DValue* NewExp::toElem(IRState* p)
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);
}