svf-tools 1.0.587 → 1.0.589

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 (592) hide show
  1. package/SVF-doxygen/html/html/AbstractPointsToDS_8h_source.html +1 -1
  2. package/SVF-doxygen/html/html/AndersenPWC_8h_source.html +6 -6
  3. package/SVF-doxygen/html/html/AndersenSCD_8cpp_source.html +7 -7
  4. package/SVF-doxygen/html/html/AndersenSFR_8cpp_source.html +8 -8
  5. package/SVF-doxygen/html/html/AndersenStat_8cpp_source.html +20 -20
  6. package/SVF-doxygen/html/html/AndersenWaveDiff_8cpp_source.html +2 -2
  7. package/SVF-doxygen/html/html/Andersen_8cpp_source.html +25 -25
  8. package/SVF-doxygen/html/html/Andersen_8h_source.html +17 -17
  9. package/SVF-doxygen/html/html/Annotator_8h_source.html +3 -3
  10. package/SVF-doxygen/html/html/BasicTypes_8cpp_source.html +5 -5
  11. package/SVF-doxygen/html/html/BreakConstantExpr_8cpp.html +2 -2
  12. package/SVF-doxygen/html/html/BreakConstantExpr_8cpp_source.html +5 -5
  13. package/SVF-doxygen/html/html/BreakConstantExpr_8h_source.html +4 -4
  14. package/SVF-doxygen/html/html/CFGNormalizer_8cpp_source.html +5 -5
  15. package/SVF-doxygen/html/html/CFGNormalizer_8h_source.html +3 -3
  16. package/SVF-doxygen/html/html/CFLAlias_8cpp_source.html +12 -12
  17. package/SVF-doxygen/html/html/CFLAlias_8h_source.html +11 -11
  18. package/SVF-doxygen/html/html/CFLBase_8cpp_source.html +2 -2
  19. package/SVF-doxygen/html/html/CFLGrammar_8cpp_source.html +4 -4
  20. package/SVF-doxygen/html/html/CFLGrammar_8h_source.html +7 -7
  21. package/SVF-doxygen/html/html/CFLGraphBuilder_8cpp_source.html +7 -7
  22. package/SVF-doxygen/html/html/CFLGraphBuilder_8h_source.html +6 -6
  23. package/SVF-doxygen/html/html/CFLGraph_8cpp_source.html +2 -2
  24. package/SVF-doxygen/html/html/CFLGraph_8h_source.html +3 -3
  25. package/SVF-doxygen/html/html/CFLSolver_8cpp_source.html +2 -2
  26. package/SVF-doxygen/html/html/CFLStat_8cpp_source.html +1 -1
  27. package/SVF-doxygen/html/html/CHGBuilder_8cpp_source.html +27 -27
  28. package/SVF-doxygen/html/html/CHGBuilder_8h_source.html +5 -5
  29. package/SVF-doxygen/html/html/CHG_8cpp.html +3 -3
  30. package/SVF-doxygen/html/html/CHG_8cpp_source.html +13 -13
  31. package/SVF-doxygen/html/html/CHG_8h_source.html +8 -8
  32. package/SVF-doxygen/html/html/CPPUtil_8cpp.html +2 -2
  33. package/SVF-doxygen/html/html/CPPUtil_8cpp_source.html +26 -26
  34. package/SVF-doxygen/html/html/CPPUtil_8h_source.html +4 -4
  35. package/SVF-doxygen/html/html/CSC_8cpp_source.html +7 -7
  36. package/SVF-doxygen/html/html/CSC_8h_source.html +4 -4
  37. package/SVF-doxygen/html/html/CallGraphBuilder_8cpp_source.html +6 -6
  38. package/SVF-doxygen/html/html/Casting_8h.html +1 -0
  39. package/SVF-doxygen/html/html/Casting_8h_source.html +42 -42
  40. package/SVF-doxygen/html/html/ConditionalPT_8h_source.html +8 -8
  41. package/SVF-doxygen/html/html/ConsGEdge_8h_source.html +2 -2
  42. package/SVF-doxygen/html/html/ConsGNode_8h_source.html +21 -21
  43. package/SVF-doxygen/html/html/ConsG_8cpp_source.html +38 -38
  44. package/SVF-doxygen/html/html/ConsG_8h_source.html +28 -28
  45. package/SVF-doxygen/html/html/ContextDDA_8cpp_source.html +25 -23
  46. package/SVF-doxygen/html/html/ContextDDA_8h_source.html +11 -11
  47. package/SVF-doxygen/html/html/CoreBitVector_8cpp_source.html +1 -1
  48. package/SVF-doxygen/html/html/CoreBitVector_8h_source.html +2 -2
  49. package/SVF-doxygen/html/html/CxtStmt_8h_source.html +5 -5
  50. package/SVF-doxygen/html/html/DCHG_8cpp_source.html +36 -36
  51. package/SVF-doxygen/html/html/DCHG_8h_source.html +15 -15
  52. package/SVF-doxygen/html/html/DDAClient_8cpp_source.html +13 -13
  53. package/SVF-doxygen/html/html/DDAClient_8h_source.html +4 -4
  54. package/SVF-doxygen/html/html/DDAPass_8cpp_source.html +12 -12
  55. package/SVF-doxygen/html/html/DDAPass_8h_source.html +4 -4
  56. package/SVF-doxygen/html/html/DDAStat_8cpp_source.html +8 -8
  57. package/SVF-doxygen/html/html/DDAStat_8h_source.html +3 -3
  58. package/SVF-doxygen/html/html/DDAVFSolver_8h_source.html +16 -16
  59. package/SVF-doxygen/html/html/DPItem_8h_source.html +5 -5
  60. package/SVF-doxygen/html/html/DataFlowUtil_8cpp_source.html +7 -7
  61. package/SVF-doxygen/html/html/DataFlowUtil_8h_source.html +11 -11
  62. package/SVF-doxygen/html/html/DoubleFreeChecker_8cpp_source.html +2 -2
  63. package/SVF-doxygen/html/html/DoubleFreeChecker_8h_source.html +1 -1
  64. package/SVF-doxygen/html/html/ExeState_8cpp_source.html +6 -6
  65. package/SVF-doxygen/html/html/ExeState_8h_source.html +4 -4
  66. package/SVF-doxygen/html/html/ExtAPI_8cpp.html +1 -1
  67. package/SVF-doxygen/html/html/ExtAPI_8cpp_source.html +8 -8
  68. package/SVF-doxygen/html/html/ExtAPI_8h_source.html +3 -3
  69. package/SVF-doxygen/html/html/FSMPTA_8cpp_source.html +16 -16
  70. package/SVF-doxygen/html/html/FSMPTA_8h_source.html +7 -7
  71. package/SVF-doxygen/html/html/FileChecker_8h_source.html +1 -1
  72. package/SVF-doxygen/html/html/FlowDDA_8cpp_source.html +7 -7
  73. package/SVF-doxygen/html/html/FlowDDA_8h_source.html +13 -13
  74. package/SVF-doxygen/html/html/FlowSensitiveStat_8cpp_source.html +13 -13
  75. package/SVF-doxygen/html/html/FlowSensitive_8cpp_source.html +19 -19
  76. package/SVF-doxygen/html/html/FlowSensitive_8h_source.html +8 -8
  77. package/SVF-doxygen/html/html/GEPTypeBridgeIterator_8h_source.html +3 -3
  78. package/SVF-doxygen/html/html/GenericGraph_8h_source.html +61 -61
  79. package/SVF-doxygen/html/html/GrammarBuilder_8h_source.html +1 -1
  80. package/SVF-doxygen/html/html/Graph2Json_8cpp_source.html +3 -3
  81. package/SVF-doxygen/html/html/GraphPrinter_8h_source.html +1 -1
  82. package/SVF-doxygen/html/html/ICFGBuilder_8cpp_source.html +12 -12
  83. package/SVF-doxygen/html/html/ICFGBuilder_8h_source.html +3 -3
  84. package/SVF-doxygen/html/html/ICFGEdge_8h_source.html +5 -5
  85. package/SVF-doxygen/html/html/ICFGNode_8h_source.html +5 -5
  86. package/SVF-doxygen/html/html/ICFGStat_8h_source.html +3 -3
  87. package/SVF-doxygen/html/html/ICFG_8cpp_source.html +37 -34
  88. package/SVF-doxygen/html/html/ICFG_8h_source.html +30 -30
  89. package/SVF-doxygen/html/html/IRAnnotator_8h_source.html +28 -28
  90. package/SVF-doxygen/html/html/IRGraph_8cpp_source.html +4 -4
  91. package/SVF-doxygen/html/html/IRGraph_8h_source.html +10 -10
  92. package/SVF-doxygen/html/html/LLVMLoopAnalysis_8cpp_source.html +8 -8
  93. package/SVF-doxygen/html/html/LLVMModule_8cpp_source.html +28 -28
  94. package/SVF-doxygen/html/html/LLVMModule_8h_source.html +7 -7
  95. package/SVF-doxygen/html/html/LLVMUtil_8cpp_source.html +26 -26
  96. package/SVF-doxygen/html/html/LLVMUtil_8h_source.html +18 -18
  97. package/SVF-doxygen/html/html/LeakChecker_8cpp_source.html +5 -5
  98. package/SVF-doxygen/html/html/LeakChecker_8h_source.html +3 -3
  99. package/SVF-doxygen/html/html/LocationSet_8cpp_source.html +12 -12
  100. package/SVF-doxygen/html/html/LocationSet_8h_source.html +7 -7
  101. package/SVF-doxygen/html/html/LockAnalysis_8cpp_source.html +16 -16
  102. package/SVF-doxygen/html/html/LockAnalysis_8h_source.html +11 -11
  103. package/SVF-doxygen/html/html/LockResultValidator_8cpp_source.html +15 -15
  104. package/SVF-doxygen/html/html/LockResultValidator_8h_source.html +5 -5
  105. package/SVF-doxygen/html/html/MHP_8cpp.html +3 -3
  106. package/SVF-doxygen/html/html/MHP_8cpp_source.html +35 -36
  107. package/SVF-doxygen/html/html/MHP_8h_source.html +15 -15
  108. package/SVF-doxygen/html/html/MSSAMuChi_8h_source.html +5 -5
  109. package/SVF-doxygen/html/html/MTAAnnotator_8cpp_source.html +13 -13
  110. package/SVF-doxygen/html/html/MTAAnnotator_8h_source.html +8 -8
  111. package/SVF-doxygen/html/html/MTAResultValidator_8cpp_source.html +28 -28
  112. package/SVF-doxygen/html/html/MTAResultValidator_8h_source.html +11 -11
  113. package/SVF-doxygen/html/html/MTAStat_8cpp_source.html +8 -8
  114. package/SVF-doxygen/html/html/MTAStat_8h_source.html +1 -1
  115. package/SVF-doxygen/html/html/MTA_8cpp_source.html +14 -14
  116. package/SVF-doxygen/html/html/MTA_8h_source.html +7 -7
  117. package/SVF-doxygen/html/html/MemPartition_8cpp_source.html +11 -11
  118. package/SVF-doxygen/html/html/MemPartition_8h_source.html +4 -4
  119. package/SVF-doxygen/html/html/MemRegion_8cpp_source.html +41 -41
  120. package/SVF-doxygen/html/html/MemRegion_8h_source.html +14 -14
  121. package/SVF-doxygen/html/html/MemSSA_8cpp_source.html +17 -17
  122. package/SVF-doxygen/html/html/MemSSA_8h_source.html +8 -8
  123. package/SVF-doxygen/html/html/MutablePointsToDS_8h_source.html +7 -7
  124. package/SVF-doxygen/html/html/NodeIDAllocator_8cpp_source.html +6 -6
  125. package/SVF-doxygen/html/html/NodeIDAllocator_8h_source.html +3 -3
  126. package/SVF-doxygen/html/html/PAGBuilderFromFile_8cpp_source.html +2 -2
  127. package/SVF-doxygen/html/html/PAGBuilderFromFile_8h_source.html +1 -1
  128. package/SVF-doxygen/html/html/PCG_8cpp_source.html +11 -11
  129. package/SVF-doxygen/html/html/PCG_8h_source.html +7 -7
  130. package/SVF-doxygen/html/html/PTACallGraph_8cpp_source.html +8 -8
  131. package/SVF-doxygen/html/html/PTACallGraph_8h_source.html +9 -9
  132. package/SVF-doxygen/html/html/PTAStat_8cpp_source.html +9 -9
  133. package/SVF-doxygen/html/html/PTAStat_8h_source.html +1 -1
  134. package/SVF-doxygen/html/html/PersistentPointsToCache_8h_source.html +3 -3
  135. package/SVF-doxygen/html/html/PersistentPointsToDS_8h_source.html +3 -3
  136. package/SVF-doxygen/html/html/PointerAnalysisImpl_8cpp_source.html +34 -34
  137. package/SVF-doxygen/html/html/PointerAnalysisImpl_8h_source.html +31 -31
  138. package/SVF-doxygen/html/html/PointerAnalysis_8cpp_source.html +63 -63
  139. package/SVF-doxygen/html/html/PointerAnalysis_8h_source.html +83 -84
  140. package/SVF-doxygen/html/html/PointsTo_8cpp_source.html +15 -15
  141. package/SVF-doxygen/html/html/PointsTo_8h_source.html +3 -3
  142. package/SVF-doxygen/html/html/ProgSlice_8cpp_source.html +10 -10
  143. package/SVF-doxygen/html/html/ProgSlice_8h_source.html +10 -10
  144. package/SVF-doxygen/html/html/SCC_8h_source.html +6 -6
  145. package/SVF-doxygen/html/html/SVF-FE_2BasicTypes_8h.html +5 -1
  146. package/SVF-doxygen/html/html/SVF-FE_2BasicTypes_8h_source.html +85 -85
  147. package/SVF-doxygen/html/html/SVFBasicTypes_8h.html +23 -27
  148. package/SVF-doxygen/html/html/SVFBasicTypes_8h_source.html +73 -74
  149. package/SVF-doxygen/html/html/SVFGBuilder_8cpp_source.html +5 -5
  150. package/SVF-doxygen/html/html/SVFGBuilder_8h_source.html +3 -3
  151. package/SVF-doxygen/html/html/SVFGEdge_8h_source.html +3 -3
  152. package/SVF-doxygen/html/html/SVFGNode_8h_source.html +5 -5
  153. package/SVF-doxygen/html/html/SVFGOPT_8cpp_source.html +8 -8
  154. package/SVF-doxygen/html/html/SVFGOPT_8h_source.html +14 -14
  155. package/SVF-doxygen/html/html/SVFGReadWrite_8cpp_source.html +8 -8
  156. package/SVF-doxygen/html/html/SVFGStat_8cpp_source.html +7 -7
  157. package/SVF-doxygen/html/html/SVFGStat_8h_source.html +4 -4
  158. package/SVF-doxygen/html/html/SVFG_8cpp_source.html +25 -25
  159. package/SVF-doxygen/html/html/SVFG_8h_source.html +12 -12
  160. package/SVF-doxygen/html/html/SVFIRBuilder_8cpp_source.html +58 -58
  161. package/SVF-doxygen/html/html/SVFIRBuilder_8h_source.html +75 -75
  162. package/SVF-doxygen/html/html/SVFIR_8cpp_source.html +11 -11
  163. package/SVF-doxygen/html/html/SVFIR_8h_source.html +34 -34
  164. package/SVF-doxygen/html/html/SVFLoop_8h_source.html +2 -2
  165. package/SVF-doxygen/html/html/SVFModule_8cpp_source.html +3 -3
  166. package/SVF-doxygen/html/html/SVFModule_8h_source.html +13 -13
  167. package/SVF-doxygen/html/html/SVFStat_8cpp_source.html +8 -8
  168. package/SVF-doxygen/html/html/SVFStat_8h_source.html +1 -1
  169. package/SVF-doxygen/html/html/SVFStatements_8cpp_source.html +5 -5
  170. package/SVF-doxygen/html/html/SVFStatements_8h_source.html +10 -10
  171. package/SVF-doxygen/html/html/SVFUtil_8cpp_source.html +18 -18
  172. package/SVF-doxygen/html/html/SVFUtil_8h_source.html +23 -23
  173. package/SVF-doxygen/html/html/SVFVariables_8cpp_source.html +2 -2
  174. package/SVF-doxygen/html/html/SVFVariables_8h_source.html +8 -8
  175. package/SVF-doxygen/html/html/SaberAnnotator_8cpp_source.html +4 -4
  176. package/SVF-doxygen/html/html/SaberAnnotator_8h_source.html +1 -1
  177. package/SVF-doxygen/html/html/SaberCheckerAPI_8h_source.html +4 -4
  178. package/SVF-doxygen/html/html/SaberCondAllocator_8cpp_source.html +34 -34
  179. package/SVF-doxygen/html/html/SaberCondAllocator_8h_source.html +47 -47
  180. package/SVF-doxygen/html/html/SaberSVFGBuilder_8cpp_source.html +14 -14
  181. package/SVF-doxygen/html/html/SaberSVFGBuilder_8h_source.html +3 -3
  182. package/SVF-doxygen/html/html/SparseBitVector_8h_source.html +59 -59
  183. package/SVF-doxygen/html/html/SrcSnkDDA_8cpp_source.html +10 -10
  184. package/SVF-doxygen/html/html/SrcSnkDDA_8h_source.html +4 -4
  185. package/SVF-doxygen/html/html/Steensgaard_8cpp_source.html +2 -2
  186. package/SVF-doxygen/html/html/Steensgaard_8h_source.html +3 -3
  187. package/SVF-doxygen/html/html/SymState_8h_source.html +1 -1
  188. package/SVF-doxygen/html/html/SymbolTableBuilder_8cpp_source.html +40 -40
  189. package/SVF-doxygen/html/html/SymbolTableBuilder_8h_source.html +6 -6
  190. package/SVF-doxygen/html/html/SymbolTableInfo_8cpp_source.html +16 -16
  191. package/SVF-doxygen/html/html/SymbolTableInfo_8h_source.html +13 -13
  192. package/SVF-doxygen/html/html/TCT_8cpp_source.html +22 -23
  193. package/SVF-doxygen/html/html/TCT_8h_source.html +21 -21
  194. package/SVF-doxygen/html/html/ThreadAPI_8cpp_source.html +5 -5
  195. package/SVF-doxygen/html/html/ThreadAPI_8h_source.html +8 -8
  196. package/SVF-doxygen/html/html/ThreadCallGraph_8cpp_source.html +14 -14
  197. package/SVF-doxygen/html/html/ThreadCallGraph_8h_source.html +6 -6
  198. package/SVF-doxygen/html/html/TypeAnalysis_8cpp_source.html +15 -15
  199. package/SVF-doxygen/html/html/TypeAnalysis_8h_source.html +6 -6
  200. package/SVF-doxygen/html/html/Util_2BasicTypes_8h.html +1 -14
  201. package/SVF-doxygen/html/html/Util_2BasicTypes_8h_source.html +97 -97
  202. package/SVF-doxygen/html/html/VFGEdge_8h_source.html +2 -2
  203. package/SVF-doxygen/html/html/VFGNode_8h_source.html +8 -8
  204. package/SVF-doxygen/html/html/VFG_8cpp_source.html +72 -69
  205. package/SVF-doxygen/html/html/VFG_8h_source.html +57 -57
  206. package/SVF-doxygen/html/html/VersionedFlowSensitiveStat_8cpp_source.html +9 -9
  207. package/SVF-doxygen/html/html/VersionedFlowSensitive_8cpp_source.html +24 -24
  208. package/SVF-doxygen/html/html/VersionedFlowSensitive_8h_source.html +7 -7
  209. package/SVF-doxygen/html/html/WPAFSSolver_8h_source.html +5 -5
  210. package/SVF-doxygen/html/html/WPAPass_8cpp_source.html +13 -13
  211. package/SVF-doxygen/html/html/WPAPass_8h_source.html +6 -6
  212. package/SVF-doxygen/html/html/WPASolver_8h_source.html +3 -3
  213. package/SVF-doxygen/html/html/WPAStat_8h_source.html +1 -1
  214. package/SVF-doxygen/html/html/WorkList_8h_source.html +2 -2
  215. package/SVF-doxygen/html/html/Z3Expr_8cpp_source.html +1 -1
  216. package/SVF-doxygen/html/html/Z3Expr_8h_source.html +1 -1
  217. package/SVF-doxygen/html/html/classSVF_1_1ActualINSVFGNode.html +2 -2
  218. package/SVF-doxygen/html/html/classSVF_1_1ActualOUTSVFGNode.html +2 -2
  219. package/SVF-doxygen/html/html/classSVF_1_1ActualParmVFGNode.html +3 -3
  220. package/SVF-doxygen/html/html/classSVF_1_1ActualRetVFGNode.html +3 -3
  221. package/SVF-doxygen/html/html/classSVF_1_1AddrCGEdge.html +2 -2
  222. package/SVF-doxygen/html/html/classSVF_1_1AddrStmt.html +1 -1
  223. package/SVF-doxygen/html/html/classSVF_1_1AddrVFGNode.html +3 -3
  224. package/SVF-doxygen/html/html/classSVF_1_1AliasCFLGraphBuilder.html +2 -2
  225. package/SVF-doxygen/html/html/classSVF_1_1AliasDDAClient.html +1 -1
  226. package/SVF-doxygen/html/html/classSVF_1_1Andersen-members.html +249 -250
  227. package/SVF-doxygen/html/html/classSVF_1_1Andersen.html +64 -66
  228. package/SVF-doxygen/html/html/classSVF_1_1AndersenBase-members.html +216 -217
  229. package/SVF-doxygen/html/html/classSVF_1_1AndersenBase.html +15 -17
  230. package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD-members.html +259 -260
  231. package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD.html +16 -18
  232. package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR-members.html +271 -272
  233. package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR.html +12 -14
  234. package/SVF-doxygen/html/html/classSVF_1_1AndersenStat.html +35 -35
  235. package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff-members.html +257 -258
  236. package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff.html +6 -8
  237. package/SVF-doxygen/html/html/classSVF_1_1Annotator.html +1 -1
  238. package/SVF-doxygen/html/html/classSVF_1_1ArgumentVFGNode.html +3 -3
  239. package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl-members.html +164 -165
  240. package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl.html +67 -69
  241. package/SVF-doxygen/html/html/classSVF_1_1BinaryOPStmt.html +1 -1
  242. package/SVF-doxygen/html/html/classSVF_1_1BinaryOPVFGNode.html +5 -5
  243. package/SVF-doxygen/html/html/classSVF_1_1BranchStmt.html +2 -2
  244. package/SVF-doxygen/html/html/classSVF_1_1BranchVFGNode.html +2 -2
  245. package/SVF-doxygen/html/html/classSVF_1_1BreakConstantGEPs.html +4 -4
  246. package/SVF-doxygen/html/html/classSVF_1_1CFGNormalizer.html +6 -6
  247. package/SVF-doxygen/html/html/classSVF_1_1CFLAlias-members.html +191 -192
  248. package/SVF-doxygen/html/html/classSVF_1_1CFLAlias.html +20 -22
  249. package/SVF-doxygen/html/html/classSVF_1_1CFLBase-members.html +185 -186
  250. package/SVF-doxygen/html/html/classSVF_1_1CFLBase.html +9 -11
  251. package/SVF-doxygen/html/html/classSVF_1_1CFLGraph.html +1 -1
  252. package/SVF-doxygen/html/html/classSVF_1_1CFLGraphBuilder.html +1 -1
  253. package/SVF-doxygen/html/html/classSVF_1_1CFLNode.html +3 -3
  254. package/SVF-doxygen/html/html/classSVF_1_1CFLSolver.html +2 -2
  255. package/SVF-doxygen/html/html/classSVF_1_1CFLStat.html +1 -1
  256. package/SVF-doxygen/html/html/classSVF_1_1CFLVF-members.html +189 -190
  257. package/SVF-doxygen/html/html/classSVF_1_1CFLVF.html +2 -4
  258. package/SVF-doxygen/html/html/classSVF_1_1CHGBuilder.html +57 -57
  259. package/SVF-doxygen/html/html/classSVF_1_1CHGraph.html +11 -11
  260. package/SVF-doxygen/html/html/classSVF_1_1CSC.html +9 -9
  261. package/SVF-doxygen/html/html/classSVF_1_1CallCFGEdge.html +1 -1
  262. package/SVF-doxygen/html/html/classSVF_1_1CallDirSVFGEdge.html +1 -1
  263. package/SVF-doxygen/html/html/classSVF_1_1CallGraphBuilder.html +4 -4
  264. package/SVF-doxygen/html/html/classSVF_1_1CallICFGNode.html +2 -2
  265. package/SVF-doxygen/html/html/classSVF_1_1CallIndSVFGEdge.html +1 -1
  266. package/SVF-doxygen/html/html/classSVF_1_1CallPE.html +1 -1
  267. package/SVF-doxygen/html/html/classSVF_1_1CallSite.html +36 -36
  268. package/SVF-doxygen/html/html/classSVF_1_1CmpStmt.html +1 -1
  269. package/SVF-doxygen/html/html/classSVF_1_1CmpVFGNode.html +5 -5
  270. package/SVF-doxygen/html/html/classSVF_1_1CondPTAImpl-members.html +153 -154
  271. package/SVF-doxygen/html/html/classSVF_1_1CondPTAImpl.html +19 -21
  272. package/SVF-doxygen/html/html/classSVF_1_1CondStdSet.html +2 -2
  273. package/SVF-doxygen/html/html/classSVF_1_1CondVar.html +1 -1
  274. package/SVF-doxygen/html/html/classSVF_1_1ConstraintGraph.html +80 -80
  275. package/SVF-doxygen/html/html/classSVF_1_1ConstraintNode-members.html +12 -12
  276. package/SVF-doxygen/html/html/classSVF_1_1ConstraintNode.html +120 -120
  277. package/SVF-doxygen/html/html/classSVF_1_1ContextCond.html +1 -1
  278. package/SVF-doxygen/html/html/classSVF_1_1ContextDDA-members.html +255 -256
  279. package/SVF-doxygen/html/html/classSVF_1_1ContextDDA.html +52 -52
  280. package/SVF-doxygen/html/html/classSVF_1_1CopyStmt.html +1 -1
  281. package/SVF-doxygen/html/html/classSVF_1_1CopyVFGNode.html +3 -3
  282. package/SVF-doxygen/html/html/classSVF_1_1CoreBitVector.html +4 -4
  283. package/SVF-doxygen/html/html/classSVF_1_1CxtProc.html +2 -2
  284. package/SVF-doxygen/html/html/classSVF_1_1CxtStmt.html +1 -1
  285. package/SVF-doxygen/html/html/classSVF_1_1CxtThread.html +1 -1
  286. package/SVF-doxygen/html/html/classSVF_1_1CxtThreadProc.html +1 -1
  287. package/SVF-doxygen/html/html/classSVF_1_1DCHGraph.html +88 -88
  288. package/SVF-doxygen/html/html/classSVF_1_1DDAClient.html +9 -9
  289. package/SVF-doxygen/html/html/classSVF_1_1DDAPass.html +21 -21
  290. package/SVF-doxygen/html/html/classSVF_1_1DDAStat.html +10 -10
  291. package/SVF-doxygen/html/html/classSVF_1_1DDAVFSolver.html +35 -35
  292. package/SVF-doxygen/html/html/classSVF_1_1DirectSVFGEdge.html +1 -1
  293. package/SVF-doxygen/html/html/classSVF_1_1DistinctMRG.html +12 -12
  294. package/SVF-doxygen/html/html/classSVF_1_1DoubleFreeChecker.html +3 -3
  295. package/SVF-doxygen/html/html/classSVF_1_1DummyObjVar.html +1 -1
  296. package/SVF-doxygen/html/html/classSVF_1_1DummyValVar.html +1 -1
  297. package/SVF-doxygen/html/html/classSVF_1_1DummyVersionPropSVFGNode.html +2 -2
  298. package/SVF-doxygen/html/html/classSVF_1_1ExeState.html +9 -9
  299. package/SVF-doxygen/html/html/classSVF_1_1ExtAPI.html +12 -12
  300. package/SVF-doxygen/html/html/classSVF_1_1FIObjVar.html +1 -1
  301. package/SVF-doxygen/html/html/classSVF_1_1FSMPTA-members.html +283 -284
  302. package/SVF-doxygen/html/html/classSVF_1_1FSMPTA.html +3 -5
  303. package/SVF-doxygen/html/html/classSVF_1_1FlowDDA-members.html +249 -250
  304. package/SVF-doxygen/html/html/classSVF_1_1FlowDDA.html +28 -30
  305. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive-members.html +274 -275
  306. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive.html +88 -90
  307. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveStat.html +31 -31
  308. package/SVF-doxygen/html/html/classSVF_1_1ForkJoinAnalysis.html +41 -42
  309. package/SVF-doxygen/html/html/classSVF_1_1FormalINSVFGNode.html +2 -2
  310. package/SVF-doxygen/html/html/classSVF_1_1FormalOUTSVFGNode.html +2 -2
  311. package/SVF-doxygen/html/html/classSVF_1_1FormalParmVFGNode.html +4 -4
  312. package/SVF-doxygen/html/html/classSVF_1_1FormalRetVFGNode.html +4 -4
  313. package/SVF-doxygen/html/html/classSVF_1_1FunEntryICFGNode.html +3 -3
  314. package/SVF-doxygen/html/html/classSVF_1_1FunExitICFGNode.html +4 -4
  315. package/SVF-doxygen/html/html/classSVF_1_1FunptrDDAClient.html +5 -5
  316. package/SVF-doxygen/html/html/classSVF_1_1GenericGraph.html +44 -44
  317. package/SVF-doxygen/html/html/classSVF_1_1GenericNode.html +7 -7
  318. package/SVF-doxygen/html/html/classSVF_1_1GepObjVar.html +1 -1
  319. package/SVF-doxygen/html/html/classSVF_1_1GepStmt.html +1 -1
  320. package/SVF-doxygen/html/html/classSVF_1_1GepVFGNode.html +3 -3
  321. package/SVF-doxygen/html/html/classSVF_1_1GepValVar.html +1 -1
  322. package/SVF-doxygen/html/html/classSVF_1_1GlobalICFGNode.html +1 -1
  323. package/SVF-doxygen/html/html/classSVF_1_1GrammarBase.html +4 -4
  324. package/SVF-doxygen/html/html/classSVF_1_1GrammarBase_1_1SymbolHash.html +1 -1
  325. package/SVF-doxygen/html/html/classSVF_1_1ICFG.html +71 -67
  326. package/SVF-doxygen/html/html/classSVF_1_1ICFGBuilder.html +22 -22
  327. package/SVF-doxygen/html/html/classSVF_1_1ICFGEdge.html +1 -1
  328. package/SVF-doxygen/html/html/classSVF_1_1ICFGNode.html +1 -1
  329. package/SVF-doxygen/html/html/classSVF_1_1ICFGPrinter.html +5 -5
  330. package/SVF-doxygen/html/html/classSVF_1_1ICFGStat.html +2 -2
  331. package/SVF-doxygen/html/html/classSVF_1_1IRAnnotator.html +60 -60
  332. package/SVF-doxygen/html/html/classSVF_1_1IRGraph.html +8 -8
  333. package/SVF-doxygen/html/html/classSVF_1_1IndirectSVFGEdge.html +1 -1
  334. package/SVF-doxygen/html/html/classSVF_1_1InterDisjointMRG.html +3 -3
  335. package/SVF-doxygen/html/html/classSVF_1_1InterMSSAPHISVFGNode.html +2 -2
  336. package/SVF-doxygen/html/html/classSVF_1_1InterPHIVFGNode.html +1 -1
  337. package/SVF-doxygen/html/html/classSVF_1_1IntraCFGEdge.html +1 -1
  338. package/SVF-doxygen/html/html/classSVF_1_1IntraDirSVFGEdge.html +1 -1
  339. package/SVF-doxygen/html/html/classSVF_1_1IntraDisjointMRG.html +9 -9
  340. package/SVF-doxygen/html/html/classSVF_1_1IntraICFGNode.html +2 -2
  341. package/SVF-doxygen/html/html/classSVF_1_1IntraIndSVFGEdge.html +1 -1
  342. package/SVF-doxygen/html/html/classSVF_1_1IntraMSSAPHISVFGNode.html +2 -2
  343. package/SVF-doxygen/html/html/classSVF_1_1IntraPHIVFGNode.html +1 -1
  344. package/SVF-doxygen/html/html/classSVF_1_1IteratedDominanceFrontier.html +3 -3
  345. package/SVF-doxygen/html/html/classSVF_1_1LLVMLoopAnalysis.html +8 -8
  346. package/SVF-doxygen/html/html/classSVF_1_1LLVMModuleSet.html +51 -51
  347. package/SVF-doxygen/html/html/classSVF_1_1LeakChecker.html +5 -5
  348. package/SVF-doxygen/html/html/classSVF_1_1LoadStmt.html +1 -1
  349. package/SVF-doxygen/html/html/classSVF_1_1LoadVFGNode.html +3 -3
  350. package/SVF-doxygen/html/html/classSVF_1_1LocationSet.html +15 -15
  351. package/SVF-doxygen/html/html/classSVF_1_1LockAnalysis.html +67 -67
  352. package/SVF-doxygen/html/html/classSVF_1_1LockResultValidator.html +19 -19
  353. package/SVF-doxygen/html/html/classSVF_1_1MHP.html +70 -71
  354. package/SVF-doxygen/html/html/classSVF_1_1MRGenerator.html +108 -108
  355. package/SVF-doxygen/html/html/classSVF_1_1MRSVFGNode.html +1 -1
  356. package/SVF-doxygen/html/html/classSVF_1_1MSSAPHISVFGNode.html +2 -2
  357. package/SVF-doxygen/html/html/classSVF_1_1MTA.html +16 -16
  358. package/SVF-doxygen/html/html/classSVF_1_1MTAAnnotator.html +19 -19
  359. package/SVF-doxygen/html/html/classSVF_1_1MTAResultValidator.html +55 -55
  360. package/SVF-doxygen/html/html/classSVF_1_1MTASVFGBuilder.html +40 -40
  361. package/SVF-doxygen/html/html/classSVF_1_1MTAStat.html +9 -9
  362. package/SVF-doxygen/html/html/classSVF_1_1MemObj.html +1 -1
  363. package/SVF-doxygen/html/html/classSVF_1_1MemRegion.html +4 -4
  364. package/SVF-doxygen/html/html/classSVF_1_1MemSSA.html +52 -52
  365. package/SVF-doxygen/html/html/classSVF_1_1MemSSAStat.html +2 -2
  366. package/SVF-doxygen/html/html/classSVF_1_1MergeFunctionRets.html +3 -3
  367. package/SVF-doxygen/html/html/classSVF_1_1MutableDFPTData.html +3 -3
  368. package/SVF-doxygen/html/html/classSVF_1_1NodeIDAllocator_1_1Clusterer.html +9 -9
  369. package/SVF-doxygen/html/html/classSVF_1_1NullPtrVFGNode.html +3 -3
  370. package/SVF-doxygen/html/html/classSVF_1_1ObjTypeInfo.html +2 -2
  371. package/SVF-doxygen/html/html/classSVF_1_1ObjVar.html +1 -1
  372. package/SVF-doxygen/html/html/classSVF_1_1PAGBuilderFromFile.html +6 -6
  373. package/SVF-doxygen/html/html/classSVF_1_1PCG.html +26 -26
  374. package/SVF-doxygen/html/html/classSVF_1_1PHIVFGNode.html +5 -5
  375. package/SVF-doxygen/html/html/classSVF_1_1PTACFInfoBuilder.html +7 -7
  376. package/SVF-doxygen/html/html/classSVF_1_1PTACallGraph.html +10 -10
  377. package/SVF-doxygen/html/html/classSVF_1_1PTACallGraphEdge.html +1 -1
  378. package/SVF-doxygen/html/html/classSVF_1_1PTACallGraphNode.html +5 -5
  379. package/SVF-doxygen/html/html/classSVF_1_1PTAStat.html +13 -13
  380. package/SVF-doxygen/html/html/classSVF_1_1PersistentDFPTData.html +4 -4
  381. package/SVF-doxygen/html/html/classSVF_1_1PersistentDiffPTData.html +3 -3
  382. package/SVF-doxygen/html/html/classSVF_1_1PersistentPTData.html +6 -6
  383. package/SVF-doxygen/html/html/classSVF_1_1PersistentPointsToCache.html +6 -6
  384. package/SVF-doxygen/html/html/classSVF_1_1PhiStmt.html +2 -2
  385. package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis-members.html +120 -121
  386. package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.html +258 -276
  387. package/SVF-doxygen/html/html/classSVF_1_1PointsTo.html +14 -14
  388. package/SVF-doxygen/html/html/classSVF_1_1PointsTo_1_1PointsToIterator.html +8 -8
  389. package/SVF-doxygen/html/html/classSVF_1_1ProgSlice.html +23 -23
  390. package/SVF-doxygen/html/html/classSVF_1_1RaceResultValidator.html +11 -11
  391. package/SVF-doxygen/html/html/classSVF_1_1RetCFGEdge.html +1 -1
  392. package/SVF-doxygen/html/html/classSVF_1_1RetDirSVFGEdge.html +1 -1
  393. package/SVF-doxygen/html/html/classSVF_1_1RetICFGNode.html +2 -2
  394. package/SVF-doxygen/html/html/classSVF_1_1RetIndSVFGEdge.html +1 -1
  395. package/SVF-doxygen/html/html/classSVF_1_1RetPE.html +1 -1
  396. package/SVF-doxygen/html/html/classSVF_1_1RetPN.html +1 -1
  397. package/SVF-doxygen/html/html/classSVF_1_1SCCDetection.html +3 -3
  398. package/SVF-doxygen/html/html/classSVF_1_1SCCDetection_1_1GNodeSCCInfo.html +1 -1
  399. package/SVF-doxygen/html/html/classSVF_1_1SVFBasicBlock.html +4 -4
  400. package/SVF-doxygen/html/html/classSVF_1_1SVFFunction.html +97 -97
  401. package/SVF-doxygen/html/html/classSVF_1_1SVFG.html +52 -52
  402. package/SVF-doxygen/html/html/classSVF_1_1SVFGBuilder.html +8 -8
  403. package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT.html +23 -23
  404. package/SVF-doxygen/html/html/classSVF_1_1SVFGStat.html +12 -12
  405. package/SVF-doxygen/html/html/classSVF_1_1SVFGlobal.html +4 -4
  406. package/SVF-doxygen/html/html/classSVF_1_1SVFIR.html +79 -79
  407. package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder.html +255 -255
  408. package/SVF-doxygen/html/html/classSVF_1_1SVFModule.html +3 -3
  409. package/SVF-doxygen/html/html/classSVF_1_1SVFStat.html +9 -9
  410. package/SVF-doxygen/html/html/classSVF_1_1SVFStmt.html +8 -8
  411. package/SVF-doxygen/html/html/classSVF_1_1SVFValue.html +33 -33
  412. package/SVF-doxygen/html/html/classSVF_1_1SVFVar.html +4 -4
  413. package/SVF-doxygen/html/html/classSVF_1_1SaberAnnotator.html +7 -7
  414. package/SVF-doxygen/html/html/classSVF_1_1SaberCondAllocator.html +132 -132
  415. package/SVF-doxygen/html/html/classSVF_1_1SaberSVFGBuilder.html +20 -20
  416. package/SVF-doxygen/html/html/classSVF_1_1SelectStmt.html +1 -1
  417. package/SVF-doxygen/html/html/classSVF_1_1SparseBitVector.html +103 -103
  418. package/SVF-doxygen/html/html/classSVF_1_1SparseBitVector_1_1SparseBitVectorIterator.html +45 -45
  419. package/SVF-doxygen/html/html/classSVF_1_1SrcSnkDDA.html +11 -11
  420. package/SVF-doxygen/html/html/classSVF_1_1StInfo.html +1 -1
  421. package/SVF-doxygen/html/html/classSVF_1_1Steensgaard-members.html +228 -229
  422. package/SVF-doxygen/html/html/classSVF_1_1Steensgaard.html +5 -7
  423. package/SVF-doxygen/html/html/classSVF_1_1StmtVFGNode.html +3 -3
  424. package/SVF-doxygen/html/html/classSVF_1_1StoreStmt.html +1 -1
  425. package/SVF-doxygen/html/html/classSVF_1_1StoreVFGNode.html +2 -2
  426. package/SVF-doxygen/html/html/classSVF_1_1SymbolTableBuilder.html +71 -71
  427. package/SVF-doxygen/html/html/classSVF_1_1SymbolTableInfo.html +29 -29
  428. package/SVF-doxygen/html/html/classSVF_1_1TCT.html +59 -60
  429. package/SVF-doxygen/html/html/classSVF_1_1TDForkPE.html +1 -1
  430. package/SVF-doxygen/html/html/classSVF_1_1TDJoinPE.html +1 -1
  431. package/SVF-doxygen/html/html/classSVF_1_1ThreadAPI.html +5 -5
  432. package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraph.html +26 -26
  433. package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraphBuilder.html +4 -4
  434. package/SVF-doxygen/html/html/classSVF_1_1ThreadForkEdge.html +1 -1
  435. package/SVF-doxygen/html/html/classSVF_1_1ThreadJoinEdge.html +1 -1
  436. package/SVF-doxygen/html/html/classSVF_1_1ThreadMHPIndSVFGEdge.html +1 -1
  437. package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis-members.html +221 -222
  438. package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis.html +24 -26
  439. package/SVF-doxygen/html/html/classSVF_1_1UnaryOPStmt.html +1 -1
  440. package/SVF-doxygen/html/html/classSVF_1_1UnaryOPVFGNode.html +3 -3
  441. package/SVF-doxygen/html/html/classSVF_1_1VFCFLGraphBuilder.html +1 -1
  442. package/SVF-doxygen/html/html/classSVF_1_1VFG.html +168 -165
  443. package/SVF-doxygen/html/html/classSVF_1_1VFGEdge.html +1 -1
  444. package/SVF-doxygen/html/html/classSVF_1_1VFGNode.html +1 -1
  445. package/SVF-doxygen/html/html/classSVF_1_1ValVar.html +1 -1
  446. package/SVF-doxygen/html/html/classSVF_1_1VarArgPN.html +1 -1
  447. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive-members.html +324 -325
  448. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive.html +70 -72
  449. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitiveStat.html +17 -17
  450. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive_1_1SCC.html +3 -3
  451. package/SVF-doxygen/html/html/classSVF_1_1WPAFSSolver.html +3 -3
  452. package/SVF-doxygen/html/html/classSVF_1_1WPAMinimumSolver.html +5 -5
  453. package/SVF-doxygen/html/html/classSVF_1_1WPAPass.html +15 -15
  454. package/SVF-doxygen/html/html/classSVF_1_1WPASCCSolver.html +3 -3
  455. package/SVF-doxygen/html/html/classSVF_1_1WPASolver.html +1 -1
  456. package/SVF-doxygen/html/html/classSVF_1_1Z3Expr.html +1 -1
  457. package/SVF-doxygen/html/html/classllvm_1_1generic__bridge__gep__type__iterator.html +3 -3
  458. package/SVF-doxygen/html/html/functions_a.html +9 -12
  459. package/SVF-doxygen/html/html/functions_func.html +4 -4
  460. package/SVF-doxygen/html/html/functions_func_i.html +3 -3
  461. package/SVF-doxygen/html/html/functions_func_r.html +8 -8
  462. package/SVF-doxygen/html/html/functions_func_s.html +1 -1
  463. package/SVF-doxygen/html/html/functions_i.html +2 -2
  464. package/SVF-doxygen/html/html/functions_l.html +8 -8
  465. package/SVF-doxygen/html/html/functions_n.html +4 -4
  466. package/SVF-doxygen/html/html/functions_o.html +8 -8
  467. package/SVF-doxygen/html/html/functions_p.html +14 -16
  468. package/SVF-doxygen/html/html/functions_r.html +10 -12
  469. package/SVF-doxygen/html/html/functions_s.html +7 -7
  470. package/SVF-doxygen/html/html/functions_type.html +0 -3
  471. package/SVF-doxygen/html/html/functions_v.html +6 -6
  472. package/SVF-doxygen/html/html/functions_w.html +11 -11
  473. package/SVF-doxygen/html/html/namespaceSVF.html +175 -193
  474. package/SVF-doxygen/html/html/namespaceSVF_1_1LLVMUtil.html +55 -55
  475. package/SVF-doxygen/html/html/namespaceSVF_1_1SVFUtil.html +44 -44
  476. package/SVF-doxygen/html/html/namespaceSVF_1_1cppUtil.html +46 -46
  477. package/SVF-doxygen/html/html/namespacemembers_s.html +0 -3
  478. package/SVF-doxygen/html/html/namespacemembers_type_s.html +0 -3
  479. package/SVF-doxygen/html/html/search/all_1.js +4 -5
  480. package/SVF-doxygen/html/html/search/all_10.js +6 -6
  481. package/SVF-doxygen/html/html/search/all_11.js +10 -10
  482. package/SVF-doxygen/html/html/search/all_12.js +5 -6
  483. package/SVF-doxygen/html/html/search/all_13.js +4 -4
  484. package/SVF-doxygen/html/html/search/all_15.js +3 -3
  485. package/SVF-doxygen/html/html/search/all_16.js +2 -2
  486. package/SVF-doxygen/html/html/search/all_9.js +2 -2
  487. package/SVF-doxygen/html/html/search/all_c.js +5 -5
  488. package/SVF-doxygen/html/html/search/all_e.js +2 -2
  489. package/SVF-doxygen/html/html/search/all_f.js +1 -1
  490. package/SVF-doxygen/html/html/search/functions_0.js +4 -4
  491. package/SVF-doxygen/html/html/search/functions_10.js +8 -8
  492. package/SVF-doxygen/html/html/search/functions_11.js +1 -1
  493. package/SVF-doxygen/html/html/search/functions_8.js +1 -1
  494. package/SVF-doxygen/html/html/search/functions_f.js +1 -1
  495. package/SVF-doxygen/html/html/search/typedefs_0.js +0 -1
  496. package/SVF-doxygen/html/html/search/typedefs_10.js +0 -1
  497. package/SVF-doxygen/html/html/search/variables_13.js +2 -2
  498. package/SVF-doxygen/html/html/search/variables_9.js +1 -1
  499. package/SVF-doxygen/html/html/structSVF_1_1GrammarBase_1_1Symbol.html +4 -4
  500. package/SVF-doxygen/html/html/structSVF_1_1Hash.html +3 -3
  501. package/SVF-doxygen/html/html/structSVF_1_1Hash_3_01NodePair_01_4.html +3 -3
  502. package/SVF-doxygen/html/html/structSVF_1_1Hash_3_01std_1_1pair_3_01S_00_01T_01_4_01_4.html +5 -5
  503. package/SVF-doxygen/html/html/structSVF_1_1PopulationCounter.html +1 -1
  504. package/SVF-doxygen/html/html/structSVF_1_1PopulationCounter_3_01T_00_018_01_4.html +1 -1
  505. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1cast__convert__val.html +5 -5
  506. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1cast__convert__val_3_01To_00_01FromTy_00_01FromTy_01_4.html +3 -3
  507. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1cast__retty.html +2 -2
  508. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1cast__retty__impl.html +2 -2
  509. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1cast__retty__impl_3_01To_00_01From_01_5_01_4.html +2 -2
  510. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1cast__retty__impl_3_01To_00_01const_01From_01_4.html +2 -2
  511. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1cast__retty__impl_3_01To_00_01const_01From_01_5_01_4.html +2 -2
  512. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1cast__retty__impl_3_01To_00_01const_01From_01_5const_01_4.html +2 -2
  513. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1cast__retty__impl_3_01To_00_01std_1_1unique__ptr_3_01From_01_4_01_4.html +4 -4
  514. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1cast__retty__wrap.html +2 -2
  515. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1cast__retty__wrap_3_01To_00_01FromTy_00_01FromTy_01_4.html +2 -2
  516. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1is__simple__type.html +2 -2
  517. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1isa__impl.html +3 -3
  518. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1isa__impl_3_01To_00_01From_00_01typename_01std_1_1enable__if_3_01std_1_1101a002941fb8432b76e90258f1ec6b7.html +3 -3
  519. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1isa__impl__cl.html +3 -3
  520. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1isa__impl__cl_3_01To_00_01From_01_5_01_4.html +3 -3
  521. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1isa__impl__cl_3_01To_00_01From_01_5const_01_4.html +3 -3
  522. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1isa__impl__cl_3_01To_00_01const_01From_01_4.html +3 -3
  523. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1isa__impl__cl_3_01To_00_01const_01From_01_5_01_4.html +3 -3
  524. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1isa__impl__cl_3_01To_00_01const_01From_01_5const_01_4.html +3 -3
  525. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1isa__impl__cl_3_01To_00_01const_01std_1_1unique__ptr_3_01From_01_4_01_4.html +3 -3
  526. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1isa__impl__wrap.html +5 -5
  527. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1isa__impl__wrap_3_01To_00_01FromTy_00_01FromTy_01_4.html +3 -3
  528. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1simplify__type.html +4 -4
  529. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1simplify__type_3_01const_01From_01_4.html +6 -6
  530. package/SVF-doxygen/html/html/structSVF_1_1SparseBitVectorElement.html +15 -15
  531. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01CFLGraph_01_5_01_4.html +3 -3
  532. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01ConstraintGraph_01_5_01_4.html +17 -17
  533. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01ICFG_01_5_01_4.html +17 -17
  534. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01IRGraph_01_5_01_4.html +2 -2
  535. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01PTACallGraph_01_5_01_4.html +2 -2
  536. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01SVFG_01_5_01_4.html +4 -4
  537. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01TCT_01_5_01_4.html +1 -1
  538. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01VFG_01_5_01_4.html +21 -21
  539. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01Inverse_3_01SVF_1_1GenericNode_3_01NodeTy_00_01EdgeTy_01_4_01_5_4_01_4.html +14 -14
  540. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01Inverse_3_01SVF_1_1ICFGNode_01_5_01_4_01_4.html +1 -1
  541. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01Inverse_3_01SVF_1_1VFGNode_01_5_01_4_01_4.html +1 -1
  542. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1GenericGraph_3_01NodeTy_00_01EdgeTy_01_4_01_5_4.html +20 -20
  543. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1GenericNode_3_01NodeTy_00_01EdgeTy_01_4_01_5_01_4.html +16 -16
  544. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1ICFGNode_01_5_01_4.html +1 -1
  545. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1ICFG_01_5_01_4.html +2 -2
  546. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1VFGNode_01_5_01_4.html +1 -1
  547. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1VFG_01_5_01_4.html +2 -2
  548. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1CallSite_01_4.html +3 -3
  549. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1CondStdSet_3_01Element_01_4_01_4.html +1 -1
  550. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1CxtDPItem_01_4.html +1 -1
  551. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1CxtProc_01_4.html +1 -1
  552. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1CxtStmtDPItem_3_01LocCond_01_4_01_4.html +1 -1
  553. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1CxtStmt_01_4.html +1 -1
  554. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1ExeState_01_4.html +1 -1
  555. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1LocationSet_01_4.html +1 -1
  556. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1NodePair_01_4.html +3 -3
  557. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1SparseBitVector_3_01N_01_4_01_4.html +6 -6
  558. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1StmtDPItem_3_01LocCond_01_4_01_4.html +1 -1
  559. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1SymState_01_4.html +1 -1
  560. package/SVF-doxygen/html/html/structstd_1_1hash_3_01std_1_1vector_3_01T_01_4_01_4.html +3 -3
  561. package/SVF-doxygen/html/html/svf-ex_8cpp.html +8 -8
  562. package/SVF-doxygen/html/html/svf-ex_8cpp_source.html +9 -9
  563. package/include/Graphs/ConsGNode.h +48 -24
  564. package/include/Graphs/GenericGraph.h +4 -2
  565. package/include/Graphs/ICFG.h +3 -2
  566. package/include/Graphs/SVFGOPT.h +7 -7
  567. package/include/Graphs/VFG.h +3 -2
  568. package/include/MSSA/MemSSA.h +6 -6
  569. package/include/MemoryModel/PersistentPointsToDS.h +1 -1
  570. package/include/MemoryModel/PointerAnalysis.h +0 -1
  571. package/include/MemoryModel/SVFIR.h +3 -1
  572. package/include/SABER/SaberCondAllocator.h +7 -2
  573. package/include/SVF-FE/BasicTypes.h +7 -1
  574. package/include/SVF-FE/IRAnnotator.h +3 -1
  575. package/include/Util/BasicTypes.h +1 -22
  576. package/include/Util/Casting.h +1 -0
  577. package/include/Util/SVFBasicTypes.h +0 -5
  578. package/include/Util/SparseBitVector.h +2 -0
  579. package/lib/DDA/ContextDDA.cpp +8 -5
  580. package/lib/Graphs/ConsG.cpp +46 -23
  581. package/lib/Graphs/ICFG.cpp +8 -4
  582. package/lib/Graphs/VFG.cpp +6 -3
  583. package/lib/MSSA/MemRegion.cpp +1 -0
  584. package/lib/MTA/MHP.cpp +4 -4
  585. package/lib/MTA/TCT.cpp +2 -1
  586. package/lib/MemoryModel/PointerAnalysisImpl.cpp +3 -1
  587. package/lib/SABER/SaberCondAllocator.cpp +3 -1
  588. package/lib/SVF-FE/CHGBuilder.cpp +2 -2
  589. package/lib/SVF-FE/SVFIRBuilder.cpp +4 -1
  590. package/lib/WPA/AndersenSFR.cpp +3 -0
  591. package/lib/WPA/TypeAnalysis.cpp +1 -0
  592. package/package.json +1 -1
