svf-tools 1.0.605 → 1.0.607

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 (109) hide show
  1. package/SVF-doxygen/html/html/Andersen_8cpp_source.html +1 -1
  2. package/SVF-doxygen/html/html/CFLAlias_8cpp_source.html +1 -1
  3. package/SVF-doxygen/html/html/ConsG_8cpp_source.html +1 -1
  4. package/SVF-doxygen/html/html/CxtStmt_8h_source.html +1 -1
  5. package/SVF-doxygen/html/html/DCHG_8cpp_source.html +16 -16
  6. package/SVF-doxygen/html/html/DCHG_8h_source.html +22 -22
  7. package/SVF-doxygen/html/html/DDAClient_8cpp_source.html +1 -1
  8. package/SVF-doxygen/html/html/ICFGBuilder_8cpp_source.html +1 -1
  9. package/SVF-doxygen/html/html/ICFG_8cpp_source.html +1 -1
  10. package/SVF-doxygen/html/html/LLVMModule_8cpp_source.html +7 -7
  11. package/SVF-doxygen/html/html/LLVMUtil_8cpp_source.html +22 -22
  12. package/SVF-doxygen/html/html/LLVMUtil_8h_source.html +20 -20
  13. package/SVF-doxygen/html/html/LocationSet_8cpp_source.html +1 -1
  14. package/SVF-doxygen/html/html/LockResultValidator_8cpp_source.html +1 -1
  15. package/SVF-doxygen/html/html/MHP_8cpp_source.html +30 -30
  16. package/SVF-doxygen/html/html/MHP_8h_source.html +19 -19
  17. package/SVF-doxygen/html/html/MTAStat_8cpp_source.html +2 -2
  18. package/SVF-doxygen/html/html/MemSSA_8cpp_source.html +1 -1
  19. package/SVF-doxygen/html/html/PointerAnalysis_8cpp_source.html +1 -1
  20. package/SVF-doxygen/html/html/SVFIRBuilder_8cpp_source.html +6 -6
  21. package/SVF-doxygen/html/html/SVFStatements_8cpp_source.html +1 -1
  22. package/SVF-doxygen/html/html/SVFValue_8h_source.html +1 -1
  23. package/SVF-doxygen/html/html/SVFVariables_8cpp_source.html +1 -1
  24. package/SVF-doxygen/html/html/SymbolTableBuilder_8cpp_source.html +3 -3
  25. package/SVF-doxygen/html/html/SymbolTableInfo_8cpp_source.html +2 -2
  26. package/SVF-doxygen/html/html/cfl_8cpp.html +1 -1
  27. package/SVF-doxygen/html/html/cfl_8cpp_source.html +1 -1
  28. package/SVF-doxygen/html/html/classSVF_1_1ActualINSVFGNode.html +1 -1
  29. package/SVF-doxygen/html/html/classSVF_1_1ActualOUTSVFGNode.html +1 -1
  30. package/SVF-doxygen/html/html/classSVF_1_1AddrStmt.html +1 -1
  31. package/SVF-doxygen/html/html/classSVF_1_1AliasDDAClient.html +1 -1
  32. package/SVF-doxygen/html/html/classSVF_1_1Andersen.html +1 -1
  33. package/SVF-doxygen/html/html/classSVF_1_1BinaryOPStmt.html +1 -1
  34. package/SVF-doxygen/html/html/classSVF_1_1BinaryOPVFGNode.html +1 -1
  35. package/SVF-doxygen/html/html/classSVF_1_1BranchStmt.html +1 -1
  36. package/SVF-doxygen/html/html/classSVF_1_1CFLAlias.html +1 -1
  37. package/SVF-doxygen/html/html/classSVF_1_1CallCFGEdge.html +1 -1
  38. package/SVF-doxygen/html/html/classSVF_1_1CallPE.html +1 -1
  39. package/SVF-doxygen/html/html/classSVF_1_1CmpStmt.html +1 -1
  40. package/SVF-doxygen/html/html/classSVF_1_1CmpVFGNode.html +1 -1
  41. package/SVF-doxygen/html/html/classSVF_1_1CopyStmt.html +1 -1
  42. package/SVF-doxygen/html/html/classSVF_1_1CxtStmt.html +1 -1
  43. package/SVF-doxygen/html/html/classSVF_1_1CxtThread.html +1 -1
  44. package/SVF-doxygen/html/html/classSVF_1_1CxtThreadStmt.html +1 -1
  45. package/SVF-doxygen/html/html/classSVF_1_1DCHGraph.html +63 -63
  46. package/SVF-doxygen/html/html/classSVF_1_1DoubleFreeChecker.html +2 -2
  47. package/SVF-doxygen/html/html/classSVF_1_1FIObjVar.html +1 -1
  48. package/SVF-doxygen/html/html/classSVF_1_1ForkJoinAnalysis.html +31 -31
  49. package/SVF-doxygen/html/html/classSVF_1_1GepObjVar.html +1 -1
  50. package/SVF-doxygen/html/html/classSVF_1_1GepStmt.html +1 -1
  51. package/SVF-doxygen/html/html/classSVF_1_1GepValVar.html +1 -1
  52. package/SVF-doxygen/html/html/classSVF_1_1ICFG.html +1 -1
  53. package/SVF-doxygen/html/html/classSVF_1_1ICFGBuilder.html +3 -3
  54. package/SVF-doxygen/html/html/classSVF_1_1InterMSSAPHISVFGNode.html +1 -1
  55. package/SVF-doxygen/html/html/classSVF_1_1InterPHIVFGNode.html +1 -1
  56. package/SVF-doxygen/html/html/classSVF_1_1IntraCFGEdge.html +1 -1
  57. package/SVF-doxygen/html/html/classSVF_1_1IntraICFGNode.html +1 -1
  58. package/SVF-doxygen/html/html/classSVF_1_1IntraPHIVFGNode.html +1 -1
  59. package/SVF-doxygen/html/html/classSVF_1_1LLVMModuleSet.html +7 -7
  60. package/SVF-doxygen/html/html/classSVF_1_1LeakChecker.html +2 -2
  61. package/SVF-doxygen/html/html/classSVF_1_1LoadStmt.html +1 -1
  62. package/SVF-doxygen/html/html/classSVF_1_1LocationSet.html +1 -1
  63. package/SVF-doxygen/html/html/classSVF_1_1LockResultValidator.html +1 -1
  64. package/SVF-doxygen/html/html/classSVF_1_1MHP.html +57 -57
  65. package/SVF-doxygen/html/html/classSVF_1_1MHPValidator.html +1 -1
  66. package/SVF-doxygen/html/html/classSVF_1_1MTAAnnotator.html +1 -1
  67. package/SVF-doxygen/html/html/classSVF_1_1MTAResultValidator.html +1 -1
  68. package/SVF-doxygen/html/html/classSVF_1_1MTASVFGBuilder.html +3 -3
  69. package/SVF-doxygen/html/html/classSVF_1_1MTAStat.html +2 -2
  70. package/SVF-doxygen/html/html/classSVF_1_1MemObj.html +1 -1
  71. package/SVF-doxygen/html/html/classSVF_1_1MemSSA.html +1 -1
  72. package/SVF-doxygen/html/html/classSVF_1_1ObjVar.html +1 -1
  73. package/SVF-doxygen/html/html/classSVF_1_1PHIVFGNode.html +1 -1
  74. package/SVF-doxygen/html/html/classSVF_1_1PhiStmt.html +1 -1
  75. package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.html +2 -2
  76. package/SVF-doxygen/html/html/classSVF_1_1RetCFGEdge.html +1 -1
  77. package/SVF-doxygen/html/html/classSVF_1_1RetPE.html +1 -1
  78. package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder.html +8 -8
  79. package/SVF-doxygen/html/html/classSVF_1_1SVFType.html +2 -2
  80. package/SVF-doxygen/html/html/classSVF_1_1SVFValue.html +2 -2
  81. package/SVF-doxygen/html/html/classSVF_1_1SelectStmt.html +1 -1
  82. package/SVF-doxygen/html/html/classSVF_1_1StoreStmt.html +1 -1
  83. package/SVF-doxygen/html/html/classSVF_1_1SymbolTableBuilder.html +7 -7
  84. package/SVF-doxygen/html/html/classSVF_1_1SymbolTableInfo.html +1 -1
  85. package/SVF-doxygen/html/html/classSVF_1_1TCT.html +1 -1
  86. package/SVF-doxygen/html/html/classSVF_1_1TDForkPE.html +1 -1
  87. package/SVF-doxygen/html/html/classSVF_1_1TDJoinPE.html +1 -1
  88. package/SVF-doxygen/html/html/classSVF_1_1UnaryOPStmt.html +1 -1
  89. package/SVF-doxygen/html/html/classSVF_1_1UnaryOPVFGNode.html +1 -1
  90. package/SVF-doxygen/html/html/classSVF_1_1ValVar.html +1 -1
  91. package/SVF-doxygen/html/html/dda_8cpp.html +1 -1
  92. package/SVF-doxygen/html/html/dda_8cpp_source.html +1 -1
  93. package/SVF-doxygen/html/html/mta_8cpp.html +1 -1
  94. package/SVF-doxygen/html/html/mta_8cpp_source.html +1 -1
  95. package/SVF-doxygen/html/html/namespaceSVF_1_1LLVMUtil.html +63 -64
  96. package/SVF-doxygen/html/html/saber_8cpp.html +1 -1
  97. package/SVF-doxygen/html/html/saber_8cpp_source.html +1 -1
  98. package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01ConstraintGraph_01_5_01_4.html +1 -1
  99. package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01Inverse_3_01SVF_1_1DCHNode_01_5_01_4_01_4.html +1 -1
  100. package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1DCHGraph_01_5_01_4.html +2 -2
  101. package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1DCHNode_01_5_01_4.html +1 -1
  102. package/SVF-doxygen/html/html/svf-ex_8cpp.html +2 -2
  103. package/SVF-doxygen/html/html/svf-ex_8cpp_source.html +2 -2
  104. package/SVF-doxygen/html/html/wpa_8cpp.html +1 -1
  105. package/SVF-doxygen/html/html/wpa_8cpp_source.html +1 -1
  106. package/include/SVF-LLVM/DCHG.h +2 -0
  107. package/lib/MTA/MHP.cpp +1 -2
  108. package/lib/SVF-LLVM/LLVMUtil.cpp +1 -2
  109. package/package.json +1 -1
