svf-tools 1.0.381 → 1.0.382

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 (123) hide show
  1. package/SVF-doxygen/html/html/AndersenSFR_8cpp_source.html +3 -3
  2. package/SVF-doxygen/html/html/Andersen_8cpp_source.html +1 -1
  3. package/SVF-doxygen/html/html/CHGBuilder_8cpp_source.html +1 -1
  4. package/SVF-doxygen/html/html/ConsGEdge_8h_source.html +2 -2
  5. package/SVF-doxygen/html/html/ConsG_8cpp_source.html +1 -1
  6. package/SVF-doxygen/html/html/ConsG_8h_source.html +3 -3
  7. package/SVF-doxygen/html/html/ContextDDA_8cpp_source.html +3 -3
  8. package/SVF-doxygen/html/html/DDAVFSolver_8h_source.html +6 -6
  9. package/SVF-doxygen/html/html/FlowDDA_8cpp_source.html +2 -2
  10. package/SVF-doxygen/html/html/FlowSensitiveStat_8cpp_source.html +3 -3
  11. package/SVF-doxygen/html/html/IRAnnotator_8h_source.html +1 -1
  12. package/SVF-doxygen/html/html/IRGraph_8h_source.html +2 -2
  13. package/SVF-doxygen/html/html/LocationSet_8cpp_source.html +8 -8
  14. package/SVF-doxygen/html/html/LocationSet_8h.html +0 -2
  15. package/SVF-doxygen/html/html/LocationSet_8h_source.html +28 -21
  16. package/SVF-doxygen/html/html/MemRegion_8cpp_source.html +6 -6
  17. package/SVF-doxygen/html/html/PAGBuilderFromFile_8cpp_source.html +2 -2
  18. package/SVF-doxygen/html/html/PTAStat_8cpp_source.html +15 -15
  19. package/SVF-doxygen/html/html/PointerAnalysisImpl_8cpp_source.html +3 -3
  20. package/SVF-doxygen/html/html/PointerAnalysis_8cpp_source.html +6 -6
  21. package/SVF-doxygen/html/html/PointerAnalysis_8h_source.html +6 -6
  22. package/SVF-doxygen/html/html/SVFIRBuilder_8cpp_source.html +5 -6
  23. package/SVF-doxygen/html/html/SVFIRBuilder_8h_source.html +35 -35
  24. package/SVF-doxygen/html/html/SVFIR_8cpp_source.html +9 -9
  25. package/SVF-doxygen/html/html/SVFIR_8h_source.html +6 -6
  26. package/SVF-doxygen/html/html/SVFModule_8cpp_source.html +1 -1
  27. package/SVF-doxygen/html/html/SVFStatements_8cpp_source.html +1 -1
  28. package/SVF-doxygen/html/html/SVFStatements_8h_source.html +2 -2
  29. package/SVF-doxygen/html/html/SVFVariables_8h_source.html +8 -8
  30. package/SVF-doxygen/html/html/SaberSVFGBuilder_8cpp_source.html +1 -1
  31. package/SVF-doxygen/html/html/SymbolTableBuilder_8cpp_source.html +23 -23
  32. package/SVF-doxygen/html/html/SymbolTableBuilder_8h_source.html +1 -1
  33. package/SVF-doxygen/html/html/SymbolTableInfo_8cpp_source.html +85 -90
  34. package/SVF-doxygen/html/html/SymbolTableInfo_8h_source.html +84 -84
  35. package/SVF-doxygen/html/html/ThreadCallGraph_8cpp_source.html +3 -3
  36. package/SVF-doxygen/html/html/TypeBasedHeapCloning_8cpp_source.html +5 -5
  37. package/SVF-doxygen/html/html/TypeBasedHeapCloning_8h_source.html +2 -2
  38. package/SVF-doxygen/html/html/VersionedFlowSensitiveStat_8cpp_source.html +3 -3
  39. package/SVF-doxygen/html/html/annotated.html +192 -193
  40. package/SVF-doxygen/html/html/classSVF_1_1AndersenBase.html +1 -1
  41. package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR.html +3 -3
  42. package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl.html +4 -4
  43. package/SVF-doxygen/html/html/classSVF_1_1BranchStmt.html +2 -2
  44. package/SVF-doxygen/html/html/classSVF_1_1CHGBuilder.html +1 -1
  45. package/SVF-doxygen/html/html/classSVF_1_1ConstraintGraph.html +2 -2
  46. package/SVF-doxygen/html/html/classSVF_1_1ContextDDA.html +3 -3
  47. package/SVF-doxygen/html/html/classSVF_1_1DDAVFSolver.html +1 -1
  48. package/SVF-doxygen/html/html/classSVF_1_1FlowDDA.html +2 -2
  49. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive.html +1 -1
  50. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveStat.html +3 -3
  51. package/SVF-doxygen/html/html/classSVF_1_1GepObjVar.html +8 -8
  52. package/SVF-doxygen/html/html/classSVF_1_1GepStmt.html +2 -2
  53. package/SVF-doxygen/html/html/classSVF_1_1GepValVar.html +1 -1
  54. package/SVF-doxygen/html/html/classSVF_1_1IRGraph.html +1 -1
  55. package/SVF-doxygen/html/html/classSVF_1_1LocationSet.html +54 -54
  56. package/SVF-doxygen/html/html/classSVF_1_1MRGenerator.html +7 -7
  57. package/SVF-doxygen/html/html/classSVF_1_1MemObj.html +87 -87
  58. package/SVF-doxygen/html/html/classSVF_1_1NormalGepCGEdge.html +1 -1
  59. package/SVF-doxygen/html/html/classSVF_1_1ObjTypeInfo.html +88 -92
  60. package/SVF-doxygen/html/html/classSVF_1_1ObjVar.html +1 -1
  61. package/SVF-doxygen/html/html/classSVF_1_1PAGBuilderFromFile.html +2 -2
  62. package/SVF-doxygen/html/html/classSVF_1_1PTAStat.html +16 -16
  63. package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.html +9 -9
  64. package/SVF-doxygen/html/html/classSVF_1_1SVFIR.html +22 -22
  65. package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder.html +129 -133
  66. package/SVF-doxygen/html/html/classSVF_1_1SVFModule.html +1 -1
  67. package/SVF-doxygen/html/html/classSVF_1_1SaberSVFGBuilder.html +1 -1
  68. package/SVF-doxygen/html/html/classSVF_1_1StInfo-members.html +19 -20
  69. package/SVF-doxygen/html/html/classSVF_1_1StInfo.html +60 -84
  70. package/SVF-doxygen/html/html/classSVF_1_1SymbolTableBuilder.html +38 -38
  71. package/SVF-doxygen/html/html/classSVF_1_1SymbolTableInfo-members.html +3 -3
  72. package/SVF-doxygen/html/html/classSVF_1_1SymbolTableInfo.html +135 -124
  73. package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraph.html +3 -3
  74. package/SVF-doxygen/html/html/classSVF_1_1TypeBasedHeapCloning.html +6 -6
  75. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitiveStat.html +3 -3
  76. package/SVF-doxygen/html/html/classes.html +97 -98
  77. package/SVF-doxygen/html/html/functions_f.html +11 -22
  78. package/SVF-doxygen/html/html/functions_func_f.html +0 -3
  79. package/SVF-doxygen/html/html/functions_func_g.html +24 -31
  80. package/SVF-doxygen/html/html/functions_g.html +22 -29
  81. package/SVF-doxygen/html/html/functions_l.html +5 -5
  82. package/SVF-doxygen/html/html/functions_n.html +3 -3
  83. package/SVF-doxygen/html/html/functions_o.html +3 -3
  84. package/SVF-doxygen/html/html/functions_p.html +10 -10
  85. package/SVF-doxygen/html/html/functions_r.html +2 -2
  86. package/SVF-doxygen/html/html/functions_s.html +14 -12
  87. package/SVF-doxygen/html/html/functions_t.html +3 -3
  88. package/SVF-doxygen/html/html/functions_v.html +3 -3
  89. package/SVF-doxygen/html/html/functions_vars_f.html +1 -7
  90. package/SVF-doxygen/html/html/functions_w.html +9 -5
  91. package/SVF-doxygen/html/html/hierarchy.html +332 -333
  92. package/SVF-doxygen/html/html/namespaceSVF.html +0 -2
  93. package/SVF-doxygen/html/html/search/all_10.js +8 -8
  94. package/SVF-doxygen/html/html/search/all_12.js +3 -3
  95. package/SVF-doxygen/html/html/search/all_13.js +10 -10
  96. package/SVF-doxygen/html/html/search/all_14.js +3 -3
  97. package/SVF-doxygen/html/html/search/all_15.js +1 -1
  98. package/SVF-doxygen/html/html/search/all_16.js +1 -1
  99. package/SVF-doxygen/html/html/search/all_17.js +1 -1
  100. package/SVF-doxygen/html/html/search/all_6.js +1 -4
  101. package/SVF-doxygen/html/html/search/all_7.js +3 -5
  102. package/SVF-doxygen/html/html/search/all_c.js +3 -3
  103. package/SVF-doxygen/html/html/search/all_d.js +2 -2
  104. package/SVF-doxygen/html/html/search/all_e.js +5 -5
  105. package/SVF-doxygen/html/html/search/all_f.js +1 -1
  106. package/SVF-doxygen/html/html/search/classes_5.js +0 -1
  107. package/SVF-doxygen/html/html/search/functions_10.js +1 -1
  108. package/SVF-doxygen/html/html/search/functions_5.js +0 -1
  109. package/SVF-doxygen/html/html/search/functions_6.js +3 -5
  110. package/SVF-doxygen/html/html/search/functions_e.js +1 -1
  111. package/SVF-doxygen/html/html/search/variables_14.js +1 -1
  112. package/SVF-doxygen/html/html/search/variables_15.js +1 -1
  113. package/SVF-doxygen/html/html/search/variables_6.js +1 -3
  114. package/SVF-doxygen/html/html/search/variables_d.js +1 -1
  115. package/SVF-doxygen/html/html/search/variables_e.js +3 -3
  116. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1LocationSet_01_4.html +4 -4
  117. package/include/MemoryModel/LocationSet.h +0 -24
  118. package/include/MemoryModel/SVFVariables.h +1 -1
  119. package/include/MemoryModel/SymbolTableInfo.h +11 -10
  120. package/lib/MemoryModel/SymbolTableInfo.cpp +42 -62
  121. package/lib/SVF-FE/SVFIRBuilder.cpp +13 -39
  122. package/lib/SVF-FE/SymbolTableBuilder.cpp +3 -3
  123. package/package.json +1 -1
@@ -1264,8 +1264,8 @@ Private Member Functions</h2></td></tr>
1264
1264
  <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#l00046">SVFVariables.h:46</a></div></div>
1265
1265
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a28c0ede7e4765d2a686fc8ae0f5641a4"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a28c0ede7e4765d2a686fc8ae0f5641a4">SVF::SVFUtil::getSourceLoc</a></div><div class="ttdeci">std::string getSourceLoc(const Value *val)</div><div class="ttdoc">Return source code including line number and file name from debug information. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8cpp_source.html#l00269">SVFUtil.cpp:269</a></div></div>
1266
1266
  <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#l00205">PointerAnalysis.h:205</a></div></div>
