While this code: typedef int Int2 = 2; auto a = cast(int[])(new Int2[1000]); Produces: pushl %esi subl $8, %esp movl $1000, 4(%esp) movl $_D20TypeInfo_ATmain4Int26__initZ, (%esp) xorl %esi, %esi call _d_newarrayiT movl %esi, %ecx (I haven't taken the running time, so I don't know if this idiom is more efficient with LDC). Bye, bearophile