[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <1261004497.13878.9.camel@localhost>
Date: Wed, 16 Dec 2009 18:01:37 -0500
From: Trond Myklebust <trond.myklebust@....uio.no>
To: Thomas Gleixner <tglx@...utronix.de>
Cc: Randy Dunlap <randy.dunlap@...cle.com>,
Stephen Rothwell <sfr@...b.auug.org.au>,
linux-next@...r.kernel.org, LKML <linux-kernel@...r.kernel.org>,
linux-nfs@...r.kernel.org
Subject: Re: [PATCH -next] nfs: fix ISO C90 warning
On Wed, 2009-12-16 at 23:58 +0100, Thomas Gleixner wrote:
> On Wed, 16 Dec 2009, Randy Dunlap wrote:
> > On Wed, 16 Dec 2009 17:40:19 -0500 Trond Myklebust wrote:
> >
> > > On Wed, 2009-12-16 at 14:23 -0800, Randy Dunlap wrote:
> > > > From: Randy Dunlap <randy.dunlap@...cle.com>
> > > >
> > > > Fix gcc ISO C90 warning:
> > > >
> > > > fs/nfs/callback.c:356: warning: ISO C90 forbids mixed declarations and code
> > > >
> > > > Signed-off-by: Randy Dunlap <randy.dunlap@...cle.com>
> > > > ---
> > > > fs/nfs/callback.c | 2 +-
> > > > 1 file changed, 1 insertion(+), 1 deletion(-)
> > > >
> > > > --- linux-next-20091215.orig/fs/nfs/callback.c
> > > > +++ linux-next-20091215/fs/nfs/callback.c
> > > > @@ -352,8 +352,8 @@ static int check_gss_callback_principal(
> > > > static int nfs_callback_authenticate(struct svc_rqst *rqstp)
> > > > {
> > > > struct nfs_client *clp;
> > > > - RPC_IFDEBUG(char buf[RPC_MAX_ADDRBUFLEN]);
> > > > int ret = SVC_OK;
> > > > + RPC_IFDEBUG(char buf[RPC_MAX_ADDRBUFLEN]);
> > > >
> > >
> > > What version of gcc is giving rise to this warning?
> >
> > > gcc --version
> > gcc (GCC) 4.2.1 (SUSE Linux)
> >
> > > RPC_IFDEBUG is a macro that either evaluates to its argument, or to
> > > nothing, depending on whether or not RPC_DEBUG is defined or not. In
> > > neither case should it evaluate to anything illegal under C90 rules
> > > afaics.
> >
> > Yep. Odd warning.
>
> Not really. If the debug macro evaluates to nothing then you have:
>
> struct nfs_client *clp;
> ;
> int ret = SVC_OK;
>
> So you have a stray semicolon, which is interpreted as an empty code
> line. That qualifies for the mixed declaration and code case :)
>
> I know it's nitpicking, but ...
Ah... I see what you mean.
So really what we should do is just move that semicolon inside the
macro. That would change the !RPC_DEBUG case to
struct nfs_client *clp;
int ret = SVC_OK;
which is 100% legal...
Cheers
Trond
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists