svf-tools 1.0.793 → 1.0.795

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 (81) hide show
  1. package/SVF-doxygen/html/AccessPath_8cpp_source.html +1 -1
  2. package/SVF-doxygen/html/CDGBuilder_8cpp_source.html +1 -1
  3. package/SVF-doxygen/html/CDG_8h_source.html +27 -28
  4. package/SVF-doxygen/html/CFBasicBlockGBuilder_8cpp_source.html +3 -3
  5. package/SVF-doxygen/html/CFBasicBlockGBuilder_8h_source.html +1 -1
  6. package/SVF-doxygen/html/CFBasicBlockG_8h_source.html +308 -310
  7. package/SVF-doxygen/html/CHG_8cpp.html +2 -2
  8. package/SVF-doxygen/html/CHG_8cpp_source.html +3 -3
  9. package/SVF-doxygen/html/LLVMModule_8cpp_source.html +5 -5
  10. package/SVF-doxygen/html/MemSSA_8cpp_source.html +1 -1
  11. package/SVF-doxygen/html/PointerAnalysis_8cpp_source.html +2 -2
  12. package/SVF-doxygen/html/SVFG_8cpp_source.html +1 -1
  13. package/SVF-doxygen/html/SVFType_8cpp.html +2 -2
  14. package/SVF-doxygen/html/SVFType_8cpp_source.html +57 -55
  15. package/SVF-doxygen/html/SVFType_8h.html +2 -2
  16. package/SVF-doxygen/html/SVFType_8h_source.html +10 -10
  17. package/SVF-doxygen/html/SVFUtil_8cpp_source.html +2 -2
  18. package/SVF-doxygen/html/SVFValue_8cpp.html +46 -0
  19. package/SVF-doxygen/html/SVFValue_8cpp_source.html +266 -256
  20. package/SVF-doxygen/html/SVFValue_8h_source.html +14 -14
  21. package/SVF-doxygen/html/SaberCondAllocator_8cpp_source.html +2 -2
  22. package/SVF-doxygen/html/SymbolTableInfo_8cpp_source.html +1 -1
  23. package/SVF-doxygen/html/VFG_8cpp_source.html +1 -1
  24. package/SVF-doxygen/html/WTO_8h_source.html +2 -2
  25. package/SVF-doxygen/html/classSVF_1_1AccessPath.html +1 -1
  26. package/SVF-doxygen/html/classSVF_1_1CDG.html +1 -1
  27. package/SVF-doxygen/html/classSVF_1_1CDGBuilder.html +1 -1
  28. package/SVF-doxygen/html/classSVF_1_1CFBasicBlockGBuilder.html +2 -2
  29. package/SVF-doxygen/html/classSVF_1_1CFBasicBlockGWTO.html +1 -1
  30. package/SVF-doxygen/html/classSVF_1_1CFBasicBlockGWTO_1_1TailBuilder.html +1 -1
  31. package/SVF-doxygen/html/classSVF_1_1CFBasicBlockGraph.html +91 -91
  32. package/SVF-doxygen/html/classSVF_1_1CFBasicBlockNode.html +24 -27
  33. package/SVF-doxygen/html/classSVF_1_1CHGraph.html +2 -2
  34. package/SVF-doxygen/html/classSVF_1_1LLVMModuleSet.html +5 -5
  35. package/SVF-doxygen/html/classSVF_1_1MemSSA.html +1 -1
  36. package/SVF-doxygen/html/classSVF_1_1PointerAnalysis.html +2 -2
  37. package/SVF-doxygen/html/classSVF_1_1SVFArrayType.html +4 -4
  38. package/SVF-doxygen/html/classSVF_1_1SVFBasicBlock.html +63 -63
  39. package/SVF-doxygen/html/classSVF_1_1SVFFunction.html +32 -32
  40. package/SVF-doxygen/html/classSVF_1_1SVFFunctionType.html +4 -4
  41. package/SVF-doxygen/html/classSVF_1_1SVFG.html +1 -1
  42. package/SVF-doxygen/html/classSVF_1_1SVFInstruction.html +4 -4
  43. package/SVF-doxygen/html/classSVF_1_1SVFIntegerType.html +7 -7
  44. package/SVF-doxygen/html/classSVF_1_1SVFLoopAndDomInfo.html +116 -116
  45. package/SVF-doxygen/html/classSVF_1_1SVFOtherType.html +4 -4
  46. package/SVF-doxygen/html/classSVF_1_1SVFPointerType.html +4 -4
  47. package/SVF-doxygen/html/classSVF_1_1SVFStructType.html +4 -4
  48. package/SVF-doxygen/html/classSVF_1_1SVFType.html +1 -10
  49. package/SVF-doxygen/html/classSVF_1_1SaberCondAllocator.html +2 -2
  50. package/SVF-doxygen/html/classSVF_1_1StInfo-members.html +1 -1
  51. package/SVF-doxygen/html/classSVF_1_1StInfo.html +14 -23
  52. package/SVF-doxygen/html/classSVF_1_1SymbolTableInfo.html +1 -1
  53. package/SVF-doxygen/html/classSVF_1_1VFG.html +1 -1
  54. package/SVF-doxygen/html/functions_a.html +1 -1
  55. package/SVF-doxygen/html/functions_func.html +1 -1
  56. package/SVF-doxygen/html/globals.html +2 -0
  57. package/SVF-doxygen/html/globals_func.html +2 -0
  58. package/SVF-doxygen/html/menudata.js +4 -2
  59. package/SVF-doxygen/html/namespaceSVF.html +41 -12
  60. package/SVF-doxygen/html/namespaceSVF_1_1SVFUtil.html +2 -2
  61. package/SVF-doxygen/html/namespacemembers.html +3 -36
  62. package/SVF-doxygen/html/namespacemembers_a.html +112 -0
  63. package/SVF-doxygen/html/namespacemembers_func.html +3 -6
  64. package/SVF-doxygen/html/namespacemembers_func_a.html +82 -0
  65. package/SVF-doxygen/html/search/all_0.js +1 -1
  66. package/SVF-doxygen/html/search/all_1.js +1 -1
  67. package/SVF-doxygen/html/search/all_f.js +1 -1
  68. package/SVF-doxygen/html/search/functions_0.js +1 -1
  69. package/SVF-doxygen/html/search/functions_1.js +1 -1
  70. package/SVF-doxygen/html/search/functions_f.js +1 -1
  71. package/SVF-doxygen/html/structSVF_1_1DOTGraphTraits_3_01SVF_1_1CDG_01_5_01_4.html +19 -20
  72. package/SVF-doxygen/html/structSVF_1_1DOTGraphTraits_3_01SVF_1_1CFBasicBlockGraph_01_5_01_4.html +102 -102
  73. package/SVF-doxygen/html/structSVF_1_1GenericGraphTraits_3_01Inverse_3_01SVF_1_1CFBasicBlockNode_01_5_01_4_01_4.html +1 -1
  74. package/SVF-doxygen/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1CFBasicBlockGraph_01_5_01_4.html +2 -2
  75. package/SVF-doxygen/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1CFBasicBlockNode_01_5_01_4.html +1 -1
  76. package/package.json +1 -1
  77. package/svf/include/Graphs/CDG.h +2 -3
  78. package/svf/include/Graphs/CFBasicBlockG.h +3 -5
  79. package/svf/lib/SVFIR/SVFType.cpp +2 -0
  80. package/svf/lib/SVFIR/SVFValue.cpp +7 -0
  81. package/svf-llvm/CMakeLists.txt +1 -1
@@ -333,7 +333,7 @@ $(function() {
333
333
  <div class="ttc" id="aclassSVF_1_1AccessPath_html_ae746362c42da05a641ae062658e40651"><div class="ttname"><a href="classSVF_1_1AccessPath.html#ae746362c42da05a641ae062658e40651">SVF::AccessPath::computeConstantOffset</a></div><div class="ttdeci">APOffset computeConstantOffset() const</div><div class="ttdoc">Return accumulated constant offset given OffsetVarVec.</div><div class="ttdef"><b>Definition:</b> <a href="AccessPath_8cpp_source.html#l00157">AccessPath.cpp:157</a></div></div>
334
334
  <div class="ttc" id="aclassSVF_1_1SVFConstantInt_html"><div class="ttname"><a href="classSVF_1_1SVFConstantInt.html">SVF::SVFConstantInt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00955">SVFValue.h:955</a></div></div>
335
335
  <div class="ttc" id="aclassSVF_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>
336
- <div class="ttc" id="aclassSVF_1_1SVFType_html_a9035ac13134de4647d63507cd80ca3d6"><div class="ttname"><a href="classSVF_1_1SVFType.html#a9035ac13134de4647d63507cd80ca3d6">SVF::SVFType::toString</a></div><div class="ttdeci">std::string toString() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8cpp_source.html#l00006">SVFType.cpp:6</a></div></div>
336
+ <div class="ttc" id="aclassSVF_1_1SVFType_html_a9035ac13134de4647d63507cd80ca3d6"><div class="ttname"><a href="classSVF_1_1SVFType.html#a9035ac13134de4647d63507cd80ca3d6">SVF::SVFType::toString</a></div><div class="ttdeci">std::string toString() const</div></div>
337
337
  <div class="ttc" id="aclassSVF_1_1AccessPath_html_ab0641554924d44f16c2831cac63ccf8b"><div class="ttname"><a href="classSVF_1_1AccessPath.html#ab0641554924d44f16c2831cac63ccf8b">SVF::AccessPath::getOffsetVarAndGepTypePairVec</a></div><div class="ttdeci">const OffsetVarAndGepTypePairs &amp; getOffsetVarAndGepTypePairVec() const</div><div class="ttdef"><b>Definition:</b> <a href="AccessPath_8h_source.html#l00106">AccessPath.h:106</a></div></div>
338
338
  <div class="ttc" id="aclassSVF_1_1SymbolTableInfo_html_a267169023fc4f8dd66b145f7231fec11"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#a267169023fc4f8dd66b145f7231fec11">SVF::SymbolTableInfo::SymbolInfo</a></div><div class="ttdeci">static SymbolTableInfo * SymbolInfo()</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="SymbolTableInfo_8cpp_source.html#l00081">SymbolTableInfo.cpp:81</a></div></div>
339
339
  <div class="ttc" id="aclassSVF_1_1AccessPath_html_a6591b6092a829b0c874754b649087aa2"><div class="ttname"><a href="classSVF_1_1AccessPath.html#a6591b6092a829b0c874754b649087aa2">SVF::AccessPath::operator+</a></div><div class="ttdeci">AccessPath operator+(const AccessPath &amp;rhs) const</div><div class="ttdoc">Overload operators.</div><div class="ttdef"><b>Definition:</b> <a href="AccessPath_8cpp_source.html#l00206">AccessPath.cpp:206</a></div></div>
@@ -267,7 +267,7 @@ $(function() {
267
267
  <div class="ttc" id="aclassSVF_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#l00114">SVFIR.h:114</a></div></div>
268
268
  <div class="ttc" id="aclassSVF_1_1CDGBuilder_html_a6a7139139b2f0124e1729036490886db"><div class="ttname"><a href="classSVF_1_1CDGBuilder.html#a6a7139139b2f0124e1729036490886db">SVF::CDGBuilder::extractNodesBetweenPdomNodes</a></div><div class="ttdeci">void extractNodesBetweenPdomNodes(const SVFBasicBlock *succ, const SVFBasicBlock *LCA, std::vector&lt; const SVFBasicBlock * &gt; &amp;tgtNodes)</div><div class="ttdoc">extract nodes between two nodes in pdom tree</div><div class="ttdef"><b>Definition:</b> <a href="CDGBuilder_8cpp_source.html#l00064">CDGBuilder.cpp:64</a></div></div>
269
269
  <div class="ttc" id="aclassSVF_1_1ICFG_html_a5f2c0aaba07d6fdd63058da0fb60ca8b"><div class="ttname"><a href="classSVF_1_1ICFG.html#a5f2c0aaba07d6fdd63058da0fb60ca8b">SVF::ICFG::getICFGNode</a></div><div class="ttdeci">ICFGNode * getICFGNode(NodeID id) const</div><div class="ttdoc">Get a ICFG node.</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00088">ICFG.h:88</a></div></div>
270
- <div class="ttc" id="aclassSVF_1_1SVFBasicBlock_html_a10707086ce21999f415c479706abbd38"><div class="ttname"><a href="classSVF_1_1SVFBasicBlock.html#a10707086ce21999f415c479706abbd38">SVF::SVFBasicBlock::getTerminator</a></div><div class="ttdeci">const SVFInstruction * getTerminator() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8cpp_source.html#l00225">SVFValue.cpp:225</a></div></div>
270
+ <div class="ttc" id="aclassSVF_1_1SVFBasicBlock_html_a10707086ce21999f415c479706abbd38"><div class="ttname"><a href="classSVF_1_1SVFBasicBlock.html#a10707086ce21999f415c479706abbd38">SVF::SVFBasicBlock::getTerminator</a></div><div class="ttdeci">const SVFInstruction * getTerminator() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8cpp_source.html#l00232">SVFValue.cpp:232</a></div></div>
271
271
  <div class="ttc" id="aclassSVF_1_1IntraCFGEdge_html"><div class="ttname"><a href="classSVF_1_1IntraCFGEdge.html">SVF::IntraCFGEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGEdge_8h_source.html#l00113">ICFGEdge.h:113</a></div></div>
272
272
  <div class="ttc" id="aclassSVF_1_1CDGBuilder_html_ab56c8f3ab29a907d420622dd8e933f0d"><div class="ttname"><a href="classSVF_1_1CDGBuilder.html#ab56c8f3ab29a907d420622dd8e933f0d">SVF::CDGBuilder::buildICFGNodeControlMap</a></div><div class="ttdeci">void buildICFGNodeControlMap()</div><div class="ttdoc">build map at icfg node level</div><div class="ttdef"><b>Definition:</b> <a href="CDGBuilder_8cpp_source.html#l00185">CDGBuilder.cpp:185</a></div></div>
273
273
  <div class="ttc" id="aclassSVF_1_1SVFFunction_html"><div class="ttname"><a href="classSVF_1_1SVFFunction.html">SVF::SVFFunction</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00297">SVFValue.h:297</a></div></div>
@@ -318,7 +318,7 @@ $(function() {
318
318
  <div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; <span class="keywordtype">bool</span> added1 = edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#aeaa31a2c8479e831b36ce2e2582ceb86">getDstNode</a>()-&gt;addIncomingEdge(edge);</div>
319
319
  <div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; <span class="keywordtype">bool</span> added2 = edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#ab47ca533c415841ef75456cbad439589">getSrcNode</a>()-&gt;addOutgoingEdge(edge);</div>
320
320
  <div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; assert(added1 &amp;&amp; added2 &amp;&amp; <span class="stringliteral">&quot;edge not added??&quot;</span>);</div>
321
- <div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
321
+ <div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; <span class="keywordflow">return</span> added1 &amp;&amp; added2;</div>
322
322
  <div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; }</div>
323
323
  <div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; </div>
324
324
  <div class="line"><a name="l00273"></a><span class="lineno"><a class="line" href="classSVF_1_1CDG.html#a98e499b5316074a8722b88f77117c92c"> 273</a></span>&#160; <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1CDG.html#a98e499b5316074a8722b88f77117c92c">addCDGNode</a>(<a class="code" href="classSVF_1_1CDGNode.html">CDGNode</a> *node)</div>
@@ -484,32 +484,31 @@ $(function() {
484
484
  <div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">class</span> EdgeIter&gt;</div>
485
485
  <div class="line"><a name="l00439"></a><span class="lineno"><a class="line" href="structSVF_1_1DOTGraphTraits_3_01SVF_1_1CDG_01_5_01_4.html#af1b3645c9eb434b163c60e374d5428ab"> 439</a></span>&#160; <span class="keyword">static</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="structSVF_1_1DOTGraphTraits_3_01SVF_1_1CDG_01_5_01_4.html#af1b3645c9eb434b163c60e374d5428ab">getEdgeAttributes</a>(<a class="code" href="classSVF_1_1CDGNode.html">NodeType</a> *, EdgeIter EI, <a class="code" href="classSVF_1_1CDG.html">SVF::CDG</a> *)</div>
486
486
  <div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160; {</div>
487
- <div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160; <a class="code" href="classSVF_1_1CDGEdge.html">SVF::CDGEdge</a> *edge = *(EI.getCurrent());</div>
488
- <div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160; assert(edge &amp;&amp; <span class="stringliteral">&quot;No edge found!!&quot;</span>);</div>
489
- <div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;style=solid&quot;</span>;</div>
490
- <div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160; }</div>
491
- <div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160; </div>
492
- <div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">class</span> EdgeIter&gt;</div>
493
- <div class="line"><a name="l00447"></a><span class="lineno"><a class="line" href="structSVF_1_1DOTGraphTraits_3_01SVF_1_1CDG_01_5_01_4.html#a66e40fd1741f5a5dd418bb73e7299be5"> 447</a></span>&#160; <span class="keyword">static</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="structSVF_1_1DOTGraphTraits_3_01SVF_1_1CDG_01_5_01_4.html#a66e40fd1741f5a5dd418bb73e7299be5">getEdgeSourceLabel</a>(<a class="code" href="classSVF_1_1CDGNode.html">NodeType</a> *, EdgeIter EI)</div>
494
- <div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160; {</div>
495
- <div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160; <a class="code" href="classSVF_1_1CDGEdge.html">SVF::CDGEdge</a> *edge = *(EI.getCurrent());</div>
496
- <div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160; assert(edge &amp;&amp; <span class="stringliteral">&quot;No edge found!!&quot;</span>);</div>
497
- <div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160; </div>
498
- <div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160; <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> str;</div>
499
- <div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160; std::stringstream rawstr(str);</div>
500
- <div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &amp;cond: edge-&gt;<a class="code" href="classSVF_1_1CDGEdge.html#aedf54ed1ce3b77c3565390ddc52bd438">getBranchConditions</a>())</div>
501
- <div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160; {</div>
502
- <div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160; rawstr &lt;&lt; std::to_string(cond.second) &lt;&lt; <span class="stringliteral">&quot;|&quot;</span>;</div>
503
- <div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160; }</div>
504
- <div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160; <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> lb = rawstr.str();</div>
505
- <div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160; lb.pop_back();</div>
506
- <div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160; </div>
507
- <div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160; <span class="keywordflow">return</span> lb;</div>
508
- <div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160; }</div>
509
- <div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160;};</div>
510
- <div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160; </div>
511
- <div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160;} <span class="comment">// End namespace SVF</span></div>
512
- <div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160;<span class="preprocessor">#endif //SVF_CONTROLDG_H</span></div>
487
+ <div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160; assert(*(EI.getCurrent()) &amp;&amp; <span class="stringliteral">&quot;No edge found!!&quot;</span>);</div>
488
+ <div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;style=solid&quot;</span>;</div>
489
+ <div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160; }</div>
490
+ <div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160; </div>
491
+ <div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">class</span> EdgeIter&gt;</div>
492
+ <div class="line"><a name="l00446"></a><span class="lineno"><a class="line" href="structSVF_1_1DOTGraphTraits_3_01SVF_1_1CDG_01_5_01_4.html#a66e40fd1741f5a5dd418bb73e7299be5"> 446</a></span>&#160; <span class="keyword">static</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="structSVF_1_1DOTGraphTraits_3_01SVF_1_1CDG_01_5_01_4.html#a66e40fd1741f5a5dd418bb73e7299be5">getEdgeSourceLabel</a>(<a class="code" href="classSVF_1_1CDGNode.html">NodeType</a> *, EdgeIter EI)</div>
493
+ <div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160; {</div>
494
+ <div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160; <a class="code" href="classSVF_1_1CDGEdge.html">SVF::CDGEdge</a> *edge = *(EI.getCurrent());</div>
495
+ <div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160; assert(edge &amp;&amp; <span class="stringliteral">&quot;No edge found!!&quot;</span>);</div>
496
+ <div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160; </div>
497
+ <div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160; <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> str;</div>
498
+ <div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160; std::stringstream rawstr(str);</div>
499
+ <div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &amp;cond: edge-&gt;<a class="code" href="classSVF_1_1CDGEdge.html#aedf54ed1ce3b77c3565390ddc52bd438">getBranchConditions</a>())</div>
500
+ <div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160; {</div>
501
+ <div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160; rawstr &lt;&lt; std::to_string(cond.second) &lt;&lt; <span class="stringliteral">&quot;|&quot;</span>;</div>
502
+ <div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160; }</div>
503
+ <div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160; <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> lb = rawstr.str();</div>
504
+ <div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160; lb.pop_back();</div>
505
+ <div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160; </div>
506
+ <div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160; <span class="keywordflow">return</span> lb;</div>
507
+ <div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160; }</div>
508
+ <div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160;};</div>
509
+ <div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160; </div>
510
+ <div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160;} <span class="comment">// End namespace SVF</span></div>
511
+ <div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160;<span class="preprocessor">#endif //SVF_CONTROLDG_H</span></div>
513
512
  </div><!-- fragment --></div><!-- contents -->