@@ -296,7 +296,7 @@ Functions</h2></td></tr>
296
296
  <div class="ttc" id="saber_8cpp_html_a3bebf1fb890054c49ae16f9706fa38d2"><div class="ttname"><a href="saber_8cpp.html#a3bebf1fb890054c49ae16f9706fa38d2">LEAKCHECKER</a></div><div class="ttdeci">static llvm::cl::opt&lt; bool &gt; LEAKCHECKER(&quot;leak&quot;, llvm::cl::init(false), llvm::cl::desc(&quot;Memory Leak Detection&quot;))</div></div>
297
297
  <div class="ttc" id="saber_8cpp_html_ae054770c30aa9b9ef72d5bc84084b472"><div class="ttname"><a href="saber_8cpp.html#ae054770c30aa9b9ef72d5bc84084b472">FILECHECKER</a></div><div class="ttdeci">static llvm::cl::opt&lt; bool &gt; FILECHECKER(&quot;fileck&quot;, llvm::cl::init(false), llvm::cl::desc(&quot;File Open/Close Detection&quot;))</div></div>
298
298
  <div class="ttc" id="saber_8cpp_html_ae783b2330e99490ef5d366605d1098cf"><div class="ttname"><a href="saber_8cpp.html#ae783b2330e99490ef5d366605d1098cf">DFREECHECKER</a></div><div class="ttdeci">static llvm::cl::opt&lt; bool &gt; DFREECHECKER(&quot;dfree&quot;, llvm::cl::init(false), llvm::cl::desc(&quot;Double Free Detection&quot;))</div></div>
