[cfe-dev] [Clang 3.0] Inconsistent warnings about assignment in a condition
jahanian
fjahanian at apple.com
Fri Mar 16 14:34:56 PDT 2012
On Mar 16, 2012, at 1:45 PM, John McCall wrote:
> On Mar 16, 2012, at 12:44 AM, Alexei Sholik wrote:
>> I can't find a way to make Clang _always_ trigger warnings about
>> assignment inside a condition. When I create a new project (Mac or
>> iOS) in Xcode 4.3.1 and compile it, the following code does not
>> trigger any warnings:
>>
>> - (id)init
>> {
>> if (self = [super init]) {
>> // ...
>> }
>> return self;
>> }
>
> We wanted to enable -Wparentheses by default, but we got a lot of pushback
> over this specific idiom (particularly since Apple puts out example code
> with this verbatim), so we moved it to a subgroup -Widiomatic-parentheses
> that is not enabled by default. If you specifically enable -Wparentheses
> instead of relying on the default behavior, you should see warnings about
> this.
>
>> BUT, in the same project I don't get any warnings in the following case:
>>
>> if (self.uid = 11) {
>> // ...
>> }
>>
>> Is this behavior expected? Which flag should I use in order for the
>> compiler to catch this case too?
>
> This is an oversight caused by a recent refactor; please file a bug.
Do we issue a warning if self.uid is a c++object and '=' is overloaded?
- Fariborz
>
> John.
> _______________________________________________
> cfe-dev mailing list
> cfe-dev at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev
More information about the cfe-dev
mailing list