[cfe-dev] ObjC Block call checker

Anna Zaks via cfe-dev cfe-dev at lists.llvm.org
Wed Mar 23 17:48:34 PDT 2016


> On Mar 9, 2016, at 1:24 PM, Alexander Smirnov via cfe-dev <cfe-dev at lists.llvm.org> wrote:
> 
> For future references.
> 
> In that particular case it will be enough to check if Call has declaration
> 
> Call.getDecl()
> 
> and throw an error only if there is no declaration.
> 
> On Tue, Mar 8, 2016 at 7:26 PM, Alexander Smirnov <alexander at smirn0v.ru <mailto:alexander at smirn0v.ru>> wrote:
> As far as I understand I should extend existing NullabilityChecker and use propagated 'nullability' attribute. Seems to be the only way to understand probability that the block is null.
> 
> Still will be happy to get your thoughts on this.
> 
> On Sun, Mar 6, 2016 at 11:50 PM, Alexander Smirnov <alexander at smirn0v.ru <mailto:alexander at smirn0v.ru>> wrote:
> Hello,
> 
> I'm trying to add ObjC clang analyzer checker to check if called block is non null.
> 
> I thought that at some ProgramState SVal for the called block will be constrained to null and that's all I need to check.
> 
> I was naive.
> 
> Here is code of the checker: http://pastebin.com/raw/dcE12ayk <http://pastebin.com/raw/dcE12ayk>
> But it reports error even for simple code like:
> 
> void(^bl)(void) = ^{}; 
> bl();
> 
> That's caused by the fact that for my checker SVal for "bl" is "underconstrained".
> 
> Could please someone lead me on the right examples from current checkers? Or explain, what am I doing wrong ?
> 

I highly recommend watching these slides/video; I believe it answers the question about the state being underconstrained closer to the end. If it does not, please get back to me.
http://llvm.org/devmtg/2012-11/videos/Zaks-Rose-Checker24Hours.mp4
http://llvm.org/devmtg/2012-11/Zaks-Rose-Checker24Hours.pdf

You can find a bit more resources on the Clang Static Analyzer development here:
http://clang-analyzer.llvm.org/checker_dev_manual.html

Cheers,
Anna.

> 
> _______________________________________________
> cfe-dev mailing list
> cfe-dev at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20160323/2fd86eb1/attachment.html>


More information about the cfe-dev mailing list