On Thursday, 27 November 2014 at 00:27:59 UTC, David Held wrote:
On 11/23/2014 3:12 PM, anonymous wrote:
[...]
And even pointer dereferencing is @safe. Invalid ones will fail
with a segfault at run time:
void foo(int* a) @safe {*a = 13;}

Hmm...throwing an exception is a well-defined behavior, but is segfaulting a well-defined behavior of correct D programs? This seems like a peculiar definition of "safe" to me...

Dave

I would personally see that this became a compile-time error in @safe code either always or even better when the compile cannot prove that the operation will never cause an exception at run-time.

Alternatively we could disallow this only in @safe *nothrow* functions.

Reply via email to