@@ -571,7 +571,7 @@ Additional Inherited Members</h2></td></tr>
571
571
 
572
572
  <p class="definition">Definition at line <a class="el" href="ICFG_8cpp_source.html#l00201">201</a> of file <a class="el" href="ICFG_8cpp_source.html">ICFG.cpp</a>.</p>
573
573
  <div class="fragment"><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; <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set&lt;const SVFLoop*&gt;</a> loops;</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &amp;it: <a class="code" href="classSVF_1_1ICFG.html#a7d6aeecb00d77600a204a72d60023d54">icfgNodeToSVFLoopVec</a>)</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; {</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &amp;loop: it.second)</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; {</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; loops.insert(loop);</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;</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &amp;it: loops)</div><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; <span class="keyword">delete</span> it;</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; icfgNodeToSVFLoopVec.clear();</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160;}</div><div class="ttc" id="classSVF_1_1ICFG_html_a7d6aeecb00d77600a204a72d60023d54"><div class="ttname"><a href="classSVF_1_1ICFG.html#a7d6aeecb00d77600a204a72d60023d54">SVF::ICFG::icfgNodeToSVFLoopVec</a></div><div class="ttdeci">ICFGNodeToSVFLoopVec icfgNodeToSVFLoopVec</div><div class="ttdoc">map ICFG node to the SVF loops where it resides </div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00076">ICFG.h:76</a></div></div>
