<div dir="ltr">Hello Anna,<div><br></div><div>Thanks for slides/video, great talk!</div><div><br></div><div>Now I do understand how it works and why variable was underconstrained. But I have faced another obstacle with ConstraintManager, CallAndMessageChecker might alter ProgramState with wrong transition. I have described details in cfe-commits mailing list hereĀ <a href="http://lists.llvm.org/pipermail/cfe-commits/Week-of-Mon-20160321/153848.html">http://lists.llvm.org/pipermail/cfe-commits/Week-of-Mon-20160321/153848.html</a></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Mar 24, 2016 at 3:48 AM, Anna Zaks <span dir="ltr"><<a href="mailto:ganna@apple.com" target="_blank">ganna@apple.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word"><br><div><div><div class="h5"><blockquote type="cite"><div>On Mar 9, 2016, at 1:24 PM, Alexander Smirnov via cfe-dev <<a href="mailto:cfe-dev@lists.llvm.org" target="_blank">cfe-dev@lists.llvm.org</a>> wrote:</div><br><div><div dir="ltr">For future references.<br><br>In that particular case it will be enough to check if Call has declaration<br><br>Call.getDecl()<br><br>and throw an error only if there is no declaration.<br></div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Mar 8, 2016 at 7:26 PM, Alexander Smirnov <span dir="ltr"><<a href="mailto:alexander@smirn0v.ru" target="_blank">alexander@smirn0v.ru</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">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.<div><br></div><div>Still will be happy to get your thoughts on this.</div></div><div><div><div class="gmail_extra"><br><div class="gmail_quote">On Sun, Mar 6, 2016 at 11:50 PM, Alexander Smirnov <span dir="ltr"><<a href="mailto:alexander@smirn0v.ru" target="_blank">alexander@smirn0v.ru</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Hello,<br><br>I'm trying to add ObjC clang analyzer checker to check if called block is non null.<br><br>I thought that at some ProgramState SVal for the called block will be constrained to null and that's all I need to check.<br><br>I was naive.<br><br>Here is code of the checker: <a href="http://pastebin.com/raw/dcE12ayk" target="_blank">http://pastebin.com/raw/dcE12ayk</a><br>But it reports error even for simple code like:<br><br>void(^bl)(void) = ^{}; <br>bl();<br><br><div>That's caused by the fact that for my checker SVal for "bl" is "underconstrained".</div><div><br></div><div>Could please someone lead me on the right examples from current checkers? Or explain, what am I doing wrong ?</div></div>
</blockquote></div><br></div></div></div></blockquote></div></div></div></blockquote><br></div></div><div>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.</div><div><a href="http://llvm.org/devmtg/2012-11/videos/Zaks-Rose-Checker24Hours.mp4" target="_blank">http://llvm.org/devmtg/2012-11/videos/Zaks-Rose-Checker24Hours.mp4</a></div><a href="http://llvm.org/devmtg/2012-11/Zaks-Rose-Checker24Hours.pdf" target="_blank">http://llvm.org/devmtg/2012-11/Zaks-Rose-Checker24Hours.pdf</a></div><div><br></div><div>You can find a bit more resources on the Clang Static Analyzer development here:</div><div><a href="http://clang-analyzer.llvm.org/checker_dev_manual.html" target="_blank">http://clang-analyzer.llvm.org/checker_dev_manual.html</a></div><div><br></div><div>Cheers,</div><div>Anna.</div><div><br><blockquote type="cite"><div><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div>
</div></div></blockquote></div><br></div>
_______________________________________________<br>cfe-dev mailing list<br><a href="mailto:cfe-dev@lists.llvm.org" target="_blank">cfe-dev@lists.llvm.org</a><br><a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev</a><br></div></blockquote></div><br></div></blockquote></div><br></div>