299
- <div class="ttc" id="namespaceSVF_1_1LLVMUtil_html_accdd44093d6d145dc92edeaaff3f5732"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#accdd44093d6d145dc92edeaaff3f5732">SVF::LLVMUtil::processArguments</a></div><div class="ttdeci">void processArguments(int argc, char **argv, int &amp;arg_num, char **arg_value, std::vector&lt; std::string &gt; &amp;moduleNameVec)</div><div class="ttdoc">Parse argument for multi-module analysis. </div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00414">LLVMUtil.cpp:414</a></div></div>
299
+ <div class="ttc" id="namespaceSVF_1_1LLVMUtil_html_accdd44093d6d145dc92edeaaff3f5732"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#accdd44093d6d145dc92edeaaff3f5732">SVF::LLVMUtil::processArguments</a></div><div class="ttdeci">void processArguments(int argc, char **argv, int &amp;arg_num, char **arg_value, std::vector&lt; std::string &gt; &amp;moduleNameVec)</div><div class="ttdoc">Parse argument for multi-module analysis. </div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00413">LLVMUtil.cpp:413</a></div></div>
300
300
  <div class="ttc" id="classSVF_1_1SVFIR_html"><div class="ttname"><a href="classSVF_1_1SVFIR.html">SVF::SVFIR</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00043">SVFIR.h:43</a></div></div>
301
301
  </div><!-- fragment -->
302
302
  </div>
