svf-tools 1.0.583 → 1.0.585

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 (210) hide show
  1. package/SVF-doxygen/html/html/AndersenStat_8cpp_source.html +3 -3
  2. package/SVF-doxygen/html/html/BreakConstantExpr_8cpp.html +1 -1
  3. package/SVF-doxygen/html/html/BreakConstantExpr_8cpp_source.html +3 -3
  4. package/SVF-doxygen/html/html/BreakConstantExpr_8h_source.html +3 -3
  5. package/SVF-doxygen/html/html/CFLAlias_8h_source.html +1 -1
  6. package/SVF-doxygen/html/html/CFLGraphBuilder_8cpp_source.html +3 -3
  7. package/SVF-doxygen/html/html/CHGBuilder_8cpp_source.html +6 -6
  8. package/SVF-doxygen/html/html/CHGBuilder_8h_source.html +1 -1
  9. package/SVF-doxygen/html/html/CPPUtil_8cpp_source.html +2 -2
  10. package/SVF-doxygen/html/html/CallGraphBuilder_8cpp_source.html +2 -2
  11. package/SVF-doxygen/html/html/ConsG_8h_source.html +8 -8
  12. package/SVF-doxygen/html/html/ContextDDA_8cpp_source.html +3 -3
  13. package/SVF-doxygen/html/html/DCHG_8cpp_source.html +14 -14
  14. package/SVF-doxygen/html/html/DCHG_8h_source.html +5 -5
  15. package/SVF-doxygen/html/html/DDAClient_8cpp_source.html +2 -2
  16. package/SVF-doxygen/html/html/DDAClient_8h_source.html +2 -2
  17. package/SVF-doxygen/html/html/DDAPass_8cpp_source.html +3 -3
  18. package/SVF-doxygen/html/html/DDAStat_8cpp_source.html +1 -1
  19. package/SVF-doxygen/html/html/DDAVFSolver_8h_source.html +8 -8
  20. package/SVF-doxygen/html/html/DataFlowUtil_8cpp_source.html +5 -5
  21. package/SVF-doxygen/html/html/DataFlowUtil_8h_source.html +7 -7
  22. package/SVF-doxygen/html/html/FlowSensitiveStat_8cpp_source.html +3 -3
  23. package/SVF-doxygen/html/html/GEPTypeBridgeIterator_8h_source.html +1 -1
  24. package/SVF-doxygen/html/html/ICFGBuilder_8cpp_source.html +14 -10
  25. package/SVF-doxygen/html/html/ICFGBuilder_8h_source.html +9 -9
  26. package/SVF-doxygen/html/html/ICFG_8cpp_source.html +35 -42
  27. package/SVF-doxygen/html/html/ICFG_8h_source.html +29 -28
  28. package/SVF-doxygen/html/html/IRAnnotator_8h_source.html +3 -3
  29. package/SVF-doxygen/html/html/LLVMLoopAnalysis_8cpp_source.html +2 -2
  30. package/SVF-doxygen/html/html/LLVMModule_8cpp_source.html +12 -12
  31. package/SVF-doxygen/html/html/LLVMModule_8h_source.html +2 -2
  32. package/SVF-doxygen/html/html/LLVMUtil_8cpp_source.html +8 -8
  33. package/SVF-doxygen/html/html/LLVMUtil_8h_source.html +4 -4
  34. package/SVF-doxygen/html/html/LeakChecker_8cpp_source.html +5 -5
  35. package/SVF-doxygen/html/html/LockAnalysis_8cpp_source.html +1 -1
  36. package/SVF-doxygen/html/html/LockResultValidator_8cpp_source.html +5 -5
  37. package/SVF-doxygen/html/html/MHP_8cpp.html +1 -1
  38. package/SVF-doxygen/html/html/MHP_8cpp_source.html +6 -6
  39. package/SVF-doxygen/html/html/MHP_8h_source.html +2 -2
  40. package/SVF-doxygen/html/html/MTAAnnotator_8cpp_source.html +4 -4
  41. package/SVF-doxygen/html/html/MTAResultValidator_8cpp_source.html +4 -4
  42. package/SVF-doxygen/html/html/MTAResultValidator_8h_source.html +1 -1
  43. package/SVF-doxygen/html/html/MTAStat_8cpp_source.html +1 -1
  44. package/SVF-doxygen/html/html/MTA_8cpp_source.html +5 -5
  45. package/SVF-doxygen/html/html/MTA_8h_source.html +4 -4
  46. package/SVF-doxygen/html/html/MemRegion_8cpp_source.html +15 -15
  47. package/SVF-doxygen/html/html/MemSSA_8cpp_source.html +2 -2
  48. package/SVF-doxygen/html/html/PCG_8cpp_source.html +1 -1
  49. package/SVF-doxygen/html/html/PCG_8h_source.html +1 -1
  50. package/SVF-doxygen/html/html/PointerAnalysisImpl_8cpp_source.html +5 -5
  51. package/SVF-doxygen/html/html/PointerAnalysisImpl_8h_source.html +2 -2
  52. package/SVF-doxygen/html/html/PointerAnalysis_8cpp_source.html +5 -5
  53. package/SVF-doxygen/html/html/PointerAnalysis_8h_source.html +12 -12
  54. package/SVF-doxygen/html/html/SVF-FE_2BasicTypes_8h.html +1 -0
  55. package/SVF-doxygen/html/html/SVF-FE_2BasicTypes_8h_source.html +85 -85
  56. package/SVF-doxygen/html/html/SVFGOPT_8h_source.html +4 -4
  57. package/SVF-doxygen/html/html/SVFG_8cpp_source.html +12 -12
  58. package/SVF-doxygen/html/html/SVFG_8h_source.html +5 -5
  59. package/SVF-doxygen/html/html/SVFIRBuilder_8cpp_source.html +30 -27
  60. package/SVF-doxygen/html/html/SVFIRBuilder_8h_source.html +95 -95
  61. package/SVF-doxygen/html/html/SVFIR_8cpp_source.html +40 -44
  62. package/SVF-doxygen/html/html/SVFIR_8h_source.html +112 -109
  63. package/SVF-doxygen/html/html/SVFStat_8cpp_source.html +6 -6
  64. package/SVF-doxygen/html/html/SaberCondAllocator_8cpp_source.html +1 -1
  65. package/SVF-doxygen/html/html/SaberCondAllocator_8h_source.html +2 -2
  66. package/SVF-doxygen/html/html/SaberSVFGBuilder_8cpp_source.html +4 -4
  67. package/SVF-doxygen/html/html/SrcSnkDDA_8cpp_source.html +2 -2
  68. package/SVF-doxygen/html/html/SymbolTableBuilder_8cpp_source.html +16 -16
  69. package/SVF-doxygen/html/html/SymbolTableBuilder_8h_source.html +1 -1
  70. package/SVF-doxygen/html/html/TCT_8cpp_source.html +4 -4
  71. package/SVF-doxygen/html/html/TCT_8h_source.html +4 -4
  72. package/SVF-doxygen/html/html/ThreadCallGraph_8cpp_source.html +1 -1
  73. package/SVF-doxygen/html/html/TypeAnalysis_8cpp_source.html +2 -2
  74. package/SVF-doxygen/html/html/VFG_8cpp_source.html +15 -15
  75. package/SVF-doxygen/html/html/VFG_8h_source.html +9 -9
  76. package/SVF-doxygen/html/html/VersionedFlowSensitiveStat_8cpp_source.html +3 -3
  77. package/SVF-doxygen/html/html/VersionedFlowSensitive_8cpp_source.html +3 -3
  78. package/SVF-doxygen/html/html/WPAPass_8cpp_source.html +4 -4
  79. package/SVF-doxygen/html/html/WPAPass_8h_source.html +1 -1
  80. package/SVF-doxygen/html/html/cfl_8cpp.html +1 -2
  81. package/SVF-doxygen/html/html/cfl_8cpp_source.html +2 -2
  82. package/SVF-doxygen/html/html/classSVF_1_1AliasDDAClient.html +1 -1
  83. package/SVF-doxygen/html/html/classSVF_1_1Andersen.html +18 -18
  84. package/SVF-doxygen/html/html/classSVF_1_1AndersenBase.html +1 -1
  85. package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR.html +1 -1
  86. package/SVF-doxygen/html/html/classSVF_1_1AndersenStat.html +3 -3
  87. package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl.html +9 -9
  88. package/SVF-doxygen/html/html/classSVF_1_1BreakConstantGEPs.html +3 -3
  89. package/SVF-doxygen/html/html/classSVF_1_1CFLAlias.html +18 -18
  90. package/SVF-doxygen/html/html/classSVF_1_1CHGBuilder.html +10 -10
  91. package/SVF-doxygen/html/html/classSVF_1_1CallGraphBuilder.html +2 -2
  92. package/SVF-doxygen/html/html/classSVF_1_1CondPTAImpl.html +2 -2
  93. package/SVF-doxygen/html/html/classSVF_1_1ConstraintGraph.html +8 -8
  94. package/SVF-doxygen/html/html/classSVF_1_1ContextDDA.html +3 -3
  95. package/SVF-doxygen/html/html/classSVF_1_1DCHGraph.html +47 -47
  96. package/SVF-doxygen/html/html/classSVF_1_1DDAClient.html +3 -3
  97. package/SVF-doxygen/html/html/classSVF_1_1DDAPass.html +3 -4
  98. package/SVF-doxygen/html/html/classSVF_1_1DDAStat.html +1 -1
  99. package/SVF-doxygen/html/html/classSVF_1_1DDAVFSolver.html +10 -10
  100. package/SVF-doxygen/html/html/classSVF_1_1FlowDDA.html +1 -1
  101. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive.html +5 -5
  102. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveStat.html +4 -4
  103. package/SVF-doxygen/html/html/classSVF_1_1ForkJoinAnalysis.html +4 -4
  104. package/SVF-doxygen/html/html/classSVF_1_1FunptrDDAClient.html +1 -1
  105. package/SVF-doxygen/html/html/classSVF_1_1ICFG-members.html +78 -77
  106. package/SVF-doxygen/html/html/classSVF_1_1ICFG.html +111 -86
  107. package/SVF-doxygen/html/html/classSVF_1_1ICFGBuilder.html +42 -36
  108. package/SVF-doxygen/html/html/classSVF_1_1ICFGPrinter-members.html +68 -67
  109. package/SVF-doxygen/html/html/classSVF_1_1ICFGPrinter.html +3 -1
  110. package/SVF-doxygen/html/html/classSVF_1_1IRAnnotator.html +8 -8
  111. package/SVF-doxygen/html/html/classSVF_1_1IteratedDominanceFrontier.html +2 -2
  112. package/SVF-doxygen/html/html/classSVF_1_1LLVMLoopAnalysis.html +2 -2
  113. package/SVF-doxygen/html/html/classSVF_1_1LLVMModuleSet.html +16 -16
  114. package/SVF-doxygen/html/html/classSVF_1_1LeakChecker.html +5 -5
  115. package/SVF-doxygen/html/html/classSVF_1_1LockAnalysis.html +1 -1
  116. package/SVF-doxygen/html/html/classSVF_1_1LockResultValidator.html +5 -5
  117. package/SVF-doxygen/html/html/classSVF_1_1MHP.html +2 -2
  118. package/SVF-doxygen/html/html/classSVF_1_1MRGenerator.html +20 -20
  119. package/SVF-doxygen/html/html/classSVF_1_1MTA.html +4 -5
  120. package/SVF-doxygen/html/html/classSVF_1_1MTAAnnotator.html +4 -4
  121. package/SVF-doxygen/html/html/classSVF_1_1MTAResultValidator.html +6 -6
  122. package/SVF-doxygen/html/html/classSVF_1_1MTAStat.html +1 -1
  123. package/SVF-doxygen/html/html/classSVF_1_1MemSSA.html +6 -6
  124. package/SVF-doxygen/html/html/classSVF_1_1MergeFunctionRets.html +1 -1
  125. package/SVF-doxygen/html/html/classSVF_1_1PAGBuilderFromFile.html +12 -12
  126. package/SVF-doxygen/html/html/classSVF_1_1PCG.html +2 -2
  127. package/SVF-doxygen/html/html/classSVF_1_1PTACFInfoBuilder.html +4 -4
  128. package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.html +21 -21
  129. package/SVF-doxygen/html/html/classSVF_1_1RaceResultValidator.html +1 -1
  130. package/SVF-doxygen/html/html/classSVF_1_1SVFG.html +23 -23
  131. package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT.html +5 -5
  132. package/SVF-doxygen/html/html/classSVF_1_1SVFIR-members.html +15 -12
  133. package/SVF-doxygen/html/html/classSVF_1_1SVFIR.html +355 -268
  134. package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder-members.html +3 -3
  135. package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder.html +232 -224
  136. package/SVF-doxygen/html/html/classSVF_1_1SVFStat.html +6 -6
  137. package/SVF-doxygen/html/html/classSVF_1_1SaberCondAllocator.html +3 -3
  138. package/SVF-doxygen/html/html/classSVF_1_1SaberSVFGBuilder.html +4 -4
  139. package/SVF-doxygen/html/html/classSVF_1_1SrcSnkDDA.html +1 -2
  140. package/SVF-doxygen/html/html/classSVF_1_1SymbolTableBuilder.html +19 -19
  141. package/SVF-doxygen/html/html/classSVF_1_1TCT.html +3 -3
  142. package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraph.html +1 -1
  143. package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraphBuilder.html +2 -2
  144. package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis.html +2 -2
  145. package/SVF-doxygen/html/html/classSVF_1_1VFG.html +30 -30
  146. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive.html +5 -5
  147. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitiveStat.html +4 -4
  148. package/SVF-doxygen/html/html/classSVF_1_1WPAPass.html +7 -8
  149. package/SVF-doxygen/html/html/functions_a.html +8 -5
  150. package/SVF-doxygen/html/html/functions_b.html +1 -1
  151. package/SVF-doxygen/html/html/functions_func.html +12 -9
  152. package/SVF-doxygen/html/html/functions_func_b.html +1 -1
  153. package/SVF-doxygen/html/html/functions_func_i.html +3 -3
  154. package/SVF-doxygen/html/html/functions_func_s.html +15 -11
  155. package/SVF-doxygen/html/html/functions_i.html +2 -2
  156. package/SVF-doxygen/html/html/functions_l.html +8 -8
  157. package/SVF-doxygen/html/html/functions_n.html +3 -3
  158. package/SVF-doxygen/html/html/functions_o.html +11 -11
  159. package/SVF-doxygen/html/html/functions_p.html +16 -12
  160. package/SVF-doxygen/html/html/functions_r.html +1 -1
  161. package/SVF-doxygen/html/html/functions_s.html +22 -19
  162. package/SVF-doxygen/html/html/functions_t.html +7 -7
  163. package/SVF-doxygen/html/html/functions_v.html +3 -3
  164. package/SVF-doxygen/html/html/functions_vars_s.html +2 -1
  165. package/SVF-doxygen/html/html/namespaceSVF.html +86 -86
  166. package/SVF-doxygen/html/html/namespaceSVF_1_1LLVMUtil.html +22 -22
  167. package/SVF-doxygen/html/html/namespaceSVF_1_1cppUtil.html +5 -5
  168. package/SVF-doxygen/html/html/search/all_1.js +1 -0
  169. package/SVF-doxygen/html/html/search/all_10.js +4 -4
  170. package/SVF-doxygen/html/html/search/all_11.js +1 -1
  171. package/SVF-doxygen/html/html/search/all_12.js +10 -9
  172. package/SVF-doxygen/html/html/search/all_13.js +6 -6
  173. package/SVF-doxygen/html/html/search/all_15.js +2 -2
  174. package/SVF-doxygen/html/html/search/all_16.js +1 -1
  175. package/SVF-doxygen/html/html/search/all_2.js +1 -1
  176. package/SVF-doxygen/html/html/search/all_9.js +2 -2
  177. package/SVF-doxygen/html/html/search/all_b.js +1 -1
  178. package/SVF-doxygen/html/html/search/all_c.js +5 -5
  179. package/SVF-doxygen/html/html/search/all_d.js +1 -1
  180. package/SVF-doxygen/html/html/search/all_e.js +1 -1
  181. package/SVF-doxygen/html/html/search/all_f.js +3 -3
  182. package/SVF-doxygen/html/html/search/functions_0.js +1 -0
  183. package/SVF-doxygen/html/html/search/functions_1.js +1 -1
  184. package/SVF-doxygen/html/html/search/functions_11.js +4 -3
  185. package/SVF-doxygen/html/html/search/functions_8.js +1 -1
  186. package/SVF-doxygen/html/html/search/variables_12.js +2 -2
  187. package/SVF-doxygen/html/html/search/variables_13.js +3 -3
  188. package/SVF-doxygen/html/html/search/variables_9.js +1 -1
  189. package/SVF-doxygen/html/html/search/variables_c.js +1 -1
  190. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01ICFG_01_5_01_4.html +16 -16
  191. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01Inverse_3_01SVF_1_1ICFGNode_01_5_01_4_01_4.html +1 -1
  192. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1ICFGNode_01_5_01_4.html +1 -1
  193. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1ICFG_01_5_01_4.html +2 -2
  194. package/SVF-doxygen/html/html/svf-ex_8cpp.html +3 -4
  195. package/SVF-doxygen/html/html/svf-ex_8cpp_source.html +4 -4
  196. package/include/Graphs/ICFG.h +5 -0
  197. package/include/MemoryModel/SVFIR.h +14 -4
  198. package/include/SVF-FE/BasicTypes.h +1 -0
  199. package/include/SVF-FE/SVFIRBuilder.h +3 -3
  200. package/lib/DDA/DDAPass.cpp +2 -2
  201. package/lib/Graphs/ICFG.cpp +0 -3
  202. package/lib/MTA/MTA.cpp +2 -2
  203. package/lib/MemoryModel/SVFIR.cpp +0 -3
  204. package/lib/SABER/SrcSnkDDA.cpp +2 -2
  205. package/lib/SVF-FE/ICFGBuilder.cpp +4 -0
  206. package/lib/SVF-FE/SVFIRBuilder.cpp +13 -4
  207. package/lib/WPA/WPAPass.cpp +2 -2
  208. package/package.json +1 -1
  209. package/tools/CFL/cfl.cpp +2 -2
  210. package/tools/Example/svf-ex.cpp +2 -2
