<div dir="ltr"><div>I'm still not quite used to the archaic mailing list format, but I thought the proper thing to do when replying to a message on a mailing list is to do a reply all? I totally missed these three messages, because they were part of the silly "batched" messages. </div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><span style="font-size:12.8px">Consider making "no </span><span style="font-size:12.8px">detailed analysis" an option for -enable-analyze-</span><span style="font-size:12.8px">pass</span><span style="font-size:12.8px"> to help with these </span><span style="font-size:12.8px">use cases</span><br></blockquote><div><br></div><div>Eh? Do you mean less detailed output or less detailed analysis done by clang?<br></div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><span style="font-size:12.8px">Another possible (not mutually exclusive) extension point to add static</span><br style="font-size:12.8px"><span style="font-size:12.8px">analysis into would be through the Tooling interface and compilation</span><br style="font-size:12.8px"><span style="font-size:12.8px">databases - this would allow just the analysis to be run, without making it</span><br style="font-size:12.8px"><span style="font-size:12.8px">part of a build (no one would make static analysis part of an interactive</span><br style="font-size:12.8px"><span style="font-size:12.8px">build, it's too slow, right? the only reason it was integrated into the</span><br style="font-size:12.8px"><span style="font-size:12.8px">build with scan-build was because it was the best way to discover the build</span><br style="font-size:12.8px"><span style="font-size:12.8px">commands - but the Tooling/Compilation Database system allows us to</span><br style="font-size:12.8px"><span style="font-size:12.8px">separate build discovery from tool execution)</span><br style="font-size:12.8px"></blockquote><div><br></div><div>I'm not (yet) terribly familiar with the tooling interface. What exactly do you mean? Also: what do you mean by "interactive build"?</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><span style="font-size:12.8px">Adding a flag to a build is also a much lower barrier to entry to get</span><br style="font-size:12.8px"><span style="font-size:12.8px">started.  </span><br></blockquote><div><br></div><div>Example #1: I don't have Perl. Not many machines have Perl. That makes scan-build problematic.</div><div><br></div><div>"Not many" is <a href="http://www.fastcompany.com/3026446/the-fall-of-perl-the-webs-most-promising-language" target="_blank">relative to Python</a>. <a href="http://www.talyarkoni.org/blog/2013/11/18/the-homogenization-of-scientific-computing-or-why-python-is-steadily-eating-other-languages-lunch/" target="_blank">Python ate the world</a>.</div><div> <br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><span style="font-size:12.8px">If the work is done right, then the combined compile+</span><span style="font-size:12.8px">analyze</span><span style="font-size:12.8px"> execution</span><br style="font-size:12.8px"><span style="font-size:12.8px">could be faster than a compile action followed by an </span><span style="font-size:12.8px">analyze</span><span style="font-size:12.8px"> action.  If</span><br style="font-size:12.8px"><span style="font-size:12.8px">you're willing to give up "#ifndef __clang_analyzer__", then the AST</span><br style="font-size:12.8px"><span style="font-size:12.8px">from the compile can be reused by the analyzer.</span><br></blockquote><div><br></div><div>Not just faster, but also better. Currently the analyzer makes some inlining decisions on its own; currently the analyzer can't make use of any kind of analysis or folding done by the optimization passes. </div><div><br></div><div>I'll CC some other static analysis (more knowledgeable & important that me) people.</div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><span style="font-size:12.8px">Message: 2</span><br style="font-size:12.8px"><span style="font-size:12.8px">Date: Tue, 2 Feb 2016 10:49:55 -0600</span><br style="font-size:12.8px"><span style="font-size:12.8px">From: "Craig, Ben via cfe-dev" <</span><a href="mailto:cfe-dev@lists.llvm.org" style="font-size:12.8px" target="_blank">cfe-dev@lists.llvm.org</a><span style="font-size:12.8px">></span><br style="font-size:12.8px"><span style="font-size:12.8px">To: David Blaikie <</span><a href="mailto:dblaikie@gmail.com" style="font-size:12.8px" target="_blank">dblaikie@gmail.com</a><span style="font-size:12.8px">></span><br style="font-size:12.8px"><span style="font-size:12.8px">Cc: Clang Dev <</span><a href="mailto:cfe-dev@lists.llvm.org" style="font-size:12.8px" target="_blank">cfe-dev@lists.llvm.org</a><span style="font-size:12.8px">></span><br style="font-size:12.8px"><span style="font-size:12.8px">Subject: Re: [cfe-dev] Idea for better invoking static analysis via</span><br style="font-size:12.8px"><span style="font-size:12.8px">        command line</span><br style="font-size:12.8px"><span style="font-size:12.8px">Message-ID: <</span><a href="mailto:56B0DE33.9020107@codeaurora.org" style="font-size:12.8px" target="_blank">56B0DE33.9020107@codeaurora.org</a><span style="font-size:12.8px">></span><br style="font-size:12.8px"><span style="font-size:12.8px">Content-Type: text/plain; charset="utf-8"; Format="flowed"</span><br style="font-size:12.8px"><br style="font-size:12.8px"><span style="font-size:12.8px">The judgment of "how much slower is too much slower" is pretty</span><br style="font-size:12.8px"><span style="font-size:12.8px">subjective, and depends on the project.  Increasing a project's build</span><br style="font-size:12.8px"><span style="font-size:12.8px">from 30 seconds to 5 minutes is probably too much for that project.</span><br style="font-size:12.8px"><span style="font-size:12.8px">Increasing a project's build from 45 minutes to 55 minutes is probably</span><br style="font-size:12.8px"><span style="font-size:12.8px">fine though.</span><br style="font-size:12.8px"><br style="font-size:12.8px"><span style="font-size:12.8px">Adding a flag to a build is also a much lower barrier to entry to get</span><br style="font-size:12.8px"><span style="font-size:12.8px">started.  There are a lot of build systems out there, and scan-build and</span><br style="font-size:12.8px"><span style="font-size:12.8px">compilation databases only work easily with a few of those systems.</span><br style="font-size:12.8px"><span style="font-size:12.8px">Adding a build flag is pretty easy on every build system that I've ever</span><br style="font-size:12.8px"><span style="font-size:12.8px">worked with.</span><br style="font-size:12.8px"><br style="font-size:12.8px"><span style="font-size:12.8px">If the work is done right, then the combined compile+</span><span style="font-size:12.8px;background-color:rgb(255,255,255)">analyze</span><span style="font-size:12.8px"> execution</span><br style="font-size:12.8px"><span style="font-size:12.8px">could be faster than a compile action followed by an </span><span style="font-size:12.8px;background-color:rgb(255,255,255)">analyze</span><span style="font-size:12.8px"> action.  If</span><br style="font-size:12.8px"><span style="font-size:12.8px">you're willing to give up "#ifndef __clang_analyzer__", then the AST</span><br style="font-size:12.8px"><span style="font-size:12.8px">from the compile can be reused by the analyzer.  Even if you aren't</span><br style="font-size:12.8px"><span style="font-size:12.8px">willing to give up that feature, doing a compile of a file immediately</span><br style="font-size:12.8px"><span style="font-size:12.8px">followed by an analysis of the same file is probably going to be faster</span><br style="font-size:12.8px"><span style="font-size:12.8px">than doing all the compiles then all the analyzes due to disk caching</span><br style="font-size:12.8px"><span style="font-size:12.8px">effects.</span><br style="font-size:12.8px"><br style="font-size:12.8px"><span style="font-size:12.8px">On 2/2/2016 10:23 AM, David Blaikie wrote:</span><br style="font-size:12.8px"><span style="font-size:12.8px">> Another possible (not mutually exclusive) extension point to add</span><br style="font-size:12.8px"><span style="font-size:12.8px">> static analysis into would be through the Tooling interface and</span><br style="font-size:12.8px"><span style="font-size:12.8px">> compilation databases - this would allow just the analysis to be run,</span><br style="font-size:12.8px"><span style="font-size:12.8px">> without making it part of a build (no one would make static analysis</span><br style="font-size:12.8px"><span style="font-size:12.8px">> part of an interactive build, it's too slow, right? the only reason it</span><br style="font-size:12.8px"><span style="font-size:12.8px">> was integrated into the build with scan-build was because it was the</span><br style="font-size:12.8px"><span style="font-size:12.8px">> best way to discover the build commands - but the Tooling/Compilation</span><br style="font-size:12.8px"><span style="font-size:12.8px">> Database system allows us to separate build discovery from tool execution)</span><br style="font-size:12.8px"><span style="font-size:12.8px">></span><br style="font-size:12.8px"><span style="font-size:12.8px">> On Tue, Feb 2, 2016 at 6:19 AM, Craig, Ben via cfe-dev</span><br style="font-size:12.8px"><span style="font-size:12.8px">> <</span><a href="mailto:cfe-dev@lists.llvm.org" style="font-size:12.8px" target="_blank">cfe-dev@lists.llvm.org</a><span style="font-size:12.8px"> <mailto:</span><a href="mailto:cfe-dev@lists.llvm.org" style="font-size:12.8px" target="_blank">cfe-dev@lists.llvm.org</a><span style="font-size:12.8px">>> wrote:</span><br style="font-size:12.8px"><span style="font-size:12.8px">></span><br style="font-size:12.8px"><span style="font-size:12.8px">>     I'm all for this idea.  There is precedent for this in other tools</span><br style="font-size:12.8px"><span style="font-size:12.8px">>     (Visual Studio's /</span><span style="font-size:12.8px;background-color:rgb(255,255,255)">analyze</span><span style="font-size:12.8px">).  I think it also greatly reduces the</span><br style="font-size:12.8px"><span style="font-size:12.8px">>     need for build interposition via scan-build.</span><br style="font-size:12.8px"><span style="font-size:12.8px">></span><br style="font-size:12.8px"><span style="font-size:12.8px">>     I would ask that you think carefully about the output format of</span><br style="font-size:12.8px"><span style="font-size:12.8px">>     the detailed analysis for -enable-</span><span style="font-size:12.8px;background-color:rgb(255,255,255)">analyze</span><span style="font-size:12.8px">-</span><span style="font-size:12.8px;background-color:rgb(255,255,255)">pass</span><span style="font-size:12.8px">. If people are</span><br style="font-size:12.8px"><span style="font-size:12.8px">>     using -enable-</span><span style="font-size:12.8px;background-color:rgb(255,255,255)">analyze</span><span style="font-size:12.8px">-</span><span style="font-size:12.8px;background-color:rgb(255,255,255)">pass</span><span style="font-size:12.8px"> on most of their builds, then plist and</span><br style="font-size:12.8px"><span style="font-size:12.8px">>     html reports are likely to go unread for the most part.  Consider</span><br style="font-size:12.8px"><span style="font-size:12.8px">>     making "no detailed analysis" an option for -enable-</span><span style="font-size:12.8px;background-color:rgb(255,255,255)">analyze</span><span style="font-size:12.8px">-</span><span style="font-size:12.8px;background-color:rgb(255,255,255)">pass</span><br style="font-size:12.8px"><span style="font-size:12.8px">>     to help with these use cases.</span><br style="font-size:12.8px"><span style="font-size:12.8px">></span><br style="font-size:12.8px"><span style="font-size:12.8px">></span><br style="font-size:12.8px"><span style="font-size:12.8px">>     On 1/29/2016 9:04 PM, <Alexander G. Riccio> via cfe-dev wrote:</span><br style="font-size:12.8px"><span style="font-size:12.8px">>>     As mentioned by myself, Aaron Ballman, and Philip Reames, in a</span><br style="font-size:12.8px"><span style="font-size:12.8px">>>     reply to "Proposal: Integrate static analysis test suites", the</span><br style="font-size:12.8px"><span style="font-size:12.8px">>>     fact that static analysis generates a totally different set of</span><br style="font-size:12.8px"><span style="font-size:12.8px">>>     warnings than compilation (not a superset), is surprising to some.</span><br style="font-size:12.8px"><span style="font-size:12.8px">>></span><br style="font-size:12.8px"><span style="font-size:12.8px">>>     One possibility, in order to preserve the current behavior for</span><br style="font-size:12.8px"><span style="font-size:12.8px">>>     any tools that rely on this, is to add an option to clang,</span><br style="font-size:12.8px"><span style="font-size:12.8px">>>     something like "-enable-</span><span style="font-size:12.8px;background-color:rgb(255,255,255)">analyze</span><span style="font-size:12.8px">-</span><span style="font-size:12.8px;background-color:rgb(255,255,255)">pass</span><span style="font-size:12.8px">" that the user can specify</span><br style="font-size:12.8px"><span style="font-size:12.8px">>>     to run analysis AND compilation.</span><br style="font-size:12.8px"><span style="font-size:12.8px">>></span><br style="font-size:12.8px"><span style="font-size:12.8px">>>     Thoughts?</span><br style="font-size:12.8px"><span style="font-size:12.8px">>></span><br style="font-size:12.8px"><span style="font-size:12.8px">>>     Sincerely,</span><br style="font-size:12.8px"><span style="font-size:12.8px">>>     Alexander Riccio</span><br style="font-size:12.8px"><span style="font-size:12.8px">>>     --</span><br style="font-size:12.8px"><span style="font-size:12.8px">>>     "Change the world or go home."</span><br style="font-size:12.8px"><span style="font-size:12.8px">>>     </span><a href="http://about.me/ariccio" rel="noreferrer" style="font-size:12.8px" target="_blank">about.me/ariccio</a><span style="font-size:12.8px"> <</span><a href="http://about.me/ariccio" rel="noreferrer" style="font-size:12.8px" target="_blank">http://about.me/ariccio</a><span style="font-size:12.8px">></span><br style="font-size:12.8px"><span style="font-size:12.8px">>></span><br style="font-size:12.8px"><span style="font-size:12.8px">>>     <</span><a href="http://about.me/ariccio" rel="noreferrer" style="font-size:12.8px" target="_blank">http://about.me/ariccio</a><span style="font-size:12.8px">></span><br style="font-size:12.8px"><span style="font-size:12.8px">>>     If left to my own devices, I will build more.</span><br style="font-size:12.8px"><span style="font-size:12.8px">>>     ⁂</span><br style="font-size:12.8px"><span style="font-size:12.8px">>></span><br style="font-size:12.8px"><span style="font-size:12.8px">>></span><br style="font-size:12.8px"><span style="font-size:12.8px">>>     ______________________________</span><span style="font-size:12.8px">_________________</span><br style="font-size:12.8px"><span style="font-size:12.8px">>>     cfe-dev mailing list</span><br style="font-size:12.8px"><span style="font-size:12.8px">>>     </span><a href="mailto:cfe-dev@lists.llvm.org" style="font-size:12.8px" target="_blank">cfe-dev@lists.llvm.org</a><span style="font-size:12.8px"> <mailto:</span><a href="mailto:cfe-dev@lists.llvm.org" style="font-size:12.8px" target="_blank">cfe-dev@lists.llvm.org</a><span style="font-size:12.8px">></span><br style="font-size:12.8px"><span style="font-size:12.8px">>>     </span><a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev" rel="noreferrer" style="font-size:12.8px" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev</a><br style="font-size:12.8px"><span style="font-size:12.8px">></span><br style="font-size:12.8px"><span style="font-size:12.8px">>     --</span><br style="font-size:12.8px"><span style="font-size:12.8px">>     Employee of Qualcomm Innovation Center, Inc.</span><br style="font-size:12.8px"><span style="font-size:12.8px">>     Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a Linux Foundation Collaborative Project</span><br style="font-size:12.8px"><span style="font-size:12.8px">></span><br style="font-size:12.8px"><span style="font-size:12.8px">></span><br style="font-size:12.8px"><span style="font-size:12.8px">>     ______________________________</span><span style="font-size:12.8px">_________________</span><br style="font-size:12.8px"><span style="font-size:12.8px">>     cfe-dev mailing list</span><br style="font-size:12.8px"><span style="font-size:12.8px">>     </span><a href="mailto:cfe-dev@lists.llvm.org" style="font-size:12.8px" target="_blank">cfe-dev@lists.llvm.org</a><span style="font-size:12.8px"> <mailto:</span><a href="mailto:cfe-dev@lists.llvm.org" style="font-size:12.8px" target="_blank">cfe-dev@lists.llvm.org</a><span style="font-size:12.8px">></span><br style="font-size:12.8px"><span style="font-size:12.8px">>     </span><a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev" rel="noreferrer" style="font-size:12.8px" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev</a><br style="font-size:12.8px"><span style="font-size:12.8px">></span><br style="font-size:12.8px"><span style="font-size:12.8px">></span><br style="font-size:12.8px"><br style="font-size:12.8px"><span style="font-size:12.8px">--</span><br style="font-size:12.8px"><span style="font-size:12.8px">Employee of Qualcomm Innovation Center, Inc.</span><br style="font-size:12.8px"><span style="font-size:12.8px">Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a Linux Foundation Collaborative Project</span><br style="font-size:12.8px"><br style="font-size:12.8px"><span style="font-size:12.8px">-------------- next part --------------</span><br style="font-size:12.8px"><span style="font-size:12.8px">An HTML attachment was scrubbed...</span><br style="font-size:12.8px"><span style="font-size:12.8px">URL: <</span><a href="http://lists.llvm.org/pipermail/cfe-dev/attachments/20160202/e3ce5c8a/attachment-0001.html" rel="noreferrer" style="font-size:12.8px" target="_blank">http://lists.llvm.org/pipermail/cfe-dev/attachments/20160202/e3ce5c8a/attachment-0001.html</a><span style="font-size:12.8px">></span><br style="font-size:12.8px"></blockquote><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><span style="font-size:12.8px">Message: 1</span><br style="font-size:12.8px"><span style="font-size:12.8px">Date: Tue, 2 Feb 2016 08:23:51 -0800</span><br style="font-size:12.8px"><span style="font-size:12.8px">From: David Blaikie via cfe-dev <</span><a href="mailto:cfe-dev@lists.llvm.org" style="font-size:12.8px" target="_blank">cfe-dev@lists.llvm.org</a><span style="font-size:12.8px">></span><br style="font-size:12.8px"><span style="font-size:12.8px">To: "Craig, Ben" <</span><a href="mailto:ben.craig@codeaurora.org" style="font-size:12.8px" target="_blank">ben.craig@codeaurora.org</a><span style="font-size:12.8px">></span><br style="font-size:12.8px"><span style="font-size:12.8px">Cc: Clang Dev <</span><a href="mailto:cfe-dev@lists.llvm.org" style="font-size:12.8px" target="_blank">cfe-dev@lists.llvm.org</a><span style="font-size:12.8px">></span><br style="font-size:12.8px"><span style="font-size:12.8px">Subject: Re: [cfe-dev] Idea for better invoking static analysis via</span><br style="font-size:12.8px"><span style="font-size:12.8px">        command line</span><br style="font-size:12.8px"><span style="font-size:12.8px">Message-ID:</span><br style="font-size:12.8px"><span style="font-size:12.8px">        <CAENS6Eu-2WDA=</span><a href="mailto:f6qre94bQKv3paQsfMd6Krs6OF%2Bz0OGXPwPag@mail.gmail.com" style="font-size:12.8px" target="_blank">f6qre94bQKv3paQsfMd6Krs6OF+z0OGXPwPag@mail.gmail.com</a><span style="font-size:12.8px">></span><br style="font-size:12.8px"><span style="font-size:12.8px">Content-Type: text/plain; charset="utf-8"</span><br style="font-size:12.8px"><br style="font-size:12.8px"><span style="font-size:12.8px">Another possible (not mutually exclusive) extension point to add static</span><br style="font-size:12.8px"><span style="font-size:12.8px">analysis into would be through the Tooling interface and compilation</span><br style="font-size:12.8px"><span style="font-size:12.8px">databases - this would allow just the analysis to be run, without making it</span><br style="font-size:12.8px"><span style="font-size:12.8px">part of a build (no one would make static analysis part of an interactive</span><br style="font-size:12.8px"><span style="font-size:12.8px">build, it's too slow, right? the only reason it was integrated into the</span><br style="font-size:12.8px"><span style="font-size:12.8px">build with scan-build was because it was the best way to discover the build</span><br style="font-size:12.8px"><span style="font-size:12.8px">commands - but the Tooling/Compilation Database system allows us to</span><br style="font-size:12.8px"><span style="font-size:12.8px">separate build discovery from tool execution)</span><br style="font-size:12.8px"><br style="font-size:12.8px"><span style="font-size:12.8px">On Tue, Feb 2, 2016 at 6:19 AM, Craig, Ben via cfe-dev <</span><br style="font-size:12.8px"><a href="mailto:cfe-dev@lists.llvm.org" style="font-size:12.8px" target="_blank">cfe-dev@lists.llvm.org</a><span style="font-size:12.8px">> wrote:</span><br style="font-size:12.8px"><br style="font-size:12.8px"><span style="font-size:12.8px">> I'm all for this idea.  There is precedent for this in other tools (Visual</span><br style="font-size:12.8px"><span style="font-size:12.8px">> Studio's /</span><span style="font-size:12.8px;background-color:rgb(255,255,255)">analyze</span><span style="font-size:12.8px">).  I think it also greatly reduces the need for build</span><br style="font-size:12.8px"><span style="font-size:12.8px">> interposition via scan-build.</span><br style="font-size:12.8px"><span style="font-size:12.8px">></span><br style="font-size:12.8px"><span style="font-size:12.8px">> I would ask that you think carefully about the output format of the</span><br style="font-size:12.8px"><span style="font-size:12.8px">> detailed analysis for -enable-</span><span style="font-size:12.8px;background-color:rgb(255,255,255)">analyze</span><span style="font-size:12.8px">-</span><span style="font-size:12.8px;background-color:rgb(255,255,255)">pass</span><span style="font-size:12.8px">.  If people are using</span><br style="font-size:12.8px"><span style="font-size:12.8px">> -enable-</span><span style="font-size:12.8px;background-color:rgb(255,255,255)">analyze</span><span style="font-size:12.8px">-</span><span style="font-size:12.8px;background-color:rgb(255,255,255)">pass</span><span style="font-size:12.8px"> on most of their builds, then plist and html reports</span><br style="font-size:12.8px"><span style="font-size:12.8px">> are likely to go unread for the most part.  Consider making "no detailed</span><br style="font-size:12.8px"><span style="font-size:12.8px">> analysis" an option for -enable-</span><span style="font-size:12.8px;background-color:rgb(255,255,255)">analyze</span><span style="font-size:12.8px">-</span><span style="font-size:12.8px;background-color:rgb(255,255,255)">pass</span><span style="font-size:12.8px"> to help with these use cases.</span><br style="font-size:12.8px"><span style="font-size:12.8px">></span><br style="font-size:12.8px"><span style="font-size:12.8px">></span><br style="font-size:12.8px"><span style="font-size:12.8px">> On 1/29/2016 9:04 PM, <Alexander G. Riccio> via cfe-dev wrote:</span><br style="font-size:12.8px"><span style="font-size:12.8px">></span><br style="font-size:12.8px"><span style="font-size:12.8px">> As mentioned by myself, Aaron Ballman, and Philip Reames, in a reply to</span><br style="font-size:12.8px"><span style="font-size:12.8px">> "Proposal: Integrate static analysis test suites", the fact that static</span><br style="font-size:12.8px"><span style="font-size:12.8px">> analysis generates a totally different set of warnings than compilation</span><br style="font-size:12.8px"><span style="font-size:12.8px">> (not a superset), is surprising to some.</span><br style="font-size:12.8px"><span style="font-size:12.8px">></span><br style="font-size:12.8px"><span style="font-size:12.8px">> One possibility, in order to preserve the current behavior for any tools</span><br style="font-size:12.8px"><span style="font-size:12.8px">> that rely on this, is to add an option to clang, something like</span><br style="font-size:12.8px"><span style="font-size:12.8px">> "-enable-</span><span style="font-size:12.8px;background-color:rgb(255,255,255)">analyze</span><span style="font-size:12.8px">-</span><span style="font-size:12.8px;background-color:rgb(255,255,255)">pass</span><span style="font-size:12.8px">" that the user can specify to run analysis AND</span><br style="font-size:12.8px"><span style="font-size:12.8px">> compilation.</span><br style="font-size:12.8px"><span style="font-size:12.8px">></span><br style="font-size:12.8px"><span style="font-size:12.8px">> Thoughts?</span><br style="font-size:12.8px"><span style="font-size:12.8px">></span><br style="font-size:12.8px"><span style="font-size:12.8px">> Sincerely,</span><br style="font-size:12.8px"><span style="font-size:12.8px">> Alexander Riccio</span><br style="font-size:12.8px"><span style="font-size:12.8px">> --</span><br style="font-size:12.8px"><span style="font-size:12.8px">> "Change the world or go home."</span><br style="font-size:12.8px"><span style="font-size:12.8px">> </span><a href="http://about.me/ariccio" rel="noreferrer" style="font-size:12.8px" target="_blank">about.me/ariccio</a><br style="font-size:12.8px"><span style="font-size:12.8px">></span><br style="font-size:12.8px"><span style="font-size:12.8px">> <</span><a href="http://about.me/ariccio" rel="noreferrer" style="font-size:12.8px" target="_blank">http://about.me/ariccio</a><span style="font-size:12.8px">></span><br style="font-size:12.8px"><span style="font-size:12.8px">> If left to my own devices, I will build more.</span><br style="font-size:12.8px"><span style="font-size:12.8px">> ⁂</span><br style="font-size:12.8px"><span style="font-size:12.8px">></span><br style="font-size:12.8px"><span style="font-size:12.8px">></span><br style="font-size:12.8px"><span style="font-size:12.8px">> ______________________________</span><span style="font-size:12.8px">_________________</span><br style="font-size:12.8px"><span style="font-size:12.8px">> cfe-dev mailing listcfe-dev@lists.llvm.</span><span style="font-size:12.8px">orghttp://</span><a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev" rel="noreferrer" style="font-size:12.8px" target="_blank">lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev</a><br style="font-size:12.8px"><span style="font-size:12.8px">></span><br style="font-size:12.8px"><span style="font-size:12.8px">></span><br style="font-size:12.8px"><span style="font-size:12.8px">> --</span><br style="font-size:12.8px"><span style="font-size:12.8px">> Employee of Qualcomm Innovation Center, Inc.</span><br style="font-size:12.8px"><span style="font-size:12.8px">> Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a Linux Foundation Collaborative Project</span><br style="font-size:12.8px"><span style="font-size:12.8px">></span><br style="font-size:12.8px"><span style="font-size:12.8px">></span><br style="font-size:12.8px"><span style="font-size:12.8px">> ______________________________</span><span style="font-size:12.8px">_________________</span><br style="font-size:12.8px"><span style="font-size:12.8px">> cfe-dev mailing list</span><br style="font-size:12.8px"><span style="font-size:12.8px">> </span><a href="mailto:cfe-dev@lists.llvm.org" style="font-size:12.8px" target="_blank">cfe-dev@lists.llvm.org</a><br style="font-size:12.8px"><span style="font-size:12.8px">> </span><a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev" rel="noreferrer" style="font-size:12.8px" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev</a><br style="font-size:12.8px"><span style="font-size:12.8px">></span><br style="font-size:12.8px"><span style="font-size:12.8px">></span><br style="font-size:12.8px"><span style="font-size:12.8px">-------------- next part --------------</span><br style="font-size:12.8px"><span style="font-size:12.8px">An HTML attachment was scrubbed...</span><br style="font-size:12.8px"><span style="font-size:12.8px">URL: <</span><a href="http://lists.llvm.org/pipermail/cfe-dev/attachments/20160202/c94f40c1/attachment-0001.html" rel="noreferrer" style="font-size:12.8px" target="_blank">http://lists.llvm.org/pipermail/cfe-dev/attachments/20160202/c94f40c1/attachment-0001.html</a><span style="font-size:12.8px">></span><br style="font-size:12.8px"><br style="font-size:12.8px"><span style="font-size:12.8px">------------------------------</span><br></blockquote><div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><span style="font-size:12.8px">Message: 3</span><br style="font-size:12.8px"><span style="font-size:12.8px">Date: Tue, 2 Feb 2016 08:19:03 -0600</span><br style="font-size:12.8px"><span style="font-size:12.8px">From: "Craig, Ben via cfe-dev" <</span><a href="mailto:cfe-dev@lists.llvm.org" style="font-size:12.8px" target="_blank">cfe-dev@lists.llvm.org</a><span style="font-size:12.8px">></span><br style="font-size:12.8px"><span style="font-size:12.8px">To: </span><a href="mailto:cfe-dev@lists.llvm.org" style="font-size:12.8px" target="_blank">cfe-dev@lists.llvm.org</a><br style="font-size:12.8px"><span style="font-size:12.8px">Subject: Re: [cfe-dev] Idea for better invoking static analysis via</span><br style="font-size:12.8px"><span style="font-size:12.8px">        command line</span><br style="font-size:12.8px"><span style="font-size:12.8px">Message-ID: <</span><a href="mailto:56B0BAD7.5030309@codeaurora.org" style="font-size:12.8px" target="_blank">56B0BAD7.5030309@codeaurora.org</a><span style="font-size:12.8px">></span><br style="font-size:12.8px"><span style="font-size:12.8px">Content-Type: text/plain; charset="utf-8"; Format="flowed"</span><br style="font-size:12.8px"><br style="font-size:12.8px"><span style="font-size:12.8px">I'm all for this idea.  There is precedent for this in other tools</span><br style="font-size:12.8px"><span style="font-size:12.8px">(Visual Studio's /analyze).  I think it also greatly reduces the need</span><br style="font-size:12.8px"><span style="font-size:12.8px">for build interposition via scan-build.</span><br style="font-size:12.8px"><br style="font-size:12.8px"><span style="font-size:12.8px">I would ask that you think carefully about the output format of the</span><br style="font-size:12.8px"><span style="font-size:12.8px">detailed analysis for -enable-analyze-</span><span style="font-size:12.8px;background-color:rgb(255,255,255)">pass</span><span style="font-size:12.8px">.  If people are using</span><br style="font-size:12.8px"><span style="font-size:12.8px">-enable-analyze-</span><span style="font-size:12.8px;background-color:rgb(255,255,255)">pass</span><span style="font-size:12.8px"> on most of their builds, then plist and html</span><br style="font-size:12.8px"><span style="font-size:12.8px">reports are likely to go unread for the most part.  Consider making "no</span><br style="font-size:12.8px"><span style="font-size:12.8px">detailed analysis" an option for -enable-analyze-</span><span style="font-size:12.8px;background-color:rgb(255,255,255)">pass</span><span style="font-size:12.8px"> to help with these</span><br style="font-size:12.8px"><span style="font-size:12.8px">use cases.</span><br style="font-size:12.8px"><br style="font-size:12.8px"><span style="font-size:12.8px">On 1/29/2016 9:04 PM, <Alexander G. Riccio> via cfe-dev wrote:</span><br style="font-size:12.8px"><span style="font-size:12.8px">> As mentioned by myself, Aaron Ballman, and Philip Reames, in a reply</span><br style="font-size:12.8px"><span style="font-size:12.8px">> to "Proposal: Integrate static analysis test suites", the fact that</span><br style="font-size:12.8px"><span style="font-size:12.8px">> static analysis generates a totally different set of warnings than</span><br style="font-size:12.8px"><span style="font-size:12.8px">> compilation (not a superset), is surprising to some.</span><br style="font-size:12.8px"><span style="font-size:12.8px">></span><br style="font-size:12.8px"><span style="font-size:12.8px">> One possibility, in order to preserve the current behavior for any</span><br style="font-size:12.8px"><span style="font-size:12.8px">> tools that rely on this, is to add an option to clang, something like</span><br style="font-size:12.8px"><span style="font-size:12.8px">> "-enable-analyze-</span><span style="font-size:12.8px;background-color:rgb(255,255,255)">pass</span><span style="font-size:12.8px">" that the user can specify to run analysis AND</span><br style="font-size:12.8px"><span style="font-size:12.8px">> compilation.</span><br style="font-size:12.8px"><span style="font-size:12.8px">></span><br style="font-size:12.8px"><span style="font-size:12.8px">> Thoughts?</span><br style="font-size:12.8px"><span style="font-size:12.8px">></span><br style="font-size:12.8px"><span style="font-size:12.8px">> Sincerely,</span><br style="font-size:12.8px"><span style="font-size:12.8px">> Alexander Riccio</span><br style="font-size:12.8px"><span style="font-size:12.8px">> --</span><br style="font-size:12.8px"><span style="font-size:12.8px">> "Change the world or go home."</span><br style="font-size:12.8px"><span style="font-size:12.8px">> </span><a href="http://about.me/ariccio" rel="noreferrer" style="font-size:12.8px" target="_blank">about.me/ariccio</a><span style="font-size:12.8px"> <</span><a href="http://about.me/ariccio" rel="noreferrer" style="font-size:12.8px" target="_blank">http://about.me/ariccio</a><span style="font-size:12.8px">></span><br style="font-size:12.8px"><span style="font-size:12.8px">></span><br style="font-size:12.8px"><span style="font-size:12.8px">> <</span><a href="http://about.me/ariccio" rel="noreferrer" style="font-size:12.8px" target="_blank">http://about.me/ariccio</a><span style="font-size:12.8px">></span><br style="font-size:12.8px"><span style="font-size:12.8px">> If left to my own devices, I will build more.</span><br style="font-size:12.8px"><span style="font-size:12.8px">> ⁂</span><br style="font-size:12.8px"><span style="font-size:12.8px">></span><br style="font-size:12.8px"><span style="font-size:12.8px">></span><br style="font-size:12.8px"><span style="font-size:12.8px">> ______________________________</span><span style="font-size:12.8px">_________________</span><br style="font-size:12.8px"><span style="font-size:12.8px">> cfe-dev mailing list</span><br style="font-size:12.8px"><span style="font-size:12.8px">> </span><a href="mailto:cfe-dev@lists.llvm.org" style="font-size:12.8px" target="_blank">cfe-dev@lists.llvm.org</a><br style="font-size:12.8px"><span style="font-size:12.8px">> </span><a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev" rel="noreferrer" style="font-size:12.8px" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev</a><br style="font-size:12.8px"></blockquote></div><div class="gmail_extra"><br clear="all"><div><div class="gmail_signature"><div dir="ltr"><div><div dir="ltr"><span style="font-size:12.8000001907349px">Sincerely,</span><br style="font-size:12.8000001907349px"><span style="font-size:12.8000001907349px">Alexander Riccio</span><br style="font-size:12.8000001907349px"><span style="font-size:12.8000001907349px">--</span><br style="font-size:12.8000001907349px"><span style="font-size:12.8000001907349px">"Change the world or go home."</span><div style="font-size:12.8000001907349px"><a href="http://about.me/ariccio" target="_blank">about.me/ariccio</a></div><div style="font-size:12.8000001907349px"><a href="http://about.me/ariccio" target="_blank"><br></a></div><div style="font-size:12.8000001907349px">If left to my own devices, I will build more.</div><div style="font-size:12.8000001907349px">⁂</div></div></div></div></div></div>
<br><div class="gmail_quote">On Fri, Jan 29, 2016 at 10:04 PM, <Alexander G. Riccio> <span dir="ltr"><<a href="mailto:test35965@gmail.com" target="_blank">test35965@gmail.com</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"><div>As mentioned by myself, Aaron Ballman, and Philip Reames, in a reply to "Proposal: Integrate static analysis test suites", the fact that static analysis generates a totally different set of warnings than compilation (not a superset), is surprising to some.</div><div><br></div><div>One possibility, in order to preserve the current behavior for any tools that rely on this, is to add an option to clang, something like "-enable-analyze-pass" that the user can specify to run analysis AND compilation.</div><div><br></div><div>Thoughts?</div><br clear="all"><div><div><div dir="ltr"><div><div dir="ltr"><span style="font-size:12.8px">Sincerely,</span><br style="font-size:12.8px"><span style="font-size:12.8px">Alexander Riccio</span><br style="font-size:12.8px"><span style="font-size:12.8px">--</span><br style="font-size:12.8px"><span style="font-size:12.8px">"Change the world or go home."</span><div style="font-size:12.8px"><a href="http://about.me/ariccio" target="_blank">about.me/ariccio</a></div><div style="font-size:12.8px"><a href="http://about.me/ariccio" target="_blank"><br></a></div><div style="font-size:12.8px">If left to my own devices, I will build more.</div><div style="font-size:12.8px">⁂</div></div></div></div></div></div>
</div>
</blockquote></div><br></div>