hello

attached is a new clang-analyzer checker that verifies ObjC API usage in 
UIViewController subclasses, more specifically if implemented methods correctly 
call the superclass implementations in methods where this is mandatory (and 
omitting these calls can lead to real and difficult-to-find bugs).

the code is largely based on the dealloc checker which includes the check for a 
missing super call as part its functions.

the code currently only checks UIViewController subclasses but should be 
extended to be more general in the future, there are a variety of classes in 
the iOS and Mac OS X APIs that require some methods in their subclass 
implementations to either call super or not call super. the ToDo list in this 
regard is at the bottom of the file.

attached is the new checker (CheckViewController.cpp), the diff to the changed 
files Checkers.td and CMakeLists.txt and a new test case.

please comment (and CC me) or commit.

UPDATE: i've modified the patch according to feedback on the IRC channel
• better adherance to the llvm coding standards (tabs, linewidth, indentation)
• don't use std::vector for static method selector name list
• added test case to verify functionality
• provide correct method name in diagnostic output
• provide correct source location in diagnostic output
• removed check for rare multi-arg selector transistionViewController* because 
checking multi-arg selectors doesn't seem to work yet

bye, julian

Attachment: patch.diff
Description: Binary data

Attachment: viewcontroller.m
Description: Binary data

Attachment: CheckViewController.cpp
Description: Binary data

Attachment: smime.p7s
Description: S/MIME cryptographic signature

_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to