svf-tools 1.0.628 → 1.0.630

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 (572) hide show
  1. package/SVF-doxygen/html/html/AddressValue_8h_source.html +2 -2
  2. package/SVF-doxygen/html/html/AndersenPWC_8h_source.html +3 -3
  3. package/SVF-doxygen/html/html/AndersenSCD_8cpp_source.html +5 -5
  4. package/SVF-doxygen/html/html/AndersenSFR_8cpp_source.html +3 -3
  5. package/SVF-doxygen/html/html/AndersenStat_8cpp_source.html +3 -3
  6. package/SVF-doxygen/html/html/AndersenWaveDiff_8cpp_source.html +2 -2
  7. package/SVF-doxygen/html/html/Andersen_8cpp_source.html +21 -21
  8. package/SVF-doxygen/html/html/Andersen_8h_source.html +6 -6
  9. package/SVF-doxygen/html/html/Annotator_8h.html +2 -1
  10. package/SVF-doxygen/html/html/Annotator_8h_source.html +19 -18
  11. package/SVF-doxygen/html/html/CFGNormalizer_8cpp_source.html +3 -3
  12. package/SVF-doxygen/html/html/CFGNormalizer_8h_source.html +1 -1
  13. package/SVF-doxygen/html/html/CFLAlias_8cpp.html +1 -0
  14. package/SVF-doxygen/html/html/CFLAlias_8cpp_source.html +11 -10
  15. package/SVF-doxygen/html/html/CFLAlias_8h_source.html +5 -5
  16. package/SVF-doxygen/html/html/CFLBase_8cpp_source.html +3 -3
  17. package/SVF-doxygen/html/html/CFLGrammar_8cpp_source.html +2 -2
  18. package/SVF-doxygen/html/html/CFLGrammar_8h_source.html +3 -3
  19. package/SVF-doxygen/html/html/CFLGraphBuilder_8cpp_source.html +1 -1
  20. package/SVF-doxygen/html/html/CFLGraphBuilder_8h_source.html +1 -1
  21. package/SVF-doxygen/html/html/CFLGraph_8cpp_source.html +1 -1
  22. package/SVF-doxygen/html/html/CFLGraph_8h_source.html +2 -2
  23. package/SVF-doxygen/html/html/CFLVF_8cpp.html +1 -0
  24. package/SVF-doxygen/html/html/CFLVF_8cpp_source.html +6 -5
  25. package/SVF-doxygen/html/html/CFLVF_8h_source.html +3 -3
  26. package/SVF-doxygen/html/html/CHGBuilder_8cpp.html +1 -1
  27. package/SVF-doxygen/html/html/CHGBuilder_8cpp_source.html +23 -23
  28. package/SVF-doxygen/html/html/CHG_8cpp.html +7 -6
  29. package/SVF-doxygen/html/html/CHG_8cpp_source.html +22 -21
  30. package/SVF-doxygen/html/html/CHG_8h_source.html +1 -1
  31. package/SVF-doxygen/html/html/CSC_8cpp_source.html +3 -3
  32. package/SVF-doxygen/html/html/CSC_8h_source.html +3 -3
  33. package/SVF-doxygen/html/html/CallGraphBuilder_8cpp_source.html +2 -2
  34. package/SVF-doxygen/html/html/ConditionalPT_8h_source.html +4 -4
  35. package/SVF-doxygen/html/html/ConsGEdge_8h_source.html +2 -2
  36. package/SVF-doxygen/html/html/ConsGNode_8h_source.html +1 -1
  37. package/SVF-doxygen/html/html/ConsG_8cpp_source.html +11 -11
  38. package/SVF-doxygen/html/html/ConsG_8h_source.html +2 -2
  39. package/SVF-doxygen/html/html/ContextDDA_8cpp_source.html +8 -8
  40. package/SVF-doxygen/html/html/ContextDDA_8h_source.html +6 -6
  41. package/SVF-doxygen/html/html/CoreBitVector_8cpp_source.html +2 -2
  42. package/SVF-doxygen/html/html/CoreBitVector_8h_source.html +2 -2
  43. package/SVF-doxygen/html/html/CppUtil_8cpp.html +247 -0
  44. package/SVF-doxygen/html/html/CppUtil_8cpp_source.html +98 -0
  45. package/SVF-doxygen/html/html/CppUtil_8h.html +122 -0
  46. package/SVF-doxygen/html/html/CppUtil_8h_source.html +94 -0
  47. package/SVF-doxygen/html/html/CxtStmt_8h_source.html +3 -3
  48. package/SVF-doxygen/html/html/DCHG_8cpp.html +1 -1
  49. package/SVF-doxygen/html/html/DCHG_8cpp_source.html +40 -40
  50. package/SVF-doxygen/html/html/DCHG_8h.html +2 -1
  51. package/SVF-doxygen/html/html/DCHG_8h_source.html +75 -74
  52. package/SVF-doxygen/html/html/DDAClient_8cpp_source.html +10 -10
  53. package/SVF-doxygen/html/html/DDAClient_8h_source.html +3 -3
  54. package/SVF-doxygen/html/html/DDAPass_8cpp_source.html +6 -6
  55. package/SVF-doxygen/html/html/DDAPass_8h_source.html +3 -3
  56. package/SVF-doxygen/html/html/DDAStat_8cpp_source.html +4 -4
  57. package/SVF-doxygen/html/html/DDAStat_8h_source.html +2 -2
  58. package/SVF-doxygen/html/html/DDAVFSolver_8h_source.html +7 -7
  59. package/SVF-doxygen/html/html/DPItem_8h_source.html +6 -6
  60. package/SVF-doxygen/html/html/DoubleFreeChecker_8cpp_source.html +3 -3
  61. package/SVF-doxygen/html/html/ExeState_8cpp_source.html +2 -2
  62. package/SVF-doxygen/html/html/ExeState_8h_source.html +2 -2
  63. package/SVF-doxygen/html/html/ExtAPI_8cpp.html +9 -8
  64. package/SVF-doxygen/html/html/ExtAPI_8cpp_source.html +10 -9
  65. package/SVF-doxygen/html/html/ExtAPI_8h_source.html +3 -3
  66. package/SVF-doxygen/html/html/FSMPTA_8cpp_source.html +6 -6
  67. package/SVF-doxygen/html/html/FSMPTA_8h_source.html +1 -1
  68. package/SVF-doxygen/html/html/FileChecker_8cpp_source.html +1 -1
  69. package/SVF-doxygen/html/html/FlowDDA_8cpp_source.html +7 -7
  70. package/SVF-doxygen/html/html/FlowDDA_8h_source.html +7 -7
  71. package/SVF-doxygen/html/html/FlowSensitiveStat_8cpp_source.html +4 -4
  72. package/SVF-doxygen/html/html/FlowSensitive_8cpp_source.html +14 -14
  73. package/SVF-doxygen/html/html/FlowSensitive_8h_source.html +2 -2
  74. package/SVF-doxygen/html/html/GenericGraph_8h_source.html +6 -6
  75. package/SVF-doxygen/html/html/GraphPrinter_8h_source.html +1 -1
  76. package/SVF-doxygen/html/html/ICFGBuilder_8cpp_source.html +10 -10
  77. package/SVF-doxygen/html/html/ICFGBuilder_8h_source.html +1 -1
  78. package/SVF-doxygen/html/html/ICFGEdge_8h_source.html +3 -3
  79. package/SVF-doxygen/html/html/ICFGNode_8h_source.html +2 -2
  80. package/SVF-doxygen/html/html/ICFGStat_8h_source.html +1 -1
  81. package/SVF-doxygen/html/html/ICFG_8cpp_source.html +7 -7
  82. package/SVF-doxygen/html/html/ICFG_8h_source.html +2 -2
  83. package/SVF-doxygen/html/html/IRGraph_8cpp_source.html +8 -8
  84. package/SVF-doxygen/html/html/IRGraph_8h_source.html +1 -1
  85. package/SVF-doxygen/html/html/IntervalExeState_8cpp_source.html +2 -2
  86. package/SVF-doxygen/html/html/IntervalExeState_8h_source.html +3 -3
  87. package/SVF-doxygen/html/html/IntervalValue_8h_source.html +5 -5
  88. package/SVF-doxygen/html/html/LLVMLoopAnalysis_8cpp_source.html +4 -4
  89. package/SVF-doxygen/html/html/LLVMLoopAnalysis_8h.html +1 -0
  90. package/SVF-doxygen/html/html/LLVMLoopAnalysis_8h_source.html +3 -2
  91. package/SVF-doxygen/html/html/LLVMModule_8cpp_source.html +41 -41
  92. package/SVF-doxygen/html/html/LLVMModule_8h.html +1 -1
  93. package/SVF-doxygen/html/html/LLVMModule_8h_source.html +6 -6
  94. package/SVF-doxygen/html/html/LLVMUtil_8cpp.html +78 -1
  95. package/SVF-doxygen/html/html/LLVMUtil_8cpp_source.html +71 -38
  96. package/SVF-doxygen/html/html/LLVMUtil_8h.html +41 -7
  97. package/SVF-doxygen/html/html/LLVMUtil_8h_source.html +75 -50
  98. package/SVF-doxygen/html/html/LeakChecker_8cpp_source.html +4 -4
  99. package/SVF-doxygen/html/html/LocationSet_8cpp_source.html +7 -7
  100. package/SVF-doxygen/html/html/LocationSet_8h_source.html +4 -4
  101. package/SVF-doxygen/html/html/LockAnalysis_8cpp_source.html +11 -11
  102. package/SVF-doxygen/html/html/LockAnalysis_8h_source.html +5 -5
  103. package/SVF-doxygen/html/html/LockResultValidator_8cpp_source.html +6 -6
  104. package/SVF-doxygen/html/html/MHP_8cpp_source.html +10 -10
  105. package/SVF-doxygen/html/html/MHP_8h_source.html +2 -2
  106. package/SVF-doxygen/html/html/MSSAMuChi_8h_source.html +2 -2
  107. package/SVF-doxygen/html/html/MTAAnnotator_8cpp_source.html +5 -5
  108. package/SVF-doxygen/html/html/MTAAnnotator_8h.html +3 -1
  109. package/SVF-doxygen/html/html/MTAAnnotator_8h_source.html +29 -27
  110. package/SVF-doxygen/html/html/MTAResultValidator_8cpp_source.html +7 -7
  111. package/SVF-doxygen/html/html/MTAStat_8cpp_source.html +6 -6
  112. package/SVF-doxygen/html/html/MTAStat_8h.html +1 -0
  113. package/SVF-doxygen/html/html/MTAStat_8h_source.html +9 -8
  114. package/SVF-doxygen/html/html/MTA_8cpp_source.html +13 -13
  115. package/SVF-doxygen/html/html/MTA_8h.html +1 -0
  116. package/SVF-doxygen/html/html/MTA_8h_source.html +12 -11
  117. package/SVF-doxygen/html/html/MemPartition_8h_source.html +1 -1
  118. package/SVF-doxygen/html/html/MemRegion_8cpp_source.html +12 -12
  119. package/SVF-doxygen/html/html/MemRegion_8h_source.html +5 -5
  120. package/SVF-doxygen/html/html/MemSSA_8cpp_source.html +10 -10
  121. package/SVF-doxygen/html/html/MemSSA_8h_source.html +4 -4
  122. package/SVF-doxygen/html/html/MutablePointsToDS_8h_source.html +4 -4
  123. package/SVF-doxygen/html/html/NodeIDAllocator_8cpp.html +1 -0
  124. package/SVF-doxygen/html/html/NodeIDAllocator_8cpp_source.html +23 -23
  125. package/SVF-doxygen/html/html/NodeIDAllocator_8h_source.html +17 -17
  126. package/SVF-doxygen/html/html/NumericLiteral_8h_source.html +4 -4
  127. package/SVF-doxygen/html/html/PAGBuilderFromFile_8cpp_source.html +3 -3
  128. package/SVF-doxygen/html/html/PAGBuilderFromFile_8h_source.html +2 -2
  129. package/SVF-doxygen/html/html/PCG_8cpp_source.html +5 -5
  130. package/SVF-doxygen/html/html/PTACallGraph_8cpp_source.html +5 -5
  131. package/SVF-doxygen/html/html/PTACallGraph_8h_source.html +4 -4
  132. package/SVF-doxygen/html/html/PTAStat_8cpp_source.html +2 -2
  133. package/SVF-doxygen/html/html/PersistentPointsToCache_8h.html +1 -0
  134. package/SVF-doxygen/html/html/PersistentPointsToCache_8h_source.html +43 -43
  135. package/SVF-doxygen/html/html/PersistentPointsToDS_8h_source.html +12 -12
  136. package/SVF-doxygen/html/html/PointerAnalysisImpl_8cpp.html +1 -0
  137. package/SVF-doxygen/html/html/PointerAnalysisImpl_8cpp_source.html +24 -23
  138. package/SVF-doxygen/html/html/PointerAnalysisImpl_8h_source.html +22 -22
  139. package/SVF-doxygen/html/html/PointerAnalysis_8cpp.html +2 -1
  140. package/SVF-doxygen/html/html/PointerAnalysis_8cpp_source.html +34 -33
  141. package/SVF-doxygen/html/html/PointerAnalysis_8h_source.html +25 -25
  142. package/SVF-doxygen/html/html/PointsTo_8cpp_source.html +2 -2
  143. package/SVF-doxygen/html/html/PointsTo_8h_source.html +1 -1
  144. package/SVF-doxygen/html/html/ProgSlice_8cpp_source.html +3 -3
  145. package/SVF-doxygen/html/html/ProgSlice_8h_source.html +5 -5
  146. package/SVF-doxygen/html/html/RelExeState_8cpp_source.html +2 -2
  147. package/SVF-doxygen/html/html/RelExeState_8h_source.html +4 -4
  148. package/SVF-doxygen/html/html/RelationSolver_8cpp_source.html +1 -1
  149. package/SVF-doxygen/html/html/RelationSolver_8h_source.html +1 -1
  150. package/SVF-doxygen/html/html/SCC_8h_source.html +1 -1
  151. package/SVF-doxygen/html/html/SVFGBuilder_8cpp_source.html +5 -5
  152. package/SVF-doxygen/html/html/SVFGEdge_8h_source.html +1 -1
  153. package/SVF-doxygen/html/html/SVFGNode_8h_source.html +2 -2
  154. package/SVF-doxygen/html/html/SVFGOPT_8cpp_source.html +4 -4
  155. package/SVF-doxygen/html/html/SVFGOPT_8h_source.html +2 -2
  156. package/SVF-doxygen/html/html/SVFGReadWrite_8cpp_source.html +2 -2
  157. package/SVF-doxygen/html/html/SVFGStat_8cpp_source.html +4 -4
  158. package/SVF-doxygen/html/html/SVFGStat_8h_source.html +3 -3
  159. package/SVF-doxygen/html/html/SVFG_8cpp_source.html +13 -13
  160. package/SVF-doxygen/html/html/SVFG_8h_source.html +2 -2
  161. package/SVF-doxygen/html/html/SVFIR2ItvExeState_8cpp_source.html +12 -12
  162. package/SVF-doxygen/html/html/SVFIR2ItvExeState_8h_source.html +1 -1
  163. package/SVF-doxygen/html/html/SVFIR2Relation_8cpp_source.html +1 -1
  164. package/SVF-doxygen/html/html/SVFIRBuilder_8cpp.html +1 -1
  165. package/SVF-doxygen/html/html/SVFIRBuilder_8cpp_source.html +35 -35
  166. package/SVF-doxygen/html/html/SVFIRBuilder_8h.html +1 -0
  167. package/SVF-doxygen/html/html/SVFIRBuilder_8h_source.html +54 -53
  168. package/SVF-doxygen/html/html/SVFIR_8cpp_source.html +5 -5
  169. package/SVF-doxygen/html/html/SVFIR_8h_source.html +7 -7
  170. package/SVF-doxygen/html/html/SVFLoop_8h_source.html +1 -1
  171. package/SVF-doxygen/html/html/SVFModule_8cpp_source.html +1 -1
  172. package/SVF-doxygen/html/html/SVFModule_8h_source.html +1 -1
  173. package/SVF-doxygen/html/html/SVFStat_8cpp_source.html +4 -4
  174. package/SVF-doxygen/html/html/SVFStat_8h_source.html +1 -1
  175. package/SVF-doxygen/html/html/SVFStatements_8cpp_source.html +3 -3
  176. package/SVF-doxygen/html/html/SVFStatements_8h_source.html +6 -6
  177. package/SVF-doxygen/html/html/SVFType_8h.html +65 -35
  178. package/SVF-doxygen/html/html/SVFType_8h_source.html +114 -114
  179. package/SVF-doxygen/html/html/SVFUtil_8cpp_source.html +4 -4
  180. package/SVF-doxygen/html/html/SVFUtil_8h.html +2 -3
  181. package/SVF-doxygen/html/html/SVFUtil_8h_source.html +36 -36
  182. package/SVF-doxygen/html/html/SVFValue_8cpp_source.html +4 -4
  183. package/SVF-doxygen/html/html/SVFValue_8h_source.html +11 -11
  184. package/SVF-doxygen/html/html/SVFVariables_8cpp_source.html +3 -3
  185. package/SVF-doxygen/html/html/SVFVariables_8h_source.html +4 -4
  186. package/SVF-doxygen/html/html/SaberCheckerAPI_8h_source.html +1 -1
  187. package/SVF-doxygen/html/html/SaberCondAllocator_8cpp.html +2 -0
  188. package/SVF-doxygen/html/html/SaberCondAllocator_8cpp_source.html +37 -36
  189. package/SVF-doxygen/html/html/SaberCondAllocator_8h_source.html +27 -27
  190. package/SVF-doxygen/html/html/SaberSVFGBuilder_8cpp_source.html +5 -5
  191. package/SVF-doxygen/html/html/SparseBitVector_8h_source.html +1 -1
  192. package/SVF-doxygen/html/html/SrcSnkDDA_8cpp_source.html +6 -6
  193. package/SVF-doxygen/html/html/SymbolTableBuilder_8cpp.html +1 -1
  194. package/SVF-doxygen/html/html/SymbolTableBuilder_8cpp_source.html +36 -36
  195. package/SVF-doxygen/html/html/SymbolTableBuilder_8h_source.html +3 -3
  196. package/SVF-doxygen/html/html/SymbolTableInfo_8cpp_source.html +17 -17
  197. package/SVF-doxygen/html/html/SymbolTableInfo_8h_source.html +8 -8
  198. package/SVF-doxygen/html/html/TCT_8cpp_source.html +7 -7
  199. package/SVF-doxygen/html/html/TCT_8h_source.html +4 -4
  200. package/SVF-doxygen/html/html/ThreadAPI_8cpp_source.html +4 -4
  201. package/SVF-doxygen/html/html/ThreadCallGraph_8cpp_source.html +4 -4
  202. package/SVF-doxygen/html/html/ThreadCallGraph_8h_source.html +2 -2
  203. package/SVF-doxygen/html/html/TypeAnalysis_8cpp.html +1 -0
  204. package/SVF-doxygen/html/html/TypeAnalysis_8cpp_source.html +11 -10
  205. package/SVF-doxygen/html/html/TypeAnalysis_8h_source.html +5 -5
  206. package/SVF-doxygen/html/html/VFGEdge_8h_source.html +2 -2
  207. package/SVF-doxygen/html/html/VFGNode_8h_source.html +2 -2
  208. package/SVF-doxygen/html/html/VFG_8cpp_source.html +5 -5
  209. package/SVF-doxygen/html/html/VFG_8h_source.html +3 -3
  210. package/SVF-doxygen/html/html/VersionedFlowSensitiveStat_8cpp_source.html +5 -5
  211. package/SVF-doxygen/html/html/VersionedFlowSensitive_8cpp_source.html +7 -7
  212. package/SVF-doxygen/html/html/VersionedFlowSensitive_8h_source.html +3 -3
  213. package/SVF-doxygen/html/html/WPAFSSolver_8h_source.html +1 -1
  214. package/SVF-doxygen/html/html/WPAPass_8cpp_source.html +6 -6
  215. package/SVF-doxygen/html/html/WPAPass_8h_source.html +3 -3
  216. package/SVF-doxygen/html/html/WPASolver_8h_source.html +3 -3
  217. package/SVF-doxygen/html/html/WPAStat_8h_source.html +1 -1
  218. package/SVF-doxygen/html/html/WTO_8h_source.html +2 -2
  219. package/SVF-doxygen/html/html/WorkList_8h_source.html +1 -1
  220. package/SVF-doxygen/html/html/Z3Expr_8cpp_source.html +1 -1
  221. package/SVF-doxygen/html/html/Z3Expr_8h_source.html +1 -1
  222. package/SVF-doxygen/html/html/cfl_8cpp.html +1 -1
  223. package/SVF-doxygen/html/html/cfl_8cpp_source.html +1 -1
  224. package/SVF-doxygen/html/html/classSVF_1_1ActualINSVFGNode.html +1 -1
  225. package/SVF-doxygen/html/html/classSVF_1_1ActualOUTSVFGNode.html +1 -1
  226. package/SVF-doxygen/html/html/classSVF_1_1AddrStmt.html +1 -1
  227. package/SVF-doxygen/html/html/classSVF_1_1AddressValue.html +3 -3
  228. package/SVF-doxygen/html/html/classSVF_1_1AliasDDAClient.html +3 -3
  229. package/SVF-doxygen/html/html/classSVF_1_1Andersen.html +22 -22
  230. package/SVF-doxygen/html/html/classSVF_1_1AndersenBase.html +11 -11
  231. package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD.html +10 -10
  232. package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR.html +4 -4
  233. package/SVF-doxygen/html/html/classSVF_1_1AndersenStat.html +5 -5
  234. package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff.html +3 -3
  235. package/SVF-doxygen/html/html/classSVF_1_1Annotator.html +39 -39
  236. package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl.html +49 -49
  237. package/SVF-doxygen/html/html/classSVF_1_1BinaryOPStmt.html +1 -1
  238. package/SVF-doxygen/html/html/classSVF_1_1BinaryOPVFGNode.html +1 -1
  239. package/SVF-doxygen/html/html/classSVF_1_1BranchStmt.html +2 -2
  240. package/SVF-doxygen/html/html/classSVF_1_1BranchVFGNode.html +1 -1
  241. package/SVF-doxygen/html/html/classSVF_1_1CFGNormalizer.html +4 -4
  242. package/SVF-doxygen/html/html/classSVF_1_1CFLAlias.html +15 -15
  243. package/SVF-doxygen/html/html/classSVF_1_1CFLBase.html +8 -8
  244. package/SVF-doxygen/html/html/classSVF_1_1CFLData.html +2 -2
  245. package/SVF-doxygen/html/html/classSVF_1_1CFLGraph.html +1 -1
  246. package/SVF-doxygen/html/html/classSVF_1_1CFLVF.html +8 -8
  247. package/SVF-doxygen/html/html/classSVF_1_1CHGBuilder.html +63 -63
  248. package/SVF-doxygen/html/html/classSVF_1_1CHGraph.html +22 -22
  249. package/SVF-doxygen/html/html/classSVF_1_1CHNode.html +2 -2
  250. package/SVF-doxygen/html/html/classSVF_1_1CSC.html +4 -4
  251. package/SVF-doxygen/html/html/classSVF_1_1CallCFGEdge.html +1 -1
  252. package/SVF-doxygen/html/html/classSVF_1_1CallCHI.html +1 -1
  253. package/SVF-doxygen/html/html/classSVF_1_1CallGraphBuilder.html +2 -2
  254. package/SVF-doxygen/html/html/classSVF_1_1CallICFGNode.html +1 -1
  255. package/SVF-doxygen/html/html/classSVF_1_1CallMU.html +1 -1
  256. package/SVF-doxygen/html/html/classSVF_1_1CallPE.html +1 -1
  257. package/SVF-doxygen/html/html/classSVF_1_1CmpStmt.html +1 -1
  258. package/SVF-doxygen/html/html/classSVF_1_1CmpVFGNode.html +1 -1
  259. package/SVF-doxygen/html/html/classSVF_1_1CondPTAImpl.html +9 -9
  260. package/SVF-doxygen/html/html/classSVF_1_1ConstraintGraph.html +6 -6
  261. package/SVF-doxygen/html/html/classSVF_1_1ContextCond.html +2 -2
  262. package/SVF-doxygen/html/html/classSVF_1_1ContextDDA.html +23 -23
  263. package/SVF-doxygen/html/html/classSVF_1_1CopyStmt.html +1 -1
  264. package/SVF-doxygen/html/html/classSVF_1_1CoreBitVector.html +2 -2
  265. package/SVF-doxygen/html/html/classSVF_1_1CxtDPItem.html +2 -2
  266. package/SVF-doxygen/html/html/classSVF_1_1CxtProc.html +1 -1
  267. package/SVF-doxygen/html/html/classSVF_1_1CxtStmt.html +2 -2
  268. package/SVF-doxygen/html/html/classSVF_1_1CxtStmtDPItem.html +1 -1
  269. package/SVF-doxygen/html/html/classSVF_1_1CxtThread.html +2 -2
  270. package/SVF-doxygen/html/html/classSVF_1_1CxtThreadProc.html +1 -1
  271. package/SVF-doxygen/html/html/classSVF_1_1CxtThreadStmt.html +2 -2
  272. package/SVF-doxygen/html/html/classSVF_1_1DCHEdge.html +14 -14
  273. package/SVF-doxygen/html/html/classSVF_1_1DCHGraph.html +124 -124
  274. package/SVF-doxygen/html/html/classSVF_1_1DCHNode.html +66 -66
  275. package/SVF-doxygen/html/html/classSVF_1_1DDAClient.html +5 -5
  276. package/SVF-doxygen/html/html/classSVF_1_1DDAPass.html +6 -6
  277. package/SVF-doxygen/html/html/classSVF_1_1DDAStat.html +6 -6
  278. package/SVF-doxygen/html/html/classSVF_1_1DDAVFSolver.html +35 -35
  279. package/SVF-doxygen/html/html/classSVF_1_1DPItem.html +1 -1
  280. package/SVF-doxygen/html/html/classSVF_1_1DoubleFreeChecker.html +8 -8
  281. package/SVF-doxygen/html/html/classSVF_1_1EntryCHI.html +1 -1
  282. package/SVF-doxygen/html/html/classSVF_1_1ExeState.html +3 -3
  283. package/SVF-doxygen/html/html/classSVF_1_1ExtAPI.html +9 -9
  284. package/SVF-doxygen/html/html/classSVF_1_1FIObjVar.html +1 -1
  285. package/SVF-doxygen/html/html/classSVF_1_1FSMPTA.html +1 -1
  286. package/SVF-doxygen/html/html/classSVF_1_1FileChecker.html +3 -3
  287. package/SVF-doxygen/html/html/classSVF_1_1FlowDDA.html +17 -17
  288. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive.html +32 -32
  289. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveStat.html +6 -6
  290. package/SVF-doxygen/html/html/classSVF_1_1ForkJoinAnalysis.html +15 -15
  291. package/SVF-doxygen/html/html/classSVF_1_1FunEntryICFGNode.html +1 -1
  292. package/SVF-doxygen/html/html/classSVF_1_1FunExitICFGNode.html +1 -1
  293. package/SVF-doxygen/html/html/classSVF_1_1FunptrDDAClient.html +4 -4
  294. package/SVF-doxygen/html/html/classSVF_1_1GepObjVar.html +1 -1
  295. package/SVF-doxygen/html/html/classSVF_1_1GepStmt.html +1 -1
  296. package/SVF-doxygen/html/html/classSVF_1_1GepValVar.html +1 -1
  297. package/SVF-doxygen/html/html/classSVF_1_1GrammarBase.html +6 -6
  298. package/SVF-doxygen/html/html/classSVF_1_1GrammarBase_1_1SymbolHash.html +1 -1
  299. package/SVF-doxygen/html/html/classSVF_1_1ICFG.html +10 -10
  300. package/SVF-doxygen/html/html/classSVF_1_1ICFGBuilder.html +15 -15
  301. package/SVF-doxygen/html/html/classSVF_1_1ICFGNode.html +1 -1
  302. package/SVF-doxygen/html/html/classSVF_1_1ICFGStat.html +1 -1
  303. package/SVF-doxygen/html/html/classSVF_1_1IRGraph.html +4 -4
  304. package/SVF-doxygen/html/html/classSVF_1_1InterMSSAPHISVFGNode.html +1 -1
  305. package/SVF-doxygen/html/html/classSVF_1_1InterPHIVFGNode.html +1 -1
  306. package/SVF-doxygen/html/html/classSVF_1_1IntervalExeState.html +5 -5
  307. package/SVF-doxygen/html/html/classSVF_1_1IntervalValue.html +1 -1
  308. package/SVF-doxygen/html/html/classSVF_1_1IntraCFGEdge.html +1 -1
  309. package/SVF-doxygen/html/html/classSVF_1_1IntraICFGNode.html +1 -1
  310. package/SVF-doxygen/html/html/classSVF_1_1IntraPHIVFGNode.html +1 -1
  311. package/SVF-doxygen/html/html/classSVF_1_1LLVMLoopAnalysis.html +5 -5
  312. package/SVF-doxygen/html/html/classSVF_1_1LLVMModuleSet-members.html +1 -1
  313. package/SVF-doxygen/html/html/classSVF_1_1LLVMModuleSet.html +70 -70
  314. package/SVF-doxygen/html/html/classSVF_1_1LeakChecker.html +11 -11
  315. package/SVF-doxygen/html/html/classSVF_1_1LoadMU.html +1 -1
  316. package/SVF-doxygen/html/html/classSVF_1_1LoadStmt.html +1 -1
  317. package/SVF-doxygen/html/html/classSVF_1_1LocationSet.html +8 -8
  318. package/SVF-doxygen/html/html/classSVF_1_1LockAnalysis.html +47 -47
  319. package/SVF-doxygen/html/html/classSVF_1_1LockResultValidator.html +6 -6
  320. package/SVF-doxygen/html/html/classSVF_1_1MHP.html +35 -35
  321. package/SVF-doxygen/html/html/classSVF_1_1MRGenerator.html +23 -23
  322. package/SVF-doxygen/html/html/classSVF_1_1MSSACHI.html +1 -1
  323. package/SVF-doxygen/html/html/classSVF_1_1MSSADEF.html +1 -1
  324. package/SVF-doxygen/html/html/classSVF_1_1MSSAMU.html +1 -1
  325. package/SVF-doxygen/html/html/classSVF_1_1MSSAPHI.html +1 -1
  326. package/SVF-doxygen/html/html/classSVF_1_1MTA.html +38 -38
  327. package/SVF-doxygen/html/html/classSVF_1_1MTAAnnotator.html +77 -77
  328. package/SVF-doxygen/html/html/classSVF_1_1MTAResultValidator.html +13 -13
  329. package/SVF-doxygen/html/html/classSVF_1_1MTASVFGBuilder.html +11 -11
  330. package/SVF-doxygen/html/html/classSVF_1_1MTAStat.html +19 -19
  331. package/SVF-doxygen/html/html/classSVF_1_1MemObj.html +1 -1
  332. package/SVF-doxygen/html/html/classSVF_1_1MemSSA.html +29 -29
  333. package/SVF-doxygen/html/html/classSVF_1_1MemSSAStat.html +2 -2
  334. package/SVF-doxygen/html/html/classSVF_1_1MutableDFPTData.html +2 -2
  335. package/SVF-doxygen/html/html/classSVF_1_1MutablePTData.html +2 -2
  336. package/SVF-doxygen/html/html/classSVF_1_1MutableVersionedPTData.html +1 -1
  337. package/SVF-doxygen/html/html/classSVF_1_1NodeIDAllocator.html +15 -15
  338. package/SVF-doxygen/html/html/classSVF_1_1NodeIDAllocator_1_1Clusterer.html +43 -43
  339. package/SVF-doxygen/html/html/classSVF_1_1NumericLiteral.html +6 -6
  340. package/SVF-doxygen/html/html/classSVF_1_1ObjTypeInfo.html +5 -5
  341. package/SVF-doxygen/html/html/classSVF_1_1ObjVar.html +1 -1
  342. package/SVF-doxygen/html/html/classSVF_1_1PAGBuilderFromFile.html +3 -3
  343. package/SVF-doxygen/html/html/classSVF_1_1PCG.html +7 -7
  344. package/SVF-doxygen/html/html/classSVF_1_1PHIVFGNode.html +1 -1
  345. package/SVF-doxygen/html/html/classSVF_1_1POCRAlias.html +1 -1
  346. package/SVF-doxygen/html/html/classSVF_1_1PTACallGraph.html +4 -4
  347. package/SVF-doxygen/html/html/classSVF_1_1PTACallGraphEdge.html +2 -2
  348. package/SVF-doxygen/html/html/classSVF_1_1PTACallGraphNode.html +1 -1
  349. package/SVF-doxygen/html/html/classSVF_1_1PTAStat.html +2 -2
  350. package/SVF-doxygen/html/html/classSVF_1_1PersistentDFPTData.html +9 -9
  351. package/SVF-doxygen/html/html/classSVF_1_1PersistentDiffPTData.html +10 -10
  352. package/SVF-doxygen/html/html/classSVF_1_1PersistentIncDFPTData.html +2 -2
  353. package/SVF-doxygen/html/html/classSVF_1_1PersistentPTData.html +19 -19
  354. package/SVF-doxygen/html/html/classSVF_1_1PersistentPointsToCache.html +141 -141
  355. package/SVF-doxygen/html/html/classSVF_1_1PersistentVersionedPTData.html +1 -1
  356. package/SVF-doxygen/html/html/classSVF_1_1PhiStmt.html +2 -2
  357. package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.html +78 -78
  358. package/SVF-doxygen/html/html/classSVF_1_1PointsTo.html +5 -5
  359. package/SVF-doxygen/html/html/classSVF_1_1PointsTo_1_1PointsToIterator.html +2 -2
  360. package/SVF-doxygen/html/html/classSVF_1_1ProgSlice.html +7 -7
  361. package/SVF-doxygen/html/html/classSVF_1_1RaceResultValidator.html +6 -6
  362. package/SVF-doxygen/html/html/classSVF_1_1RelExeState.html +7 -7
  363. package/SVF-doxygen/html/html/classSVF_1_1RelationSolver.html +2 -2
  364. package/SVF-doxygen/html/html/classSVF_1_1RetCFGEdge.html +1 -1
  365. package/SVF-doxygen/html/html/classSVF_1_1RetMU.html +1 -1
  366. package/SVF-doxygen/html/html/classSVF_1_1RetPE.html +1 -1
  367. package/SVF-doxygen/html/html/classSVF_1_1SVFArrayType.html +6 -7
  368. package/SVF-doxygen/html/html/classSVF_1_1SVFBasicBlock.html +4 -4
  369. package/SVF-doxygen/html/html/classSVF_1_1SVFFunction.html +1 -1
  370. package/SVF-doxygen/html/html/classSVF_1_1SVFFunctionType.html +9 -10
  371. package/SVF-doxygen/html/html/classSVF_1_1SVFG.html +10 -10
  372. package/SVF-doxygen/html/html/classSVF_1_1SVFGBuilder.html +8 -8
  373. package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT.html +6 -6
  374. package/SVF-doxygen/html/html/classSVF_1_1SVFGStat.html +6 -6
  375. package/SVF-doxygen/html/html/classSVF_1_1SVFIR.html +5 -5
  376. package/SVF-doxygen/html/html/classSVF_1_1SVFIR2ItvExeState.html +30 -30
  377. package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder.html +352 -352
  378. package/SVF-doxygen/html/html/classSVF_1_1SVFIntergerType.html +5 -6
  379. package/SVF-doxygen/html/html/classSVF_1_1SVFModule.html +1 -1
  380. package/SVF-doxygen/html/html/classSVF_1_1SVFOtherType.html +4 -5
  381. package/SVF-doxygen/html/html/classSVF_1_1SVFPointerType.html +9 -10
  382. package/SVF-doxygen/html/html/classSVF_1_1SVFStat.html +5 -5
  383. package/SVF-doxygen/html/html/classSVF_1_1SVFStmt.html +3 -3
  384. package/SVF-doxygen/html/html/classSVF_1_1SVFStructType.html +5 -6
  385. package/SVF-doxygen/html/html/classSVF_1_1SVFType.html +40 -42
  386. package/SVF-doxygen/html/html/classSVF_1_1SVFValue.html +2 -2
  387. package/SVF-doxygen/html/html/classSVF_1_1SVFVar.html +2 -2
  388. package/SVF-doxygen/html/html/classSVF_1_1SaberCheckerAPI.html +4 -4
  389. package/SVF-doxygen/html/html/classSVF_1_1SaberCondAllocator.html +95 -95
  390. package/SVF-doxygen/html/html/classSVF_1_1SaberSVFGBuilder.html +5 -5
  391. package/SVF-doxygen/html/html/classSVF_1_1SelectStmt.html +1 -1
  392. package/SVF-doxygen/html/html/classSVF_1_1SparseBitVector.html +2 -2
  393. package/SVF-doxygen/html/html/classSVF_1_1SrcSnkDDA.html +14 -14
  394. package/SVF-doxygen/html/html/classSVF_1_1StInfo.html +44 -44
  395. package/SVF-doxygen/html/html/classSVF_1_1StmtDPItem.html +1 -1
  396. package/SVF-doxygen/html/html/classSVF_1_1StoreCHI.html +1 -1
  397. package/SVF-doxygen/html/html/classSVF_1_1StoreStmt.html +1 -1
  398. package/SVF-doxygen/html/html/classSVF_1_1SymbolTableBuilder.html +71 -71
  399. package/SVF-doxygen/html/html/classSVF_1_1SymbolTableInfo.html +23 -23
  400. package/SVF-doxygen/html/html/classSVF_1_1TCT.html +22 -22
  401. package/SVF-doxygen/html/html/classSVF_1_1TCTNode.html +1 -1
  402. package/SVF-doxygen/html/html/classSVF_1_1TDForkPE.html +1 -1
  403. package/SVF-doxygen/html/html/classSVF_1_1TDJoinPE.html +1 -1
  404. package/SVF-doxygen/html/html/classSVF_1_1ThreadAPI.html +6 -6
  405. package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraph.html +8 -8
  406. package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis.html +18 -18
  407. package/SVF-doxygen/html/html/classSVF_1_1UnaryOPStmt.html +1 -1
  408. package/SVF-doxygen/html/html/classSVF_1_1UnaryOPVFGNode.html +1 -1
  409. package/SVF-doxygen/html/html/classSVF_1_1VFG.html +5 -5
  410. package/SVF-doxygen/html/html/classSVF_1_1ValVar.html +1 -1
  411. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive.html +20 -20
  412. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitiveStat.html +7 -7
  413. package/SVF-doxygen/html/html/classSVF_1_1WPAFSSolver.html +2 -2
  414. package/SVF-doxygen/html/html/classSVF_1_1WPAMinimumSolver.html +2 -2
  415. package/SVF-doxygen/html/html/classSVF_1_1WPAPass.html +7 -7
  416. package/SVF-doxygen/html/html/classSVF_1_1WPASCCSolver.html +2 -2
  417. package/SVF-doxygen/html/html/classSVF_1_1WPASolver.html +1 -1
  418. package/SVF-doxygen/html/html/classSVF_1_1Wto.html +1 -1
  419. package/SVF-doxygen/html/html/classSVF_1_1WtoCycle.html +1 -1
  420. package/SVF-doxygen/html/html/classSVF_1_1iter__adaptor__base.html +1 -1
  421. package/SVF-doxygen/html/html/classSVF_1_1iter__facade__base_1_1ReferenceProxy.html +1 -1
  422. package/SVF-doxygen/html/html/classSVF_1_1iter__range.html +1 -1
  423. package/SVF-doxygen/html/html/classSVF_1_1mapped__iter.html +1 -1
  424. package/SVF-doxygen/html/html/classSVF_1_1pointer__iterator.html +1 -1
  425. package/SVF-doxygen/html/html/dda_8cpp.html +1 -1
  426. package/SVF-doxygen/html/html/dda_8cpp_source.html +1 -1
  427. package/SVF-doxygen/html/html/dir_862d3276083eaac55caed79b9120bf29.html +2 -0
  428. package/SVF-doxygen/html/html/dir_95e22971b5dbae2382075a3453e365b4.html +2 -0
  429. package/SVF-doxygen/html/html/dir_967d846b666a902c6ca9bc5c37976e49.html +0 -2
  430. package/SVF-doxygen/html/html/dir_a07347b69f031d2f872c9d4a9c274c8c.html +0 -2
  431. package/SVF-doxygen/html/html/files.html +41 -41
  432. package/SVF-doxygen/html/html/functions_func_i.html +3 -3
  433. package/SVF-doxygen/html/html/functions_g.html +1 -1
  434. package/SVF-doxygen/html/html/functions_i.html +3 -3
  435. package/SVF-doxygen/html/html/functions_n.html +4 -4
  436. package/SVF-doxygen/html/html/functions_o.html +15 -13
  437. package/SVF-doxygen/html/html/functions_s.html +7 -7
  438. package/SVF-doxygen/html/html/functions_t.html +9 -9
  439. package/SVF-doxygen/html/html/functions_v.html +3 -3
  440. package/SVF-doxygen/html/html/globals_c.html +1 -1
  441. package/SVF-doxygen/html/html/globals_d.html +3 -0
  442. package/SVF-doxygen/html/html/globals_defs.html +3 -0
  443. package/SVF-doxygen/html/html/globals_func.html +3 -3
  444. package/SVF-doxygen/html/html/globals_g.html +1 -1
  445. package/SVF-doxygen/html/html/globals_h.html +1 -1
  446. package/SVF-doxygen/html/html/globals_i.html +1 -1
  447. package/SVF-doxygen/html/html/globals_n.html +1 -1
  448. package/SVF-doxygen/html/html/globals_s.html +1 -1
  449. package/SVF-doxygen/html/html/globals_v.html +4 -4
  450. package/SVF-doxygen/html/html/globals_vars.html +7 -7
  451. package/SVF-doxygen/html/html/include_2MTA_2MTAResultValidator_8h_source.html +4 -4
  452. package/SVF-doxygen/html/html/iterator_8h_source.html +1 -1
  453. package/SVF-doxygen/html/html/iterator__range_8h_source.html +1 -1
  454. package/SVF-doxygen/html/html/mta_8cpp.html +4 -4
  455. package/SVF-doxygen/html/html/mta_8cpp_source.html +4 -4
  456. package/SVF-doxygen/html/html/namespaceSVF.html +53 -53
  457. package/SVF-doxygen/html/html/namespaceSVF_1_1LLVMUtil.html +620 -150
  458. package/SVF-doxygen/html/html/namespaceSVF_1_1SVFUtil.html +95 -125
  459. package/SVF-doxygen/html/html/namespaceSVF_1_1cppUtil.html +27 -440
  460. package/SVF-doxygen/html/html/namespaceSVF_1_1cppUtil_1_1ctir.html +4 -4
  461. package/SVF-doxygen/html/html/namespacemembers_d.html +1 -1
  462. package/SVF-doxygen/html/html/namespacemembers_func_d.html +1 -1
  463. package/SVF-doxygen/html/html/namespacemembers_func_g.html +10 -10
  464. package/SVF-doxygen/html/html/namespacemembers_func_i.html +9 -8
  465. package/SVF-doxygen/html/html/namespacemembers_func_v.html +1 -1
  466. package/SVF-doxygen/html/html/namespacemembers_g.html +10 -10
  467. package/SVF-doxygen/html/html/namespacemembers_i.html +9 -8
  468. package/SVF-doxygen/html/html/namespacemembers_n.html +1 -1
  469. package/SVF-doxygen/html/html/namespacemembers_type_n.html +1 -1
  470. package/SVF-doxygen/html/html/namespacemembers_v.html +1 -1
  471. package/SVF-doxygen/html/html/saber_8cpp.html +1 -1
  472. package/SVF-doxygen/html/html/saber_8cpp_source.html +1 -1
  473. package/SVF-doxygen/html/html/search/all_10.js +1 -1
  474. package/SVF-doxygen/html/html/search/all_12.js +6 -6
  475. package/SVF-doxygen/html/html/search/all_13.js +5 -5
  476. package/SVF-doxygen/html/html/search/all_15.js +7 -7
  477. package/SVF-doxygen/html/html/search/all_16.js +1 -1
  478. package/SVF-doxygen/html/html/search/all_3.js +3 -3
  479. package/SVF-doxygen/html/html/search/all_4.js +2 -1
  480. package/SVF-doxygen/html/html/search/all_7.js +12 -12
  481. package/SVF-doxygen/html/html/search/all_8.js +1 -1
  482. package/SVF-doxygen/html/html/search/all_9.js +10 -10
  483. package/SVF-doxygen/html/html/search/all_b.js +1 -1
  484. package/SVF-doxygen/html/html/search/all_e.js +3 -3
  485. package/SVF-doxygen/html/html/search/all_f.js +2 -2
  486. package/SVF-doxygen/html/html/search/defines_3.js +1 -0
  487. package/SVF-doxygen/html/html/search/files_2.js +2 -2
  488. package/SVF-doxygen/html/html/search/functions_14.js +1 -1
  489. package/SVF-doxygen/html/html/search/functions_3.js +1 -1
  490. package/SVF-doxygen/html/html/search/functions_6.js +12 -12
  491. package/SVF-doxygen/html/html/search/functions_7.js +1 -1
  492. package/SVF-doxygen/html/html/search/functions_8.js +10 -10
  493. package/SVF-doxygen/html/html/search/typedefs_c.js +1 -1
  494. package/SVF-doxygen/html/html/search/variables_12.js +1 -1
  495. package/SVF-doxygen/html/html/search/variables_13.js +2 -2
  496. package/SVF-doxygen/html/html/search/variables_15.js +4 -4
  497. package/SVF-doxygen/html/html/search/variables_3.js +1 -1
  498. package/SVF-doxygen/html/html/search/variables_e.js +1 -1
  499. package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01CHGraph_01_5_01_4.html +12 -12
  500. package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01ConstraintGraph_01_5_01_4-members.html +1 -1
  501. package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01ConstraintGraph_01_5_01_4.html +26 -16
  502. package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01IRGraph_01_5_01_4-members.html +1 -1
  503. package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01IRGraph_01_5_01_4.html +25 -15
  504. package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01PTACallGraph_01_5_01_4.html +1 -1
  505. package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01SVFG_01_5_01_4-members.html +1 -1
  506. package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01SVFG_01_5_01_4.html +29 -19
  507. package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01Inverse_3_01SVF_1_1DCHNode_01_5_01_4_01_4.html +1 -1
  508. package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1DCHGraph_01_5_01_4.html +2 -2
  509. package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1DCHNode_01_5_01_4.html +1 -1
  510. package/SVF-doxygen/html/html/structSVF_1_1GrammarBase_1_1Symbol.html +2 -2
  511. package/SVF-doxygen/html/html/structSVF_1_1Hash.html +3 -3
  512. package/SVF-doxygen/html/html/structSVF_1_1Hash_3_01NodePair_01_4.html +3 -3
  513. package/SVF-doxygen/html/html/structSVF_1_1Hash_3_01std_1_1pair_3_01S_00_01T_01_4_01_4.html +5 -5
  514. package/SVF-doxygen/html/html/structSVF_1_1MemRegion_1_1equalMemRegion.html +1 -1
  515. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1equalNodeBS.html +3 -3
  516. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1equalPointsTo.html +3 -3
  517. package/SVF-doxygen/html/html/structSVF_1_1cppUtil_1_1DemangledName.html +6 -6
  518. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1CondStdSet_3_01Element_01_4_01_4.html +1 -1
  519. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1CxtDPItem_01_4.html +1 -1
  520. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1CxtStmtDPItem_3_01LocCond_01_4_01_4.html +1 -1
  521. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1LocationSet_01_4.html +1 -1
  522. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1NodePair_01_4.html +3 -3
  523. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1SparseBitVector_3_01N_01_4_01_4.html +4 -4
  524. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1StmtDPItem_3_01LocCond_01_4_01_4.html +1 -1
  525. package/SVF-doxygen/html/html/structstd_1_1hash_3_01std_1_1vector_3_01T_01_4_01_4.html +3 -3
  526. package/SVF-doxygen/html/html/svf-ex_8cpp.html +2 -2
  527. package/SVF-doxygen/html/html/svf-ex_8cpp_source.html +3 -3
  528. package/SVF-doxygen/html/html/tools_2MTA_2MTAResultValidator_8h_source.html +4 -4
  529. package/SVF-doxygen/html/html/wpa_8cpp.html +1 -1
  530. package/SVF-doxygen/html/html/wpa_8cpp_source.html +1 -1
  531. package/include/MTA/MTA.h +1 -0
  532. package/include/MTA/MTAStat.h +1 -0
  533. package/include/MemoryModel/PersistentPointsToCache.h +1 -0
  534. package/include/SVF-LLVM/DCHG.h +2 -1
  535. package/include/SVF-LLVM/LLVMLoopAnalysis.h +1 -0
  536. package/include/SVF-LLVM/LLVMModule.h +2 -2
  537. package/include/SVF-LLVM/LLVMUtil.h +135 -79
  538. package/include/SVF-LLVM/SVFIRBuilder.h +1 -0
  539. package/include/SVFIR/PAGBuilderFromFile.h +3 -3
  540. package/include/SVFIR/SVFIR.h +3 -3
  541. package/include/SVFIR/SVFModule.h +3 -3
  542. package/include/SVFIR/SVFStatements.h +3 -3
  543. package/include/SVFIR/SVFType.h +120 -103
  544. package/include/SVFIR/SVFValue.h +3 -3
  545. package/include/SVFIR/SVFVariables.h +3 -3
  546. package/include/SVFIR/SymbolTableInfo.h +3 -3
  547. package/include/Util/Annotator.h +8 -17
  548. package/include/{SVF-LLVM/CPPUtil.h → Util/CppUtil.h} +5 -54
  549. package/include/Util/SVFUtil.h +3 -9
  550. package/index.html +9 -5
  551. package/lib/CFL/CFLAlias.cpp +1 -1
  552. package/lib/CFL/CFLVF.cpp +1 -0
  553. package/lib/Graphs/CHG.cpp +1 -0
  554. package/lib/Graphs/ConsG.cpp +0 -5
  555. package/lib/Graphs/IRGraph.cpp +0 -5
  556. package/lib/Graphs/SVFG.cpp +0 -5
  557. package/lib/MemoryModel/PointerAnalysis.cpp +1 -0
  558. package/lib/MemoryModel/PointerAnalysisImpl.cpp +1 -0
  559. package/lib/SABER/SaberCondAllocator.cpp +2 -0
  560. package/lib/SVF-LLVM/CHGBuilder.cpp +10 -10
  561. package/lib/SVF-LLVM/DCHG.cpp +1 -1
  562. package/lib/SVF-LLVM/LLVMModule.cpp +4 -4
  563. package/lib/SVF-LLVM/LLVMUtil.cpp +362 -4
  564. package/lib/SVF-LLVM/SVFIRBuilder.cpp +2 -2
  565. package/lib/SVF-LLVM/SymbolTableBuilder.cpp +1 -1
  566. package/lib/Util/CppUtil.cpp +214 -0
  567. package/lib/Util/ExtAPI.cpp +1 -1
  568. package/lib/Util/NodeIDAllocator.cpp +3 -2
  569. package/lib/WPA/TypeAnalysis.cpp +1 -0
  570. package/package.json +1 -1
  571. package/tools/MTA/MTAAnnotator.h +2 -0
  572. package/lib/SVF-LLVM/CPPUtil.cpp +0 -572
