[Spice-devel] [PATCH spice-server 05/10] syntax-check: Check ENABLE_EXTRA_CHECKS is not used incorrectly
Frediano Ziglio
fziglio at redhat.com
Tue Sep 12 07:45:23 UTC 2017
>
> On Mon, Sep 11, 2017 at 11:48:47AM -0400, Frediano Ziglio wrote:
> > >
> > > On Mon, Sep 11, 2017 at 11:15:42AM +0100, Frediano Ziglio wrote:
> > > > Usually configuration macros are defined to 0 or undefined.
> > > > For this reason these macros are sometimes checked using #if
> > > > and sometimes with #ifndef/#ifdef.
> > > > As this macro is always defined with 0 or 1 it makes no sense
> > > > to check if defined or not so check the code to avoid this
> > > > mistake.
> > >
> > > IIRC, I suggested a way not to make it so odd compared to other
> > > preprocessor symbols.
> > >
> > > Christophe
> > >
> >
> > Yes, but your suggestion did not work and you didn't send another
> > improvement (unless I lost it).
>
> Ah, sorry, I did not answer because it seemed easy enough to adjust
> it to something which works, iirc the issue was that there was a
> non-compile-time constant:
> static const int foo = ENABLE_EXTRA_CHECKS;
> I guess this should work instead:
> #define foo ENABLE_EXTRA_CHECKS
>
> Christophe
>
Mumble, maybe I don't understand your suggestion here.
The odd thing is that ENABLE_EXTRA_CHECKS is always defined.
If we move to the "standard" 1 or undefined your code like
if (foo) ...
will get (defined to 1):
if (1) ...
and compile, but will get (undefined):
if (ENABLE_EXTRA_CHECKS) ...
and compiled will complain that ENABLE_EXTRA_CHECKS is an undefined id.
Frediano
More information about the Spice-devel
mailing list