diff --git a/gen/llvmhelpers.cpp b/gen/llvmhelpers.cpp index 3ab33053..76f64787 100644 --- a/gen/llvmhelpers.cpp +++ b/gen/llvmhelpers.cpp @@ -1501,12 +1501,17 @@ LLConstant* DtoConstExpInit(Loc loc, Type* type, Expression* exp) if (base->ty == Tvector) { LLConstant* val = exp->toConstElem(gIR); + TypeVector* tv = (TypeVector*)base; + assert(tv->basetype->ty == Tsarray); + dinteger_t elemCount = + static_cast(tv->basetype)->dim->toInteger(); + #if LDC_LLVM_VER == 300 - std::vector Elts(tv->size(loc), val); + std::vector Elts(elemCount, val); return llvm::ConstantVector::get(Elts); #else - return llvm::ConstantVector::getSplat(tv->size(loc), val); + return llvm::ConstantVector::getSplat(elemCount, val); #endif }