574
- <div class="ttc" id="namespaceSVF_html_af739db846e47ba6b2fd15eaad31ab7fb"><div class="ttname"><a href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">SVF::Set</a></div><div class="ttdeci">std::unordered_set&lt; Key, Hash, KeyEqual, Allocator &gt; Set</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00105">SVFBasicTypes.h:105</a></div></div>
574
+ <div class="ttc" id="namespaceSVF_html_af739db846e47ba6b2fd15eaad31ab7fb"><div class="ttname"><a href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">SVF::Set</a></div><div class="ttdeci">std::unordered_set&lt; Key, Hash, KeyEqual, Allocator &gt; Set</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00101">SVFBasicTypes.h:101</a></div></div>
575
575
  </div><!-- fragment -->
576
576
  </div>
577
577
  </div>
@@ -602,10 +602,10 @@ Additional Inherited Members</h2></td></tr>
602
602
 
603
603
  <p>Get/Add a call node. </p>
604
604
 
605
- <p class="definition">Definition at line <a class="el" href="ICFG_8h_source.html#l00270">270</a> of file <a class="el" href="ICFG_8h_source.html">ICFG.h</a>.</p>
606
- <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; CallICFGNode* sNode = <span class="keyword">new</span> CallICFGNode(<a class="code" href="classSVF_1_1ICFG.html#a5df6061b65d021cd73c66592ec79f052">totalICFGNode</a>++, cs);</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; <a class="code" href="classSVF_1_1ICFG.html#a15816a82d8c33a066009440dce6ee973">addICFGNode</a>(sNode);</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; <a class="code" href="classSVF_1_1ICFG.html#af0434d6ffd247eeaf73b9294e659a3f9">CSToCallNodeMap</a>[cs] = sNode;</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; <span class="keywordflow">return</span> sNode;</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; }</div><div class="ttc" id="classSVF_1_1ICFG_html_af0434d6ffd247eeaf73b9294e659a3f9"><div class="ttname"><a href="classSVF_1_1ICFG.html#af0434d6ffd247eeaf73b9294e659a3f9">SVF::ICFG::CSToCallNodeMap</a></div><div class="ttdeci">CSToCallNodeMapTy CSToCallNodeMap</div><div class="ttdoc">map a callsite to its CallICFGNode </div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00072">ICFG.h:72</a></div></div>
605
+ <p class="definition">Definition at line <a class="el" href="ICFG_8h_source.html#l00271">271</a> of file <a class="el" href="ICFG_8h_source.html">ICFG.h</a>.</p>
606
+ <div class="fragment"><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; {</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; CallICFGNode* sNode = <span class="keyword">new</span> CallICFGNode(<a class="code" href="classSVF_1_1ICFG.html#a5df6061b65d021cd73c66592ec79f052">totalICFGNode</a>++, cs);</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; <a class="code" href="classSVF_1_1ICFG.html#a15816a82d8c33a066009440dce6ee973">addICFGNode</a>(sNode);</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; <a class="code" href="classSVF_1_1ICFG.html#af0434d6ffd247eeaf73b9294e659a3f9">CSToCallNodeMap</a>[cs] = sNode;</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; <span class="keywordflow">return</span> sNode;</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; }</div><div class="ttc" id="classSVF_1_1ICFG_html_af0434d6ffd247eeaf73b9294e659a3f9"><div class="ttname"><a href="classSVF_1_1ICFG.html#af0434d6ffd247eeaf73b9294e659a3f9">SVF::ICFG::CSToCallNodeMap</a></div><div class="ttdeci">CSToCallNodeMapTy CSToCallNodeMap</div><div class="ttdoc">map a callsite to its CallICFGNode </div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00072">ICFG.h:72</a></div></div>
607
607
  <div class="ttc" id="classSVF_1_1ICFG_html_a5df6061b65d021cd73c66592ec79f052"><div class="ttname"><a href="classSVF_1_1ICFG.html#a5df6061b65d021cd73c66592ec79f052">SVF::ICFG::totalICFGNode</a></div><div class="ttdeci">NodeID totalICFGNode</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00067">ICFG.h:67</a></div></div>
608
- <div class="ttc" id="classSVF_1_1ICFG_html_a15816a82d8c33a066009440dce6ee973"><div class="ttname"><a href="classSVF_1_1ICFG.html#a15816a82d8c33a066009440dce6ee973">SVF::ICFG::addICFGNode</a></div><div class="ttdeci">virtual void addICFGNode(ICFGNode *node)</div><div class="ttdoc">Add a ICFG node. </div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00187">ICFG.h:187</a></div></div>
608
+ <div class="ttc" id="classSVF_1_1ICFG_html_a15816a82d8c33a066009440dce6ee973"><div class="ttname"><a href="classSVF_1_1ICFG.html#a15816a82d8c33a066009440dce6ee973">SVF::ICFG::addICFGNode</a></div><div class="ttdeci">virtual void addICFGNode(ICFGNode *node)</div><div class="ttdoc">Add a ICFG node. </div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00188">ICFG.h:188</a></div></div>
609
609
  </div><!-- fragment -->
610
610
  </div>
611
611
  </div>
@@ -650,9 +650,10 @@ Additional Inherited Members</h2></td></tr>
650
650
  </div><div class="memdoc">
651
651
  <p>Add interprocedural call edges between two nodes </p>
652
652
 
653
- <p class="definition">Definition at line <a class="el" href="ICFG_8cpp_source.html#l00403">403</a> of file <a class="el" href="ICFG_8cpp_source.html">ICFG.cpp</a>.</p>
654
- <div class="fragment"><div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160;{</div><div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1ICFGEdge.html">ICFGEdge</a>* edge = <a class="code" href="classSVF_1_1ICFG.html#a86535e50d1feba706b19491d905baef1">hasInterICFGEdge</a>(srcNode,dstNode, <a class="code" href="classSVF_1_1ICFGEdge.html#a395c34788e98950bc43e8cb44313e429a3486c9d9a182f2ba5d986fe74439ec2e">ICFGEdge::CallCF</a>))</div><div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160; {</div><div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160; assert(edge-&gt;isCallCFGEdge() &amp;&amp; <span class="stringliteral">&quot;this should be a call CFG edge!&quot;</span>);</div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160; <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160; }</div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160; {</div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160; <a class="code" href="classSVF_1_1CallCFGEdge.html">CallCFGEdge</a>* callEdge = <span class="keyword">new</span> <a class="code" href="classSVF_1_1CallCFGEdge.html">CallCFGEdge</a>(srcNode,dstNode,cs);</div><div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160; <span class="keywordflow">return</span> (<a class="code" href="classSVF_1_1ICFG.html#a462f590c2604184d69e4efe3d85a7b5b">addICFGEdge</a>(callEdge) ? callEdge : <span class="keyword">nullptr</span>);</div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160; }</div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160;}</div><div class="ttc" id="classSVF_1_1ICFGEdge_html"><div class="ttname"><a href="classSVF_1_1ICFGEdge.html">SVF::ICFGEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGEdge_8h_source.html#l00044">ICFGEdge.h:44</a></div></div>
653
+ <p class="definition">Definition at line <a class="el" href="ICFG_8cpp_source.html#l00405">405</a> of file <a class="el" href="ICFG_8cpp_source.html">ICFG.cpp</a>.</p>
654
+ <div class="fragment"><div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160;{</div><div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160; <a class="code" href="classSVF_1_1ICFGEdge.html">ICFGEdge</a>* edge = <a class="code" href="classSVF_1_1ICFG.html#a86535e50d1feba706b19491d905baef1">hasInterICFGEdge</a>(srcNode,dstNode, <a class="code" href="classSVF_1_1ICFGEdge.html#a395c34788e98950bc43e8cb44313e429a3486c9d9a182f2ba5d986fe74439ec2e">ICFGEdge::CallCF</a>);</div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160; <span class="keywordflow">if</span> (edge != <span class="keyword">nullptr</span>)</div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160; {</div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160; assert(edge-&gt;<a class="code" href="classSVF_1_1ICFGEdge.html#a2ecc0bc3bb3655bf3db3adb732747b49">isCallCFGEdge</a>() &amp;&amp; <span class="stringliteral">&quot;this should be a call CFG edge!&quot;</span>);</div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160; <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160; }</div><div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160; {</div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; <a class="code" href="classSVF_1_1CallCFGEdge.html">CallCFGEdge</a>* callEdge = <span class="keyword">new</span> <a class="code" href="classSVF_1_1CallCFGEdge.html">CallCFGEdge</a>(srcNode,dstNode,cs);</div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; <span class="keywordflow">return</span> (<a class="code" href="classSVF_1_1ICFG.html#a462f590c2604184d69e4efe3d85a7b5b">addICFGEdge</a>(callEdge) ? callEdge : <span class="keyword">nullptr</span>);</div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; }</div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160;}</div><div class="ttc" id="classSVF_1_1ICFGEdge_html"><div class="ttname"><a href="classSVF_1_1ICFGEdge.html">SVF::ICFGEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGEdge_8h_source.html#l00044">ICFGEdge.h:44</a></div></div>
655
655
  <div class="ttc" id="classSVF_1_1CallCFGEdge_html"><div class="ttname"><a href="classSVF_1_1CallCFGEdge.html">SVF::CallCFGEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGEdge_8h_source.html#l00168">ICFGEdge.h:168</a></div></div>
656
+ <div class="ttc" id="classSVF_1_1ICFGEdge_html_a2ecc0bc3bb3655bf3db3adb732747b49"><div class="ttname"><a href="classSVF_1_1ICFGEdge.html#a2ecc0bc3bb3655bf3db3adb732747b49">SVF::ICFGEdge::isCallCFGEdge</a></div><div class="ttdeci">bool isCallCFGEdge() const</div><div class="ttdef"><b>Definition:</b> <a href="ICFGEdge_8h_source.html#l00076">ICFGEdge.h:76</a></div></div>
656
657
  <div class="ttc" id="classSVF_1_1ICFG_html_a86535e50d1feba706b19491d905baef1"><div class="ttname"><a href="classSVF_1_1ICFG.html#a86535e50d1feba706b19491d905baef1">SVF::ICFG::hasInterICFGEdge</a></div><div class="ttdeci">ICFGEdge * hasInterICFGEdge(ICFGNode *src, ICFGNode *dst, ICFGEdge::ICFGEdgeK kind)</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#l00307">ICFG.cpp:307</a></div></div>
657
658
  <div class="ttc" id="classSVF_1_1ICFGEdge_html_a395c34788e98950bc43e8cb44313e429a3486c9d9a182f2ba5d986fe74439ec2e"><div class="ttname"><a href="classSVF_1_1ICFGEdge.html#a395c34788e98950bc43e8cb44313e429a3486c9d9a182f2ba5d986fe74439ec2e">SVF::ICFGEdge::CallCF</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGEdge_8h_source.html#l00054">ICFGEdge.h:54</a></div></div>
658
659
  <div class="ttc" id="classSVF_1_1ICFG_html_a462f590c2604184d69e4efe3d85a7b5b"><div class="ttname"><a href="classSVF_1_1ICFG.html#a462f590c2604184d69e4efe3d85a7b5b">SVF::ICFG::addICFGEdge</a></div><div class="ttdeci">bool addICFGEdge(ICFGEdge *edge)</div><div class="ttdoc">Add ICFG edge. </div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00178">ICFG.h:178</a></div></div>
@@ -706,10 +707,11 @@ Additional Inherited Members</h2></td></tr>
706
707
  </div><div class="memdoc">
707
708
  <p>Add conditional intraprocedural edges between two nodes </p>
708
709
 
709
- <p class="definition">Definition at line <a class="el" href="ICFG_8cpp_source.html#l00382">382</a> of file <a class="el" href="ICFG_8cpp_source.html">ICFG.cpp</a>.</p>
710
- <div class="fragment"><div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160;{</div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160;</div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160; <a class="code" href="classSVF_1_1ICFG.html#a70421a19a494eb6131a9ae72ef1a64d6">checkIntraEdgeParents</a>(srcNode, dstNode);</div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1ICFGEdge.html">ICFGEdge</a>* edge = <a class="code" href="classSVF_1_1ICFG.html#aa662baae5682ef6ec5084fa4147c9709">hasIntraICFGEdge</a>(srcNode,dstNode, <a class="code" href="classSVF_1_1ICFGEdge.html#a395c34788e98950bc43e8cb44313e429acb8fba7c61b08ec952f1b65643d7a84b">ICFGEdge::IntraCF</a>))</div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160; {</div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160; assert(edge-&gt;isIntraCFGEdge() &amp;&amp; <span class="stringliteral">&quot;this should be an intra CFG edge!&quot;</span>);</div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; }</div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160; {</div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160; <a class="code" href="classSVF_1_1IntraCFGEdge.html">IntraCFGEdge</a>* intraEdge = <span class="keyword">new</span> <a class="code" href="classSVF_1_1IntraCFGEdge.html">IntraCFGEdge</a>(srcNode,dstNode);</div><div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160; intraEdge-&gt;<a class="code" href="classSVF_1_1IntraCFGEdge.html#ab2b93e36ccce4bf1fde9a58b547fd1de">setBranchCondition</a>(condition,branchCondVal);</div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160; <span class="keywordflow">return</span> (<a class="code" href="classSVF_1_1ICFG.html#a462f590c2604184d69e4efe3d85a7b5b">addICFGEdge</a>(intraEdge) ? intraEdge : <span class="keyword">nullptr</span>);</div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160; }</div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160;}</div><div class="ttc" id="classSVF_1_1ICFGEdge_html"><div class="ttname"><a href="classSVF_1_1ICFGEdge.html">SVF::ICFGEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGEdge_8h_source.html#l00044">ICFGEdge.h:44</a></div></div>
710
+ <p class="definition">Definition at line <a class="el" href="ICFG_8cpp_source.html#l00383">383</a> of file <a class="el" href="ICFG_8cpp_source.html">ICFG.cpp</a>.</p>
711
+ <div class="fragment"><div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160;{</div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160;</div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160; <a class="code" href="classSVF_1_1ICFG.html#a70421a19a494eb6131a9ae72ef1a64d6">checkIntraEdgeParents</a>(srcNode, dstNode);</div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160; <a class="code" href="classSVF_1_1ICFGEdge.html">ICFGEdge</a>* edge = <a class="code" href="classSVF_1_1ICFG.html#aa662baae5682ef6ec5084fa4147c9709">hasIntraICFGEdge</a>(srcNode, dstNode, <a class="code" href="classSVF_1_1ICFGEdge.html#a395c34788e98950bc43e8cb44313e429acb8fba7c61b08ec952f1b65643d7a84b">ICFGEdge::IntraCF</a>);</div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160; <span class="keywordflow">if</span> (edge != <span class="keyword">nullptr</span>)</div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; {</div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; assert(edge-&gt;<a class="code" href="classSVF_1_1ICFGEdge.html#a4e6d228dfc678618a423e8293877f04c">isIntraCFGEdge</a>() &amp;&amp; <span class="stringliteral">&quot;this should be an intra CFG edge!&quot;</span>);</div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160; <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160; }</div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160; {</div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160; <a class="code" href="classSVF_1_1IntraCFGEdge.html">IntraCFGEdge</a>* intraEdge = <span class="keyword">new</span> <a class="code" href="classSVF_1_1IntraCFGEdge.html">IntraCFGEdge</a>(srcNode,dstNode);</div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160; intraEdge-&gt;<a class="code" href="classSVF_1_1IntraCFGEdge.html#ab2b93e36ccce4bf1fde9a58b547fd1de">setBranchCondition</a>(condition,branchCondVal);</div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160; <span class="keywordflow">return</span> (<a class="code" href="classSVF_1_1ICFG.html#a462f590c2604184d69e4efe3d85a7b5b">addICFGEdge</a>(intraEdge) ? intraEdge : <span class="keyword">nullptr</span>);</div><div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160; }</div><div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160;}</div><div class="ttc" id="classSVF_1_1ICFGEdge_html"><div class="ttname"><a href="classSVF_1_1ICFGEdge.html">SVF::ICFGEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGEdge_8h_source.html#l00044">ICFGEdge.h:44</a></div></div>
711
712
  <div class="ttc" id="classSVF_1_1IntraCFGEdge_html"><div class="ttname"><a href="classSVF_1_1IntraCFGEdge.html">SVF::IntraCFGEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGEdge_8h_source.html#l00113">ICFGEdge.h:113</a></div></div>
712
713
  <div class="ttc" id="classSVF_1_1IntraCFGEdge_html_ab2b93e36ccce4bf1fde9a58b547fd1de"><div class="ttname"><a href="classSVF_1_1IntraCFGEdge.html#ab2b93e36ccce4bf1fde9a58b547fd1de">SVF::IntraCFGEdge::setBranchCondition</a></div><div class="ttdeci">void setBranchCondition(const Value *c, s32_t bVal)</div><div class="ttdef"><b>Definition:</b> <a href="ICFGEdge_8h_source.html#l00148">ICFGEdge.h:148</a></div></div>
714
+ <div class="ttc" id="classSVF_1_1ICFGEdge_html_a4e6d228dfc678618a423e8293877f04c"><div class="ttname"><a href="classSVF_1_1ICFGEdge.html#a4e6d228dfc678618a423e8293877f04c">SVF::ICFGEdge::isIntraCFGEdge</a></div><div class="ttdeci">bool isIntraCFGEdge() const</div><div class="ttdef"><b>Definition:</b> <a href="ICFGEdge_8h_source.html#l00084">ICFGEdge.h:84</a></div></div>
713
715
  <div class="ttc" id="classSVF_1_1ICFGEdge_html_a395c34788e98950bc43e8cb44313e429acb8fba7c61b08ec952f1b65643d7a84b"><div class="ttname"><a href="classSVF_1_1ICFGEdge.html#a395c34788e98950bc43e8cb44313e429acb8fba7c61b08ec952f1b65643d7a84b">SVF::ICFGEdge::IntraCF</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGEdge_8h_source.html#l00053">ICFGEdge.h:53</a></div></div>
714
716
  <div class="ttc" id="classSVF_1_1ICFG_html_a462f590c2604184d69e4efe3d85a7b5b"><div class="ttname"><a href="classSVF_1_1ICFG.html#a462f590c2604184d69e4efe3d85a7b5b">SVF::ICFG::addICFGEdge</a></div><div class="ttdeci">bool addICFGEdge(ICFGEdge *edge)</div><div class="ttdoc">Add ICFG edge. </div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00178">ICFG.h:178</a></div></div>
715
717
  <div class="ttc" id="classSVF_1_1ICFG_html_aa662baae5682ef6ec5084fa4147c9709"><div class="ttname"><a href="classSVF_1_1ICFG.html#aa662baae5682ef6ec5084fa4147c9709">SVF::ICFG::hasIntraICFGEdge</a></div><div class="ttdeci">ICFGEdge * hasIntraICFGEdge(ICFGNode *src, ICFGNode *dst, ICFGEdge::ICFGEdgeK kind)</div><div class="ttdoc">Whether we has a SVFG edge. </div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#l00290">ICFG.cpp:290</a></div></div>
@@ -741,10 +743,10 @@ Additional Inherited Members</h2></td></tr>
741
743
  </table>
742
744
  </div><div class="memdoc">
743
745
 
744
- <p class="definition">Definition at line <a class="el" href="ICFG_8h_source.html#l00245">245</a> of file <a class="el" href="ICFG_8h_source.html">ICFG.h</a>.</p>
745
- <div class="fragment"><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; FunEntryICFGNode* sNode = <span class="keyword">new</span> FunEntryICFGNode(<a class="code" href="classSVF_1_1ICFG.html#a5df6061b65d021cd73c66592ec79f052">totalICFGNode</a>++,fun);</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; <a class="code" href="classSVF_1_1ICFG.html#a15816a82d8c33a066009440dce6ee973">addICFGNode</a>(sNode);</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; <a class="code" href="classSVF_1_1ICFG.html#a69076849bd256fb0ca59711a59a7c092">FunToFunEntryNodeMap</a>[fun] = sNode;</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; <span class="keywordflow">return</span> sNode;</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; }</div><div class="ttc" id="classSVF_1_1ICFG_html_a5df6061b65d021cd73c66592ec79f052"><div class="ttname"><a href="classSVF_1_1ICFG.html#a5df6061b65d021cd73c66592ec79f052">SVF::ICFG::totalICFGNode</a></div><div class="ttdeci">NodeID totalICFGNode</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00067">ICFG.h:67</a></div></div>
746
+ <p class="definition">Definition at line <a class="el" href="ICFG_8h_source.html#l00246">246</a> of file <a class="el" href="ICFG_8h_source.html">ICFG.h</a>.</p>
747
+ <div class="fragment"><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; FunEntryICFGNode* sNode = <span class="keyword">new</span> FunEntryICFGNode(<a class="code" href="classSVF_1_1ICFG.html#a5df6061b65d021cd73c66592ec79f052">totalICFGNode</a>++,fun);</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; <a class="code" href="classSVF_1_1ICFG.html#a15816a82d8c33a066009440dce6ee973">addICFGNode</a>(sNode);</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; <a class="code" href="classSVF_1_1ICFG.html#a69076849bd256fb0ca59711a59a7c092">FunToFunEntryNodeMap</a>[fun] = sNode;</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; <span class="keywordflow">return</span> sNode;</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; }</div><div class="ttc" id="classSVF_1_1ICFG_html_a5df6061b65d021cd73c66592ec79f052"><div class="ttname"><a href="classSVF_1_1ICFG.html#a5df6061b65d021cd73c66592ec79f052">SVF::ICFG::totalICFGNode</a></div><div class="ttdeci">NodeID totalICFGNode</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00067">ICFG.h:67</a></div></div>
746
748
  <div class="ttc" id="classSVF_1_1ICFG_html_a69076849bd256fb0ca59711a59a7c092"><div class="ttname"><a href="classSVF_1_1ICFG.html#a69076849bd256fb0ca59711a59a7c092">SVF::ICFG::FunToFunEntryNodeMap</a></div><div class="ttdeci">FunToFunEntryNodeMapTy FunToFunEntryNodeMap</div><div class="ttdoc">map a function to its FunExitICFGNode </div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00070">ICFG.h:70</a></div></div>
