diff mbox

[U-Boot,2/4] lib: vsprintf.c: replace NUM_TYPE with s64/u64 types

Message ID 1347814506-22926-3-git-send-email-daniel.schwierzeck@gmail.com
State Accepted
Delegated to: Tom Rini
Headers show

Commit Message

Daniel Schwierzeck Sept. 16, 2012, 4:55 p.m. UTC
From: Daniel Schwierzeck <daniel.schwierzeck@gmail.com>

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>
---
 lib/vsprintf.c | 11 +++++------
 1 file changed, 5 insertions(+), 6 deletions(-)

Comments

Tom Rini Sept. 27, 2012, 4:22 p.m. UTC | #1
On Sun, Sep 16, 2012 at 06:55:04AM -0000, Daniel Schwierzeck wrote:
> From: Daniel Schwierzeck <daniel.schwierzeck@gmail.com>
> 
> 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>

Applied to u-boot/next, thanks!
diff mbox

Patch

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;