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

Martin v. Löwis martin at v.loewis.de
Thu Dec 18 16:27:30 EST 2003


Skip Montanaro <skip at pobox.com> writes:

I meant the Py*REF macros which expand to "if" statements and you'd bracify the clauses, e.g., PyDECREF would become:

That would still trigger the warning about

if(1) Py_DECREF(foo);

as this expands to

if(1) if(cond(foo)) {action1(foo);} else {action2(foo);}

This, in turn, is potentially unintended, as the author of that code may have meant the else to go with the if(1), whereas, in C, it goes with the if(cond(foo)). As Tim explains, the intended semantics is the desired one, too, so there is really no problem in the code. As Tim also explains, do{}while(1) would silence the warning.

Regards, Martin



More information about the Python-Dev mailing list