summaryrefslogtreecommitdiff
path: root/lib/vsprintf.c
diff options
context:
space:
mode:
authorDaniel Schwierzeck <daniel.schwierzeck@gmail.com>2012-09-16 06:55:04 +0000
committerTom Rini <trini@ti.com>2012-10-15 11:53:46 -0700
commit7b64f66c58944144ef6f616255fb0c7b3ae865f9 (patch)
tree078142e33716789652131f255ee73dd52faba2d1 /lib/vsprintf.c
parent8acdae681a61d05ef2d93b3c51a20a5257afb610 (diff)
downloadu-boot-imx-7b64f66c58944144ef6f616255fb0c7b3ae865f9.zip
u-boot-imx-7b64f66c58944144ef6f616255fb0c7b3ae865f9.tar.gz
u-boot-imx-7b64f66c58944144ef6f616255fb0c7b3ae865f9.tar.bz2
lib: vsprintf.c: replace NUM_TYPE with s64/u64 types
This fixes warnings when compiling with ELDK-5.2.1 for MIPS64: vsprintf.c: In function 'put_dec': vsprintf.c:258:9: warning: comparison of distinct pointer types lacks a cast [enabled by default] vsprintf.c:258:3: warning: passing argument 1 of '__div64_32' from incompatible pointer type [enabled by default] include/div64.h:22:17: note: expected 'uint64_t *' but argument is of type 'long long unsigned int *' Signed-off-by: Daniel Schwierzeck <daniel.schwierzeck@gmail.com>
Diffstat (limited to 'lib/vsprintf.c')
-rw-r--r--lib/vsprintf.c11
1 files changed, 5 insertions, 6 deletions
diff --git a/lib/vsprintf.c b/lib/vsprintf.c
index 92a9232..d762763 100644
--- a/lib/vsprintf.c
+++ b/lib/vsprintf.c
@@ -23,7 +23,6 @@
#endif
#include <div64.h>
-# define NUM_TYPE long long
#define noinline __attribute__((noinline))
/* some reluctance to put this into a new limits.h, so it is here */
@@ -259,7 +258,7 @@ static char *put_dec_full(char *buf, unsigned q)
return buf;
}
/* No inlining helps gcc to use registers better */
-static noinline char *put_dec(char *buf, unsigned NUM_TYPE num)
+static noinline char *put_dec(char *buf, u64 num)
{
while (1) {
unsigned rem;
@@ -292,7 +291,7 @@ static noinline char *put_dec(char *buf, unsigned NUM_TYPE num)
#define ADDCH(str, ch) (*(str)++ = (ch))
#endif
-static char *number(char *buf, char *end, unsigned NUM_TYPE num,
+static char *number(char *buf, char *end, u64 num,
int base, int size, int precision, int type)
{
/* we are called with base 8, 10 or 16, only, thus don't need "G..." */
@@ -311,9 +310,9 @@ static char *number(char *buf, char *end, unsigned NUM_TYPE num,
type &= ~ZEROPAD;
sign = 0;
if (type & SIGN) {
- if ((signed NUM_TYPE) num < 0) {
+ if ((s64) num < 0) {
sign = '-';
- num = -(signed NUM_TYPE) num;
+ num = -(s64) num;
size--;
} else if (type & PLUS) {
sign = '+';
@@ -534,7 +533,7 @@ static char *pointer(const char *fmt, char *buf, char *end, void *ptr,
static int vsnprintf_internal(char *buf, size_t size, const char *fmt,
va_list args)
{
- unsigned NUM_TYPE num;
+ u64 num;
int base;
char *str;