Bruce Momjian <bruce@momjian.us> writes:
> I have to say, I am kind of stumped why compilers do not warn of such
> cases, and why we haven't gotten reports about these cases before.
I was just experimenting with clang's "scan-build" tool. It finds
all of the cases you just fixed, and several dozen more beside.
Quite a few are things that, as a matter of style, we should *not*
change, for instance
rewriteHandler.c:2807:5: warning: Value stored to 'outer_reloids' is never read
outer_reloids = list_delete_last(outer_reloids);
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Failing to update the list pointer here would just be asking for bugs.
However, I see some that look like genuine oversights; will go fix.
(I'm not sure how much I trust scan-build overall. It produces a
whole bunch of complaints about null pointer dereferences, for instance.
If those aren't 99% false positives, we'd be crashing constantly.
It's also dog-slow. But it might be something to try occasionally.)
regards, tom lane