Subject: Re: [PATCH] treewide: Use __printf not __attribute__((format(printf,...)))

From: Joe Perches <[email-masked]>
Date: Tue, 11 Oct 2011 10:43:50 -0700

On Tue, 2011-10-11 at 20:22 +0300, Kirill A. Shutemov wrote:
> On Thu, Aug 25, 2011 at 07:55:37PM -0700, Joe Perches wrote:
> > Standardize the style for compiler based printf format verification.
> > Standardized the location of __printf too.
> > Done via script and a little typing.
> > $ grep -rPl --include=*.[ch] -w "__attribute__" * | \
> >   grep -vP "^(tools|scripts|include/linux/compiler-gcc.h)" | \
> >   xargs perl -n -i -e 'local $/; while (<>) { s/\b__attribute__\s*\(\s*\(\s*format\s*\(\s*printf\s*,\s*(.+)\s*,\s*(.+)\s*\)\s*\)\s*\)/__printf($1, $2)/g ; print; }'
> > Completely untested...
> This patch breaks ARCH=um (linux-next-20111011):

Hi Kirill, thanks for reporting this.

I think it breaks almost all the the arches with modifications.

> In file included from /home/kas/git/public/linux-next/arch/um/os-Linux/aio.c:17:0:
> /home/kas/git/public/linux-next/arch/um/include/shared/user.h:26:17: error: expected declaration specifiers or ‘...’ before numeric constant

Hey Andrew, I think _all_ of the arch/... changes
except arch/frv and arch/s390 should be reverted.

Andrew, I don't know if you saw this:
https://lkml.org/lkml/2011/9/28/324