runtime: correctly copy a zero-length buffer backwards

Fixes:
https://github.com/aykevl/tinygo/issues/64
This commit is contained in:
Ayke van Laethem
2018-10-29 14:02:47 +01:00
parent d90d7be8a8
commit 772c6486ab
+1 -5
View File
@@ -54,13 +54,9 @@ func memmove(dst, src unsafe.Pointer, size uintptr) {
return return
} }
// Copy backwards. // Copy backwards.
i := size for i := size; i != 0; {
for {
i-- i--
*(*uint8)(unsafe.Pointer(uintptr(dst) + i)) = *(*uint8)(unsafe.Pointer(uintptr(src) + i)) *(*uint8)(unsafe.Pointer(uintptr(dst) + i)) = *(*uint8)(unsafe.Pointer(uintptr(src) + i))
if i == 0 {
break
}
} }
} }