Messages in this thread | | | Subject | Re: [PATCH 3/4] lib/vsprintf.c: Remove SPECIAL handling in pointer() | From | Andy Shevchenko <> | Date | Mon, 28 Sep 2015 11:55:09 +0300 |
| |
On Fri, 2015-09-25 at 19:41 +0200, Rasmus Villemoes wrote: > As a quick > > git grep -E '%[ +0#-]*#[ +0#-]*(\*|[0-9]+)?(\.(\*|[0-9]+)?)?p' > > shows, nobody uses the # flag with %p. Moreover, I think users are > unlikely to show up since gcc will complain with > > warning: `#' flag used with ‘%p’ gnu_printf format [-Wformat]
I would refer to POSIX here
"# Specifies that the value is to be converted to an alternative form. ... For other conversion specifiers, the behavior is undefined."
> > Since default_width is effectively always 2*sizeof(void*), we can > simplify the prologue of pointer() and save a few instructions. > > Signed-off-by: Rasmus Villemoes <linux@rasmusvillemoes.dk> > --- > lib/vsprintf.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/lib/vsprintf.c b/lib/vsprintf.c > index 03fa10b4be96..98b0d7be3fb7 100644 > --- a/lib/vsprintf.c > +++ b/lib/vsprintf.c > @@ -1457,7 +1457,7 @@ static noinline_for_stack > char *pointer(const char *fmt, char *buf, char *end, void *ptr, > struct printf_spec spec) > { > - int default_width = 2 * sizeof(void *) + (spec.flags & > SPECIAL ? 2 : 0); > + const int default_width = 2 * sizeof(void *); > > if (!ptr && *fmt != 'K') { > /*
-- Andy Shevchenko <andriy.shevchenko@linux.intel.com> Intel Finland Oy
| |