From c74c2411db5f3bf06848008c0d121a23fd31cf91 Mon Sep 17 00:00:00 2001 From: Jim Meyering Date: Sat, 31 Oct 2009 09:42:37 +0100 Subject: inttostr: aesthetics and improved (compile-time) safety Define inttype_is_signed rather than inttype_is_unsigned, since the sole use is via "#if inttype_is_signed". * lib/imaxtostr.c (inttype_is_signed): Define this, rather than inttype_is_unsigned. * lib/offtostr.c (inttype_is_signed): Likewise. * lib/uinttostr.c (inttype_is_signed): Likewise. * lib/umaxtostr.c (inttype_is_signed): Likewise. * lib/inttostr.c (inttostr): Use verify to cross-check the inttype_is_signed value and the signedness of the actual type. * modules/inttostr (Depends-on): Add verify. --- lib/inttostr.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'lib/inttostr.c') diff --git a/lib/inttostr.c b/lib/inttostr.c index 749aea7f6f..c7c0d736a6 100644 --- a/lib/inttostr.c +++ b/lib/inttostr.c @@ -20,6 +20,7 @@ #include #include "inttostr.h" +#include "verify.h" /* Convert I to a printable string in BUF, which must be at least INT_BUFSIZE_BOUND (INTTYPE) bytes long. Return the address of the @@ -31,7 +32,8 @@ inttostr (inttype i, char *buf) char *p = buf + INT_STRLEN_BOUND (inttype); *p = 0; -#ifndef inttype_is_unsigned + verify (TYPE_SIGNED (inttype) == inttype_is_signed); +#if inttype_is_signed if (i < 0) { do -- cgit v1.2.1