Index: boot/generic/include/memstr.h
===================================================================
--- boot/generic/include/memstr.h	(revision 193d280c34f38846eccfa1ecce71975f9ad92398)
+++ boot/generic/include/memstr.h	(revision 53031c207fe3e604f18be745ce8f0d770315f9ca)
@@ -36,8 +36,11 @@
 
 extern void *memcpy(void *, const void *, size_t)
-    __attribute__ ((optimize("-fno-tree-loop-distribute-patterns")));
+    __attribute__((nonnull(1, 2)))
+    __attribute__((optimize("-fno-tree-loop-distribute-patterns")));
 extern void *memset(void *, int, size_t)
-    __attribute__ ((optimize("-fno-tree-loop-distribute-patterns")));
-extern void *memmove(void *, const void *, size_t);
+    __attribute__((nonnull(1)))
+    __attribute__((optimize("-fno-tree-loop-distribute-patterns")));
+extern void *memmove(void *, const void *, size_t)
+    __attribute__((nonnull(1, 2)));
 
 #endif
Index: kernel/generic/include/lib/memfnc.h
===================================================================
--- kernel/generic/include/lib/memfnc.h	(revision 193d280c34f38846eccfa1ecce71975f9ad92398)
+++ kernel/generic/include/lib/memfnc.h	(revision 53031c207fe3e604f18be745ce8f0d770315f9ca)
@@ -46,6 +46,8 @@
 
 extern void *memset(void *, int, size_t)
+    __attribute__((nonnull(1)))
     ATTRIBUTE_OPTIMIZE("-fno-tree-loop-distribute-patterns") DO_NOT_DISCARD;
 extern void *memcpy(void *, const void *, size_t)
+    __attribute__((nonnull(1, 2)))
     ATTRIBUTE_OPTIMIZE("-fno-tree-loop-distribute-patterns") DO_NOT_DISCARD;
 
Index: kernel/generic/include/memstr.h
===================================================================
--- kernel/generic/include/memstr.h	(revision 193d280c34f38846eccfa1ecce71975f9ad92398)
+++ kernel/generic/include/memstr.h	(revision 53031c207fe3e604f18be745ce8f0d770315f9ca)
@@ -48,7 +48,10 @@
 #define memcpy(dst, src, cnt)  __builtin_memcpy((dst), (src), (cnt))
 
-extern void memsetb(void *, size_t, uint8_t);
-extern void memsetw(void *, size_t, uint16_t);
-extern void *memmove(void *, const void *, size_t) DO_NOT_DISCARD;
+extern void memsetb(void *, size_t, uint8_t)
+    __attribute__((nonnull(1)));
+extern void memsetw(void *, size_t, uint16_t)
+    __attribute__((nonnull(1)));
+extern void *memmove(void *, const void *, size_t)
+    __attribute__((nonnull(1, 2))) DO_NOT_DISCARD;
 
 #endif
Index: kernel/generic/include/mm/slab.h
===================================================================
--- kernel/generic/include/mm/slab.h	(revision 193d280c34f38846eccfa1ecce71975f9ad92398)
+++ kernel/generic/include/mm/slab.h	(revision 53031c207fe3e604f18be745ce8f0d770315f9ca)
@@ -142,5 +142,6 @@
 extern void *malloc(size_t, unsigned int)
     __attribute__((malloc));
-extern void *realloc(void *, size_t, unsigned int);
+extern void *realloc(void *, size_t, unsigned int)
+    __attribute__((warn_unused_result));
 extern void free(void *);
 
Index: uspace/lib/c/include/malloc.h
===================================================================
--- uspace/lib/c/include/malloc.h	(revision 193d280c34f38846eccfa1ecce71975f9ad92398)
+++ uspace/lib/c/include/malloc.h	(revision 53031c207fe3e604f18be745ce8f0d770315f9ca)
@@ -44,5 +44,6 @@
 extern void *memalign(const size_t align, const size_t size)
     __attribute__((malloc));
