Mercurial > projects > ldc
diff gen/arrays.cpp @ 399:0e6b4d65d3f8
Give error messages for invalid casts.
This required passing Loc information to certain functions.
Fixes nocompile/b/bug_cgcs_354_A/B.
author | Christian Kamm <kamm incasoftware de> |
---|---|
date | Sat, 26 Jul 2008 17:19:16 +0200 |
parents | 811f82dfddbd |
children | e6e972c5cc17 |
line wrap: on
line diff
--- a/gen/arrays.cpp Sat Jul 26 15:42:05 2008 +0200 +++ b/gen/arrays.cpp Sat Jul 26 17:19:16 2008 +0200 @@ -106,7 +106,7 @@ ////////////////////////////////////////////////////////////////////////////////////////// -void DtoArrayInit(DValue* array, DValue* value) +void DtoArrayInit(Loc& loc, DValue* array, DValue* value) { Logger::println("DtoArrayInit"); LOG_SCOPE; @@ -120,7 +120,7 @@ { val = new llvm::AllocaInst(DtoType(value->getType()), ".tmpparam", gIR->topallocapoint()); DVarValue lval(value->getType(), val, true); - DtoAssign(&lval, value); + DtoAssign(loc, &lval, value); } else { @@ -531,7 +531,7 @@ DValue* e = exp->toElem(gIR); if (!e->inPlace()) - DtoAssign(dptr, e); + DtoAssign(exp->loc, dptr, e); return slice; } @@ -633,7 +633,7 @@ LLValue* mem = slice->ptr; DVarValue* memval = new DVarValue(e1->getType(), mem, true); - DtoAssign(memval, e1); + DtoAssign(exp1->loc, memval, e1); src1 = DtoArrayPtr(e2); @@ -664,7 +664,7 @@ mem = gIR->ir->CreateGEP(mem,len1,"tmp"); DVarValue* memval = new DVarValue(e2->getType(), mem, true); - DtoAssign(memval, e2); + DtoAssign(exp1->loc, memval, e2); return slice; }