On Tuesday, 5 September 2017 at 18:32:34 UTC, Johan Engelen wrote:
My point was that that is not workable. The "null dereference"
is a D language construct, not something that the machine is
doing. It's ridiculous to specify that reading from address
1_000_000 should crash the program, yet that is exactly what is
specified by D when running this code (and thus null checks
need to be injected in many places to be spec compliant):
```
struct S {
ubyte[1_000_000] a;
int b;
}
void main() {
S* s = null;
s.b = 1;
}
```
-Johan
Perhaps it should nullcheck exceptionally large types which may
overflow the memory protected area, but not others?