[cfe-dev] [Clang 3.0] Inconsistent warnings about assignment in a condition

Alexei Sholik alcosholik at gmail.com
Fri Mar 16 00:44:12 PDT 2012


Hi,

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;
}

In my current project (which has been created in Xcode 4.2), this code
triggers the proper warning "Using the result of an assignment as a
condition without parentheses".

The following code triggers the warning as well (which is expected):

        NSUInteger uid = 10;
        if (uid = 11) {
            // ...
        }

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?

Thanks!

(I'm not on the list, please /cc)

-- 
Best regards
Alexei Sholik



More information about the cfe-dev mailing list