add -Wlogical-op to standard compiler options?
I think it might be worth adding -Wlogical-op to the standard warning
options (for supported compilers, determined by configure test).
`-Wlogical-op'
Warn about suspicious uses of logical operators in expressions.
This includes using logical operators in contexts where a bit-wise
operator is likely to be expected.
In addition to what it says there, it appears to warn about illogical
combinations of < and >. I have been using it locally for a while
without problems. We have already found a couple of bugs this way.
Peter Eisentraut <peter_e@gmx.net> writes:
I think it might be worth adding -Wlogical-op to the standard warning
options (for supported compilers, determined by configure test).
Does that add any new warnings with the current source code, and if
so what?
regards, tom lane
On 11/15/12 9:40 AM, Tom Lane wrote:
Peter Eisentraut <peter_e@gmx.net> writes:
I think it might be worth adding -Wlogical-op to the standard warning
options (for supported compilers, determined by configure test).Does that add any new warnings with the current source code, and if
so what?
none
Peter Eisentraut <peter_e@gmx.net> writes:
On 11/15/12 9:40 AM, Tom Lane wrote:
Peter Eisentraut <peter_e@gmx.net> writes:
I think it might be worth adding -Wlogical-op to the standard warning
options (for supported compilers, determined by configure test).
Does that add any new warnings with the current source code, and if
so what?
none
No objection from me then.
regards, tom lane
On Thu, Nov 15, 2012 at 1:46 PM, Peter Eisentraut <peter_e@gmx.net> wrote:
On 11/15/12 9:40 AM, Tom Lane wrote:
Peter Eisentraut <peter_e@gmx.net> writes:
I think it might be worth adding -Wlogical-op to the standard warning
options (for supported compilers, determined by configure test).Does that add any new warnings with the current source code, and if
so what?none
Using gcc (GCC) 4.4.6 20120305 (Red Hat 4.4.6-4), I get dozens of
warnings, all apparently coming from somewhere in the MemSet macro.
example:
pl_handler.c:301: warning: logical '&&' with non-zero constant will
always evaluate as true
Probably has something to do with:
/* \
* If MEMSET_LOOP_LIMIT == 0, optimizer
should find \
* the whole "if" false at compile time. \
*/ \
MEMSET_LOOP_LIMIT != 0) \
Cheers,
Jeff
On Wed, 2012-11-21 at 11:46 -0800, Jeff Janes wrote:
Using gcc (GCC) 4.4.6 20120305 (Red Hat 4.4.6-4), I get dozens of
warnings, all apparently coming from somewhere in the MemSet macro.
OK, reverted.
It looks like they dialed it down to a more useful volume in GCC 4.5,
but that doesn't really help us.