1267
- <div class="ttc" id="classSVF_1_1SymbolTableInfo_html_aa40ff2fcaba3d4297d63269b74738737"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#aa40ff2fcaba3d4297d63269b74738737">SVF::SymbolTableInfo::printFlattenFields</a></div><div class="ttdeci">void printFlattenFields(const Type *type)</div><div class="ttdoc">Debug method. </div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00466">SymbolTableInfo.cpp:466</a></div></div>
1268
- <div class="ttc" id="classSVF_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#l00115">SymbolTableInfo.cpp:115</a></div></div>
1267
+ <div class="ttc" id="classSVF_1_1SymbolTableInfo_html_aa40ff2fcaba3d4297d63269b74738737"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#aa40ff2fcaba3d4297d63269b74738737">SVF::SymbolTableInfo::printFlattenFields</a></div><div class="ttdeci">void printFlattenFields(const Type *type)</div><div class="ttdoc">Debug method. </div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00457">SymbolTableInfo.cpp:457</a></div></div>
1268
+ <div class="ttc" id="classSVF_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#l00107">SymbolTableInfo.cpp:107</a></div></div>
1269
1269
  <div class="ttc" id="classSVF_1_1SVFVar_html_afaa33caa8d2a306f6741d9d066243e40"><div class="ttname"><a href="classSVF_1_1SVFVar.html#afaa33caa8d2a306f6741d9d066243e40">SVF::SVFVar::getValue</a></div><div class="ttdeci">const Value * getValue() const</div><div class="ttdoc">Get/has methods of the components. </div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00096">SVFVariables.h:96</a></div></div>
1270
1270
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a85ab6b592fefc45a0674d3295e01638f"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a85ab6b592fefc45a0674d3295e01638f">SVF::SVFUtil::outs</a></div><div class="ttdeci">raw_ostream &amp; outs()</div><div class="ttdoc">Overwrite llvm::outs() </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00049">SVFUtil.h:49</a></div></div>
1271
1271
  <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#l00165">GenericGraph.h:165</a></div></div>
@@ -2477,7 +2477,7 @@ Private Member Functions</h2></td></tr>
2477
2477
 
2478
2478
  <p class="definition">Definition at line <a class="el" href="PointerAnalysis_8h_source.html#l00367">367</a> of file <a class="el" href="PointerAnalysis_8h_source.html">PointerAnalysis.h</a>.</p>
2479
2479
  <div class="fragment"><div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; {</div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; <span class="keyword">const</span> MemObj* mem = <a class="code" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>-&gt;<a class="code" href="classSVF_1_1SVFIR.html#af76a55c3b8255a81a566bdce35ffc749">getBaseObj</a>(<span class="keywordtype">id</span>);</div><div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; <span class="keywordflow">return</span> mem-&gt;<a class="code" href="classSVF_1_1MemObj.html#a41d85883d44ad77832b020455951c6fc">isFieldInsensitive</a>();</div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; }</div><div class="ttc" id="classSVF_1_1SVFIR_html_af76a55c3b8255a81a566bdce35ffc749"><div class="ttname"><a href="classSVF_1_1SVFIR.html#af76a55c3b8255a81a566bdce35ffc749">SVF::SVFIR::getBaseObj</a></div><div class="ttdeci">const MemObj * getBaseObj(NodeID id) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00414">SVFIR.h:414</a></div></div>
2480
- <div class="ttc" id="classSVF_1_1MemObj_html_a41d85883d44ad77832b020455951c6fc"><div class="ttname"><a href="classSVF_1_1MemObj.html#a41d85883d44ad77832b020455951c6fc">SVF::MemObj::isFieldInsensitive</a></div><div class="ttdeci">bool isFieldInsensitive() const</div><div class="ttdoc">Return true if its field limit is 0. </div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00727">SymbolTableInfo.cpp:727</a></div></div>
2480
+ <div class="ttc" id="classSVF_1_1MemObj_html_a41d85883d44ad77832b020455951c6fc"><div class="ttname"><a href="classSVF_1_1MemObj.html#a41d85883d44ad77832b020455951c6fc">SVF::MemObj::isFieldInsensitive</a></div><div class="ttdeci">bool isFieldInsensitive() const</div><div class="ttdoc">Return true if its field limit is 0. </div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00707">SymbolTableInfo.cpp:707</a></div></div>
2481
2481
  <div class="ttc" id="classSVF_1_1PointerAnalysis_html_adc7f5c71efb9cd1bec4f5ca9127654c3"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">SVF::PointerAnalysis::pag</a></div><div class="ttdeci">static SVFIR * pag</div><div class="ttdoc">SVFIR. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00147">PointerAnalysis.h:147</a></div></div>
2482
2482
  </div><!-- fragment -->
2483
2483
  </div>
@@ -2599,15 +2599,15 @@ Private Member Functions</h2></td></tr>
2599
2599
  <p>Return TRUE if this node is a local variable of recursive function. </p>
2600
2600
 
2601
2601
  <p class="definition">Definition at line <a class="el" href="PointerAnalysis_8cpp_source.html#l00156">156</a> of file <a class="el" href="PointerAnalysis_8cpp_source.html">PointerAnalysis.cpp</a>.</p>
