empty function macros

Alexander Best arundel at freebsd.org
Tue Feb 1 15:24:40 UTC 2011


On Tue Feb  1 11, Roman Divacky wrote:
> On Tue, Feb 01, 2011 at 11:25:01AM +0000, Alexander Best wrote:
> > 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.
> 
> are you using clang2.8? if so this is 2.9 feature then :)

indeed only clang 2.8 generates the warning:

otaku% clang test.c -o test               
test.c:7:15: warning: if statement has empty body [-Wempty-body]
    NOTHING(1);
              ^
1 warning generated.
otaku% /usr/local/bin/clang test.c -o test
otaku%

thanks for the hint. so there's no need to remove any

#define NOTHING

lines, since gcc doesn't complain and with the import of clang 2.9 clang will
no longer complain about it.

cheers.
alex

-- 
a13x


More information about the freebsd-hackers mailing list