-extern void *realloc(const void *addr, const size_t size);
+extern void *realloc(const void *addr, const size_t size)
+    __attribute__((warn_unused_result));
 extern void free(const void *addr);
 extern void *heap_check(void);
Index: uspace/lib/c/include/mem.h
===================================================================
--- uspace/lib/c/include/mem.h	(revision 193d280c34f38846eccfa1ecce71975f9ad92398)
+++ uspace/lib/c/include/mem.h	(revision 53031c207fe3e604f18be745ce8f0d770315f9ca)
@@ -40,9 +40,13 @@
 
 extern void *memset(void *, int, size_t)
+    __attribute__((nonnull(1)))
     ATTRIBUTE_OPTIMIZE("-fno-tree-loop-distribute-patterns");
 extern void *memcpy(void *, const void *, size_t)
+    __attribute__((nonnull(1, 2)))
     ATTRIBUTE_OPTIMIZE("-fno-tree-loop-distribute-patterns");
-extern void *memmove(void *, const void *, size_t);
-extern int memcmp(const void *, const void *, size_t);
+extern void *memmove(void *, const void *, size_t)
+    __attribute__((nonnull(1, 2)));
+extern int memcmp(const void *, const void *, size_t)
+    __attribute__((nonnull(1, 2)));
 
 #endif
Index: uspace/lib/c/include/task.h
===================================================================
--- uspace/lib/c/include/task.h	(revision 193d280c34f38846eccfa1ecce71975f9ad92398)
+++ uspace/lib/c/include/task.h	(revision 53031c207fe3e604f18be745ce8f0d770315f9ca)
@@ -60,5 +60,6 @@
 extern int task_spawn(task_id_t *, task_wait_t *, const char *path, int,
     va_list ap);
-extern int task_spawnl(task_id_t *, task_wait_t *, const char *path, ...);
+extern int task_spawnl(task_id_t *, task_wait_t *, const char *path, ...)
+    __attribute__((sentinel));
 
 extern int task_setup_wait(task_id_t, task_wait_t *);
Index: uspace/lib/posix/include/posix/stdlib.h
===================================================================
--- uspace/lib/posix/include/posix/stdlib.h	(revision 193d280c34f38846eccfa1ecce71975f9ad92398)
+++ uspace/lib/posix/include/posix/stdlib.h	(revision 53031c207fe3e604f18be745ce8f0d770315f9ca)
@@ -116,7 +116,10 @@
 
 /* Memory Allocation */
-extern void *__POSIX_DEF__(malloc)(size_t size);
-extern void *__POSIX_DEF__(calloc)(size_t nelem, size_t elsize);
-extern void *__POSIX_DEF__(realloc)(void *ptr, size_t size);
+extern void *__POSIX_DEF__(malloc)(size_t size)
+    __attribute__((malloc));
+extern void *__POSIX_DEF__(calloc)(size_t nelem, size_t elsize)
+    __attribute__((malloc));
+extern void *__POSIX_DEF__(realloc)(void *ptr, size_t size)
+    __attribute__((warn_unused_result));
 extern void __POSIX_DEF__(free)(void *ptr);
 
Index: uspace/lib/posix/include/posix/string.h
===================================================================
--- uspace/lib/posix/include/posix/string.h	(revision 193d280c34f38846eccfa1ecce71975f9ad92398)
+++ uspace/lib/posix/include/posix/string.h	(revision 53031c207fe3e604f18be745ce8f0d770315f9ca)
@@ -67,7 +67,10 @@
 /* From mem.h */
 // #define bzero(ptr, len)  memset((ptr), 0, (len))
-extern void *memset(void *, int, size_t);
-extern void *memcpy(void *, const void *, size_t);
-extern void *memmove(void *, const void *, size_t);
+extern void *memset(void *, int, size_t)
+    __attribute__((nonnull(1)));
+extern void *memcpy(void *, const void *, size_t)
+    __attribute__((nonnull(1, 2)));
+extern void *memmove(void *, const void *, size_t)
+    __attribute__((nonnull(1, 2)));
 
 
