add -Wlogical-op to standard compiler options?

Started by Peter Eisentrautabout 13 years ago6 messages
#1Peter Eisentraut
peter_e@gmx.net

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.

#2Tom Lane
tgl@sss.pgh.pa.us
In reply to: Peter Eisentraut (#1)
Re: add -Wlogical-op to standard compiler options?

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

#3Peter Eisentraut
peter_e@gmx.net
In reply to: Tom Lane (#2)
Re: add -Wlogical-op to standard compiler options?

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

#4Tom Lane
tgl@sss.pgh.pa.us
In reply to: Peter Eisentraut (#3)
Re: add -Wlogical-op to standard compiler options?

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

#5Jeff Janes
jeff.janes@gmail.com
In reply to: Peter Eisentraut (#3)
Re: add -Wlogical-op to standard compiler options?

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

#6Peter Eisentraut
peter_e@gmx.net
In reply to: Jeff Janes (#5)
Re: add -Wlogical-op to standard compiler options?

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.