@@ -976,7 +976,7 @@ Private Member Functions</h2></td></tr>
976
976
  <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="Util_2BasicTypes_8h_source.html#l00114">BasicTypes.h:114</a></div></div>
977
977
  <div class="ttc" id="classSVF_1_1PointerAnalysis_html_ad47b39252e02c68dfb466d4f42dc7ebe"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#ad47b39252e02c68dfb466d4f42dc7ebe">SVF::PointerAnalysis::ptaCallGraph</a></div><div class="ttdeci">PTACallGraph * ptaCallGraph</div><div class="ttdoc">Call graph used for pointer analysis. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00152">PointerAnalysis.h:152</a></div></div>
978
978
  <div class="ttc" id="classSVF_1_1SVFFunction_html_a3757cd3ae587eaca488fa4cd8ad3967d"><div class="ttname"><a href="classSVF_1_1SVFFunction.html#a3757cd3ae587eaca488fa4cd8ad3967d">SVF::SVFFunction::arg_size</a></div><div class="ttdeci">u32_t arg_size() const</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00156">BasicTypes.h:156</a></div></div>
979
- <div class="ttc" id="classSVF_1_1ICFG_html_adc66b547720b9271e6805edea0b9d01f"><div class="ttname"><a href="classSVF_1_1ICFG.html#adc66b547720b9271e6805edea0b9d01f">SVF::ICFG::getCallICFGNode</a></div><div class="ttdeci">CallICFGNode * getCallICFGNode(const Instruction *inst)</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#l00239">ICFG.cpp:239</a></div></div>
979
+ <div class="ttc" id="classSVF_1_1ICFG_html_adc66b547720b9271e6805edea0b9d01f"><div class="ttname"><a href="classSVF_1_1ICFG.html#adc66b547720b9271e6805edea0b9d01f">SVF::ICFG::getCallICFGNode</a></div><div class="ttdeci">CallICFGNode * getCallICFGNode(const Instruction *inst)</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#l00236">ICFG.cpp:236</a></div></div>
980
980
  <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#l00375">PointerAnalysis.h:375</a></div></div>
