<div dir="ltr"><div><div>Hi!<br><br></div>I was thinking about two things. First is path-sensitive refactoring tools. The second would be a way to create analysis tools with superior performance: isolate a part of the AST via matchers which should be fast, then execute path sensitive analysis on only that part of the AST. <br>
<br></div><div>Thanks,<br></div><div>Gábor<br>
</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On 12 April 2013 02:40, Jordan Rose <span dir="ltr"><<a href="mailto:jordan_rose@apple.com" target="_blank">jordan_rose@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"><div>Hi, Gabor. I'm not exactly sure what you mean here. Again, although it hasn't been done (to my knowledge), there is nothing stopping you from writing a Clang tool that simply calls the analyzer's ASTFrontendAction. In order to integrate matchers, the tool could call additional ASTFrontendActions in addition to AnalysisAction, or a user could simply write a syntactic checker (check::ASTDecl, check::ASTCodeBody, check::EndOfTranslationUnit) that uses matchers to create analyzer-style output.</div>
<div><br></div><div>I suppose my main objection is that I'm not sure there's <i>any</i> infrastructure work to be done, let alone a whole summer's worth.</div><div><br></div><div>One thing that does seem a bit intriguing is "replacements"—could this be used to offer suggestions (a la fixits)? could there be path-sensitive refactoring tools?—but without a use case and definite goal in mind, I think this is still lacking a bit as a project.</div>
<div><br></div><div>But maybe I'm just not seeing the whole picture. Do you have anything in particular in mind?</div><span class="HOEnZb"><font color="#888888"><div>Jordan</div></font></span><div><br></div><div>P.S. The analyzer team at Apple is discussing some possible GSoC projects (and general open projects), which we'll put up on our website soonish. I'll try to remember to send them to you (and Adam) when that happens.</div>
<div><div class="h5"><div><br></div><br><div><div>On Apr 10, 2013, at 23:41 , Gábor Horváth <<a href="mailto:xazax.hun@gmail.com" target="_blank">xazax.hun@gmail.com</a>> wrote:</div><br><blockquote type="cite"><div dir="ltr">
<div><div><div><div>Hi!<br><br></div>Do you think, it would be a suitable GSoC project to make the Analyzer to work with the libTooling infrastructure? Not just making it able to work as a standalone tool, but make it easier to combine the features of analyzer, matchers and replacements. Because in that case I would like to propose this project for Google Summer of Code, and I would like to work on this project.<br>

<br></div>I am very interested about your feedbacks on this topic.<br><br></div>Thanks,<br></div>Gábor Horváth<br><div><div class="gmail_extra"><br><br><div class="gmail_quote">On 9 April 2013 18:57, Jordan Rose <span dir="ltr"><<a href="mailto:jordan_rose@apple.com" target="_blank">jordan_rose@apple.com</a>></span> wrote:<br>


<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">To build on what Anna said, the analyzer predates libTooling, but does use the same ASTFrontendAction infrastructure that a tooling plugin would use. It does seem like you would be able to run the AnalysisAction through libTooling, but we haven't ever tried this. Let us know how it turns out!<br>



<br>
(There is of course no reason why you couldn't write custom syntactic checkers that use libASTMatchers, and then you could just use the regular --analyze interface to the analyzer. But that might be a bit more intrusive of a change.)<br>



<span><font color="#888888"><br>
Jordan<br>
</font></span><div><br>
<br>
On Apr 6, 2013, at 11:12 , Gábor Kozár <<a href="mailto:kozargabor@gmail.com" target="_blank">kozargabor@gmail.com</a>> wrote:<br>
<br>
> Hi,<br>
><br>
> We're working on a static analysis tool that would enforce certain design (coding) rules in some private C++ projects. So far we've been working on a custom tool, using clang libtooling, to implement some fairly trivial checks using AST matchers - however, we realized that building upon the clang static analyzer would be a much better choice, especially when implementing more complicated checks.<br>



><br>
> I have had a quick look at the static analyzer source code, and it appears to me that it's basically an ASTFrontendAction (lib/StaticAnalyzer/FrontendActions.h), which to me indicates that this is "just another" tool built upon clang libtooling. Is this correct?<br>



> It would be extremely convenient for us if it were so, because we could extend it seamlessly with our custom checkers into a custom analyzer tool.<br>
><br>
> I also read on the website of the static analyzer that C++ support is not complete. However, I'm not sure how up-to-date the information on that website is kept, so I'll just ask it here: what is the state of the C++ (and C++11) support?<br>



><br>
> Thanks!<br>
><br>
> (Btw, we are very impressed by clang, and its static analyzer. Thank you for all your hard work! You guys are amazing!)<br>
><br>
> Gabor<br>
</div><div>> _______________________________________________<br>
> cfe-dev mailing list<br>
> <a href="mailto:cfe-dev@cs.uiuc.edu" target="_blank">cfe-dev@cs.uiuc.edu</a><br>
> <a href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev</a><br>
<br>
<br>
_______________________________________________<br>
cfe-dev mailing list<br>
<a href="mailto:cfe-dev@cs.uiuc.edu" target="_blank">cfe-dev@cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev</a><br>
</div></blockquote></div><br></div></div></div>
_______________________________________________<br>cfe-dev mailing list<br><a href="mailto:cfe-dev@cs.uiuc.edu" target="_blank">cfe-dev@cs.uiuc.edu</a><br><a href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev</a><br>
</blockquote></div><br></div></div></div></blockquote></div><br></div>