Even `memcpy` is claimed dangerous at http://dlang.org/garbage.html
(because of possibility of moving GC, I suppose) but it just creates false positives for GC. `memmove` can even temporary destroy pointers in some overlapping cases like Google answer on "Lucky" `memmove source code` request does.

So I reinvented the wheel and created GC-safe `memmove` analog called `copyOverlapped` with comprehensive unittest coverage:
https://bitbucket.org/denis_sh/misc/src/tip/memutils.d

And I want this or such function to be included in druntime and be used in Phobos because using `memcpy`/`memmove` when even `memcpy` is called dangerous in docs looks incorrect and easily fixable.

P.S.
This post is inspired by bearophile's unanswered post titled "Regarding a recent copy() fix" about really mysterious David Simcha's answer about `memmove`
http://d.puremagic.com/issues/show_bug.cgi?id=7484#c2

Reply via email to