981
981
  <div class="ttc" id="classSVF_1_1CallICFGNode_html_a674753d5ca0fbe28674acb25291f2bcf"><div class="ttname"><a href="classSVF_1_1CallICFGNode.html#a674753d5ca0fbe28674acb25291f2bcf">SVF::CallICFGNode::getCallSite</a></div><div class="ttdeci">const Instruction * getCallSite() const</div><div class="ttdoc">Return callsite. </div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00380">ICFGNode.h:380</a></div></div>
982
982
  <div class="ttc" id="classSVF_1_1CallICFGNode_html"><div class="ttname"><a href="classSVF_1_1CallICFGNode.html">SVF::CallICFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00363">ICFGNode.h:363</a></div></div>
@@ -985,7 +985,7 @@ Private Member Functions</h2></td></tr>
985
985
  <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#l00399">ICFGNode.h:399</a></div></div>
986
986
  <div class="ttc" id="classSVF_1_1SVFFunction_html_a3c1fa59deae39c75c72c97e47326d982"><div class="ttname"><a href="classSVF_1_1SVFFunction.html#a3c1fa59deae39c75c72c97e47326d982">SVF::SVFFunction::isVarArg</a></div><div class="ttdeci">bool isVarArg() const</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00166">BasicTypes.h:166</a></div></div>
987
987
  <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#l00142">PointerAnalysis.h:142</a></div></div>
988
- <div class="ttc" id="classSVF_1_1SVFIR_html_aa1943d53e75aef9b014953143c6894da"><div class="ttname"><a href="classSVF_1_1SVFIR.html#aa1943d53e75aef9b014953143c6894da">SVF::SVFIR::getICFG</a></div><div class="ttdeci">ICFG * getICFG()</div><div class="ttdoc">Return ICFG. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00132">SVFIR.h:132</a></div></div>
988
+ <div class="ttc" id="classSVF_1_1SVFIR_html_aa1943d53e75aef9b014953143c6894da"><div class="ttname"><a href="classSVF_1_1SVFIR.html#aa1943d53e75aef9b014953143c6894da">SVF::SVFIR::getICFG</a></div><div class="ttdeci">ICFG * getICFG()</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00136">SVFIR.h:136</a></div></div>
989
989
  </div><!-- fragment -->
990
990
  </div>
991
991
  </div>
@@ -1390,7 +1390,7 @@ Private Member Functions</h2></td></tr>
1390
1390
  </div><div class="memdoc">
1391
1391
 
1392
1392
  <p class="definition">Definition at line <a class="el" href="PointerAnalysis_8h_source.html#l00345">345</a> of file <a class="el" href="PointerAnalysis_8h_source.html">PointerAnalysis.h</a>.</p>
1393
- <div class="fragment"><div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160; {</div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>-&gt;<a class="code" href="classSVF_1_1SVFIR.html#a7276e82b4648ed0e1b3d1b8b37b24089">getAllFieldsObjVars</a>(<span class="keywordtype">id</span>);</div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160; }</div><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#l00479">SVFIR.cpp:479</a></div></div>
1393
+ <div class="fragment"><div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160; {</div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>-&gt;<a class="code" href="classSVF_1_1SVFIR.html#a7276e82b4648ed0e1b3d1b8b37b24089">getAllFieldsObjVars</a>(<span class="keywordtype">id</span>);</div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160; }</div><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#l00476">SVFIR.cpp:476</a></div></div>
1394
1394
  <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#l00142">PointerAnalysis.h:142</a></div></div>
1395
1395
  </div><!-- fragment -->
1396
1396
  </div>
@@ -1421,7 +1421,7 @@ Private Member Functions</h2></td></tr>
1421
1421
  <p>Get all Valid Pointers for resolution. </p>
1422
1422
 
1423
1423
  <p class="definition">Definition at line <a class="el" href="PointerAnalysis_8h_source.html#l00218">218</a> of file <a class="el" href="PointerAnalysis_8h_source.html">PointerAnalysis.h</a>.</p>
