On Thursday, 10 January 2013 at 00:50:30 UTC, Adam D. Ruppe wrote:
On Thursday, 10 January 2013 at 00:18:26 UTC, Walter Bright wrote:
And that is not dereferencing null, it is dereferencing 0x1000000.

Yes, but it is worth noting that dmd will happily compile that code, even if marked @safe - just because the pointer on the language level is null doesn't mean it is memory safe at the assembly level.

the generated code with @safe is still just what we'd expect too:
   3:   31 c0                   xor    eax,eax
5: c7 80 00 00 10 00 0a mov DWORD PTR [eax+0x100000],0xa

That brings us to another point.

It does not matter how safe a language might be, if someone can change the assembly then everything is possible.

Or am I going too off-topic?

Reply via email to