svf-tools 1.0.836 → 1.0.837

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -850,7 +850,7 @@ $(function() {
850
850
  <div class="line"><a name="l00897"></a><span class="lineno"> 897</span>&#160; </div>
851
851
  <div class="line"><a name="l00898"></a><span class="lineno"> 898</span>&#160; <span class="keywordflow">if</span> (pts.<a class="code" href="classSVF_1_1PointsTo.html#a13746982a11d0cab57e5919d53bfbec8">empty</a>())</div>
852
852
  <div class="line"><a name="l00899"></a><span class="lineno"> 899</span>&#160; {</div>
853
- <div class="line"><a name="l00900"></a><span class="lineno"> 900</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot;\t\tPointsTo: {empty}\n\n&quot;</span>;</div>
853
+ <div class="line"><a name="l00900"></a><span class="lineno"> 900</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot;\t\tPointsTo: {empty}\n&quot;</span>;</div>
854
854
  <div class="line"><a name="l00901"></a><span class="lineno"> 901</span>&#160; }</div>
855
855
  <div class="line"><a name="l00902"></a><span class="lineno"> 902</span>&#160; <span class="keywordflow">else</span></div>
856
856
  <div class="line"><a name="l00903"></a><span class="lineno"> 903</span>&#160; {</div>
@@ -863,15 +863,20 @@ $(function() {
863
863
  <div class="line"><a name="l00910"></a><span class="lineno"> 910</span>&#160; line.insert(*it);</div>
864
864
  <div class="line"><a name="l00911"></a><span class="lineno"> 911</span>&#160; }</div>
865
865
  <div class="line"><a name="l00912"></a><span class="lineno"> 912</span>&#160; <span class="keywordflow">for</span> (multiset&lt;u32_t&gt;::const_iterator it = line.begin(); it != line.end(); ++it)</div>
866
- <div class="line"><a name="l00913"></a><span class="lineno"> 913</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; *it &lt;&lt; <span class="stringliteral">&quot; &quot;</span>;</div>
867
- <div class="line"><a name="l00914"></a><span class="lineno"> 914</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot;}\n\n&quot;</span>;</div>
868
- <div class="line"><a name="l00915"></a><span class="lineno"> 915</span>&#160; }</div>
869
- <div class="line"><a name="l00916"></a><span class="lineno"> 916</span>&#160; }</div>
870
- <div class="line"><a name="l00917"></a><span class="lineno"> 917</span>&#160; }</div>
871
- <div class="line"><a name="l00918"></a><span class="lineno"> 918</span>&#160; </div>
872
- <div class="line"><a name="l00919"></a><span class="lineno"> 919</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>().flush();</div>
873
- <div class="line"><a name="l00920"></a><span class="lineno"> 920</span>&#160;}</div>
874
- <div class="line"><a name="l00921"></a><span class="lineno"> 921</span>&#160; </div>
866
+ <div class="line"><a name="l00913"></a><span class="lineno"> 913</span>&#160; {</div>
867
+ <div class="line"><a name="l00914"></a><span class="lineno"> 914</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">auto</span> gepNode = SVFUtil::dyn_cast&lt;GepObjVar&gt;(pag-&gt;getGNode(*it)))</div>
868
+ <div class="line"><a name="l00915"></a><span class="lineno"> 915</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; gepNode-&gt;getBaseNode() &lt;&lt; <span class="stringliteral">&quot;_&quot;</span> &lt;&lt; gepNode-&gt;getConstantFieldIdx() &lt;&lt; <span class="stringliteral">&quot; &quot;</span>;</div>
869
+ <div class="line"><a name="l00916"></a><span class="lineno"> 916</span>&#160; <span class="keywordflow">else</span></div>
870
+ <div class="line"><a name="l00917"></a><span class="lineno"> 917</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; *it &lt;&lt; <span class="stringliteral">&quot; &quot;</span>;</div>
871
+ <div class="line"><a name="l00918"></a><span class="lineno"> 918</span>&#160; }</div>
872
+ <div class="line"><a name="l00919"></a><span class="lineno"> 919</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot;}\n&quot;</span>;</div>
873
+ <div class="line"><a name="l00920"></a><span class="lineno"> 920</span>&#160; }</div>
874
+ <div class="line"><a name="l00921"></a><span class="lineno"> 921</span>&#160; }</div>
875
+ <div class="line"><a name="l00922"></a><span class="lineno"> 922</span>&#160; }</div>
876
+ <div class="line"><a name="l00923"></a><span class="lineno"> 923</span>&#160; </div>
877
+ <div class="line"><a name="l00924"></a><span class="lineno"> 924</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>().flush();</div>
878
+ <div class="line"><a name="l00925"></a><span class="lineno"> 925</span>&#160;}</div>
879
+ <div class="line"><a name="l00926"></a><span class="lineno"> 926</span>&#160; </div>
875
880
  </div><!-- fragment --></div><!-- contents -->
876
881
  <div class="ttc" id="anamespaceSVF_html_a5c4820681ef340339ddded756eb82ae1"><div class="ttname"><a href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">SVF::APOffset</a></div><div class="ttdeci">s64_t APOffset</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00061">SVFType.h:61</a></div></div>
877
882
  <div class="ttc" id="aclassSVF_1_1Andersen_html_ac6b1efcaadfed48c226701ecf6bac55e"><div class="ttname"><a href="classSVF_1_1Andersen.html#ac6b1efcaadfed48c226701ecf6bac55e">SVF::Andersen::processGepPts</a></div><div class="ttdeci">virtual bool processGepPts(const PointsTo &amp;pts, const GepCGEdge *edge)</div><div class="ttdef"><b>Definition:</b> <a href="Andersen_8cpp_source.html#l00418">Andersen.cpp:418</a></div></div>
@@ -1496,7 +1496,7 @@ Additional Inherited Members</h2></td></tr>
1496
1496
  <div class="line"><a name="l00897"></a><span class="lineno"> 897</span>&#160; </div>
1497
1497
  <div class="line"><a name="l00898"></a><span class="lineno"> 898</span>&#160; <span class="keywordflow">if</span> (pts.<a class="code" href="classSVF_1_1PointsTo.html#a13746982a11d0cab57e5919d53bfbec8">empty</a>())</div>
1498
1498
  <div class="line"><a name="l00899"></a><span class="lineno"> 899</span>&#160; {</div>
1499
- <div class="line"><a name="l00900"></a><span class="lineno"> 900</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot;\t\tPointsTo: {empty}\n\n&quot;</span>;</div>
1499
+ <div class="line"><a name="l00900"></a><span class="lineno"> 900</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot;\t\tPointsTo: {empty}\n&quot;</span>;</div>
1500
1500
  <div class="line"><a name="l00901"></a><span class="lineno"> 901</span>&#160; }</div>
1501
1501
  <div class="line"><a name="l00902"></a><span class="lineno"> 902</span>&#160; <span class="keywordflow">else</span></div>
1502
1502
  <div class="line"><a name="l00903"></a><span class="lineno"> 903</span>&#160; {</div>
@@ -1509,14 +1509,19 @@ Additional Inherited Members</h2></td></tr>
1509
1509
  <div class="line"><a name="l00910"></a><span class="lineno"> 910</span>&#160; line.insert(*it);</div>
1510
1510
  <div class="line"><a name="l00911"></a><span class="lineno"> 911</span>&#160; }</div>
1511
1511
  <div class="line"><a name="l00912"></a><span class="lineno"> 912</span>&#160; <span class="keywordflow">for</span> (multiset&lt;u32_t&gt;::const_iterator it = line.begin(); it != line.end(); ++it)</div>
1512
- <div class="line"><a name="l00913"></a><span class="lineno"> 913</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; *it &lt;&lt; <span class="stringliteral">&quot; &quot;</span>;</div>
1513
- <div class="line"><a name="l00914"></a><span class="lineno"> 914</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot;}\n\n&quot;</span>;</div>
1514
- <div class="line"><a name="l00915"></a><span class="lineno"> 915</span>&#160; }</div>
1515
- <div class="line"><a name="l00916"></a><span class="lineno"> 916</span>&#160; }</div>
1516
- <div class="line"><a name="l00917"></a><span class="lineno"> 917</span>&#160; }</div>
1517
- <div class="line"><a name="l00918"></a><span class="lineno"> 918</span>&#160; </div>
1518
- <div class="line"><a name="l00919"></a><span class="lineno"> 919</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>().flush();</div>
1519
- <div class="line"><a name="l00920"></a><span class="lineno"> 920</span>&#160;}</div>
1512
+ <div class="line"><a name="l00913"></a><span class="lineno"> 913</span>&#160; {</div>
1513
+ <div class="line"><a name="l00914"></a><span class="lineno"> 914</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">auto</span> gepNode = SVFUtil::dyn_cast&lt;GepObjVar&gt;(<a class="code" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>-&gt;<a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(*it)))</div>
1514
+ <div class="line"><a name="l00915"></a><span class="lineno"> 915</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; gepNode-&gt;getBaseNode() &lt;&lt; <span class="stringliteral">&quot;_&quot;</span> &lt;&lt; gepNode-&gt;getConstantFieldIdx() &lt;&lt; <span class="stringliteral">&quot; &quot;</span>;</div>
1515
+ <div class="line"><a name="l00916"></a><span class="lineno"> 916</span>&#160; <span class="keywordflow">else</span></div>
1516
+ <div class="line"><a name="l00917"></a><span class="lineno"> 917</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; *it &lt;&lt; <span class="stringliteral">&quot; &quot;</span>;</div>
1517
+ <div class="line"><a name="l00918"></a><span class="lineno"> 918</span>&#160; }</div>
1518
+ <div class="line"><a name="l00919"></a><span class="lineno"> 919</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot;}\n&quot;</span>;</div>
1519
+ <div class="line"><a name="l00920"></a><span class="lineno"> 920</span>&#160; }</div>
1520
+ <div class="line"><a name="l00921"></a><span class="lineno"> 921</span>&#160; }</div>
1521
+ <div class="line"><a name="l00922"></a><span class="lineno"> 922</span>&#160; }</div>
1522
+ <div class="line"><a name="l00923"></a><span class="lineno"> 923</span>&#160; </div>
1523
+ <div class="line"><a name="l00924"></a><span class="lineno"> 924</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>().flush();</div>
1524
+ <div class="line"><a name="l00925"></a><span class="lineno"> 925</span>&#160;}</div>
1520
1525
  </div><!-- fragment -->
