svf-tools 1.0.786 → 1.0.787

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.
Files changed (27) hide show
  1. package/SVF-doxygen/html/CDGBuilder_8cpp_source.html +128 -122
  2. package/SVF-doxygen/html/CDGBuilder_8h_source.html +5 -5
  3. package/SVF-doxygen/html/CHG_8cpp.html +2 -2
  4. package/SVF-doxygen/html/CHG_8cpp_source.html +3 -3
  5. package/SVF-doxygen/html/MemSSA_8cpp_source.html +1 -1
  6. package/SVF-doxygen/html/PointerAnalysis_8cpp_source.html +2 -2
  7. package/SVF-doxygen/html/SVFG_8cpp_source.html +1 -1
  8. package/SVF-doxygen/html/SVFUtil_8cpp_source.html +2 -2
  9. package/SVF-doxygen/html/SVFValue_8cpp_source.html +144 -141
  10. package/SVF-doxygen/html/SVFValue_8h_source.html +9 -9
  11. package/SVF-doxygen/html/SaberCondAllocator_8cpp_source.html +2 -2
  12. package/SVF-doxygen/html/VFG_8cpp_source.html +1 -1
  13. package/SVF-doxygen/html/classSVF_1_1CDGBuilder.html +119 -113
  14. package/SVF-doxygen/html/classSVF_1_1CHGraph.html +2 -2
  15. package/SVF-doxygen/html/classSVF_1_1MemSSA.html +1 -1
  16. package/SVF-doxygen/html/classSVF_1_1PointerAnalysis.html +2 -2
  17. package/SVF-doxygen/html/classSVF_1_1SVFBasicBlock.html +63 -63
  18. package/SVF-doxygen/html/classSVF_1_1SVFFunction.html +28 -28
  19. package/SVF-doxygen/html/classSVF_1_1SVFG.html +1 -1
  20. package/SVF-doxygen/html/classSVF_1_1SVFInstruction.html +4 -4
  21. package/SVF-doxygen/html/classSVF_1_1SVFLoopAndDomInfo.html +25 -22
  22. package/SVF-doxygen/html/classSVF_1_1SaberCondAllocator.html +2 -2
  23. package/SVF-doxygen/html/classSVF_1_1VFG.html +1 -1
  24. package/SVF-doxygen/html/namespaceSVF_1_1SVFUtil.html +2 -2
  25. package/package.json +1 -1
  26. package/svf/lib/SVFIR/SVFValue.cpp +2 -0
  27. package/svf/lib/Util/CDGBuilder.cpp +5 -0
@@ -4053,7 +4053,7 @@ template&lt;typename... Ts&gt; </div>
4053
4053
  <div class="ttc" id="anamespaceSVF_1_1SVFUtil_html_a9815a5b31ac7dc21239d08e5b9f61106"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a9815a5b31ac7dc21239d08e5b9f61106">SVF::SVFUtil::getSVFCallSite</a></div><div class="ttdeci">CallSite getSVFCallSite(const SVFInstruction *inst)</div><div class="ttdoc">Return LLVM callsite given an instruction.</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00196">SVFUtil.h:196</a></div></div>
4054
4054
  <div class="ttc" id="anamespaceSVF_1_1SVFUtil_html_add4cd21115988f9f5eec12e268ddf1d9"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#add4cd21115988f9f5eec12e268ddf1d9">SVF::SVFUtil::timeLimitReached</a></div><div class="ttdeci">void timeLimitReached(int signum)</div><div class="ttdoc">Function to call when alarm for time limit hits.</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8cpp_source.html#l00280">SVFUtil.cpp:280</a></div></div>
4055
4055
  <div class="ttc" id="aclassSVF_1_1SparseBitVector_html_a61bd86909a141f9de873d92c0f904832"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#a61bd86909a141f9de873d92c0f904832">SVF::SparseBitVector::set</a></div><div class="ttdeci">void set(unsigned Idx)</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00747">SparseBitVector.h:747</a></div></div>
4056
- <div class="ttc" id="aclassSVF_1_1SVFFunction_html_ab8c7a9c79b0668aae604bbe54e34e46e"><div class="ttname"><a href="classSVF_1_1SVFFunction.html#ab8c7a9c79b0668aae604bbe54e34e46e">SVF::SVFFunction::arg_size</a></div><div class="ttdeci">u32_t arg_size() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8cpp_source.html#l00167">SVFValue.cpp:167</a></div></div>
4056
+ <div class="ttc" id="aclassSVF_1_1SVFFunction_html_ab8c7a9c79b0668aae604bbe54e34e46e"><div class="ttname"><a href="classSVF_1_1SVFFunction.html#ab8c7a9c79b0668aae604bbe54e34e46e">SVF::SVFFunction::arg_size</a></div><div class="ttdeci">u32_t arg_size() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8cpp_source.html#l00169">SVFValue.cpp:169</a></div></div>
4057
4057
  <div class="ttc" id="aclassSVF_1_1SparseBitVector_html_a1b5abe09fd0fcd337385653cb47343c1"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#a1b5abe09fd0fcd337385653cb47343c1">SVF::SparseBitVector::end</a></div><div class="ttdeci">iterator end() const</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l01120">SparseBitVector.h:1120</a></div></div>
4058
4058
  <div class="ttc" id="anamespaceSVF_1_1SVFUtil_html_ac71522e8c55f84cfc6c13a0ddff18436"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#ac71522e8c55f84cfc6c13a0ddff18436">SVF::SVFUtil::wrnMsg</a></div><div class="ttdeci">std::string wrnMsg(const std::string &amp;msg)</div><div class="ttdoc">Returns warning message by converting a string into yellow string output.</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8cpp_source.html#l00061">SVFUtil.cpp:61</a></div></div>