@@ -309,8 +309,6 @@ Functions</h2></td></tr>
309
309
  <tr class="separator:ae62938f722543d6d7fc201b685be1abf"><td class="memSeparator" colspan="2">&#160;</td></tr>
310
310
  <tr class="memitem:a9236e11e62bde33d6ab1f309300c488a"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceSVF_1_1SVFUtil.html#a9236e11e62bde33d6ab1f309300c488a">isStaticExtCall</a> (const <a class="el" href="classSVF_1_1SVFInstruction.html">SVFInstruction</a> *inst)</td></tr>
311
311
  <tr class="separator:a9236e11e62bde33d6ab1f309300c488a"><td class="memSeparator" colspan="2">&#160;</td></tr>
312
- <tr class="memitem:ab87fef7b10465d3e635643fcb93b95a7"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceSVF_1_1SVFUtil.html#ab87fef7b10465d3e635643fcb93b95a7">isProgEntryFunction</a> (const <a class="el" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a> *fun)</td></tr>
313
- <tr class="separator:ab87fef7b10465d3e635643fcb93b95a7"><td class="memSeparator" colspan="2">&#160;</td></tr>
314
312
  <tr class="memitem:a6528edf9a1750df4a84d1a60d4d0bbe4"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceSVF_1_1SVFUtil.html#a6528edf9a1750df4a84d1a60d4d0bbe4">isProgExitCall</a> (const <a class="el" href="classSVF_1_1CallSite.html">CallSite</a> cs)</td></tr>