747
- <div class="ttc" id="classSVF_1_1ICFG_html_a15816a82d8c33a066009440dce6ee973"><div class="ttname"><a href="classSVF_1_1ICFG.html#a15816a82d8c33a066009440dce6ee973">SVF::ICFG::addICFGNode</a></div><div class="ttdeci">virtual void addICFGNode(ICFGNode *node)</div><div class="ttdoc">Add a ICFG node. </div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00187">ICFG.h:187</a></div></div>
749
+ <div class="ttc" id="classSVF_1_1ICFG_html_a15816a82d8c33a066009440dce6ee973"><div class="ttname"><a href="classSVF_1_1ICFG.html#a15816a82d8c33a066009440dce6ee973">SVF::ICFG::addICFGNode</a></div><div class="ttdeci">virtual void addICFGNode(ICFGNode *node)</div><div class="ttdoc">Add a ICFG node. </div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00188">ICFG.h:188</a></div></div>
748
750
  </div><!-- fragment -->
749
751
  </div>
750
752
  </div>
@@ -772,9 +774,9 @@ Additional Inherited Members</h2></td></tr>
772
774
  </table>
773
775
  </div><div class="memdoc">
774
776
 
775
- <p class="definition">Definition at line <a class="el" href="ICFG_8h_source.html#l00261">261</a> of file <a class="el" href="ICFG_8h_source.html">ICFG.h</a>.</p>
776
- <div class="fragment"><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; {</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; FunExitICFGNode* sNode = <span class="keyword">new</span> FunExitICFGNode(<a class="code" href="classSVF_1_1ICFG.html#a5df6061b65d021cd73c66592ec79f052">totalICFGNode</a>++, fun);</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; <a class="code" href="classSVF_1_1ICFG.html#a15816a82d8c33a066009440dce6ee973">addICFGNode</a>(sNode);</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; <a class="code" href="classSVF_1_1ICFG.html#ab87a90adae3e9db06da7ecc0bd9d920f">FunToFunExitNodeMap</a>[fun] = sNode;</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; <span class="keywordflow">return</span> sNode;</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; }</div><div class="ttc" id="classSVF_1_1ICFG_html_a5df6061b65d021cd73c66592ec79f052"><div class="ttname"><a href="classSVF_1_1ICFG.html#a5df6061b65d021cd73c66592ec79f052">SVF::ICFG::totalICFGNode</a></div><div class="ttdeci">NodeID totalICFGNode</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00067">ICFG.h:67</a></div></div>
777
- <div class="ttc" id="classSVF_1_1ICFG_html_a15816a82d8c33a066009440dce6ee973"><div class="ttname"><a href="classSVF_1_1ICFG.html#a15816a82d8c33a066009440dce6ee973">SVF::ICFG::addICFGNode</a></div><div class="ttdeci">virtual void addICFGNode(ICFGNode *node)</div><div class="ttdoc">Add a ICFG node. </div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00187">ICFG.h:187</a></div></div>
777
+ <p class="definition">Definition at line <a class="el" href="ICFG_8h_source.html#l00262">262</a> of file <a class="el" href="ICFG_8h_source.html">ICFG.h</a>.</p>
778
+ <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; FunExitICFGNode* sNode = <span class="keyword">new</span> FunExitICFGNode(<a class="code" href="classSVF_1_1ICFG.html#a5df6061b65d021cd73c66592ec79f052">totalICFGNode</a>++, fun);</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; <a class="code" href="classSVF_1_1ICFG.html#a15816a82d8c33a066009440dce6ee973">addICFGNode</a>(sNode);</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; <a class="code" href="classSVF_1_1ICFG.html#ab87a90adae3e9db06da7ecc0bd9d920f">FunToFunExitNodeMap</a>[fun] = sNode;</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; <span class="keywordflow">return</span> sNode;</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; }</div><div class="ttc" id="classSVF_1_1ICFG_html_a5df6061b65d021cd73c66592ec79f052"><div class="ttname"><a href="classSVF_1_1ICFG.html#a5df6061b65d021cd73c66592ec79f052">SVF::ICFG::totalICFGNode</a></div><div class="ttdeci">NodeID totalICFGNode</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00067">ICFG.h:67</a></div></div>
779
+ <div class="ttc" id="classSVF_1_1ICFG_html_a15816a82d8c33a066009440dce6ee973"><div class="ttname"><a href="classSVF_1_1ICFG.html#a15816a82d8c33a066009440dce6ee973">SVF::ICFG::addICFGNode</a></div><div class="ttdeci">virtual void addICFGNode(ICFGNode *node)</div><div class="ttdoc">Add a ICFG node. </div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00188">ICFG.h:188</a></div></div>
778
780
  <div class="ttc" id="classSVF_1_1ICFG_html_ab87a90adae3e9db06da7ecc0bd9d920f"><div class="ttname"><a href="classSVF_1_1ICFG.html#ab87a90adae3e9db06da7ecc0bd9d920f">SVF::ICFG::FunToFunExitNodeMap</a></div><div class="ttdeci">FunToFunExitNodeMapTy FunToFunExitNodeMap</div><div class="ttdoc">map a function to its FunEntryICFGNode </div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00071">ICFG.h:71</a></div></div>
779
781
  </div><!-- fragment -->
780
782
  </div>
@@ -802,10 +804,10 @@ Additional Inherited Members</h2></td></tr>
802
804
  </table>
803
805
  </div><div class="memdoc">
804
806
 
805
- <p class="definition">Definition at line <a class="el" href="ICFG_8h_source.html#l00212">212</a> of file <a class="el" href="ICFG_8h_source.html">ICFG.h</a>.</p>
806
- <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; <a class="code" href="classSVF_1_1ICFG.html#a8e43b27d4484a4acb575e4c1c6c8fd02">globalBlockNode</a> = <span class="keyword">new</span> GlobalICFGNode(<a class="code" href="classSVF_1_1ICFG.html#a5df6061b65d021cd73c66592ec79f052">totalICFGNode</a>++);</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; <a class="code" href="classSVF_1_1ICFG.html#a15816a82d8c33a066009440dce6ee973">addICFGNode</a>(<a class="code" href="classSVF_1_1ICFG.html#a8e43b27d4484a4acb575e4c1c6c8fd02">globalBlockNode</a>);</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; }</div><div class="ttc" id="classSVF_1_1ICFG_html_a5df6061b65d021cd73c66592ec79f052"><div class="ttname"><a href="classSVF_1_1ICFG.html#a5df6061b65d021cd73c66592ec79f052">SVF::ICFG::totalICFGNode</a></div><div class="ttdeci">NodeID totalICFGNode</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00067">ICFG.h:67</a></div></div>
807
+ <p class="definition">Definition at line <a class="el" href="ICFG_8h_source.html#l00213">213</a> of file <a class="el" href="ICFG_8h_source.html">ICFG.h</a>.</p>
808
+ <div class="fragment"><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; {</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; <a class="code" href="classSVF_1_1ICFG.html#a8e43b27d4484a4acb575e4c1c6c8fd02">globalBlockNode</a> = <span class="keyword">new</span> GlobalICFGNode(<a class="code" href="classSVF_1_1ICFG.html#a5df6061b65d021cd73c66592ec79f052">totalICFGNode</a>++);</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; <a class="code" href="classSVF_1_1ICFG.html#a15816a82d8c33a066009440dce6ee973">addICFGNode</a>(<a class="code" href="classSVF_1_1ICFG.html#a8e43b27d4484a4acb575e4c1c6c8fd02">globalBlockNode</a>);</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; }</div><div class="ttc" id="classSVF_1_1ICFG_html_a5df6061b65d021cd73c66592ec79f052"><div class="ttname"><a href="classSVF_1_1ICFG.html#a5df6061b65d021cd73c66592ec79f052">SVF::ICFG::totalICFGNode</a></div><div class="ttdeci">NodeID totalICFGNode</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00067">ICFG.h:67</a></div></div>
807
809
  <div class="ttc" id="classSVF_1_1ICFG_html_a8e43b27d4484a4acb575e4c1c6c8fd02"><div class="ttname"><a href="classSVF_1_1ICFG.html#a8e43b27d4484a4acb575e4c1c6c8fd02">SVF::ICFG::globalBlockNode</a></div><div class="ttdeci">GlobalICFGNode * globalBlockNode</div><div class="ttdoc">unique basic block for all globals </div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00075">ICFG.h:75</a></div></div>
808
- <div class="ttc" id="classSVF_1_1ICFG_html_a15816a82d8c33a066009440dce6ee973"><div class="ttname"><a href="classSVF_1_1ICFG.html#a15816a82d8c33a066009440dce6ee973">SVF::ICFG::addICFGNode</a></div><div class="ttdeci">virtual void addICFGNode(ICFGNode *node)</div><div class="ttdoc">Add a ICFG node. </div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00187">ICFG.h:187</a></div></div>
810
+ <div class="ttc" id="classSVF_1_1ICFG_html_a15816a82d8c33a066009440dce6ee973"><div class="ttname"><a href="classSVF_1_1ICFG.html#a15816a82d8c33a066009440dce6ee973">SVF::ICFG::addICFGNode</a></div><div class="ttdeci">virtual void addICFGNode(ICFGNode *node)</div><div class="ttdoc">Add a ICFG node. </div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00188">ICFG.h:188</a></div></div>
809
811
  </div><!-- fragment -->
810
812
  </div>
811
813
  </div>
@@ -836,7 +838,7 @@ Additional Inherited Members</h2></td></tr>
836
838
  <p>Add <a class="el" href="classSVF_1_1ICFG.html">ICFG</a> edge. </p>
837
839
 
838
840
  <p class="definition">Definition at line <a class="el" href="ICFG_8h_source.html#l00178">178</a> of file <a class="el" href="ICFG_8h_source.html">ICFG.h</a>.</p>
839
- <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="keywordtype">bool</span> added1 = edge-&gt;getDstNode()-&gt;addIncomingEdge(edge);</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <span class="keywordtype">bool</span> added2 = edge-&gt;getSrcNode()-&gt;addOutgoingEdge(edge);</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; assert(added1 &amp;&amp; added2 &amp;&amp; <span class="stringliteral">&quot;edge not added??&quot;</span>);</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; }</div></div><!-- fragment -->
841
+ <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="keywordtype">bool</span> added1 = edge-&gt;getDstNode()-&gt;addIncomingEdge(edge);</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <span class="keywordtype">bool</span> added2 = edge-&gt;getSrcNode()-&gt;addOutgoingEdge(edge);</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <span class="keywordtype">bool</span> all_added = added1 &amp;&amp; added2;</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; assert(all_added &amp;&amp; <span class="stringliteral">&quot;ICFGEdge not added?&quot;</span>);</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <span class="keywordflow">return</span> all_added;</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; }</div></div><!-- fragment -->
840
842
  </div>
841
843
  </div>
842
844
  <a id="a15816a82d8c33a066009440dce6ee973"></a>
@@ -865,8 +867,8 @@ Additional Inherited Members</h2></td></tr>
865
867
 
866
868
  <p>Add a <a class="el" href="classSVF_1_1ICFG.html">ICFG</a> node. </p>
867
869
 
868
- <p class="definition">Definition at line <a class="el" href="ICFG_8h_source.html#l00187">187</a> of file <a class="el" href="ICFG_8h_source.html">ICFG.h</a>.</p>
869
- <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; <a class="code" href="classSVF_1_1GenericGraph.html#a0a8831a5429005ff9d71adbd6bf3994f">addGNode</a>(node-&gt;getId(),node);</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; }</div><div class="ttc" id="classSVF_1_1GenericGraph_html_a0a8831a5429005ff9d71adbd6bf3994f"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#a0a8831a5429005ff9d71adbd6bf3994f">SVF::GenericGraph::addGNode</a></div><div class="ttdeci">void addGNode(NodeID id, NodeType *node)</div><div class="ttdoc">Add a Node. </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00384">GenericGraph.h:384</a></div></div>
870
+ <p class="definition">Definition at line <a class="el" href="ICFG_8h_source.html#l00188">188</a> of file <a class="el" href="ICFG_8h_source.html">ICFG.h</a>.</p>
871
+ <div class="fragment"><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; {</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; <a class="code" href="classSVF_1_1GenericGraph.html#a0a8831a5429005ff9d71adbd6bf3994f">addGNode</a>(node-&gt;getId(),node);</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; }</div><div class="ttc" id="classSVF_1_1GenericGraph_html_a0a8831a5429005ff9d71adbd6bf3994f"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#a0a8831a5429005ff9d71adbd6bf3994f">SVF::GenericGraph::addGNode</a></div><div class="ttdeci">void addGNode(NodeID id, NodeType *node)</div><div class="ttdoc">Add a Node. </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00386">GenericGraph.h:386</a></div></div>
870
872
  </div><!-- fragment -->
871
873
  </div>
872
874
  </div>
@@ -894,10 +896,10 @@ Additional Inherited Members</h2></td></tr>
894
896
  </table>
895
897
  </div><div class="memdoc">
896
898
 
897
- <p class="definition">Definition at line <a class="el" href="ICFG_8h_source.html#l00229">229</a> of file <a class="el" href="ICFG_8h_source.html">ICFG.h</a>.</p>
898
- <div class="fragment"><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; {</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; IntraICFGNode* sNode = <span class="keyword">new</span> IntraICFGNode(<a class="code" href="classSVF_1_1ICFG.html#a5df6061b65d021cd73c66592ec79f052">totalICFGNode</a>++,inst);</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; <a class="code" href="classSVF_1_1ICFG.html#a15816a82d8c33a066009440dce6ee973">addICFGNode</a>(sNode);</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; <a class="code" href="classSVF_1_1ICFG.html#a23f905d849553d7ad652e9a8f1bfacd1">InstToBlockNodeMap</a>[inst] = sNode;</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; <span class="keywordflow">return</span> sNode;</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; }</div><div class="ttc" id="classSVF_1_1ICFG_html_a5df6061b65d021cd73c66592ec79f052"><div class="ttname"><a href="classSVF_1_1ICFG.html#a5df6061b65d021cd73c66592ec79f052">SVF::ICFG::totalICFGNode</a></div><div class="ttdeci">NodeID totalICFGNode</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00067">ICFG.h:67</a></div></div>
899
+ <p class="definition">Definition at line <a class="el" href="ICFG_8h_source.html#l00230">230</a> of file <a class="el" href="ICFG_8h_source.html">ICFG.h</a>.</p>
900
+ <div class="fragment"><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; {</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; IntraICFGNode* sNode = <span class="keyword">new</span> IntraICFGNode(<a class="code" href="classSVF_1_1ICFG.html#a5df6061b65d021cd73c66592ec79f052">totalICFGNode</a>++,inst);</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; <a class="code" href="classSVF_1_1ICFG.html#a15816a82d8c33a066009440dce6ee973">addICFGNode</a>(sNode);</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; <a class="code" href="classSVF_1_1ICFG.html#a23f905d849553d7ad652e9a8f1bfacd1">InstToBlockNodeMap</a>[inst] = sNode;</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; <span class="keywordflow">return</span> sNode;</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; }</div><div class="ttc" id="classSVF_1_1ICFG_html_a5df6061b65d021cd73c66592ec79f052"><div class="ttname"><a href="classSVF_1_1ICFG.html#a5df6061b65d021cd73c66592ec79f052">SVF::ICFG::totalICFGNode</a></div><div class="ttdeci">NodeID totalICFGNode</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00067">ICFG.h:67</a></div></div>
899
901
  <div class="ttc" id="classSVF_1_1ICFG_html_a23f905d849553d7ad652e9a8f1bfacd1"><div class="ttname"><a href="classSVF_1_1ICFG.html#a23f905d849553d7ad652e9a8f1bfacd1">SVF::ICFG::InstToBlockNodeMap</a></div><div class="ttdeci">InstToBlockNodeMapTy InstToBlockNodeMap</div><div class="ttdoc">map a basic block to its ICFGNode </div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00074">ICFG.h:74</a></div></div>
