Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 16 Oct 2012 14:12:08 +1100 (EST)
From:      Bruce Evans <brde@optusnet.com.au>
To:        Garrett Cooper <yanegomi@gmail.com>
Cc:        src-committers@freebsd.org, Jilles Tjoelker <jilles@stack.nl>, John Baldwin <jhb@freebsd.org>, svn-src-all@freebsd.org, Gleb Smirnoff <glebius@freebsd.org>, Bruce Evans <brde@optusnet.com.au>, svn-src-head@freebsd.org
Subject:   Re: svn commit: r241546 - head/sys/contrib/ipfilter/netinet
Message-ID:  <20121016140607.Y1358@besplex.bde.org>
In-Reply-To: <CAGH67wSGetFXNnUTGHRTz1r5pLDTMaCRCTLWOU3thq1fWw0Yeg@mail.gmail.com>
References:  <201210141503.q9EF37rE087018@svn.freebsd.org> <201210150834.09553.jhb@freebsd.org> <20121015143658.GU89655@FreeBSD.org> <20121015151147.GA92923@stack.nl> <20121016045904.Q15233@besplex.bde.org> <20121015222333.GY89655@FreeBSD.org> <CAGH67wSGetFXNnUTGHRTz1r5pLDTMaCRCTLWOU3thq1fWw0Yeg@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, 15 Oct 2012, Garrett Cooper wrote:

> On Mon, Oct 15, 2012 at 3:23 PM, Gleb Smirnoff <glebius@freebsd.org> wrote:
>> On Tue, Oct 16, 2012 at 05:09:31AM +1100, Bruce Evans wrote:
>> B> > On Mon, Oct 15, 2012 at 06:36:58PM +0400, Gleb Smirnoff wrote:
>[>]*
>> B> >> I have used this construction several times already without any side
>> B> >> effects. I have also seen it in some software in ports, where it works
>> B> >> okay, too.
>> B> >
>> B> > The C standard indeed permits this, but gcc -Wundef will warn about it.
>> B> > That compiler warning is in CWARNFLAGS in sys/conf/kern.mk so I suggest
>> B> > adding the 'defined(__FreeBSD_version) &&'.
>> B>
>> B> The C standard requires this, but some misconfigured compilers like
>> B> gcc -Wundef warn about it, and some non-C compilers like gcc -Wundef
>> B> -Werror fail on it.  The bug is sometimes hidden by -Wno-system-headers,
>> B> but FreeBSD wants to detect bugs in system headers so it sets
>> B> -Wsystem-headers at WARNS >= 1, and then the buggy compilers find this
>> B> non-bug in system headers.  The result is uglification of many system
>> B> headers to use if `defined(__FOO) && ...' instead of depending on this
>> B> standard and useful feature.
>>
>> Shouldn't we then remove -Wundef from CWARNFLAGS in kern.mk?

I objected when it was committed...  It still isn't in bsd.sys.mk.  It's
not too bad for the kernel, since we control all the sources.

> There is some value to -Wundef if used properly:
>
>       -Wundef
>           Warn whenever an identifier which is not a macro is encountered in
>           an #if directive, outside of defined.  Such identifiers are
>           replaced with zero.

Like the -u option in sh.  It is useful mainly for avoiding bugs in
quickly written code.  It is most useful in ineractive sh since
quickly written command lines are normal and go live immediately.

Bruce



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