Commit e56f903522

Andrew Kelley <superjoe30@gmail.com>
2017-02-05 05:04:07
memset and memcpy implementations need not return dest
1 parent 64a0510
Changed files (1)
std/builtin.zig
@@ -1,31 +1,31 @@
 // These functions are provided when not linking against libc because LLVM
 // sometimes generates code that calls them.
 
-export fn memset(dest: ?&u8, c: u8, n: usize) -> ?&u8 {
+// Note that these functions do not return `dest`, like the libc API.
+// The semantics of these functions is dictated by the corresponding
+// LLVM intrinsics, not by the libc API.
+
+export fn memset(dest: ?&u8, c: u8, n: usize) {
     @setDebugSafety(this, false);
 
     if (n == 0)
-        return dest;
+        return;
 
     const d = ??dest;
     var index: usize = 0;
     while (index != n; index += 1)
         d[index] = c;
-
-    return dest;
 }
 
-export fn memcpy(noalias dest: ?&u8, noalias src: ?&const u8, n: usize) -> ?&u8 {
+export fn memcpy(noalias dest: ?&u8, noalias src: ?&const u8, n: usize) {
     @setDebugSafety(this, false);
 
     if (n == 0)
-        return dest;
+        return;
 
     const d = ??dest;
     const s = ??src;
     var index: usize = 0;
     while (index != n; index += 1)
         d[index] = s[index];
-
-    return dest;
 }