900
- <div class="ttc" id="classSVF_1_1ICFG_html_a15816a82d8c33a066009440dce6ee973"><div class="ttname"><a href="classSVF_1_1ICFG.html#a15816a82d8c33a066009440dce6ee973">SVF::ICFG::addICFGNode</a></div><div class="ttdeci">virtual void addICFGNode(ICFGNode *node)</div><div class="ttdoc">Add a ICFG node. </div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00187">ICFG.h:187</a></div></div>
902
+ <div class="ttc" id="classSVF_1_1ICFG_html_a15816a82d8c33a066009440dce6ee973"><div class="ttname"><a href="classSVF_1_1ICFG.html#a15816a82d8c33a066009440dce6ee973">SVF::ICFG::addICFGNode</a></div><div class="ttdeci">virtual void addICFGNode(ICFGNode *node)</div><div class="ttdoc">Add a ICFG node. </div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00188">ICFG.h:188</a></div></div>
901
903
  </div><!-- fragment -->
902
904
  </div>
903
905
  </div>
@@ -939,8 +941,9 @@ Additional Inherited Members</h2></td></tr>
939
941
  <p>Add intraprocedural edges between two nodes </p>
940
942
 
941
943
  <p class="definition">Definition at line <a class="el" href="ICFG_8cpp_source.html#l00364">364</a> of file <a class="el" href="ICFG_8cpp_source.html">ICFG.cpp</a>.</p>
942
- <div class="fragment"><div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160;{</div><div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160; <a class="code" href="classSVF_1_1ICFG.html#a70421a19a494eb6131a9ae72ef1a64d6">checkIntraEdgeParents</a>(srcNode, dstNode);</div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1ICFGEdge.html">ICFGEdge</a>* edge = <a class="code" href="classSVF_1_1ICFG.html#aa662baae5682ef6ec5084fa4147c9709">hasIntraICFGEdge</a>(srcNode,dstNode, <a class="code" href="classSVF_1_1ICFGEdge.html#a395c34788e98950bc43e8cb44313e429acb8fba7c61b08ec952f1b65643d7a84b">ICFGEdge::IntraCF</a>))</div><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; assert(edge-&gt;isIntraCFGEdge() &amp;&amp; <span class="stringliteral">&quot;this should be an intra CFG edge!&quot;</span>);</div><div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; }</div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160; {</div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; <a class="code" href="classSVF_1_1IntraCFGEdge.html">IntraCFGEdge</a>* intraEdge = <span class="keyword">new</span> <a class="code" href="classSVF_1_1IntraCFGEdge.html">IntraCFGEdge</a>(srcNode,dstNode);</div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160; <span class="keywordflow">return</span> (<a class="code" href="classSVF_1_1ICFG.html#a462f590c2604184d69e4efe3d85a7b5b">addICFGEdge</a>(intraEdge) ? intraEdge : <span class="keyword">nullptr</span>);</div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160; }</div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160;}</div><div class="ttc" id="classSVF_1_1ICFGEdge_html"><div class="ttname"><a href="classSVF_1_1ICFGEdge.html">SVF::ICFGEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGEdge_8h_source.html#l00044">ICFGEdge.h:44</a></div></div>
944
+ <div class="fragment"><div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160;{</div><div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160; <a class="code" href="classSVF_1_1ICFG.html#a70421a19a494eb6131a9ae72ef1a64d6">checkIntraEdgeParents</a>(srcNode, dstNode);</div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160; <a class="code" href="classSVF_1_1ICFGEdge.html">ICFGEdge</a>* edge = <a class="code" href="classSVF_1_1ICFG.html#aa662baae5682ef6ec5084fa4147c9709">hasIntraICFGEdge</a>(srcNode, dstNode, <a class="code" href="classSVF_1_1ICFGEdge.html#a395c34788e98950bc43e8cb44313e429acb8fba7c61b08ec952f1b65643d7a84b">ICFGEdge::IntraCF</a>);</div><div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; <span class="keywordflow">if</span> (edge != <span class="keyword">nullptr</span>)</div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; {</div><div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; assert(edge-&gt;<a class="code" href="classSVF_1_1ICFGEdge.html#a4e6d228dfc678618a423e8293877f04c">isIntraCFGEdge</a>() &amp;&amp; <span class="stringliteral">&quot;this should be an intra CFG edge!&quot;</span>);</div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160; }</div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160; <span class="keywordflow">else</span></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; <a class="code" href="classSVF_1_1IntraCFGEdge.html">IntraCFGEdge</a>* intraEdge = <span class="keyword">new</span> <a class="code" href="classSVF_1_1IntraCFGEdge.html">IntraCFGEdge</a>(srcNode,dstNode);</div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160; <span class="keywordflow">return</span> (<a class="code" href="classSVF_1_1ICFG.html#a462f590c2604184d69e4efe3d85a7b5b">addICFGEdge</a>(intraEdge) ? intraEdge : <span class="keyword">nullptr</span>);</div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160; }</div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160;}</div><div class="ttc" id="classSVF_1_1ICFGEdge_html"><div class="ttname"><a href="classSVF_1_1ICFGEdge.html">SVF::ICFGEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGEdge_8h_source.html#l00044">ICFGEdge.h:44</a></div></div>
943
945
  <div class="ttc" id="classSVF_1_1IntraCFGEdge_html"><div class="ttname"><a href="classSVF_1_1IntraCFGEdge.html">SVF::IntraCFGEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGEdge_8h_source.html#l00113">ICFGEdge.h:113</a></div></div>
946
+ <div class="ttc" id="classSVF_1_1ICFGEdge_html_a4e6d228dfc678618a423e8293877f04c"><div class="ttname"><a href="classSVF_1_1ICFGEdge.html#a4e6d228dfc678618a423e8293877f04c">SVF::ICFGEdge::isIntraCFGEdge</a></div><div class="ttdeci">bool isIntraCFGEdge() const</div><div class="ttdef"><b>Definition:</b> <a href="ICFGEdge_8h_source.html#l00084">ICFGEdge.h:84</a></div></div>
944
947
  <div class="ttc" id="classSVF_1_1ICFGEdge_html_a395c34788e98950bc43e8cb44313e429acb8fba7c61b08ec952f1b65643d7a84b"><div class="ttname"><a href="classSVF_1_1ICFGEdge.html#a395c34788e98950bc43e8cb44313e429acb8fba7c61b08ec952f1b65643d7a84b">SVF::ICFGEdge::IntraCF</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGEdge_8h_source.html#l00053">ICFGEdge.h:53</a></div></div>
945
948
  <div class="ttc" id="classSVF_1_1ICFG_html_a462f590c2604184d69e4efe3d85a7b5b"><div class="ttname"><a href="classSVF_1_1ICFG.html#a462f590c2604184d69e4efe3d85a7b5b">SVF::ICFG::addICFGEdge</a></div><div class="ttdeci">bool addICFGEdge(ICFGEdge *edge)</div><div class="ttdoc">Add ICFG edge. </div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00178">ICFG.h:178</a></div></div>
946
949
  <div class="ttc" id="classSVF_1_1ICFG_html_aa662baae5682ef6ec5084fa4147c9709"><div class="ttname"><a href="classSVF_1_1ICFG.html#aa662baae5682ef6ec5084fa4147c9709">SVF::ICFG::hasIntraICFGEdge</a></div><div class="ttdeci">ICFGEdge * hasIntraICFGEdge(ICFGNode *src, ICFGNode *dst, ICFGEdge::ICFGEdgeK kind)</div><div class="ttdoc">Whether we has a SVFG edge. </div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#l00290">ICFG.cpp:290</a></div></div>
@@ -1013,10 +1016,10 @@ Additional Inherited Members</h2></td></tr>
1013
1016
  </table>
1014
1017
  </div><div class="memdoc">
1015
1018
 
1016
- <p class="definition">Definition at line <a class="el" href="ICFG_8h_source.html#l00293">293</a> of file <a class="el" href="ICFG_8h_source.html">ICFG.h</a>.</p>
1017
- <div class="fragment"><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; {</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; CallICFGNode* callBlockNode = <a class="code" href="classSVF_1_1ICFG.html#adc66b547720b9271e6805edea0b9d01f">getCallICFGNode</a>(cs);</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; RetICFGNode* sNode = <span class="keyword">new</span> RetICFGNode(<a class="code" href="classSVF_1_1ICFG.html#a5df6061b65d021cd73c66592ec79f052">totalICFGNode</a>++, cs, callBlockNode);</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; callBlockNode-&gt;setRetICFGNode(sNode);</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; <a class="code" href="classSVF_1_1ICFG.html#a15816a82d8c33a066009440dce6ee973">addICFGNode</a>(sNode);</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; <a class="code" href="classSVF_1_1ICFG.html#a0e43308038663c10667177238b23ab3e">CSToRetNodeMap</a>[cs] = sNode;</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; <span class="keywordflow">return</span> sNode;</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; }</div><div class="ttc" id="classSVF_1_1ICFG_html_a5df6061b65d021cd73c66592ec79f052"><div class="ttname"><a href="classSVF_1_1ICFG.html#a5df6061b65d021cd73c66592ec79f052">SVF::ICFG::totalICFGNode</a></div><div class="ttdeci">NodeID totalICFGNode</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00067">ICFG.h:67</a></div></div>
1019
+ <p class="definition">Definition at line <a class="el" href="ICFG_8h_source.html#l00294">294</a> of file <a class="el" href="ICFG_8h_source.html">ICFG.h</a>.</p>
1020
+ <div class="fragment"><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; {</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; CallICFGNode* callBlockNode = <a class="code" href="classSVF_1_1ICFG.html#adc66b547720b9271e6805edea0b9d01f">getCallICFGNode</a>(cs);</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; RetICFGNode* sNode = <span class="keyword">new</span> RetICFGNode(<a class="code" href="classSVF_1_1ICFG.html#a5df6061b65d021cd73c66592ec79f052">totalICFGNode</a>++, cs, callBlockNode);</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; callBlockNode-&gt;setRetICFGNode(sNode);</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; <a class="code" href="classSVF_1_1ICFG.html#a15816a82d8c33a066009440dce6ee973">addICFGNode</a>(sNode);</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; <a class="code" href="classSVF_1_1ICFG.html#a0e43308038663c10667177238b23ab3e">CSToRetNodeMap</a>[cs] = sNode;</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; <span class="keywordflow">return</span> sNode;</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; }</div><div class="ttc" id="classSVF_1_1ICFG_html_a5df6061b65d021cd73c66592ec79f052"><div class="ttname"><a href="classSVF_1_1ICFG.html#a5df6061b65d021cd73c66592ec79f052">SVF::ICFG::totalICFGNode</a></div><div class="ttdeci">NodeID totalICFGNode</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00067">ICFG.h:67</a></div></div>
1018
1021
  <div class="ttc" id="classSVF_1_1ICFG_html_adc66b547720b9271e6805edea0b9d01f"><div class="ttname"><a href="classSVF_1_1ICFG.html#adc66b547720b9271e6805edea0b9d01f">SVF::ICFG::getCallICFGNode</a></div><div class="ttdeci">CallICFGNode * getCallICFGNode(const Instruction *inst)</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#l00236">ICFG.cpp:236</a></div></div>
1019
- <div class="ttc" id="classSVF_1_1ICFG_html_a15816a82d8c33a066009440dce6ee973"><div class="ttname"><a href="classSVF_1_1ICFG.html#a15816a82d8c33a066009440dce6ee973">SVF::ICFG::addICFGNode</a></div><div class="ttdeci">virtual void addICFGNode(ICFGNode *node)</div><div class="ttdoc">Add a ICFG node. </div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00187">ICFG.h:187</a></div></div>
1022
+ <div class="ttc" id="classSVF_1_1ICFG_html_a15816a82d8c33a066009440dce6ee973"><div class="ttname"><a href="classSVF_1_1ICFG.html#a15816a82d8c33a066009440dce6ee973">SVF::ICFG::addICFGNode</a></div><div class="ttdeci">virtual void addICFGNode(ICFGNode *node)</div><div class="ttdoc">Add a ICFG node. </div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00188">ICFG.h:188</a></div></div>
1020
1023
  <div class="ttc" id="classSVF_1_1ICFG_html_a0e43308038663c10667177238b23ab3e"><div class="ttname"><a href="classSVF_1_1ICFG.html#a0e43308038663c10667177238b23ab3e">SVF::ICFG::CSToRetNodeMap</a></div><div class="ttdeci">CSToRetNodeMapTy CSToRetNodeMap</div><div class="ttdoc">map a callsite to its RetICFGNode </div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00073">ICFG.h:73</a></div></div>
1021
1024
  </div><!-- fragment -->
1022
1025
  </div>
@@ -1062,11 +1065,12 @@ Additional Inherited Members</h2></td></tr>
1062
1065
  </div><div class="memdoc">
1063
1066
  <p>Add interprocedural return edges between two nodes </p>
1064
1067
 
