comparison gen/arrays.cpp @ 280:10554729bd02 trunk

[svn r301] Fixed incorrect codegen with array slice assigns.
author ChristianK
date Fri, 20 Jun 2008 23:27:59 +0200
parents 665b81613475
children a3b7c19c866c
comparison
equal deleted inserted replaced
279:a137ed004205 280:10554729bd02
362 LLValue* ret = 0; 362 LLValue* ret = 0;
363 if (e->len != 0) { 363 if (e->len != 0) {
364 // this means it's a real slice 364 // this means it's a real slice
365 ret = e->ptr; 365 ret = e->ptr;
366 366
367 size_t elembsz = getABITypeSize(ret->getType()); 367 size_t elembsz = getABITypeSize(ret->getType()->getContainedType(0));
368 llvm::ConstantInt* elemsz = llvm::ConstantInt::get(DtoSize_t(), elembsz, false); 368 llvm::ConstantInt* elemsz = llvm::ConstantInt::get(DtoSize_t(), elembsz, false);
369 369
370 if (isaConstantInt(e->len)) { 370 if (isaConstantInt(e->len)) {
371 sz = llvm::ConstantExpr::getMul(elemsz, isaConstant(e->len)); 371 sz = llvm::ConstantExpr::getMul(elemsz, isaConstant(e->len));
372 } 372 }