[cfe-dev] [PATCH] Check missing or extra releases of ivars in dealloc
kremenek at apple.com
Fri Oct 24 19:55:14 PDT 2008
On Oct 24, 2008, at 8:17 AM, Nikita Zhuk wrote:
> The attached patch adds additional checks to -warn-objc-missing-
> dealloc. It checks that all ivars which are used in implementation
> of synthesized properties are either
> a) released in dealloc if the property has retain" or "copy"
> attribute OR
> b) not released in dealloc if the property has "assign" attribute
> If it looks useful to you, please review & include it into clang.
Overall this patch looks really great. At some point it would be good
for it to utilize the logic from the retain/release checker to see if
an ivar has been released instead of walking the AST to see if an ivar
has been passed a 'release' message. Not only will this allow us to
handle the many edge cases with syntax (e.g., casts, parentheses,
etc.), it will also allow us to determine if a -dealloc implementation
correctly releases an ivar along every path, etc.
If you don't mind waiting just a bit, I'm going to test drive these
checks over some large Objective-C projects to see what kind of
results it gets!
More information about the cfe-dev