Mercurial > projects > ldc
diff gen/arrays.cpp @ 585:fbb1a366cfbc
Complex number should now follow the D ABI on x86. They're also treated as first class values now. Big change.
author | Tomas Lindquist Olsen <tomas.l.olsen@gmail.com> |
---|---|
date | Tue, 09 Sep 2008 16:49:47 -0700 |
parents | 39dbe48d3fe2 |
children | 192b82878b78 |
line wrap: on
line diff
--- a/gen/arrays.cpp Mon Sep 08 20:38:55 2008 +0200 +++ b/gen/arrays.cpp Tue Sep 09 16:49:47 2008 -0700 @@ -116,10 +116,10 @@ LLValue* val; // give slices and complex values storage (and thus an address to pass) - if (value->isSlice() || value->isComplex()) + if (value->isSlice()) { val = DtoAlloca(DtoType(value->getType()), ".tmpparam"); - DVarValue lval(value->getType(), val, true); + DVarValue lval(value->getType(), val); DtoAssign(loc, &lval, value); } else @@ -526,7 +526,7 @@ LLValue* ptr = slice->ptr; ptr = llvm::GetElementPtrInst::Create(ptr, idx, "tmp", gIR->scopebb()); - DValue* dptr = new DVarValue(exp->type, ptr, true); + DValue* dptr = new DVarValue(exp->type, ptr); DValue* e = exp->toElem(gIR); @@ -631,7 +631,7 @@ DSliceValue* slice = DtoNewDynArray(type, lenval, false); LLValue* mem = slice->ptr; - DVarValue* memval = new DVarValue(e1->getType(), mem, true); + DVarValue* memval = new DVarValue(e1->getType(), mem); DtoAssign(exp1->loc, memval, e1); src1 = DtoArrayPtr(e2); @@ -662,7 +662,7 @@ DtoMemCpy(mem,src1,bytelen); mem = gIR->ir->CreateGEP(mem,len1,"tmp"); - DVarValue* memval = new DVarValue(e2->getType(), mem, true); + DVarValue* memval = new DVarValue(e2->getType(), mem); DtoAssign(exp1->loc, memval, e2); return slice;