315
313
  <tr class="separator:a6528edf9a1750df4a84d1a60d4d0bbe4"><td class="memSeparator" colspan="2">&#160;</td></tr>
316
314
  <tr class="memitem:a81e9fe00756a3f42395261c87e64de02"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceSVF_1_1SVFUtil.html#a81e9fe00756a3f42395261c87e64de02">isProgExitCall</a> (const <a class="el" href="classSVF_1_1SVFInstruction.html">SVFInstruction</a> *inst)</td></tr>
@@ -476,7 +474,7 @@ Functions</h2></td></tr>
476
474
  </table>
477
475
  </div><div class="memdoc">
478
476
 
479
- <p class="definition">Definition at line <a class="el" href="SVFUtil_8h_source.html#l00164">164</a> of file <a class="el" href="SVFUtil_8h_source.html">SVFUtil.h</a>.</p>
477
+ <p class="definition">Definition at line <a class="el" href="SVFUtil_8h_source.html#l00165">165</a> of file <a class="el" href="SVFUtil_8h_source.html">SVFUtil.h</a>.</p>
480
478
 
481
479
  </div>
482
480
  </div>
@@ -701,8 +699,8 @@ template&lt;class X , class Y &gt; </div>
701
699
  </table>
702
700
  </div><div class="memdoc">
703
701
 
704
- <p class="definition">Definition at line <a class="el" href="SVFUtil_8h_source.html#l00123">123</a> of file <a class="el" href="SVFUtil_8h_source.html">SVFUtil.h</a>.</p>
705
- <div class="fragment"><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;{</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <span class="keywordflow">if</span> (lpts.count() != rpts.count())</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <span class="keywordflow">return</span> (lpts.count() &lt; rpts.count());</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; {</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; NodeBS::iterator bit = lpts.begin(), eit = lpts.end();</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; NodeBS::iterator rbit = rpts.begin(), reit = rpts.end();</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <span class="keywordflow">for</span> (; bit != eit &amp;&amp; rbit != reit; bit++, rbit++)</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; {</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="keywordflow">if</span> (*bit != *rbit)</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="keywordflow">return</span> (*bit &lt; *rbit);</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; }</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; }</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;}</div></div><!-- fragment -->
702
+ <p class="definition">Definition at line <a class="el" href="SVFUtil_8h_source.html#l00124">124</a> of file <a class="el" href="SVFUtil_8h_source.html">SVFUtil.h</a>.</p>
703
+ <div class="fragment"><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;{</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <span class="keywordflow">if</span> (lpts.count() != rpts.count())</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="keywordflow">return</span> (lpts.count() &lt; rpts.count());</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; {</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; NodeBS::iterator bit = lpts.begin(), eit = lpts.end();</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; NodeBS::iterator rbit = rpts.begin(), reit = rpts.end();</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <span class="keywordflow">for</span> (; bit != eit &amp;&amp; rbit != reit; bit++, rbit++)</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; {</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="keywordflow">if</span> (*bit != *rbit)</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <span class="keywordflow">return</span> (*bit &lt; *rbit);</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; }</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; }</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;}</div></div><!-- fragment -->
706
704
  </div>
707
705
  </div>
708
706
  <a id="aa5ce14119a6e3b0b6022753ddd5890f3"></a>
@@ -743,8 +741,8 @@ template&lt;class X , class Y &gt; </div>
743
741
  <li>If the sizes are equal, comparing the points-to targets. </li>
744
742
  </ol>
745
743
 
746
- <p class="definition">Definition at line <a class="el" href="SVFUtil_8h_source.html#l00105">105</a> of file <a class="el" href="SVFUtil_8h_source.html">SVFUtil.h</a>.</p>
747
- <div class="fragment"><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;{</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="keywordflow">if</span> (lpts.count() != rpts.count())</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <span class="keywordflow">return</span> (lpts.count() &lt; rpts.count());</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; {</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; PointsTo::iterator bit = lpts.begin(), eit = lpts.end();</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; PointsTo::iterator rbit = rpts.begin(), reit = rpts.end();</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <span class="keywordflow">for</span> (; bit != eit &amp;&amp; rbit != reit; bit++, rbit++)</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; {</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <span class="keywordflow">if</span> (*bit != *rbit)</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="keywordflow">return</span> (*bit &lt; *rbit);</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; }</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; }</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;}</div></div><!-- fragment -->
744
+ <p class="definition">Definition at line <a class="el" href="SVFUtil_8h_source.html#l00106">106</a> of file <a class="el" href="SVFUtil_8h_source.html">SVFUtil.h</a>.</p>
745
+ <div class="fragment"><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;{</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <span class="keywordflow">if</span> (lpts.count() != rpts.count())</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="keywordflow">return</span> (lpts.count() &lt; rpts.count());</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; {</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; PointsTo::iterator bit = lpts.begin(), eit = lpts.end();</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; PointsTo::iterator rbit = rpts.begin(), reit = rpts.end();</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="keywordflow">for</span> (; bit != eit &amp;&amp; rbit != reit; bit++, rbit++)</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; {</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="keywordflow">if</span> (*bit != *rbit)</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="keywordflow">return</span> (*bit &lt; *rbit);</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; }</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; }</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;}</div></div><!-- fragment -->
748
746
  </div>
749
747
  </div>
750
748
  <a id="a4a15cc5570eed12dd6ee766213e11d61"></a>
@@ -778,7 +776,7 @@ template&lt;class X , class Y &gt; </div>
778
776
 
779
777
  <p class="definition">Definition at line <a class="el" href="SVFUtil_8cpp_source.html#l00136">136</a> of file <a class="el" href="SVFUtil_8cpp_source.html">SVFUtil.cpp</a>.</p>
