Mercurial > projects > ldc
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 } |