From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932155AbbI1IzQ (ORCPT ); Mon, 28 Sep 2015 04:55:16 -0400 Received: from mga09.intel.com ([134.134.136.24]:50513 "EHLO mga09.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753045AbbI1IzP (ORCPT ); Mon, 28 Sep 2015 04:55:15 -0400 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.17,602,1437462000"; d="scan'208";a="569684243" Message-ID: <1443430509.8361.229.camel@linux.intel.com> Subject: Re: [PATCH 3/4] lib/vsprintf.c: Remove SPECIAL handling in pointer() From: Andy Shevchenko To: Rasmus Villemoes , Andrew Morton Cc: Tejun Heo , linux-kernel@vger.kernel.org, Kees Cook Date: Mon, 28 Sep 2015 11:55:09 +0300 In-Reply-To: <1443202865-25533-4-git-send-email-linux@rasmusvillemoes.dk> References: <1443202865-25533-1-git-send-email-linux@rasmusvillemoes.dk> <1443202865-25533-4-git-send-email-linux@rasmusvillemoes.dk> Organization: Intel Finland Oy Content-Type: text/plain; charset="UTF-8" X-Mailer: Evolution 3.16.3-1 Mime-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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 > --- > 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 Intel Finland Oy