1065
- <p class="definition">Definition at line <a class="el" href="ICFG_8cpp_source.html#l00420">420</a> of file <a class="el" href="ICFG_8cpp_source.html">ICFG.cpp</a>.</p>
1066
- <div class="fragment"><div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160;{</div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1ICFGEdge.html">ICFGEdge</a>* edge = <a class="code" href="classSVF_1_1ICFG.html#a86535e50d1feba706b19491d905baef1">hasInterICFGEdge</a>(srcNode,dstNode, <a class="code" href="classSVF_1_1ICFGEdge.html#a395c34788e98950bc43e8cb44313e429ad2370a77f6cc112b8c26efbcc36bf541">ICFGEdge::RetCF</a>))</div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160; {</div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160; assert(edge-&gt;isRetCFGEdge() &amp;&amp; <span class="stringliteral">&quot;this should be a return CFG edge!&quot;</span>);</div><div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160; <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160; }</div><div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160; {</div><div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160; <a class="code" href="classSVF_1_1RetCFGEdge.html">RetCFGEdge</a>* retEdge = <span class="keyword">new</span> <a class="code" href="classSVF_1_1RetCFGEdge.html">RetCFGEdge</a>(srcNode,dstNode,cs);</div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160; <span class="keywordflow">return</span> (<a class="code" href="classSVF_1_1ICFG.html#a462f590c2604184d69e4efe3d85a7b5b">addICFGEdge</a>(retEdge) ? retEdge : <span class="keyword">nullptr</span>);</div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160; }</div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160;}</div><div class="ttc" id="classSVF_1_1ICFGEdge_html"><div class="ttname"><a href="classSVF_1_1ICFGEdge.html">SVF::ICFGEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGEdge_8h_source.html#l00044">ICFGEdge.h:44</a></div></div>
1068
+ <p class="definition">Definition at line <a class="el" href="ICFG_8cpp_source.html#l00423">423</a> of file <a class="el" href="ICFG_8cpp_source.html">ICFG.cpp</a>.</p>
1069
+ <div class="fragment"><div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160;{</div><div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160; <a class="code" href="classSVF_1_1ICFGEdge.html">ICFGEdge</a>* edge = <a class="code" href="classSVF_1_1ICFG.html#a86535e50d1feba706b19491d905baef1">hasInterICFGEdge</a>(srcNode, dstNode, <a class="code" href="classSVF_1_1ICFGEdge.html#a395c34788e98950bc43e8cb44313e429ad2370a77f6cc112b8c26efbcc36bf541">ICFGEdge::RetCF</a>);</div><div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160; <span class="keywordflow">if</span> (edge != <span class="keyword">nullptr</span>)</div><div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160; {</div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160; assert(edge-&gt;<a class="code" href="classSVF_1_1ICFGEdge.html#ae3e7a6596de9fd3a25a28242a06ddd80">isRetCFGEdge</a>() &amp;&amp; <span class="stringliteral">&quot;this should be a return CFG edge!&quot;</span>);</div><div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160; <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div><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">else</span></div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; {</div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160; <a class="code" href="classSVF_1_1RetCFGEdge.html">RetCFGEdge</a>* retEdge = <span class="keyword">new</span> <a class="code" href="classSVF_1_1RetCFGEdge.html">RetCFGEdge</a>(srcNode,dstNode,cs);</div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160; <span class="keywordflow">return</span> (<a class="code" href="classSVF_1_1ICFG.html#a462f590c2604184d69e4efe3d85a7b5b">addICFGEdge</a>(retEdge) ? retEdge : <span class="keyword">nullptr</span>);</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160; }</div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160;}</div><div class="ttc" id="classSVF_1_1ICFGEdge_html"><div class="ttname"><a href="classSVF_1_1ICFGEdge.html">SVF::ICFGEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGEdge_8h_source.html#l00044">ICFGEdge.h:44</a></div></div>
1067
1070
  <div class="ttc" id="classSVF_1_1ICFGEdge_html_a395c34788e98950bc43e8cb44313e429ad2370a77f6cc112b8c26efbcc36bf541"><div class="ttname"><a href="classSVF_1_1ICFGEdge.html#a395c34788e98950bc43e8cb44313e429ad2370a77f6cc112b8c26efbcc36bf541">SVF::ICFGEdge::RetCF</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGEdge_8h_source.html#l00055">ICFGEdge.h:55</a></div></div>
1068
1071
  <div class="ttc" id="classSVF_1_1ICFG_html_a86535e50d1feba706b19491d905baef1"><div class="ttname"><a href="classSVF_1_1ICFG.html#a86535e50d1feba706b19491d905baef1">SVF::ICFG::hasInterICFGEdge</a></div><div class="ttdeci">ICFGEdge * hasInterICFGEdge(ICFGNode *src, ICFGNode *dst, ICFGEdge::ICFGEdgeK kind)</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#l00307">ICFG.cpp:307</a></div></div>
1069
1072
  <div class="ttc" id="classSVF_1_1ICFG_html_a462f590c2604184d69e4efe3d85a7b5b"><div class="ttname"><a href="classSVF_1_1ICFG.html#a462f590c2604184d69e4efe3d85a7b5b">SVF::ICFG::addICFGEdge</a></div><div class="ttdeci">bool addICFGEdge(ICFGEdge *edge)</div><div class="ttdoc">Add ICFG edge. </div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00178">ICFG.h:178</a></div></div>
1073
+ <div class="ttc" id="classSVF_1_1ICFGEdge_html_ae3e7a6596de9fd3a25a28242a06ddd80"><div class="ttname"><a href="classSVF_1_1ICFGEdge.html#ae3e7a6596de9fd3a25a28242a06ddd80">SVF::ICFGEdge::isRetCFGEdge</a></div><div class="ttdeci">bool isRetCFGEdge() const</div><div class="ttdef"><b>Definition:</b> <a href="ICFGEdge_8h_source.html#l00080">ICFGEdge.h:80</a></div></div>
1070
1074
  <div class="ttc" id="classSVF_1_1RetCFGEdge_html"><div class="ttname"><a href="classSVF_1_1RetCFGEdge.html">SVF::RetCFGEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGEdge_8h_source.html#l00216">ICFGEdge.h:216</a></div></div>
1071
1075
  </div><!-- fragment -->
1072
1076
  </div>
@@ -1140,8 +1144,8 @@ Additional Inherited Members</h2></td></tr>
1140
1144
  <p>Dump graph into dot file. </p>
1141
1145
  <p>Dump <a class="el" href="classSVF_1_1ICFG.html">ICFG</a> </p>
1142
1146
 
1143
- <p class="definition">Definition at line <a class="el" href="ICFG_8cpp_source.html#l00438">438</a> of file <a class="el" href="ICFG_8cpp_source.html">ICFG.cpp</a>.</p>
1144
- <div class="fragment"><div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160;{</div><div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160; <a class="code" href="classllvm_1_1GraphPrinter.html#af6ed328e74882d2b5e2b4039cb836928">GraphPrinter::WriteGraphToFile</a>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>(), file, <span class="keyword">this</span>, simple);</div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160;}</div><div class="ttc" id="classllvm_1_1GraphPrinter_html_af6ed328e74882d2b5e2b4039cb836928"><div class="ttname"><a href="classllvm_1_1GraphPrinter.html#af6ed328e74882d2b5e2b4039cb836928">llvm::GraphPrinter::WriteGraphToFile</a></div><div class="ttdeci">static void WriteGraphToFile(SVF::OutStream &amp;O, const std::string &amp;GraphName, const GraphType &amp;GT, bool simple=false)</div><div class="ttdef"><b>Definition:</b> <a href="GraphPrinter_8h_source.html#l00058">GraphPrinter.h:58</a></div></div>
1147
+ <p class="definition">Definition at line <a class="el" href="ICFG_8cpp_source.html#l00442">442</a> of file <a class="el" href="ICFG_8cpp_source.html">ICFG.cpp</a>.</p>
1148
+ <div class="fragment"><div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160;{</div><div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160; <a class="code" href="classllvm_1_1GraphPrinter.html#af6ed328e74882d2b5e2b4039cb836928">GraphPrinter::WriteGraphToFile</a>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>(), file, <span class="keyword">this</span>, simple);</div><div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160;}</div><div class="ttc" id="classllvm_1_1GraphPrinter_html_af6ed328e74882d2b5e2b4039cb836928"><div class="ttname"><a href="classllvm_1_1GraphPrinter.html#af6ed328e74882d2b5e2b4039cb836928">llvm::GraphPrinter::WriteGraphToFile</a></div><div class="ttdeci">static void WriteGraphToFile(SVF::OutStream &amp;O, const std::string &amp;GraphName, const GraphType &amp;GT, bool simple=false)</div><div class="ttdef"><b>Definition:</b> <a href="GraphPrinter_8h_source.html#l00058">GraphPrinter.h:58</a></div></div>
1145
1149
  <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>
1146
1150
  </div><!-- fragment -->
1147
1151
  </div>
@@ -1170,8 +1174,8 @@ Additional Inherited Members</h2></td></tr>
1170
1174
  </table>
1171
1175
  </div><div class="memdoc">
1172
1176
 
1173
- <p class="definition">Definition at line <a class="el" href="ICFG_8h_source.html#l00277">277</a> of file <a class="el" href="ICFG_8h_source.html">ICFG.h</a>.</p>
1174
- <div class="fragment"><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; {</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; CSToCallNodeMapTy::const_iterator it = <a class="code" href="classSVF_1_1ICFG.html#af0434d6ffd247eeaf73b9294e659a3f9">CSToCallNodeMap</a>.find(cs);</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; <span class="keywordflow">if</span> (it == <a class="code" href="classSVF_1_1ICFG.html#af0434d6ffd247eeaf73b9294e659a3f9">CSToCallNodeMap</a>.end())</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; <span class="keywordflow">return</span> it-&gt;second;</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; }</div><div class="ttc" id="classSVF_1_1ICFG_html_af0434d6ffd247eeaf73b9294e659a3f9"><div class="ttname"><a href="classSVF_1_1ICFG.html#af0434d6ffd247eeaf73b9294e659a3f9">SVF::ICFG::CSToCallNodeMap</a></div><div class="ttdeci">CSToCallNodeMapTy CSToCallNodeMap</div><div class="ttdoc">map a callsite to its CallICFGNode </div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00072">ICFG.h:72</a></div></div>
1177
+ <p class="definition">Definition at line <a class="el" href="ICFG_8h_source.html#l00278">278</a> of file <a class="el" href="ICFG_8h_source.html">ICFG.h</a>.</p>
1178
+ <div class="fragment"><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; {</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; CSToCallNodeMapTy::const_iterator it = <a class="code" href="classSVF_1_1ICFG.html#af0434d6ffd247eeaf73b9294e659a3f9">CSToCallNodeMap</a>.find(cs);</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; <span class="keywordflow">if</span> (it == <a class="code" href="classSVF_1_1ICFG.html#af0434d6ffd247eeaf73b9294e659a3f9">CSToCallNodeMap</a>.end())</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; <span class="keywordflow">return</span> it-&gt;second;</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; }</div><div class="ttc" id="classSVF_1_1ICFG_html_af0434d6ffd247eeaf73b9294e659a3f9"><div class="ttname"><a href="classSVF_1_1ICFG.html#af0434d6ffd247eeaf73b9294e659a3f9">SVF::ICFG::CSToCallNodeMap</a></div><div class="ttdeci">CSToCallNodeMapTy CSToCallNodeMap</div><div class="ttdoc">map a callsite to its CallICFGNode </div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00072">ICFG.h:72</a></div></div>
1175
1179
  </div><!-- fragment -->
1176
1180
  </div>
1177
1181
  </div>
@@ -1195,10 +1199,10 @@ Additional Inherited Members</h2></td></tr>
1195
1199
  <div class="fragment"><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160;{</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a2e08ce822223842fa6a73fd659b1a526">SVFUtil::isCallSite</a>(inst) ==<span class="keyword">false</span>)</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a7486fd8e5350879ed1cbd835c0d4e191">SVFUtil::value2String</a>(inst) &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; assert(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a2e08ce822223842fa6a73fd659b1a526">SVFUtil::isCallSite</a>(inst) &amp;&amp; <span class="stringliteral">&quot;not a call instruction?&quot;</span>);</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; assert(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a8d8216a92140d982303f83ea424ddc91">SVFUtil::isNonInstricCallSite</a>(inst) &amp;&amp; <span class="stringliteral">&quot;associating an intrinsic debug instruction with an ICFGNode!&quot;</span>);</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* node = <a class="code" href="classSVF_1_1ICFG.html#a47b5fe922b0339980fd49a89ecffd74d">getCallBlock</a>(inst);</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; <span class="keywordflow">if</span>(node==<span class="keyword">nullptr</span>)</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; node = <a class="code" href="classSVF_1_1ICFG.html#af6dc72c9ba19d41cc11439a7c632af48">addCallBlock</a>(inst);</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; assert (node!=<span class="keyword">nullptr</span> &amp;&amp; <span class="stringliteral">&quot;no CallICFGNode for this instruction?&quot;</span>);</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; <span class="keywordflow">return</span> node;</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160;}</div><div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a2e08ce822223842fa6a73fd659b1a526"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a2e08ce822223842fa6a73fd659b1a526">SVF::SVFUtil::isCallSite</a></div><div class="ttdeci">bool isCallSite(const Instruction *inst)</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#l00196">SVFUtil.h:196</a></div></div>
1196
1200
  <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>
1197
1201
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a7486fd8e5350879ed1cbd835c0d4e191"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a7486fd8e5350879ed1cbd835c0d4e191">SVF::SVFUtil::value2String</a></div><div class="ttdeci">const std::string value2String(const Value *value)</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8cpp_source.html#l00390">SVFUtil.cpp:390</a></div></div>
1198
- <div class="ttc" id="classSVF_1_1ICFG_html_a47b5fe922b0339980fd49a89ecffd74d"><div class="ttname"><a href="classSVF_1_1ICFG.html#a47b5fe922b0339980fd49a89ecffd74d">SVF::ICFG::getCallBlock</a></div><div class="ttdeci">CallICFGNode * getCallBlock(const Instruction *cs)</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00277">ICFG.h:277</a></div></div>
1202
+ <div class="ttc" id="classSVF_1_1ICFG_html_a47b5fe922b0339980fd49a89ecffd74d"><div class="ttname"><a href="classSVF_1_1ICFG.html#a47b5fe922b0339980fd49a89ecffd74d">SVF::ICFG::getCallBlock</a></div><div class="ttdeci">CallICFGNode * getCallBlock(const Instruction *cs)</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00278">ICFG.h:278</a></div></div>
1199
1203
  <div class="ttc" id="classSVF_1_1CallICFGNode_html"><div class="ttname"><a href="classSVF_1_1CallICFGNode.html">SVF::CallICFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00363">ICFGNode.h:363</a></div></div>
1200
1204
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a8d8216a92140d982303f83ea424ddc91"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a8d8216a92140d982303f83ea424ddc91">SVF::SVFUtil::isNonInstricCallSite</a></div><div class="ttdeci">bool isNonInstricCallSite(const Instruction *inst)</div><div class="ttdoc">Whether an instruction is a callsite in the application code, excluding llvm intrinsic calls...</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00209">SVFUtil.h:209</a></div></div>
1201
- <div class="ttc" id="classSVF_1_1ICFG_html_af6dc72c9ba19d41cc11439a7c632af48"><div class="ttname"><a href="classSVF_1_1ICFG.html#af6dc72c9ba19d41cc11439a7c632af48">SVF::ICFG::addCallBlock</a></div><div class="ttdeci">CallICFGNode * addCallBlock(const Instruction *cs)</div><div class="ttdoc">Get/Add a call node. </div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00270">ICFG.h:270</a></div></div>
1205
+ <div class="ttc" id="classSVF_1_1ICFG_html_af6dc72c9ba19d41cc11439a7c632af48"><div class="ttname"><a href="classSVF_1_1ICFG.html#af6dc72c9ba19d41cc11439a7c632af48">SVF::ICFG::addCallBlock</a></div><div class="ttdeci">CallICFGNode * addCallBlock(const Instruction *cs)</div><div class="ttdoc">Get/Add a call node. </div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00271">ICFG.h:271</a></div></div>
1202
1206
  </div><!-- fragment -->
1203
1207
  </div>
1204
1208
  </div>
@@ -1228,8 +1232,8 @@ Additional Inherited Members</h2></td></tr>
1228
1232
 
1229
1233
  <p>Get/Add a function entry node. </p>
1230
1234
 
1231
- <p class="definition">Definition at line <a class="el" href="ICFG_8h_source.html#l00238">238</a> of file <a class="el" href="ICFG_8h_source.html">ICFG.h</a>.</p>
1232
- <div class="fragment"><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; {</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; FunToFunEntryNodeMapTy::const_iterator it = <a class="code" href="classSVF_1_1ICFG.html#a69076849bd256fb0ca59711a59a7c092">FunToFunEntryNodeMap</a>.find(fun);</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; <span class="keywordflow">if</span> (it == <a class="code" href="classSVF_1_1ICFG.html#a69076849bd256fb0ca59711a59a7c092">FunToFunEntryNodeMap</a>.end())</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; <span class="keywordflow">return</span> it-&gt;second;</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; }</div><div class="ttc" id="classSVF_1_1ICFG_html_a69076849bd256fb0ca59711a59a7c092"><div class="ttname"><a href="classSVF_1_1ICFG.html#a69076849bd256fb0ca59711a59a7c092">SVF::ICFG::FunToFunEntryNodeMap</a></div><div class="ttdeci">FunToFunEntryNodeMapTy FunToFunEntryNodeMap</div><div class="ttdoc">map a function to its FunExitICFGNode </div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00070">ICFG.h:70</a></div></div>
1235
+ <p class="definition">Definition at line <a class="el" href="ICFG_8h_source.html#l00239">239</a> of file <a class="el" href="ICFG_8h_source.html">ICFG.h</a>.</p>
1236
+ <div class="fragment"><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; {</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; FunToFunEntryNodeMapTy::const_iterator it = <a class="code" href="classSVF_1_1ICFG.html#a69076849bd256fb0ca59711a59a7c092">FunToFunEntryNodeMap</a>.find(fun);</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; <span class="keywordflow">if</span> (it == <a class="code" href="classSVF_1_1ICFG.html#a69076849bd256fb0ca59711a59a7c092">FunToFunEntryNodeMap</a>.end())</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; <span class="keywordflow">return</span> it-&gt;second;</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; }</div><div class="ttc" id="classSVF_1_1ICFG_html_a69076849bd256fb0ca59711a59a7c092"><div class="ttname"><a href="classSVF_1_1ICFG.html#a69076849bd256fb0ca59711a59a7c092">SVF::ICFG::FunToFunEntryNodeMap</a></div><div class="ttdeci">FunToFunEntryNodeMapTy FunToFunEntryNodeMap</div><div class="ttdoc">map a function to its FunExitICFGNode </div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00070">ICFG.h:70</a></div></div>
1233
1237
  </div><!-- fragment -->
1234
1238
  </div>
1235
1239
  </div>
@@ -1252,10 +1256,10 @@ Additional Inherited Members</h2></td></tr>
1252
1256
  <p>Add a function entry node. </p>
1253
1257
 
1254
1258
  <p class="definition">Definition at line <a class="el" href="ICFG_8cpp_source.html#l00269">269</a> of file <a class="el" href="ICFG_8cpp_source.html">ICFG.cpp</a>.</p>
1255
- <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; <a class="code" href="classSVF_1_1FunEntryICFGNode.html">FunEntryICFGNode</a>* <a class="code" href="cJSON_8h.html#a1a175e87536301df98c805ac0636ad7c">b</a> = <a class="code" href="classSVF_1_1ICFG.html#acc261924103bd0c357acd3acfa6cf38a">getFunEntryBlock</a>(fun);</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; <span class="keywordflow">if</span> (b == <span class="keyword">nullptr</span>)</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ICFG.html#a1af9ae1c2efb4cb7897d5234d035c06b">addFunEntryBlock</a>(fun);</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; <span class="keywordflow">return</span> <a class="code" href="cJSON_8h.html#a1a175e87536301df98c805ac0636ad7c">b</a>;</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160;}</div><div class="ttc" id="classSVF_1_1ICFG_html_a1af9ae1c2efb4cb7897d5234d035c06b"><div class="ttname"><a href="classSVF_1_1ICFG.html#a1af9ae1c2efb4cb7897d5234d035c06b">SVF::ICFG::addFunEntryBlock</a></div><div class="ttdeci">FunEntryICFGNode * addFunEntryBlock(const SVFFunction *fun)</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00245">ICFG.h:245</a></div></div>
1259
+ <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; <a class="code" href="classSVF_1_1FunEntryICFGNode.html">FunEntryICFGNode</a>* <a class="code" href="cJSON_8h.html#a1a175e87536301df98c805ac0636ad7c">b</a> = <a class="code" href="classSVF_1_1ICFG.html#acc261924103bd0c357acd3acfa6cf38a">getFunEntryBlock</a>(fun);</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; <span class="keywordflow">if</span> (b == <span class="keyword">nullptr</span>)</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ICFG.html#a1af9ae1c2efb4cb7897d5234d035c06b">addFunEntryBlock</a>(fun);</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; <span class="keywordflow">return</span> <a class="code" href="cJSON_8h.html#a1a175e87536301df98c805ac0636ad7c">b</a>;</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160;}</div><div class="ttc" id="classSVF_1_1ICFG_html_a1af9ae1c2efb4cb7897d5234d035c06b"><div class="ttname"><a href="classSVF_1_1ICFG.html#a1af9ae1c2efb4cb7897d5234d035c06b">SVF::ICFG::addFunEntryBlock</a></div><div class="ttdeci">FunEntryICFGNode * addFunEntryBlock(const SVFFunction *fun)</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00246">ICFG.h:246</a></div></div>
1256
1260
  <div class="ttc" id="cJSON_8h_html_a1a175e87536301df98c805ac0636ad7c"><div class="ttname"><a href="cJSON_8h.html#a1a175e87536301df98c805ac0636ad7c">b</a></div><div class="ttdeci">const cJSON *const b</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8h_source.html#l00255">cJSON.h:255</a></div></div>
1257
1261
  <div class="ttc" id="classSVF_1_1FunEntryICFGNode_html"><div class="ttname"><a href="classSVF_1_1FunEntryICFGNode.html">SVF::FunEntryICFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00251">ICFGNode.h:251</a></div></div>
1258
- <div class="ttc" id="classSVF_1_1ICFG_html_acc261924103bd0c357acd3acfa6cf38a"><div class="ttname"><a href="classSVF_1_1ICFG.html#acc261924103bd0c357acd3acfa6cf38a">SVF::ICFG::getFunEntryBlock</a></div><div class="ttdeci">FunEntryICFGNode * getFunEntryBlock(const SVFFunction *fun)</div><div class="ttdoc">Get/Add a function entry node. </div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00238">ICFG.h:238</a></div></div>
1262
+ <div class="ttc" id="classSVF_1_1ICFG_html_acc261924103bd0c357acd3acfa6cf38a"><div class="ttname"><a href="classSVF_1_1ICFG.html#acc261924103bd0c357acd3acfa6cf38a">SVF::ICFG::getFunEntryBlock</a></div><div class="ttdeci">FunEntryICFGNode * getFunEntryBlock(const SVFFunction *fun)</div><div class="ttdoc">Get/Add a function entry node. </div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00239">ICFG.h:239</a></div></div>
1259
1263
  </div><!-- fragment -->
1260
1264
  </div>
1261
1265
  </div>
@@ -1285,8 +1289,8 @@ Additional Inherited Members</h2></td></tr>
1285
1289
 
1286
1290
  <p>Get/Add a function exit node. </p>
1287
1291
 
1288
- <p class="definition">Definition at line <a class="el" href="ICFG_8h_source.html#l00254">254</a> of file <a class="el" href="ICFG_8h_source.html">ICFG.h</a>.</p>
1289
- <div class="fragment"><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; {</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; FunToFunExitNodeMapTy::const_iterator it = <a class="code" href="classSVF_1_1ICFG.html#ab87a90adae3e9db06da7ecc0bd9d920f">FunToFunExitNodeMap</a>.find(fun);</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; <span class="keywordflow">if</span> (it == <a class="code" href="classSVF_1_1ICFG.html#ab87a90adae3e9db06da7ecc0bd9d920f">FunToFunExitNodeMap</a>.end())</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; <span class="keywordflow">return</span> it-&gt;second;</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; }</div><div class="ttc" id="classSVF_1_1ICFG_html_ab87a90adae3e9db06da7ecc0bd9d920f"><div class="ttname"><a href="classSVF_1_1ICFG.html#ab87a90adae3e9db06da7ecc0bd9d920f">SVF::ICFG::FunToFunExitNodeMap</a></div><div class="ttdeci">FunToFunExitNodeMapTy FunToFunExitNodeMap</div><div class="ttdoc">map a function to its FunEntryICFGNode </div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00071">ICFG.h:71</a></div></div>
1292
+ <p class="definition">Definition at line <a class="el" href="ICFG_8h_source.html#l00255">255</a> of file <a class="el" href="ICFG_8h_source.html">ICFG.h</a>.</p>
1293
+ <div class="fragment"><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; {</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; FunToFunExitNodeMapTy::const_iterator it = <a class="code" href="classSVF_1_1ICFG.html#ab87a90adae3e9db06da7ecc0bd9d920f">FunToFunExitNodeMap</a>.find(fun);</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; <span class="keywordflow">if</span> (it == <a class="code" href="classSVF_1_1ICFG.html#ab87a90adae3e9db06da7ecc0bd9d920f">FunToFunExitNodeMap</a>.end())</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; <span class="keywordflow">return</span> it-&gt;second;</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; }</div><div class="ttc" id="classSVF_1_1ICFG_html_ab87a90adae3e9db06da7ecc0bd9d920f"><div class="ttname"><a href="classSVF_1_1ICFG.html#ab87a90adae3e9db06da7ecc0bd9d920f">SVF::ICFG::FunToFunExitNodeMap</a></div><div class="ttdeci">FunToFunExitNodeMapTy FunToFunExitNodeMap</div><div class="ttdoc">map a function to its FunEntryICFGNode </div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00071">ICFG.h:71</a></div></div>
1290
1294
  </div><!-- fragment -->
1291
1295
  </div>
1292
1296
  </div>
@@ -1309,9 +1313,9 @@ Additional Inherited Members</h2></td></tr>
1309
1313
  <p>Add a function exit node. </p>
1310
1314
 
1311
1315
  <p class="definition">Definition at line <a class="el" href="ICFG_8cpp_source.html#l00278">278</a> of file <a class="el" href="ICFG_8cpp_source.html">ICFG.cpp</a>.</p>
1312
- <div class="fragment"><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160;{</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; <a class="code" href="classSVF_1_1FunExitICFGNode.html">FunExitICFGNode</a>* <a class="code" href="cJSON_8h.html#a1a175e87536301df98c805ac0636ad7c">b</a> = <a class="code" href="classSVF_1_1ICFG.html#a22d7f37a0cb2df90f73c1f2e3eaa71c6">getFunExitBlock</a>(fun);</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; <span class="keywordflow">if</span> (b == <span class="keyword">nullptr</span>)</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ICFG.html#a6b716225b38638d6a34703995b749ad2">addFunExitBlock</a>(fun);</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; <span class="keywordflow">return</span> <a class="code" href="cJSON_8h.html#a1a175e87536301df98c805ac0636ad7c">b</a>;</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160;}</div><div class="ttc" id="classSVF_1_1ICFG_html_a6b716225b38638d6a34703995b749ad2"><div class="ttname"><a href="classSVF_1_1ICFG.html#a6b716225b38638d6a34703995b749ad2">SVF::ICFG::addFunExitBlock</a></div><div class="ttdeci">FunExitICFGNode * addFunExitBlock(const SVFFunction *fun)</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00261">ICFG.h:261</a></div></div>
1316
+ <div class="fragment"><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160;{</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; <a class="code" href="classSVF_1_1FunExitICFGNode.html">FunExitICFGNode</a>* <a class="code" href="cJSON_8h.html#a1a175e87536301df98c805ac0636ad7c">b</a> = <a class="code" href="classSVF_1_1ICFG.html#a22d7f37a0cb2df90f73c1f2e3eaa71c6">getFunExitBlock</a>(fun);</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; <span class="keywordflow">if</span> (b == <span class="keyword">nullptr</span>)</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ICFG.html#a6b716225b38638d6a34703995b749ad2">addFunExitBlock</a>(fun);</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; <span class="keywordflow">return</span> <a class="code" href="cJSON_8h.html#a1a175e87536301df98c805ac0636ad7c">b</a>;</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160;}</div><div class="ttc" id="classSVF_1_1ICFG_html_a6b716225b38638d6a34703995b749ad2"><div class="ttname"><a href="classSVF_1_1ICFG.html#a6b716225b38638d6a34703995b749ad2">SVF::ICFG::addFunExitBlock</a></div><div class="ttdeci">FunExitICFGNode * addFunExitBlock(const SVFFunction *fun)</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00262">ICFG.h:262</a></div></div>
1313
1317
  <div class="ttc" id="cJSON_8h_html_a1a175e87536301df98c805ac0636ad7c"><div class="ttname"><a href="cJSON_8h.html#a1a175e87536301df98c805ac0636ad7c">b</a></div><div class="ttdeci">const cJSON *const b</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8h_source.html#l00255">cJSON.h:255</a></div></div>
1314
- <div class="ttc" id="classSVF_1_1ICFG_html_a22d7f37a0cb2df90f73c1f2e3eaa71c6"><div class="ttname"><a href="classSVF_1_1ICFG.html#a22d7f37a0cb2df90f73c1f2e3eaa71c6">SVF::ICFG::getFunExitBlock</a></div><div class="ttdeci">FunExitICFGNode * getFunExitBlock(const SVFFunction *fun)</div><div class="ttdoc">Get/Add a function exit node. </div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00254">ICFG.h:254</a></div></div>
1318
+ <div class="ttc" id="classSVF_1_1ICFG_html_a22d7f37a0cb2df90f73c1f2e3eaa71c6"><div class="ttname"><a href="classSVF_1_1ICFG.html#a22d7f37a0cb2df90f73c1f2e3eaa71c6">SVF::ICFG::getFunExitBlock</a></div><div class="ttdeci">FunExitICFGNode * getFunExitBlock(const SVFFunction *fun)</div><div class="ttdoc">Get/Add a function exit node. </div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00255">ICFG.h:255</a></div></div>
1315
1319
  <div class="ttc" id="classSVF_1_1FunExitICFGNode_html"><div class="ttname"><a href="classSVF_1_1FunExitICFGNode.html">SVF::FunExitICFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00308">ICFGNode.h:308</a></div></div>
1316
1320
  </div><!-- fragment -->
1317
1321
  </div>
@@ -1339,8 +1343,8 @@ Additional Inherited Members</h2></td></tr>
1339
1343
  </table>
1340
1344
  </div><div class="memdoc">
1341
1345
 
1342
- <p class="definition">Definition at line <a class="el" href="ICFG_8h_source.html#l00208">208</a> of file <a class="el" href="ICFG_8h_source.html">ICFG.h</a>.</p>
1343
- <div class="fragment"><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; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ICFG.html#a8e43b27d4484a4acb575e4c1c6c8fd02">globalBlockNode</a>;</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; }</div><div class="ttc" id="classSVF_1_1ICFG_html_a8e43b27d4484a4acb575e4c1c6c8fd02"><div class="ttname"><a href="classSVF_1_1ICFG.html#a8e43b27d4484a4acb575e4c1c6c8fd02">SVF::ICFG::globalBlockNode</a></div><div class="ttdeci">GlobalICFGNode * globalBlockNode</div><div class="ttdoc">unique basic block for all globals </div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00075">ICFG.h:75</a></div></div>
1346
+ <p class="definition">Definition at line <a class="el" href="ICFG_8h_source.html#l00209">209</a> of file <a class="el" href="ICFG_8h_source.html">ICFG.h</a>.</p>
1347
+ <div class="fragment"><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">return</span> <a class="code" href="classSVF_1_1ICFG.html#a8e43b27d4484a4acb575e4c1c6c8fd02">globalBlockNode</a>;</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; }</div><div class="ttc" id="classSVF_1_1ICFG_html_a8e43b27d4484a4acb575e4c1c6c8fd02"><div class="ttname"><a href="classSVF_1_1ICFG.html#a8e43b27d4484a4acb575e4c1c6c8fd02">SVF::ICFG::globalBlockNode</a></div><div class="ttdeci">GlobalICFGNode * globalBlockNode</div><div class="ttdoc">unique basic block for all globals </div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00075">ICFG.h:75</a></div></div>
1344
1348
  </div><!-- fragment -->
1345
1349
  </div>
1346
1350
  </div>
@@ -1382,7 +1386,7 @@ Additional Inherited Members</h2></td></tr>
1382
1386
  <p class="definition">Definition at line <a class="el" href="ICFG_8cpp_source.html#l00342">342</a> of file <a class="el" href="ICFG_8cpp_source.html">ICFG.cpp</a>.</p>
1383
1387
  <div class="fragment"><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160;{</div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160;</div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; <a class="code" href="classSVF_1_1ICFGEdge.html">ICFGEdge</a> * edge = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> counter = 0;</div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160; <span class="keywordflow">for</span> (ICFGEdge::ICFGEdgeSetTy::iterator iter = src-&gt;<a class="code" href="classSVF_1_1GenericNode.html#aa4f103330118c8976bf95e4bf53416eb">OutEdgeBegin</a>();</div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160; iter != src-&gt;<a class="code" href="classSVF_1_1GenericNode.html#a19a3366fd8a58290d0c740c46c3dcb3d">OutEdgeEnd</a>(); ++iter)</div><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">if</span> ((*iter)-&gt;getDstID() == dst-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>() &amp;&amp; (*iter)-&gt;getEdgeKind() == kind)</div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; {</div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; counter++;</div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160; edge = (*iter);</div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160; }</div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; }</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; assert(counter &lt;= 1 &amp;&amp; <span class="stringliteral">&quot;there&#39;s more than one edge between two ICFG nodes&quot;</span>);</div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160; <span class="keywordflow">return</span> edge;</div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160;</div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160;}</div><div class="ttc" id="classSVF_1_1ICFGEdge_html"><div class="ttname"><a href="classSVF_1_1ICFGEdge.html">SVF::ICFGEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGEdge_8h_source.html#l00044">ICFGEdge.h:44</a></div></div>
1384
1388
  <div class="ttc" id="classSVF_1_1GenericNode_html_aa4f103330118c8976bf95e4bf53416eb"><div class="ttname"><a href="classSVF_1_1GenericNode.html#aa4f103330118c8976bf95e4bf53416eb">SVF::GenericNode::OutEdgeBegin</a></div><div class="ttdeci">iterator OutEdgeBegin()</div><div class="ttdoc">iterators </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00206">GenericGraph.h:206</a></div></div>
1385
- <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="SVFBasicTypes_8h_source.html#l00085">SVFBasicTypes.h:85</a></div></div>
1389
+ <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="SVFBasicTypes_8h_source.html#l00081">SVFBasicTypes.h:81</a></div></div>
1386
1390
  <div class="ttc" id="classSVF_1_1GenericNode_html_ac3e55ef37aefb411ea4c87b1aa3b1895"><div class="ttname"><a href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">SVF::GenericNode::getId</a></div><div class="ttdeci">NodeID getId() const</div><div class="ttdoc">Get ID. </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00169">GenericGraph.h:169</a></div></div>
1387
1391
  <div class="ttc" id="classSVF_1_1GenericNode_html_a19a3366fd8a58290d0c740c46c3dcb3d"><div class="ttname"><a href="classSVF_1_1GenericNode.html#a19a3366fd8a58290d0c740c46c3dcb3d">SVF::GenericNode::OutEdgeEnd</a></div><div class="ttdeci">iterator OutEdgeEnd()</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00210">GenericGraph.h:210</a></div></div>
1388
1392
  </div><!-- fragment -->
@@ -1415,7 +1419,7 @@ Additional Inherited Members</h2></td></tr>
1415
1419
  <p>Get a <a class="el" href="classSVF_1_1ICFG.html">ICFG</a> node. </p>
1416
1420
 
1417
1421
  <p class="definition">Definition at line <a class="el" href="ICFG_8h_source.html#l00087">87</a> of file <a class="el" href="ICFG_8h_source.html">ICFG.h</a>.</p>
1418
- <div class="fragment"><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; {</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(<span class="keywordtype">id</span>);</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; }</div><div class="ttc" id="classSVF_1_1GenericGraph_html_a43c9c773bfa17abf481c33073e30d01b"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">SVF::GenericGraph::getGNode</a></div><div class="ttdeci">NodeType * getGNode(NodeID id) const</div><div class="ttdoc">Get a node. </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00391">GenericGraph.h:391</a></div></div>
1422
+ <div class="fragment"><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; {</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(<span class="keywordtype">id</span>);</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; }</div><div class="ttc" id="classSVF_1_1GenericGraph_html_a43c9c773bfa17abf481c33073e30d01b"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">SVF::GenericGraph::getGNode</a></div><div class="ttdeci">NodeType * getGNode(NodeID id) const</div><div class="ttdoc">Get a node. </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00393">GenericGraph.h:393</a></div></div>
1419
1423
  </div><!-- fragment -->
1420
1424
  </div>
1421
1425
  </div>
@@ -1473,8 +1477,8 @@ Additional Inherited Members</h2></td></tr>
1473
1477
 
1474
1478
  <p>Get/Add IntraBlock <a class="el" href="classSVF_1_1ICFGNode.html">ICFGNode</a>. </p>
1475
1479
 
1476
- <p class="definition">Definition at line <a class="el" href="ICFG_8h_source.html#l00222">222</a> of file <a class="el" href="ICFG_8h_source.html">ICFG.h</a>.</p>
1477
- <div class="fragment"><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; {</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; InstToBlockNodeMapTy::const_iterator it = <a class="code" href="classSVF_1_1ICFG.html#a23f905d849553d7ad652e9a8f1bfacd1">InstToBlockNodeMap</a>.find(inst);</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; <span class="keywordflow">if</span> (it == <a class="code" href="classSVF_1_1ICFG.html#a23f905d849553d7ad652e9a8f1bfacd1">InstToBlockNodeMap</a>.end())</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; <span class="keywordflow">return</span> it-&gt;second;</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; }</div><div class="ttc" id="classSVF_1_1ICFG_html_a23f905d849553d7ad652e9a8f1bfacd1"><div class="ttname"><a href="classSVF_1_1ICFG.html#a23f905d849553d7ad652e9a8f1bfacd1">SVF::ICFG::InstToBlockNodeMap</a></div><div class="ttdeci">InstToBlockNodeMapTy InstToBlockNodeMap</div><div class="ttdoc">map a basic block to its ICFGNode </div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00074">ICFG.h:74</a></div></div>
1480
+ <p class="definition">Definition at line <a class="el" href="ICFG_8h_source.html#l00223">223</a> of file <a class="el" href="ICFG_8h_source.html">ICFG.h</a>.</p>
1481
+ <div class="fragment"><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; {</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; InstToBlockNodeMapTy::const_iterator it = <a class="code" href="classSVF_1_1ICFG.html#a23f905d849553d7ad652e9a8f1bfacd1">InstToBlockNodeMap</a>.find(inst);</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; <span class="keywordflow">if</span> (it == <a class="code" href="classSVF_1_1ICFG.html#a23f905d849553d7ad652e9a8f1bfacd1">InstToBlockNodeMap</a>.end())</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; <span class="keywordflow">return</span> it-&gt;second;</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; }</div><div class="ttc" id="classSVF_1_1ICFG_html_a23f905d849553d7ad652e9a8f1bfacd1"><div class="ttname"><a href="classSVF_1_1ICFG.html#a23f905d849553d7ad652e9a8f1bfacd1">SVF::ICFG::InstToBlockNodeMap</a></div><div class="ttdeci">InstToBlockNodeMapTy InstToBlockNodeMap</div><div class="ttdoc">map a basic block to its ICFGNode </div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00074">ICFG.h:74</a></div></div>
1478
1482
  </div><!-- fragment -->
1479
1483
  </div>
1480
1484
  </div>
@@ -1495,9 +1499,9 @@ Additional Inherited Members</h2></td></tr>
1495
1499
  </div><div class="memdoc">
1496
1500
 
1497
1501
  <p class="definition">Definition at line <a class="el" href="ICFG_8cpp_source.html#l00260">260</a> of file <a class="el" href="ICFG_8cpp_source.html">ICFG.cpp</a>.</p>
1498
- <div class="fragment"><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160;{</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; <a class="code" href="classSVF_1_1IntraICFGNode.html">IntraICFGNode</a>* node = <a class="code" href="classSVF_1_1ICFG.html#aedb66c7897f1d73185979e1297d1976d">getIntraBlock</a>(inst);</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; <span class="keywordflow">if</span>(node==<span class="keyword">nullptr</span>)</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; node = <a class="code" href="classSVF_1_1ICFG.html#a6f673b42ff80bb9a97b4cc4dfea4101e">addIntraBlock</a>(inst);</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; <span class="keywordflow">return</span> node;</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160;}</div><div class="ttc" id="classSVF_1_1ICFG_html_a6f673b42ff80bb9a97b4cc4dfea4101e"><div class="ttname"><a href="classSVF_1_1ICFG.html#a6f673b42ff80bb9a97b4cc4dfea4101e">SVF::ICFG::addIntraBlock</a></div><div class="ttdeci">IntraICFGNode * addIntraBlock(const Instruction *inst)</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00229">ICFG.h:229</a></div></div>
1502
+ <div class="fragment"><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160;{</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; <a class="code" href="classSVF_1_1IntraICFGNode.html">IntraICFGNode</a>* node = <a class="code" href="classSVF_1_1ICFG.html#aedb66c7897f1d73185979e1297d1976d">getIntraBlock</a>(inst);</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; <span class="keywordflow">if</span>(node==<span class="keyword">nullptr</span>)</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; node = <a class="code" href="classSVF_1_1ICFG.html#a6f673b42ff80bb9a97b4cc4dfea4101e">addIntraBlock</a>(inst);</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; <span class="keywordflow">return</span> node;</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160;}</div><div class="ttc" id="classSVF_1_1ICFG_html_a6f673b42ff80bb9a97b4cc4dfea4101e"><div class="ttname"><a href="classSVF_1_1ICFG.html#a6f673b42ff80bb9a97b4cc4dfea4101e">SVF::ICFG::addIntraBlock</a></div><div class="ttdeci">IntraICFGNode * addIntraBlock(const Instruction *inst)</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00230">ICFG.h:230</a></div></div>
1499
1503
  <div class="ttc" id="classSVF_1_1IntraICFGNode_html"><div class="ttname"><a href="classSVF_1_1IntraICFGNode.html">SVF::IntraICFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00175">ICFGNode.h:175</a></div></div>
1500
- <div class="ttc" id="classSVF_1_1ICFG_html_aedb66c7897f1d73185979e1297d1976d"><div class="ttname"><a href="classSVF_1_1ICFG.html#aedb66c7897f1d73185979e1297d1976d">SVF::ICFG::getIntraBlock</a></div><div class="ttdeci">IntraICFGNode * getIntraBlock(const Instruction *inst)</div><div class="ttdoc">Get/Add IntraBlock ICFGNode. </div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00222">ICFG.h:222</a></div></div>
1504
+ <div class="ttc" id="classSVF_1_1ICFG_html_aedb66c7897f1d73185979e1297d1976d"><div class="ttname"><a href="classSVF_1_1ICFG.html#aedb66c7897f1d73185979e1297d1976d">SVF::ICFG::getIntraBlock</a></div><div class="ttdeci">IntraICFGNode * getIntraBlock(const Instruction *inst)</div><div class="ttdoc">Get/Add IntraBlock ICFGNode. </div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00223">ICFG.h:223</a></div></div>
1501
1505
  </div><!-- fragment -->
1502
1506
  </div>
1503
1507
  </div>
@@ -1527,8 +1531,8 @@ Additional Inherited Members</h2></td></tr>
1527
1531
 
1528
1532
  <p>Get/Add a return node. </p>
1529
1533
 
1530
- <p class="definition">Definition at line <a class="el" href="ICFG_8h_source.html#l00286">286</a> of file <a class="el" href="ICFG_8h_source.html">ICFG.h</a>.</p>
1531
- <div class="fragment"><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; {</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; CSToRetNodeMapTy::const_iterator it = <a class="code" href="classSVF_1_1ICFG.html#a0e43308038663c10667177238b23ab3e">CSToRetNodeMap</a>.find(cs);</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; <span class="keywordflow">if</span> (it == <a class="code" href="classSVF_1_1ICFG.html#a0e43308038663c10667177238b23ab3e">CSToRetNodeMap</a>.end())</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; <span class="keywordflow">return</span> it-&gt;second;</div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; }</div><div class="ttc" id="classSVF_1_1ICFG_html_a0e43308038663c10667177238b23ab3e"><div class="ttname"><a href="classSVF_1_1ICFG.html#a0e43308038663c10667177238b23ab3e">SVF::ICFG::CSToRetNodeMap</a></div><div class="ttdeci">CSToRetNodeMapTy CSToRetNodeMap</div><div class="ttdoc">map a callsite to its RetICFGNode </div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00073">ICFG.h:73</a></div></div>
1534
+ <p class="definition">Definition at line <a class="el" href="ICFG_8h_source.html#l00287">287</a> of file <a class="el" href="ICFG_8h_source.html">ICFG.h</a>.</p>
1535
+ <div class="fragment"><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; {</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; CSToRetNodeMapTy::const_iterator it = <a class="code" href="classSVF_1_1ICFG.html#a0e43308038663c10667177238b23ab3e">CSToRetNodeMap</a>.find(cs);</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; <span class="keywordflow">if</span> (it == <a class="code" href="classSVF_1_1ICFG.html#a0e43308038663c10667177238b23ab3e">CSToRetNodeMap</a>.end())</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; <span class="keywordflow">return</span> it-&gt;second;</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; }</div><div class="ttc" id="classSVF_1_1ICFG_html_a0e43308038663c10667177238b23ab3e"><div class="ttname"><a href="classSVF_1_1ICFG.html#a0e43308038663c10667177238b23ab3e">SVF::ICFG::CSToRetNodeMap</a></div><div class="ttdeci">CSToRetNodeMapTy CSToRetNodeMap</div><div class="ttdoc">map a callsite to its RetICFGNode </div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00073">ICFG.h:73</a></div></div>
1532
1536
  </div><!-- fragment -->
1533
1537
  </div>
1534
1538
  </div>
@@ -1550,9 +1554,9 @@ Additional Inherited Members</h2></td></tr>
1550
1554
 
1551
1555
  <p class="definition">Definition at line <a class="el" href="ICFG_8cpp_source.html#l00249">249</a> of file <a class="el" href="ICFG_8cpp_source.html">ICFG.cpp</a>.</p>
1552
1556
  <div class="fragment"><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160;{</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; assert(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a2e08ce822223842fa6a73fd659b1a526">SVFUtil::isCallSite</a>(inst) &amp;&amp; <span class="stringliteral">&quot;not a call instruction?&quot;</span>);</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; assert(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a8d8216a92140d982303f83ea424ddc91">SVFUtil::isNonInstricCallSite</a>(inst) &amp;&amp; <span class="stringliteral">&quot;associating an intrinsic debug instruction with an ICFGNode!&quot;</span>);</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; <a class="code" href="classSVF_1_1RetICFGNode.html">RetICFGNode</a>* node = <a class="code" href="classSVF_1_1ICFG.html#a3b59f9ba22e03d323bc2fa5928902243">getRetBlock</a>(inst);</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; <span class="keywordflow">if</span>(node==<span class="keyword">nullptr</span>)</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; node = <a class="code" href="classSVF_1_1ICFG.html#aae7bcc56ba04d08cc030f108b06299ae">addRetBlock</a>(inst);</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; assert (node!=<span class="keyword">nullptr</span> &amp;&amp; <span class="stringliteral">&quot;no RetICFGNode for this instruction?&quot;</span>);</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; <span class="keywordflow">return</span> node;</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160;}</div><div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a2e08ce822223842fa6a73fd659b1a526"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a2e08ce822223842fa6a73fd659b1a526">SVF::SVFUtil::isCallSite</a></div><div class="ttdeci">bool isCallSite(const Instruction *inst)</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#l00196">SVFUtil.h:196</a></div></div>
1553
- <div class="ttc" id="classSVF_1_1ICFG_html_a3b59f9ba22e03d323bc2fa5928902243"><div class="ttname"><a href="classSVF_1_1ICFG.html#a3b59f9ba22e03d323bc2fa5928902243">SVF::ICFG::getRetBlock</a></div><div class="ttdeci">RetICFGNode * getRetBlock(const Instruction *cs)</div><div class="ttdoc">Get/Add a return node. </div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00286">ICFG.h:286</a></div></div>
1557
+ <div class="ttc" id="classSVF_1_1ICFG_html_a3b59f9ba22e03d323bc2fa5928902243"><div class="ttname"><a href="classSVF_1_1ICFG.html#a3b59f9ba22e03d323bc2fa5928902243">SVF::ICFG::getRetBlock</a></div><div class="ttdeci">RetICFGNode * getRetBlock(const Instruction *cs)</div><div class="ttdoc">Get/Add a return node. </div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00287">ICFG.h:287</a></div></div>
1554
1558
  <div class="ttc" id="classSVF_1_1RetICFGNode_html"><div class="ttname"><a href="classSVF_1_1RetICFGNode.html">SVF::RetICFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00458">ICFGNode.h:458</a></div></div>
1555
- <div class="ttc" id="classSVF_1_1ICFG_html_aae7bcc56ba04d08cc030f108b06299ae"><div class="ttname"><a href="classSVF_1_1ICFG.html#aae7bcc56ba04d08cc030f108b06299ae">SVF::ICFG::addRetBlock</a></div><div class="ttdeci">RetICFGNode * addRetBlock(const Instruction *cs)</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00293">ICFG.h:293</a></div></div>
1559
+ <div class="ttc" id="classSVF_1_1ICFG_html_aae7bcc56ba04d08cc030f108b06299ae"><div class="ttname"><a href="classSVF_1_1ICFG.html#aae7bcc56ba04d08cc030f108b06299ae">SVF::ICFG::addRetBlock</a></div><div class="ttdeci">RetICFGNode * addRetBlock(const Instruction *cs)</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00294">ICFG.h:294</a></div></div>
1556
1560
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a8d8216a92140d982303f83ea424ddc91"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a8d8216a92140d982303f83ea424ddc91">SVF::SVFUtil::isNonInstricCallSite</a></div><div class="ttdeci">bool isNonInstricCallSite(const Instruction *inst)</div><div class="ttdoc">Whether an instruction is a callsite in the application code, excluding llvm intrinsic calls...</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00209">SVFUtil.h:209</a></div></div>
1557
1561
  </div><!-- fragment -->
1558
1562
  </div>
@@ -1615,7 +1619,7 @@ Additional Inherited Members</h2></td></tr>
1615
1619
  <p>Whether has the <a class="el" href="classSVF_1_1ICFGNode.html">ICFGNode</a>. </p>
1616
1620
 
1617
1621
  <p class="definition">Definition at line <a class="el" href="ICFG_8h_source.html#l00093">93</a> of file <a class="el" href="ICFG_8h_source.html">ICFG.h</a>.</p>
1618
- <div class="fragment"><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; {</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1GenericGraph.html#a6885064afa211958af7b73f0233284e5">hasGNode</a>(<span class="keywordtype">id</span>);</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; }</div><div class="ttc" id="classSVF_1_1GenericGraph_html_a6885064afa211958af7b73f0233284e5"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#a6885064afa211958af7b73f0233284e5">SVF::GenericGraph::hasGNode</a></div><div class="ttdeci">bool hasGNode(NodeID id) const</div><div class="ttdoc">Has a node. </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00399">GenericGraph.h:399</a></div></div>
1622
+ <div class="fragment"><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; {</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1GenericGraph.html#a6885064afa211958af7b73f0233284e5">hasGNode</a>(<span class="keywordtype">id</span>);</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; }</div><div class="ttc" id="classSVF_1_1GenericGraph_html_a6885064afa211958af7b73f0233284e5"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#a6885064afa211958af7b73f0233284e5">SVF::GenericGraph::hasGNode</a></div><div class="ttdeci">bool hasGNode(NodeID id) const</div><div class="ttdoc">Has a node. </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00401">GenericGraph.h:401</a></div></div>
1619
1623
  </div><!-- fragment -->
1620
1624
  </div>
1621
1625
  </div>
@@ -1861,7 +1865,7 @@ Additional Inherited Members</h2></td></tr>
1861
1865
  <p>Remove a <a class="el" href="classSVF_1_1ICFGNode.html">ICFGNode</a>. </p>
1862
1866
 
1863
1867
  <p class="definition">Definition at line <a class="el" href="ICFG_8h_source.html#l00153">153</a> of file <a class="el" href="ICFG_8h_source.html">ICFG.h</a>.</p>
1864
- <div class="fragment"><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; {</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <a class="code" href="classSVF_1_1GenericGraph.html#a1817b65e76052f11e36a67d6b9efd915">removeGNode</a>(node);</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; }</div><div class="ttc" id="classSVF_1_1GenericGraph_html_a1817b65e76052f11e36a67d6b9efd915"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#a1817b65e76052f11e36a67d6b9efd915">SVF::GenericGraph::removeGNode</a></div><div class="ttdeci">void removeGNode(NodeType *node)</div><div class="ttdoc">Delete a node. </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00406">GenericGraph.h:406</a></div></div>
1868
+ <div class="fragment"><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; {</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <a class="code" href="classSVF_1_1GenericGraph.html#a1817b65e76052f11e36a67d6b9efd915">removeGNode</a>(node);</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; }</div><div class="ttc" id="classSVF_1_1GenericGraph_html_a1817b65e76052f11e36a67d6b9efd915"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#a1817b65e76052f11e36a67d6b9efd915">SVF::GenericGraph::removeGNode</a></div><div class="ttdeci">void removeGNode(NodeType *node)</div><div class="ttdoc">Delete a node. </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00408">GenericGraph.h:408</a></div></div>
1865
1869
  </div><!-- fragment -->
1866
1870
  </div>
1867
1871
  </div>
@@ -1886,26 +1890,26 @@ Additional Inherited Members</h2></td></tr>
1886
1890
  <p>if this is an external function (no function body), connect calleeEntryNode to calleeExitNode</p>
1887
1891
  <p>Remove callBlockNode to retBlockNode intraICFGEdge since we found at least one inter procedural edge </p>
1888
1892
 
1889
- <p class="definition">Definition at line <a class="el" href="ICFG_8cpp_source.html#l00454">454</a> of file <a class="el" href="ICFG_8cpp_source.html">ICFG.cpp</a>.</p>
1890
- <div class="fragment"><div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160;{</div><div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160; PTACallGraph::CallEdgeMap::const_iterator iter = callgraph-&gt;<a class="code" href="classSVF_1_1PTACallGraph.html#ad49fa2a288945f6910deb11acdf6a42d">getIndCallMap</a>().begin();</div><div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160; PTACallGraph::CallEdgeMap::const_iterator eiter = callgraph-&gt;<a class="code" href="classSVF_1_1PTACallGraph.html#ad49fa2a288945f6910deb11acdf6a42d">getIndCallMap</a>().end();</div><div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160; <span class="keywordflow">for</span> (; iter != eiter; iter++)</div><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="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* callBlock = iter-&gt;first;</div><div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a>* cs = callBlock-&gt;<a class="code" href="classSVF_1_1CallICFGNode.html#a674753d5ca0fbe28674acb25291f2bcf">getCallSite</a>();</div><div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160; assert(callBlock-&gt;<a class="code" href="classSVF_1_1CallICFGNode.html#aa11226a2e4fa6a7b1d78006cc8ca0518">isIndirectCall</a>() &amp;&amp; <span class="stringliteral">&quot;this is not an indirect call?&quot;</span>);</div><div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1PTACallGraph.html#a5f5a5ec7e707a21994d301cc07d32a5a">PTACallGraph::FunctionSet</a> &amp; functions = iter-&gt;second;</div><div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160; <span class="keywordflow">for</span> (PTACallGraph::FunctionSet::const_iterator func_iter = functions.begin(); func_iter != functions.end(); func_iter++)</div><div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160; {</div><div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* callee = *func_iter;</div><div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160; <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* callBlockNode = <a class="code" href="classSVF_1_1ICFG.html#adc66b547720b9271e6805edea0b9d01f">getCallICFGNode</a>(cs);</div><div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160; <a class="code" href="classSVF_1_1RetICFGNode.html">RetICFGNode</a>* retBlockNode = <a class="code" href="classSVF_1_1ICFG.html#a66cb50d8c176f800f06d9cb8924eb896">getRetICFGNode</a>(cs);</div><div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF_1_1SVFUtil.html#a22ef185e767ff76c098e75126c885400">isExtCall</a>(callee))</div><div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160; <a class="code" href="classSVF_1_1ICFG.html#adafd8bbb91507a9a78a3f16305812afc">addIntraEdge</a>(callBlockNode, retBlockNode);</div><div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160; {</div><div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160; <a class="code" href="classSVF_1_1FunEntryICFGNode.html">FunEntryICFGNode</a>* calleeEntryNode = <a class="code" href="classSVF_1_1ICFG.html#acc261924103bd0c357acd3acfa6cf38a">getFunEntryBlock</a>(callee);</div><div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160; <a class="code" href="classSVF_1_1FunExitICFGNode.html">FunExitICFGNode</a>* calleeExitNode = <a class="code" href="classSVF_1_1ICFG.html#a22d7f37a0cb2df90f73c1f2e3eaa71c6">getFunExitBlock</a>(callee);</div><div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1ICFGEdge.html">ICFGEdge</a>* callEdge = <a class="code" href="classSVF_1_1ICFG.html#abde033687317d47909ee45db7501723f">addCallEdge</a>(callBlockNode, calleeEntryNode, cs))</div><div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160; {</div><div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a> *stmt : callBlockNode-&gt;<a class="code" href="classSVF_1_1ICFGNode.html#a6c68f52dd90728073fb79141df9b0661">getSVFStmts</a>())</div><div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160; {</div><div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160; <span class="keywordflow">if</span>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallPE.html">CallPE</a> *callPE = SVFUtil::dyn_cast&lt;CallPE&gt;(stmt))</div><div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160; {</div><div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160; <span class="keywordflow">if</span>(callPE-&gt;getFunEntryICFGNode() == calleeEntryNode)</div><div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160; SVFUtil::cast&lt;CallCFGEdge&gt;(callEdge)-&gt;addCallPE(callPE);</div><div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160; }</div><div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160; }</div><div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160; }</div><div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1ICFGEdge.html">ICFGEdge</a>* retEdge = <a class="code" href="classSVF_1_1ICFG.html#a4a44849b596c89ab14d2e5f18366e848">addRetEdge</a>(calleeExitNode, retBlockNode, cs))</div><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">for</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a> *stmt : retBlockNode-&gt;<a class="code" href="classSVF_1_1ICFGNode.html#a6c68f52dd90728073fb79141df9b0661">getSVFStmts</a>())</div><div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160; {</div><div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160; <span class="keywordflow">if</span>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1RetPE.html">RetPE</a> *retPE = SVFUtil::dyn_cast&lt;RetPE&gt;(stmt))</div><div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160; {</div><div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160; <span class="keywordflow">if</span>(retPE-&gt;getFunExitICFGNode() == calleeExitNode)</div><div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160; SVFUtil::cast&lt;RetCFGEdge&gt;(retEdge)-&gt;addRetPE(retPE);</div><div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160; }</div><div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160; }</div><div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160; }</div><div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160;</div><div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1ICFGEdge.html">ICFGEdge</a>* edge = <a class="code" href="classSVF_1_1ICFG.html#aa662baae5682ef6ec5084fa4147c9709">hasIntraICFGEdge</a>(callBlockNode,retBlockNode, <a class="code" href="classSVF_1_1ICFGEdge.html#a395c34788e98950bc43e8cb44313e429acb8fba7c61b08ec952f1b65643d7a84b">ICFGEdge::IntraCF</a>))</div><div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160; <a class="code" href="classSVF_1_1ICFG.html#a534625b10673efe5b0f344bfebf9b3cf">removeICFGEdge</a>(edge);</div><div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160; }</div><div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160;</div><div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160; }</div><div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160; }</div><div class="line"><a name="l00506"></a><span class="lineno"> 506</span>&#160; <span class="comment">// dump ICFG</span></div><div class="line"><a name="l00507"></a><span class="lineno"> 507</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Options.html#aea29a835c54fab800117e57de00e0b1e">Options::DumpICFG</a>)</div><div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160; {</div><div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160; <a class="code" href="classSVF_1_1ICFG.html#a999956500bbd605326531480546db9ba">dump</a>(<span class="stringliteral">&quot;icfg_final&quot;</span>);</div><div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160; }</div><div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160;}</div><div class="ttc" id="classSVF_1_1ICFG_html_abde033687317d47909ee45db7501723f"><div class="ttname"><a href="classSVF_1_1ICFG.html#abde033687317d47909ee45db7501723f">SVF::ICFG::addCallEdge</a></div><div class="ttdeci">ICFGEdge * addCallEdge(ICFGNode *srcNode, ICFGNode *dstNode, const Instruction *cs)</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#l00403">ICFG.cpp:403</a></div></div>
1893
+ <p class="definition">Definition at line <a class="el" href="ICFG_8cpp_source.html#l00458">458</a> of file <a class="el" href="ICFG_8cpp_source.html">ICFG.cpp</a>.</p>
1894
+ <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; PTACallGraph::CallEdgeMap::const_iterator iter = callgraph-&gt;<a class="code" href="classSVF_1_1PTACallGraph.html#ad49fa2a288945f6910deb11acdf6a42d">getIndCallMap</a>().begin();</div><div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160; PTACallGraph::CallEdgeMap::const_iterator eiter = callgraph-&gt;<a class="code" href="classSVF_1_1PTACallGraph.html#ad49fa2a288945f6910deb11acdf6a42d">getIndCallMap</a>().end();</div><div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160; <span class="keywordflow">for</span> (; iter != eiter; iter++)</div><div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160; {</div><div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* callBlock = iter-&gt;first;</div><div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a>* cs = callBlock-&gt;<a class="code" href="classSVF_1_1CallICFGNode.html#a674753d5ca0fbe28674acb25291f2bcf">getCallSite</a>();</div><div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160; assert(callBlock-&gt;<a class="code" href="classSVF_1_1CallICFGNode.html#aa11226a2e4fa6a7b1d78006cc8ca0518">isIndirectCall</a>() &amp;&amp; <span class="stringliteral">&quot;this is not an indirect call?&quot;</span>);</div><div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1PTACallGraph.html#a5f5a5ec7e707a21994d301cc07d32a5a">PTACallGraph::FunctionSet</a> &amp; functions = iter-&gt;second;</div><div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160; <span class="keywordflow">for</span> (PTACallGraph::FunctionSet::const_iterator func_iter = functions.begin(); func_iter != functions.end(); func_iter++)</div><div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160; {</div><div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* callee = *func_iter;</div><div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160; <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* callBlockNode = <a class="code" href="classSVF_1_1ICFG.html#adc66b547720b9271e6805edea0b9d01f">getCallICFGNode</a>(cs);</div><div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160; <a class="code" href="classSVF_1_1RetICFGNode.html">RetICFGNode</a>* retBlockNode = <a class="code" href="classSVF_1_1ICFG.html#a66cb50d8c176f800f06d9cb8924eb896">getRetICFGNode</a>(cs);</div><div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF_1_1SVFUtil.html#a22ef185e767ff76c098e75126c885400">isExtCall</a>(callee))</div><div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160; <a class="code" href="classSVF_1_1ICFG.html#adafd8bbb91507a9a78a3f16305812afc">addIntraEdge</a>(callBlockNode, retBlockNode);</div><div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160; {</div><div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160; <a class="code" href="classSVF_1_1FunEntryICFGNode.html">FunEntryICFGNode</a>* calleeEntryNode = <a class="code" href="classSVF_1_1ICFG.html#acc261924103bd0c357acd3acfa6cf38a">getFunEntryBlock</a>(callee);</div><div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160; <a class="code" href="classSVF_1_1FunExitICFGNode.html">FunExitICFGNode</a>* calleeExitNode = <a class="code" href="classSVF_1_1ICFG.html#a22d7f37a0cb2df90f73c1f2e3eaa71c6">getFunExitBlock</a>(callee);</div><div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1ICFGEdge.html">ICFGEdge</a>* callEdge = <a class="code" href="classSVF_1_1ICFG.html#abde033687317d47909ee45db7501723f">addCallEdge</a>(callBlockNode, calleeEntryNode, cs))</div><div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160; {</div><div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a> *stmt : callBlockNode-&gt;<a class="code" href="classSVF_1_1ICFGNode.html#a6c68f52dd90728073fb79141df9b0661">getSVFStmts</a>())</div><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">if</span>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallPE.html">CallPE</a> *callPE = SVFUtil::dyn_cast&lt;CallPE&gt;(stmt))</div><div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160; {</div><div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160; <span class="keywordflow">if</span>(callPE-&gt;getFunEntryICFGNode() == calleeEntryNode)</div><div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160; SVFUtil::cast&lt;CallCFGEdge&gt;(callEdge)-&gt;addCallPE(callPE);</div><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; }</div><div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160; }</div><div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1ICFGEdge.html">ICFGEdge</a>* retEdge = <a class="code" href="classSVF_1_1ICFG.html#a4a44849b596c89ab14d2e5f18366e848">addRetEdge</a>(calleeExitNode, retBlockNode, cs))</div><div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160; {</div><div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a> *stmt : retBlockNode-&gt;<a class="code" href="classSVF_1_1ICFGNode.html#a6c68f52dd90728073fb79141df9b0661">getSVFStmts</a>())</div><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="keywordflow">if</span>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1RetPE.html">RetPE</a> *retPE = SVFUtil::dyn_cast&lt;RetPE&gt;(stmt))</div><div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160; {</div><div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160; <span class="keywordflow">if</span>(retPE-&gt;getFunExitICFGNode() == calleeExitNode)</div><div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160; SVFUtil::cast&lt;RetCFGEdge&gt;(retEdge)-&gt;addRetPE(retPE);</div><div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160; }</div><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; }</div><div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160;</div><div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1ICFGEdge.html">ICFGEdge</a>* edge = <a class="code" href="classSVF_1_1ICFG.html#aa662baae5682ef6ec5084fa4147c9709">hasIntraICFGEdge</a>(callBlockNode,retBlockNode, <a class="code" href="classSVF_1_1ICFGEdge.html#a395c34788e98950bc43e8cb44313e429acb8fba7c61b08ec952f1b65643d7a84b">ICFGEdge::IntraCF</a>))</div><div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160; <a class="code" href="classSVF_1_1ICFG.html#a534625b10673efe5b0f344bfebf9b3cf">removeICFGEdge</a>(edge);</div><div class="line"><a name="l00506"></a><span class="lineno"> 506</span>&#160; }</div><div class="line"><a name="l00507"></a><span class="lineno"> 507</span>&#160;</div><div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160; }</div><div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160; }</div><div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160; <span class="comment">// dump ICFG</span></div><div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Options.html#aea29a835c54fab800117e57de00e0b1e">Options::DumpICFG</a>)</div><div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160; {</div><div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160; <a class="code" href="classSVF_1_1ICFG.html#a999956500bbd605326531480546db9ba">dump</a>(<span class="stringliteral">&quot;icfg_final&quot;</span>);</div><div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160; }</div><div class="line"><a name="l00515"></a><span class="lineno"> 515</span>&#160;}</div><div class="ttc" id="classSVF_1_1ICFG_html_abde033687317d47909ee45db7501723f"><div class="ttname"><a href="classSVF_1_1ICFG.html#abde033687317d47909ee45db7501723f">SVF::ICFG::addCallEdge</a></div><div class="ttdeci">ICFGEdge * addCallEdge(ICFGNode *srcNode, ICFGNode *dstNode, const Instruction *cs)</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#l00405">ICFG.cpp:405</a></div></div>
1891
1895
  <div class="ttc" id="classSVF_1_1ICFGEdge_html"><div class="ttname"><a href="classSVF_1_1ICFGEdge.html">SVF::ICFGEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGEdge_8h_source.html#l00044">ICFGEdge.h:44</a></div></div>
1892
1896
  <div class="ttc" id="classSVF_1_1RetPE_html"><div class="ttname"><a href="classSVF_1_1RetPE.html">SVF::RetPE</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00540">SVFStatements.h:540</a></div></div>
1893
1897
  <div class="ttc" id="classSVF_1_1PTACallGraph_html_ad49fa2a288945f6910deb11acdf6a42d"><div class="ttname"><a href="classSVF_1_1PTACallGraph.html#ad49fa2a288945f6910deb11acdf6a42d">SVF::PTACallGraph::getIndCallMap</a></div><div class="ttdeci">CallEdgeMap &amp; getIndCallMap()</div><div class="ttdoc">Get callees from an indirect callsite. </div><div class="ttdef"><b>Definition:</b> <a href="PTACallGraph_8h_source.html#l00280">PTACallGraph.h:280</a></div></div>
1894
1898
  <div class="ttc" id="classSVF_1_1PTACallGraph_html_a5f5a5ec7e707a21994d301cc07d32a5a"><div class="ttname"><a href="classSVF_1_1PTACallGraph.html#a5f5a5ec7e707a21994d301cc07d32a5a">SVF::PTACallGraph::FunctionSet</a></div><div class="ttdeci">Set&lt; const SVFFunction * &gt; FunctionSet</div><div class="ttdef"><b>Definition:</b> <a href="PTACallGraph_8h_source.html#l00228">PTACallGraph.h:228</a></div></div>
1895
- <div class="ttc" id="classSVF_1_1SVFFunction_html"><div class="ttname"><a href="classSVF_1_1SVFFunction.html">SVF::SVFFunction</a></div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00114">BasicTypes.h:114</a></div></div>
1899
+ <div class="ttc" id="classSVF_1_1SVFFunction_html"><div class="ttname"><a href="classSVF_1_1SVFFunction.html">SVF::SVFFunction</a></div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00093">BasicTypes.h:93</a></div></div>
1896
1900
  <div class="ttc" id="classSVF_1_1ICFG_html_a66cb50d8c176f800f06d9cb8924eb896"><div class="ttname"><a href="classSVF_1_1ICFG.html#a66cb50d8c176f800f06d9cb8924eb896">SVF::ICFG::getRetICFGNode</a></div><div class="ttdeci">RetICFGNode * getRetICFGNode(const Instruction *inst)</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#l00249">ICFG.cpp:249</a></div></div>
1897
1901
  <div class="ttc" id="classSVF_1_1RetICFGNode_html"><div class="ttname"><a href="classSVF_1_1RetICFGNode.html">SVF::RetICFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00458">ICFGNode.h:458</a></div></div>
1898
1902
  <div class="ttc" id="classSVF_1_1CallPE_html"><div class="ttname"><a href="classSVF_1_1CallPE.html">SVF::CallPE</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00483">SVFStatements.h:483</a></div></div>
1899
1903
  <div class="ttc" id="classSVF_1_1ICFG_html_adc66b547720b9271e6805edea0b9d01f"><div class="ttname"><a href="classSVF_1_1ICFG.html#adc66b547720b9271e6805edea0b9d01f">SVF::ICFG::getCallICFGNode</a></div><div class="ttdeci">CallICFGNode * getCallICFGNode(const Instruction *inst)</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#l00236">ICFG.cpp:236</a></div></div>
1900
1904
  <div class="ttc" id="classSVF_1_1FunEntryICFGNode_html"><div class="ttname"><a href="classSVF_1_1FunEntryICFGNode.html">SVF::FunEntryICFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00251">ICFGNode.h:251</a></div></div>
1901
- <div class="ttc" id="classSVF_1_1ICFG_html_acc261924103bd0c357acd3acfa6cf38a"><div class="ttname"><a href="classSVF_1_1ICFG.html#acc261924103bd0c357acd3acfa6cf38a">SVF::ICFG::getFunEntryBlock</a></div><div class="ttdeci">FunEntryICFGNode * getFunEntryBlock(const SVFFunction *fun)</div><div class="ttdoc">Get/Add a function entry node. </div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00238">ICFG.h:238</a></div></div>
1905
+ <div class="ttc" id="classSVF_1_1ICFG_html_acc261924103bd0c357acd3acfa6cf38a"><div class="ttname"><a href="classSVF_1_1ICFG.html#acc261924103bd0c357acd3acfa6cf38a">SVF::ICFG::getFunEntryBlock</a></div><div class="ttdeci">FunEntryICFGNode * getFunEntryBlock(const SVFFunction *fun)</div><div class="ttdoc">Get/Add a function entry node. </div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00239">ICFG.h:239</a></div></div>
1902
1906
  <div class="ttc" id="classSVF_1_1ICFG_html_a534625b10673efe5b0f344bfebf9b3cf"><div class="ttname"><a href="classSVF_1_1ICFG.html#a534625b10673efe5b0f344bfebf9b3cf">SVF::ICFG::removeICFGEdge</a></div><div class="ttdeci">void removeICFGEdge(ICFGEdge *edge)</div><div class="ttdoc">Remove a SVFG edge. </div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00146">ICFG.h:146</a></div></div>
1903
- <div class="ttc" id="namespaceSVF_html_a7875172ff434b2210eea7cecfbbd959e"><div class="ttname"><a href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">SVF::Instruction</a></div><div class="ttdeci">llvm::Instruction Instruction</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00072">BasicTypes.h:72</a></div></div>
1907
+ <div class="ttc" id="namespaceSVF_html_a7875172ff434b2210eea7cecfbbd959e"><div class="ttname"><a href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">SVF::Instruction</a></div><div class="ttdeci">llvm::Instruction Instruction</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00051">BasicTypes.h:51</a></div></div>
1904
1908
  <div class="ttc" id="classSVF_1_1CallICFGNode_html_aa11226a2e4fa6a7b1d78006cc8ca0518"><div class="ttname"><a href="classSVF_1_1CallICFGNode.html#aa11226a2e4fa6a7b1d78006cc8ca0518">SVF::CallICFGNode::isIndirectCall</a></div><div class="ttdeci">bool isIndirectCall() const</div><div class="ttdoc">Return true if this is an indirect call. </div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00411">ICFGNode.h:411</a></div></div>
1905
- <div class="ttc" id="classSVF_1_1ICFG_html_a4a44849b596c89ab14d2e5f18366e848"><div class="ttname"><a href="classSVF_1_1ICFG.html#a4a44849b596c89ab14d2e5f18366e848">SVF::ICFG::addRetEdge</a></div><div class="ttdeci">ICFGEdge * addRetEdge(ICFGNode *srcNode, ICFGNode *dstNode, const Instruction *cs)</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#l00420">ICFG.cpp:420</a></div></div>
1909
+ <div class="ttc" id="classSVF_1_1ICFG_html_a4a44849b596c89ab14d2e5f18366e848"><div class="ttname"><a href="classSVF_1_1ICFG.html#a4a44849b596c89ab14d2e5f18366e848">SVF::ICFG::addRetEdge</a></div><div class="ttdeci">ICFGEdge * addRetEdge(ICFGNode *srcNode, ICFGNode *dstNode, const Instruction *cs)</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#l00423">ICFG.cpp:423</a></div></div>
1906
1910
  <div class="ttc" id="classSVF_1_1ICFGEdge_html_a395c34788e98950bc43e8cb44313e429acb8fba7c61b08ec952f1b65643d7a84b"><div class="ttname"><a href="classSVF_1_1ICFGEdge.html#a395c34788e98950bc43e8cb44313e429acb8fba7c61b08ec952f1b65643d7a84b">SVF::ICFGEdge::IntraCF</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGEdge_8h_source.html#l00053">ICFGEdge.h:53</a></div></div>
1907
- <div class="ttc" id="classSVF_1_1ICFG_html_a22d7f37a0cb2df90f73c1f2e3eaa71c6"><div class="ttname"><a href="classSVF_1_1ICFG.html#a22d7f37a0cb2df90f73c1f2e3eaa71c6">SVF::ICFG::getFunExitBlock</a></div><div class="ttdeci">FunExitICFGNode * getFunExitBlock(const SVFFunction *fun)</div><div class="ttdoc">Get/Add a function exit node. </div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00254">ICFG.h:254</a></div></div>
1908
- <div class="ttc" id="classSVF_1_1ICFG_html_a999956500bbd605326531480546db9ba"><div class="ttname"><a href="classSVF_1_1ICFG.html#a999956500bbd605326531480546db9ba">SVF::ICFG::dump</a></div><div class="ttdeci">void dump(const std::string &amp;file, bool simple=false)</div><div class="ttdoc">Dump graph into dot file. </div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#l00438">ICFG.cpp:438</a></div></div>
1911
+ <div class="ttc" id="classSVF_1_1ICFG_html_a22d7f37a0cb2df90f73c1f2e3eaa71c6"><div class="ttname"><a href="classSVF_1_1ICFG.html#a22d7f37a0cb2df90f73c1f2e3eaa71c6">SVF::ICFG::getFunExitBlock</a></div><div class="ttdeci">FunExitICFGNode * getFunExitBlock(const SVFFunction *fun)</div><div class="ttdoc">Get/Add a function exit node. </div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00255">ICFG.h:255</a></div></div>
1912
+ <div class="ttc" id="classSVF_1_1ICFG_html_a999956500bbd605326531480546db9ba"><div class="ttname"><a href="classSVF_1_1ICFG.html#a999956500bbd605326531480546db9ba">SVF::ICFG::dump</a></div><div class="ttdeci">void dump(const std::string &amp;file, bool simple=false)</div><div class="ttdoc">Dump graph into dot file. </div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#l00442">ICFG.cpp:442</a></div></div>
1909
1913
  <div class="ttc" id="classSVF_1_1CallICFGNode_html_a674753d5ca0fbe28674acb25291f2bcf"><div class="ttname"><a href="classSVF_1_1CallICFGNode.html#a674753d5ca0fbe28674acb25291f2bcf">SVF::CallICFGNode::getCallSite</a></div><div class="ttdeci">const Instruction * getCallSite() const</div><div class="ttdoc">Return callsite. </div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00380">ICFGNode.h:380</a></div></div>
1910
1914
  <div class="ttc" id="classSVF_1_1CallICFGNode_html"><div class="ttname"><a href="classSVF_1_1CallICFGNode.html">SVF::CallICFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00363">ICFGNode.h:363</a></div></div>
1911
1915
  <div class="ttc" id="classSVF_1_1Options_html_aea29a835c54fab800117e57de00e0b1e"><div class="ttname"><a href="classSVF_1_1Options.html#aea29a835c54fab800117e57de00e0b1e">SVF::Options::DumpICFG</a></div><div class="ttdeci">static const llvm::cl::opt&lt; bool &gt; DumpICFG</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00135">Options.h:135</a></div></div>
@@ -1936,8 +1940,8 @@ Additional Inherited Members</h2></td></tr>
1936
1940
  <p>View graph from the debugger. </p>
1937
1941
  <p>View <a class="el" href="classSVF_1_1ICFG.html">ICFG</a> </p>
1938
1942
 
1939
- <p class="definition">Definition at line <a class="el" href="ICFG_8cpp_source.html#l00446">446</a> of file <a class="el" href="ICFG_8cpp_source.html">ICFG.cpp</a>.</p>
1940
- <div class="fragment"><div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160;{</div><div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160; llvm::ViewGraph(<span class="keyword">this</span>, <span class="stringliteral">&quot;Interprocedural Control-Flow Graph&quot;</span>);</div><div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160;}</div></div><!-- fragment -->
1943
+ <p class="definition">Definition at line <a class="el" href="ICFG_8cpp_source.html#l00450">450</a> of file <a class="el" href="ICFG_8cpp_source.html">ICFG.cpp</a>.</p>
1944
+ <div class="fragment"><div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160;{</div><div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160; llvm::ViewGraph(<span class="keyword">this</span>, <span class="stringliteral">&quot;Interprocedural Control-Flow Graph&quot;</span>);</div><div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160;}</div></div><!-- fragment -->
1941
1945
  </div>
1942
1946
  </div>
1943
1947
  <h2 class="groupheader">Friends And Related Function Documentation</h2>