mirror of
https://github.com/xomboverlord/ldc.git
synced 2026-01-11 18:33:14 +01:00
- Versioned Expresssion::toElem with #if IN_DMD/IN_LLVM.
- Eliminated the DLRValue DValue. - Implemented proactive handling of l-value CastExpS. - Minor tweak in runtime memory.d .
This commit is contained in:
@@ -429,16 +429,7 @@ DValue* DtoCastComplex(Loc& loc, DValue* val, Type* _to)
|
||||
}
|
||||
|
||||
LLValue* pair = DtoAggrPair(DtoType(_to), re, im);
|
||||
DValue* rval = new DImValue(_to, pair);
|
||||
|
||||
// if the value we're casting is not a lvalue, the cast value can't be either
|
||||
if (!val->isLVal()) {
|
||||
return rval;
|
||||
}
|
||||
|
||||
// unfortunately at this point, the cast value can show up as the lvalue for += and similar expressions.
|
||||
// so we need to maintain the storage
|
||||
return new DLRValue(val, rval);
|
||||
return new DImValue(_to, pair);
|
||||
}
|
||||
else if (to->isimaginary()) {
|
||||
// FIXME: this loads both values, even when we only need one
|
||||
|
||||
Reference in New Issue
Block a user