<div><br /></div><div class="49d322fa18fbd16bb206f61f9a2a40f7normalize"><div><br /><br /><div>11.06.2019, 04:12, "Artem Dergachev via cfe-dev" <<a class="09f7ddcd78d17c479368795f67fe4443goto-anchor" href="mailto:cfe-dev@lists.llvm.org">cfe-dev@lists.llvm.org</a>>:</div><blockquote><div><div bgcolor="#FFFFFF">
    Multi-pass path-sensitive analysis is indeed not a thing. However,
    you can do arbitrary AST-based analysis before path-sensitive
    analysis or after it by subscribing to the respective callback, and
    you can also explore the whole path-sensitive analysis graph at the
    end of the analysis. But none of this is actually used actively;
    there's usually no need for this.<br />
    <br />
    Also all path-sensitive checkers have a way to affect other checkers
    and communicate to each other via mutating the common program state.
    This is used much more actively and allows conducting multiple
    interconnected analysis in a single path.<br />
    <br />
    There's most likely an easier solution to what you're trying to do;
    i recommend discussing it.<br />
    <br />
    <div class="b7208f009a6f820cee2c5192307fe726ec38e6d876920c67a8c9c8bc184e51ca809314d0c4881d4841d185c08b152359b0bac06ac3581de2ec418ec92a0326fbmoz-cite-prefix">On 6/9/19 6:51 AM, Алексеев Кирилл via
      cfe-dev wrote:<br />
    </div>
    <blockquote>
      
      <div><br />
      </div>
      <div>Hello, I'm beginner in CSA programming. I have read clang SA
        a checker developer manual</div>
      <div>and have some questions.</div>
      <div>How can I pass command line options to CSA checker? Does
        -Xanalyzer option can help me?</div>
      <div>May be I need to see AnalyzerOptions.cpp, but can't
        understand how to catch options from my checker.</div>
      <div><br />
      </div>
      <div>Also I want to know  is it possible to realize multi-pass
        analyzer with parallel or sequential running of one or multiply
        checker with data transfer between passes.</div>
      <div>I need to run first checker that taint some input, observes
        taint values and find some AST expressions (or with path
        sensible analysis).</div>
      <div>After this checker ends up I need to start the second
        checker, that uses search results of 1'st in analysis from
        begining of ExplodedGraph.</div>
      <div><br />
      </div>
      <br />
      
      <pre class="2d37031c8697c4d130862c0ea7e8d03c9db545f882dae13254e98a9ed235586f0182442e7908a18bc25d80212d9cd3cbe8d7c34db0da9e6370c8a87217a69d47moz-quote-pre">_______________________________________________
cfe-dev mailing list
<a class="cfb1ae18380cbba11f0099e20a6f9033379efc6ad8b91cc511f85dce0935ae1b053601db12d746f838298619f14d96a24eb93b68e5827e5e792ffe9c28d66818moz-txt-link-abbreviated 9213f2ab4648198c89ea527eda9dc692d79ea98dedda095a8d36c4f0ce5a3eff09f7ddcd78d17c479368795f67fe4443goto-anchor 09f7ddcd78d17c479368795f67fe4443goto-anchor" href="mailto:cfe-dev@lists.llvm.org">cfe-dev@lists.llvm.org</a>
<a class="4589862b050412426868b222bb5ba737a683d5c14eb73bbd4661d8ffa811300fabc4448685a2998ff26ac1389283356e499caf9c18d52a041ed62b7164c9779dmoz-txt-link-freetext 9213f2ab4648198c89ea527eda9dc692d79ea98dedda095a8d36c4f0ce5a3eff09f7ddcd78d17c479368795f67fe4443goto-anchor 09f7ddcd78d17c479368795f67fe4443goto-anchor" href="https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev">https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev</a>
</pre>
    </blockquote>
    <br />
  </div></div><div><p>_______________________________________________<br />cfe-dev mailing list<br /><a class="9213f2ab4648198c89ea527eda9dc692d79ea98dedda095a8d36c4f0ce5a3eff09f7ddcd78d17c479368795f67fe4443goto-anchor 09f7ddcd78d17c479368795f67fe4443goto-anchor" href="mailto:cfe-dev@lists.llvm.org">cfe-dev@lists.llvm.org</a><br /><a class="9213f2ab4648198c89ea527eda9dc692d79ea98dedda095a8d36c4f0ce5a3eff09f7ddcd78d17c479368795f67fe4443goto-anchor 09f7ddcd78d17c479368795f67fe4443goto-anchor" href="https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev">https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev</a><br /></p><p><br /></p><p><br /></p><p><br /></p></div></blockquote><div>Thanks for you reply.</div><div>But how I can walk through whole path-sensitive analysis graph at the end of the analysis?</div><div>Really, I need to collect some information based on first step of analysis and rewrite some AST statements in origin source code.<br /></div><div><br /></div><div>As I understood I must use checkEndAnalysis callback and then iterate over ExplodedGraph nodes, as here:</div><div>for ( ExplodedGraph :: node_iterator I = </div><div>            G . nodes_begin () ,</div><div>            E = G . nodes_end (); </div><div>            I != E ; ++ I ) { ... }</div><div><br /></div><div>Next, I need to give some recommendations to user how he can improve code.</div><div>Is the way I'm going right?<br /></div><div><br /></div></div></div><div><br /></div><div class="fac59074051ae5ed40c8811da5d24da6js-compose-signature"></div><div><br /></div>