On Wednesday, 3 January 2018 at 22:12:01 UTC, Jonathan M Davis wrote:
On Wednesday, January 03, 2018 22:02:22 Mark via Digitalmars-d-learn wrote:
The documentation says the modification of pointer values is not allowed in safe functions. Yet the following compiles fine on dmd:

void main() @safe
{
  int* x = new int;
  int* y = new int;
  y=x;
}

Is this simply a compiler bug?

Where are you reading that in the documentation? There's nothing unsafe whatsoever about assigning one pointer to another.

Now, pointer arithmetic is unsafe, and that's forbidden in @safe functions. So, I suspect that you're ether misunderstanding the documentation and/or the documentation isn't clear enough.

- Jonathan M Davis

https://dlang.org/spec/function.html#safe-functions

"The following operations are not allowed in safe functions:

[...]
- No modification of pointer values.
[...]"

Reply via email to