@@ -85,7 +85,7 @@ $(function() {
85
85
  <div class="ttc" id="saber_8cpp_html_ae783b2330e99490ef5d366605d1098cf"><div class="ttname"><a href="saber_8cpp.html#ae783b2330e99490ef5d366605d1098cf">DFREECHECKER</a></div><div class="ttdeci">static llvm::cl::opt&lt; bool &gt; DFREECHECKER(&quot;dfree&quot;, llvm::cl::init(false), llvm::cl::desc(&quot;Double Free Detection&quot;))</div></div>
86
86
  <div class="ttc" id="namespaceSVF_html"><div class="ttname"><a href="namespaceSVF.html">SVF</a></div><div class="ttdoc">for isBitcode </div><div class="ttdef"><b>Definition:</b> <a href="CFGNormalizer_8h_source.html#l00035">CFGNormalizer.h:35</a></div></div>
87
87
  <div class="ttc" id="SVFIRBuilder_8h_html"><div class="ttname"><a href="SVFIRBuilder_8h.html">SVFIRBuilder.h</a></div></div>
88
- <div class="ttc" id="namespaceSVF_1_1LLVMUtil_html_accdd44093d6d145dc92edeaaff3f5732"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#accdd44093d6d145dc92edeaaff3f5732">SVF::LLVMUtil::processArguments</a></div><div class="ttdeci">void processArguments(int argc, char **argv, int &amp;arg_num, char **arg_value, std::vector&lt; std::string &gt; &amp;moduleNameVec)</div><div class="ttdoc">Parse argument for multi-module analysis. </div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00414">LLVMUtil.cpp:414</a></div></div>
88
+ <div class="ttc" id="namespaceSVF_1_1LLVMUtil_html_accdd44093d6d145dc92edeaaff3f5732"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#accdd44093d6d145dc92edeaaff3f5732">SVF::LLVMUtil::processArguments</a></div><div class="ttdeci">void processArguments(int argc, char **argv, int &amp;arg_num, char **arg_value, std::vector&lt; std::string &gt; &amp;moduleNameVec)</div><div class="ttdoc">Parse argument for multi-module analysis. </div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00413">LLVMUtil.cpp:413</a></div></div>
89
89
  <div class="ttc" id="classSVF_1_1SVFIR_html"><div class="ttname"><a href="classSVF_1_1SVFIR.html">SVF::SVFIR</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00043">SVFIR.h:43</a></div></div>
90
90
  <div class="ttc" id="LLVMUtil_8h_html"><div class="ttname"><a href="LLVMUtil_8h.html">LLVMUtil.h</a></div></div>
91
91
  <div class="ttc" id="DoubleFreeChecker_8h_html"><div class="ttname"><a href="DoubleFreeChecker_8h.html">DoubleFreeChecker.h</a></div></div>
@@ -429,7 +429,7 @@ template&lt;class EdgeIter &gt; </div>
429
429
  <div class="ttc" id="classSVF_1_1SVFIR_html_a37cfa2aa4e7b98ef9dc8179f581a2362"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a37cfa2aa4e7b98ef9dc8179f581a2362">SVF::SVFIR::getPAG</a></div><div class="ttdeci">static SVFIR * getPAG(bool buildFromFile=false)</div><div class="ttdoc">Singleton design here to make sure we only have one instance during any analysis. ...</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00107">SVFIR.h:107</a></div></div>
430
430
  <div class="ttc" id="cJSON_8cpp_html_ab6e2ea6dc7bd57d1483413449998230a"><div class="ttname"><a href="cJSON_8cpp.html#ab6e2ea6dc7bd57d1483413449998230a">n</a></div><div class="ttdeci">cJSON * n</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8cpp_source.html#l02558">cJSON.cpp:2558</a></div></div>
431
431
  <div class="ttc" id="classSVF_1_1Options_html_a82370c2b8c9cd62b5767ceeaeeaa7177"><div class="ttname"><a href="classSVF_1_1Options.html#a82370c2b8c9cd62b5767ceeaeeaa7177">SVF::Options::BriefConsCGDotGraph</a></div><div class="ttdeci">static const llvm::cl::opt&lt; bool &gt; BriefConsCGDotGraph</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00232">Options.h:232</a></div></div>
432
- <div class="ttc" id="classSVF_1_1SVFValue_html_aa678ca4616a3e69b53726b33d0b9c5a2"><div class="ttname"><a href="classSVF_1_1SVFValue.html#aa678ca4616a3e69b53726b33d0b9c5a2">SVF::SVFValue::toString</a></div><div class="ttdeci">virtual const std::string toString() const</div><div class="ttdoc">Needs to be implemented by a specific SVF front end (e.g., the implementation in LLVMUtil) ...</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00681">LLVMUtil.cpp:681</a></div></div>
432
+ <div class="ttc" id="classSVF_1_1SVFValue_html_aa678ca4616a3e69b53726b33d0b9c5a2"><div class="ttname"><a href="classSVF_1_1SVFValue.html#aa678ca4616a3e69b53726b33d0b9c5a2">SVF::SVFValue::toString</a></div><div class="ttdeci">virtual const std::string toString() const</div><div class="ttdoc">Needs to be implemented by a specific SVF front end (e.g., the implementation in LLVMUtil) ...</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00680">LLVMUtil.cpp:680</a></div></div>
433
433
  <div class="ttc" id="classSVF_1_1SVFVar_html_a54b2a5ed3ed21e54eaf04182f0338333"><div class="ttname"><a href="classSVF_1_1SVFVar.html#a54b2a5ed3ed21e54eaf04182f0338333">SVF::SVFVar::getValueName</a></div><div class="ttdeci">virtual const std::string getValueName() const =0</div><div class="ttdoc">Get name of the LLVM value. </div></div>
434
434
  <div class="ttc" id="classSVF_1_1GenericNode_html_ac3e55ef37aefb411ea4c87b1aa3b1895"><div class="ttname"><a href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">SVF::GenericNode::getId</a></div><div class="ttdeci">NodeID getId() const</div><div class="ttdoc">Get ID. </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00171">GenericGraph.h:171</a></div></div>
435
435
  <div class="ttc" id="classSVF_1_1GenericGraph_html_a43c9c773bfa17abf481c33073e30d01b"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">SVF::GenericGraph::getGNode</a></div><div class="ttdeci">NodeType * getGNode(NodeID id) const</div><div class="ttdoc">Get a node. </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00395">GenericGraph.h:395</a></div></div>
@@ -95,7 +95,7 @@ struct SVF::GenericGraphTraits&lt; Inverse&lt; SVF::DCHNode * &gt; &gt;</h3>
95
95
 
96
96
  <p><a class="el" href="structSVF_1_1Inverse.html">Inverse</a> <a class="el" href="structSVF_1_1GenericGraphTraits.html">GenericGraphTraits</a> specializations for call graph node, it is used for inverse traversal. </p>
97
97
 
98
- <p class="definition">Definition at line <a class="el" href="DCHG_8h_source.html#l00470">470</a> of file <a class="el" href="DCHG_8h_source.html">DCHG.h</a>.</p>
98
+ <p class="definition">Definition at line <a class="el" href="DCHG_8h_source.html#l00472">472</a> of file <a class="el" href="DCHG_8h_source.html">DCHG.h</a>.</p>
99
99
  </div><hr/>The documentation for this struct was generated from the following file:<ul>
100
100
  <li>/home/runner/work/SVF/SVF/include/SVF-LLVM/<a class="el" href="DCHG_8h_source.html">DCHG.h</a></li>
101
101
  </ul>
@@ -94,7 +94,7 @@ Public Types</h2></td></tr>
94
94
  struct SVF::GenericGraphTraits&lt; SVF::DCHGraph * &gt;</h3>
95
95
 
96
96
 
97
- <p class="definition">Definition at line <a class="el" href="DCHG_8h_source.html#l00474">474</a> of file <a class="el" href="DCHG_8h_source.html">DCHG.h</a>.</p>
97
+ <p class="definition">Definition at line <a class="el" href="DCHG_8h_source.html#l00476">476</a> of file <a class="el" href="DCHG_8h_source.html">DCHG.h</a>.</p>
98
98
  </div><h2 class="groupheader">Member Typedef Documentation</h2>
99
99
  <a id="aab14259075b96fab09dde300fbeff390"></a>
100
100
  <h2 class="memtitle"><span class="permalink"><a href="#aab14259075b96fab09dde300fbeff390">&#9670;&nbsp;</a></span>NodeRef</h2>
@@ -108,7 +108,7 @@ struct SVF::GenericGraphTraits&lt; SVF::DCHGraph * &gt;</h3>
108
108
  </table>
109
109
  </div><div class="memdoc">
110
110
 
111
- <p class="definition">Definition at line <a class="el" href="DCHG_8h_source.html#l00476">476</a> of file <a class="el" href="DCHG_8h_source.html">DCHG.h</a>.</p>
111
+ <p class="definition">Definition at line <a class="el" href="DCHG_8h_source.html#l00478">478</a> of file <a class="el" href="DCHG_8h_source.html">DCHG.h</a>.</p>
112
112
 
113
113
  </div>
114
114
  </div>
@@ -91,7 +91,7 @@ Additional Inherited Members</h2></td></tr>
91
91
  struct SVF::GenericGraphTraits&lt; SVF::DCHNode * &gt;</h3>
92
92
 
93
93
 
94
- <p class="definition">Definition at line <a class="el" href="DCHG_8h_source.html#l00464">464</a> of file <a class="el" href="DCHG_8h_source.html">DCHG.h</a>.</p>
94
+ <p class="definition">Definition at line <a class="el" href="DCHG_8h_source.html#l00466">466</a> of file <a class="el" href="DCHG_8h_source.html">DCHG.h</a>.</p>
95
95
  </div><hr/>The documentation for this struct was generated from the following file:<ul>
96
96
  <li>/home/runner/work/SVF/SVF/include/SVF-LLVM/<a class="el" href="DCHG_8h_source.html">DCHG.h</a></li>
97
97
  </ul>
@@ -220,7 +220,7 @@ Functions</h2></td></tr>
220
220
  <div class="ttc" id="classSVF_1_1SVFG_html"><div class="ttname"><a href="classSVF_1_1SVFG.html">SVF::SVFG</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00065">SVFG.h:65</a></div></div>
221
221
  <div class="ttc" id="classSVF_1_1SVFGBuilder_html"><div class="ttname"><a href="classSVF_1_1SVFGBuilder.html">SVF::SVFGBuilder</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFGBuilder_8h_source.html#l00042">SVFGBuilder.h:42</a></div></div>
222
222
  <div class="ttc" id="classSVF_1_1Andersen_html"><div class="ttname"><a href="classSVF_1_1Andersen.html">SVF::Andersen</a></div><div class="ttdef"><b>Definition:</b> <a href="Andersen_8h_source.html#l00150">Andersen.h:150</a></div></div>
223
- <div class="ttc" id="namespaceSVF_1_1LLVMUtil_html_accdd44093d6d145dc92edeaaff3f5732"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#accdd44093d6d145dc92edeaaff3f5732">SVF::LLVMUtil::processArguments</a></div><div class="ttdeci">void processArguments(int argc, char **argv, int &amp;arg_num, char **arg_value, std::vector&lt; std::string &gt; &amp;moduleNameVec)</div><div class="ttdoc">Parse argument for multi-module analysis. </div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00414">LLVMUtil.cpp:414</a></div></div>
223
+ <div class="ttc" id="namespaceSVF_1_1LLVMUtil_html_accdd44093d6d145dc92edeaaff3f5732"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#accdd44093d6d145dc92edeaaff3f5732">SVF::LLVMUtil::processArguments</a></div><div class="ttdeci">void processArguments(int argc, char **argv, int &amp;arg_num, char **arg_value, std::vector&lt; std::string &gt; &amp;moduleNameVec)</div><div class="ttdoc">Parse argument for multi-module analysis. </div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00413">LLVMUtil.cpp:413</a></div></div>
224
224
  <div class="ttc" id="classSVF_1_1SVFIR_html"><div class="ttname"><a href="classSVF_1_1SVFIR.html">SVF::SVFIR</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00043">SVFIR.h:43</a></div></div>
225
225
  <div class="ttc" id="classSVF_1_1SVFIR_html_aa1943d53e75aef9b014953143c6894da"><div class="ttname"><a href="classSVF_1_1SVFIR.html#aa1943d53e75aef9b014953143c6894da">SVF::SVFIR::getICFG</a></div><div class="ttdeci">ICFG * getICFG()</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00165">SVFIR.h:165</a></div></div>
226
226
  </div><!-- fragment -->
@@ -261,7 +261,7 @@ Functions</h2></td></tr>
261
261
  <div class="ttc" id="classSVF_1_1SVFVar_html"><div class="ttname"><a href="classSVF_1_1SVFVar.html">SVF::SVFVar</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00045">SVFVariables.h:45</a></div></div>
262
262
  <div class="ttc" id="classSVF_1_1IRGraph_html_a43514023a4f4d0c32f536f51443b0efc"><div class="ttname"><a href="classSVF_1_1IRGraph.html#a43514023a4f4d0c32f536f51443b0efc">SVF::IRGraph::getValueNode</a></div><div class="ttdeci">NodeID getValueNode(const SVFValue *V)</div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#l00128">IRGraph.h:128</a></div></div>
263
263
  <div class="ttc" id="classSVF_1_1PointsTo_html_aa53962e561399bf493d1f2b9137356f6"><div class="ttname"><a href="classSVF_1_1PointsTo.html#aa53962e561399bf493d1f2b9137356f6">SVF::PointsTo::begin</a></div><div class="ttdeci">const_iterator begin(void) const</div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8h_source.html#l00128">PointsTo.h:128</a></div></div>
264
- <div class="ttc" id="classSVF_1_1SVFValue_html_aa678ca4616a3e69b53726b33d0b9c5a2"><div class="ttname"><a href="classSVF_1_1SVFValue.html#aa678ca4616a3e69b53726b33d0b9c5a2">SVF::SVFValue::toString</a></div><div class="ttdeci">virtual const std::string toString() const</div><div class="ttdoc">Needs to be implemented by a specific SVF front end (e.g., the implementation in LLVMUtil) ...</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00681">LLVMUtil.cpp:681</a></div></div>
264
+ <div class="ttc" id="classSVF_1_1SVFValue_html_aa678ca4616a3e69b53726b33d0b9c5a2"><div class="ttname"><a href="classSVF_1_1SVFValue.html#aa678ca4616a3e69b53726b33d0b9c5a2">SVF::SVFValue::toString</a></div><div class="ttdeci">virtual const std::string toString() const</div><div class="ttdoc">Needs to be implemented by a specific SVF front end (e.g., the implementation in LLVMUtil) ...</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00680">LLVMUtil.cpp:680</a></div></div>
265
265
  <div class="ttc" id="classSVF_1_1PointerAnalysis_html_a240219c2dc4f5cc5f85445e18c79b83b"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a240219c2dc4f5cc5f85445e18c79b83b">SVF::PointerAnalysis::getPAG</a></div><div class="ttdeci">SVFIR * getPAG() const</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00201">PointerAnalysis.h:201</a></div></div>
266
266
  <div class="ttc" id="classSVF_1_1SVFVar_html_a1ace69053c2c4436fd78d5624bd0086a"><div class="ttname"><a href="classSVF_1_1SVFVar.html#a1ace69053c2c4436fd78d5624bd0086a">SVF::SVFVar::hasValue</a></div><div class="ttdeci">bool hasValue() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00107">SVFVariables.h:107</a></div></div>
267
267
  <div class="ttc" id="classSVF_1_1GenericGraph_html_a43c9c773bfa17abf481c33073e30d01b"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">SVF::GenericGraph::getGNode</a></div><div class="ttdeci">NodeType * getGNode(NodeID id) const</div><div class="ttdoc">Get a node. </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00395">GenericGraph.h:395</a></div></div>
@@ -99,7 +99,7 @@ $(function() {
99
99
  <div class="ttc" id="classSVF_1_1GenericEdge_html_aeaa31a2c8479e831b36ce2e2582ceb86"><div class="ttname"><a href="classSVF_1_1GenericEdge.html#aeaa31a2c8479e831b36ce2e2582ceb86">SVF::GenericEdge::getDstNode</a></div><div class="ttdeci">NodeType * getDstNode() const</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00095">GenericGraph.h:95</a></div></div>
100
100
  <div class="ttc" id="namespaceSVF_html_af739db846e47ba6b2fd15eaad31ab7fb"><div class="ttname"><a href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">SVF::Set</a></div><div class="ttdeci">std::unordered_set&lt; Key, Hash, KeyEqual, Allocator &gt; Set</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00094">SVFType.h:94</a></div></div>
101
101
  <div class="ttc" id="svf-ex_8cpp_html_a3c04138a5bfe5d72780bb7e82a18e627"><div class="ttname"><a href="svf-ex_8cpp.html#a3c04138a5bfe5d72780bb7e82a18e627">main</a></div><div class="ttdeci">int main(int argc, char **argv)</div><div class="ttdef"><b>Definition:</b> <a href="svf-ex_8cpp_source.html#l00145">svf-ex.cpp:145</a></div></div>
102
- <div class="ttc" id="classSVF_1_1SVFValue_html_aa678ca4616a3e69b53726b33d0b9c5a2"><div class="ttname"><a href="classSVF_1_1SVFValue.html#aa678ca4616a3e69b53726b33d0b9c5a2">SVF::SVFValue::toString</a></div><div class="ttdeci">virtual const std::string toString() const</div><div class="ttdoc">Needs to be implemented by a specific SVF front end (e.g., the implementation in LLVMUtil) ...</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00681">LLVMUtil.cpp:681</a></div></div>
102
+ <div class="ttc" id="classSVF_1_1SVFValue_html_aa678ca4616a3e69b53726b33d0b9c5a2"><div class="ttname"><a href="classSVF_1_1SVFValue.html#aa678ca4616a3e69b53726b33d0b9c5a2">SVF::SVFValue::toString</a></div><div class="ttdeci">virtual const std::string toString() const</div><div class="ttdoc">Needs to be implemented by a specific SVF front end (e.g., the implementation in LLVMUtil) ...</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00680">LLVMUtil.cpp:680</a></div></div>
103
103
  <div class="ttc" id="classSVF_1_1LLVMModuleSet_html_a2f8e91c075d90be66412a079fe73e936"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a2f8e91c075d90be66412a079fe73e936">SVF::LLVMModuleSet::releaseLLVMModuleSet</a></div><div class="ttdeci">static void releaseLLVMModuleSet()</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00102">LLVMModule.h:102</a></div></div>
104
104
  <div class="ttc" id="classSVF_1_1PTACallGraph_html"><div class="ttname"><a href="classSVF_1_1PTACallGraph.html">SVF::PTACallGraph</a></div><div class="ttdef"><b>Definition:</b> <a href="PTACallGraph_8h_source.html#l00218">PTACallGraph.h:218</a></div></div>
105
105
  <div class="ttc" id="classSVF_1_1PointerAnalysis_html_a240219c2dc4f5cc5f85445e18c79b83b"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a240219c2dc4f5cc5f85445e18c79b83b">SVF::PointerAnalysis::getPAG</a></div><div class="ttdeci">SVFIR * getPAG() const</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00201">PointerAnalysis.h:201</a></div></div>
@@ -121,7 +121,7 @@ $(function() {
121
121
  <div class="ttc" id="classSVF_1_1GenericNode_html_a19a3366fd8a58290d0c740c46c3dcb3d"><div class="ttname"><a href="classSVF_1_1GenericNode.html#a19a3366fd8a58290d0c740c46c3dcb3d">SVF::GenericNode::OutEdgeEnd</a></div><div class="ttdeci">iterator OutEdgeEnd()</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00212">GenericGraph.h:212</a></div></div>
122
122
  <div class="ttc" id="classSVF_1_1GenericGraph_html_a43c9c773bfa17abf481c33073e30d01b"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">SVF::GenericGraph::getGNode</a></div><div class="ttdeci">NodeType * getGNode(NodeID id) const</div><div class="ttdoc">Get a node. </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00395">GenericGraph.h:395</a></div></div>
123
123
  <div class="ttc" id="classSVF_1_1Andersen_html"><div class="ttname"><a href="classSVF_1_1Andersen.html">SVF::Andersen</a></div><div class="ttdef"><b>Definition:</b> <a href="Andersen_8h_source.html#l00150">Andersen.h:150</a></div></div>
124
- <div class="ttc" id="namespaceSVF_1_1LLVMUtil_html_accdd44093d6d145dc92edeaaff3f5732"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#accdd44093d6d145dc92edeaaff3f5732">SVF::LLVMUtil::processArguments</a></div><div class="ttdeci">void processArguments(int argc, char **argv, int &amp;arg_num, char **arg_value, std::vector&lt; std::string &gt; &amp;moduleNameVec)</div><div class="ttdoc">Parse argument for multi-module analysis. </div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00414">LLVMUtil.cpp:414</a></div></div>
124
+ <div class="ttc" id="namespaceSVF_1_1LLVMUtil_html_accdd44093d6d145dc92edeaaff3f5732"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#accdd44093d6d145dc92edeaaff3f5732">SVF::LLVMUtil::processArguments</a></div><div class="ttdeci">void processArguments(int argc, char **argv, int &amp;arg_num, char **arg_value, std::vector&lt; std::string &gt; &amp;moduleNameVec)</div><div class="ttdoc">Parse argument for multi-module analysis. </div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00413">LLVMUtil.cpp:413</a></div></div>
125
125
  <div class="ttc" id="classSVF_1_1PointsTo_html"><div class="ttname"><a href="classSVF_1_1PointsTo.html">SVF::PointsTo</a></div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8h_source.html#l00028">PointsTo.h:28</a></div></div>
126
126
  <div class="ttc" id="classSVF_1_1SVFIR_html"><div class="ttname"><a href="classSVF_1_1SVFIR.html">SVF::SVFIR</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00043">SVFIR.h:43</a></div></div>
127
127
  <div class="ttc" id="classSVF_1_1SVFIR_html_aa1943d53e75aef9b014953143c6894da"><div class="ttname"><a href="classSVF_1_1SVFIR.html#aa1943d53e75aef9b014953143c6894da">SVF::SVFIR::getICFG</a></div><div class="ttdeci">ICFG * getICFG()</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00165">SVFIR.h:165</a></div></div>
@@ -157,7 +157,7 @@ Functions</h2></td></tr>
157
157
  <div class="ttc" id="classSVF_1_1SVFModule_html"><div class="ttname"><a href="classSVF_1_1SVFModule.html">SVF::SVFModule</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFModule_8h_source.html#l00041">SVFModule.h:41</a></div></div>
158
158
  <div class="ttc" id="classSVF_1_1WPAPass_html"><div class="ttname"><a href="classSVF_1_1WPAPass.html">SVF::WPAPass</a></div><div class="ttdef"><b>Definition:</b> <a href="WPAPass_8h_source.html#l00054">WPAPass.h:54</a></div></div>
159
159
  <div class="ttc" id="classSVF_1_1SVFIRBuilder_html"><div class="ttname"><a href="classSVF_1_1SVFIRBuilder.html">SVF::SVFIRBuilder</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFIRBuilder_8h_source.html#l00045">SVFIRBuilder.h:45</a></div></div>
160
- <div class="ttc" id="namespaceSVF_1_1LLVMUtil_html_accdd44093d6d145dc92edeaaff3f5732"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#accdd44093d6d145dc92edeaaff3f5732">SVF::LLVMUtil::processArguments</a></div><div class="ttdeci">void processArguments(int argc, char **argv, int &amp;arg_num, char **arg_value, std::vector&lt; std::string &gt; &amp;moduleNameVec)</div><div class="ttdoc">Parse argument for multi-module analysis. </div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00414">LLVMUtil.cpp:414</a></div></div>
160
+ <div class="ttc" id="namespaceSVF_1_1LLVMUtil_html_accdd44093d6d145dc92edeaaff3f5732"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#accdd44093d6d145dc92edeaaff3f5732">SVF::LLVMUtil::processArguments</a></div><div class="ttdeci">void processArguments(int argc, char **argv, int &amp;arg_num, char **arg_value, std::vector&lt; std::string &gt; &amp;moduleNameVec)</div><div class="ttdoc">Parse argument for multi-module analysis. </div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00413">LLVMUtil.cpp:413</a></div></div>
161
161
  <div class="ttc" id="classSVF_1_1SVFIR_html"><div class="ttname"><a href="classSVF_1_1SVFIR.html">SVF::SVFIR</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00043">SVFIR.h:43</a></div></div>
162
162
  </div><!-- fragment -->
163
163
  </div>
@@ -79,7 +79,7 @@ $(function() {
79
79
  <div class="ttc" id="Options_8h_html"><div class="ttname"><a href="Options_8h.html">Options.h</a></div></div>
80
80
  <div class="ttc" id="namespaceSVF_html"><div class="ttname"><a href="namespaceSVF.html">SVF</a></div><div class="ttdoc">for isBitcode </div><div class="ttdef"><b>Definition:</b> <a href="CFGNormalizer_8h_source.html#l00035">CFGNormalizer.h:35</a></div></div>
81
81
  <div class="ttc" id="SVFIRBuilder_8h_html"><div class="ttname"><a href="SVFIRBuilder_8h.html">SVFIRBuilder.h</a></div></div>
82
- <div class="ttc" id="namespaceSVF_1_1LLVMUtil_html_accdd44093d6d145dc92edeaaff3f5732"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#accdd44093d6d145dc92edeaaff3f5732">SVF::LLVMUtil::processArguments</a></div><div class="ttdeci">void processArguments(int argc, char **argv, int &amp;arg_num, char **arg_value, std::vector&lt; std::string &gt; &amp;moduleNameVec)</div><div class="ttdoc">Parse argument for multi-module analysis. </div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00414">LLVMUtil.cpp:414</a></div></div>
82
+ <div class="ttc" id="namespaceSVF_1_1LLVMUtil_html_accdd44093d6d145dc92edeaaff3f5732"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#accdd44093d6d145dc92edeaaff3f5732">SVF::LLVMUtil::processArguments</a></div><div class="ttdeci">void processArguments(int argc, char **argv, int &amp;arg_num, char **arg_value, std::vector&lt; std::string &gt; &amp;moduleNameVec)</div><div class="ttdoc">Parse argument for multi-module analysis. </div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00413">LLVMUtil.cpp:413</a></div></div>
83
83
  <div class="ttc" id="classSVF_1_1SVFIR_html"><div class="ttname"><a href="classSVF_1_1SVFIR.html">SVF::SVFIR</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00043">SVFIR.h:43</a></div></div>
84
84
  <div class="ttc" id="LLVMUtil_8h_html"><div class="ttname"><a href="LLVMUtil_8h.html">LLVMUtil.h</a></div></div>
85
85
  </div><!-- fragment --></div><!-- contents -->
@@ -271,6 +271,7 @@ public:
271
271
  virtual bool csHasVtblsBasedonCHA(CallSite cs) override
272
272
  {
273
273
  assert(false && "not supported!");
274
+ abort();
274
275
  }
275
276
 
276
277
  virtual const VTableSet &getCSVtblsBasedonCHA(CallSite cs) override;
@@ -422,6 +423,7 @@ private:
422
423
  const DIType *getCSStaticType(CallSite cs) const
423
424
  {
424
425
  assert(false && "not supported!");
426
+ abort();
425
427
  }
426
428
 
427
429
  /// Checks if a node exists for type.
package/lib/MTA/MHP.cpp CHANGED
@@ -181,8 +181,7 @@ void MHP::handleNonCandidateFun(const CxtThreadStmt& cts)
181
181
  {
182
182
  const SVFInstruction* curInst = cts.getStmt();
183
183
  const SVFFunction* curfun = curInst->getParent()->getParent();
184
- const SVFInstruction* svfInst = curfun->getEntryBlock()->front();
185
- assert((curInst == svfInst) && "curInst is not the entry of non candidate function.");
184
+ assert((curInst == curfun->getEntryBlock()->front()) && "curInst is not the entry of non candidate function.");
186
185
  const CallStrCxt& curCxt = cts.getContext();
187
186
  PTACallGraphNode* node = tcg->getCallGraphNode(curfun);
188
187
  for (PTACallGraphNode::const_iterator nit = node->OutEdgeBegin(), neit = node->OutEdgeEnd(); nit != neit; nit++)
@@ -61,8 +61,7 @@ bool LLVMUtil::isObject(const Value* ref)
61
61
  */
62
62
  void LLVMUtil::getFunReachableBBs (const Function* fun, std::vector<const SVFBasicBlock*> &reachableBBs)
63
63
  {
64
- const SVFFunction* svfFun = LLVMModuleSet::getLLVMModuleSet()->getSVFFunction(fun);
65
- assert(!SVFUtil::isExtCall(svfFun) && "The calling function cannot be an external function.");
64
+ assert(!SVFUtil::isExtCall(LLVMModuleSet::getLLVMModuleSet()->getSVFFunction(fun)) && "The calling function cannot be an external function.");
66
65
  //initial DominatorTree
67
66
  DominatorTree dt;
68
67
  dt.recalculate(const_cast<Function&>(*fun));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "svf-tools",
3
- "version": "1.0.605",
3
+ "version": "1.0.607",
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": {