[cfe-commits] r53987 - in /cfe/trunk: lib/Analysis/CheckObjCDealloc.cpp test/Analysis/IBOutlet.m test/Analysis/MissingDealloc_SEL.m

Ted Kremenek kremenek at apple.com
Thu Jul 24 17:00:24 PDT 2008


On Jul 24, 2008, at 2:22 PM, Chris Lattner wrote:

> Hi Ted,
>
> I don't think this is the right fix.  Won't your checker still warn  
> about other things like "int*" ivars?

Sure.  Without doing more analysis, the question is whether or not in  
the common case an Objective-C object with an int* owns the memory  
referenced by the int*.  In such cases -dealloc should be implemented.

>>    if ((T->isPointerType() || T->isObjCQualifiedIdType()) &&
>> +        (ID->getAttr<IBOutletAttr>() == 0 && // Skip IBOutlets.
>> +         !isSEL(T, SelII))) { // Skip SEL ivars.
>>      containsPointerIvar = true;
>
> I think the right check should be what Sema::isObjCObjectPointerType  
> does.  I think it would make sense to pull this out and put it on  
> ASTContext or Type.  What do you think?

Agreed.  I moved isObjCObjectPointerType() from Sema to ASTContext.



More information about the cfe-commits mailing list