-release compiler switch and associative arrays

Alex Rønne Petersen xtzgzorex at gmail.com
Sun Oct 9 06:25:43 PDT 2011


On 09-10-2011 13:24, Graham Cole wrote:
> I understand from the documentation that the "-release" compiler switch turns off "array bounds checking for system and trusted functions".
>
> Is it correct that the following code should seg fault when compiled with "-release" ?
>
> string[string] h;
> h["abc"] = "def";
> string s = h["aaa"];
>
> I.e. retrieving from an associative array for a non existent key.
>
> I would have thought that an exception should be generated in this case when compiled with
> "-release" (as it is when compiled without).
>
> This code behaves the same when compiled by both D1 and D2.
>
> Should I report this as a bug ?
>

To generate a sensible exception in the first place, you'd have to 
actually *do* bounds checking. When you disable bounds checking, you're 
just allowing it to read/write beyond the bounds of the array, which any 
sane OS won't be too happy with. :)

- Alex


More information about the Digitalmars-d-learn mailing list