-Wparentheses lumps too much together

Robert Dewar dewar@adacore.com
Fri Jan 11 17:05:00 GMT 2008


Joe Buck wrote:
> On Fri, Jan 11, 2008 at 09:34:29AM +0200, Rehno Lindeque wrote:
>> Just a note: Operator precedence is taught as logical AND comes before
>> OR in logic courses. So it is a sort of a standard mathematical
>> convention just like + and *. In fact, OR is even represented as a +
>> in some notations. However it might not be practical to assume all
>> programmers have a background in logic.
> 
> A warning that flagged code like
> 
> if (c1 || c2 && c3)
>    ...
> 
> would swamp users in warnings, since this kind of code is extremely
> common, and this isn't the kind of thing that anyone who's not a total C
> beginner has trouble with.

I find it a valuable warning, I think it is a mistake to rely on
dubious precedence for cases like this (dubious because the analogy
of || and && with + and * is stretching things).

I must say I prefer the Ada syntax here, which prohibits mixing
of different logical operators in this way.



More information about the Gcc mailing list