[svn r227] Fixed: crash in lifetime.d when resizing array of AAs by .length assignment.

This commit is contained in:
Tomas Lindquist Olsen 2008-05-27 19:53:29 +02:00
parent a954f06e90
commit 6b735db510
4 changed files with 18 additions and 10 deletions

View file

@ -545,7 +545,10 @@ DSliceValue* DtoResizeDynArray(Type* arrayType, DValue* array, DValue* newdim)
assert(arrayType);
assert(arrayType->toBasetype()->ty == Tarray);
bool zeroInit = arrayType->toBasetype()->nextOf()->isZeroInit();
// decide on what runtime function to call based on whether the type is zero initialized
bool zeroInit = arrayType->toBasetype()->next->isZeroInit();
// call runtime
llvm::Function* fn = LLVM_D_GetRuntimeFunction(gIR->module, zeroInit ? "_d_arraysetlengthT" : "_d_arraysetlengthiT" );
llvm::SmallVector<llvm::Value*,4> args;