780
778
  <div class="fragment"><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;{</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot;node &quot;</span> &lt;&lt; node &lt;&lt; <span class="stringliteral">&quot; alias set: {&quot;</span>;</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aeb570e9267fd7b189bd1bc877896d7ab">dumpSet</a>(bs);</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot;}\n&quot;</span>;</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;}</div><div class="ttc" id="namespaceSVF_1_1SVFUtil_html_aeb570e9267fd7b189bd1bc877896d7ab"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#aeb570e9267fd7b189bd1bc877896d7ab">SVF::SVFUtil::dumpSet</a></div><div class="ttdeci">void dumpSet(NodeBS To, OutStream &amp;O=SVFUtil::outs())</div><div class="ttdoc">Dump sparse bitvector set. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8cpp_source.html#l00146">SVFUtil.cpp:146</a></div></div>
781
- <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_aed0b0b9f035057552a6a82154fd88e61"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVF::SVFUtil::outs</a></div><div class="ttdeci">std::ostream &amp; outs()</div><div class="ttdoc">Overwrite llvm::outs() </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00049">SVFUtil.h:49</a></div></div>
779
+ <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_aed0b0b9f035057552a6a82154fd88e61"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVF::SVFUtil::outs</a></div><div class="ttdeci">std::ostream &amp; outs()</div><div class="ttdoc">Overwrite llvm::outs() </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00050">SVFUtil.h:50</a></div></div>
782
780
  </div><!-- fragment -->
783
781
  </div>
784
782
  </div>
@@ -800,7 +798,7 @@ template&lt;class X , class Y &gt; </div>
800
798
 
801
799
  <p class="definition">Definition at line <a class="el" href="SVFUtil_8cpp_source.html#l00121">121</a> of file <a class="el" href="SVFUtil_8cpp_source.html">SVFUtil.cpp</a>.</p>
802
800
  <div class="fragment"><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;{</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot;{&quot;</span>;</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <span class="keywordflow">for</span> (PointsToList::const_iterator ii = ptl.begin(), ie = ptl.end();</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; ii != ie; ii++)</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; {</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="keyword">auto</span> bs = *ii;</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aeb570e9267fd7b189bd1bc877896d7ab">dumpSet</a>(bs);</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; }</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot;}\n&quot;</span>;</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;}</div><div class="ttc" id="namespaceSVF_1_1SVFUtil_html_aeb570e9267fd7b189bd1bc877896d7ab"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#aeb570e9267fd7b189bd1bc877896d7ab">SVF::SVFUtil::dumpSet</a></div><div class="ttdeci">void dumpSet(NodeBS To, OutStream &amp;O=SVFUtil::outs())</div><div class="ttdoc">Dump sparse bitvector set. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8cpp_source.html#l00146">SVFUtil.cpp:146</a></div></div>
803
- <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_aed0b0b9f035057552a6a82154fd88e61"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVF::SVFUtil::outs</a></div><div class="ttdeci">std::ostream &amp; outs()</div><div class="ttdoc">Overwrite llvm::outs() </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00049">SVFUtil.h:49</a></div></div>
801
+ <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_aed0b0b9f035057552a6a82154fd88e61"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVF::SVFUtil::outs</a></div><div class="ttdeci">std::ostream &amp; outs()</div><div class="ttdoc">Overwrite llvm::outs() </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00050">SVFUtil.h:50</a></div></div>
804
802
  </div><!-- fragment -->
805
803
  </div>
806
804
  </div>
@@ -835,7 +833,7 @@ template&lt;class X , class Y &gt; </div>
835
833
 
836
834
  <p class="definition">Definition at line <a class="el" href="SVFUtil_8cpp_source.html#l00106">106</a> of file <a class="el" href="SVFUtil_8cpp_source.html">SVFUtil.cpp</a>.</p>
837
835
  <div class="fragment"><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;{</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot;node &quot;</span> &lt;&lt; node &lt;&lt; <span class="stringliteral">&quot; points-to: {&quot;</span>;</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aeb570e9267fd7b189bd1bc877896d7ab">dumpSet</a>(bs);</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot;}\n&quot;</span>;</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;}</div><div class="ttc" id="namespaceSVF_1_1SVFUtil_html_aeb570e9267fd7b189bd1bc877896d7ab"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#aeb570e9267fd7b189bd1bc877896d7ab">SVF::SVFUtil::dumpSet</a></div><div class="ttdeci">void dumpSet(NodeBS To, OutStream &amp;O=SVFUtil::outs())</div><div class="ttdoc">Dump sparse bitvector set. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8cpp_source.html#l00146">SVFUtil.cpp:146</a></div></div>
838
- <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_aed0b0b9f035057552a6a82154fd88e61"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVF::SVFUtil::outs</a></div><div class="ttdeci">std::ostream &amp; outs()</div><div class="ttdoc">Overwrite llvm::outs() </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00049">SVFUtil.h:49</a></div></div>
836
+ <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_aed0b0b9f035057552a6a82154fd88e61"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVF::SVFUtil::outs</a></div><div class="ttdeci">std::ostream &amp; outs()</div><div class="ttdoc">Overwrite llvm::outs() </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00050">SVFUtil.h:50</a></div></div>
839
837
  </div><!-- fragment -->
840
838
  </div>
841
839
  </div>
@@ -925,7 +923,7 @@ template&lt;class X , class Y &gt; </div>
925
923
 
926
924
  <p class="definition">Definition at line <a class="el" href="SVFUtil_8cpp_source.html#l00114">114</a> of file <a class="el" href="SVFUtil_8cpp_source.html">SVFUtil.cpp</a>.</p>
927
925
  <div class="fragment"><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;{</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot;{&quot;</span>;</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aeb570e9267fd7b189bd1bc877896d7ab">dumpSet</a>(bs);</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot;}\n&quot;</span>;</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;}</div><div class="ttc" id="namespaceSVF_1_1SVFUtil_html_aeb570e9267fd7b189bd1bc877896d7ab"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#aeb570e9267fd7b189bd1bc877896d7ab">SVF::SVFUtil::dumpSet</a></div><div class="ttdeci">void dumpSet(NodeBS To, OutStream &amp;O=SVFUtil::outs())</div><div class="ttdoc">Dump sparse bitvector set. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8cpp_source.html#l00146">SVFUtil.cpp:146</a></div></div>
928
- <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_aed0b0b9f035057552a6a82154fd88e61"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVF::SVFUtil::outs</a></div><div class="ttdeci">std::ostream &amp; outs()</div><div class="ttdoc">Overwrite llvm::outs() </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00049">SVFUtil.h:49</a></div></div>
926
+ <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_aed0b0b9f035057552a6a82154fd88e61"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVF::SVFUtil::outs</a></div><div class="ttdeci">std::ostream &amp; outs()</div><div class="ttdoc">Overwrite llvm::outs() </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00050">SVFUtil.h:50</a></div></div>
929
927
  </div><!-- fragment -->
930
928
  </div>
931
929
  </div>
@@ -1069,8 +1067,8 @@ template&lt;class X , class Y &gt; </div>
1069
1067
 
1070
1068
  <p>Overwrite <a class="el" href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc" title="Overwrite llvm::errs() ">llvm::errs()</a> </p>
1071
1069
 
1072
- <p class="definition">Definition at line <a class="el" href="SVFUtil_8h_source.html#l00055">55</a> of file <a class="el" href="SVFUtil_8h_source.html">SVFUtil.h</a>.</p>
1073
- <div class="fragment"><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;{</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keywordflow">return</span> std::cerr;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;}</div></div><!-- fragment -->
1070
+ <p class="definition">Definition at line <a class="el" href="SVFUtil_8h_source.html#l00056">56</a> of file <a class="el" href="SVFUtil_8h_source.html">SVFUtil.h</a>.</p>
1071
+ <div class="fragment"><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;{</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keywordflow">return</span> std::cerr;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;}</div></div><!-- fragment -->
1074
1072
  </div>
1075
1073
  </div>
1076
1074
  <a id="a8c64663b564eb7c399013389920ab500"></a>
@@ -1157,8 +1155,8 @@ template&lt;class X , class Y &gt; </div>
1157
1155
 
1158
1156
  <p>Return callee of a callsite. Return null if this is an indirect call. </p>
1159
1157
 
1160
- <p class="definition">Definition at line <a class="el" href="SVFUtil_8h_source.html#l00227">227</a> of file <a class="el" href="SVFUtil_8h_source.html">SVFUtil.h</a>.</p>
1161
- <div class="fragment"><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160;{</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; <span class="keywordflow">return</span> cs.getCalledFunction();</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160;}</div></div><!-- fragment -->
1158
+ <p class="definition">Definition at line <a class="el" href="SVFUtil_8h_source.html#l00228">228</a> of file <a class="el" href="SVFUtil_8h_source.html">SVFUtil.h</a>.</p>
1159
+ <div class="fragment"><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160;{</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; <span class="keywordflow">return</span> cs.getCalledFunction();</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160;}</div></div><!-- fragment -->
1162
1160
  </div>
1163
1161
  </div>
1164
1162
  <a id="a13d4f8034c444986da7c57cb5338f851"></a>
@@ -1185,9 +1183,9 @@ template&lt;class X , class Y &gt; </div>
1185
1183
  </table>
1186
1184
  </div><div class="memdoc">
1187
1185
 
1188
- <p class="definition">Definition at line <a class="el" href="SVFUtil_8h_source.html#l00232">232</a> of file <a class="el" href="SVFUtil_8h_source.html">SVFUtil.h</a>.</p>
1189
- <div class="fragment"><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160;{</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; <span class="keywordflow">if</span> (!<a class="code" href="namespaceSVF_1_1SVFUtil.html#a8cb755f339ad1650f8ae2155451d9c0d">isCallSite</a>(inst))</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; CallSite cs(inst);</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a13d4f8034c444986da7c57cb5338f851">getCallee</a>(cs);</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160;}</div><div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a8cb755f339ad1650f8ae2155451d9c0d"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a8cb755f339ad1650f8ae2155451d9c0d">SVF::SVFUtil::isCallSite</a></div><div class="ttdeci">bool isCallSite(const SVFValue *val)</div><div class="ttdoc">Whether an instruction is a call or invoke instruction. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00177">SVFUtil.h:177</a></div></div>
1190
- <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a13d4f8034c444986da7c57cb5338f851"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a13d4f8034c444986da7c57cb5338f851">SVF::SVFUtil::getCallee</a></div><div class="ttdeci">const SVFFunction * getCallee(const SVFInstruction *inst)</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00232">SVFUtil.h:232</a></div></div>
1186
+ <p class="definition">Definition at line <a class="el" href="SVFUtil_8h_source.html#l00233">233</a> of file <a class="el" href="SVFUtil_8h_source.html">SVFUtil.h</a>.</p>
1187
+ <div class="fragment"><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160;{</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; <span class="keywordflow">if</span> (!<a class="code" href="namespaceSVF_1_1SVFUtil.html#a8cb755f339ad1650f8ae2155451d9c0d">isCallSite</a>(inst))</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; CallSite cs(inst);</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a13d4f8034c444986da7c57cb5338f851">getCallee</a>(cs);</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160;}</div><div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a8cb755f339ad1650f8ae2155451d9c0d"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a8cb755f339ad1650f8ae2155451d9c0d">SVF::SVFUtil::isCallSite</a></div><div class="ttdeci">bool isCallSite(const SVFValue *val)</div><div class="ttdoc">Whether an instruction is a call or invoke instruction. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00178">SVFUtil.h:178</a></div></div>
1188
+ <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a13d4f8034c444986da7c57cb5338f851"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a13d4f8034c444986da7c57cb5338f851">SVF::SVFUtil::getCallee</a></div><div class="ttdeci">const SVFFunction * getCallee(const SVFInstruction *inst)</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00233">SVFUtil.h:233</a></div></div>
1191
1189
  </div><!-- fragment -->
1192
1190
  </div>
1193
1191
  </div>
@@ -1275,8 +1273,8 @@ template&lt;class X , class Y &gt; </div>
1275
1273
 
1276
1274
  <p>Get the position of argument that holds an allocated heap object. </p>
1277
1275
 
1278
- <p class="definition">Definition at line <a class="el" href="SVFUtil_8h_source.html#l00316">316</a> of file <a class="el" href="SVFUtil_8h_source.html">SVFUtil.h</a>.</p>
1279
- <div class="fragment"><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160;{</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; <span class="keywordflow">return</span> ExtAPI::getExtAPI()-&gt;get_alloc_arg_pos(fun);</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160;}</div></div><!-- fragment -->
1276
+ <p class="definition">Definition at line <a class="el" href="SVFUtil_8h_source.html#l00317">317</a> of file <a class="el" href="SVFUtil_8h_source.html">SVFUtil.h</a>.</p>
1277
+ <div class="fragment"><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160;{</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; <span class="keywordflow">return</span> ExtAPI::getExtAPI()-&gt;get_alloc_arg_pos(fun);</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160;}</div></div><!-- fragment -->
1280
1278
  </div>
1281
1279
  </div>
1282
1280
  <a id="a298b6366145ed871faf3d01420ae5d20"></a>
@@ -1304,7 +1302,7 @@ template&lt;class X , class Y &gt; </div>
1304
1302
  </div><div class="memdoc">
1305
1303
 
1306
1304
  <p class="definition">Definition at line <a class="el" href="SVFUtil_8h_source.html#l00458">458</a> of file <a class="el" href="SVFUtil_8h_source.html">SVFUtil.h</a>.</p>
1307
- <div class="fragment"><div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160;{</div><div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a6d613bcc37e54b922ad1b1869b66ee59">getHeapAllocHoldingArgPosition</a>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a13d4f8034c444986da7c57cb5338f851">getCallee</a>(cs));</div><div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160;}</div><div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a13d4f8034c444986da7c57cb5338f851"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a13d4f8034c444986da7c57cb5338f851">SVF::SVFUtil::getCallee</a></div><div class="ttdeci">const SVFFunction * getCallee(const SVFInstruction *inst)</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00232">SVFUtil.h:232</a></div></div>
1305
+ <div class="fragment"><div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160;{</div><div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a6d613bcc37e54b922ad1b1869b66ee59">getHeapAllocHoldingArgPosition</a>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a13d4f8034c444986da7c57cb5338f851">getCallee</a>(cs));</div><div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160;}</div><div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a13d4f8034c444986da7c57cb5338f851"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a13d4f8034c444986da7c57cb5338f851">SVF::SVFUtil::getCallee</a></div><div class="ttdeci">const SVFFunction * getCallee(const SVFInstruction *inst)</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00233">SVFUtil.h:233</a></div></div>
1308
1306
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a6d613bcc37e54b922ad1b1869b66ee59"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a6d613bcc37e54b922ad1b1869b66ee59">SVF::SVFUtil::getHeapAllocHoldingArgPosition</a></div><div class="ttdeci">int getHeapAllocHoldingArgPosition(const SVFInstruction *inst)</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00463">SVFUtil.h:463</a></div></div>
1309
1307
  </div><!-- fragment -->
1310
1308
  </div>
@@ -1334,7 +1332,7 @@ template&lt;class X , class Y &gt; </div>
1334
1332
  </div><div class="memdoc">
1335
1333
 
1336
1334
  <p class="definition">Definition at line <a class="el" href="SVFUtil_8h_source.html#l00463">463</a> of file <a class="el" href="SVFUtil_8h_source.html">SVFUtil.h</a>.</p>
1337
- <div class="fragment"><div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160;{</div><div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a6d613bcc37e54b922ad1b1869b66ee59">getHeapAllocHoldingArgPosition</a>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a13d4f8034c444986da7c57cb5338f851">getCallee</a>(inst));</div><div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160;}</div><div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a13d4f8034c444986da7c57cb5338f851"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a13d4f8034c444986da7c57cb5338f851">SVF::SVFUtil::getCallee</a></div><div class="ttdeci">const SVFFunction * getCallee(const SVFInstruction *inst)</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00232">SVFUtil.h:232</a></div></div>
1335
+ <div class="fragment"><div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160;{</div><div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a6d613bcc37e54b922ad1b1869b66ee59">getHeapAllocHoldingArgPosition</a>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a13d4f8034c444986da7c57cb5338f851">getCallee</a>(inst));</div><div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160;}</div><div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a13d4f8034c444986da7c57cb5338f851"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a13d4f8034c444986da7c57cb5338f851">SVF::SVFUtil::getCallee</a></div><div class="ttdeci">const SVFFunction * getCallee(const SVFInstruction *inst)</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00233">SVFUtil.h:233</a></div></div>
1338
1336
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a6d613bcc37e54b922ad1b1869b66ee59"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a6d613bcc37e54b922ad1b1869b66ee59">SVF::SVFUtil::getHeapAllocHoldingArgPosition</a></div><div class="ttdeci">int getHeapAllocHoldingArgPosition(const SVFInstruction *inst)</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00463">SVFUtil.h:463</a></div></div>
1339
1337
  </div><!-- fragment -->
1340
1338
  </div>
@@ -1369,7 +1367,7 @@ template&lt;class X , class Y &gt; </div>
1369
1367
  <p>Get memory usage </p>
1370
1368
 
1371
1369
  <p class="definition">Definition at line <a class="el" href="SVFUtil_8cpp_source.html#l00176">176</a> of file <a class="el" href="SVFUtil_8cpp_source.html">SVFUtil.cpp</a>.</p>
1372
- <div class="fragment"><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160;{</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; <span class="comment">/* Get the the current process&#39; status file from the proc filesystem */</span></div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <span class="keywordtype">char</span> <a class="code" href="cJSON_8h.html#a503753140aa27b00f99a3501280b2746">buffer</a>[8192];</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; FILE* procfile = fopen(<span class="stringliteral">&quot;/proc/self/status&quot;</span>, <span class="stringliteral">&quot;r&quot;</span>);</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <span class="keywordflow">if</span>(procfile)</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; {</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> result = fread(buffer, <span class="keyword">sizeof</span>(<span class="keywordtype">char</span>), 8192, procfile);</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <span class="keywordflow">if</span> (result == 0)</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; {</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; fputs (<span class="stringliteral">&quot;Reading error\n&quot;</span>,stderr);</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; }</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; }</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; {</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; fputs (<span class="stringliteral">&quot;/proc/self/status file not exit\n&quot;</span>,stderr);</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; }</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; fclose(procfile);</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <span class="comment">/* Look through proc status contents line by line */</span></div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <span class="keywordtype">char</span> delims[] = <span class="stringliteral">&quot;\n&quot;</span>;</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; <span class="keywordtype">char</span>* line = strtok(buffer, delims);</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160;</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; <span class="keywordtype">bool</span> found_vmrss = <span class="keyword">false</span>;</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <span class="keywordtype">bool</span> found_vmsize = <span class="keyword">false</span>;</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160;</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; <span class="keywordflow">while</span> (line != <span class="keyword">nullptr</span> &amp;&amp; (found_vmrss == <span class="keyword">false</span> || found_vmsize == <span class="keyword">false</span>))</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; {</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <span class="keywordflow">if</span> (strstr(line, <span class="stringliteral">&quot;VmRSS:&quot;</span>) != <span class="keyword">nullptr</span>)</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; {</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; sscanf(line, <span class="stringliteral">&quot;%*s %u&quot;</span>, vmrss_kb);</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; found_vmrss = <span class="keyword">true</span>;</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; }</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; <span class="keywordflow">if</span> (strstr(line, <span class="stringliteral">&quot;VmSize:&quot;</span>) != <span class="keyword">nullptr</span>)</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; {</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; sscanf(line, <span class="stringliteral">&quot;%*s %u&quot;</span>, vmsize_kb);</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; found_vmsize = <span class="keyword">true</span>;</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; }</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160;</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; line = strtok(<span class="keyword">nullptr</span>, delims);</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; }</div><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> (found_vmrss &amp;&amp; found_vmsize);</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160;}</div><div class="ttc" id="namespaceSVF_html_ad42bff8d0a7d60a085aa32d10f4955af"><div class="ttname"><a href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">SVF::u32_t</a></div><div class="ttdeci">unsigned u32_t</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00050">SVFType.h:50</a></div></div>
1370
+ <div class="fragment"><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160;{</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; <span class="comment">/* Get the the current process&#39; status file from the proc filesystem */</span></div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <span class="keywordtype">char</span> <a class="code" href="cJSON_8h.html#a503753140aa27b00f99a3501280b2746">buffer</a>[8192];</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; FILE* procfile = fopen(<span class="stringliteral">&quot;/proc/self/status&quot;</span>, <span class="stringliteral">&quot;r&quot;</span>);</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <span class="keywordflow">if</span>(procfile)</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; {</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> result = fread(buffer, <span class="keyword">sizeof</span>(<span class="keywordtype">char</span>), 8192, procfile);</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <span class="keywordflow">if</span> (result == 0)</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; {</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; fputs (<span class="stringliteral">&quot;Reading error\n&quot;</span>,stderr);</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; }</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; }</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; {</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; fputs (<span class="stringliteral">&quot;/proc/self/status file not exit\n&quot;</span>,stderr);</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; }</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; fclose(procfile);</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <span class="comment">/* Look through proc status contents line by line */</span></div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <span class="keywordtype">char</span> delims[] = <span class="stringliteral">&quot;\n&quot;</span>;</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; <span class="keywordtype">char</span>* line = strtok(buffer, delims);</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160;</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; <span class="keywordtype">bool</span> found_vmrss = <span class="keyword">false</span>;</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <span class="keywordtype">bool</span> found_vmsize = <span class="keyword">false</span>;</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160;</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; <span class="keywordflow">while</span> (line != <span class="keyword">nullptr</span> &amp;&amp; (found_vmrss == <span class="keyword">false</span> || found_vmsize == <span class="keyword">false</span>))</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; {</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <span class="keywordflow">if</span> (strstr(line, <span class="stringliteral">&quot;VmRSS:&quot;</span>) != <span class="keyword">nullptr</span>)</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; {</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; sscanf(line, <span class="stringliteral">&quot;%*s %u&quot;</span>, vmrss_kb);</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; found_vmrss = <span class="keyword">true</span>;</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; }</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; <span class="keywordflow">if</span> (strstr(line, <span class="stringliteral">&quot;VmSize:&quot;</span>) != <span class="keyword">nullptr</span>)</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; {</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; sscanf(line, <span class="stringliteral">&quot;%*s %u&quot;</span>, vmsize_kb);</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; found_vmsize = <span class="keyword">true</span>;</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; }</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160;</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; line = strtok(<span class="keyword">nullptr</span>, delims);</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; }</div><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> (found_vmrss &amp;&amp; found_vmsize);</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160;}</div><div class="ttc" id="namespaceSVF_html_ad42bff8d0a7d60a085aa32d10f4955af"><div class="ttname"><a href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">SVF::u32_t</a></div><div class="ttdeci">unsigned u32_t</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00049">SVFType.h:49</a></div></div>
1373
1371
  <div class="ttc" id="cJSON_8h_html_a503753140aa27b00f99a3501280b2746"><div class="ttname"><a href="cJSON_8h.html#a503753140aa27b00f99a3501280b2746">buffer</a></div><div class="ttdeci">char * buffer</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8h_source.html#l00163">cJSON.h:163</a></div></div>
1374
1372
  </div><!-- fragment -->
1375
1373
  </div>
@@ -1401,7 +1399,7 @@ template&lt;class X , class Y &gt; </div>
1401
1399
  <p>Get program entry function from module. </p>
1402
1400
 
1403
1401
  <p class="definition">Definition at line <a class="el" href="SVFUtil_8h_source.html#l00367">367</a> of file <a class="el" href="SVFUtil_8h_source.html">SVFUtil.h</a>.</p>
1404
- <div class="fragment"><div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160;{</div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; <span class="keywordflow">for</span> (SVFModule::const_iterator it = svfModule-&gt;begin(), eit = svfModule-&gt;end(); it != eit; ++it)</div><div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; {</div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; <span class="keyword">const</span> SVFFunction *fun = *it;</div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF_1_1SVFUtil.html#ab87fef7b10465d3e635643fcb93b95a7">isProgEntryFunction</a>(fun))</div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160; <span class="keywordflow">return</span> (fun);</div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; }</div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160; <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160;}</div><div class="ttc" id="namespaceSVF_1_1SVFUtil_html_ab87fef7b10465d3e635643fcb93b95a7"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#ab87fef7b10465d3e635643fcb93b95a7">SVF::SVFUtil::isProgEntryFunction</a></div><div class="ttdeci">bool isProgEntryFunction(const Function *fun)</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00639">SVFUtil.h:639</a></div></div>
1402
+ <div class="fragment"><div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160;{</div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; <span class="keywordflow">for</span> (SVFModule::const_iterator it = svfModule-&gt;begin(), eit = svfModule-&gt;end(); it != eit; ++it)</div><div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; {</div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; <span class="keyword">const</span> SVFFunction *fun = *it;</div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF_1_1SVFUtil.html#a2c97c2b79b795465490512e267a9309b">isProgEntryFunction</a>(fun))</div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160; <span class="keywordflow">return</span> (fun);</div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; }</div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160; <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160;}</div><div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a2c97c2b79b795465490512e267a9309b"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a2c97c2b79b795465490512e267a9309b">SVF::SVFUtil::isProgEntryFunction</a></div><div class="ttdeci">bool isProgEntryFunction(const SVFFunction *fun)</div><div class="ttdoc">Program entry function e.g. main. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00349">SVFUtil.h:349</a></div></div>
1405
1403
  </div><!-- fragment -->
1406
1404
  </div>
1407
1405
  </div>
@@ -1471,8 +1469,8 @@ template&lt;class X , class Y &gt; </div>
1471
1469
 
1472
1470
  <p>Return LLVM callsite given an instruction. </p>
1473
1471
 
1474
- <p class="definition">Definition at line <a class="el" href="SVFUtil_8h_source.html#l00194">194</a> of file <a class="el" href="SVFUtil_8h_source.html">SVFUtil.h</a>.</p>
1475
- <div class="fragment"><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;{</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; assert(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a8cb755f339ad1650f8ae2155451d9c0d">isCallSite</a>(inst) &amp;&amp; <span class="stringliteral">&quot;not a callsite?&quot;</span>);</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; CallSite cs(inst);</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; <span class="keywordflow">return</span> cs;</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160;}</div><div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a8cb755f339ad1650f8ae2155451d9c0d"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a8cb755f339ad1650f8ae2155451d9c0d">SVF::SVFUtil::isCallSite</a></div><div class="ttdeci">bool isCallSite(const SVFValue *val)</div><div class="ttdoc">Whether an instruction is a call or invoke instruction. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00177">SVFUtil.h:177</a></div></div>
1472
+ <p class="definition">Definition at line <a class="el" href="SVFUtil_8h_source.html#l00195">195</a> of file <a class="el" href="SVFUtil_8h_source.html">SVFUtil.h</a>.</p>
1473
+ <div class="fragment"><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;{</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; assert(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a8cb755f339ad1650f8ae2155451d9c0d">isCallSite</a>(inst) &amp;&amp; <span class="stringliteral">&quot;not a callsite?&quot;</span>);</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; CallSite cs(inst);</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <span class="keywordflow">return</span> cs;</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;}</div><div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a8cb755f339ad1650f8ae2155451d9c0d"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a8cb755f339ad1650f8ae2155451d9c0d">SVF::SVFUtil::isCallSite</a></div><div class="ttdeci">bool isCallSite(const SVFValue *val)</div><div class="ttdoc">Whether an instruction is a call or invoke instruction. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00178">SVFUtil.h:178</a></div></div>
1476
1474
  </div><!-- fragment -->
1477
1475
  </div>
1478
1476
  </div>
@@ -1502,8 +1500,8 @@ template&lt;class X , class Y &gt; </div>
1502
1500
 
1503
1501
  <p>Return LLVM callsite given a value. </p>
1504
1502
 
1505
- <p class="definition">Definition at line <a class="el" href="SVFUtil_8h_source.html#l00202">202</a> of file <a class="el" href="SVFUtil_8h_source.html">SVFUtil.h</a>.</p>
1506
- <div class="fragment"><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;{</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; assert(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a8cb755f339ad1650f8ae2155451d9c0d">isCallSite</a>(value) &amp;&amp; <span class="stringliteral">&quot;not a callsite?&quot;</span>);</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <span class="keyword">const</span> SVFCallInst* svfInst = SVFUtil::cast&lt;SVFCallInst&gt;(value);</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; CallSite cs(svfInst);</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <span class="keywordflow">return</span> cs;</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160;}</div><div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a8cb755f339ad1650f8ae2155451d9c0d"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a8cb755f339ad1650f8ae2155451d9c0d">SVF::SVFUtil::isCallSite</a></div><div class="ttdeci">bool isCallSite(const SVFValue *val)</div><div class="ttdoc">Whether an instruction is a call or invoke instruction. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00177">SVFUtil.h:177</a></div></div>
1503
+ <p class="definition">Definition at line <a class="el" href="SVFUtil_8h_source.html#l00203">203</a> of file <a class="el" href="SVFUtil_8h_source.html">SVFUtil.h</a>.</p>
1504
+ <div class="fragment"><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;{</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; assert(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a8cb755f339ad1650f8ae2155451d9c0d">isCallSite</a>(value) &amp;&amp; <span class="stringliteral">&quot;not a callsite?&quot;</span>);</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; <span class="keyword">const</span> SVFCallInst* svfInst = SVFUtil::cast&lt;SVFCallInst&gt;(value);</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; CallSite cs(svfInst);</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; <span class="keywordflow">return</span> cs;</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;}</div><div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a8cb755f339ad1650f8ae2155451d9c0d"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a8cb755f339ad1650f8ae2155451d9c0d">SVF::SVFUtil::isCallSite</a></div><div class="ttdeci">bool isCallSite(const SVFValue *val)</div><div class="ttdoc">Whether an instruction is a call or invoke instruction. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00178">SVFUtil.h:178</a></div></div>
1507
1505
  </div><!-- fragment -->
1508
1506
  </div>
1509
1507
  </div>
@@ -1711,8 +1709,8 @@ template&lt;typename Key , typename KeySet &gt; </div>
1711
1709
 
1712
1710
  <p>Inserts an element into a Set/CondSet (with ::insert). </p>
1713
1711
 
1714
- <p class="definition">Definition at line <a class="el" href="SVFUtil_8h_source.html#l00256">256</a> of file <a class="el" href="SVFUtil_8h_source.html">SVFUtil.h</a>.</p>
1715
- <div class="fragment"><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160;{</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; keySet.insert(key);</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160;}</div></div><!-- fragment -->
1712
+ <p class="definition">Definition at line <a class="el" href="SVFUtil_8h_source.html#l00257">257</a> of file <a class="el" href="SVFUtil_8h_source.html">SVFUtil.h</a>.</p>
1713
+ <div class="fragment"><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160;{</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; keySet.insert(key);</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160;}</div></div><!-- fragment -->
1716
1714
  </div>
1717
1715
  </div>
1718
1716
  <a id="a4f75b8313eb2b1e5a4c798a01cb99471"></a>
@@ -1751,8 +1749,8 @@ template&lt;typename Key , typename KeySet &gt; </div>
1751
1749
 
1752
1750
  <p>Inserts a NodeID into a NodeBS. </p>
1753
1751
 
1754
- <p class="definition">Definition at line <a class="el" href="SVFUtil_8h_source.html#l00262">262</a> of file <a class="el" href="SVFUtil_8h_source.html">SVFUtil.h</a>.</p>
1755
- <div class="fragment"><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160;{</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; keySet.set(key);</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160;}</div></div><!-- fragment -->
1752
+ <p class="definition">Definition at line <a class="el" href="SVFUtil_8h_source.html#l00263">263</a> of file <a class="el" href="SVFUtil_8h_source.html">SVFUtil.h</a>.</p>
1753
+ <div class="fragment"><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160;{</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; keySet.set(key);</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160;}</div></div><!-- fragment -->
1756
1754
  </div>
1757
1755
  </div>
1758
1756
  <a id="a5c8cbc986cccb9d84f87aae162df3737"></a>
@@ -1959,8 +1957,8 @@ template&lt;typename First , typename Second , typename... Rest, typename Y &gt;
1959
1957
 
1960
1958
  <p>Whether an instruction is a call or invoke instruction. </p>
1961
1959
 
1962
- <p class="definition">Definition at line <a class="el" href="SVFUtil_8h_source.html#l00172">172</a> of file <a class="el" href="SVFUtil_8h_source.html">SVFUtil.h</a>.</p>
1963
- <div class="fragment"><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160;{</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <span class="keywordflow">return</span> SVFUtil::isa&lt;SVFCallInst&gt;(inst);</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;}</div></div><!-- fragment -->
1960
+ <p class="definition">Definition at line <a class="el" href="SVFUtil_8h_source.html#l00173">173</a> of file <a class="el" href="SVFUtil_8h_source.html">SVFUtil.h</a>.</p>
1961
+ <div class="fragment"><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;{</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <span class="keywordflow">return</span> SVFUtil::isa&lt;SVFCallInst&gt;(inst);</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160;}</div></div><!-- fragment -->
1964
1962
  </div>
1965
1963
  </div>
1966
1964
  <a id="a8cb755f339ad1650f8ae2155451d9c0d"></a>
@@ -1989,8 +1987,8 @@ template&lt;typename First , typename Second , typename... Rest, typename Y &gt;
1989
1987
 
1990
1988
  <p>Whether an instruction is a call or invoke instruction. </p>
1991
1989
 
1992
- <p class="definition">Definition at line <a class="el" href="SVFUtil_8h_source.html#l00177">177</a> of file <a class="el" href="SVFUtil_8h_source.html">SVFUtil.h</a>.</p>
1993
- <div class="fragment"><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;{</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <span class="keywordflow">if</span>(SVFUtil::isa&lt;SVFCallInst&gt;(val))</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;}</div></div><!-- fragment -->
1990
+ <p class="definition">Definition at line <a class="el" href="SVFUtil_8h_source.html#l00178">178</a> of file <a class="el" href="SVFUtil_8h_source.html">SVFUtil.h</a>.</p>
1991
+ <div class="fragment"><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;{</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <span class="keywordflow">if</span>(SVFUtil::isa&lt;SVFCallInst&gt;(val))</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;}</div></div><!-- fragment -->
1994
1992
  </div>
1995
1993
  </div>
1996
1994
  <a id="a1f52a7f183f1eec7c4db7e4e54fa5e2c"></a>
@@ -2018,8 +2016,8 @@ template&lt;typename First , typename Second , typename... Rest, typename Y &gt;
2018
2016
  </div><div class="memdoc">
2019
2017
 
2020
2018
  <p class="definition">Definition at line <a class="el" href="SVFUtil_8h_source.html#l00482">482</a> of file <a class="el" href="SVFUtil_8h_source.html">SVFUtil.h</a>.</p>
2021
- <div class="fragment"><div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160;{</div><div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a3495236e22e4bc6404b6ac352060439c">isDeallocExtFun</a>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a13d4f8034c444986da7c57cb5338f851">getCallee</a>(cs));</div><div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160;}</div><div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a3495236e22e4bc6404b6ac352060439c"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a3495236e22e4bc6404b6ac352060439c">SVF::SVFUtil::isDeallocExtFun</a></div><div class="ttdeci">bool isDeallocExtFun(const SVFFunction *fun)</div><div class="ttdoc">Return true if the call is a heap dealloc or not. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00332">SVFUtil.h:332</a></div></div>
2022
- <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a13d4f8034c444986da7c57cb5338f851"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a13d4f8034c444986da7c57cb5338f851">SVF::SVFUtil::getCallee</a></div><div class="ttdeci">const SVFFunction * getCallee(const SVFInstruction *inst)</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00232">SVFUtil.h:232</a></div></div>
2019
+ <div class="fragment"><div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160;{</div><div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a3495236e22e4bc6404b6ac352060439c">isDeallocExtFun</a>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a13d4f8034c444986da7c57cb5338f851">getCallee</a>(cs));</div><div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160;}</div><div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a3495236e22e4bc6404b6ac352060439c"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a3495236e22e4bc6404b6ac352060439c">SVF::SVFUtil::isDeallocExtFun</a></div><div class="ttdeci">bool isDeallocExtFun(const SVFFunction *fun)</div><div class="ttdoc">Return true if the call is a heap dealloc or not. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00333">SVFUtil.h:333</a></div></div>
2020
+ <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a13d4f8034c444986da7c57cb5338f851"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a13d4f8034c444986da7c57cb5338f851">SVF::SVFUtil::getCallee</a></div><div class="ttdeci">const SVFFunction * getCallee(const SVFInstruction *inst)</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00233">SVFUtil.h:233</a></div></div>
2023
2021
  </div><!-- fragment -->
2024
2022
  </div>
2025
2023
  </div>
@@ -2048,8 +2046,8 @@ template&lt;typename First , typename Second , typename... Rest, typename Y &gt;
2048
2046
  </div><div class="memdoc">
2049
2047
 
2050
2048
  <p class="definition">Definition at line <a class="el" href="SVFUtil_8h_source.html#l00487">487</a> of file <a class="el" href="SVFUtil_8h_source.html">SVFUtil.h</a>.</p>
2051
- <div class="fragment"><div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160;{</div><div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a3495236e22e4bc6404b6ac352060439c">isDeallocExtFun</a>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a13d4f8034c444986da7c57cb5338f851">getCallee</a>(inst));</div><div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160;}</div><div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a3495236e22e4bc6404b6ac352060439c"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a3495236e22e4bc6404b6ac352060439c">SVF::SVFUtil::isDeallocExtFun</a></div><div class="ttdeci">bool isDeallocExtFun(const SVFFunction *fun)</div><div class="ttdoc">Return true if the call is a heap dealloc or not. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00332">SVFUtil.h:332</a></div></div>
2052
- <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a13d4f8034c444986da7c57cb5338f851"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a13d4f8034c444986da7c57cb5338f851">SVF::SVFUtil::getCallee</a></div><div class="ttdeci">const SVFFunction * getCallee(const SVFInstruction *inst)</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00232">SVFUtil.h:232</a></div></div>
2049
+ <div class="fragment"><div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160;{</div><div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a3495236e22e4bc6404b6ac352060439c">isDeallocExtFun</a>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a13d4f8034c444986da7c57cb5338f851">getCallee</a>(inst));</div><div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160;}</div><div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a3495236e22e4bc6404b6ac352060439c"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a3495236e22e4bc6404b6ac352060439c">SVF::SVFUtil::isDeallocExtFun</a></div><div class="ttdeci">bool isDeallocExtFun(const SVFFunction *fun)</div><div class="ttdoc">Return true if the call is a heap dealloc or not. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00333">SVFUtil.h:333</a></div></div>
2050
+ <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a13d4f8034c444986da7c57cb5338f851"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a13d4f8034c444986da7c57cb5338f851">SVF::SVFUtil::getCallee</a></div><div class="ttdeci">const SVFFunction * getCallee(const SVFInstruction *inst)</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00233">SVFUtil.h:233</a></div></div>
2053
2051
  </div><!-- fragment -->
2054
2052
  </div>
2055
2053
  </div>
@@ -2080,8 +2078,8 @@ template&lt;typename First , typename Second , typename... Rest, typename Y &gt;
2080
2078
  <p>Return true if the call is a heap dealloc or not. </p>
2081
2079
  <p>note that this function is not suppose to be used externally </p>
2082
2080
 
2083
- <p class="definition">Definition at line <a class="el" href="SVFUtil_8h_source.html#l00332">332</a> of file <a class="el" href="SVFUtil_8h_source.html">SVFUtil.h</a>.</p>
2084
- <div class="fragment"><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160;{</div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; <span class="keywordflow">return</span> fun &amp;&amp; (ExtAPI::getExtAPI()-&gt;is_dealloc(fun));</div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160;}</div></div><!-- fragment -->
2081
+ <p class="definition">Definition at line <a class="el" href="SVFUtil_8h_source.html#l00333">333</a> of file <a class="el" href="SVFUtil_8h_source.html">SVFUtil.h</a>.</p>
2082
+ <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> fun &amp;&amp; (ExtAPI::getExtAPI()-&gt;is_dealloc(fun));</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160;}</div></div><!-- fragment -->
2085
2083
  </div>
2086
2084
  </div>
2087
2085
  <a id="a22ef185e767ff76c098e75126c885400"></a>
@@ -2109,8 +2107,8 @@ template&lt;typename First , typename Second , typename... Rest, typename Y &gt;
2109
2107
  </div><div class="memdoc">
2110
2108
  <p>Return true if the call is an external call (external library in function summary table) If the libary function is redefined in the application code (e.g., memcpy), it will return false and will not be treated as an external call. </p>
2111
2109
 
2112
- <p class="definition">Definition at line <a class="el" href="SVFUtil_8h_source.html#l00295">295</a> of file <a class="el" href="SVFUtil_8h_source.html">SVFUtil.h</a>.</p>
2113
- <div class="fragment"><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160;{</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; <span class="keywordflow">return</span> fun &amp;&amp; ExtAPI::getExtAPI()-&gt;is_ext(fun);</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160;}</div></div><!-- fragment -->
2110
+ <p class="definition">Definition at line <a class="el" href="SVFUtil_8h_source.html#l00296">296</a> of file <a class="el" href="SVFUtil_8h_source.html">SVFUtil.h</a>.</p>
2111
+ <div class="fragment"><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160;{</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; <span class="keywordflow">return</span> fun &amp;&amp; ExtAPI::getExtAPI()-&gt;is_ext(fun);</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160;}</div></div><!-- fragment -->
2114
2112
  </div>
2115
2113
  </div>
2116
2114
  <a id="aad27a96075234ad2182a84e0e9d31a45"></a>
@@ -2139,7 +2137,7 @@ template&lt;typename First , typename Second , typename... Rest, typename Y &gt;
2139
2137
 
2140
2138
  <p class="definition">Definition at line <a class="el" href="SVFUtil_8h_source.html#l00414">414</a> of file <a class="el" href="SVFUtil_8h_source.html">SVFUtil.h</a>.</p>
2141
2139
  <div class="fragment"><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="keywordflow">return</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#af2979f019d38f3faa5c82c6ddc688b51">isExtCall</a>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a13d4f8034c444986da7c57cb5338f851">getCallee</a>(cs));</div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160;}</div><div class="ttc" id="namespaceSVF_1_1SVFUtil_html_af2979f019d38f3faa5c82c6ddc688b51"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#af2979f019d38f3faa5c82c6ddc688b51">SVF::SVFUtil::isExtCall</a></div><div class="ttdeci">bool isExtCall(const SVFInstruction *inst)</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00419">SVFUtil.h:419</a></div></div>
2142
- <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a13d4f8034c444986da7c57cb5338f851"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a13d4f8034c444986da7c57cb5338f851">SVF::SVFUtil::getCallee</a></div><div class="ttdeci">const SVFFunction * getCallee(const SVFInstruction *inst)</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00232">SVFUtil.h:232</a></div></div>
2140
+ <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a13d4f8034c444986da7c57cb5338f851"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a13d4f8034c444986da7c57cb5338f851">SVF::SVFUtil::getCallee</a></div><div class="ttdeci">const SVFFunction * getCallee(const SVFInstruction *inst)</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00233">SVFUtil.h:233</a></div></div>
2143
2141
  </div><!-- fragment -->
2144
2142
  </div>
2145
2143
  </div>
@@ -2169,7 +2167,7 @@ template&lt;typename First , typename Second , typename... Rest, typename Y &gt;
2169
2167
 
2170
2168
  <p class="definition">Definition at line <a class="el" href="SVFUtil_8h_source.html#l00419">419</a> of file <a class="el" href="SVFUtil_8h_source.html">SVFUtil.h</a>.</p>
2171
2169
  <div class="fragment"><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160;{</div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#af2979f019d38f3faa5c82c6ddc688b51">isExtCall</a>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a13d4f8034c444986da7c57cb5338f851">getCallee</a>(inst));</div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160;}</div><div class="ttc" id="namespaceSVF_1_1SVFUtil_html_af2979f019d38f3faa5c82c6ddc688b51"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#af2979f019d38f3faa5c82c6ddc688b51">SVF::SVFUtil::isExtCall</a></div><div class="ttdeci">bool isExtCall(const SVFInstruction *inst)</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00419">SVFUtil.h:419</a></div></div>
2172
- <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a13d4f8034c444986da7c57cb5338f851"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a13d4f8034c444986da7c57cb5338f851">SVF::SVFUtil::getCallee</a></div><div class="ttdeci">const SVFFunction * getCallee(const SVFInstruction *inst)</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00232">SVFUtil.h:232</a></div></div>
2170
+ <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a13d4f8034c444986da7c57cb5338f851"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a13d4f8034c444986da7c57cb5338f851">SVF::SVFUtil::getCallee</a></div><div class="ttdeci">const SVFFunction * getCallee(const SVFInstruction *inst)</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00233">SVFUtil.h:233</a></div></div>
2173
2171
  </div><!-- fragment -->
2174
2172
  </div>
2175
2173
  </div>
@@ -2315,8 +2313,8 @@ template&lt;typename First , typename Second , typename... Rest, typename Y &gt;
2315
2313
  </div><div class="memdoc">
2316
2314
 
2317
2315
  <p class="definition">Definition at line <a class="el" href="SVFUtil_8h_source.html#l00424">424</a> of file <a class="el" href="SVFUtil_8h_source.html">SVFUtil.h</a>.</p>
2318
- <div class="fragment"><div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160;{</div><div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab4a69173f50ebe48e69103befe516245">isHeapAllocExtFunViaArg</a>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a13d4f8034c444986da7c57cb5338f851">getCallee</a>(cs));</div><div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160;}</div><div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a13d4f8034c444986da7c57cb5338f851"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a13d4f8034c444986da7c57cb5338f851">SVF::SVFUtil::getCallee</a></div><div class="ttdeci">const SVFFunction * getCallee(const SVFInstruction *inst)</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00232">SVFUtil.h:232</a></div></div>
2319
- <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_ab4a69173f50ebe48e69103befe516245"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#ab4a69173f50ebe48e69103befe516245">SVF::SVFUtil::isHeapAllocExtFunViaArg</a></div><div class="ttdeci">bool isHeapAllocExtFunViaArg(const SVFFunction *fun)</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00309">SVFUtil.h:309</a></div></div>
2316
+ <div class="fragment"><div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160;{</div><div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab4a69173f50ebe48e69103befe516245">isHeapAllocExtFunViaArg</a>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a13d4f8034c444986da7c57cb5338f851">getCallee</a>(cs));</div><div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160;}</div><div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a13d4f8034c444986da7c57cb5338f851"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a13d4f8034c444986da7c57cb5338f851">SVF::SVFUtil::getCallee</a></div><div class="ttdeci">const SVFFunction * getCallee(const SVFInstruction *inst)</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00233">SVFUtil.h:233</a></div></div>
2317
+ <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_ab4a69173f50ebe48e69103befe516245"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#ab4a69173f50ebe48e69103befe516245">SVF::SVFUtil::isHeapAllocExtFunViaArg</a></div><div class="ttdeci">bool isHeapAllocExtFunViaArg(const SVFFunction *fun)</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00310">SVFUtil.h:310</a></div></div>
2320
2318
  </div><!-- fragment -->
2321
2319
  </div>
2322
2320
  </div>
@@ -2345,8 +2343,8 @@ template&lt;typename First , typename Second , typename... Rest, typename Y &gt;
2345
2343
  </div><div class="memdoc">
2346
2344
 
2347
2345
  <p class="definition">Definition at line <a class="el" href="SVFUtil_8h_source.html#l00429">429</a> of file <a class="el" href="SVFUtil_8h_source.html">SVFUtil.h</a>.</p>
2348
- <div class="fragment"><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160;{</div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab4a69173f50ebe48e69103befe516245">isHeapAllocExtFunViaArg</a>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a13d4f8034c444986da7c57cb5338f851">getCallee</a>(inst));</div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160;}</div><div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a13d4f8034c444986da7c57cb5338f851"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a13d4f8034c444986da7c57cb5338f851">SVF::SVFUtil::getCallee</a></div><div class="ttdeci">const SVFFunction * getCallee(const SVFInstruction *inst)</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00232">SVFUtil.h:232</a></div></div>
2349
- <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_ab4a69173f50ebe48e69103befe516245"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#ab4a69173f50ebe48e69103befe516245">SVF::SVFUtil::isHeapAllocExtFunViaArg</a></div><div class="ttdeci">bool isHeapAllocExtFunViaArg(const SVFFunction *fun)</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00309">SVFUtil.h:309</a></div></div>
2346
+ <div class="fragment"><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160;{</div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab4a69173f50ebe48e69103befe516245">isHeapAllocExtFunViaArg</a>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a13d4f8034c444986da7c57cb5338f851">getCallee</a>(inst));</div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160;}</div><div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a13d4f8034c444986da7c57cb5338f851"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a13d4f8034c444986da7c57cb5338f851">SVF::SVFUtil::getCallee</a></div><div class="ttdeci">const SVFFunction * getCallee(const SVFInstruction *inst)</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00233">SVFUtil.h:233</a></div></div>
2347
+ <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_ab4a69173f50ebe48e69103befe516245"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#ab4a69173f50ebe48e69103befe516245">SVF::SVFUtil::isHeapAllocExtFunViaArg</a></div><div class="ttdeci">bool isHeapAllocExtFunViaArg(const SVFFunction *fun)</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00310">SVFUtil.h:310</a></div></div>
2350
2348
  </div><!-- fragment -->
2351
2349
  </div>
2352
2350
  </div>
@@ -2377,8 +2375,8 @@ template&lt;typename First , typename Second , typename... Rest, typename Y &gt;
2377
2375
  <p>interfaces to be used externally </p>
2378
2376
 
2379
2377
  <p class="definition">Definition at line <a class="el" href="SVFUtil_8h_source.html#l00435">435</a> of file <a class="el" href="SVFUtil_8h_source.html">SVFUtil.h</a>.</p>
2380
- <div class="fragment"><div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160;{</div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160; <span class="keywordtype">bool</span> isPtrTy = cs.getInstruction()-&gt;getType()-&gt;isPointerTy();</div><div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160; <span class="keywordflow">return</span> isPtrTy &amp;&amp; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a19b96a872d9096037f20e25122e469ea">isHeapAllocExtFunViaRet</a>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a13d4f8034c444986da7c57cb5338f851">getCallee</a>(cs));</div><div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160;}</div><div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a13d4f8034c444986da7c57cb5338f851"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a13d4f8034c444986da7c57cb5338f851">SVF::SVFUtil::getCallee</a></div><div class="ttdeci">const SVFFunction * getCallee(const SVFInstruction *inst)</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00232">SVFUtil.h:232</a></div></div>
2381
- <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a19b96a872d9096037f20e25122e469ea"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a19b96a872d9096037f20e25122e469ea">SVF::SVFUtil::isHeapAllocExtFunViaRet</a></div><div class="ttdeci">bool isHeapAllocExtFunViaRet(const SVFFunction *fun)</div><div class="ttdoc">Return true if the call is a heap allocator/reallocator. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00303">SVFUtil.h:303</a></div></div>
2378
+ <div class="fragment"><div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160;{</div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160; <span class="keywordtype">bool</span> isPtrTy = cs.getInstruction()-&gt;getType()-&gt;isPointerTy();</div><div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160; <span class="keywordflow">return</span> isPtrTy &amp;&amp; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a19b96a872d9096037f20e25122e469ea">isHeapAllocExtFunViaRet</a>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a13d4f8034c444986da7c57cb5338f851">getCallee</a>(cs));</div><div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160;}</div><div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a13d4f8034c444986da7c57cb5338f851"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a13d4f8034c444986da7c57cb5338f851">SVF::SVFUtil::getCallee</a></div><div class="ttdeci">const SVFFunction * getCallee(const SVFInstruction *inst)</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00233">SVFUtil.h:233</a></div></div>
2379
+ <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a19b96a872d9096037f20e25122e469ea"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a19b96a872d9096037f20e25122e469ea">SVF::SVFUtil::isHeapAllocExtFunViaRet</a></div><div class="ttdeci">bool isHeapAllocExtFunViaRet(const SVFFunction *fun)</div><div class="ttdoc">Return true if the call is a heap allocator/reallocator. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00304">SVFUtil.h:304</a></div></div>
2382
2380
  </div><!-- fragment -->
2383
2381
  </div>
2384
2382
  </div>
@@ -2407,8 +2405,8 @@ template&lt;typename First , typename Second , typename... Rest, typename Y &gt;
2407
2405
  </div><div class="memdoc">
2408
2406
 
2409
2407
  <p class="definition">Definition at line <a class="el" href="SVFUtil_8h_source.html#l00441">441</a> of file <a class="el" href="SVFUtil_8h_source.html">SVFUtil.h</a>.</p>
2410
- <div class="fragment"><div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160;{</div><div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160; <span class="keywordtype">bool</span> isPtrTy = inst-&gt;getType()-&gt;isPointerTy();</div><div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160; <span class="keywordflow">return</span> isPtrTy &amp;&amp; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a19b96a872d9096037f20e25122e469ea">isHeapAllocExtFunViaRet</a>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a13d4f8034c444986da7c57cb5338f851">getCallee</a>(inst));</div><div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160;}</div><div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a13d4f8034c444986da7c57cb5338f851"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a13d4f8034c444986da7c57cb5338f851">SVF::SVFUtil::getCallee</a></div><div class="ttdeci">const SVFFunction * getCallee(const SVFInstruction *inst)</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00232">SVFUtil.h:232</a></div></div>
2411
- <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a19b96a872d9096037f20e25122e469ea"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a19b96a872d9096037f20e25122e469ea">SVF::SVFUtil::isHeapAllocExtFunViaRet</a></div><div class="ttdeci">bool isHeapAllocExtFunViaRet(const SVFFunction *fun)</div><div class="ttdoc">Return true if the call is a heap allocator/reallocator. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00303">SVFUtil.h:303</a></div></div>
2408
+ <div class="fragment"><div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160;{</div><div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160; <span class="keywordtype">bool</span> isPtrTy = inst-&gt;getType()-&gt;isPointerTy();</div><div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160; <span class="keywordflow">return</span> isPtrTy &amp;&amp; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a19b96a872d9096037f20e25122e469ea">isHeapAllocExtFunViaRet</a>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a13d4f8034c444986da7c57cb5338f851">getCallee</a>(inst));</div><div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160;}</div><div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a13d4f8034c444986da7c57cb5338f851"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a13d4f8034c444986da7c57cb5338f851">SVF::SVFUtil::getCallee</a></div><div class="ttdeci">const SVFFunction * getCallee(const SVFInstruction *inst)</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00233">SVFUtil.h:233</a></div></div>
2409
+ <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a19b96a872d9096037f20e25122e469ea"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a19b96a872d9096037f20e25122e469ea">SVF::SVFUtil::isHeapAllocExtFunViaRet</a></div><div class="ttdeci">bool isHeapAllocExtFunViaRet(const SVFFunction *fun)</div><div class="ttdoc">Return true if the call is a heap allocator/reallocator. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00304">SVFUtil.h:304</a></div></div>
2412
2410
  </div><!-- fragment -->
2413
2411
  </div>
2414
2412
  </div>
@@ -2436,8 +2434,8 @@ template&lt;typename First , typename Second , typename... Rest, typename Y &gt;
2436
2434
  </table>
2437
2435
  </div><div class="memdoc">
2438
2436
 
2439
- <p class="definition">Definition at line <a class="el" href="SVFUtil_8h_source.html#l00309">309</a> of file <a class="el" href="SVFUtil_8h_source.html">SVFUtil.h</a>.</p>
2440
- <div class="fragment"><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160;{</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; <span class="keywordflow">return</span> fun &amp;&amp; ExtAPI::getExtAPI()-&gt;is_arg_alloc(fun);</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160;}</div></div><!-- fragment -->
2437
+ <p class="definition">Definition at line <a class="el" href="SVFUtil_8h_source.html#l00310">310</a> of file <a class="el" href="SVFUtil_8h_source.html">SVFUtil.h</a>.</p>
2438
+ <div class="fragment"><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160;{</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; <span class="keywordflow">return</span> fun &amp;&amp; ExtAPI::getExtAPI()-&gt;is_arg_alloc(fun);</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160;}</div></div><!-- fragment -->
2441
2439
  </div>
2442
2440
  </div>
2443
2441
  <a id="a19b96a872d9096037f20e25122e469ea"></a>
@@ -2467,8 +2465,8 @@ template&lt;typename First , typename Second , typename... Rest, typename Y &gt;
2467
2465
  <p>Return true if the call is a heap allocator/reallocator. </p>
2468
2466
  <p>note that these two functions are not suppose to be used externally </p>
2469
2467
 
2470
- <p class="definition">Definition at line <a class="el" href="SVFUtil_8h_source.html#l00303">303</a> of file <a class="el" href="SVFUtil_8h_source.html">SVFUtil.h</a>.</p>
2471
- <div class="fragment"><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160;{</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; <span class="keywordflow">return</span> fun &amp;&amp; (ExtAPI::getExtAPI()-&gt;is_alloc(fun)</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; || ExtAPI::getExtAPI()-&gt;is_realloc(fun));</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160;}</div></div><!-- fragment -->
2468
+ <p class="definition">Definition at line <a class="el" href="SVFUtil_8h_source.html#l00304">304</a> of file <a class="el" href="SVFUtil_8h_source.html">SVFUtil.h</a>.</p>
2469
+ <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> fun &amp;&amp; (ExtAPI::getExtAPI()-&gt;is_alloc(fun)</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; || ExtAPI::getExtAPI()-&gt;is_realloc(fun));</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160;}</div></div><!-- fragment -->
2472
2470
  </div>
2473
2471
  </div>
2474
2472
  <a id="a61ed4bb80d88b0f8dbc02535c224fdfb"></a>
@@ -2699,14 +2697,14 @@ template&lt;typename First , typename Second , typename... Rest, typename Y &gt;
2699
2697
 
2700
2698
  <p>Whether an instruction is a callsite in the application code, excluding llvm intrinsic calls. </p>
2701
2699
 
2702
- <p class="definition">Definition at line <a class="el" href="SVFUtil_8h_source.html#l00186">186</a> of file <a class="el" href="SVFUtil_8h_source.html">SVFUtil.h</a>.</p>
2703
- <div class="fragment"><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;{</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#abb2bbf6e0dc5adae2140a519259e6f17">isIntrinsicInst</a>(inst))</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a8cb755f339ad1650f8ae2155451d9c0d">isCallSite</a>(inst);</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;}</div><div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a8cb755f339ad1650f8ae2155451d9c0d"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a8cb755f339ad1650f8ae2155451d9c0d">SVF::SVFUtil::isCallSite</a></div><div class="ttdeci">bool isCallSite(const SVFValue *val)</div><div class="ttdoc">Whether an instruction is a call or invoke instruction. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00177">SVFUtil.h:177</a></div></div>
2700
+ <p class="definition">Definition at line <a class="el" href="SVFUtil_8h_source.html#l00187">187</a> of file <a class="el" href="SVFUtil_8h_source.html">SVFUtil.h</a>.</p>
2701
+ <div class="fragment"><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;{</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#abb2bbf6e0dc5adae2140a519259e6f17">isIntrinsicInst</a>(inst))</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a8cb755f339ad1650f8ae2155451d9c0d">isCallSite</a>(inst);</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160;}</div><div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a8cb755f339ad1650f8ae2155451d9c0d"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a8cb755f339ad1650f8ae2155451d9c0d">SVF::SVFUtil::isCallSite</a></div><div class="ttdeci">bool isCallSite(const SVFValue *val)</div><div class="ttdoc">Whether an instruction is a call or invoke instruction. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00178">SVFUtil.h:178</a></div></div>
2704
2702
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_abb2bbf6e0dc5adae2140a519259e6f17"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#abb2bbf6e0dc5adae2140a519259e6f17">SVF::SVFUtil::isIntrinsicInst</a></div><div class="ttdeci">bool isIntrinsicInst(const SVFInstruction *inst)</div><div class="ttdoc">Return true if it is an llvm intrinsic instruction. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8cpp_source.html#l00246">SVFUtil.cpp:246</a></div></div>
2705
2703
  </div><!-- fragment -->
2706
2704
  </div>
2707
2705
  </div>
2708
2706
  <a id="a2c97c2b79b795465490512e267a9309b"></a>
2709
- <h2 class="memtitle"><span class="permalink"><a href="#a2c97c2b79b795465490512e267a9309b">&#9670;&nbsp;</a></span>isProgEntryFunction() <span class="overload">[1/2]</span></h2>
2707
+ <h2 class="memtitle"><span class="permalink"><a href="#a2c97c2b79b795465490512e267a9309b">&#9670;&nbsp;</a></span>isProgEntryFunction()</h2>
2710
2708
 
2711
2709
  <div class="memitem">
2712
2710
  <div class="memproto">
@@ -2732,36 +2730,8 @@ template&lt;typename First , typename Second , typename... Rest, typename Y &gt;
2732
2730
  <p>Program entry function e.g. main. </p>
2733
2731
  <p>Return true if this is a program entry function (e.g. main) </p>
2734
2732
 
2735
- <p class="definition">Definition at line <a class="el" href="SVFUtil_8h_source.html#l00348">348</a> of file <a class="el" href="SVFUtil_8h_source.html">SVFUtil.h</a>.</p>
2736
- <div class="fragment"><div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160;{</div><div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; <span class="keywordflow">return</span> fun &amp;&amp; fun-&gt;getName() == <span class="stringliteral">&quot;main&quot;</span>;</div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160;}</div></div><!-- fragment -->
2737
- </div>
2738
- </div>
2739
- <a id="ab87fef7b10465d3e635643fcb93b95a7"></a>
2740
- <h2 class="memtitle"><span class="permalink"><a href="#ab87fef7b10465d3e635643fcb93b95a7">&#9670;&nbsp;</a></span>isProgEntryFunction() <span class="overload">[2/2]</span></h2>
2741
-
2742
- <div class="memitem">
2743
- <div class="memproto">
2744
- <table class="mlabels">
2745
- <tr>
2746
- <td class="mlabels-left">
2747
- <table class="memname">
2748
- <tr>
2749
- <td class="memname">bool SVF::SVFUtil::isProgEntryFunction </td>
2750
- <td>(</td>
2751
- <td class="paramtype">const <a class="el" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a> *&#160;</td>
2752
- <td class="paramname"><em>fun</em></td><td>)</td>
2753
- <td></td>
2754
- </tr>
2755
- </table>
2756
- </td>
2757
- <td class="mlabels-right">
2758
- <span class="mlabels"><span class="mlabel">inline</span></span> </td>
2759
- </tr>
2760
- </table>
2761
- </div><div class="memdoc">
2762
-
2763
- <p class="definition">Definition at line <a class="el" href="SVFUtil_8h_source.html#l00639">639</a> of file <a class="el" href="SVFUtil_8h_source.html">SVFUtil.h</a>.</p>
2764
- <div class="fragment"><div class="line"><a name="l00640"></a><span class="lineno"> 640</span>&#160;{</div><div class="line"><a name="l00641"></a><span class="lineno"> 641</span>&#160; <span class="keywordflow">return</span> fun &amp;&amp; fun-&gt;getName() == <span class="stringliteral">&quot;main&quot;</span>;</div><div class="line"><a name="l00642"></a><span class="lineno"> 642</span>&#160;}</div></div><!-- fragment -->
2733
+ <p class="definition">Definition at line <a class="el" href="SVFUtil_8h_source.html#l00349">349</a> of file <a class="el" href="SVFUtil_8h_source.html">SVFUtil.h</a>.</p>
2734
+ <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; <span class="keywordflow">return</span> fun &amp;&amp; fun-&gt;getName() == <span class="stringliteral">&quot;main&quot;</span>;</div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160;}</div></div><!-- fragment -->
2765
2735
  </div>
2766
2736
  </div>
2767
2737
  <a id="a6528edf9a1750df4a84d1a60d4d0bbe4"></a>
@@ -2788,8 +2758,8 @@ template&lt;typename First , typename Second , typename... Rest, typename Y &gt;
2788
2758
  </table>
2789
2759
  </div><div class="memdoc">
2790
2760
 
2791
- <p class="definition">Definition at line <a class="el" href="SVFUtil_8h_source.html#l00645">645</a> of file <a class="el" href="SVFUtil_8h_source.html">SVFUtil.h</a>.</p>
2792
- <div class="fragment"><div class="line"><a name="l00646"></a><span class="lineno"> 646</span>&#160;{</div><div class="line"><a name="l00647"></a><span class="lineno"> 647</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#aec7ee60be22e8f9397db108131696d57">isProgExitFunction</a>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a13d4f8034c444986da7c57cb5338f851">getCallee</a>(cs));</div><div class="line"><a name="l00648"></a><span class="lineno"> 648</span>&#160;}</div><div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a13d4f8034c444986da7c57cb5338f851"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a13d4f8034c444986da7c57cb5338f851">SVF::SVFUtil::getCallee</a></div><div class="ttdeci">const SVFFunction * getCallee(const SVFInstruction *inst)</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00232">SVFUtil.h:232</a></div></div>
2761
+ <p class="definition">Definition at line <a class="el" href="SVFUtil_8h_source.html#l00639">639</a> of file <a class="el" href="SVFUtil_8h_source.html">SVFUtil.h</a>.</p>
2762
+ <div class="fragment"><div class="line"><a name="l00640"></a><span class="lineno"> 640</span>&#160;{</div><div class="line"><a name="l00641"></a><span class="lineno"> 641</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#aec7ee60be22e8f9397db108131696d57">isProgExitFunction</a>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a13d4f8034c444986da7c57cb5338f851">getCallee</a>(cs));</div><div class="line"><a name="l00642"></a><span class="lineno"> 642</span>&#160;}</div><div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a13d4f8034c444986da7c57cb5338f851"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a13d4f8034c444986da7c57cb5338f851">SVF::SVFUtil::getCallee</a></div><div class="ttdeci">const SVFFunction * getCallee(const SVFInstruction *inst)</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00233">SVFUtil.h:233</a></div></div>
2793
2763
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_aec7ee60be22e8f9397db108131696d57"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#aec7ee60be22e8f9397db108131696d57">SVF::SVFUtil::isProgExitFunction</a></div><div class="ttdeci">bool isProgExitFunction(const SVFFunction *fun)</div><div class="ttdoc">Return true if this is a program exit function call. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00380">SVFUtil.h:380</a></div></div>
2794
2764
  </div><!-- fragment -->
2795
2765
  </div>
@@ -2818,8 +2788,8 @@ template&lt;typename First , typename Second , typename... Rest, typename Y &gt;
2818
2788
  </table>
2819
2789
  </div><div class="memdoc">
2820
2790
 
2821
- <p class="definition">Definition at line <a class="el" href="SVFUtil_8h_source.html#l00650">650</a> of file <a class="el" href="SVFUtil_8h_source.html">SVFUtil.h</a>.</p>
2822
- <div class="fragment"><div class="line"><a name="l00651"></a><span class="lineno"> 651</span>&#160;{</div><div class="line"><a name="l00652"></a><span class="lineno"> 652</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#aec7ee60be22e8f9397db108131696d57">isProgExitFunction</a>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a13d4f8034c444986da7c57cb5338f851">getCallee</a>(inst));</div><div class="line"><a name="l00653"></a><span class="lineno"> 653</span>&#160;}</div><div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a13d4f8034c444986da7c57cb5338f851"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a13d4f8034c444986da7c57cb5338f851">SVF::SVFUtil::getCallee</a></div><div class="ttdeci">const SVFFunction * getCallee(const SVFInstruction *inst)</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00232">SVFUtil.h:232</a></div></div>
2791
+ <p class="definition">Definition at line <a class="el" href="SVFUtil_8h_source.html#l00644">644</a> of file <a class="el" href="SVFUtil_8h_source.html">SVFUtil.h</a>.</p>
2792
+ <div class="fragment"><div class="line"><a name="l00645"></a><span class="lineno"> 645</span>&#160;{</div><div class="line"><a name="l00646"></a><span class="lineno"> 646</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#aec7ee60be22e8f9397db108131696d57">isProgExitFunction</a>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a13d4f8034c444986da7c57cb5338f851">getCallee</a>(inst));</div><div class="line"><a name="l00647"></a><span class="lineno"> 647</span>&#160;}</div><div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a13d4f8034c444986da7c57cb5338f851"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a13d4f8034c444986da7c57cb5338f851">SVF::SVFUtil::getCallee</a></div><div class="ttdeci">const SVFFunction * getCallee(const SVFInstruction *inst)</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00233">SVFUtil.h:233</a></div></div>
2823
2793
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_aec7ee60be22e8f9397db108131696d57"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#aec7ee60be22e8f9397db108131696d57">SVF::SVFUtil::isProgExitFunction</a></div><div class="ttdeci">bool isProgExitFunction(const SVFFunction *fun)</div><div class="ttdoc">Return true if this is a program exit function call. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00380">SVFUtil.h:380</a></div></div>
2824
2794
  </div><!-- fragment -->
2825
2795
  </div>
@@ -2879,8 +2849,8 @@ template&lt;typename First , typename Second , typename... Rest, typename Y &gt;
2879
2849
  </div><div class="memdoc">
2880
2850
 
2881
2851
  <p class="definition">Definition at line <a class="el" href="SVFUtil_8h_source.html#l00469">469</a> of file <a class="el" href="SVFUtil_8h_source.html">SVFUtil.h</a>.</p>
2882
- <div class="fragment"><div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160;{</div><div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160; <span class="keywordtype">bool</span> isPtrTy = cs.getInstruction()-&gt;getType()-&gt;isPointerTy();</div><div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160; <span class="keywordflow">return</span> isPtrTy &amp;&amp; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a97c74c642ad43d955ac8a3f3ad8907b4">isReallocExtFun</a>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a13d4f8034c444986da7c57cb5338f851">getCallee</a>(cs));</div><div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160;}</div><div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a13d4f8034c444986da7c57cb5338f851"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a13d4f8034c444986da7c57cb5338f851">SVF::SVFUtil::getCallee</a></div><div class="ttdeci">const SVFFunction * getCallee(const SVFInstruction *inst)</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00232">SVFUtil.h:232</a></div></div>
2883
- <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a97c74c642ad43d955ac8a3f3ad8907b4"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a97c74c642ad43d955ac8a3f3ad8907b4">SVF::SVFUtil::isReallocExtFun</a></div><div class="ttdeci">bool isReallocExtFun(const SVFFunction *fun)</div><div class="ttdoc">Return true if the call is a heap reallocator. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00324">SVFUtil.h:324</a></div></div>
2852
+ <div class="fragment"><div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160;{</div><div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160; <span class="keywordtype">bool</span> isPtrTy = cs.getInstruction()-&gt;getType()-&gt;isPointerTy();</div><div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160; <span class="keywordflow">return</span> isPtrTy &amp;&amp; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a97c74c642ad43d955ac8a3f3ad8907b4">isReallocExtFun</a>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a13d4f8034c444986da7c57cb5338f851">getCallee</a>(cs));</div><div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160;}</div><div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a13d4f8034c444986da7c57cb5338f851"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a13d4f8034c444986da7c57cb5338f851">SVF::SVFUtil::getCallee</a></div><div class="ttdeci">const SVFFunction * getCallee(const SVFInstruction *inst)</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00233">SVFUtil.h:233</a></div></div>
2853
+ <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a97c74c642ad43d955ac8a3f3ad8907b4"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a97c74c642ad43d955ac8a3f3ad8907b4">SVF::SVFUtil::isReallocExtFun</a></div><div class="ttdeci">bool isReallocExtFun(const SVFFunction *fun)</div><div class="ttdoc">Return true if the call is a heap reallocator. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00325">SVFUtil.h:325</a></div></div>
2884
2854
  </div><!-- fragment -->
2885
2855
  </div>
2886
2856
  </div>
@@ -2909,8 +2879,8 @@ template&lt;typename First , typename Second , typename... Rest, typename Y &gt;
2909
2879
  </div><div class="memdoc">
2910
2880
 
2911
2881
  <p class="definition">Definition at line <a class="el" href="SVFUtil_8h_source.html#l00475">475</a> of file <a class="el" href="SVFUtil_8h_source.html">SVFUtil.h</a>.</p>
2912
- <div class="fragment"><div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160;{</div><div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160; <span class="keywordtype">bool</span> isPtrTy = inst-&gt;getType()-&gt;isPointerTy();</div><div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160; <span class="keywordflow">return</span> isPtrTy &amp;&amp; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a97c74c642ad43d955ac8a3f3ad8907b4">isReallocExtFun</a>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a13d4f8034c444986da7c57cb5338f851">getCallee</a>(inst));</div><div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160;}</div><div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a13d4f8034c444986da7c57cb5338f851"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a13d4f8034c444986da7c57cb5338f851">SVF::SVFUtil::getCallee</a></div><div class="ttdeci">const SVFFunction * getCallee(const SVFInstruction *inst)</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00232">SVFUtil.h:232</a></div></div>
2913
- <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a97c74c642ad43d955ac8a3f3ad8907b4"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a97c74c642ad43d955ac8a3f3ad8907b4">SVF::SVFUtil::isReallocExtFun</a></div><div class="ttdeci">bool isReallocExtFun(const SVFFunction *fun)</div><div class="ttdoc">Return true if the call is a heap reallocator. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00324">SVFUtil.h:324</a></div></div>
2882
+ <div class="fragment"><div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160;{</div><div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160; <span class="keywordtype">bool</span> isPtrTy = inst-&gt;getType()-&gt;isPointerTy();</div><div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160; <span class="keywordflow">return</span> isPtrTy &amp;&amp; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a97c74c642ad43d955ac8a3f3ad8907b4">isReallocExtFun</a>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a13d4f8034c444986da7c57cb5338f851">getCallee</a>(inst));</div><div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160;}</div><div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a13d4f8034c444986da7c57cb5338f851"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a13d4f8034c444986da7c57cb5338f851">SVF::SVFUtil::getCallee</a></div><div class="ttdeci">const SVFFunction * getCallee(const SVFInstruction *inst)</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00233">SVFUtil.h:233</a></div></div>
2883
+ <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a97c74c642ad43d955ac8a3f3ad8907b4"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a97c74c642ad43d955ac8a3f3ad8907b4">SVF::SVFUtil::isReallocExtFun</a></div><div class="ttdeci">bool isReallocExtFun(const SVFFunction *fun)</div><div class="ttdoc">Return true if the call is a heap reallocator. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00325">SVFUtil.h:325</a></div></div>
2914
2884
  </div><!-- fragment -->
2915
2885
  </div>
2916
2886
  </div>
@@ -2941,8 +2911,8 @@ template&lt;typename First , typename Second , typename... Rest, typename Y &gt;
2941
2911
  <p>Return true if the call is a heap reallocator. </p>
2942
2912
  <p>note that this function is not suppose to be used externally </p>
2943
2913
 
2944
- <p class="definition">Definition at line <a class="el" href="SVFUtil_8h_source.html#l00324">324</a> of file <a class="el" href="SVFUtil_8h_source.html">SVFUtil.h</a>.</p>
2945
- <div class="fragment"><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160;{</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; <span class="keywordflow">return</span> fun &amp;&amp; (ExtAPI::getExtAPI()-&gt;is_realloc(fun));</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160;}</div></div><!-- fragment -->
2914
+ <p class="definition">Definition at line <a class="el" href="SVFUtil_8h_source.html#l00325">325</a> of file <a class="el" href="SVFUtil_8h_source.html">SVFUtil.h</a>.</p>
2915
+ <div class="fragment"><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160;{</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; <span class="keywordflow">return</span> fun &amp;&amp; (ExtAPI::getExtAPI()-&gt;is_realloc(fun));</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160;}</div></div><!-- fragment -->
2946
2916
  </div>
2947
2917
  </div>
2948
2918
  <a id="ae62938f722543d6d7fc201b685be1abf"></a>
@@ -2970,8 +2940,8 @@ template&lt;typename First , typename Second , typename... Rest, typename Y &gt;
2970
2940
  </div><div class="memdoc">
2971
2941
 
2972
2942
  <p class="definition">Definition at line <a class="el" href="SVFUtil_8h_source.html#l00493">493</a> of file <a class="el" href="SVFUtil_8h_source.html">SVFUtil.h</a>.</p>
2973
- <div class="fragment"><div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160;{</div><div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160; <span class="keywordtype">bool</span> isPtrTy = cs.getInstruction()-&gt;getType()-&gt;isPointerTy();</div><div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160; <span class="keywordflow">return</span> isPtrTy &amp;&amp; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a1bc9bb7bd6c9682debf3ffab7182abf5">isStaticExtFun</a>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a13d4f8034c444986da7c57cb5338f851">getCallee</a>(cs));</div><div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160;}</div><div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a13d4f8034c444986da7c57cb5338f851"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a13d4f8034c444986da7c57cb5338f851">SVF::SVFUtil::getCallee</a></div><div class="ttdeci">const SVFFunction * getCallee(const SVFInstruction *inst)</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00232">SVFUtil.h:232</a></div></div>
2974
- <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a1bc9bb7bd6c9682debf3ffab7182abf5"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a1bc9bb7bd6c9682debf3ffab7182abf5">SVF::SVFUtil::isStaticExtFun</a></div><div class="ttdeci">bool isStaticExtFun(const SVFFunction *fun)</div><div class="ttdoc">Return true if the call is a static global call. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00340">SVFUtil.h:340</a></div></div>
2943
+ <div class="fragment"><div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160;{</div><div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160; <span class="keywordtype">bool</span> isPtrTy = cs.getInstruction()-&gt;getType()-&gt;isPointerTy();</div><div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160; <span class="keywordflow">return</span> isPtrTy &amp;&amp; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a1bc9bb7bd6c9682debf3ffab7182abf5">isStaticExtFun</a>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a13d4f8034c444986da7c57cb5338f851">getCallee</a>(cs));</div><div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160;}</div><div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a13d4f8034c444986da7c57cb5338f851"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a13d4f8034c444986da7c57cb5338f851">SVF::SVFUtil::getCallee</a></div><div class="ttdeci">const SVFFunction * getCallee(const SVFInstruction *inst)</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00233">SVFUtil.h:233</a></div></div>
2944
+ <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a1bc9bb7bd6c9682debf3ffab7182abf5"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a1bc9bb7bd6c9682debf3ffab7182abf5">SVF::SVFUtil::isStaticExtFun</a></div><div class="ttdeci">bool isStaticExtFun(const SVFFunction *fun)</div><div class="ttdoc">Return true if the call is a static global call. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00341">SVFUtil.h:341</a></div></div>
2975
2945
  </div><!-- fragment -->
2976
2946
  </div>
2977
2947
  </div>
@@ -3000,8 +2970,8 @@ template&lt;typename First , typename Second , typename... Rest, typename Y &gt;
3000
2970
  </div><div class="memdoc">
3001
2971
 
3002
2972
  <p class="definition">Definition at line <a class="el" href="SVFUtil_8h_source.html#l00499">499</a> of file <a class="el" href="SVFUtil_8h_source.html">SVFUtil.h</a>.</p>
3003
- <div class="fragment"><div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160;{</div><div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160; <span class="keywordtype">bool</span> isPtrTy = inst-&gt;getType()-&gt;isPointerTy();</div><div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160; <span class="keywordflow">return</span> isPtrTy &amp;&amp; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a1bc9bb7bd6c9682debf3ffab7182abf5">isStaticExtFun</a>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a13d4f8034c444986da7c57cb5338f851">getCallee</a>(inst));</div><div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160;}</div><div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a13d4f8034c444986da7c57cb5338f851"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a13d4f8034c444986da7c57cb5338f851">SVF::SVFUtil::getCallee</a></div><div class="ttdeci">const SVFFunction * getCallee(const SVFInstruction *inst)</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00232">SVFUtil.h:232</a></div></div>
3004
- <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a1bc9bb7bd6c9682debf3ffab7182abf5"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a1bc9bb7bd6c9682debf3ffab7182abf5">SVF::SVFUtil::isStaticExtFun</a></div><div class="ttdeci">bool isStaticExtFun(const SVFFunction *fun)</div><div class="ttdoc">Return true if the call is a static global call. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00340">SVFUtil.h:340</a></div></div>
2973
+ <div class="fragment"><div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160;{</div><div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160; <span class="keywordtype">bool</span> isPtrTy = inst-&gt;getType()-&gt;isPointerTy();</div><div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160; <span class="keywordflow">return</span> isPtrTy &amp;&amp; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a1bc9bb7bd6c9682debf3ffab7182abf5">isStaticExtFun</a>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a13d4f8034c444986da7c57cb5338f851">getCallee</a>(inst));</div><div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160;}</div><div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a13d4f8034c444986da7c57cb5338f851"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a13d4f8034c444986da7c57cb5338f851">SVF::SVFUtil::getCallee</a></div><div class="ttdeci">const SVFFunction * getCallee(const SVFInstruction *inst)</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00233">SVFUtil.h:233</a></div></div>
2974
+ <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a1bc9bb7bd6c9682debf3ffab7182abf5"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a1bc9bb7bd6c9682debf3ffab7182abf5">SVF::SVFUtil::isStaticExtFun</a></div><div class="ttdeci">bool isStaticExtFun(const SVFFunction *fun)</div><div class="ttdoc">Return true if the call is a static global call. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00341">SVFUtil.h:341</a></div></div>
3005
2975
  </div><!-- fragment -->
3006
2976
  </div>
3007
2977
  </div>
@@ -3032,8 +3002,8 @@ template&lt;typename First , typename Second , typename... Rest, typename Y &gt;
3032
3002
  <p>Return true if the call is a static global call. </p>
3033
3003
  <p>note that this function is not suppose to be used externally </p>
3034
3004
 
3035
- <p class="definition">Definition at line <a class="el" href="SVFUtil_8h_source.html#l00340">340</a> of file <a class="el" href="SVFUtil_8h_source.html">SVFUtil.h</a>.</p>
3036
- <div class="fragment"><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160;{</div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160; <span class="keywordflow">return</span> fun &amp;&amp; ExtAPI::getExtAPI()-&gt;has_static(fun);</div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160;}</div></div><!-- fragment -->
3005
+ <p class="definition">Definition at line <a class="el" href="SVFUtil_8h_source.html#l00341">341</a> of file <a class="el" href="SVFUtil_8h_source.html">SVFUtil.h</a>.</p>
3006
+ <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> fun &amp;&amp; ExtAPI::getExtAPI()-&gt;has_static(fun);</div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160;}</div></div><!-- fragment -->
3037
3007
  </div>