514
513
  <div class="ttc" id="aclassSVF_1_1CDG_html_a79d7b96a3141348edb0a739eb6aea35c"><div class="ttname"><a href="classSVF_1_1CDG.html#a79d7b96a3141348edb0a739eb6aea35c">SVF::CDG::~CDG</a></div><div class="ttdeci">virtual ~CDG()</div><div class="ttdoc">Destructor.</div><div class="ttdef"><b>Definition:</b> <a href="CDG_8h_source.html#l00167">CDG.h:167</a></div></div>
515
514
  <div class="ttc" id="aclassSVF_1_1GenericNode_html_a0931220d7a38e03f206cbdc6465d32ad"><div class="ttname"><a href="classSVF_1_1GenericNode.html#a0931220d7a38e03f206cbdc6465d32ad">SVF::GenericNode::hasOutgoingEdge</a></div><div class="ttdeci">bool hasOutgoingEdge() const</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00209">GenericGraph.h:209</a></div></div>
@@ -526,7 +525,7 @@ $(function() {
526
525
  <div class="ttc" id="aclassSVF_1_1CDGNode_html_aca4257495b32baba3eab1ee841e66d78"><div class="ttname"><a href="classSVF_1_1CDGNode.html#aca4257495b32baba3eab1ee841e66d78">SVF::CDGNode::const_iterator</a></div><div class="ttdeci">CDGEdge::CDGEdgeSetTy::const_iterator const_iterator</div><div class="ttdef"><b>Definition:</b> <a href="CDG_8h_source.html#l00095">CDG.h:95</a></div></div>
527
526
  <div class="ttc" id="aclassSVF_1_1CDG_html_a646aa0a899d8cc45df96c0a60c85011e"><div class="ttname"><a href="classSVF_1_1CDG.html#a646aa0a899d8cc45df96c0a60c85011e">SVF::CDG::CDG</a></div><div class="ttdeci">CDG()</div><div class="ttdoc">Constructor.</div><div class="ttdef"><b>Definition:</b> <a href="CDG_8h_source.html#l00140">CDG.h:140</a></div></div>
528
527
  <div class="ttc" id="aclassSVF_1_1CDGNode_html"><div class="ttname"><a href="classSVF_1_1CDGNode.html">SVF::CDGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="CDG_8h_source.html#l00089">CDG.h:89</a></div></div>
529
- <div class="ttc" id="astructSVF_1_1DOTGraphTraits_3_01SVF_1_1CDG_01_5_01_4_html_a66e40fd1741f5a5dd418bb73e7299be5"><div class="ttname"><a href="structSVF_1_1DOTGraphTraits_3_01SVF_1_1CDG_01_5_01_4.html#a66e40fd1741f5a5dd418bb73e7299be5">SVF::DOTGraphTraits&lt; SVF::CDG * &gt;::getEdgeSourceLabel</a></div><div class="ttdeci">static std::string getEdgeSourceLabel(NodeType *, EdgeIter EI)</div><div class="ttdef"><b>Definition:</b> <a href="CDG_8h_source.html#l00447">CDG.h:447</a></div></div>
528
+ <div class="ttc" id="astructSVF_1_1DOTGraphTraits_3_01SVF_1_1CDG_01_5_01_4_html_a66e40fd1741f5a5dd418bb73e7299be5"><div class="ttname"><a href="structSVF_1_1DOTGraphTraits_3_01SVF_1_1CDG_01_5_01_4.html#a66e40fd1741f5a5dd418bb73e7299be5">SVF::DOTGraphTraits&lt; SVF::CDG * &gt;::getEdgeSourceLabel</a></div><div class="ttdeci">static std::string getEdgeSourceLabel(NodeType *, EdgeIter EI)</div><div class="ttdef"><b>Definition:</b> <a href="CDG_8h_source.html#l00446">CDG.h:446</a></div></div>
530
529
  <div class="ttc" id="aclassSVF_1_1CDG_html_aadc90afbdeff9aae0365cde7b96ae9bc"><div class="ttname"><a href="classSVF_1_1CDG.html#aadc90afbdeff9aae0365cde7b96ae9bc">SVF::CDG::getCDG</a></div><div class="ttdeci">static CDG * getCDG()</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="CDG_8h_source.html#l00149">CDG.h:149</a></div></div>
531
530
  <div class="ttc" id="astructSVF_1_1DOTGraphTraits_3_01SVF_1_1CDG_01_5_01_4_html_a6a127e760a76f581b57edcdbe607eab6"><div class="ttname"><a href="structSVF_1_1DOTGraphTraits_3_01SVF_1_1CDG_01_5_01_4.html#a6a127e760a76f581b57edcdbe607eab6">SVF::DOTGraphTraits&lt; SVF::CDG * &gt;::getNodeAttributes</a></div><div class="ttdeci">static std::string getNodeAttributes(NodeType *node, SVF::CDG *)</div><div class="ttdef"><b>Definition:</b> <a href="CDG_8h_source.html#l00400">CDG.h:400</a></div></div>
532
531
  <div class="ttc" id="aclassSVF_1_1CDG_html"><div class="ttname"><a href="classSVF_1_1CDG.html">SVF::CDG</a></div><div class="ttdef"><b>Definition:</b> <a href="CDG_8h_source.html#l00125">CDG.h:125</a></div></div>
@@ -262,8 +262,8 @@ $(function() {
262
262
  <div class="ttc" id="aclassSVF_1_1CFBasicBlockEdge_html"><div class="ttname"><a href="classSVF_1_1CFBasicBlockEdge.html">SVF::CFBasicBlockEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="CFBasicBlockG_8h_source.html#l00043">CFBasicBlockG.h:43</a></div></div>
263
263
  <div class="ttc" id="aclassSVF_1_1ICFGNode_html"><div class="ttname"><a href="classSVF_1_1ICFGNode.html">SVF::ICFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00054">ICFGNode.h:54</a></div></div>
264
264
  <div class="ttc" id="aclassSVF_1_1RetCFGEdge_html"><div class="ttname"><a href="classSVF_1_1RetCFGEdge.html">SVF::RetCFGEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGEdge_8h_source.html#l00227">ICFGEdge.h:227</a></div></div>
265
- <div class="ttc" id="aclassSVF_1_1CFBasicBlockGraph_html_acd6a4b291c9aab8abdc466f985975d0d"><div class="ttname"><a href="classSVF_1_1CFBasicBlockGraph.html#acd6a4b291c9aab8abdc466f985975d0d">SVF::CFBasicBlockGraph::addCFBBEdge</a></div><div class="ttdeci">bool addCFBBEdge(CFBasicBlockEdge *edge)</div><div class="ttdoc">Add ICFGEdgeWrapper.</div><div class="ttdef"><b>Definition:</b> <a href="CFBasicBlockG_8h_source.html#l00454">CFBasicBlockG.h:454</a></div></div>
266
- <div class="ttc" id="aclassSVF_1_1CFBasicBlockGraph_html_a4a7a6e00d13b4099c34a3015b4f06a67"><div class="ttname"><a href="classSVF_1_1CFBasicBlockGraph.html#a4a7a6e00d13b4099c34a3015b4f06a67">SVF::CFBasicBlockGraph::addCFBBNode</a></div><div class="ttdeci">virtual void addCFBBNode(CFBasicBlockNode *node)</div><div class="ttdoc">Add a ICFGNodeWrapper.</div><div class="ttdef"><b>Definition:</b> <a href="CFBasicBlockG_8h_source.html#l00464">CFBasicBlockG.h:464</a></div></div>
265
+ <div class="ttc" id="aclassSVF_1_1CFBasicBlockGraph_html_acd6a4b291c9aab8abdc466f985975d0d"><div class="ttname"><a href="classSVF_1_1CFBasicBlockGraph.html#acd6a4b291c9aab8abdc466f985975d0d">SVF::CFBasicBlockGraph::addCFBBEdge</a></div><div class="ttdeci">bool addCFBBEdge(CFBasicBlockEdge *edge)</div><div class="ttdoc">Add ICFGEdgeWrapper.</div><div class="ttdef"><b>Definition:</b> <a href="CFBasicBlockG_8h_source.html#l00452">CFBasicBlockG.h:452</a></div></div>
266
+ <div class="ttc" id="aclassSVF_1_1CFBasicBlockGraph_html_a4a7a6e00d13b4099c34a3015b4f06a67"><div class="ttname"><a href="classSVF_1_1CFBasicBlockGraph.html#a4a7a6e00d13b4099c34a3015b4f06a67">SVF::CFBasicBlockGraph::addCFBBNode</a></div><div class="ttdeci">virtual void addCFBBNode(CFBasicBlockNode *node)</div><div class="ttdoc">Add a ICFGNodeWrapper.</div><div class="ttdef"><b>Definition:</b> <a href="CFBasicBlockG_8h_source.html#l00462">CFBasicBlockG.h:462</a></div></div>
267
267
  <div class="ttc" id="aclassSVF_1_1CFBasicBlockGBuilder_html_ae6c8497f1cd2e3ca63b899ea11757b31"><div class="ttname"><a href="classSVF_1_1CFBasicBlockGBuilder.html#ae6c8497f1cd2e3ca63b899ea11757b31">SVF::CFBasicBlockGBuilder::addIntraBBEdge</a></div><div class="ttdeci">void addIntraBBEdge(ICFG *icfg, Map&lt; const SVFBasicBlock *, std::vector&lt; CFBasicBlockNode * &gt;&gt; &amp;bbToNodes)</div><div class="ttdef"><b>Definition:</b> <a href="CFBasicBlockGBuilder_8cpp_source.html#l00105">CFBasicBlockGBuilder.cpp:105</a></div></div>
268
268
  <div class="ttc" id="aclassSVF_1_1SVFBasicBlock_html"><div class="ttname"><a href="classSVF_1_1SVFBasicBlock.html">SVF::SVFBasicBlock</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00517">SVFValue.h:517</a></div></div>
269
269
  <div class="ttc" id="aclassSVF_1_1CallICFGNode_html"><div class="ttname"><a href="classSVF_1_1CallICFGNode.html">SVF::CallICFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00385">ICFGNode.h:385</a></div></div>
@@ -274,7 +274,7 @@ $(function() {
274
274
  <div class="ttc" id="aclassSVF_1_1CFBasicBlockNode_html"><div class="ttname"><a href="classSVF_1_1CFBasicBlockNode.html">SVF::CFBasicBlockNode</a></div><div class="ttdef"><b>Definition:</b> <a href="CFBasicBlockG_8h_source.html#l00114">CFBasicBlockG.h:114</a></div></div>
275
275
  <div class="ttc" id="aclassSVF_1_1ICFG_html"><div class="ttname"><a href="classSVF_1_1ICFG.html">SVF::ICFG</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00047">ICFG.h:47</a></div></div>
276
276
  <div class="ttc" id="aclassSVF_1_1CFBasicBlockGBuilder_html_a4a298a45e54cbaf41cdf44aeea1a63f3"><div class="ttname"><a href="classSVF_1_1CFBasicBlockGBuilder.html#a4a298a45e54cbaf41cdf44aeea1a63f3">SVF::CFBasicBlockGBuilder::_CFBasicBlockG</a></div><div class="ttdeci">CFBasicBlockGraph * _CFBasicBlockG</div><div class="ttdef"><b>Definition:</b> <a href="CFBasicBlockGBuilder_8h_source.html#l00039">CFBasicBlockGBuilder.h:39</a></div></div>
277
- <div class="ttc" id="aclassSVF_1_1CFBasicBlockGraph_html"><div class="ttname"><a href="classSVF_1_1CFBasicBlockGraph.html">SVF::CFBasicBlockGraph</a></div><div class="ttdef"><b>Definition:</b> <a href="CFBasicBlockG_8h_source.html#l00352">CFBasicBlockG.h:352</a></div></div>
277
+ <div class="ttc" id="aclassSVF_1_1CFBasicBlockGraph_html"><div class="ttname"><a href="classSVF_1_1CFBasicBlockGraph.html">SVF::CFBasicBlockGraph</a></div><div class="ttdef"><b>Definition:</b> <a href="CFBasicBlockG_8h_source.html#l00350">CFBasicBlockG.h:350</a></div></div>
278
278
  <div class="ttc" id="aCFBasicBlockGBuilder_8h_html"><div class="ttname"><a href="CFBasicBlockGBuilder_8h.html">CFBasicBlockGBuilder.h</a></div></div>
279
279
  <div class="ttc" id="aclassSVF_1_1CFBasicBlockNode_html_a5374f4567cee38325f61940f4edbb142"><div class="ttname"><a href="classSVF_1_1CFBasicBlockNode.html#a5374f4567cee38325f61940f4edbb142">SVF::CFBasicBlockNode::addNode</a></div><div class="ttdeci">void addNode(const ICFGNode *node)</div><div class="ttdef"><b>Definition:</b> <a href="CFBasicBlockG_8h_source.html#l00175">CFBasicBlockG.h:175</a></div></div>
280
280
  <div class="ttc" id="aclassSVF_1_1ICFG_html_a5dd4ac55123501c47c628adcf27e2475"><div class="ttname"><a href="classSVF_1_1ICFG.html#a5dd4ac55123501c47c628adcf27e2475">SVF::ICFG::getICFGEdge</a></div><div class="ttdeci">ICFGEdge * getICFGEdge(const ICFGNode *src, const ICFGNode *dst, ICFGEdge::ICFGEdgeK kind)</div><div class="ttdoc">Get a SVFG edge according to src and dst.</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#l00341">ICFG.cpp:341</a></div></div>
@@ -142,7 +142,7 @@ $(function() {
142
142
  <div class="ttc" id="aclassSVF_1_1CFBasicBlockGBuilder_html_a879d8affb9b113c9d2d976cdd31b60f1"><div class="ttname"><a href="classSVF_1_1CFBasicBlockGBuilder.html#a879d8affb9b113c9d2d976cdd31b60f1">SVF::CFBasicBlockGBuilder::getCFBasicBlockGraph</a></div><div class="ttdeci">CFBasicBlockGraph * getCFBasicBlockGraph()</div><div class="ttdef"><b>Definition:</b> <a href="CFBasicBlockGBuilder_8h_source.html#l00046">CFBasicBlockGBuilder.h:46</a></div></div>
143
143
  <div class="ttc" id="aclassSVF_1_1ICFG_html"><div class="ttname"><a href="classSVF_1_1ICFG.html">SVF::ICFG</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00047">ICFG.h:47</a></div></div>
144
144
  <div class="ttc" id="aclassSVF_1_1CFBasicBlockGBuilder_html_a4a298a45e54cbaf41cdf44aeea1a63f3"><div class="ttname"><a href="classSVF_1_1CFBasicBlockGBuilder.html#a4a298a45e54cbaf41cdf44aeea1a63f3">SVF::CFBasicBlockGBuilder::_CFBasicBlockG</a></div><div class="ttdeci">CFBasicBlockGraph * _CFBasicBlockG</div><div class="ttdef"><b>Definition:</b> <a href="CFBasicBlockGBuilder_8h_source.html#l00039">CFBasicBlockGBuilder.h:39</a></div></div>
145
- <div class="ttc" id="aclassSVF_1_1CFBasicBlockGraph_html"><div class="ttname"><a href="classSVF_1_1CFBasicBlockGraph.html">SVF::CFBasicBlockGraph</a></div><div class="ttdef"><b>Definition:</b> <a href="CFBasicBlockG_8h_source.html#l00352">CFBasicBlockG.h:352</a></div></div>
145
+ <div class="ttc" id="aclassSVF_1_1CFBasicBlockGraph_html"><div class="ttname"><a href="classSVF_1_1CFBasicBlockGraph.html">SVF::CFBasicBlockGraph</a></div><div class="ttdef"><b>Definition:</b> <a href="CFBasicBlockG_8h_source.html#l00350">CFBasicBlockG.h:350</a></div></div>
146
146
  <div class="ttc" id="anamespaceSVF_html_a8234d4b959abc9123993bcff4eee34c1"><div class="ttname"><a href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">SVF::Map</a></div><div class="ttdeci">std::unordered_map&lt; Key, Value, Hash, KeyEqual, Allocator &gt; Map</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00102">SVFType.h:102</a></div></div>
147
147
  <!-- start footer part -->
148
148
  <hr class="footer"/><address class="footer"><small>