misc/56206: src/sys/sys/cdefs.h uses PreProcessor variables that aren't defined, causing noisy warnings.

David Taylor davidt at yadt.co.uk
Sat Aug 30 15:12:34 PDT 2003


On Sat, 30 Aug 2003, Garrett Wollman wrote:
> The following reply was made to PR misc/56206; it has been noted by GNATS.
> 
> From: Garrett Wollman <wollman at khavrinen.lcs.mit.edu>
> To: Larry Rosenman <ler at lerctr.org>
> Cc: FreeBSD-gnats-submit at freebsd.org
> Subject: Re: misc/56206: src/sys/sys/cdefs.h uses PreProcessor variables
>  that aren't defined, causing noisy warnings.
> Date: Sat, 30 Aug 2003 16:26:52 -0400 (EDT)
> 
>>>> -#if __STDC_VERSION__ < 199901
>>>> +#if defined(__STDC_VERSION__) && __STDC_VERSION__ < 199901
>>> 
>>> 0 < 199901
>> and doesn't the #if __STDC_VERSION__ < 199901 have the same effect, except 
>  
> Let me try to spell this out.
>  
> When __STDC_VERSION__ is not defined, the preprocessor expression
> `__STDC_VERSION < 199901' evaluates, by definition, to true, because
> 0L < 199901L (which is why I consider this GCC warning to be bogus).
> 
> When __STDC_VERSION__ is not defined, the preprocessor expression
> `defined(__STDC_VERSION__) && __STDC_VERSION__ < 199901' evaluates to
> false, because __STDC_VERSION__ is not defined.
> 
> -GAWollman

Presumably the patch:

-#if __STDC_VERSION__ < 199901
+#if !defined(__STDC_VERSION__) || (__STDC_VERSION__ < 199901)

Would keep the original behaviour, and silence GCC's warning.  Whether you
you want to apply the patch or change GCC, however, isn't a decision I am
remotely qualified to make...

-- 
David Taylor
davidt at yadt.co.uk
"The future just ain't what it used to be"


More information about the freebsd-bugs mailing list