Struct with default ctor (Was: [dmd-beta] dmd 2.064 beta take 2)
deadalnix
deadalnix at gmail.com
Sun May 19 12:10:04 PDT 2013
On Sunday, 19 May 2013 at 18:46:31 UTC, Walter Bright wrote:
>> You also never provided any convincing solution to the safety
>> hole. We can't
>> even add check only on some edges cases as D also have values
>> types. The only
>> solution we are left with that is really safe is to null check
>> every dereference
>> or give up on @safe.
>
> Please don't make us guess what exactly you mean by this.
This isn't new and I discussed that again and again.
When you dereference null, you hit the first plage, which is
protected on most systems. But if you access an element with
sufficient offset you bypass all protections provided by the type
system and you are back in unsafe world.
And no, putting nullcheck on access of field of sufficient offset
(as propose dby Andrei) isn't enough because we have value types.
Consider :
S[BIG_NUMBER]* a;
auto s = &(*a[SLIGHTLY_BELLOW_CHECK_OFFSET]);
s.fieldAccess; // May not have enough offset to trigget null
check, but still can be usnafe
See bug reports :
http://d.puremagic.com/issues/show_bug.cgi?id=3677
http://d.puremagic.com/issues/show_bug.cgi?id=5176
More information about the Digitalmars-d
mailing list