[Python-Dev] Py_DECREF causes spurious gcc warning
Martin v. Löwis
martin at v.loewis.de
Sat Dec 20 05:31:18 EST 2003
"Zack Weinberg" <zack at codesourcery.com> writes:
> It does, however, lead to a different problem:
>
> if (condition)
> Py_DECREF (foo);
> else // oops, syntax error here
How so? This expands to
if(condition)
if(cond2)action1;
else action2;
else
...
This is perfectly well-formed C, and it groups as my
indentation suggests.
There is no real problem with this macro. It is just gcc complaining
falsely.
> In general I consider it appropriate to wrap _all_ macros that don't
> return a value in do { ... } while (0), because that way you don't
> have to worry about which of them truly need it.
Hmm. Yes, this could be done - but it is unfortunate that this needs
to be done only to silence gcc.
Regards,
Martin
More information about the Python-Dev
mailing list