Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 1 Feb 2011 11:25:01 +0000
From:      Alexander Best <arundel@freebsd.org>
To:        Roman Divacky <rdivacky@freebsd.org>
Cc:        freebsd-hackers@freebsd.org
Subject:   Re: empty function macros
Message-ID:  <20110201112501.GA99666@freebsd.org>
In-Reply-To: <20110201081236.GA63338@freebsd.org>
References:  <20110130172941.GA10701@freebsd.org> <20110131075439.GA49765@freebsd.org> <20110131095158.GC98011@freebsd.org> <20110201081236.GA63338@freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Tue Feb  1 11, Roman Divacky wrote:
> On Mon, Jan 31, 2011 at 09:51:58AM +0000, Alexander Best wrote:
> > On Mon Jan 31 11, Roman Divacky wrote:
> > > no problem with this with clang :)
> > 
> > hmmmmm....so compiling the following code
> > 
> > int
> > main(int argc, char **argv)
> > {
> > if (1<2)
> >     ;
> > }
> > 
> > with clang -Werror code.c -o code works for you?
> 
> if (1<2)
>  ;
> 
> gives a warning (and it should), on the other hand
> 
> #define NOTHING
> 
> if (1<2)
>  NOTHING;
> 
> does not warn, which is what you want right?

actually

#define NOTHING

int
main(int argc, char **argv)
{
if (1<2)
    NOTHING;

return (0);
}

*does* warn for me:

otaku% clang test.c -o test      
test.c:7:12: warning: if statement has empty body [-Wempty-body]
    NOTHING;
           ^
1 warning generated.

..gcc on the otherhand will only warn with -Wextra. so the questions still
stands:

should

#define NOTHING

be replaced with

#define NOTHING do { } while (0)

?

cheers.
alex

-- 
a13x



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20110201112501.GA99666>