<html><head><meta http-equiv="Content-Type" content="text/html charset=windows-1252"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div>Ah, I see. If you're only running syntax-based checkers (checkASTDecl, checkASTCodeBody, and checkEndOfTranslationUnit), then it's perfectly fine to run without the core checkers.</div><div><br></div><div>We've been meaning to make it so the core checkers are enabled by default (and can't be disabled) if <i>any</i> other path-sensitive checkers are enabled, but for now --analyze still has to enable them explicitly.</div><div><br></div><div>As I mentioned below, you can make sure the -analyzer-disable-checker option reaches the analyzer by using "-Xclang -analyzer-disable-checker=core,unix,cplusplus,osx,deadcode".</div><div><br></div><div>Jordan</div><div><br></div><br><div><div>On Mar 7, 2013, at 3:47 , Yuval Shahar <<a href="mailto:yuval.shahar.007@gmail.com">yuval.shahar.007@gmail.com</a>> wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div dir="ltr">Hi Jordan.<div><br></div><div>Thanks. I am still not sure that my first pass requires the core checkers. I am trying to collect some statistics like the overall number of classes, methods and variables. However, the first pass' output is a simple text file; I am certain, this is not quite the solid design we'll be looking for.</div>
<div><br></div><div style="">What you wrote helps a lot, but since you recommend using '--analyze', is there a way to use '--analyze' and then override some of its options with a later '-cc1 -analyzer-disable-checker=core'?</div>
<div style=""><br></div><div style="">Thanks, Yuval.</div><div style=""><br></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Wed, Mar 6, 2013 at 7:20 PM, 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 class="im"><br><div><div>On Mar 6, 2013, at 3:18 , YuvalShahar <<a href="mailto:yuval.shahar.007@gmail.com" target="_blank">yuval.shahar.007@gmail.com</a>> wrote:</div>
<br><blockquote type="cite">Hi,<br><br>I wrote a checker which I need to run on all translation units, then<br>summarize its output and re-run clang on all translation units<br>(inter-procedural by a pass to collect data and a second pass using it).<br>
<br>I wish to run clang for the first pass, disabling all checkers but my data<br>collector, but I fail to do this. Any idea?<br><br>I could change the core checkers set (<a href="http://checkers.td/" target="_blank">checkers.td</a>), but having to recompile<br>
clang and hold two clang versions for thew two passes seems excessive.<br></blockquote></div><br></div><div>Hi, Yuval. The analyzer will not run properly if the "core" checkers are not run—they help prune infeasible paths. (For example, if you divide by a number 'x', we know that 'x' is non-zero after that point.) However, the other checkers can be turned off using an internal option -analyzer-disable-checker=unix,osx,cplusplus,deadcode; in order to make sure this option reaches the analyzer, you'll have to prepend it with -Xclang.</div>
<div><br></div><div>If you want to be 100% sure <i>all</i> the other checkers are off, you can see the command line generated by clang --analyze by adding -### to the end. Then you can strip out all the checkers besides "core", and add your own. However, I don't recommend saving the resulting command line because new options are added all the time, and while "clang --analyze" will always do the right thing, "clang -cc1 -analyze..." may be missing some critical options down the line.</div>
<div><br></div><div>Does this solve your problem?</div><span class="HOEnZb"><font color="#888888">Jordan</font></span><div><br></div><div>P.S. I'd be interested in seeing your setup once you've finished it. General cross-translation-unit analysis is something still off in the future for the analyzer, but when we get there some day we'll need a solid design.</div>
</div></blockquote></div><br></div>
</blockquote></div><br></body></html>