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., Py_DECREF 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