1424
- <div class="fragment"><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; {</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>-&gt;<a class="code" href="classSVF_1_1SVFIR.html#a7990c72dd6d645d713f19ed973841484">getAllValidPtrs</a>();</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; }</div><div class="ttc" id="classSVF_1_1SVFIR_html_a7990c72dd6d645d713f19ed973841484"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a7990c72dd6d645d713f19ed973841484">SVF::SVFIR::getAllValidPtrs</a></div><div class="ttdeci">OrderedNodeSet &amp; getAllValidPtrs()</div><div class="ttdoc">Return valid pointers. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00137">SVFIR.h:137</a></div></div>
1424
+ <div class="fragment"><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; {</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>-&gt;<a class="code" href="classSVF_1_1SVFIR.html#a7990c72dd6d645d713f19ed973841484">getAllValidPtrs</a>();</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; }</div><div class="ttc" id="classSVF_1_1SVFIR_html_a7990c72dd6d645d713f19ed973841484"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a7990c72dd6d645d713f19ed973841484">SVF::SVFIR::getAllValidPtrs</a></div><div class="ttdeci">OrderedNodeSet &amp; getAllValidPtrs()</div><div class="ttdoc">Return valid pointers. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00142">SVFIR.h:142</a></div></div>
1425
1425
  <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#l00142">PointerAnalysis.h:142</a></div></div>
1426
1426
  </div><!-- fragment -->
1427
1427
  </div>
@@ -1481,7 +1481,7 @@ Private Member Functions</h2></td></tr>
1481
1481
  </div><div class="memdoc">
1482
1482
 
1483
1483
  <p class="definition">Definition at line <a class="el" href="PointerAnalysis_8h_source.html#l00333">333</a> of file <a class="el" href="PointerAnalysis_8h_source.html">PointerAnalysis.h</a>.</p>
1484
- <div class="fragment"><div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; {</div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>-&gt;<a class="code" href="classSVF_1_1SVFIR.html#a77a6bb9335aa12d29825af1b5ea07e08">getBaseObjVar</a>(<span class="keywordtype">id</span>);</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; }</div><div class="ttc" id="classSVF_1_1SVFIR_html_a77a6bb9335aa12d29825af1b5ea07e08"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a77a6bb9335aa12d29825af1b5ea07e08">SVF::SVFIR::getBaseObjVar</a></div><div class="ttdeci">NodeID getBaseObjVar(NodeID id) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00406">SVFIR.h:406</a></div></div>
1484
+ <div class="fragment"><div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; {</div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>-&gt;<a class="code" href="classSVF_1_1SVFIR.html#a77a6bb9335aa12d29825af1b5ea07e08">getBaseObjVar</a>(<span class="keywordtype">id</span>);</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; }</div><div class="ttc" id="classSVF_1_1SVFIR_html_a77a6bb9335aa12d29825af1b5ea07e08"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a77a6bb9335aa12d29825af1b5ea07e08">SVF::SVFIR::getBaseObjVar</a></div><div class="ttdeci">NodeID getBaseObjVar(NodeID id) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00416">SVFIR.h:416</a></div></div>
1485
1485
  <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#l00142">PointerAnalysis.h:142</a></div></div>
1486
1486
  </div><!-- fragment -->
1487
1487
  </div>
@@ -1603,7 +1603,7 @@ Private Member Functions</h2></td></tr>
1603
1603
  </div><div class="memdoc">
1604
1604
 
1605
1605
  <p class="definition">Definition at line <a class="el" href="PointerAnalysis_8h_source.html#l00337">337</a> of file <a class="el" href="PointerAnalysis_8h_source.html">PointerAnalysis.h</a>.</p>
1606
- <div class="fragment"><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; {</div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>-&gt;<a class="code" href="classSVF_1_1SVFIR.html#a2878e202045b7f2c817185e8bf95d354">getFIObjVar</a>(<span class="keywordtype">id</span>);</div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; }</div><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>
1606
+ <div class="fragment"><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; {</div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>-&gt;<a class="code" href="classSVF_1_1SVFIR.html#a2878e202045b7f2c817185e8bf95d354">getFIObjVar</a>(<span class="keywordtype">id</span>);</div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; }</div><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#l00374">SVFIR.h:374</a></div></div>
1607
1607
  <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#l00142">PointerAnalysis.h:142</a></div></div>
1608
1608
  </div><!-- fragment -->
1609
1609
  </div>
@@ -1635,7 +1635,7 @@ Private Member Functions</h2></td></tr>
1635
1635
  <p>Return function pointer PAGNode at a callsite cs. </p>
1636
1636
 
1637
1637
  <p class="definition">Definition at line <a class="el" href="PointerAnalysis_8h_source.html#l00272">272</a> of file <a class="el" href="PointerAnalysis_8h_source.html">PointerAnalysis.h</a>.</p>
1638
- <div class="fragment"><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; {</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>-&gt;<a class="code" href="classSVF_1_1SVFIR.html#a17c5d9fa7c0bd3cd03c06b5ff0906eb6">getFunPtr</a>(cs);</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; }</div><div class="ttc" id="classSVF_1_1SVFIR_html_a17c5d9fa7c0bd3cd03c06b5ff0906eb6"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a17c5d9fa7c0bd3cd03c06b5ff0906eb6">SVF::SVFIR::getFunPtr</a></div><div class="ttdeci">NodeID getFunPtr(const CallICFGNode *cs) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00303">SVFIR.h:303</a></div></div>
1638
+ <div class="fragment"><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; {</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>-&gt;<a class="code" href="classSVF_1_1SVFIR.html#a17c5d9fa7c0bd3cd03c06b5ff0906eb6">getFunPtr</a>(cs);</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; }</div><div class="ttc" id="classSVF_1_1SVFIR_html_a17c5d9fa7c0bd3cd03c06b5ff0906eb6"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a17c5d9fa7c0bd3cd03c06b5ff0906eb6">SVF::SVFIR::getFunPtr</a></div><div class="ttdeci">NodeID getFunPtr(const CallICFGNode *cs) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00313">SVFIR.h:313</a></div></div>
1639
1639
  <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#l00142">PointerAnalysis.h:142</a></div></div>
1640
1640
  </div><!-- fragment -->
1641
1641
  </div>
@@ -1676,7 +1676,7 @@ Private Member Functions</h2></td></tr>
1676
1676
 
1677
1677
  <p class="definition">Definition at line <a class="el" href="PointerAnalysis_8h_source.html#l00341">341</a> of file <a class="el" href="PointerAnalysis_8h_source.html">PointerAnalysis.h</a>.</p>
1678
1678
  <div class="fragment"><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160; {</div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>-&gt;<a class="code" href="classSVF_1_1SVFIR.html#a20c0c65af266ac876cb722aee6e87101">getGepObjVar</a>(<span class="keywordtype">id</span>,ls);</div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; }</div><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#l00142">PointerAnalysis.h:142</a></div></div>
1679
- <div class="ttc" id="classSVF_1_1SVFIR_html_a20c0c65af266ac876cb722aee6e87101"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a20c0c65af266ac876cb722aee6e87101">SVF::SVFIR::getGepObjVar</a></div><div class="ttdeci">NodeID getGepObjVar(const MemObj *obj, const LocationSet &amp;ls)</div><div class="ttdoc">Get a field SVFIR Object node according to base mem obj and offset. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8cpp_source.html#l00426">SVFIR.cpp:426</a></div></div>
1679
+ <div class="ttc" id="classSVF_1_1SVFIR_html_a20c0c65af266ac876cb722aee6e87101"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a20c0c65af266ac876cb722aee6e87101">SVF::SVFIR::getGepObjVar</a></div><div class="ttdeci">NodeID getGepObjVar(const MemObj *obj, const LocationSet &amp;ls)</div><div class="ttdoc">Get a field SVFIR Object node according to base mem obj and offset. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8cpp_source.html#l00423">SVFIR.cpp:423</a></div></div>
1680
1680
  </div><!-- fragment -->
1681
1681
  </div>
1682
1682
  </div>
@@ -1707,7 +1707,7 @@ Private Member Functions</h2></td></tr>
1707
1707
 
1708
1708
  <p class="definition">Definition at line <a class="el" href="PointerAnalysis_8h_source.html#l00164">164</a> of file <a class="el" href="PointerAnalysis_8h_source.html">PointerAnalysis.h</a>.</p>
