Software Assurance Reference Dataset
Walter Bright via Digitalmars-d
digitalmars-d at puremagic.com
Sun Jul 13 16:35:45 PDT 2014
On 7/13/2014 4:04 AM, "Marc Schütz" <schuetzm at gmx.net>" wrote:
> On Sunday, 13 July 2014 at 03:25:08 UTC, Walter Bright wrote:
>> On 7/11/2014 10:28 AM, deadalnix wrote:
>>> The compiler can ensure that you hit at least every 4k or so.
>>
>> And it already does.
>
> Doesn't look so:
>
> int bar(int a) {
> int[8000] b = void;
> b[$-1] = a;
> return b[$-1];
> }
On Win32:
_D4foo53barFiZi comdat
assume CS:_D4foo53barFiZi
push EBP
mov EBP,ESP
mov EDX,7
L8: sub ESP,01000h
test [ESP],ESP
dec EDX
jne L8
sub ESP,0D04h
lea ECX,-8[EBP]
mov [ECX],EAX
mov EAX,-8[EBP]
leave
ret
It doesn't do it on Linux because gcc doesn't do it. But the capability is in
the back end, and it does it for alloca(), too.
More information about the Digitalmars-d
mailing list