1521
1526
  </div>
1522
1527
  </div>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "svf-tools",
3
- "version": "1.0.836",
3
+ "version": "1.0.837",
4
4
  "description": "* <b>[TypeClone](https://github.com/SVF-tools/SVF/wiki/TypeClone) published in our [ECOOP paper](https://yuleisui.github.io/publications/ecoop20.pdf) is now available in SVF </b> * <b>SVF now uses a single script for its build. Just type [`source ./build.sh`](https://github.com/SVF-tools/SVF/blob/master/build.sh) in your terminal, that's it!</b> * <b>SVF now supports LLVM-10.0.0! </b> * <b>We thank [bsauce](https://github.com/bsauce) for writing a user manual of SVF ([link1](https://www.jianshu.com/p/068a08ec749c) and [link2](https://www.jianshu.com/p/777c30d4240e)) in Chinese </b> * <b>SVF now supports LLVM-9.0.0 (Thank [Byoungyoung Lee](https://github.com/SVF-tools/SVF/issues/142) for his help!). </b> * <b>SVF now supports a set of [field-sensitive pointer analyses](https://yuleisui.github.io/publications/sas2019a.pdf). </b> * <b>[Use SVF as an external lib](https://github.com/SVF-tools/SVF/wiki/Using-SVF-as-a-lib-in-your-own-tool) for your own project (Contributed by [Hongxu Chen](https://github.com/HongxuChen)). </b> * <b>SVF now supports LLVM-7.0.0. </b> * <b>SVF now supports Docker. [Try SVF in Docker](https://github.com/SVF-tools/SVF/wiki/Try-SVF-in-Docker)! </b> * <b>SVF now supports [LLVM-6.0.0](https://github.com/svf-tools/SVF/pull/38) (Contributed by [Jack Anthony](https://github.com/jackanth)). </b> * <b>SVF now supports [LLVM-4.0.0](https://github.com/svf-tools/SVF/pull/23) (Contributed by Jared Carlson. Thank [Jared](https://github.com/jcarlson23) and [Will](https://github.com/dtzWill) for their in-depth [discussions](https://github.com/svf-tools/SVF/pull/18) about updating SVF!) </b> * <b>SVF now supports analysis for C++ programs.</b> <br />",
5
5
  "main": "index.js",
6
6
  "scripts": {
@@ -897,7 +897,7 @@ void Andersen::dumpTopLevelPtsTo()
897
897
 
898
898
  if (pts.empty())
899
899
  {
900
- outs() << "\t\tPointsTo: {empty}\n\n";
900
+ outs() << "\t\tPointsTo: {empty}\n";
901
901
  }
902
902
  else
903
903
  {
@@ -910,8 +910,13 @@ void Andersen::dumpTopLevelPtsTo()
910
910
  line.insert(*it);
911
911
  }
912
912
  for (multiset<u32_t>::const_iterator it = line.begin(); it != line.end(); ++it)
913
- outs() << *it << " ";
914
- outs() << "}\n\n";
913
+ {
914
+ if (auto gepNode = SVFUtil::dyn_cast<GepObjVar>(pag->getGNode(*it)))
915
+ outs() << gepNode->getBaseNode() << "_" << gepNode->getConstantFieldIdx() << " ";
916
+ else
917
+ outs() << *it << " ";
918
+ }
919
+ outs() << "}\n";
915
920
  }
916
921
  }
917
922
  }