Beware of subtle bugs due to cpp(1) limitations!

Ruslan Ermilov ru at FreeBSD.org
Sat Dec 3 15:06:12 PST 2005


On Sun, Dec 04, 2005 at 12:55:17AM +0200, Ruslan Ermilov wrote:
> On Sun, Dec 04, 2005 at 12:45:18AM +0200, Ruslan Ermilov wrote:
> > Hi there,
> > 
> > cpp(1) only supports integer expressions, so the following
> > 
> > #define	FOO	foo
> > #if FOO == bar
> > 
> > will always evaluate to true, because "foo" and "bar" will
> > be treated as zeroes, as explained in cpp.info.
[...]
> > The season for more bugs of this type is declared open!  :-)
> > 
> ``cpp -Wundef'' will allow us to find all these bugs.
> 
Here we go:

%%%
Index: share/mk/bsd.sys.mk
===================================================================
RCS file: /home/ncvs/src/share/mk/bsd.sys.mk,v
retrieving revision 1.37
diff -u -r1.37 bsd.sys.mk
--- share/mk/bsd.sys.mk	16 Jan 2005 21:18:16 -0000	1.37
+++ share/mk/bsd.sys.mk	3 Dec 2005 22:57:36 -0000
@@ -11,7 +11,7 @@
 .if !defined(NO_WARNS) && ${CC} != "icc"
 . if defined(WARNS)
 .  if ${WARNS} >= 1
-CWARNFLAGS	+=	-Wsystem-headers
+CWARNFLAGS	+=	-Wsystem-headers -Wundef
 .   if !defined(NO_WERROR)
 CWARNFLAGS	+=	-Werror
 .   endif
Index: sys/conf/kern.mk
===================================================================
RCS file: /home/ncvs/src/sys/conf/kern.mk,v
retrieving revision 1.46
diff -u -r1.46 kern.mk
--- sys/conf/kern.mk	15 Jul 2005 11:45:30 -0000	1.46
+++ sys/conf/kern.mk	3 Dec 2005 22:58:41 -0000
@@ -12,7 +12,7 @@
 .else
 CWARNFLAGS?=	-Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes \
 		-Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual \
-		-fformat-extensions -std=c99
+		-Wundef -fformat-extensions -std=c99
 .endif
 #
 # The following flags are next up for working on:
%%%

Should I commit it to force a thorough fixing?
(The #ifdef notdef/notyet are not affected by this change.)


Cheers,
-- 
Ruslan Ermilov
ru at FreeBSD.org
FreeBSD committer
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 187 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/freebsd-current/attachments/20051204/4b83dbb5/attachment.bin


More information about the freebsd-current mailing list