i386/41930: declaration clash for ffs() and ${CXX}
Bruce Evans
bde at zeta.org.au
Fri Aug 1 08:00:38 PDT 2003
The following reply was made to PR i386/41930; it has been noted by GNATS.
From: Bruce Evans <bde at zeta.org.au>
To: Steve Roome <stephen_roome at pepcross.com>
Cc: freebsd-gnats-submit at freebsd.org
Subject: Re: i386/41930: declaration clash for ffs() and ${CXX}
Date: Sat, 2 Aug 2003 00:57:36 +1000 (EST)
On Thu, 31 Jul 2003, Steve Roome wrote:
> Just noticed that on 4.8-STABLE I get a similar effect compiling code
> with -ansi. Which is similar, possibly slightly different, but adds
> weight for the argument for fixing the ffs() code.
>
> - Example Code ---------------------------------------------------------
>
> #include <string.h>
> #include <machine/console.h>
> #include <vgl.h>
> int main() { return 1; }
>
> - Example Compiler Output ----------------------------------------------
>
> gcc -ansi -Wall -Werror test.c
> cc1: warnings being treated as errors
> In file included from /usr/include/vgl.h:37,
> from test.c:3:
> /usr/include/machine/cpufunc.h:118: warning: static declaration for `ffs' follows non-static
>
> - End Example ----------------------------------------------------------
This is from namespace pollution in <vgl.h> (it includes the kernel-only
implementation-detail header <machine/cpufunc.h> and some standard headers).
> This "implementation detail" might be used by a programmer using C++
> or -ansi on a C program, surely it should work ?
Only if the implementation exports its detail. The implementation shouldn't
do this gratuitously as in <vgl.h>.
Bruce
More information about the freebsd-bugs
mailing list