4059
4059
  <div class="ttc" id="anamespaceSVF_1_1SVFUtil_html_a19b96a872d9096037f20e25122e469ea"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a19b96a872d9096037f20e25122e469ea">SVF::SVFUtil::isHeapAllocExtFunViaRet</a></div><div class="ttdeci">bool isHeapAllocExtFunViaRet(const SVFFunction *fun)</div><div class="ttdoc">Return true if the call is a heap allocator/reallocator.</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00327">SVFUtil.h:327</a></div></div>
@@ -4071,7 +4071,7 @@ template&lt;typename... Ts&gt; </div>
4071
4071
  <div class="ttc" id="anamespaceSVF_1_1SVFUtil_html_a13d4f8034c444986da7c57cb5338f851"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a13d4f8034c444986da7c57cb5338f851">SVF::SVFUtil::getCallee</a></div><div class="ttdeci">const SVFFunction * getCallee(const SVFInstruction *inst)</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00246">SVFUtil.h:246</a></div></div>
4072
4072
  <div class="ttc" id="anamespaceSVF_1_1SVFUtil_html_af2979f019d38f3faa5c82c6ddc688b51"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#af2979f019d38f3faa5c82c6ddc688b51">SVF::SVFUtil::isExtCall</a></div><div class="ttdeci">bool isExtCall(const SVFInstruction *inst)</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00426">SVFUtil.h:426</a></div></div>
4073
4073
  <div class="ttc" id="afastcluster_8h_html_a4205a14ad66b3320d2e94c61d74913dda66ab3fde95842ef6da0dae1f702a9618"><div class="ttname"><a href="fastcluster_8h.html#a4205a14ad66b3320d2e94c61d74913dda66ab3fde95842ef6da0dae1f702a9618">HCLUST_METHOD_SVF_BEST</a></div><div class="ttdeci">@ HCLUST_METHOD_SVF_BEST</div><div class="ttdef"><b>Definition:</b> <a href="fastcluster_8h_source.html#l00076">fastcluster.h:76</a></div></div>
4074
- <div class="ttc" id="aclassSVF_1_1SVFFunction_html_ae578002917b4ccbf28f172dba30d1d58"><div class="ttname"><a href="classSVF_1_1SVFFunction.html#ae578002917b4ccbf28f172dba30d1d58">SVF::SVFFunction::isVarArg</a></div><div class="ttdeci">bool isVarArg() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8cpp_source.html#l00178">SVFValue.cpp:178</a></div></div>
4074
+ <div class="ttc" id="aclassSVF_1_1SVFFunction_html_ae578002917b4ccbf28f172dba30d1d58"><div class="ttname"><a href="classSVF_1_1SVFFunction.html#ae578002917b4ccbf28f172dba30d1d58">SVF::SVFFunction::isVarArg</a></div><div class="ttdeci">bool isVarArg() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8cpp_source.html#l00180">SVFValue.cpp:180</a></div></div>
4075
4075
  <div class="ttc" id="afastcluster_8h_html_a4205a14ad66b3320d2e94c61d74913ddaa453b79910d9c6f7f57a179bcdf63474"><div class="ttname"><a href="fastcluster_8h.html#a4205a14ad66b3320d2e94c61d74913ddaa453b79910d9c6f7f57a179bcdf63474">HCLUST_METHOD_MEDIAN</a></div><div class="ttdeci">@ HCLUST_METHOD_MEDIAN</div><div class="ttdef"><b>Definition:</b> <a href="fastcluster_8h_source.html#l00074">fastcluster.h:74</a></div></div>
4076
4076
  <div class="ttc" id="aclassSVF_1_1SVFFunction_html_a7b4c6c7143d012802ea5ee962bec2deb"><div class="ttname"><a href="classSVF_1_1SVFFunction.html#a7b4c6c7143d012802ea5ee962bec2deb">SVF::SVFFunction::isIntrinsic</a></div><div class="ttdeci">bool isIntrinsic() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00371">SVFValue.h:371</a></div></div>
4077
4077
  <div class="ttc" id="anamespaceSVF_1_1SVFUtil_html_aec7ee60be22e8f9397db108131696d57"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#aec7ee60be22e8f9397db108131696d57">SVF::SVFUtil::isProgExitFunction</a></div><div class="ttdeci">bool isProgExitFunction(const SVFFunction *fun)</div><div class="ttdoc">Return true if this is a program exit function call.</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00387">SVFUtil.h:387</a></div></div>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "svf-tools",
3
- "version": "1.0.786",
3
+ "version": "1.0.787",
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": {
@@ -121,6 +121,8 @@ const SVFBasicBlock* SVFLoopAndDomInfo::findNearestCommonPDominator(const SVFBas
121
121
  // continue going up til we arrive at the same node.
122
122
  while (A != B)
123
123
  {
124
+ // no common PDominator
125
+ if(A == NULL) return NULL;
124
126
  const auto lvA = getBBPDomLevel().find(A);
125
127
  const auto lvB = getBBPDomLevel().find(B);
126
128
  assert(lvA != getBBPDomLevel().end() && lvB != getBBPDomLevel().end());
@@ -64,6 +64,11 @@ void
64
64
  CDGBuilder::extractNodesBetweenPdomNodes(const SVFBasicBlock *succ, const SVFBasicBlock *LCA,
65
65
  std::vector<const SVFBasicBlock *> &tgtNodes)
66
66
  {
67
+ if (LCA == NULL)
68
+ {
69
+ tgtNodes.push_back(succ);
70
+ return;
71
+ }
67
72
  if (succ == LCA) return;
68
73
  std::vector<const SVFBasicBlock *> path;
69
74
  SVFLoopAndDomInfo *ld = const_cast<SVFFunction *>(LCA->getFunction())->getLoopAndDomInfo();