mescc: Tinycc support: malloc,memcpy.
authorJan Nieuwenhuizen <janneke@gnu.org>
Thu, 27 Jul 2017 16:51:58 +0000 (18:51 +0200)
committerJan Nieuwenhuizen <janneke@gnu.org>
Thu, 27 Jul 2017 16:51:58 +0000 (18:51 +0200)
* mlibc/libc-mes.c (malloc): Rewrite.
* mlibc/libc-mes+tcc.c (memcpy): Implement.

mlibc/libc-mes+tcc.c
mlibc/libc-mes.c

index 272e4605b351eb80f021a04e212af35263e0c999..0ada0c1dd336bc88f0634403e1c7f0b82df85d51 100644 (file)
@@ -148,7 +148,10 @@ longjmp (jmp_buf env, int val)
 void *
 memcpy (void *dest, void const *src, size_t n)
 {
-  return 0;
+  char* p = dest;
+  char* q = src;
+  while (n--) *p++ = *q++;
+  return dest;
 }
 
 void *
index 1a60215f4ddb728887fd57eec50c1af1cfbf2269..a81727a9b6fc0f77bf2a6b1b41b45740a65fcd0a 100644 (file)
@@ -311,10 +311,11 @@ char *g_brk = 0;
 void *
 malloc (size_t size)
 {
-  if (!g_brk) g_brk = brk (0);
+  if (!g_brk)
+    g_brk = brk (0);
+  if (brk (g_brk + size) == -1)
+    return 0;
   char *p = g_brk;
-  if (size < 0 || brk (g_brk + size) == -1)
-      return 0;
   g_brk += size;
   return p;
 }