1709
1709
  <div class="fragment"><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; {</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>-&gt;<a class="code" href="classSVF_1_1SVFIR.html#aa1943d53e75aef9b014953143c6894da">getICFG</a>();</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; }</div><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#l00142">PointerAnalysis.h:142</a></div></div>
1710
- <div class="ttc" id="classSVF_1_1SVFIR_html_aa1943d53e75aef9b014953143c6894da"><div class="ttname"><a href="classSVF_1_1SVFIR.html#aa1943d53e75aef9b014953143c6894da">SVF::SVFIR::getICFG</a></div><div class="ttdeci">ICFG * getICFG()</div><div class="ttdoc">Return ICFG. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00132">SVFIR.h:132</a></div></div>
1710
+ <div class="ttc" id="classSVF_1_1SVFIR_html_aa1943d53e75aef9b014953143c6894da"><div class="ttname"><a href="classSVF_1_1SVFIR.html#aa1943d53e75aef9b014953143c6894da">SVF::SVFIR::getICFG</a></div><div class="ttdeci">ICFG * getICFG()</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00136">SVFIR.h:136</a></div></div>
1711
1711
  </div><!-- fragment -->
1712
1712
  </div>
1713
1713
  </div>
@@ -1829,7 +1829,7 @@ Private Member Functions</h2></td></tr>
1829
1829
 
1830
1830
  <p class="definition">Definition at line <a class="el" href="PointerAnalysis_8h_source.html#l00267">267</a> of file <a class="el" href="PointerAnalysis_8h_source.html">PointerAnalysis.h</a>.</p>
1831
1831
  <div class="fragment"><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; {</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>-&gt;<a class="code" href="classSVF_1_1SVFIR.html#a2d2131128ceb3362b5dc89317cfd88a0">getIndirectCallsites</a>();</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; }</div><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#l00142">PointerAnalysis.h:142</a></div></div>
1832
- <div class="ttc" id="classSVF_1_1SVFIR_html_a2d2131128ceb3362b5dc89317cfd88a0"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a2d2131128ceb3362b5dc89317cfd88a0">SVF::SVFIR::getIndirectCallsites</a></div><div class="ttdeci">const CallSiteToFunPtrMap &amp; getIndirectCallsites() const</div><div class="ttdoc">Add/get indirect callsites. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00299">SVFIR.h:299</a></div></div>
1832
+ <div class="ttc" id="classSVF_1_1SVFIR_html_a2d2131128ceb3362b5dc89317cfd88a0"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a2d2131128ceb3362b5dc89317cfd88a0">SVF::SVFIR::getIndirectCallsites</a></div><div class="ttdeci">const CallSiteToFunPtrMap &amp; getIndirectCallsites() const</div><div class="ttdoc">Add/get indirect callsites. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00309">SVFIR.h:309</a></div></div>
1833
1833
  </div><!-- fragment -->
1834
1834
  </div>
1835
1835
  </div>
@@ -2234,9 +2234,9 @@ Private Member Functions</h2></td></tr>
2234
2234
  <div class="ttc" id="classSVF_1_1CallGraphBuilder_html_aa64a27e99434908a203e566074c66ebc"><div class="ttname"><a href="classSVF_1_1CallGraphBuilder.html#aa64a27e99434908a203e566074c66ebc">SVF::CallGraphBuilder::buildCallGraph</a></div><div class="ttdeci">PTACallGraph * buildCallGraph(SVFModule *svfModule)</div><div class="ttdoc">Build normal callgraph. </div><div class="ttdef"><b>Definition:</b> <a href="CallGraphBuilder_8cpp_source.html#l00038">CallGraphBuilder.cpp:38</a></div></div>
2235
2235
  <div class="ttc" id="classSVF_1_1CallGraphBuilder_html"><div class="ttname"><a href="classSVF_1_1CallGraphBuilder.html">SVF::CallGraphBuilder</a></div><div class="ttdef"><b>Definition:</b> <a href="CallGraphBuilder_8h_source.html#l00042">CallGraphBuilder.h:42</a></div></div>
2236
2236
  <div class="ttc" id="classSVF_1_1ThreadCallGraphBuilder_html"><div class="ttname"><a href="classSVF_1_1ThreadCallGraphBuilder.html">SVF::ThreadCallGraphBuilder</a></div><div class="ttdef"><b>Definition:</b> <a href="CallGraphBuilder_8h_source.html#l00058">CallGraphBuilder.h:58</a></div></div>
2237
- <div class="ttc" id="classSVF_1_1SVFIR_html_ad6e18f520f6b559f2304002792f6b701"><div class="ttname"><a href="classSVF_1_1SVFIR.html#ad6e18f520f6b559f2304002792f6b701">SVF::SVFIR::getModule</a></div><div class="ttdeci">SVFModule * getModule()</div><div class="ttdoc">Get LLVM Module. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00155">SVFIR.h:155</a></div></div>
2237
+ <div class="ttc" id="classSVF_1_1SVFIR_html_ad6e18f520f6b559f2304002792f6b701"><div class="ttname"><a href="classSVF_1_1SVFIR.html#ad6e18f520f6b559f2304002792f6b701">SVF::SVFIR::getModule</a></div><div class="ttdeci">SVFModule * getModule()</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00164">SVFIR.h:164</a></div></div>
2238
2238
  <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#l00142">PointerAnalysis.h:142</a></div></div>
2239
- <div class="ttc" id="classSVF_1_1SVFIR_html_aa1943d53e75aef9b014953143c6894da"><div class="ttname"><a href="classSVF_1_1SVFIR.html#aa1943d53e75aef9b014953143c6894da">SVF::SVFIR::getICFG</a></div><div class="ttdeci">ICFG * getICFG()</div><div class="ttdoc">Return ICFG. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00132">SVFIR.h:132</a></div></div>
2239
+ <div class="ttc" id="classSVF_1_1SVFIR_html_aa1943d53e75aef9b014953143c6894da"><div class="ttname"><a href="classSVF_1_1SVFIR.html#aa1943d53e75aef9b014953143c6894da">SVF::SVFIR::getICFG</a></div><div class="ttdeci">ICFG * getICFG()</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00136">SVFIR.h:136</a></div></div>
2240
2240
  <div class="ttc" id="classSVF_1_1CHGBuilder_html"><div class="ttname"><a href="classSVF_1_1CHGBuilder.html">SVF::CHGBuilder</a></div><div class="ttdef"><b>Definition:</b> <a href="CHGBuilder_8h_source.html#l00036">CHGBuilder.h:36</a></div></div>
2241
2241
  </div><!-- fragment -->
2242
2242
  </div>
@@ -2310,7 +2310,7 @@ Private Member Functions</h2></td></tr>
2310
2310
 
2311
2311
  <p class="definition">Definition at line <a class="el" href="PointerAnalysis_8h_source.html#l00319">319</a> of file <a class="el" href="PointerAnalysis_8h_source.html">PointerAnalysis.h</a>.</p>
