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;
     }