2602
- <div class="fragment"><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;{</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1MemObj.html">MemObj</a>* obj = this-&gt;<a class="code" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>-&gt;<a class="code" href="classSVF_1_1SVFIR.html#a2dd4d5f704906270af13e7a07f900eb1">getObject</a>(<span class="keywordtype">id</span>);</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(obj &amp;&amp; <span class="stringliteral">&quot;object not found!!&quot;</span>);</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <span class="keywordflow">if</span>(obj-&gt;<a class="code" href="classSVF_1_1MemObj.html#af7316c697eafc71d5fc93108da4e2cee">isStack</a>())</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; {</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <span class="keywordflow">if</span>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a3bacb4f95c73e6d794901d01c6b65a83">AllocaInst</a>* local = SVFUtil::dyn_cast&lt;AllocaInst&gt;(obj-&gt;<a class="code" href="classSVF_1_1MemObj.html#a4da54ef60231d2e6c26669226b99d2f3">getValue</a>()))</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; {</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* fun = <a class="code" href="classSVF_1_1LLVMModuleSet.html#acf40310917909e4234282c0695a43160">LLVMModuleSet::getLLVMModuleSet</a>()-&gt;<a class="code" href="classSVF_1_1LLVMModuleSet.html#a547b3bc62de65b9dbfc6dee55c063dd7">getSVFFunction</a>(local-&gt;getFunction());</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PointerAnalysis.html#ae3b651799345d9d92b6d736dafb03f63">callGraphSCC</a>-&gt;<a class="code" href="classSVF_1_1SCCDetection.html#a5d699af73b1e7ad4e3a5f6d26b8b6d15">isInCycle</a>(<a class="code" href="classSVF_1_1PointerAnalysis.html#a7c9b7e5fe37ae31ba84d167945ca57df">getPTACallGraph</a>()-&gt;getCallGraphNode(fun)-&gt;getId());</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; }</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; }</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;}</div><div class="ttc" id="classSVF_1_1MemObj_html"><div class="ttname"><a href="classSVF_1_1MemObj.html">SVF::MemObj</a></div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00411">SymbolTableInfo.h:411</a></div></div>
2602
+ <div class="fragment"><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;{</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1MemObj.html">MemObj</a>* obj = this-&gt;<a class="code" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>-&gt;<a class="code" href="classSVF_1_1SVFIR.html#a2dd4d5f704906270af13e7a07f900eb1">getObject</a>(<span class="keywordtype">id</span>);</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(obj &amp;&amp; <span class="stringliteral">&quot;object not found!!&quot;</span>);</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <span class="keywordflow">if</span>(obj-&gt;<a class="code" href="classSVF_1_1MemObj.html#af7316c697eafc71d5fc93108da4e2cee">isStack</a>())</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; {</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <span class="keywordflow">if</span>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a3bacb4f95c73e6d794901d01c6b65a83">AllocaInst</a>* local = SVFUtil::dyn_cast&lt;AllocaInst&gt;(obj-&gt;<a class="code" href="classSVF_1_1MemObj.html#a4da54ef60231d2e6c26669226b99d2f3">getValue</a>()))</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; {</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* fun = <a class="code" href="classSVF_1_1LLVMModuleSet.html#acf40310917909e4234282c0695a43160">LLVMModuleSet::getLLVMModuleSet</a>()-&gt;<a class="code" href="classSVF_1_1LLVMModuleSet.html#a547b3bc62de65b9dbfc6dee55c063dd7">getSVFFunction</a>(local-&gt;getFunction());</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PointerAnalysis.html#ae3b651799345d9d92b6d736dafb03f63">callGraphSCC</a>-&gt;<a class="code" href="classSVF_1_1SCCDetection.html#a5d699af73b1e7ad4e3a5f6d26b8b6d15">isInCycle</a>(<a class="code" href="classSVF_1_1PointerAnalysis.html#a7c9b7e5fe37ae31ba84d167945ca57df">getPTACallGraph</a>()-&gt;getCallGraphNode(fun)-&gt;getId());</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; }</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; }</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;}</div><div class="ttc" id="classSVF_1_1MemObj_html"><div class="ttname"><a href="classSVF_1_1MemObj.html">SVF::MemObj</a></div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00413">SymbolTableInfo.h:413</a></div></div>
2603
2603
  <div class="ttc" id="util_8h_html_a07d17d6d5d1074c0969bc5d3c3d1d84a"><div class="ttname"><a href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a></div><div class="ttdeci">#define assert(ex)</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00141">util.h:141</a></div></div>
2604
- <div class="ttc" id="classSVF_1_1MemObj_html_af7316c697eafc71d5fc93108da4e2cee"><div class="ttname"><a href="classSVF_1_1MemObj.html#af7316c697eafc71d5fc93108da4e2cee">SVF::MemObj::isStack</a></div><div class="ttdeci">bool isStack() const</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00753">SymbolTableInfo.cpp:753</a></div></div>
2604
+ <div class="ttc" id="classSVF_1_1MemObj_html_af7316c697eafc71d5fc93108da4e2cee"><div class="ttname"><a href="classSVF_1_1MemObj.html#af7316c697eafc71d5fc93108da4e2cee">SVF::MemObj::isStack</a></div><div class="ttdeci">bool isStack() const</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00733">SymbolTableInfo.cpp:733</a></div></div>
2605
2605
  <div class="ttc" id="classSVF_1_1SVFFunction_html"><div class="ttname"><a href="classSVF_1_1SVFFunction.html">SVF::SVFFunction</a></div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00233">BasicTypes.h:233</a></div></div>
2606
2606
  <div class="ttc" id="classSVF_1_1PointerAnalysis_html_a7c9b7e5fe37ae31ba84d167945ca57df"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a7c9b7e5fe37ae31ba84d167945ca57df">SVF::PointerAnalysis::getPTACallGraph</a></div><div class="ttdeci">PTACallGraph * getPTACallGraph() const</div><div class="ttdoc">Return call graph. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00178">PointerAnalysis.h:178</a></div></div>
2607
2607
  <div class="ttc" id="classSVF_1_1PointerAnalysis_html_ae3b651799345d9d92b6d736dafb03f63"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#ae3b651799345d9d92b6d736dafb03f63">SVF::PointerAnalysis::callGraphSCC</a></div><div class="ttdeci">CallGraphSCC * callGraphSCC</div><div class="ttdoc">SCC for CallGraph. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00159">PointerAnalysis.h:159</a></div></div>
2608
2608
  <div class="ttc" id="namespaceSVF_html_a3bacb4f95c73e6d794901d01c6b65a83"><div class="ttname"><a href="namespaceSVF.html#a3bacb4f95c73e6d794901d01c6b65a83">SVF::AllocaInst</a></div><div class="ttdeci">llvm::AllocaInst AllocaInst</div><div class="ttdoc">LLVM Instructions. </div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00147">BasicTypes.h:147</a></div></div>
2609
2609
  <div class="ttc" id="classSVF_1_1LLVMModuleSet_html_acf40310917909e4234282c0695a43160"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#acf40310917909e4234282c0695a43160">SVF::LLVMModuleSet::getLLVMModuleSet</a></div><div class="ttdeci">static LLVMModuleSet * getLLVMModuleSet()</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00069">LLVMModule.h:69</a></div></div>
2610
- <div class="ttc" id="classSVF_1_1MemObj_html_a4da54ef60231d2e6c26669226b99d2f3"><div class="ttname"><a href="classSVF_1_1MemObj.html#a4da54ef60231d2e6c26669226b99d2f3">SVF::MemObj::getValue</a></div><div class="ttdeci">const Value * getValue() const</div><div class="ttdoc">Get the reference value to this object. </div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00435">SymbolTableInfo.h:435</a></div></div>
2610
+ <div class="ttc" id="classSVF_1_1MemObj_html_a4da54ef60231d2e6c26669226b99d2f3"><div class="ttname"><a href="classSVF_1_1MemObj.html#a4da54ef60231d2e6c26669226b99d2f3">SVF::MemObj::getValue</a></div><div class="ttdeci">const Value * getValue() const</div><div class="ttdoc">Get the reference value to this object. </div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00437">SymbolTableInfo.h:437</a></div></div>
2611
2611
  <div class="ttc" id="classSVF_1_1SCCDetection_html_a5d699af73b1e7ad4e3a5f6d26b8b6d15"><div class="ttname"><a href="classSVF_1_1SCCDetection.html#a5d699af73b1e7ad4e3a5f6d26b8b6d15">SVF::SCCDetection::isInCycle</a></div><div class="ttdeci">bool isInCycle(NodeID n) const</div><div class="ttdoc">whether the node is in a cycle </div><div class="ttdef"><b>Definition:</b> <a href="SCC_8h_source.html#l00149">SCC.h:149</a></div></div>
2612
2612
  <div class="ttc" id="classSVF_1_1PointerAnalysis_html_adc7f5c71efb9cd1bec4f5ca9127654c3"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">SVF::PointerAnalysis::pag</a></div><div class="ttdeci">static SVFIR * pag</div><div class="ttdoc">SVFIR. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00147">PointerAnalysis.h:147</a></div></div>
2613
2613
  <div class="ttc" id="classSVF_1_1LLVMModuleSet_html_a547b3bc62de65b9dbfc6dee55c063dd7"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a547b3bc62de65b9dbfc6dee55c063dd7">SVF::LLVMModuleSet::getSVFFunction</a></div><div class="ttdeci">const SVFFunction * getSVFFunction(const Function *fun) const</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00112">LLVMModule.h:112</a></div></div>
@@ -2955,9 +2955,9 @@ Private Member Functions</h2></td></tr>
2955
2955
  <p>if the arg size does not match then we do not need to connect this parameter even if the callee is a variadic function (the first parameter of variadic function is its paramter number) </p>
2956
2956
 
2957
2957
  <p class="definition">Definition at line <a class="el" href="PointerAnalysis_8cpp_source.html#l00406">406</a> of file <a class="el" href="PointerAnalysis_8cpp_source.html">PointerAnalysis.cpp</a>.</p>
2958
- <div class="fragment"><div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160;{</div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160;</div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<a class="code" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>-&gt;<a class="code" href="classSVF_1_1SVFIR.html#a3dbe0b17694daa74f648a70e77efaf23">isIndirectCallSites</a>(cs) &amp;&amp; <span class="stringliteral">&quot;not an indirect callsite?&quot;</span>);</div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html">PointsTo::iterator</a> ii = target.<a class="code" href="classSVF_1_1PointsTo.html#aa53962e561399bf493d1f2b9137356f6">begin</a>(), ie = target.<a class="code" href="classSVF_1_1PointsTo.html#a8f741cdffbf3c5fe0f602cdca677dee6">end</a>();</div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160; ii != ie; ii++)</div><div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160; {</div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160;</div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1PointerAnalysis.html#ad2c8654a6672472f9bf17681aa9b60bb">getNumOfResolvedIndCallEdge</a>() &gt;= <a class="code" href="classSVF_1_1Options.html#ad6c29b05188c9e06aa89623c61865ed8">Options::IndirectCallLimit</a>)</div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; {</div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a6c06020737f7dff22a666b75c28c5e7d">wrnMsg</a>(<span class="stringliteral">&quot;Resolved Indirect Call Edges are Out-Of-Budget, please increase the limit&quot;</span>);</div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160; <span class="keywordflow">return</span>;</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160; }</div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160;</div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1ObjVar.html">ObjVar</a>* objPN = SVFUtil::dyn_cast&lt;ObjVar&gt;(<a class="code" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>-&gt;<a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(*ii)))</div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160; {</div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1MemObj.html">MemObj</a>* obj = <a class="code" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>-&gt;<a class="code" href="classSVF_1_1SVFIR.html#a2dd4d5f704906270af13e7a07f900eb1">getObject</a>(objPN);</div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160;</div><div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160; <span class="keywordflow">if</span>(obj-&gt;<a class="code" href="classSVF_1_1MemObj.html#ae1d14e2bf0be36cdadebf119822f607b">isFunction</a>())</div><div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160; {</div><div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* calleefun = SVFUtil::cast&lt;Function&gt;(obj-&gt;<a class="code" href="classSVF_1_1MemObj.html#a4da54ef60231d2e6c26669226b99d2f3">getValue</a>());</div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* callee = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a142e650415cb81011eb59dadd3cb0637">getDefFunForMultipleModule</a>(calleefun);</div><div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160;</div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1PointerAnalysis.html#ab541df6fc703c0b21c2c308584c0b7ff">matchArgs</a>(cs, callee) == <span class="keyword">false</span>)</div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160; <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160;</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160; <span class="keywordflow">if</span>(0 == <a class="code" href="classSVF_1_1PointerAnalysis.html#a1ca30dfa42702071b65d363c76d25cbe">getIndCallMap</a>()[cs].count(callee))</div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160; {</div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160; newEdges[cs].insert(callee);</div><div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160; <a class="code" href="classSVF_1_1PointerAnalysis.html#a1ca30dfa42702071b65d363c76d25cbe">getIndCallMap</a>()[cs].insert(callee);</div><div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160;</div><div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160; <a class="code" href="classSVF_1_1PointerAnalysis.html#ad47b39252e02c68dfb466d4f42dc7ebe">ptaCallGraph</a>-&gt;<a class="code" href="classSVF_1_1PTACallGraph.html#a46416c668e2f0099394e79f685ede758">addIndirectCallGraphEdge</a>(cs, cs-&gt;<a class="code" href="classSVF_1_1CallICFGNode.html#a18f4077d42b23c3fed35efc793b6102e">getCaller</a>(), callee);</div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160; <span class="comment">// FIXME: do we need to update llvm call graph here?</span></div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160; <span class="comment">// The indirect call is maintained by ourself, We may update llvm&#39;s when we need to</span></div><div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160; <span class="comment">//CallGraphNode* callgraphNode = callgraph-&gt;getOrInsertFunction(cs.getCaller());</span></div><div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160; <span class="comment">//callgraphNode-&gt;addCalledFunction(cs,callgraph-&gt;getOrInsertFunction(callee));</span></div><div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160; }</div><div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160; }</div><div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160; }</div><div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160; }</div><div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160;}</div><div class="ttc" id="classSVF_1_1MemObj_html"><div class="ttname"><a href="classSVF_1_1MemObj.html">SVF::MemObj</a></div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00411">SymbolTableInfo.h:411</a></div></div>
2958
+ <div class="fragment"><div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160;{</div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160;</div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<a class="code" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>-&gt;<a class="code" href="classSVF_1_1SVFIR.html#a3dbe0b17694daa74f648a70e77efaf23">isIndirectCallSites</a>(cs) &amp;&amp; <span class="stringliteral">&quot;not an indirect callsite?&quot;</span>);</div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html">PointsTo::iterator</a> ii = target.<a class="code" href="classSVF_1_1PointsTo.html#aa53962e561399bf493d1f2b9137356f6">begin</a>(), ie = target.<a class="code" href="classSVF_1_1PointsTo.html#a8f741cdffbf3c5fe0f602cdca677dee6">end</a>();</div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160; ii != ie; ii++)</div><div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160; {</div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160;</div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1PointerAnalysis.html#ad2c8654a6672472f9bf17681aa9b60bb">getNumOfResolvedIndCallEdge</a>() &gt;= <a class="code" href="classSVF_1_1Options.html#ad6c29b05188c9e06aa89623c61865ed8">Options::IndirectCallLimit</a>)</div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; {</div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a6c06020737f7dff22a666b75c28c5e7d">wrnMsg</a>(<span class="stringliteral">&quot;Resolved Indirect Call Edges are Out-Of-Budget, please increase the limit&quot;</span>);</div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160; <span class="keywordflow">return</span>;</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160; }</div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160;</div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1ObjVar.html">ObjVar</a>* objPN = SVFUtil::dyn_cast&lt;ObjVar&gt;(<a class="code" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>-&gt;<a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(*ii)))</div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160; {</div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1MemObj.html">MemObj</a>* obj = <a class="code" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>-&gt;<a class="code" href="classSVF_1_1SVFIR.html#a2dd4d5f704906270af13e7a07f900eb1">getObject</a>(objPN);</div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160;</div><div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160; <span class="keywordflow">if</span>(obj-&gt;<a class="code" href="classSVF_1_1MemObj.html#ae1d14e2bf0be36cdadebf119822f607b">isFunction</a>())</div><div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160; {</div><div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* calleefun = SVFUtil::cast&lt;Function&gt;(obj-&gt;<a class="code" href="classSVF_1_1MemObj.html#a4da54ef60231d2e6c26669226b99d2f3">getValue</a>());</div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* callee = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a142e650415cb81011eb59dadd3cb0637">getDefFunForMultipleModule</a>(calleefun);</div><div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160;</div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1PointerAnalysis.html#ab541df6fc703c0b21c2c308584c0b7ff">matchArgs</a>(cs, callee) == <span class="keyword">false</span>)</div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160; <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160;</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160; <span class="keywordflow">if</span>(0 == <a class="code" href="classSVF_1_1PointerAnalysis.html#a1ca30dfa42702071b65d363c76d25cbe">getIndCallMap</a>()[cs].count(callee))</div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160; {</div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160; newEdges[cs].insert(callee);</div><div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160; <a class="code" href="classSVF_1_1PointerAnalysis.html#a1ca30dfa42702071b65d363c76d25cbe">getIndCallMap</a>()[cs].insert(callee);</div><div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160;</div><div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160; <a class="code" href="classSVF_1_1PointerAnalysis.html#ad47b39252e02c68dfb466d4f42dc7ebe">ptaCallGraph</a>-&gt;<a class="code" href="classSVF_1_1PTACallGraph.html#a46416c668e2f0099394e79f685ede758">addIndirectCallGraphEdge</a>(cs, cs-&gt;<a class="code" href="classSVF_1_1CallICFGNode.html#a18f4077d42b23c3fed35efc793b6102e">getCaller</a>(), callee);</div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160; <span class="comment">// FIXME: do we need to update llvm call graph here?</span></div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160; <span class="comment">// The indirect call is maintained by ourself, We may update llvm&#39;s when we need to</span></div><div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160; <span class="comment">//CallGraphNode* callgraphNode = callgraph-&gt;getOrInsertFunction(cs.getCaller());</span></div><div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160; <span class="comment">//callgraphNode-&gt;addCalledFunction(cs,callgraph-&gt;getOrInsertFunction(callee));</span></div><div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160; }</div><div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160; }</div><div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160; }</div><div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160; }</div><div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160;}</div><div class="ttc" id="classSVF_1_1MemObj_html"><div class="ttname"><a href="classSVF_1_1MemObj.html">SVF::MemObj</a></div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00413">SymbolTableInfo.h:413</a></div></div>
2959
2959
  <div class="ttc" id="classSVF_1_1PTACallGraph_html_a46416c668e2f0099394e79f685ede758"><div class="ttname"><a href="classSVF_1_1PTACallGraph.html#a46416c668e2f0099394e79f685ede758">SVF::PTACallGraph::addIndirectCallGraphEdge</a></div><div class="ttdeci">void addIndirectCallGraphEdge(const CallICFGNode *cs, const SVFFunction *callerFun, const SVFFunction *calleeFun)</div><div class="ttdef"><b>Definition:</b> <a href="PTACallGraph_8cpp_source.html#l00185">PTACallGraph.cpp:185</a></div></div>
2960
- <div class="ttc" id="classSVF_1_1MemObj_html_ae1d14e2bf0be36cdadebf119822f607b"><div class="ttname"><a href="classSVF_1_1MemObj.html#ae1d14e2bf0be36cdadebf119822f607b">SVF::MemObj::isFunction</a></div><div class="ttdeci">bool isFunction() const</div><div class="ttdoc">object attributes methods </div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00738">SymbolTableInfo.cpp:738</a></div></div>
2960
+ <div class="ttc" id="classSVF_1_1MemObj_html_ae1d14e2bf0be36cdadebf119822f607b"><div class="ttname"><a href="classSVF_1_1MemObj.html#ae1d14e2bf0be36cdadebf119822f607b">SVF::MemObj::isFunction</a></div><div class="ttdeci">bool isFunction() const</div><div class="ttdoc">object attributes methods </div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00718">SymbolTableInfo.cpp:718</a></div></div>
2961
2961
  <div class="ttc" id="classSVF_1_1SVFIR_html_a3dbe0b17694daa74f648a70e77efaf23"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a3dbe0b17694daa74f648a70e77efaf23">SVF::SVFIR::isIndirectCallSites</a></div><div class="ttdeci">bool isIndirectCallSites(const CallICFGNode *cs) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00315">SVFIR.h:315</a></div></div>
2962
2962
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a142e650415cb81011eb59dadd3cb0637"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a142e650415cb81011eb59dadd3cb0637">SVF::SVFUtil::getDefFunForMultipleModule</a></div><div class="ttdeci">const SVFFunction * getDefFunForMultipleModule(const Function *fun)</div><div class="ttdoc">Get the definition of a function across multiple modules. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00256">SVFUtil.h:256</a></div></div>
2963
2963
  <div class="ttc" id="util_8h_html_a07d17d6d5d1074c0969bc5d3c3d1d84a"><div class="ttname"><a href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a></div><div class="ttdeci">#define assert(ex)</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00141">util.h:141</a></div></div>
@@ -2972,7 +2972,7 @@ Private Member Functions</h2></td></tr>
2972
2972
  <div class="ttc" id="classSVF_1_1PointerAnalysis_html_a1ca30dfa42702071b65d363c76d25cbe"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a1ca30dfa42702071b65d363c76d25cbe">SVF::PointerAnalysis::getIndCallMap</a></div><div class="ttdeci">CallEdgeMap &amp; getIndCallMap()</div><div class="ttdoc">Get callees from an indirect callsite. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00388">PointerAnalysis.h:388</a></div></div>
2973
2973
  <div class="ttc" id="classSVF_1_1PointerAnalysis_html_ad2c8654a6672472f9bf17681aa9b60bb"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#ad2c8654a6672472f9bf17681aa9b60bb">SVF::PointerAnalysis::getNumOfResolvedIndCallEdge</a></div><div class="ttdeci">u32_t getNumOfResolvedIndCallEdge() const</div><div class="ttdoc">Return number of resolved indirect call edges. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00173">PointerAnalysis.h:173</a></div></div>
2974
2974
  <div class="ttc" id="classSVF_1_1CallICFGNode_html_a18f4077d42b23c3fed35efc793b6102e"><div class="ttname"><a href="classSVF_1_1CallICFGNode.html#a18f4077d42b23c3fed35efc793b6102e">SVF::CallICFGNode::getCaller</a></div><div class="ttdeci">const SVFFunction * getCaller() const</div><div class="ttdoc">Return callsite. </div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00400">ICFGNode.h:400</a></div></div>
2975
- <div class="ttc" id="classSVF_1_1MemObj_html_a4da54ef60231d2e6c26669226b99d2f3"><div class="ttname"><a href="classSVF_1_1MemObj.html#a4da54ef60231d2e6c26669226b99d2f3">SVF::MemObj::getValue</a></div><div class="ttdeci">const Value * getValue() const</div><div class="ttdoc">Get the reference value to this object. </div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00435">SymbolTableInfo.h:435</a></div></div>
2975
+ <div class="ttc" id="classSVF_1_1MemObj_html_a4da54ef60231d2e6c26669226b99d2f3"><div class="ttname"><a href="classSVF_1_1MemObj.html#a4da54ef60231d2e6c26669226b99d2f3">SVF::MemObj::getValue</a></div><div class="ttdeci">const Value * getValue() const</div><div class="ttdoc">Get the reference value to this object. </div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00437">SymbolTableInfo.h:437</a></div></div>
2976
2976
  <div class="ttc" id="classSVF_1_1PointerAnalysis_html_adc7f5c71efb9cd1bec4f5ca9127654c3"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">SVF::PointerAnalysis::pag</a></div><div class="ttdeci">static SVFIR * pag</div><div class="ttdoc">SVFIR. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00147">PointerAnalysis.h:147</a></div></div>
2977
2977
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a6c06020737f7dff22a666b75c28c5e7d"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a6c06020737f7dff22a666b75c28c5e7d">SVF::SVFUtil::wrnMsg</a></div><div class="ttdeci">std::string wrnMsg(std::string 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#l00064">SVFUtil.cpp:64</a></div></div>
2978
2978
  <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#l00387">GenericGraph.h:387</a></div></div>
@@ -1691,8 +1691,8 @@ Additional Inherited Members</h2></td></tr>
1691
1691
  </div><div class="memdoc">
1692
1692
 
1693
1693
  <p class="definition">Definition at line <a class="el" href="SVFIR_8h_source.html#l00542">542</a> of file <a class="el" href="SVFIR_8h_source.html">SVFIR.h</a>.</p>
1694
- <div class="fragment"><div class="line"><a name="l00543"></a><span class="lineno"> 543</span>&#160; {</div><div class="line"><a name="l00544"></a><span class="lineno"> 544</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#a267169023fc4f8dd66b145f7231fec11">SymbolTableInfo::SymbolInfo</a>()-&gt;<a class="code" href="classSVF_1_1SymbolTableInfo.html#a8e40c578ccdd3a108a10a191a309bd18">createDummyObj</a>(i,type);</div><div class="line"><a name="l00545"></a><span class="lineno"> 545</span>&#160; }</div><div class="ttc" id="classSVF_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#l00115">SymbolTableInfo.cpp:115</a></div></div>
1695
- <div class="ttc" id="classSVF_1_1SymbolTableInfo_html_a8e40c578ccdd3a108a10a191a309bd18"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#a8e40c578ccdd3a108a10a191a309bd18">SVF::SymbolTableInfo::createDummyObj</a></div><div class="ttdeci">const MemObj * createDummyObj(SymID symId, const Type *type)</div><div class="ttdoc">Can only be invoked by SVFIR::addDummyNode() when creaing SVFIR from file. </div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00410">SymbolTableInfo.cpp:410</a></div></div>
1694
+ <div class="fragment"><div class="line"><a name="l00543"></a><span class="lineno"> 543</span>&#160; {</div><div class="line"><a name="l00544"></a><span class="lineno"> 544</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#a267169023fc4f8dd66b145f7231fec11">SymbolTableInfo::SymbolInfo</a>()-&gt;<a class="code" href="classSVF_1_1SymbolTableInfo.html#a8e40c578ccdd3a108a10a191a309bd18">createDummyObj</a>(i,type);</div><div class="line"><a name="l00545"></a><span class="lineno"> 545</span>&#160; }</div><div class="ttc" id="classSVF_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#l00107">SymbolTableInfo.cpp:107</a></div></div>
1695
+ <div class="ttc" id="classSVF_1_1SymbolTableInfo_html_a8e40c578ccdd3a108a10a191a309bd18"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#a8e40c578ccdd3a108a10a191a309bd18">SVF::SymbolTableInfo::createDummyObj</a></div><div class="ttdeci">const MemObj * createDummyObj(SymID symId, const Type *type)</div><div class="ttdoc">Can only be invoked by SVFIR::addDummyNode() when creaing SVFIR from file. </div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00390">SymbolTableInfo.cpp:390</a></div></div>
1696
1696
  </div><!-- fragment -->
1697
1697
  </div>
1698
1698
  </div>
@@ -1858,8 +1858,8 @@ Additional Inherited Members</h2></td></tr>
1858
1858
  <div class="ttc" id="namespaceSVF_html_a43a65e0d33af3c743294f7a1139d2301"><div class="ttname"><a href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">SVF::NodeID</a></div><div class="ttdeci">unsigned NodeID</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8h_source.html#l00018">MTAResultValidator.h:18</a></div></div>
1859
1859
  <div class="ttc" id="classSVF_1_1SVFIR_html_a83bc8ecf4c5d10af10af3c8c44b9882d"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a83bc8ecf4c5d10af10af3c8c44b9882d">SVF::SVFIR::addObjNode</a></div><div class="ttdeci">NodeID addObjNode(const Value *val, NodeID i)</div><div class="ttdoc">Add a memory obj node. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00504">SVFIR.h:504</a></div></div>
1860
1860
  <div class="ttc" id="classSVF_1_1FIObjVar_html"><div class="ttname"><a href="classSVF_1_1FIObjVar.html">SVF::FIObjVar</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00524">SVFVariables.h:524</a></div></div>
1861
- <div class="ttc" id="classSVF_1_1MemObj_html_a3ab6f65ffbf6442daac4d3f70f2d3cb1"><div class="ttname"><a href="classSVF_1_1MemObj.html#a3ab6f65ffbf6442daac4d3f70f2d3cb1">SVF::MemObj::getId</a></div><div class="ttdeci">SymID getId() const</div><div class="ttdoc">Get the memory object id. </div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00441">SymbolTableInfo.h:441</a></div></div>
1862
- <div class="ttc" id="classSVF_1_1MemObj_html_a4da54ef60231d2e6c26669226b99d2f3"><div class="ttname"><a href="classSVF_1_1MemObj.html#a4da54ef60231d2e6c26669226b99d2f3">SVF::MemObj::getValue</a></div><div class="ttdeci">const Value * getValue() const</div><div class="ttdoc">Get the reference value to this object. </div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00435">SymbolTableInfo.h:435</a></div></div>
1861
+ <div class="ttc" id="classSVF_1_1MemObj_html_a3ab6f65ffbf6442daac4d3f70f2d3cb1"><div class="ttname"><a href="classSVF_1_1MemObj.html#a3ab6f65ffbf6442daac4d3f70f2d3cb1">SVF::MemObj::getId</a></div><div class="ttdeci">SymID getId() const</div><div class="ttdoc">Get the memory object id. </div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00443">SymbolTableInfo.h:443</a></div></div>
1862
+ <div class="ttc" id="classSVF_1_1MemObj_html_a4da54ef60231d2e6c26669226b99d2f3"><div class="ttname"><a href="classSVF_1_1MemObj.html#a4da54ef60231d2e6c26669226b99d2f3">SVF::MemObj::getValue</a></div><div class="ttdeci">const Value * getValue() const</div><div class="ttdoc">Get the reference value to this object. </div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00437">SymbolTableInfo.h:437</a></div></div>
1863
1863
  </div><!-- fragment -->
1864
1864
  </div>
1865
1865
  </div>
@@ -1991,17 +1991,17 @@ Additional Inherited Members</h2></td></tr>
1991
1991
 
1992
1992
  <p class="definition">Definition at line <a class="el" href="SVFIR_8cpp_source.html#l00451">451</a> of file <a class="el" href="SVFIR_8cpp_source.html">SVFIR.cpp</a>.</p>
1993
1993
  <div class="fragment"><div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160;{</div><div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160; <span class="comment">//assert(findPAGNode(i) == false &amp;&amp; &quot;this node should not be created before&quot;);</span></div><div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> base = obj-&gt;<a class="code" href="classSVF_1_1MemObj.html#a3ab6f65ffbf6442daac4d3f70f2d3cb1">getId</a>();</div><div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(0==<a class="code" href="classSVF_1_1SVFIR.html#a148b51118eeba8117e033fea84b56be8">GepObjVarMap</a>.count(std::make_pair(base, ls))</div><div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160; &amp;&amp; <span class="stringliteral">&quot;this node should not be created before&quot;</span>);</div><div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160;</div><div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> gepId = <a class="code" href="classSVF_1_1NodeIDAllocator.html#a2bd3ca30fc9669d9a0327544bdb4557b">NodeIDAllocator::get</a>()-&gt;<a class="code" href="classSVF_1_1NodeIDAllocator.html#abaff066537f06c4891c199ebfc9624e3">allocateGepObjectId</a>(base, ls.<a class="code" href="classSVF_1_1LocationSet.html#ab987c41ffdae931d941f89d03ed09146">accumulateConstantFieldIdx</a>(), <a class="code" href="classSVF_1_1StInfo.html#ad6e599717952f8ccc2771cd72254b6b2">StInfo::getMaxFieldLimit</a>());</div><div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160; <a class="code" href="classSVF_1_1SVFIR.html#a148b51118eeba8117e033fea84b56be8">GepObjVarMap</a>[std::make_pair(base, ls)] = gepId;</div><div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160; <a class="code" href="classSVF_1_1GepObjVar.html">GepObjVar</a> *node = <span class="keyword">new</span> <a class="code" href="classSVF_1_1GepObjVar.html">GepObjVar</a>(obj, gepId, ls);</div><div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160; <a class="code" href="classSVF_1_1SVFIR.html#a3c014227661d8976714772205611c252">memToFieldsMap</a>[base].set(gepId);</div><div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFIR.html#a83bc8ecf4c5d10af10af3c8c44b9882d">addObjNode</a>(obj-&gt;<a class="code" href="classSVF_1_1MemObj.html#a4da54ef60231d2e6c26669226b99d2f3">getValue</a>(), node, gepId);</div><div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160;}</div><div class="ttc" id="classSVF_1_1SVFIR_html_a3c014227661d8976714772205611c252"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a3c014227661d8976714772205611c252">SVF::SVFIR::memToFieldsMap</a></div><div class="ttdeci">MemObjToFieldsMap memToFieldsMap</div><div class="ttdoc">Map a mem object id to all its fields. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00080">SVFIR.h:80</a></div></div>
1994
- <div class="ttc" id="classSVF_1_1LocationSet_html_ab987c41ffdae931d941f89d03ed09146"><div class="ttname"><a href="classSVF_1_1LocationSet.html#ab987c41ffdae931d941f89d03ed09146">SVF::LocationSet::accumulateConstantFieldIdx</a></div><div class="ttdeci">s64_t accumulateConstantFieldIdx() const</div><div class="ttdoc">Get methods. </div><div class="ttdef"><b>Definition:</b> <a href="LocationSet_8h_source.html#l00114">LocationSet.h:114</a></div></div>
1994
+ <div class="ttc" id="classSVF_1_1LocationSet_html_ab987c41ffdae931d941f89d03ed09146"><div class="ttname"><a href="classSVF_1_1LocationSet.html#ab987c41ffdae931d941f89d03ed09146">SVF::LocationSet::accumulateConstantFieldIdx</a></div><div class="ttdeci">s64_t accumulateConstantFieldIdx() const</div><div class="ttdoc">Get methods. </div><div class="ttdef"><b>Definition:</b> <a href="LocationSet_8h_source.html#l00090">LocationSet.h:90</a></div></div>
1995
1995
  <div class="ttc" id="namespaceSVF_html_a43a65e0d33af3c743294f7a1139d2301"><div class="ttname"><a href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">SVF::NodeID</a></div><div class="ttdeci">unsigned NodeID</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8h_source.html#l00018">MTAResultValidator.h:18</a></div></div>
1996
1996
  <div class="ttc" id="util_8h_html_a07d17d6d5d1074c0969bc5d3c3d1d84a"><div class="ttname"><a href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a></div><div class="ttdeci">#define assert(ex)</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00141">util.h:141</a></div></div>
1997
1997
  <div class="ttc" id="classSVF_1_1NodeIDAllocator_html_abaff066537f06c4891c199ebfc9624e3"><div class="ttname"><a href="classSVF_1_1NodeIDAllocator.html#abaff066537f06c4891c199ebfc9624e3">SVF::NodeIDAllocator::allocateGepObjectId</a></div><div class="ttdeci">NodeID allocateGepObjectId(NodeID base, u32_t offset, u32_t maxFieldLimit)</div><div class="ttdef"><b>Definition:</b> <a href="NodeIDAllocator_8cpp_source.html#l00086">NodeIDAllocator.cpp:86</a></div></div>
1998
1998
  <div class="ttc" id="classSVF_1_1SVFIR_html_a83bc8ecf4c5d10af10af3c8c44b9882d"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a83bc8ecf4c5d10af10af3c8c44b9882d">SVF::SVFIR::addObjNode</a></div><div class="ttdeci">NodeID addObjNode(const Value *val, NodeID i)</div><div class="ttdoc">Add a memory obj node. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00504">SVFIR.h:504</a></div></div>
1999
- <div class="ttc" id="classSVF_1_1StInfo_html_ad6e599717952f8ccc2771cd72254b6b2"><div class="ttname"><a href="classSVF_1_1StInfo.html#ad6e599717952f8ccc2771cd72254b6b2">SVF::StInfo::getMaxFieldLimit</a></div><div class="ttdeci">static u32_t getMaxFieldLimit()</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00541">SymbolTableInfo.h:541</a></div></div>
1999
+ <div class="ttc" id="classSVF_1_1StInfo_html_ad6e599717952f8ccc2771cd72254b6b2"><div class="ttname"><a href="classSVF_1_1StInfo.html#ad6e599717952f8ccc2771cd72254b6b2">SVF::StInfo::getMaxFieldLimit</a></div><div class="ttdeci">static u32_t getMaxFieldLimit()</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00543">SymbolTableInfo.h:543</a></div></div>
2000
2000
  <div class="ttc" id="classSVF_1_1GepObjVar_html"><div class="ttname"><a href="classSVF_1_1GepObjVar.html">SVF::GepObjVar</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00442">SVFVariables.h:442</a></div></div>
2001
2001
  <div class="ttc" id="classSVF_1_1SVFIR_html_a148b51118eeba8117e033fea84b56be8"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a148b51118eeba8117e033fea84b56be8">SVF::SVFIR::GepObjVarMap</a></div><div class="ttdeci">NodeLocationSetMap GepObjVarMap</div><div class="ttdoc">Map a pair&lt;base,off&gt; to a gep obj node id. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00079">SVFIR.h:79</a></div></div>
2002
- <div class="ttc" id="classSVF_1_1MemObj_html_a3ab6f65ffbf6442daac4d3f70f2d3cb1"><div class="ttname"><a href="classSVF_1_1MemObj.html#a3ab6f65ffbf6442daac4d3f70f2d3cb1">SVF::MemObj::getId</a></div><div class="ttdeci">SymID getId() const</div><div class="ttdoc">Get the memory object id. </div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00441">SymbolTableInfo.h:441</a></div></div>
2002
+ <div class="ttc" id="classSVF_1_1MemObj_html_a3ab6f65ffbf6442daac4d3f70f2d3cb1"><div class="ttname"><a href="classSVF_1_1MemObj.html#a3ab6f65ffbf6442daac4d3f70f2d3cb1">SVF::MemObj::getId</a></div><div class="ttdeci">SymID getId() const</div><div class="ttdoc">Get the memory object id. </div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00443">SymbolTableInfo.h:443</a></div></div>
2003
2003
  <div class="ttc" id="classSVF_1_1NodeIDAllocator_html_a2bd3ca30fc9669d9a0327544bdb4557b"><div class="ttname"><a href="classSVF_1_1NodeIDAllocator.html#a2bd3ca30fc9669d9a0327544bdb4557b">SVF::NodeIDAllocator::get</a></div><div class="ttdeci">static NodeIDAllocator * get(void)</div><div class="ttdoc">Return (singleton) allocator. </div><div class="ttdef"><b>Definition:</b> <a href="NodeIDAllocator_8cpp_source.html#l00025">NodeIDAllocator.cpp:25</a></div></div>
2004
- <div class="ttc" id="classSVF_1_1MemObj_html_a4da54ef60231d2e6c26669226b99d2f3"><div class="ttname"><a href="classSVF_1_1MemObj.html#a4da54ef60231d2e6c26669226b99d2f3">SVF::MemObj::getValue</a></div><div class="ttdeci">const Value * getValue() const</div><div class="ttdoc">Get the reference value to this object. </div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00435">SymbolTableInfo.h:435</a></div></div>
2004
+ <div class="ttc" id="classSVF_1_1MemObj_html_a4da54ef60231d2e6c26669226b99d2f3"><div class="ttname"><a href="classSVF_1_1MemObj.html#a4da54ef60231d2e6c26669226b99d2f3">SVF::MemObj::getValue</a></div><div class="ttdeci">const Value * getValue() const</div><div class="ttdoc">Get the reference value to this object. </div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00437">SymbolTableInfo.h:437</a></div></div>
2005
2005
  </div><!-- fragment -->
2006
2006
  </div>
2007
2007
  </div>
@@ -2303,7 +2303,7 @@ Additional Inherited Members</h2></td></tr>
2303
2303
  <div class="ttc" id="classSVF_1_1SVFIR_html_a5298f34143ec3a2e6bb74ebad668cbbc"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a5298f34143ec3a2e6bb74ebad668cbbc">SVF::SVFIR::getBaseValVar</a></div><div class="ttdeci">NodeID getBaseValVar(NodeID nodeId)</div><div class="ttdoc">Base and Offset methods for Value and Object node. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8cpp_source.html#l00522">SVFIR.cpp:522</a></div></div>
2304
2304
  <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#l00046">SVFVariables.h:46</a></div></div>
2305
2305
  <div class="ttc" id="classSVF_1_1IRGraph_html_a722f32d0a0a3bafdd97fc74819d2621e"><div class="ttname"><a href="classSVF_1_1IRGraph.html#a722f32d0a0a3bafdd97fc74819d2621e">SVF::IRGraph::addEdge</a></div><div class="ttdeci">bool addEdge(SVFVar *src, SVFVar *dst, SVFStmt *edge)</div><div class="ttdoc">Add an edge into the graph. </div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8cpp_source.html#l00044">IRGraph.cpp:44</a></div></div>
2306
- <div class="ttc" id="classSVF_1_1LocationSet_html"><div class="ttname"><a href="classSVF_1_1LocationSet.html">SVF::LocationSet</a></div><div class="ttdef"><b>Definition:</b> <a href="LocationSet_8h_source.html#l00072">LocationSet.h:72</a></div></div>
2306
+ <div class="ttc" id="classSVF_1_1LocationSet_html"><div class="ttname"><a href="classSVF_1_1LocationSet.html">SVF::LocationSet</a></div><div class="ttdef"><b>Definition:</b> <a href="LocationSet_8h_source.html#l00048">LocationSet.h:48</a></div></div>
2307
2307
  <div class="ttc" id="classSVF_1_1SVFIR_html_a292b5a477c1f87777730b591c271e523"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a292b5a477c1f87777730b591c271e523">SVF::SVFIR::addToStmt2TypeMap</a></div><div class="ttdeci">void addToStmt2TypeMap(SVFStmt *edge)</div><div class="ttdoc">Map a SVFStatement type to a set of corresponding SVF statements. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00450">SVFIR.h:450</a></div></div>
2308
2308
  <div class="ttc" id="classSVF_1_1IRGraph_html_abe0ab797a3da420e4d2f9136d64fb407"><div class="ttname"><a href="classSVF_1_1IRGraph.html#abe0ab797a3da420e4d2f9136d64fb407">SVF::IRGraph::hasNonlabeledEdge</a></div><div class="ttdeci">SVFStmt * hasNonlabeledEdge(SVFVar *src, SVFVar *dst, SVFStmt::PEDGEK kind)</div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8cpp_source.html#l00059">IRGraph.cpp:59</a></div></div>
2309
2309
  <div class="ttc" id="classSVF_1_1GenericGraph_html_a43c9c773bfa17abf481c33073e30d01b"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">SVF::GenericGraph&lt; SVFVar, SVFStmt &gt;::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#l00387">GenericGraph.h:387</a></div></div>
@@ -3205,7 +3205,7 @@ Additional Inherited Members</h2></td></tr>
3205
3205
  <div class="ttc" id="classSVF_1_1SVFIR_html_a5298f34143ec3a2e6bb74ebad668cbbc"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a5298f34143ec3a2e6bb74ebad668cbbc">SVF::SVFIR::getBaseValVar</a></div><div class="ttdeci">NodeID getBaseValVar(NodeID nodeId)</div><div class="ttdoc">Base and Offset methods for Value and Object node. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8cpp_source.html#l00522">SVFIR.cpp:522</a></div></div>
3206
3206
  <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#l00046">SVFVariables.h:46</a></div></div>
3207
3207
  <div class="ttc" id="classSVF_1_1IRGraph_html_a722f32d0a0a3bafdd97fc74819d2621e"><div class="ttname"><a href="classSVF_1_1IRGraph.html#a722f32d0a0a3bafdd97fc74819d2621e">SVF::IRGraph::addEdge</a></div><div class="ttdeci">bool addEdge(SVFVar *src, SVFVar *dst, SVFStmt *edge)</div><div class="ttdoc">Add an edge into the graph. </div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8cpp_source.html#l00044">IRGraph.cpp:44</a></div></div>
3208
- <div class="ttc" id="classSVF_1_1LocationSet_html"><div class="ttname"><a href="classSVF_1_1LocationSet.html">SVF::LocationSet</a></div><div class="ttdef"><b>Definition:</b> <a href="LocationSet_8h_source.html#l00072">LocationSet.h:72</a></div></div>
3208
+ <div class="ttc" id="classSVF_1_1LocationSet_html"><div class="ttname"><a href="classSVF_1_1LocationSet.html">SVF::LocationSet</a></div><div class="ttdef"><b>Definition:</b> <a href="LocationSet_8h_source.html#l00048">LocationSet.h:48</a></div></div>
3209
3209
  <div class="ttc" id="classSVF_1_1SVFIR_html_a292b5a477c1f87777730b591c271e523"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a292b5a477c1f87777730b591c271e523">SVF::SVFIR::addToStmt2TypeMap</a></div><div class="ttdeci">void addToStmt2TypeMap(SVFStmt *edge)</div><div class="ttdoc">Map a SVFStatement type to a set of corresponding SVF statements. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00450">SVFIR.h:450</a></div></div>
3210
3210
  <div class="ttc" id="classSVF_1_1IRGraph_html_abe0ab797a3da420e4d2f9136d64fb407"><div class="ttname"><a href="classSVF_1_1IRGraph.html#abe0ab797a3da420e4d2f9136d64fb407">SVF::IRGraph::hasNonlabeledEdge</a></div><div class="ttdeci">SVFStmt * hasNonlabeledEdge(SVFVar *src, SVFVar *dst, SVFStmt::PEDGEK kind)</div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8cpp_source.html#l00059">IRGraph.cpp:59</a></div></div>
3211
3211
  <div class="ttc" id="classSVF_1_1GenericGraph_html_a43c9c773bfa17abf481c33073e30d01b"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">SVF::GenericGraph&lt; SVFVar, SVFStmt &gt;::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#l00387">GenericGraph.h:387</a></div></div>
@@ -3324,7 +3324,7 @@ Additional Inherited Members</h2></td></tr>
3324
3324
  <p class="definition">Definition at line <a class="el" href="SVFIR_8cpp_source.html#l00480">480</a> of file <a class="el" href="SVFIR_8cpp_source.html">SVFIR.cpp</a>.</p>
3325
3325
  <div class="fragment"><div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160;{</div><div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> base = obj-&gt;<a class="code" href="classSVF_1_1MemObj.html#a3ab6f65ffbf6442daac4d3f70f2d3cb1">getId</a>();</div><div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFIR.html#a3c014227661d8976714772205611c252">memToFieldsMap</a>[base];</div><div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160;}</div><div class="ttc" id="classSVF_1_1SVFIR_html_a3c014227661d8976714772205611c252"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a3c014227661d8976714772205611c252">SVF::SVFIR::memToFieldsMap</a></div><div class="ttdeci">MemObjToFieldsMap memToFieldsMap</div><div class="ttdoc">Map a mem object id to all its fields. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00080">SVFIR.h:80</a></div></div>
3326
3326
  <div class="ttc" id="namespaceSVF_html_a43a65e0d33af3c743294f7a1139d2301"><div class="ttname"><a href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">SVF::NodeID</a></div><div class="ttdeci">unsigned NodeID</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8h_source.html#l00018">MTAResultValidator.h:18</a></div></div>
3327
- <div class="ttc" id="classSVF_1_1MemObj_html_a3ab6f65ffbf6442daac4d3f70f2d3cb1"><div class="ttname"><a href="classSVF_1_1MemObj.html#a3ab6f65ffbf6442daac4d3f70f2d3cb1">SVF::MemObj::getId</a></div><div class="ttdeci">SymID getId() const</div><div class="ttdoc">Get the memory object id. </div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00441">SymbolTableInfo.h:441</a></div></div>
3327
+ <div class="ttc" id="classSVF_1_1MemObj_html_a3ab6f65ffbf6442daac4d3f70f2d3cb1"><div class="ttname"><a href="classSVF_1_1MemObj.html#a3ab6f65ffbf6442daac4d3f70f2d3cb1">SVF::MemObj::getId</a></div><div class="ttdeci">SymID getId() const</div><div class="ttdoc">Get the memory object id. </div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00443">SymbolTableInfo.h:443</a></div></div>
3328
3328
  </div><!-- fragment -->
3329
3329
  </div>
3330
3330
  </div>
@@ -3443,7 +3443,7 @@ Additional Inherited Members</h2></td></tr>
3443
3443
 
3444
3444
  <p class="definition">Definition at line <a class="el" href="SVFIR_8h_source.html#l00410">410</a> of file <a class="el" href="SVFIR_8h_source.html">SVFIR.h</a>.</p>
3445
3445
  <div class="fragment"><div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160; {</div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFIR.html#af76a55c3b8255a81a566bdce35ffc749">getBaseObj</a>(<span class="keywordtype">id</span>)-&gt;<a class="code" href="classSVF_1_1MemObj.html#a3ab6f65ffbf6442daac4d3f70f2d3cb1">getId</a>();</div><div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160; }</div><div class="ttc" id="classSVF_1_1SVFIR_html_af76a55c3b8255a81a566bdce35ffc749"><div class="ttname"><a href="classSVF_1_1SVFIR.html#af76a55c3b8255a81a566bdce35ffc749">SVF::SVFIR::getBaseObj</a></div><div class="ttdeci">const MemObj * getBaseObj(NodeID id) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00414">SVFIR.h:414</a></div></div>
3446
- <div class="ttc" id="classSVF_1_1MemObj_html_a3ab6f65ffbf6442daac4d3f70f2d3cb1"><div class="ttname"><a href="classSVF_1_1MemObj.html#a3ab6f65ffbf6442daac4d3f70f2d3cb1">SVF::MemObj::getId</a></div><div class="ttdeci">SymID getId() const</div><div class="ttdoc">Get the memory object id. </div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00441">SymbolTableInfo.h:441</a></div></div>
3446
+ <div class="ttc" id="classSVF_1_1MemObj_html_a3ab6f65ffbf6442daac4d3f70f2d3cb1"><div class="ttname"><a href="classSVF_1_1MemObj.html#a3ab6f65ffbf6442daac4d3f70f2d3cb1">SVF::MemObj::getId</a></div><div class="ttdeci">SymID getId() const</div><div class="ttdoc">Get the memory object id. </div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00443">SymbolTableInfo.h:443</a></div></div>
3447
3447
  </div><!-- fragment -->
3448
3448
  </div>
3449
3449
  </div>
@@ -3679,13 +3679,13 @@ Additional Inherited Members</h2></td></tr>
3679
3679
  <p>Get all fields object nodes of an object If this object is collapsed into one field insensitive object Then only return this field insensitive object </p>
3680
3680
 
3681
3681
  <p class="definition">Definition at line <a class="el" href="SVFIR_8cpp_source.html#l00502">502</a> of file <a class="el" href="SVFIR_8cpp_source.html">SVFIR.cpp</a>.</p>
3682
- <div class="fragment"><div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160;{</div><div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* node = <a class="code" href="classSVF_1_1SVFIR.html#aaf86146b5e765d1f278b6d812bf913f5">pag</a>-&gt;<a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(<span class="keywordtype">id</span>);</div><div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(SVFUtil::isa&lt;ObjVar&gt;(node) &amp;&amp; <span class="stringliteral">&quot;need an object node&quot;</span>);</div><div class="line"><a name="l00506"></a><span class="lineno"> 506</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1MemObj.html">MemObj</a>* mem = SVFUtil::cast&lt;ObjVar&gt;(node)-&gt;<a class="code" href="classSVF_1_1IRGraph.html#a4f5792216c6f38c32dac5074862ffc50">getMemObj</a>();</div><div class="line"><a name="l00507"></a><span class="lineno"> 507</span>&#160; <span class="keywordflow">if</span>(mem-&gt;<a class="code" href="classSVF_1_1MemObj.html#a41d85883d44ad77832b020455951c6fc">isFieldInsensitive</a>())</div><div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160; {</div><div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160; <a class="code" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a> bs;</div><div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160; bs.set(<a class="code" href="classSVF_1_1SVFIR.html#a2878e202045b7f2c817185e8bf95d354">getFIObjVar</a>(mem));</div><div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160; <span class="keywordflow">return</span> bs;</div><div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160; }</div><div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFIR.html#a7276e82b4648ed0e1b3d1b8b37b24089">getAllFieldsObjVars</a>(mem);</div><div class="line"><a name="l00515"></a><span class="lineno"> 515</span>&#160;}</div><div class="ttc" id="classSVF_1_1MemObj_html"><div class="ttname"><a href="classSVF_1_1MemObj.html">SVF::MemObj</a></div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00411">SymbolTableInfo.h:411</a></div></div>
3682
+ <div class="fragment"><div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160;{</div><div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* node = <a class="code" href="classSVF_1_1SVFIR.html#aaf86146b5e765d1f278b6d812bf913f5">pag</a>-&gt;<a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(<span class="keywordtype">id</span>);</div><div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(SVFUtil::isa&lt;ObjVar&gt;(node) &amp;&amp; <span class="stringliteral">&quot;need an object node&quot;</span>);</div><div class="line"><a name="l00506"></a><span class="lineno"> 506</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1MemObj.html">MemObj</a>* mem = SVFUtil::cast&lt;ObjVar&gt;(node)-&gt;<a class="code" href="classSVF_1_1IRGraph.html#a4f5792216c6f38c32dac5074862ffc50">getMemObj</a>();</div><div class="line"><a name="l00507"></a><span class="lineno"> 507</span>&#160; <span class="keywordflow">if</span>(mem-&gt;<a class="code" href="classSVF_1_1MemObj.html#a41d85883d44ad77832b020455951c6fc">isFieldInsensitive</a>())</div><div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160; {</div><div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160; <a class="code" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a> bs;</div><div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160; bs.set(<a class="code" href="classSVF_1_1SVFIR.html#a2878e202045b7f2c817185e8bf95d354">getFIObjVar</a>(mem));</div><div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160; <span class="keywordflow">return</span> bs;</div><div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160; }</div><div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFIR.html#a7276e82b4648ed0e1b3d1b8b37b24089">getAllFieldsObjVars</a>(mem);</div><div class="line"><a name="l00515"></a><span class="lineno"> 515</span>&#160;}</div><div class="ttc" id="classSVF_1_1MemObj_html"><div class="ttname"><a href="classSVF_1_1MemObj.html">SVF::MemObj</a></div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00413">SymbolTableInfo.h:413</a></div></div>
3683
3683
  <div class="ttc" id="classSVF_1_1SVFIR_html_aaf86146b5e765d1f278b6d812bf913f5"><div class="ttname"><a href="classSVF_1_1SVFIR.html#aaf86146b5e765d1f278b6d812bf913f5">SVF::SVFIR::pag</a></div><div class="ttdeci">static SVFIR * pag</div><div class="ttdoc">Singleton pattern here to enable instance of SVFIR can only be created once. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00087">SVFIR.h:87</a></div></div>
3684
3684
  <div class="ttc" id="util_8h_html_a07d17d6d5d1074c0969bc5d3c3d1d84a"><div class="ttname"><a href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a></div><div class="ttdeci">#define assert(ex)</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00141">util.h:141</a></div></div>
3685
3685
  <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#l00046">SVFVariables.h:46</a></div></div>
3686
3686
  <div class="ttc" id="classSVF_1_1IRGraph_html_a4f5792216c6f38c32dac5074862ffc50"><div class="ttname"><a href="classSVF_1_1IRGraph.html#a4f5792216c6f38c32dac5074862ffc50">SVF::IRGraph::getMemObj</a></div><div class="ttdeci">const MemObj * getMemObj(const Value *val) const</div><div class="ttdoc">get MemObj according to LLVM value </div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#l00089">IRGraph.h:89</a></div></div>
3687
3687
  <div class="ttc" id="classSVF_1_1SVFIR_html_a7276e82b4648ed0e1b3d1b8b37b24089"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a7276e82b4648ed0e1b3d1b8b37b24089">SVF::SVFIR::getAllFieldsObjVars</a></div><div class="ttdeci">NodeBS &amp; getAllFieldsObjVars(const MemObj *obj)</div><div class="ttdoc">Get all fields of an object. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8cpp_source.html#l00480">SVFIR.cpp:480</a></div></div>
3688
- <div class="ttc" id="classSVF_1_1MemObj_html_a41d85883d44ad77832b020455951c6fc"><div class="ttname"><a href="classSVF_1_1MemObj.html#a41d85883d44ad77832b020455951c6fc">SVF::MemObj::isFieldInsensitive</a></div><div class="ttdeci">bool isFieldInsensitive() const</div><div class="ttdoc">Return true if its field limit is 0. </div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00727">SymbolTableInfo.cpp:727</a></div></div>
3688
+ <div class="ttc" id="classSVF_1_1MemObj_html_a41d85883d44ad77832b020455951c6fc"><div class="ttname"><a href="classSVF_1_1MemObj.html#a41d85883d44ad77832b020455951c6fc">SVF::MemObj::isFieldInsensitive</a></div><div class="ttdeci">bool isFieldInsensitive() const</div><div class="ttdoc">Return true if its field limit is 0. </div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00707">SymbolTableInfo.cpp:707</a></div></div>
3689
3689
  <div class="ttc" id="classSVF_1_1SVFIR_html_a2878e202045b7f2c817185e8bf95d354"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a2878e202045b7f2c817185e8bf95d354">SVF::SVFIR::getFIObjVar</a></div><div class="ttdeci">NodeID getFIObjVar(const MemObj *obj) const</div><div class="ttdoc">Get a field-insensitive obj SVFIR node according to a mem obj. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00364">SVFIR.h:364</a></div></div>
3690
3690
  <div class="ttc" id="namespaceSVF_html_a740396763e377643790c8b803ab3e4ea"><div class="ttname"><a href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">SVF::NodeBS</a></div><div class="ttdeci">llvm::SparseBitVector NodeBS</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00086">SVFBasicTypes.h:86</a></div></div>
3691
3691
  <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#l00387">GenericGraph.h:387</a></div></div>
@@ -3999,17 +3999,17 @@ Additional Inherited Members</h2></td></tr>
3999
3999
  <p>if this obj is field-insensitive, just return the field-insensitive node. </p>
4000
4000
 
4001
4001
  <p class="definition">Definition at line <a class="el" href="SVFIR_8cpp_source.html#l00427">427</a> of file <a class="el" href="SVFIR_8cpp_source.html">SVFIR.cpp</a>.</p>
4002
- <div class="fragment"><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160;{</div><div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> base = obj-&gt;<a class="code" href="classSVF_1_1MemObj.html#a3ab6f65ffbf6442daac4d3f70f2d3cb1">getId</a>();</div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160;</div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; <span class="keywordflow">if</span> (obj-&gt;<a class="code" href="classSVF_1_1MemObj.html#a41d85883d44ad77832b020455951c6fc">isFieldInsensitive</a>())</div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFIR.html#a2878e202045b7f2c817185e8bf95d354">getFIObjVar</a>(obj);</div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160;</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160; <a class="code" href="classSVF_1_1LocationSet.html">LocationSet</a> newLS = <a class="code" href="classSVF_1_1SymbolTableInfo.html#a267169023fc4f8dd66b145f7231fec11">SymbolTableInfo::SymbolInfo</a>()-&gt;<a class="code" href="classSVF_1_1SymbolTableInfo.html#a480a7565dcb5d9a94f4b0ffb44b127ee">getModulusOffset</a>(obj,ls);</div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160;</div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160; <span class="comment">// Base and first field are the same memory location.</span></div><div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Options.html#a8dc477d83a142a62b63207f6f240f224">Options::FirstFieldEqBase</a> &amp;&amp; newLS.<a class="code" href="classSVF_1_1LocationSet.html#ab987c41ffdae931d941f89d03ed09146">accumulateConstantFieldIdx</a>() == 0) <span class="keywordflow">return</span> base;</div><div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160;</div><div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160; NodeLocationSetMap::iterator iter = <a class="code" href="classSVF_1_1SVFIR.html#a148b51118eeba8117e033fea84b56be8">GepObjVarMap</a>.find(std::make_pair(base, newLS));</div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160; <span class="keywordflow">if</span> (iter == <a class="code" href="classSVF_1_1SVFIR.html#a148b51118eeba8117e033fea84b56be8">GepObjVarMap</a>.end())</div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFIR.html#a1ac1e7752e98abff7054f4caa709260d">addGepObjNode</a>(obj, newLS);</div><div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160; <span class="keywordflow">return</span> iter-&gt;second;</div><div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160;</div><div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160;}</div><div class="ttc" id="classSVF_1_1LocationSet_html_ab987c41ffdae931d941f89d03ed09146"><div class="ttname"><a href="classSVF_1_1LocationSet.html#ab987c41ffdae931d941f89d03ed09146">SVF::LocationSet::accumulateConstantFieldIdx</a></div><div class="ttdeci">s64_t accumulateConstantFieldIdx() const</div><div class="ttdoc">Get methods. </div><div class="ttdef"><b>Definition:</b> <a href="LocationSet_8h_source.html#l00114">LocationSet.h:114</a></div></div>
4003
- <div class="ttc" id="classSVF_1_1SymbolTableInfo_html_a480a7565dcb5d9a94f4b0ffb44b127ee"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#a480a7565dcb5d9a94f4b0ffb44b127ee">SVF::SymbolTableInfo::getModulusOffset</a></div><div class="ttdeci">virtual LocationSet getModulusOffset(const MemObj *obj, const LocationSet &amp;ls)</div><div class="ttdoc">Given an offset from a Gep Instruction, return it modulus offset by considering memory layout...</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00284">SymbolTableInfo.cpp:284</a></div></div>
4002
+ <div class="fragment"><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160;{</div><div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> base = obj-&gt;<a class="code" href="classSVF_1_1MemObj.html#a3ab6f65ffbf6442daac4d3f70f2d3cb1">getId</a>();</div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160;</div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; <span class="keywordflow">if</span> (obj-&gt;<a class="code" href="classSVF_1_1MemObj.html#a41d85883d44ad77832b020455951c6fc">isFieldInsensitive</a>())</div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFIR.html#a2878e202045b7f2c817185e8bf95d354">getFIObjVar</a>(obj);</div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160;</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160; <a class="code" href="classSVF_1_1LocationSet.html">LocationSet</a> newLS = <a class="code" href="classSVF_1_1SymbolTableInfo.html#a267169023fc4f8dd66b145f7231fec11">SymbolTableInfo::SymbolInfo</a>()-&gt;<a class="code" href="classSVF_1_1SymbolTableInfo.html#a480a7565dcb5d9a94f4b0ffb44b127ee">getModulusOffset</a>(obj,ls);</div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160;</div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160; <span class="comment">// Base and first field are the same memory location.</span></div><div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Options.html#a8dc477d83a142a62b63207f6f240f224">Options::FirstFieldEqBase</a> &amp;&amp; newLS.<a class="code" href="classSVF_1_1LocationSet.html#ab987c41ffdae931d941f89d03ed09146">accumulateConstantFieldIdx</a>() == 0) <span class="keywordflow">return</span> base;</div><div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160;</div><div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160; NodeLocationSetMap::iterator iter = <a class="code" href="classSVF_1_1SVFIR.html#a148b51118eeba8117e033fea84b56be8">GepObjVarMap</a>.find(std::make_pair(base, newLS));</div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160; <span class="keywordflow">if</span> (iter == <a class="code" href="classSVF_1_1SVFIR.html#a148b51118eeba8117e033fea84b56be8">GepObjVarMap</a>.end())</div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFIR.html#a1ac1e7752e98abff7054f4caa709260d">addGepObjNode</a>(obj, newLS);</div><div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160; <span class="keywordflow">return</span> iter-&gt;second;</div><div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160;</div><div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160;}</div><div class="ttc" id="classSVF_1_1LocationSet_html_ab987c41ffdae931d941f89d03ed09146"><div class="ttname"><a href="classSVF_1_1LocationSet.html#ab987c41ffdae931d941f89d03ed09146">SVF::LocationSet::accumulateConstantFieldIdx</a></div><div class="ttdeci">s64_t accumulateConstantFieldIdx() const</div><div class="ttdoc">Get methods. </div><div class="ttdef"><b>Definition:</b> <a href="LocationSet_8h_source.html#l00090">LocationSet.h:90</a></div></div>
4003
+ <div class="ttc" id="classSVF_1_1SymbolTableInfo_html_a480a7565dcb5d9a94f4b0ffb44b127ee"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#a480a7565dcb5d9a94f4b0ffb44b127ee">SVF::SymbolTableInfo::getModulusOffset</a></div><div class="ttdeci">virtual LocationSet getModulusOffset(const MemObj *obj, const LocationSet &amp;ls)</div><div class="ttdoc">Given an offset from a Gep Instruction, return it modulus offset by considering memory layout...</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00265">SymbolTableInfo.cpp:265</a></div></div>
4004
4004
  <div class="ttc" id="namespaceSVF_html_a43a65e0d33af3c743294f7a1139d2301"><div class="ttname"><a href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">SVF::NodeID</a></div><div class="ttdeci">unsigned NodeID</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8h_source.html#l00018">MTAResultValidator.h:18</a></div></div>
4005
4005
  <div class="ttc" id="classSVF_1_1SVFIR_html_a1ac1e7752e98abff7054f4caa709260d"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a1ac1e7752e98abff7054f4caa709260d">SVF::SVFIR::addGepObjNode</a></div><div class="ttdeci">NodeID addGepObjNode(const MemObj *obj, const LocationSet &amp;ls)</div><div class="ttdoc">Add a field obj node, this method can only invoked by getGepObjVar. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8cpp_source.html#l00451">SVFIR.cpp:451</a></div></div>
4006
- <div class="ttc" id="classSVF_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#l00115">SymbolTableInfo.cpp:115</a></div></div>
4006
+ <div class="ttc" id="classSVF_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#l00107">SymbolTableInfo.cpp:107</a></div></div>
4007
4007
  <div class="ttc" id="classSVF_1_1SVFIR_html_a148b51118eeba8117e033fea84b56be8"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a148b51118eeba8117e033fea84b56be8">SVF::SVFIR::GepObjVarMap</a></div><div class="ttdeci">NodeLocationSetMap GepObjVarMap</div><div class="ttdoc">Map a pair&lt;base,off&gt; to a gep obj node id. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00079">SVFIR.h:79</a></div></div>
4008
4008
  <div class="ttc" id="classSVF_1_1Options_html_a8dc477d83a142a62b63207f6f240f224"><div class="ttname"><a href="classSVF_1_1Options.html#a8dc477d83a142a62b63207f6f240f224">SVF::Options::FirstFieldEqBase</a></div><div class="ttdeci">static const llvm::cl::opt&lt; bool &gt; FirstFieldEqBase</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00113">Options.h:113</a></div></div>
4009
- <div class="ttc" id="classSVF_1_1MemObj_html_a41d85883d44ad77832b020455951c6fc"><div class="ttname"><a href="classSVF_1_1MemObj.html#a41d85883d44ad77832b020455951c6fc">SVF::MemObj::isFieldInsensitive</a></div><div class="ttdeci">bool isFieldInsensitive() const</div><div class="ttdoc">Return true if its field limit is 0. </div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00727">SymbolTableInfo.cpp:727</a></div></div>
4009
+ <div class="ttc" id="classSVF_1_1MemObj_html_a41d85883d44ad77832b020455951c6fc"><div class="ttname"><a href="classSVF_1_1MemObj.html#a41d85883d44ad77832b020455951c6fc">SVF::MemObj::isFieldInsensitive</a></div><div class="ttdeci">bool isFieldInsensitive() const</div><div class="ttdoc">Return true if its field limit is 0. </div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00707">SymbolTableInfo.cpp:707</a></div></div>
4010
4010
  <div class="ttc" id="classSVF_1_1SVFIR_html_a2878e202045b7f2c817185e8bf95d354"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a2878e202045b7f2c817185e8bf95d354">SVF::SVFIR::getFIObjVar</a></div><div class="ttdeci">NodeID getFIObjVar(const MemObj *obj) const</div><div class="ttdoc">Get a field-insensitive obj SVFIR node according to a mem obj. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00364">SVFIR.h:364</a></div></div>
4011
- <div class="ttc" id="classSVF_1_1MemObj_html_a3ab6f65ffbf6442daac4d3f70f2d3cb1"><div class="ttname"><a href="classSVF_1_1MemObj.html#a3ab6f65ffbf6442daac4d3f70f2d3cb1">SVF::MemObj::getId</a></div><div class="ttdeci">SymID getId() const</div><div class="ttdoc">Get the memory object id. </div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00441">SymbolTableInfo.h:441</a></div></div>
4012
- <div class="ttc" id="classSVF_1_1LocationSet_html"><div class="ttname"><a href="classSVF_1_1LocationSet.html">SVF::LocationSet</a></div><div class="ttdef"><b>Definition:</b> <a href="LocationSet_8h_source.html#l00072">LocationSet.h:72</a></div></div>
4011
+ <div class="ttc" id="classSVF_1_1MemObj_html_a3ab6f65ffbf6442daac4d3f70f2d3cb1"><div class="ttname"><a href="classSVF_1_1MemObj.html#a3ab6f65ffbf6442daac4d3f70f2d3cb1">SVF::MemObj::getId</a></div><div class="ttdeci">SymID getId() const</div><div class="ttdoc">Get the memory object id. </div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00443">SymbolTableInfo.h:443</a></div></div>
4012
+ <div class="ttc" id="classSVF_1_1LocationSet_html"><div class="ttname"><a href="classSVF_1_1LocationSet.html">SVF::LocationSet</a></div><div class="ttdef"><b>Definition:</b> <a href="LocationSet_8h_source.html#l00048">LocationSet.h:48</a></div></div>
4013
4013
  </div><!-- fragment -->
4014
4014
  </div>
4015
4015
  </div>
@@ -4337,7 +4337,7 @@ Additional Inherited Members</h2></td></tr>
4337
4337
  <div class="ttc" id="classSVF_1_1GepStmt_html_abec33091e0dac0cdd5b95b6d7b0db3d8"><div class="ttname"><a href="classSVF_1_1GepStmt.html#abec33091e0dac0cdd5b95b6d7b0db3d8">SVF::GepStmt::getLocationSet</a></div><div class="ttdeci">const LocationSet &amp; getLocationSet() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00435">SVFStatements.h:435</a></div></div>
4338
4338
  <div class="ttc" id="classSVF_1_1GepStmt_html_a0ddf180a0f7ba64fc8655687910e3788"><div class="ttname"><a href="classSVF_1_1GepStmt.html#a0ddf180a0f7ba64fc8655687910e3788">SVF::GepStmt::isVariantFieldGep</a></div><div class="ttdeci">bool isVariantFieldGep() const</div><div class="ttdoc">Gep statement with a variant field index (pointer arithmetic) for struct field access. </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00459">SVFStatements.h:459</a></div></div>
4339
4339
  <div class="ttc" id="classSVF_1_1SVFVar_html_a76964ef7d4842a469d7720881499d8a6"><div class="ttname"><a href="classSVF_1_1SVFVar.html#a76964ef7d4842a469d7720881499d8a6">SVF::SVFVar::getIncomingEdges</a></div><div class="ttdeci">SVFStmt::SVFStmtSetTy &amp; getIncomingEdges(SVFStmt::PEDGEK kind)</div><div class="ttdoc">Get incoming SVFIR statements (edges) </div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00153">SVFVariables.h:153</a></div></div>
4340
- <div class="ttc" id="classSVF_1_1LocationSet_html"><div class="ttname"><a href="classSVF_1_1LocationSet.html">SVF::LocationSet</a></div><div class="ttdef"><b>Definition:</b> <a href="LocationSet_8h_source.html#l00072">LocationSet.h:72</a></div></div>
4340
+ <div class="ttc" id="classSVF_1_1LocationSet_html"><div class="ttname"><a href="classSVF_1_1LocationSet.html">SVF::LocationSet</a></div><div class="ttdef"><b>Definition:</b> <a href="LocationSet_8h_source.html#l00048">LocationSet.h:48</a></div></div>
4341
4341
  <div class="ttc" id="classSVF_1_1GenericGraph_html_a43c9c773bfa17abf481c33073e30d01b"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">SVF::GenericGraph&lt; SVFVar, SVFStmt &gt;::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#l00387">GenericGraph.h:387</a></div></div>
4342
4342
  </div><!-- fragment -->
4343
4343
  </div>
@@ -4399,7 +4399,7 @@ Additional Inherited Members</h2></td></tr>
4399
4399
 
4400
4400
  <p class="definition">Definition at line <a class="el" href="SVFIR_8h_source.html#l00155">155</a> of file <a class="el" href="SVFIR_8h_source.html">SVFIR.h</a>.</p>
4401
4401
  <div class="fragment"><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; {</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#a267169023fc4f8dd66b145f7231fec11">SymbolTableInfo::SymbolInfo</a>()-&gt;<a class="code" href="classSVF_1_1SymbolTableInfo.html#a40387a4893ae5caf58d6f786533d2f44">getModule</a>();</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; }</div><div class="ttc" id="classSVF_1_1SymbolTableInfo_html_a40387a4893ae5caf58d6f786533d2f44"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#a40387a4893ae5caf58d6f786533d2f44">SVF::SymbolTableInfo::getModule</a></div><div class="ttdeci">SVFModule * getModule()</div><div class="ttdoc">Module. </div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00158">SymbolTableInfo.h:158</a></div></div>
4402
- <div class="ttc" id="classSVF_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#l00115">SymbolTableInfo.cpp:115</a></div></div>
4402
+ <div class="ttc" id="classSVF_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#l00107">SymbolTableInfo.cpp:107</a></div></div>
4403
4403
  </div><!-- fragment -->
4404
4404
  </div>
4405
4405
  </div>