2312
2312
  <div class="fragment"><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; {</div><div class="line"><a name="l00321"></a><span class="lineno"> 321</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#a2dd4d5f704906270af13e7a07f900eb1">getObject</a>(<span class="keywordtype">id</span>);</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; assert(mem &amp;&amp; <span class="stringliteral">&quot;memory object is null??&quot;</span>);</div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; <span class="keywordflow">return</span> mem-&gt;isArray();</div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; }</div><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#l00142">PointerAnalysis.h:142</a></div></div>
2313
- <div class="ttc" id="classSVF_1_1SVFIR_html_a2dd4d5f704906270af13e7a07f900eb1"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a2dd4d5f704906270af13e7a07f900eb1">SVF::SVFIR::getObject</a></div><div class="ttdeci">const MemObj * getObject(NodeID id) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00344">SVFIR.h:344</a></div></div>
2313
+ <div class="ttc" id="classSVF_1_1SVFIR_html_a2dd4d5f704906270af13e7a07f900eb1"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a2dd4d5f704906270af13e7a07f900eb1">SVF::SVFIR::getObject</a></div><div class="ttdeci">const MemObj * getObject(NodeID id) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00354">SVFIR.h:354</a></div></div>
2314
2314
  </div><!-- fragment -->
2315
2315
  </div>
2316
2316
  </div>
@@ -2339,7 +2339,7 @@ Private Member Functions</h2></td></tr>
2339
2339
  </div><div class="memdoc">
2340
2340
 
2341
2341
  <p class="definition">Definition at line <a class="el" href="PointerAnalysis_8h_source.html#l00300">300</a> of file <a class="el" href="PointerAnalysis_8h_source.html">PointerAnalysis.h</a>.</p>
2342
- <div class="fragment"><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; {</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>-&gt;<a class="code" href="classSVF_1_1SVFIR.html#ad9895f2d075eb402390e3b01ed68e001">isBlkObjOrConstantObj</a>(ptd);</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; }</div><div class="ttc" id="classSVF_1_1SVFIR_html_ad9895f2d075eb402390e3b01ed68e001"><div class="ttname"><a href="classSVF_1_1SVFIR.html#ad9895f2d075eb402390e3b01ed68e001">SVF::SVFIR::isBlkObjOrConstantObj</a></div><div class="ttdeci">bool isBlkObjOrConstantObj(NodeID id) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00384">SVFIR.h:384</a></div></div>
2342
+ <div class="fragment"><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; {</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>-&gt;<a class="code" href="classSVF_1_1SVFIR.html#ad9895f2d075eb402390e3b01ed68e001">isBlkObjOrConstantObj</a>(ptd);</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; }</div><div class="ttc" id="classSVF_1_1SVFIR_html_ad9895f2d075eb402390e3b01ed68e001"><div class="ttname"><a href="classSVF_1_1SVFIR.html#ad9895f2d075eb402390e3b01ed68e001">SVF::SVFIR::isBlkObjOrConstantObj</a></div><div class="ttdeci">bool isBlkObjOrConstantObj(NodeID id) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00394">SVFIR.h:394</a></div></div>
2343
2343
  <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#l00142">PointerAnalysis.h:142</a></div></div>
2344
2344
  </div><!-- fragment -->
2345
2345
  </div>
@@ -2369,7 +2369,7 @@ Private Member Functions</h2></td></tr>
2369
2369
  </div><div class="memdoc">
2370
2370
 
2371
2371
  <p class="definition">Definition at line <a class="el" href="PointerAnalysis_8h_source.html#l00354">354</a> of file <a class="el" href="PointerAnalysis_8h_source.html">PointerAnalysis.h</a>.</p>
2372
- <div class="fragment"><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; {</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</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="l00357"></a><span class="lineno"> 357</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="l00358"></a><span class="lineno"> 358</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#l00410">SVFIR.h:410</a></div></div>
2372
+ <div class="fragment"><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; {</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</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="l00357"></a><span class="lineno"> 357</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="l00358"></a><span class="lineno"> 358</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#l00420">SVFIR.h:420</a></div></div>
2373
2373
  <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#l00738">SymbolTableInfo.cpp:738</a></div></div>
2374
2374
  <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#l00142">PointerAnalysis.h:142</a></div></div>
2375
2375
  </div><!-- fragment -->
@@ -2434,7 +2434,7 @@ Private Member Functions</h2></td></tr>
2434
2434
 
2435
2435
  <p class="definition">Definition at line <a class="el" href="PointerAnalysis_8h_source.html#l00312">312</a> of file <a class="el" href="PointerAnalysis_8h_source.html">PointerAnalysis.h</a>.</p>
2436
2436
  <div class="fragment"><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; {</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</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#a2dd4d5f704906270af13e7a07f900eb1">getObject</a>(<span class="keywordtype">id</span>);</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; assert(mem &amp;&amp; <span class="stringliteral">&quot;memory object is null??&quot;</span>);</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; <span class="keywordflow">return</span> mem-&gt;isHeap();</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; }</div><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#l00142">PointerAnalysis.h:142</a></div></div>
2437
- <div class="ttc" id="classSVF_1_1SVFIR_html_a2dd4d5f704906270af13e7a07f900eb1"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a2dd4d5f704906270af13e7a07f900eb1">SVF::SVFIR::getObject</a></div><div class="ttdeci">const MemObj * getObject(NodeID id) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00344">SVFIR.h:344</a></div></div>
2437
+ <div class="ttc" id="classSVF_1_1SVFIR_html_a2dd4d5f704906270af13e7a07f900eb1"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a2dd4d5f704906270af13e7a07f900eb1">SVF::SVFIR::getObject</a></div><div class="ttdeci">const MemObj * getObject(NodeID id) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00354">SVFIR.h:354</a></div></div>
2438
2438
  </div><!-- fragment -->
2439
2439
  </div>
2440
2440
  </div>
@@ -2503,7 +2503,7 @@ Private Member Functions</h2></td></tr>
2503
2503
  <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#l00142">PointerAnalysis.h:142</a></div></div>
2504
2504
  <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#l00391">GenericGraph.h:391</a></div></div>
2505
2505
  <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#l00114">LLVMModule.h:114</a></div></div>
2506
- <div class="ttc" id="classSVF_1_1SVFIR_html_a2dd4d5f704906270af13e7a07f900eb1"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a2dd4d5f704906270af13e7a07f900eb1">SVF::SVFIR::getObject</a></div><div class="ttdeci">const MemObj * getObject(NodeID id) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00344">SVFIR.h:344</a></div></div>
2506
+ <div class="ttc" id="classSVF_1_1SVFIR_html_a2dd4d5f704906270af13e7a07f900eb1"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a2dd4d5f704906270af13e7a07f900eb1">SVF::SVFIR::getObject</a></div><div class="ttdeci">const MemObj * getObject(NodeID id) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00354">SVFIR.h:354</a></div></div>
2507
2507
  </div><!-- fragment -->
2508
2508
  </div>
2509
2509
  </div>
@@ -2533,7 +2533,7 @@ Private Member Functions</h2></td></tr>
2533
2533
 
2534
2534
  <p class="definition">Definition at line <a class="el" href="PointerAnalysis_8h_source.html#l00304">304</a> of file <a class="el" href="PointerAnalysis_8h_source.html">PointerAnalysis.h</a>.</p>
2535
2535
  <div class="fragment"><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; {</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>-&gt;<a class="code" href="classSVF_1_1SVFIR.html#a980e54129ece0757d7f0373f37428507">isNonPointerObj</a>(ptd);</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; }</div><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#l00142">PointerAnalysis.h:142</a></div></div>
2536
- <div class="ttc" id="classSVF_1_1SVFIR_html_a980e54129ece0757d7f0373f37428507"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a980e54129ece0757d7f0373f37428507">SVF::SVFIR::isNonPointerObj</a></div><div class="ttdeci">bool isNonPointerObj(NodeID id) const</div><div class="ttdoc">Whether an object can point to any other object or any of its fields is a pointer type...</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8cpp_source.html#l00673">SVFIR.cpp:673</a></div></div>
2536
+ <div class="ttc" id="classSVF_1_1SVFIR_html_a980e54129ece0757d7f0373f37428507"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a980e54129ece0757d7f0373f37428507">SVF::SVFIR::isNonPointerObj</a></div><div class="ttdeci">bool isNonPointerObj(NodeID id) const</div><div class="ttdoc">Whether an object can point to any other object or any of its fields is a pointer type...</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8cpp_source.html#l00670">SVFIR.cpp:670</a></div></div>
2537
2537
  </div><!-- fragment -->
2538
2538
  </div>
2539
2539
  </div>
@@ -2845,7 +2845,7 @@ Private Member Functions</h2></td></tr>
2845
2845
  <div class="fragment"><div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160;{</div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160;</div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160; assert(<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="l00404"></a><span class="lineno"> 404</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="l00405"></a><span class="lineno"> 405</span>&#160; ii != ie; ii++)</div><div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160; {</div><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; <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="l00409"></a><span class="lineno"> 409</span>&#160; {</div><div class="line"><a name="l00410"></a><span class="lineno"> 410</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="l00411"></a><span class="lineno"> 411</span>&#160; <span class="keywordflow">return</span>;</div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160; }</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; <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="l00415"></a><span class="lineno"> 415</span>&#160; {</div><div class="line"><a name="l00416"></a><span class="lineno"> 416</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="l00417"></a><span class="lineno"> 417</span>&#160;</div><div class="line"><a name="l00418"></a><span class="lineno"> 418</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="l00419"></a><span class="lineno"> 419</span>&#160; {</div><div class="line"><a name="l00420"></a><span class="lineno"> 420</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="l00421"></a><span class="lineno"> 421</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="l00422"></a><span class="lineno"> 422</span>&#160;</div><div class="line"><a name="l00425"></a><span class="lineno"> 425</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="l00426"></a><span class="lineno"> 426</span>&#160; <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160;</div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160; <span class="keywordflow">if</span>(0 == <a class="code" href="classSVF_1_1PointerAnalysis.html#a1ca30dfa42702071b65d363c76d25cbe">getIndCallMap</a>()[cs].<a class="code" href="cJSON_8h.html#ad43c3812e6d13e0518d9f8b8f463ffcf">count</a>(callee))</div><div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160; {</div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160; newEdges[cs].insert(callee);</div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160; <a class="code" href="classSVF_1_1PointerAnalysis.html#a1ca30dfa42702071b65d363c76d25cbe">getIndCallMap</a>()[cs].insert(callee);</div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160;</div><div class="line"><a name="l00433"></a><span class="lineno"> 433</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="l00434"></a><span class="lineno"> 434</span>&#160; <span class="comment">// FIXME: do we need to update llvm call graph here?</span></div><div class="line"><a name="l00435"></a><span class="lineno"> 435</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="l00436"></a><span class="lineno"> 436</span>&#160; <span class="comment">//CallGraphNode* callgraphNode = callgraph-&gt;getOrInsertFunction(cs.getCaller());</span></div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160; <span class="comment">//callgraphNode-&gt;addCalledFunction(cs,callgraph-&gt;getOrInsertFunction(callee));</span></div><div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160; }</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; }</div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160; }</div><div class="line"><a name="l00442"></a><span class="lineno"> 442</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#l00378">SymbolTableInfo.h:378</a></div></div>
2846
2846
  <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#l00187">PTACallGraph.cpp:187</a></div></div>
2847
2847
  <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#l00749">SymbolTableInfo.cpp:749</a></div></div>
2848
- <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>
2848
+ <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#l00325">SVFIR.h:325</a></div></div>
2849
2849
  <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#l00257">SVFUtil.h:257</a></div></div>
2850
2850
  <div class="ttc" id="classSVF_1_1PointsTo_1_1PointsToIterator_html"><div class="ttname"><a href="classSVF_1_1PointsTo_1_1PointsToIterator.html">SVF::PointsTo::PointsToIterator</a></div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8h_source.html#l00181">PointsTo.h:181</a></div></div>
2851
2851
  <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="Util_2BasicTypes_8h_source.html#l00114">BasicTypes.h:114</a></div></div>
@@ -2864,7 +2864,7 @@ Private Member Functions</h2></td></tr>
2864
2864
  <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#l00062">SVFUtil.cpp:62</a></div></div>
2865
2865
  <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#l00391">GenericGraph.h:391</a></div></div>
2866
2866
  <div class="ttc" id="classSVF_1_1PointsTo_html_a8f741cdffbf3c5fe0f602cdca677dee6"><div class="ttname"><a href="classSVF_1_1PointsTo.html#a8f741cdffbf3c5fe0f602cdca677dee6">SVF::PointsTo::end</a></div><div class="ttdeci">const_iterator end(void) const</div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8h_source.html#l00132">PointsTo.h:132</a></div></div>
2867
- <div class="ttc" id="classSVF_1_1SVFIR_html_a2dd4d5f704906270af13e7a07f900eb1"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a2dd4d5f704906270af13e7a07f900eb1">SVF::SVFIR::getObject</a></div><div class="ttdeci">const MemObj * getObject(NodeID id) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00344">SVFIR.h:344</a></div></div>
2867
+ <div class="ttc" id="classSVF_1_1SVFIR_html_a2dd4d5f704906270af13e7a07f900eb1"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a2dd4d5f704906270af13e7a07f900eb1">SVF::SVFIR::getObject</a></div><div class="ttdeci">const MemObj * getObject(NodeID id) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00354">SVFIR.h:354</a></div></div>
2868
2868
  </div><!-- fragment -->
2869
2869
  </div>
2870
2870
  </div>
@@ -2893,7 +2893,7 @@ Private Member Functions</h2></td></tr>
2893
2893
  </div><div class="memdoc">
2894
2894
 
2895
2895
  <p class="definition">Definition at line <a class="el" href="PointerAnalysis_8h_source.html#l00349">349</a> of file <a class="el" href="PointerAnalysis_8h_source.html">PointerAnalysis.h</a>.</p>
2896
- <div class="fragment"><div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; {</div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; MemObj* mem = <span class="keyword">const_cast&lt;</span>MemObj*<span class="keyword">&gt;</span>(<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="l00352"></a><span class="lineno"> 352</span>&#160; mem-&gt;setFieldInsensitive();</div><div class="line"><a name="l00353"></a><span class="lineno"> 353</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#l00410">SVFIR.h:410</a></div></div>
2896
+ <div class="fragment"><div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; {</div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; MemObj* mem = <span class="keyword">const_cast&lt;</span>MemObj*<span class="keyword">&gt;</span>(<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="l00352"></a><span class="lineno"> 352</span>&#160; mem-&gt;setFieldInsensitive();</div><div class="line"><a name="l00353"></a><span class="lineno"> 353</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#l00420">SVFIR.h:420</a></div></div>
2897
2897
  <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#l00142">PointerAnalysis.h:142</a></div></div>
2898
2898
  </div><!-- fragment -->
2899
2899
  </div>
@@ -284,7 +284,7 @@ Static Private Attributes</h2></td></tr>
284
284
  <p>Collect the targets for validations. The targets should be memory access Instructions in pairs. The collected targets are stored in the member variable "accessPairs". </p>
285
285
 
286
286
  <p class="definition">Definition at line <a class="el" href="MTAResultValidator_8h_source.html#l00274">274</a> of file <a class="el" href="MTAResultValidator_8h_source.html">MTAResultValidator.h</a>.</p>
287
- <div class="fragment"><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; {</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; <span class="comment">// Collect call sites of all RC_ACCESS function calls.</span></div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; std::vector&lt;const CallInst*&gt; csInsts;</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a> *F = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = <a class="code" href="classSVF_1_1RaceResultValidator.html#abd3ad42a71357dfd1483e6e0d18d5ebd">M</a>-&gt;<a class="code" href="classSVF_1_1SVFModule.html#a648542aa5c4b487ad5aa12a39d15e951">llvmFunBegin</a>(); it != <a class="code" href="classSVF_1_1RaceResultValidator.html#abd3ad42a71357dfd1483e6e0d18d5ebd">M</a>-&gt;<a class="code" href="classSVF_1_1SVFModule.html#af38d0f831967d6d8391a4c84e58d6519">llvmFunEnd</a>(); it++)</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; {</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; <span class="keyword">const</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> fName = (*it)-&gt;getName().str();</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; <span class="keywordflow">if</span>(fName.find(<a class="code" href="classSVF_1_1RaceResultValidator.html#ae296de41ead49fcff5ea9e7a5afde1c9">RC_ACCESS</a>) != std::string::npos)</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; {</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; F = (*it);</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; }</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; }</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; <span class="keywordflow">if</span> (!F) <span class="keywordflow">return</span>;</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160;</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; <span class="keywordflow">for</span> (Value::const_use_iterator it = F-&gt;use_begin(), ie =</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; F-&gt;use_end(); it != ie; ++it)</div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; {</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a334998718813a19a7697daf4ba282faf">Use</a> *u = &amp;*it;</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a> *user = u-&gt;getUser();</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#adc8b60ca7d60cf6c81feae20e4a04c63">CallInst</a> *csInst = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">SVFUtil::dyn_cast</a>&lt;<a class="code" href="namespaceSVF.html#adc8b60ca7d60cf6c81feae20e4a04c63">CallInst</a>&gt;(user);</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; assert(csInst);</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; csInsts.push_back(csInst);</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; }</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; assert(csInsts.size() % 2 == 0 &amp;&amp; <span class="stringliteral">&quot;We should have RC_ACCESS called in pairs.&quot;</span>);</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160;</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; <span class="comment">// Sort the validation sites according to their ids.</span></div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; std::sort(csInsts.begin(), csInsts.end(), <a class="code" href="classSVF_1_1RaceResultValidator.html#a7a16fb7a3f382284dbb080802f6e6f43">compare</a>);</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160;</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; <span class="comment">// Generate access pairs.</span></div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0, e = csInsts.size(); i != e;)</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; {</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#adc8b60ca7d60cf6c81feae20e4a04c63">CallInst</a> *CI1 = csInsts[i++];</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#adc8b60ca7d60cf6c81feae20e4a04c63">CallInst</a> *CI2 = csInsts[i++];</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#adefcb50414ea999d70cea5ccdbcb98d7">ConstantInt</a> *C = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">SVFUtil::dyn_cast</a>&lt;<a class="code" href="namespaceSVF.html#adefcb50414ea999d70cea5ccdbcb98d7">ConstantInt</a>&gt;(CI1-&gt;getOperand(1));</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; assert(C);</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *I1 = <a class="code" href="classSVF_1_1RaceResultValidator.html#ad029f7a9a5161191a44d1e841f9d6114">getPreviousMemoryAccessInst</a>(CI1);</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *I2 = <a class="code" href="classSVF_1_1RaceResultValidator.html#ad029f7a9a5161191a44d1e841f9d6114">getPreviousMemoryAccessInst</a>(CI2);</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; assert(I1 &amp;&amp; I2 &amp;&amp; <span class="stringliteral">&quot;RC_ACCESS should be placed immediately after the target memory access.&quot;</span>);</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; <a class="code" href="classSVF_1_1RaceResultValidator.html#ac57ae430ee5b6868fe810172ec658853">RC_FLAG</a> flags = C-&gt;getZExtValue();</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; <a class="code" href="classSVF_1_1RaceResultValidator.html#a8436ecde1e34bca7cef86a320ad42162">accessPairs</a>.push_back(AccessPair(I1, I2, flags));</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; }</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; }</div><div class="ttc" id="namespaceSVF_html_a334998718813a19a7697daf4ba282faf"><div class="ttname"><a href="namespaceSVF.html#a334998718813a19a7697daf4ba282faf">SVF::Use</a></div><div class="ttdeci">llvm::Use Use</div><div class="ttdef"><b>Definition:</b> <a href="SVF-FE_2BasicTypes_8h_source.html#l00036">BasicTypes.h:36</a></div></div>
287
+ <div class="fragment"><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; {</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; <span class="comment">// Collect call sites of all RC_ACCESS function calls.</span></div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; std::vector&lt;const CallInst*&gt; csInsts;</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a> *F = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = <a class="code" href="classSVF_1_1RaceResultValidator.html#abd3ad42a71357dfd1483e6e0d18d5ebd">M</a>-&gt;<a class="code" href="classSVF_1_1SVFModule.html#a648542aa5c4b487ad5aa12a39d15e951">llvmFunBegin</a>(); it != <a class="code" href="classSVF_1_1RaceResultValidator.html#abd3ad42a71357dfd1483e6e0d18d5ebd">M</a>-&gt;<a class="code" href="classSVF_1_1SVFModule.html#af38d0f831967d6d8391a4c84e58d6519">llvmFunEnd</a>(); it++)</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; {</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; <span class="keyword">const</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> fName = (*it)-&gt;getName().str();</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; <span class="keywordflow">if</span>(fName.find(<a class="code" href="classSVF_1_1RaceResultValidator.html#ae296de41ead49fcff5ea9e7a5afde1c9">RC_ACCESS</a>) != std::string::npos)</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; {</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; F = (*it);</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; }</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; }</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; <span class="keywordflow">if</span> (!F) <span class="keywordflow">return</span>;</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160;</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; <span class="keywordflow">for</span> (Value::const_use_iterator it = F-&gt;use_begin(), ie =</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; F-&gt;use_end(); it != ie; ++it)</div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; {</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a334998718813a19a7697daf4ba282faf">Use</a> *u = &amp;*it;</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a> *user = u-&gt;getUser();</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#adc8b60ca7d60cf6c81feae20e4a04c63">CallInst</a> *csInst = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">SVFUtil::dyn_cast</a>&lt;<a class="code" href="namespaceSVF.html#adc8b60ca7d60cf6c81feae20e4a04c63">CallInst</a>&gt;(user);</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; assert(csInst);</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; csInsts.push_back(csInst);</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; }</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; assert(csInsts.size() % 2 == 0 &amp;&amp; <span class="stringliteral">&quot;We should have RC_ACCESS called in pairs.&quot;</span>);</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160;</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; <span class="comment">// Sort the validation sites according to their ids.</span></div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; std::sort(csInsts.begin(), csInsts.end(), <a class="code" href="classSVF_1_1RaceResultValidator.html#a7a16fb7a3f382284dbb080802f6e6f43">compare</a>);</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160;</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; <span class="comment">// Generate access pairs.</span></div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0, e = csInsts.size(); i != e;)</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; {</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#adc8b60ca7d60cf6c81feae20e4a04c63">CallInst</a> *CI1 = csInsts[i++];</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#adc8b60ca7d60cf6c81feae20e4a04c63">CallInst</a> *CI2 = csInsts[i++];</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#adefcb50414ea999d70cea5ccdbcb98d7">ConstantInt</a> *C = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">SVFUtil::dyn_cast</a>&lt;<a class="code" href="namespaceSVF.html#adefcb50414ea999d70cea5ccdbcb98d7">ConstantInt</a>&gt;(CI1-&gt;getOperand(1));</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; assert(C);</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *I1 = <a class="code" href="classSVF_1_1RaceResultValidator.html#ad029f7a9a5161191a44d1e841f9d6114">getPreviousMemoryAccessInst</a>(CI1);</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *I2 = <a class="code" href="classSVF_1_1RaceResultValidator.html#ad029f7a9a5161191a44d1e841f9d6114">getPreviousMemoryAccessInst</a>(CI2);</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; assert(I1 &amp;&amp; I2 &amp;&amp; <span class="stringliteral">&quot;RC_ACCESS should be placed immediately after the target memory access.&quot;</span>);</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; <a class="code" href="classSVF_1_1RaceResultValidator.html#ac57ae430ee5b6868fe810172ec658853">RC_FLAG</a> flags = C-&gt;getZExtValue();</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; <a class="code" href="classSVF_1_1RaceResultValidator.html#a8436ecde1e34bca7cef86a320ad42162">accessPairs</a>.push_back(AccessPair(I1, I2, flags));</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; }</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; }</div><div class="ttc" id="namespaceSVF_html_a334998718813a19a7697daf4ba282faf"><div class="ttname"><a href="namespaceSVF.html#a334998718813a19a7697daf4ba282faf">SVF::Use</a></div><div class="ttdeci">llvm::Use Use</div><div class="ttdef"><b>Definition:</b> <a href="SVF-FE_2BasicTypes_8h_source.html#l00037">BasicTypes.h:37</a></div></div>
288
288
  <div class="ttc" id="classSVF_1_1SVFModule_html_af38d0f831967d6d8391a4c84e58d6519"><div class="ttname"><a href="classSVF_1_1SVFModule.html#af38d0f831967d6d8391a4c84e58d6519">SVF::SVFModule::llvmFunEnd</a></div><div class="ttdeci">llvm_iterator llvmFunEnd()</div><div class="ttdef"><b>Definition:</b> <a href="SVFModule_8h_source.html#l00147">SVFModule.h:147</a></div></div>
289
289
  <div class="ttc" id="classSVF_1_1RaceResultValidator_html_a7a16fb7a3f382284dbb080802f6e6f43"><div class="ttname"><a href="classSVF_1_1RaceResultValidator.html#a7a16fb7a3f382284dbb080802f6e6f43">SVF::RaceResultValidator::compare</a></div><div class="ttdeci">static bool compare(const CallInst *CI1, const CallInst *CI2)</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8h_source.html#l00393">MTAResultValidator.h:393</a></div></div>
290
290
  <div class="ttc" id="namespaceSVF_html_adc8b60ca7d60cf6c81feae20e4a04c63"><div class="ttname"><a href="namespaceSVF.html#adc8b60ca7d60cf6c81feae20e4a04c63">SVF::CallInst</a></div><div class="ttdeci">llvm::CallInst CallInst</div><div class="ttdoc">LLVM Instructions. </div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00097">BasicTypes.h:97</a></div></div>