[cfe-dev] Fast enumeration syntax disables -checker-cfref
Ted Kremenek
kremenek at apple.com
Wed Sep 17 10:21:26 PDT 2008
On Sep 17, 2008, at 5:53 AM, Nikita Zhuk wrote:
> Hello,
>
> There may have been a regression in static analyzer. When analyzing
> Objective-C methods which use the new Obj-C 2.0 'for' syntax (fast
> enumeration), CF reference count checker seems to ignore all leaks.
> I'm using clang rev 56242.
>
> Here's a test case:
>
> #import <Foundation/Foundation.h>
> @interface MyClass : NSObject @end
> @implementation MyClass
> -(void)leakingMethod1 {
> NSLog(@"%@", [[NSString alloc] init]); // This is reported
> }
> -(void)leakingMethod2 {
> for (id obj in [NSArray array])
> ;
> NSLog(@"%@", [[NSString alloc] init]); // This is not reported
> }
> @end
>
> I've submitted this to bugzilla as bug 2798. Has anyone else
> encountered this problem?
>
Hi Nikita,
This isn't a regression, just a feature that hasn't been implemented
yet. We need to add CFG support for fast enumeration. The same goes
for @try, @catch, and @finally. The analyzer then needs to be
modified to understand these constructs. Right now the analyzer will
skip any function/method for which we cannot build a CFG.
Ted
More information about the cfe-dev
mailing list