diff options
Diffstat (limited to 'lib/vsprintf.c')
| -rw-r--r-- | lib/vsprintf.c | 11 | 
1 files changed, 5 insertions, 6 deletions
| diff --git a/lib/vsprintf.c b/lib/vsprintf.c index 92a9232c2..d7627632d 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; |