No modification of pointer values in safe functions?
Mark
smarksc at gmail.com
Wed Jan 3 22:25:16 UTC 2018
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.
[...]"
More information about the Digitalmars-d-learn
mailing list