Index: kernel/generic/src/cap/cap.c
===================================================================
--- kernel/generic/src/cap/cap.c	(revision 5a5269df4bb8693ab8e38af0622b7fa6365b9535)
+++ kernel/generic/src/cap/cap.c	(revision 9675296fe33ff287a6d2d86321c97dbd34619703)
@@ -88,6 +88,6 @@
 #include <stdlib.h>
 
-#define CAPS_START	(CAP_NIL + 1)
-#define CAPS_SIZE	(INT_MAX - CAPS_START)
+#define CAPS_START	((intptr_t) CAP_NIL + 1)
+#define CAPS_SIZE	(INT_MAX - (int) CAPS_START)
 #define CAPS_LAST	(CAPS_SIZE - 1)
 
Index: kernel/generic/src/lib/strtol.c
===================================================================
--- kernel/generic/src/lib/strtol.c	(revision 5a5269df4bb8693ab8e38af0622b7fa6365b9535)
+++ kernel/generic/src/lib/strtol.c	(revision 9675296fe33ff287a6d2d86321c97dbd34619703)
@@ -245,22 +245,4 @@
 }
 
-static inline intmax_t _strtosigned(const char *nptr, char **endptr, int base,
-    intmax_t min, intmax_t max, errno_t *err, bool nonstd)
-{
-	bool sgn = false;
-	uintmax_t number = _strtoumax(nptr, endptr, base, &sgn, err, nonstd);
-
-	if (number > (uintmax_t) max) {
-		if (sgn && (number - 1 == (uintmax_t) max)) {
-			return min;
-		}
-
-		*err = nonstd ? EOVERFLOW : ERANGE;
-		return (sgn ? min : max);
-	}
-
-	return (sgn ? -number : number);
-}
-
 static inline uintmax_t _strtounsigned(const char *nptr, char **endptr, int base,
     uintmax_t max, errno_t *err, bool nonstd)
