[Python-Dev] Py_DECREF causes spurious gcc warning (original) (raw)

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) PyDECREF (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