revert 1784

This commit is contained in:
Moritz Warning
2011-01-11 03:20:35 +01:00
parent 9ca6717b5b
commit ec2ea65977

View File

@@ -85,6 +85,7 @@ DValue* VarExp::toElem(IRState* p)
if (cachedLvalue)
{
LLValue* V = cachedLvalue;
cachedLvalue = NULL;
return new DVarValue(type, V);
}
@@ -603,9 +604,6 @@ DValue* X##AssignExp::toElem(IRState* p) \
e3.type = e1->type; \
DValue* dst = findLvalue(p, e1)->toElem(p); \
DValue* res = e3.toElem(p); \
while(e1->op == TOKcast) \
e1 = ((CastExp*)e1)->e1; \
e1->cachedLvalue = NULL; \
DValue* stval = DtoCast(loc, res, dst->getType()); \
DtoAssign(loc, dst, stval); \
return DtoCast(loc, res, type); \
@@ -1140,6 +1138,7 @@ DValue* PtrExp::toElem(IRState* p)
if (cachedLvalue)
{
V = cachedLvalue;
cachedLvalue = NULL;
}
else
{
@@ -1166,6 +1165,7 @@ DValue* DotVarExp::toElem(IRState* p)
{
Logger::println("using cached lvalue");
LLValue *V = cachedLvalue;
cachedLvalue = NULL;
VarDeclaration* vd = var->isVarDeclaration();
assert(vd);
return new DVarValue(type, vd, V);
@@ -1304,6 +1304,7 @@ DValue* IndexExp::toElem(IRState* p)
if (cachedLvalue)
{
LLValue* V = cachedLvalue;
cachedLvalue = NULL;
return new DVarValue(type, V);
}