- Replace move_byte_forward() with memcpy. In memcpy implementation,
it copies bytes forward from beginning to end. Otherwise, memmove unit
tests will break.
- Make memmove unit tests work.
| Paths 
 |  Differential  D109316  
[libc] Some clean work with memmove. ClosedPublic Authored by cheng.w on Sep 6 2021, 4:32 AM. 
Details 
 Summary 
 it copies bytes forward from beginning to end. Otherwise, memmove unit 
 
Diff Detail 
 Event Timeline
 
 This revision is now accepted and ready to land.Sep 9 2021, 6:13 AM Closed by commit rGb659b789c03a: [libc] Some clean work with memmove. (authored by cheng.w).  ·  Explain WhySep 10 2021, 1:52 AM This revision was automatically updated to reflect the committed changes. gchatelet added a reverting change: rGcc84ce91293b: Revert "[libc] Some clean work with memmove.".Sep 13 2021, 7:32 AM 
Revision Contents 
 
Diff 371827 libc/src/string/CMakeLists.txt
 libc/src/string/memmove.cpp
 libc/test/src/string/memmove_test.cpp
 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
@gchatelet Is it possible to have an elementary operation CopyBackward? It copies aligned kBlockSize bytes backward.
Acting like:
CopyBackward<kBlockSize>(dst, src, count) { for (size_t i = count / kBlockSize; i > 0; --i) Copy(dst + i * kBlockSize, src + i * kBlockSize, kBlockSize) }