3038
3008
  </div>
3039
3009
  <a id="a3af5073a1cdc000678f7e4bbc943f5d5"></a>
@@ -3237,8 +3207,8 @@ template&lt;typename Data &gt; </div>
3237
3207
 
3238
3208
  <p>Given a map mapping points-to sets to a count, adds from into to. </p>
3239
3209
 
3240
- <p class="definition">Definition at line <a class="el" href="SVFUtil_8h_source.html#l00243">243</a> of file <a class="el" href="SVFUtil_8h_source.html">SVFUtil.h</a>.</p>
3241
- <div class="fragment"><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160;{</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">typename</span> Map&lt;Data, unsigned&gt;::value_type &amp;ptocc : from)</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; {</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; to[ptocc.first] += ptocc.second;</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; }</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160;}</div></div><!-- fragment -->
3210
+ <p class="definition">Definition at line <a class="el" href="SVFUtil_8h_source.html#l00244">244</a> of file <a class="el" href="SVFUtil_8h_source.html">SVFUtil.h</a>.</p>
3211
+ <div class="fragment"><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160;{</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">typename</span> Map&lt;Data, unsigned&gt;::value_type &amp;ptocc : from)</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; {</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; to[ptocc.first] += ptocc.second;</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; }</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160;}</div></div><!-- fragment -->
3242
3212
  </div>
3243
3213
  </div>
3244
3214
  <a id="a72502f7f536418621485e90ab98c2016"></a>
@@ -3267,8 +3237,8 @@ template&lt;typename T &gt; </div>
3267
3237
  </table>
3268
3238
  </div><div class="memdoc">
3269
3239
 
3270
- <p class="definition">Definition at line <a class="el" href="SVFUtil_8h_source.html#l00657">657</a> of file <a class="el" href="SVFUtil_8h_source.html">SVFUtil.h</a>.</p>
3271
- <div class="fragment"><div class="line"><a name="l00658"></a><span class="lineno"> 658</span>&#160;{</div><div class="line"><a name="l00659"></a><span class="lineno"> 659</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a72502f7f536418621485e90ab98c2016">std::move</a>(t);</div><div class="line"><a name="l00660"></a><span class="lineno"> 660</span>&#160;}</div><div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a72502f7f536418621485e90ab98c2016"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a72502f7f536418621485e90ab98c2016">SVF::SVFUtil::move</a></div><div class="ttdeci">constexpr std::remove_reference&lt; T &gt;::type &amp;&amp; move(T &amp;&amp;t) noexcept</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00657">SVFUtil.h:657</a></div></div>
3240
+ <p class="definition">Definition at line <a class="el" href="SVFUtil_8h_source.html#l00651">651</a> of file <a class="el" href="SVFUtil_8h_source.html">SVFUtil.h</a>.</p>
3241
+ <div class="fragment"><div class="line"><a name="l00652"></a><span class="lineno"> 652</span>&#160;{</div><div class="line"><a name="l00653"></a><span class="lineno"> 653</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a72502f7f536418621485e90ab98c2016">std::move</a>(t);</div><div class="line"><a name="l00654"></a><span class="lineno"> 654</span>&#160;}</div><div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a72502f7f536418621485e90ab98c2016"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a72502f7f536418621485e90ab98c2016">SVF::SVFUtil::move</a></div><div class="ttdeci">constexpr std::remove_reference&lt; T &gt;::type &amp;&amp; move(T &amp;&amp;t) noexcept</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00651">SVFUtil.h:651</a></div></div>
3272
3242
  </div><!-- fragment -->
3273
3243
  </div>
3274
3244
  </div>
@@ -3297,8 +3267,8 @@ template&lt;typename T &gt; </div>
3297
3267
 
3298
3268
  <p>Overwrite <a class="el" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61" title="Overwrite llvm::outs() ">llvm::outs()</a> </p>
3299
3269
 
3300
- <p class="definition">Definition at line <a class="el" href="SVFUtil_8h_source.html#l00049">49</a> of file <a class="el" href="SVFUtil_8h_source.html">SVFUtil.h</a>.</p>
3301
- <div class="fragment"><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;{</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keywordflow">return</span> std::cout;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;}</div></div><!-- fragment -->
3270
+ <p class="definition">Definition at line <a class="el" href="SVFUtil_8h_source.html#l00050">50</a> of file <a class="el" href="SVFUtil_8h_source.html">SVFUtil.h</a>.</p>
3271
+ <div class="fragment"><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;{</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keywordflow">return</span> std::cout;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;}</div></div><!-- fragment -->
3302
3272
  </div>
3303
3273
  </div>
3304
3274
  <a id="a609eea630a8f88fe9eaba15ce7e48738"></a>
@@ -3350,9 +3320,9 @@ template&lt;typename T &gt; </div>
3350
3320
  </table>
3351
3321
  </div><div class="memdoc">
3352
3322
 
3353
- <p class="definition">Definition at line <a class="el" href="SVFUtil_8h_source.html#l00157">157</a> of file <a class="el" href="SVFUtil_8h_source.html">SVFUtil.h</a>.</p>
3354
- <div class="fragment"><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;{</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <a class="code" href="namespaceSVF.html#aa7b6a13e52671de8524b130738aeb564">NodeBS</a> nbs;</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> o : pts) nbs.<a class="code" href="classSVF_1_1SparseBitVector.html#a61bd86909a141f9de873d92c0f904832">set</a>(o);</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <span class="keywordflow">return</span> nbs;</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;}</div><div class="ttc" id="namespaceSVF_html_a350ae9bf8606bdfe23c8679681b969dc"><div class="ttname"><a href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">SVF::NodeID</a></div><div class="ttdeci">unsigned NodeID</div><div class="ttdef"><b>Definition:</b> <a href="include_2MTA_2MTAResultValidator_8h_source.html#l00020">MTAResultValidator.h:20</a></div></div>
3355
- <div class="ttc" id="namespaceSVF_html_aa7b6a13e52671de8524b130738aeb564"><div class="ttname"><a href="namespaceSVF.html#aa7b6a13e52671de8524b130738aeb564">SVF::NodeBS</a></div><div class="ttdeci">SparseBitVector NodeBS</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00061">SVFType.h:61</a></div></div>
3323
+ <p class="definition">Definition at line <a class="el" href="SVFUtil_8h_source.html#l00158">158</a> of file <a class="el" href="SVFUtil_8h_source.html">SVFUtil.h</a>.</p>
3324
+ <div class="fragment"><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;{</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <a class="code" href="namespaceSVF.html#aa7b6a13e52671de8524b130738aeb564">NodeBS</a> nbs;</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> o : pts) nbs.<a class="code" href="classSVF_1_1SparseBitVector.html#a61bd86909a141f9de873d92c0f904832">set</a>(o);</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <span class="keywordflow">return</span> nbs;</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;}</div><div class="ttc" id="namespaceSVF_html_a350ae9bf8606bdfe23c8679681b969dc"><div class="ttname"><a href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">SVF::NodeID</a></div><div class="ttdeci">unsigned NodeID</div><div class="ttdef"><b>Definition:</b> <a href="include_2MTA_2MTAResultValidator_8h_source.html#l00020">MTAResultValidator.h:20</a></div></div>
3325
+ <div class="ttc" id="namespaceSVF_html_aa7b6a13e52671de8524b130738aeb564"><div class="ttname"><a href="namespaceSVF.html#aa7b6a13e52671de8524b130738aeb564">SVF::NodeBS</a></div><div class="ttdeci">SparseBitVector NodeBS</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00060">SVFType.h:60</a></div></div>
3356
3326
  <div class="ttc" id="classSVF_1_1SparseBitVector_html_a61bd86909a141f9de873d92c0f904832"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#a61bd86909a141f9de873d92c0f904832">SVF::SparseBitVector::set</a></div><div class="ttdeci">void set(unsigned Idx)</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00739">SparseBitVector.h:739</a></div></div>
3357
3327
  </div><!-- fragment -->
3358
3328
  </div>
@@ -3395,8 +3365,8 @@ template&lt;typename Key , typename KeySet &gt; </div>
3395
3365
 
3396
3366
  <p>Removes an element from a Set/CondSet (or anything implementing ::erase). </p>
3397
3367
 
3398
- <p class="definition">Definition at line <a class="el" href="SVFUtil_8h_source.html#l00269">269</a> of file <a class="el" href="SVFUtil_8h_source.html">SVFUtil.h</a>.</p>
3399
- <div class="fragment"><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160;{</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; keySet.erase(key);</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160;}</div></div><!-- fragment -->
3368
+ <p class="definition">Definition at line <a class="el" href="SVFUtil_8h_source.html#l00270">270</a> of file <a class="el" href="SVFUtil_8h_source.html">SVFUtil.h</a>.</p>
3369
+ <div class="fragment"><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160;{</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; keySet.erase(key);</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160;}</div></div><!-- fragment -->
3400
3370
  </div>
3401
3371
  </div>
3402
3372
  <a id="aa59af7fc01a534662b3b1524186ef97e"></a>
@@ -3435,8 +3405,8 @@ template&lt;typename Key , typename KeySet &gt; </div>
3435
3405
 
3436
3406
  <p>Removes a NodeID from a NodeBS. </p>
3437
3407
 
3438
- <p class="definition">Definition at line <a class="el" href="SVFUtil_8h_source.html#l00275">275</a> of file <a class="el" href="SVFUtil_8h_source.html">SVFUtil.h</a>.</p>
3439
- <div class="fragment"><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160;{</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; keySet.reset(key);</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160;}</div></div><!-- fragment -->
3408
+ <p class="definition">Definition at line <a class="el" href="SVFUtil_8h_source.html#l00276">276</a> of file <a class="el" href="SVFUtil_8h_source.html">SVFUtil.h</a>.</p>
3409
+ <div class="fragment"><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160;{</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; keySet.reset(key);</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160;}</div></div><!-- fragment -->
3440
3410
  </div>
3441
3411
  </div>
3442
3412
  <a id="a6cfe12afa463d0ceddeee11540c33ab3"></a>
@@ -3469,7 +3439,7 @@ template&lt;typename Key , typename KeySet &gt; </div>
3469
3439
  <p>Print memory usage </p>
3470
3440
 
3471
3441
  <p class="definition">Definition at line <a class="el" href="SVFUtil_8cpp_source.html#l00166">166</a> of file <a class="el" href="SVFUtil_8cpp_source.html">SVFUtil.cpp</a>.</p>
3472
- <div class="fragment"><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;{</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> vmrss, vmsize;</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF_1_1SVFUtil.html#a630ff9c47f58f9b8df7c8a2b3711477c">getMemoryUsageKB</a>(&amp;vmrss, &amp;vmsize))</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; O &lt;&lt; infor &lt;&lt; <span class="stringliteral">&quot;\tVmRSS: &quot;</span> &lt;&lt; vmrss &lt;&lt; <span class="stringliteral">&quot;\tVmSize: &quot;</span> &lt;&lt; vmsize &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;}</div><div class="ttc" id="namespaceSVF_html_ad42bff8d0a7d60a085aa32d10f4955af"><div class="ttname"><a href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">SVF::u32_t</a></div><div class="ttdeci">unsigned u32_t</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00050">SVFType.h:50</a></div></div>
3442
+ <div class="fragment"><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;{</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> vmrss, vmsize;</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF_1_1SVFUtil.html#a630ff9c47f58f9b8df7c8a2b3711477c">getMemoryUsageKB</a>(&amp;vmrss, &amp;vmsize))</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; O &lt;&lt; infor &lt;&lt; <span class="stringliteral">&quot;\tVmRSS: &quot;</span> &lt;&lt; vmrss &lt;&lt; <span class="stringliteral">&quot;\tVmSize: &quot;</span> &lt;&lt; vmsize &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;}</div><div class="ttc" id="namespaceSVF_html_ad42bff8d0a7d60a085aa32d10f4955af"><div class="ttname"><a href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">SVF::u32_t</a></div><div class="ttdeci">unsigned u32_t</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00049">SVFType.h:49</a></div></div>
3473
3443
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a630ff9c47f58f9b8df7c8a2b3711477c"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a630ff9c47f58f9b8df7c8a2b3711477c">SVF::SVFUtil::getMemoryUsageKB</a></div><div class="ttdeci">bool getMemoryUsageKB(u32_t *vmrss_kb, u32_t *vmsize_kb)</div><div class="ttdoc">Get memory usage from system file. Return TRUE if succeed. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8cpp_source.html#l00176">SVFUtil.cpp:176</a></div></div>
3474
3444
  </div><!-- fragment -->
3475
3445
  </div>
@@ -3510,8 +3480,8 @@ template&lt;typename Key , typename KeySet &gt; </div>
3510
3480
 
3511
3481
  <p>Split into two substrings around the first occurrence of a separator string. </p>
3512
3482
 
3513
- <p class="definition">Definition at line <a class="el" href="SVFUtil_8h_source.html#l00211">211</a> of file <a class="el" href="SVFUtil_8h_source.html">SVFUtil.h</a>.</p>
3514
- <div class="fragment"><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160;{</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; std::vector&lt;std::string&gt; output;</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; std::string::size_type prev_pos = 0, pos = 0;</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; <span class="keywordflow">while</span>((pos = s.find(seperator, pos)) != std::string::npos)</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; {</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> substring( s.substr(prev_pos, pos-prev_pos) );</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; output.push_back(substring);</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; prev_pos = ++pos;</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; }</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; output.push_back(s.substr(prev_pos, pos-prev_pos));</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; <span class="keywordflow">return</span> output;</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160;}</div><div class="ttc" id="cJSON_8h_html_ad4c68ea99a26b0a98ad9a79982960458"><div class="ttname"><a href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">string</a></div><div class="ttdeci">const char *const string</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8h_source.html#l00172">cJSON.h:172</a></div></div>
3483
+ <p class="definition">Definition at line <a class="el" href="SVFUtil_8h_source.html#l00212">212</a> of file <a class="el" href="SVFUtil_8h_source.html">SVFUtil.h</a>.</p>
3484
+ <div class="fragment"><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160;{</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; std::vector&lt;std::string&gt; output;</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; std::string::size_type prev_pos = 0, pos = 0;</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; <span class="keywordflow">while</span>((pos = s.find(seperator, pos)) != std::string::npos)</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; {</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> substring( s.substr(prev_pos, pos-prev_pos) );</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; output.push_back(substring);</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; prev_pos = ++pos;</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; }</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; output.push_back(s.substr(prev_pos, pos-prev_pos));</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; <span class="keywordflow">return</span> output;</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160;}</div><div class="ttc" id="cJSON_8h_html_ad4c68ea99a26b0a98ad9a79982960458"><div class="ttname"><a href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">string</a></div><div class="ttdeci">const char *const string</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8h_source.html#l00172">cJSON.h:172</a></div></div>
3515
3485
  </div><!-- fragment -->
3516
3486
  </div>
3517
3487
  </div>
@@ -3602,7 +3572,7 @@ template&lt;typename Key , typename KeySet &gt; </div>
3602
3572
  <p>Function to call when alarm for time limit hits. </p>
3603
3573
 
3604
3574
  <p class="definition">Definition at line <a class="el" href="SVFUtil_8cpp_source.html#l00279">279</a> of file <a class="el" href="SVFUtil_8cpp_source.html">SVFUtil.cpp</a>.</p>
3605
- <div class="fragment"><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; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVFUtil::outs</a>().flush();</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; <span class="comment">// TODO: output does not indicate which time limit is reached.</span></div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; <span class="comment">// This can be better in the future.</span></div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVFUtil::outs</a>() &lt;&lt; <span class="stringliteral">&quot;WPA: time limit reached\n&quot;</span>;</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; exit(101);</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160;}</div><div class="ttc" id="namespaceSVF_1_1SVFUtil_html_aed0b0b9f035057552a6a82154fd88e61"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVF::SVFUtil::outs</a></div><div class="ttdeci">std::ostream &amp; outs()</div><div class="ttdoc">Overwrite llvm::outs() </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00049">SVFUtil.h:49</a></div></div>
3575
+ <div class="fragment"><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; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVFUtil::outs</a>().flush();</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; <span class="comment">// TODO: output does not indicate which time limit is reached.</span></div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; <span class="comment">// This can be better in the future.</span></div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVFUtil::outs</a>() &lt;&lt; <span class="stringliteral">&quot;WPA: time limit reached\n&quot;</span>;</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; exit(101);</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160;}</div><div class="ttc" id="namespaceSVF_1_1SVFUtil_html_aed0b0b9f035057552a6a82154fd88e61"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVF::SVFUtil::outs</a></div><div class="ttdeci">std::ostream &amp; outs()</div><div class="ttdoc">Overwrite llvm::outs() </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00050">SVFUtil.h:50</a></div></div>
3606
3576
  </div><!-- fragment -->
3607
3577
  </div>
3608
3578
  </div>
@@ -3625,7 +3595,7 @@ template&lt;typename Key , typename KeySet &gt; </div>
3625
3595
  <p>Writes a message run through wrnMsg. </p>
3626
3596
 
3627
3597
  <p class="definition">Definition at line <a class="el" href="SVFUtil_8cpp_source.html#l00066">66</a> of file <a class="el" href="SVFUtil_8cpp_source.html">SVFUtil.cpp</a>.</p>
3628
- <div class="fragment"><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;{</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keywordflow">if</span>(Options::DisableWarn()) <span class="keywordflow">return</span>;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a6c06020737f7dff22a666b75c28c5e7d">wrnMsg</a>(msg) &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;}</div><div class="ttc" id="namespaceSVF_1_1SVFUtil_html_aed0b0b9f035057552a6a82154fd88e61"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVF::SVFUtil::outs</a></div><div class="ttdeci">std::ostream &amp; outs()</div><div class="ttdoc">Overwrite llvm::outs() </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00049">SVFUtil.h:49</a></div></div>
3598
+ <div class="fragment"><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;{</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keywordflow">if</span>(Options::DisableWarn()) <span class="keywordflow">return</span>;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a6c06020737f7dff22a666b75c28c5e7d">wrnMsg</a>(msg) &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;}</div><div class="ttc" id="namespaceSVF_1_1SVFUtil_html_aed0b0b9f035057552a6a82154fd88e61"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVF::SVFUtil::outs</a></div><div class="ttdeci">std::ostream &amp; outs()</div><div class="ttdoc">Overwrite llvm::outs() </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00050">SVFUtil.h:50</a></div></div>
3629
3599
  <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#l00061">SVFUtil.cpp:61</a></div></div>
3630
3600
  </div><!-- fragment -->
3631
3601
  </div>