svf-tools 1.0.342 → 1.0.346

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 (420) hide show
  1. package/SVF-doxygen/html/html/AndersenSCD_8cpp_source.html +2 -2
  2. package/SVF-doxygen/html/html/Andersen_8cpp_source.html +8 -8
  3. package/SVF-doxygen/html/html/CallGraphBuilder_8cpp_source.html +9 -9
  4. package/SVF-doxygen/html/html/ConsG_8h_source.html +2 -2
  5. package/SVF-doxygen/html/html/ContextDDA_8cpp_source.html +6 -6
  6. package/SVF-doxygen/html/html/ContextDDA_8h_source.html +7 -7
  7. package/SVF-doxygen/html/html/DDAClient_8cpp_source.html +5 -5
  8. package/SVF-doxygen/html/html/DDAClient_8h_source.html +3 -3
  9. package/SVF-doxygen/html/html/DDAVFSolver_8h_source.html +7 -7
  10. package/SVF-doxygen/html/html/DoubleFreeChecker_8cpp_source.html +3 -3
  11. package/SVF-doxygen/html/html/FSMPTA_8h_source.html +3 -3
  12. package/SVF-doxygen/html/html/FileChecker_8cpp_source.html +3 -3
  13. package/SVF-doxygen/html/html/FlowDDA_8cpp_source.html +3 -3
  14. package/SVF-doxygen/html/html/FlowDDA_8h_source.html +7 -7
  15. package/SVF-doxygen/html/html/FlowSensitive_8cpp_source.html +8 -8
  16. package/SVF-doxygen/html/html/FlowSensitive_8h_source.html +2 -2
  17. package/SVF-doxygen/html/html/Graph2Json_8cpp_source.html +6 -6
  18. package/SVF-doxygen/html/html/ICFGBuilder_8cpp_source.html +11 -11
  19. package/SVF-doxygen/html/html/ICFGBuilder_8h_source.html +15 -15
  20. package/SVF-doxygen/html/html/ICFGNode_8h.html +7 -7
  21. package/SVF-doxygen/html/html/ICFGNode_8h_source.html +69 -69
  22. package/SVF-doxygen/html/html/ICFGStat_8h_source.html +1 -1
  23. package/SVF-doxygen/html/html/ICFG_8cpp_source.html +45 -44
  24. package/SVF-doxygen/html/html/ICFG_8h_source.html +34 -34
  25. package/SVF-doxygen/html/html/LeakChecker_8cpp_source.html +9 -9
  26. package/SVF-doxygen/html/html/LeakChecker_8h_source.html +6 -6
  27. package/SVF-doxygen/html/html/LockAnalysis_8cpp_source.html +2 -2
  28. package/SVF-doxygen/html/html/LockResultValidator_8h_source.html +5 -5
  29. package/SVF-doxygen/html/html/MHP_8cpp_source.html +9 -9
  30. package/SVF-doxygen/html/html/MHP_8h_source.html +6 -6
  31. package/SVF-doxygen/html/html/MSSAMuChi_8h_source.html +9 -9
  32. package/SVF-doxygen/html/html/MTAResultValidator_8cpp_source.html +2 -2
  33. package/SVF-doxygen/html/html/MTAStat_8cpp_source.html +5 -5
  34. package/SVF-doxygen/html/html/MemRegion_8cpp_source.html +26 -26
  35. package/SVF-doxygen/html/html/MemRegion_8h_source.html +18 -18
  36. package/SVF-doxygen/html/html/MemSSA_8cpp_source.html +9 -9
  37. package/SVF-doxygen/html/html/MemSSA_8h_source.html +12 -12
  38. package/SVF-doxygen/html/html/NodeIDAllocator_8cpp_source.html +41 -41
  39. package/SVF-doxygen/html/html/NodeIDAllocator_8h_source.html +47 -46
  40. package/SVF-doxygen/html/html/Options_8cpp_source.html +1 -1
  41. package/SVF-doxygen/html/html/PCG_8cpp_source.html +2 -2
  42. package/SVF-doxygen/html/html/PCG_8h_source.html +4 -4
  43. package/SVF-doxygen/html/html/PTACallGraph_8cpp_source.html +10 -10
  44. package/SVF-doxygen/html/html/PTACallGraph_8h_source.html +17 -17
  45. package/SVF-doxygen/html/html/PointerAnalysisImpl_8cpp_source.html +6 -6
  46. package/SVF-doxygen/html/html/PointerAnalysisImpl_8h_source.html +2 -2
  47. package/SVF-doxygen/html/html/PointerAnalysis_8cpp_source.html +16 -16
  48. package/SVF-doxygen/html/html/PointerAnalysis_8h_source.html +17 -17
  49. package/SVF-doxygen/html/html/ProgSlice_8cpp_source.html +4 -4
  50. package/SVF-doxygen/html/html/ProgSlice_8h_source.html +4 -4
  51. package/SVF-doxygen/html/html/SVFGBuilder_8h_source.html +3 -3
  52. package/SVF-doxygen/html/html/SVFGNode_8h_source.html +17 -17
  53. package/SVF-doxygen/html/html/SVFGOPT_8cpp_source.html +2 -2
  54. package/SVF-doxygen/html/html/SVFGOPT_8h_source.html +9 -9
  55. package/SVF-doxygen/html/html/SVFG_8cpp_source.html +31 -31
  56. package/SVF-doxygen/html/html/SVFG_8h_source.html +27 -27
  57. package/SVF-doxygen/html/html/SVFIRBuilder_8cpp_source.html +3 -3
  58. package/SVF-doxygen/html/html/SVFIRBuilder_8h_source.html +13 -13
  59. package/SVF-doxygen/html/html/SVFIR_8cpp_source.html +9 -9
  60. package/SVF-doxygen/html/html/SVFIR_8h_source.html +31 -31
  61. package/SVF-doxygen/html/html/SVFStatements_8h_source.html +14 -14
  62. package/SVF-doxygen/html/html/SaberCheckerAPI_8h_source.html +7 -7
  63. package/SVF-doxygen/html/html/SaberSVFGBuilder_8cpp_source.html +2 -2
  64. package/SVF-doxygen/html/html/SaberSVFGBuilder_8h_source.html +4 -4
  65. package/SVF-doxygen/html/html/SrcSnkDDA_8cpp_source.html +2 -2
  66. package/SVF-doxygen/html/html/SrcSnkDDA_8h_source.html +2 -2
  67. package/SVF-doxygen/html/html/SymbolTableBuilder_8cpp_source.html +2 -2
  68. package/SVF-doxygen/html/html/TCT_8h_source.html +3 -3
  69. package/SVF-doxygen/html/html/ThreadCallGraph_8cpp_source.html +15 -15
  70. package/SVF-doxygen/html/html/ThreadCallGraph_8h_source.html +20 -20
  71. package/SVF-doxygen/html/html/TypeAnalysis_8cpp_source.html +4 -4
  72. package/SVF-doxygen/html/html/TypeAnalysis_8h_source.html +2 -2
  73. package/SVF-doxygen/html/html/TypeBasedHeapCloning_8cpp_source.html +3 -3
  74. package/SVF-doxygen/html/html/VFGNode_8h_source.html +11 -11
  75. package/SVF-doxygen/html/html/VFG_8cpp_source.html +19 -19
  76. package/SVF-doxygen/html/html/VFG_8h_source.html +19 -19
  77. package/SVF-doxygen/html/html/VersionedFlowSensitive_8cpp_source.html +6 -6
  78. package/SVF-doxygen/html/html/WPAPass_8cpp_source.html +4 -4
  79. package/SVF-doxygen/html/html/annotated.html +17 -17
  80. package/SVF-doxygen/html/html/classSVF_1_1ActualINSVFGNode-members.html +3 -3
  81. package/SVF-doxygen/html/html/classSVF_1_1ActualINSVFGNode.html +23 -23
  82. package/SVF-doxygen/html/html/classSVF_1_1ActualOUTSVFGNode-members.html +3 -3
  83. package/SVF-doxygen/html/html/classSVF_1_1ActualOUTSVFGNode.html +23 -23
  84. package/SVF-doxygen/html/html/classSVF_1_1ActualParmVFGNode-members.html +3 -3
  85. package/SVF-doxygen/html/html/classSVF_1_1ActualParmVFGNode.html +22 -22
  86. package/SVF-doxygen/html/html/classSVF_1_1ActualRetVFGNode-members.html +3 -3
  87. package/SVF-doxygen/html/html/classSVF_1_1ActualRetVFGNode.html +24 -24
  88. package/SVF-doxygen/html/html/classSVF_1_1AliasDDAClient-members.html +1 -1
  89. package/SVF-doxygen/html/html/classSVF_1_1AliasDDAClient.html +7 -7
  90. package/SVF-doxygen/html/html/classSVF_1_1Andersen-members.html +12 -12
  91. package/SVF-doxygen/html/html/classSVF_1_1Andersen.html +51 -51
  92. package/SVF-doxygen/html/html/classSVF_1_1AndersenBase-members.html +12 -12
  93. package/SVF-doxygen/html/html/classSVF_1_1AndersenBase.html +32 -32
  94. package/SVF-doxygen/html/html/classSVF_1_1AndersenHCD-members.html +12 -12
  95. package/SVF-doxygen/html/html/classSVF_1_1AndersenHCD.html +32 -32
  96. package/SVF-doxygen/html/html/classSVF_1_1AndersenHLCD-members.html +12 -12
  97. package/SVF-doxygen/html/html/classSVF_1_1AndersenHLCD.html +32 -32
  98. package/SVF-doxygen/html/html/classSVF_1_1AndersenLCD-members.html +12 -12
  99. package/SVF-doxygen/html/html/classSVF_1_1AndersenLCD.html +32 -32
  100. package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD-members.html +12 -12
  101. package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD.html +34 -34
  102. package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR-members.html +12 -12
  103. package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR.html +32 -32
  104. package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff-members.html +12 -12
  105. package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff.html +32 -32
  106. package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl-members.html +12 -12
  107. package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl.html +38 -38
  108. package/SVF-doxygen/html/html/classSVF_1_1CallCHI-members.html +3 -3
  109. package/SVF-doxygen/html/html/classSVF_1_1CallCHI.html +22 -22
  110. package/SVF-doxygen/html/html/classSVF_1_1CallGraphBuilder.html +4 -4
  111. package/SVF-doxygen/html/html/classSVF_1_1CallICFGNode-members.html +158 -0
  112. package/SVF-doxygen/html/html/classSVF_1_1CallICFGNode.html +852 -0
  113. package/SVF-doxygen/html/html/classSVF_1_1CallICFGNode.png +0 -0
  114. package/SVF-doxygen/html/html/classSVF_1_1CallMU-members.html +3 -3
  115. package/SVF-doxygen/html/html/classSVF_1_1CallMU.html +22 -22
  116. package/SVF-doxygen/html/html/classSVF_1_1CallPE-members.html +4 -4
  117. package/SVF-doxygen/html/html/classSVF_1_1CallPE.html +27 -27
  118. package/SVF-doxygen/html/html/classSVF_1_1CondPTAImpl-members.html +12 -12
  119. package/SVF-doxygen/html/html/classSVF_1_1CondPTAImpl.html +31 -31
  120. package/SVF-doxygen/html/html/classSVF_1_1ConstraintGraph.html +2 -2
  121. package/SVF-doxygen/html/html/classSVF_1_1ContextDDA-members.html +14 -14
  122. package/SVF-doxygen/html/html/classSVF_1_1ContextDDA.html +60 -60
  123. package/SVF-doxygen/html/html/classSVF_1_1DDAVFSolver-members.html +1 -1
  124. package/SVF-doxygen/html/html/classSVF_1_1DDAVFSolver.html +16 -16
  125. package/SVF-doxygen/html/html/classSVF_1_1DistinctMRG-members.html +21 -21
  126. package/SVF-doxygen/html/html/classSVF_1_1DistinctMRG.html +51 -51
  127. package/SVF-doxygen/html/html/classSVF_1_1DoubleFreeChecker-members.html +5 -5
  128. package/SVF-doxygen/html/html/classSVF_1_1DoubleFreeChecker.html +16 -16
  129. package/SVF-doxygen/html/html/classSVF_1_1FSMPTA-members.html +12 -12
  130. package/SVF-doxygen/html/html/classSVF_1_1FSMPTA.html +33 -33
  131. package/SVF-doxygen/html/html/classSVF_1_1FileChecker-members.html +5 -5
  132. package/SVF-doxygen/html/html/classSVF_1_1FileChecker.html +20 -20
  133. package/SVF-doxygen/html/html/classSVF_1_1FlowDDA-members.html +11 -11
  134. package/SVF-doxygen/html/html/classSVF_1_1FlowDDA.html +52 -52
  135. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive-members.html +12 -12
  136. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive.html +45 -45
  137. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveTBHC-members.html +12 -12
  138. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveTBHC.html +33 -33
  139. package/SVF-doxygen/html/html/classSVF_1_1ForkJoinAnalysis-members.html +1 -1
  140. package/SVF-doxygen/html/html/classSVF_1_1ForkJoinAnalysis.html +21 -21
  141. package/SVF-doxygen/html/html/classSVF_1_1FormalINSVFGNode-members.html +3 -3
  142. package/SVF-doxygen/html/html/classSVF_1_1FormalINSVFGNode.html +19 -19
  143. package/SVF-doxygen/html/html/classSVF_1_1FormalOUTSVFGNode-members.html +3 -3
  144. package/SVF-doxygen/html/html/classSVF_1_1FormalOUTSVFGNode.html +18 -18
  145. package/SVF-doxygen/html/html/classSVF_1_1FunEntryICFGNode-members.html +150 -0
  146. package/SVF-doxygen/html/html/classSVF_1_1FunEntryICFGNode.html +618 -0
  147. package/SVF-doxygen/html/html/classSVF_1_1FunEntryICFGNode.png +0 -0
  148. package/SVF-doxygen/html/html/classSVF_1_1FunExitICFGNode-members.html +149 -0
  149. package/SVF-doxygen/html/html/classSVF_1_1FunExitICFGNode.html +624 -0
  150. package/SVF-doxygen/html/html/classSVF_1_1FunExitICFGNode.png +0 -0
  151. package/SVF-doxygen/html/html/classSVF_1_1FunptrDDAClient-members.html +1 -1
  152. package/SVF-doxygen/html/html/classSVF_1_1FunptrDDAClient.html +12 -12
  153. package/SVF-doxygen/html/html/classSVF_1_1GenericNode.html +3 -3
  154. package/SVF-doxygen/html/html/classSVF_1_1GenericNode.png +0 -0
  155. package/SVF-doxygen/html/html/classSVF_1_1GlobalICFGNode-members.html +144 -0
  156. package/SVF-doxygen/html/html/classSVF_1_1GlobalICFGNode.html +413 -0
  157. package/SVF-doxygen/html/html/classSVF_1_1GlobalICFGNode.png +0 -0
  158. package/SVF-doxygen/html/html/classSVF_1_1HareParForEdge-members.html +3 -3
  159. package/SVF-doxygen/html/html/classSVF_1_1HareParForEdge.html +11 -11
  160. package/SVF-doxygen/html/html/classSVF_1_1ICFG-members.html +22 -22
  161. package/SVF-doxygen/html/html/classSVF_1_1ICFG.html +191 -184
  162. package/SVF-doxygen/html/html/classSVF_1_1ICFGBuilder-members.html +4 -4
  163. package/SVF-doxygen/html/html/classSVF_1_1ICFGBuilder.html +69 -66
  164. package/SVF-doxygen/html/html/classSVF_1_1ICFGNode.html +9 -9
  165. package/SVF-doxygen/html/html/classSVF_1_1ICFGNode.png +0 -0
  166. package/SVF-doxygen/html/html/classSVF_1_1ICFGPrinter-members.html +11 -11
  167. package/SVF-doxygen/html/html/classSVF_1_1ICFGPrinter.html +30 -30
  168. package/SVF-doxygen/html/html/classSVF_1_1ICFGStat.html +3 -3
  169. package/SVF-doxygen/html/html/classSVF_1_1InterDisjointMRG-members.html +21 -21
  170. package/SVF-doxygen/html/html/classSVF_1_1InterDisjointMRG.html +51 -51
  171. package/SVF-doxygen/html/html/classSVF_1_1InterICFGNode-members.html +144 -0
  172. package/SVF-doxygen/html/html/classSVF_1_1InterICFGNode.html +399 -0
  173. package/SVF-doxygen/html/html/classSVF_1_1InterICFGNode.png +0 -0
  174. package/SVF-doxygen/html/html/classSVF_1_1InterMSSAPHISVFGNode-members.html +2 -2
  175. package/SVF-doxygen/html/html/classSVF_1_1InterMSSAPHISVFGNode.html +23 -23
  176. package/SVF-doxygen/html/html/classSVF_1_1InterPHIVFGNode-members.html +2 -2
  177. package/SVF-doxygen/html/html/classSVF_1_1InterPHIVFGNode.html +20 -20
  178. package/SVF-doxygen/html/html/classSVF_1_1IntraDisjointMRG-members.html +21 -21
  179. package/SVF-doxygen/html/html/classSVF_1_1IntraDisjointMRG.html +51 -51
  180. package/SVF-doxygen/html/html/classSVF_1_1IntraICFGNode-members.html +146 -0
  181. package/SVF-doxygen/html/html/classSVF_1_1IntraICFGNode.html +494 -0
  182. package/SVF-doxygen/html/html/classSVF_1_1IntraICFGNode.png +0 -0
  183. package/SVF-doxygen/html/html/classSVF_1_1LeakChecker-members.html +5 -5
  184. package/SVF-doxygen/html/html/classSVF_1_1LeakChecker.html +61 -61
  185. package/SVF-doxygen/html/html/classSVF_1_1LockAnalysis.html +14 -14
  186. package/SVF-doxygen/html/html/classSVF_1_1LockResultValidator-members.html +1 -1
  187. package/SVF-doxygen/html/html/classSVF_1_1LockResultValidator.html +10 -10
  188. package/SVF-doxygen/html/html/classSVF_1_1MHP-members.html +1 -1
  189. package/SVF-doxygen/html/html/classSVF_1_1MHP.html +22 -22
  190. package/SVF-doxygen/html/html/classSVF_1_1MRGenerator-members.html +24 -24
  191. package/SVF-doxygen/html/html/classSVF_1_1MRGenerator.html +196 -196
  192. package/SVF-doxygen/html/html/classSVF_1_1MTAResultValidator.html +8 -8
  193. package/SVF-doxygen/html/html/classSVF_1_1MTASVFGBuilder.html +6 -6
  194. package/SVF-doxygen/html/html/classSVF_1_1MTAStat.html +5 -5
  195. package/SVF-doxygen/html/html/classSVF_1_1MemSSA-members.html +10 -10
  196. package/SVF-doxygen/html/html/classSVF_1_1MemSSA.html +77 -77
  197. package/SVF-doxygen/html/html/classSVF_1_1NodeIDAllocator-members.html +5 -4
  198. package/SVF-doxygen/html/html/classSVF_1_1NodeIDAllocator.html +43 -39
  199. package/SVF-doxygen/html/html/classSVF_1_1NodeIDAllocator_1_1Clusterer.html +90 -90
  200. package/SVF-doxygen/html/html/classSVF_1_1OfflineConsG.html +1 -1
  201. package/SVF-doxygen/html/html/classSVF_1_1PAGBuilderFromFile.html +2 -2
  202. package/SVF-doxygen/html/html/classSVF_1_1PCG-members.html +1 -1
  203. package/SVF-doxygen/html/html/classSVF_1_1PCG.html +13 -13
  204. package/SVF-doxygen/html/html/classSVF_1_1PTACallGraph-members.html +15 -15
  205. package/SVF-doxygen/html/html/classSVF_1_1PTACallGraph.html +118 -118
  206. package/SVF-doxygen/html/html/classSVF_1_1PTACallGraphEdge-members.html +3 -3
  207. package/SVF-doxygen/html/html/classSVF_1_1PTACallGraphEdge.html +32 -32
  208. package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis-members.html +12 -12
  209. package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.html +107 -107
  210. package/SVF-doxygen/html/html/classSVF_1_1ProgSlice-members.html +2 -2
  211. package/SVF-doxygen/html/html/classSVF_1_1ProgSlice.html +18 -18
  212. package/SVF-doxygen/html/html/classSVF_1_1RetICFGNode-members.html +153 -0
  213. package/SVF-doxygen/html/html/classSVF_1_1RetICFGNode.html +696 -0
  214. package/SVF-doxygen/html/html/classSVF_1_1RetICFGNode.png +0 -0
  215. package/SVF-doxygen/html/html/classSVF_1_1RetPE-members.html +4 -4
  216. package/SVF-doxygen/html/html/classSVF_1_1RetPE.html +26 -26
  217. package/SVF-doxygen/html/html/classSVF_1_1SVFG-members.html +24 -24
  218. package/SVF-doxygen/html/html/classSVF_1_1SVFG.html +159 -159
  219. package/SVF-doxygen/html/html/classSVF_1_1SVFGBuilder.html +4 -4
  220. package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT-members.html +24 -24
  221. package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT.html +76 -76
  222. package/SVF-doxygen/html/html/classSVF_1_1SVFIR-members.html +19 -19
  223. package/SVF-doxygen/html/html/classSVF_1_1SVFIR.html +132 -132
  224. package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder-members.html +4 -4
  225. package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder.html +58 -58
  226. package/SVF-doxygen/html/html/classSVF_1_1SaberCheckerAPI-members.html +4 -4
  227. package/SVF-doxygen/html/html/classSVF_1_1SaberCheckerAPI.html +20 -20
  228. package/SVF-doxygen/html/html/classSVF_1_1SaberSVFGBuilder-members.html +1 -1
  229. package/SVF-doxygen/html/html/classSVF_1_1SaberSVFGBuilder.html +13 -13
  230. package/SVF-doxygen/html/html/classSVF_1_1SrcSnkDDA-members.html +1 -1
  231. package/SVF-doxygen/html/html/classSVF_1_1SrcSnkDDA.html +7 -7
  232. package/SVF-doxygen/html/html/classSVF_1_1Steensgaard-members.html +12 -12
  233. package/SVF-doxygen/html/html/classSVF_1_1Steensgaard.html +32 -32
  234. package/SVF-doxygen/html/html/classSVF_1_1StoreStmt-members.html +1 -1
  235. package/SVF-doxygen/html/html/classSVF_1_1StoreStmt.html +7 -7
  236. package/SVF-doxygen/html/html/classSVF_1_1SymbolTableBuilder.html +4 -4
  237. package/SVF-doxygen/html/html/classSVF_1_1TCT-members.html +1 -1
  238. package/SVF-doxygen/html/html/classSVF_1_1TCT.html +22 -22
  239. package/SVF-doxygen/html/html/classSVF_1_1TDForkPE-members.html +4 -4
  240. package/SVF-doxygen/html/html/classSVF_1_1TDForkPE.html +15 -15
  241. package/SVF-doxygen/html/html/classSVF_1_1TDJoinPE-members.html +4 -4
  242. package/SVF-doxygen/html/html/classSVF_1_1TDJoinPE.html +15 -15
  243. package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraph-members.html +40 -40
  244. package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraph.html +220 -220
  245. package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraphBuilder.html +10 -10
  246. package/SVF-doxygen/html/html/classSVF_1_1ThreadForkEdge-members.html +3 -3
  247. package/SVF-doxygen/html/html/classSVF_1_1ThreadForkEdge.html +11 -11
  248. package/SVF-doxygen/html/html/classSVF_1_1ThreadJoinEdge-members.html +3 -3
  249. package/SVF-doxygen/html/html/classSVF_1_1ThreadJoinEdge.html +11 -11
  250. package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis-members.html +12 -12
  251. package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis.html +41 -41
  252. package/SVF-doxygen/html/html/classSVF_1_1TypeBasedHeapCloning.html +3 -3
  253. package/SVF-doxygen/html/html/classSVF_1_1VFG-members.html +9 -9
  254. package/SVF-doxygen/html/html/classSVF_1_1VFG.html +96 -96
  255. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive-members.html +12 -12
  256. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive.html +39 -39
  257. package/SVF-doxygen/html/html/classSVF_1_1WPAPass.html +12 -12
  258. package/SVF-doxygen/html/html/classes.html +16 -16
  259. package/SVF-doxygen/html/html/functions_a.html +59 -59
  260. package/SVF-doxygen/html/html/functions_c.html +65 -67
  261. package/SVF-doxygen/html/html/functions_eval_r.html +3 -0
  262. package/SVF-doxygen/html/html/functions_f.html +14 -14
  263. package/SVF-doxygen/html/html/functions_func.html +56 -56
  264. package/SVF-doxygen/html/html/functions_func_c.html +28 -28
  265. package/SVF-doxygen/html/html/functions_func_f.html +6 -6
  266. package/SVF-doxygen/html/html/functions_func_g.html +86 -86
  267. package/SVF-doxygen/html/html/functions_func_h.html +17 -17
  268. package/SVF-doxygen/html/html/functions_func_i.html +12 -12
  269. package/SVF-doxygen/html/html/functions_func_m.html +1 -1
  270. package/SVF-doxygen/html/html/functions_func_p.html +1 -1
  271. package/SVF-doxygen/html/html/functions_func_r.html +6 -6
  272. package/SVF-doxygen/html/html/functions_func_s.html +2 -2
  273. package/SVF-doxygen/html/html/functions_func_t.html +7 -7
  274. package/SVF-doxygen/html/html/functions_func_u.html +3 -3
  275. package/SVF-doxygen/html/html/functions_g.html +88 -88
  276. package/SVF-doxygen/html/html/functions_h.html +16 -16
  277. package/SVF-doxygen/html/html/functions_i.html +22 -22
  278. package/SVF-doxygen/html/html/functions_l.html +3 -3
  279. package/SVF-doxygen/html/html/functions_m.html +2 -2
  280. package/SVF-doxygen/html/html/functions_o.html +13 -13
  281. package/SVF-doxygen/html/html/functions_p.html +14 -14
  282. package/SVF-doxygen/html/html/functions_r.html +13 -12
  283. package/SVF-doxygen/html/html/functions_s.html +13 -13
  284. package/SVF-doxygen/html/html/functions_t.html +12 -14
  285. package/SVF-doxygen/html/html/functions_type.html +1 -1
  286. package/SVF-doxygen/html/html/functions_type_c.html +24 -24
  287. package/SVF-doxygen/html/html/functions_type_f.html +3 -3
  288. package/SVF-doxygen/html/html/functions_type_i.html +2 -2
  289. package/SVF-doxygen/html/html/functions_type_p.html +1 -1
  290. package/SVF-doxygen/html/html/functions_type_s.html +1 -1
  291. package/SVF-doxygen/html/html/functions_type_v.html +2 -2
  292. package/SVF-doxygen/html/html/functions_u.html +3 -3
  293. package/SVF-doxygen/html/html/functions_v.html +8 -8
  294. package/SVF-doxygen/html/html/functions_vars_a.html +2 -2
  295. package/SVF-doxygen/html/html/functions_vars_c.html +11 -11
  296. package/SVF-doxygen/html/html/functions_vars_f.html +5 -5
  297. package/SVF-doxygen/html/html/functions_vars_g.html +1 -1
  298. package/SVF-doxygen/html/html/functions_vars_i.html +3 -3
  299. package/SVF-doxygen/html/html/functions_vars_r.html +1 -1
  300. package/SVF-doxygen/html/html/functions_w.html +9 -5
  301. package/SVF-doxygen/html/html/hierarchy.html +7 -7
  302. package/SVF-doxygen/html/html/namespaceSVF.html +11 -11
  303. package/SVF-doxygen/html/html/search/all_1.js +58 -58
  304. package/SVF-doxygen/html/html/search/all_10.js +8 -8
  305. package/SVF-doxygen/html/html/search/all_12.js +8 -7
  306. package/SVF-doxygen/html/html/search/all_13.js +11 -11
  307. package/SVF-doxygen/html/html/search/all_14.js +8 -8
  308. package/SVF-doxygen/html/html/search/all_15.js +1 -1
  309. package/SVF-doxygen/html/html/search/all_16.js +4 -4
  310. package/SVF-doxygen/html/html/search/all_17.js +1 -1
  311. package/SVF-doxygen/html/html/search/all_3.js +35 -34
  312. package/SVF-doxygen/html/html/search/all_6.js +12 -12
  313. package/SVF-doxygen/html/html/search/all_7.js +62 -61
  314. package/SVF-doxygen/html/html/search/all_8.js +17 -17
  315. package/SVF-doxygen/html/html/search/all_9.js +16 -16
  316. package/SVF-doxygen/html/html/search/all_c.js +2 -2
  317. package/SVF-doxygen/html/html/search/all_d.js +5 -5
  318. package/SVF-doxygen/html/html/search/all_e.js +3 -3
  319. package/SVF-doxygen/html/html/search/all_f.js +3 -3
  320. package/SVF-doxygen/html/html/search/classes_2.js +1 -1
  321. package/SVF-doxygen/html/html/search/classes_5.js +2 -2
  322. package/SVF-doxygen/html/html/search/classes_6.js +1 -1
  323. package/SVF-doxygen/html/html/search/classes_8.js +2 -2
  324. package/SVF-doxygen/html/html/search/classes_e.js +1 -1
  325. package/SVF-doxygen/html/html/search/enumvalues_e.js +2 -1
  326. package/SVF-doxygen/html/html/search/functions_0.js +55 -55
  327. package/SVF-doxygen/html/html/search/functions_10.js +3 -3
  328. package/SVF-doxygen/html/html/search/functions_11.js +4 -4
  329. package/SVF-doxygen/html/html/search/functions_12.js +1 -1
  330. package/SVF-doxygen/html/html/search/functions_2.js +10 -10
  331. package/SVF-doxygen/html/html/search/functions_5.js +4 -4
  332. package/SVF-doxygen/html/html/search/functions_6.js +61 -61
  333. package/SVF-doxygen/html/html/search/functions_7.js +17 -17
  334. package/SVF-doxygen/html/html/search/functions_8.js +12 -12
  335. package/SVF-doxygen/html/html/search/functions_b.js +1 -1
  336. package/SVF-doxygen/html/html/search/functions_e.js +1 -1
  337. package/SVF-doxygen/html/html/search/functions_f.js +4 -4
  338. package/SVF-doxygen/html/html/search/typedefs_0.js +1 -1
  339. package/SVF-doxygen/html/html/search/typedefs_11.js +1 -1
  340. package/SVF-doxygen/html/html/search/typedefs_14.js +1 -1
  341. package/SVF-doxygen/html/html/search/typedefs_2.js +21 -21
  342. package/SVF-doxygen/html/html/search/typedefs_5.js +3 -3
  343. package/SVF-doxygen/html/html/search/typedefs_8.js +2 -2
  344. package/SVF-doxygen/html/html/search/typedefs_f.js +1 -1
  345. package/SVF-doxygen/html/html/search/variables_1.js +2 -2
  346. package/SVF-doxygen/html/html/search/variables_12.js +1 -1
  347. package/SVF-doxygen/html/html/search/variables_14.js +1 -1
  348. package/SVF-doxygen/html/html/search/variables_3.js +4 -4
  349. package/SVF-doxygen/html/html/search/variables_6.js +5 -5
  350. package/SVF-doxygen/html/html/search/variables_7.js +1 -1
  351. package/SVF-doxygen/html/html/search/variables_9.js +1 -1
  352. package/SVF-doxygen/html/html/search/variables_d.js +1 -1
  353. package/SVF-doxygen/html/html/search/variables_e.js +2 -2
  354. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01ICFG_01_5_01_4.html +22 -22
  355. package/include/DDA/ContextDDA.h +3 -3
  356. package/include/DDA/DDAClient.h +2 -2
  357. package/include/DDA/DDAVFSolver.h +2 -2
  358. package/include/DDA/FlowDDA.h +2 -2
  359. package/include/Graphs/ICFG.h +33 -33
  360. package/include/Graphs/ICFGNode.h +33 -33
  361. package/include/Graphs/ICFGStat.h +11 -11
  362. package/include/Graphs/PTACallGraph.h +19 -19
  363. package/include/Graphs/SVFG.h +16 -16
  364. package/include/Graphs/SVFGNode.h +14 -14
  365. package/include/Graphs/SVFGOPT.h +1 -1
  366. package/include/Graphs/ThreadCallGraph.h +25 -25
  367. package/include/Graphs/VFG.h +10 -10
  368. package/include/Graphs/VFGNode.h +8 -8
  369. package/include/MSSA/MSSAMuChi.h +6 -6
  370. package/include/MSSA/MemRegion.h +24 -24
  371. package/include/MSSA/MemSSA.h +10 -10
  372. package/include/MTA/LockResultValidator.h +2 -2
  373. package/include/MTA/MHP.h +4 -4
  374. package/include/MTA/PCG.h +1 -1
  375. package/include/MTA/TCT.h +2 -2
  376. package/include/MemoryModel/PointerAnalysis.h +12 -12
  377. package/include/MemoryModel/SVFIR.h +21 -21
  378. package/include/MemoryModel/SVFStatements.h +11 -11
  379. package/include/SABER/LeakChecker.h +4 -4
  380. package/include/SABER/ProgSlice.h +2 -2
  381. package/include/SABER/SaberCheckerAPI.h +4 -4
  382. package/include/SABER/SaberSVFGBuilder.h +1 -1
  383. package/include/SABER/SrcSnkDDA.h +1 -1
  384. package/include/SVF-FE/ICFGBuilder.h +4 -4
  385. package/include/SVF-FE/SVFIRBuilder.h +5 -5
  386. package/include/Util/NodeIDAllocator.h +3 -0
  387. package/lib/DDA/ContextDDA.cpp +3 -3
  388. package/lib/DDA/DDAClient.cpp +1 -1
  389. package/lib/DDA/FlowDDA.cpp +1 -1
  390. package/lib/Graphs/ICFG.cpp +55 -50
  391. package/lib/Graphs/PTACallGraph.cpp +5 -5
  392. package/lib/Graphs/SVFG.cpp +7 -7
  393. package/lib/Graphs/ThreadCallGraph.cpp +6 -6
  394. package/lib/Graphs/VFG.cpp +6 -6
  395. package/lib/MSSA/MemRegion.cpp +17 -17
  396. package/lib/MSSA/MemSSA.cpp +3 -3
  397. package/lib/MTA/LockAnalysis.cpp +4 -4
  398. package/lib/MTA/MHP.cpp +5 -5
  399. package/lib/MTA/MTAResultValidator.cpp +1 -1
  400. package/lib/MTA/PCG.cpp +1 -1
  401. package/lib/MemoryModel/PointerAnalysis.cpp +10 -10
  402. package/lib/MemoryModel/PointerAnalysisImpl.cpp +1 -1
  403. package/lib/MemoryModel/SVFIR.cpp +5 -5
  404. package/lib/SABER/DoubleFreeChecker.cpp +1 -1
  405. package/lib/SABER/FileChecker.cpp +2 -2
  406. package/lib/SABER/LeakChecker.cpp +8 -8
  407. package/lib/SABER/ProgSlice.cpp +2 -2
  408. package/lib/SVF-FE/CallGraphBuilder.cpp +4 -4
  409. package/lib/SVF-FE/Graph2Json.cpp +5 -5
  410. package/lib/SVF-FE/ICFGBuilder.cpp +31 -25
  411. package/lib/SVF-FE/SVFIRBuilder.cpp +8 -8
  412. package/lib/Util/NodeIDAllocator.cpp +12 -0
  413. package/lib/Util/Options.cpp +2 -1
  414. package/lib/Util/TypeBasedHeapCloning.cpp +1 -1
  415. package/lib/WPA/Andersen.cpp +3 -3
  416. package/lib/WPA/FlowSensitive.cpp +2 -2
  417. package/lib/WPA/TypeAnalysis.cpp +1 -1
  418. package/lib/WPA/VersionedFlowSensitive.cpp +4 -4
  419. package/lib/WPA/WPAPass.cpp +4 -4
  420. package/package.json +1 -1
@@ -406,7 +406,7 @@ void LockAnalysis::handleFork(const CxtStmt& cts)
406
406
  {
407
407
  const CallInst* call = SVFUtil::cast<CallInst>(cts.getStmt());
408
408
  const CallStrCxt& curCxt = cts.getContext();
409
- CallBlockNode* cbn = tct->getCallBlockNode(call);
409
+ CallICFGNode* cbn = tct->getCallBlockNode(call);
410
410
  if(getTCG()->hasThreadForkEdge(cbn))
411
411
  {
412
412
  for (ThreadCallGraph::ForkEdgeSet::const_iterator cgIt = getTCG()->getForkEdgeBegin(cbn),
@@ -429,7 +429,7 @@ void LockAnalysis::handleCall(const CxtStmt& cts)
429
429
 
430
430
  const CallInst* call = SVFUtil::cast<CallInst>(cts.getStmt());
431
431
  const CallStrCxt& curCxt = cts.getContext();
432
- CallBlockNode* cbn = tct->getCallBlockNode(call);
432
+ CallICFGNode* cbn = tct->getCallBlockNode(call);
433
433
  if (getTCG()->hasCallGraphEdge(cbn))
434
434
  {
435
435
  for (PTACallGraph::CallGraphEdgeSet::const_iterator cgIt = getTCG()->getCallEdgeBegin(cbn), ecgIt = getTCG()->getCallEdgeEnd(cbn);
@@ -518,7 +518,7 @@ void LockAnalysis::pushCxt(CallStrCxt& cxt, const Instruction* call, const Funct
518
518
  const Function* caller = call->getParent()->getParent();
519
519
  const SVFFunction* svfcallee = tct->getSVFFun(callee);
520
520
  const SVFFunction* svfcaller = tct->getSVFFun(caller);
521
- CallBlockNode* cbn = tct->getCallBlockNode(call);
521
+ CallICFGNode* cbn = tct->getCallBlockNode(call);
522
522
  CallSiteID csId = getTCG()->getCallSiteID(cbn, svfcallee);
523
523
 
524
524
  // /// handle calling context for candidate functions only
@@ -537,7 +537,7 @@ bool LockAnalysis::matchCxt(CallStrCxt& cxt, const Instruction* call, const Func
537
537
  const Function* caller = call->getParent()->getParent();
538
538
  const SVFFunction* svfcallee = tct->getSVFFun(callee);
539
539
  const SVFFunction* svfcaller = tct->getSVFFun(caller);
540
- CallBlockNode* cbn = tct->getCallBlockNode(call);
540
+ CallICFGNode* cbn = tct->getCallBlockNode(call);
541
541
  CallSiteID csId = getTCG()->getCallSiteID(cbn, svfcallee);
542
542
 
543
543
  // /// handle calling context for candidate functions only
package/lib/MTA/MHP.cpp CHANGED
@@ -244,7 +244,7 @@ void MHP::handleFork(const CxtThreadStmt& cts, NodeID rootTid)
244
244
  const CallStrCxt& curCxt = cts.getContext();
245
245
 
246
246
  assert(isTDFork(call));
247
- CallBlockNode* cbn = getCBN(call);
247
+ CallICFGNode* cbn = getCBN(call);
248
248
  if(tct->getThreadCallGraph()->hasCallGraphEdge(cbn))
249
249
  {
250
250
 
@@ -324,7 +324,7 @@ void MHP::handleCall(const CxtThreadStmt& cts, NodeID rootTid)
324
324
 
325
325
  const CallInst* call = SVFUtil::cast<CallInst>(cts.getStmt());
326
326
  const CallStrCxt& curCxt = cts.getContext();
327
- CallBlockNode* cbn = getCBN(call);
327
+ CallICFGNode* cbn = getCBN(call);
328
328
  if(tct->getThreadCallGraph()->hasCallGraphEdge(cbn))
329
329
  {
330
330
  for (PTACallGraph::CallGraphEdgeSet::const_iterator cgIt = tcg->getCallEdgeBegin(cbn),
@@ -830,7 +830,7 @@ void ForkJoinAnalysis::handleFork(const CxtStmt& cts, NodeID rootTid)
830
830
  const CallStrCxt& curCxt = cts.getContext();
831
831
 
832
832
  assert(isTDFork(call));
833
- CallBlockNode* cbn = getCBN(call);
833
+ CallICFGNode* cbn = getCBN(call);
834
834
  if(getTCG()->hasThreadForkEdge(cbn))
835
835
  {
836
836
  for (ThreadCallGraph::ForkEdgeSet::const_iterator cgIt = getTCG()->getForkEdgeBegin(cbn),
@@ -856,7 +856,7 @@ void ForkJoinAnalysis::handleJoin(const CxtStmt& cts, NodeID rootTid)
856
856
  const CallStrCxt& curCxt = cts.getContext();
857
857
 
858
858
  assert(isTDJoin(call));
859
- CallBlockNode* cbn = getCBN(call);
859
+ CallICFGNode* cbn = getCBN(call);
860
860
  if(getTCG()->hasCallGraphEdge(cbn))
861
861
  {
862
862
  const Instruction* forkSite = tct->getTCTNode(rootTid)->getCxtThread().getThread();
@@ -915,7 +915,7 @@ void ForkJoinAnalysis::handleCall(const CxtStmt& cts, NodeID rootTid)
915
915
 
916
916
  const CallInst* call = SVFUtil::cast<CallInst>(cts.getStmt());
917
917
  const CallStrCxt& curCxt = cts.getContext();
918
- CallBlockNode* cbn = getCBN(call);
918
+ CallICFGNode* cbn = getCBN(call);
919
919
  if(getTCG()->hasCallGraphEdge(cbn))
920
920
  {
921
921
  for (PTACallGraph::CallGraphEdgeSet::const_iterator cgIt = getTCG()->getCallEdgeBegin(cbn),
@@ -96,7 +96,7 @@ CallStrCxt MTAResultValidator::getCxtArg(const Instruction* inst, unsigned int a
96
96
  const SVFFunction* callee = SVFUtil::getFunction(y[1]);
97
97
  CallSite cs = SVFUtil::getLLVMCallSite(csnumToInstMap[atoi(y[0].c_str())]);
98
98
  assert(callee && "callee error");
99
- CallBlockNode* cbn = mhp->getTCT()->getCallBlockNode(cs.getInstruction());
99
+ CallICFGNode* cbn = mhp->getTCT()->getCallBlockNode(cs.getInstruction());
100
100
  CallSiteID csId = tcg->getCallSiteID(cbn, callee);
101
101
  cxt.push_back(csId);
102
102
  }
package/lib/MTA/PCG.cpp CHANGED
@@ -206,7 +206,7 @@ void PCG::identifyFollowers()
206
206
  // if this is an call/invoke instruction but not a spawn site
207
207
  if ((SVFUtil::isa<CallInst>(inst) || SVFUtil::isa<InvokeInst>(inst)) && !isSpawnsite(inst))
208
208
  {
209
- CallBlockNode* cbn = getCallBlockNode(inst);
209
+ CallICFGNode* cbn = getCallBlockNode(inst);
210
210
  if (callgraph->hasCallGraphEdge(cbn))
211
211
  {
212
212
  for (PTACallGraph::CallGraphEdgeSet::const_iterator cgIt = callgraph->getCallEdgeBegin(cbn),
@@ -348,7 +348,7 @@ void PointerAnalysis::dumpPts(NodeID ptr, const PointsTo& pts)
348
348
  /*!
349
349
  * Print indirect call targets at an indirect callsite
350
350
  */
351
- void PointerAnalysis::printIndCSTargets(const CallBlockNode* cs, const FunctionSet& targets)
351
+ void PointerAnalysis::printIndCSTargets(const CallICFGNode* cs, const FunctionSet& targets)
352
352
  {
353
353
  outs() << "\nNodeID: " << getFunPtr(cs);
354
354
  outs() << "\nCallSite: ";
@@ -385,7 +385,7 @@ void PointerAnalysis::printIndCSTargets()
385
385
  CallEdgeMap::const_iterator eit = callEdges.end();
386
386
  for (; it != eit; ++it)
387
387
  {
388
- const CallBlockNode* cs = it->first;
388
+ const CallICFGNode* cs = it->first;
389
389
  const FunctionSet& targets = it->second;
390
390
  printIndCSTargets(cs, targets);
391
391
  }
@@ -395,7 +395,7 @@ void PointerAnalysis::printIndCSTargets()
395
395
  CallSiteToFunPtrMap::const_iterator csEit = indCS.end();
396
396
  for (; csIt != csEit; ++csIt)
397
397
  {
398
- const CallBlockNode* cs = csIt->first;
398
+ const CallICFGNode* cs = csIt->first;
399
399
  if (hasIndCSCallees(cs) == false)
400
400
  {
401
401
  outs() << "\nNodeID: " << csIt->second;
@@ -412,7 +412,7 @@ void PointerAnalysis::printIndCSTargets()
412
412
  /*!
413
413
  * Resolve indirect calls
414
414
  */
415
- void PointerAnalysis::resolveIndCalls(const CallBlockNode* cs, const PointsTo& target, CallEdgeMap& newEdges, LLVMCallGraph*)
415
+ void PointerAnalysis::resolveIndCalls(const CallICFGNode* cs, const PointsTo& target, CallEdgeMap& newEdges, LLVMCallGraph*)
416
416
  {
417
417
 
418
418
  assert(pag->isIndirectCallSites(cs) && "not an indirect callsite?");
@@ -460,7 +460,7 @@ void PointerAnalysis::resolveIndCalls(const CallBlockNode* cs, const PointsTo& t
460
460
  /*!
461
461
  * Match arguments for callsite at caller and callee
462
462
  */
463
- bool PointerAnalysis::matchArgs(const CallBlockNode* cs, const SVFFunction* callee)
463
+ bool PointerAnalysis::matchArgs(const CallICFGNode* cs, const SVFFunction* callee)
464
464
  {
465
465
  if(ThreadAPI::getThreadAPI()->isTDFork(cs->getCallSite()))
466
466
  return true;
@@ -471,7 +471,7 @@ bool PointerAnalysis::matchArgs(const CallBlockNode* cs, const SVFFunction* call
471
471
  /*
472
472
  * Get virtual functions "vfns" based on CHA
473
473
  */
474
- void PointerAnalysis::getVFnsFromCHA(const CallBlockNode* cs, VFunSet &vfns)
474
+ void PointerAnalysis::getVFnsFromCHA(const CallICFGNode* cs, VFunSet &vfns)
475
475
  {
476
476
  if (chgraph->csHasVFnsBasedonCHA(SVFUtil::getLLVMCallSite(cs->getCallSite())))
477
477
  vfns = chgraph->getCSVFsBasedonCHA(SVFUtil::getLLVMCallSite(cs->getCallSite()));
@@ -480,7 +480,7 @@ void PointerAnalysis::getVFnsFromCHA(const CallBlockNode* cs, VFunSet &vfns)
480
480
  /*
481
481
  * Get virtual functions "vfns" from PoninsTo set "target" for callsite "cs"
482
482
  */
483
- void PointerAnalysis::getVFnsFromPts(const CallBlockNode* cs, const PointsTo &target, VFunSet &vfns)
483
+ void PointerAnalysis::getVFnsFromPts(const CallICFGNode* cs, const PointsTo &target, VFunSet &vfns)
484
484
  {
485
485
 
486
486
  if (chgraph->csHasVtblsBasedonCHA(SVFUtil::getLLVMCallSite(cs->getCallSite())))
@@ -506,7 +506,7 @@ void PointerAnalysis::getVFnsFromPts(const CallBlockNode* cs, const PointsTo &ta
506
506
  /*
507
507
  * Connect callsite "cs" to virtual functions in "vfns"
508
508
  */
509
- void PointerAnalysis::connectVCallToVFns(const CallBlockNode* cs, const VFunSet &vfns, CallEdgeMap& newEdges)
509
+ void PointerAnalysis::connectVCallToVFns(const CallICFGNode* cs, const VFunSet &vfns, CallEdgeMap& newEdges)
510
510
  {
511
511
  //// connect all valid functions
512
512
  for (VFunSet::const_iterator fit = vfns.begin(),
@@ -521,14 +521,14 @@ void PointerAnalysis::connectVCallToVFns(const CallBlockNode* cs, const VFunSet
521
521
  {
522
522
  newEdges[cs].insert(callee);
523
523
  getIndCallMap()[cs].insert(callee);
524
- const CallBlockNode* callBlockNode = pag->getICFG()->getCallBlockNode(cs->getCallSite());
524
+ const CallICFGNode* callBlockNode = pag->getICFG()->getCallBlockNode(cs->getCallSite());
525
525
  ptaCallGraph->addIndirectCallGraphEdge(callBlockNode, cs->getCaller(),callee);
526
526
  }
527
527
  }
528
528
  }
529
529
 
530
530
  /// Resolve cpp indirect call edges
531
- void PointerAnalysis::resolveCPPIndCalls(const CallBlockNode* cs, const PointsTo& target, CallEdgeMap& newEdges)
531
+ void PointerAnalysis::resolveCPPIndCalls(const CallICFGNode* cs, const PointsTo& target, CallEdgeMap& newEdges)
532
532
  {
533
533
  assert(isVirtualCallSite(SVFUtil::getLLVMCallSite(cs->getCallSite())) && "not cpp virtual call");
534
534
 
@@ -382,7 +382,7 @@ void BVDataPTAImpl::onTheFlyCallGraphSolve(const CallSiteToFunPtrMap& callsites,
382
382
  {
383
383
  for(CallSiteToFunPtrMap::const_iterator iter = callsites.begin(), eiter = callsites.end(); iter!=eiter; ++iter)
384
384
  {
385
- const CallBlockNode* cs = iter->first;
385
+ const CallICFGNode* cs = iter->first;
386
386
 
387
387
  if (isVirtualCallSite(SVFUtil::getLLVMCallSite(cs->getCallSite())))
388
388
  {
@@ -201,7 +201,7 @@ LoadStmt* SVFIR::addLoadStmt(NodeID src, NodeID dst)
201
201
  * Add Store edge
202
202
  * Note that two store instructions may share the same Store SVFStmt
203
203
  */
204
- StoreStmt* SVFIR::addStoreStmt(NodeID src, NodeID dst, const IntraBlockNode* curVal)
204
+ StoreStmt* SVFIR::addStoreStmt(NodeID src, NodeID dst, const IntraICFGNode* curVal)
205
205
  {
206
206
  SVFVar* srcNode = getGNode(src);
207
207
  SVFVar* dstNode = getGNode(dst);
@@ -219,7 +219,7 @@ StoreStmt* SVFIR::addStoreStmt(NodeID src, NodeID dst, const IntraBlockNode* cur
219
219
  /*!
220
220
  * Add Call edge
221
221
  */
222
- CallPE* SVFIR::addCallPE(NodeID src, NodeID dst, const CallBlockNode* cs)
222
+ CallPE* SVFIR::addCallPE(NodeID src, NodeID dst, const CallICFGNode* cs)
223
223
  {
224
224
  SVFVar* srcNode = getGNode(src);
225
225
  SVFVar* dstNode = getGNode(dst);
@@ -237,7 +237,7 @@ CallPE* SVFIR::addCallPE(NodeID src, NodeID dst, const CallBlockNode* cs)
237
237
  /*!
238
238
  * Add Return edge
239
239
  */
240
- RetPE* SVFIR::addRetPE(NodeID src, NodeID dst, const CallBlockNode* cs)
240
+ RetPE* SVFIR::addRetPE(NodeID src, NodeID dst, const CallICFGNode* cs)
241
241
  {
242
242
  SVFVar* srcNode = getGNode(src);
243
243
  SVFVar* dstNode = getGNode(dst);
@@ -266,7 +266,7 @@ SVFStmt* SVFIR::addBlackHoleAddrStmt(NodeID node)
266
266
  /*!
267
267
  * Add Thread fork edge for parameter passing from a spawner to its spawnees
268
268
  */
269
- TDForkPE* SVFIR::addThreadForkPE(NodeID src, NodeID dst, const CallBlockNode* cs)
269
+ TDForkPE* SVFIR::addThreadForkPE(NodeID src, NodeID dst, const CallICFGNode* cs)
270
270
  {
271
271
  SVFVar* srcNode = getGNode(src);
272
272
  SVFVar* dstNode = getGNode(dst);
@@ -284,7 +284,7 @@ TDForkPE* SVFIR::addThreadForkPE(NodeID src, NodeID dst, const CallBlockNode* cs
284
284
  /*!
285
285
  * Add Thread fork edge for parameter passing from a spawnee back to its spawners
286
286
  */
287
- TDJoinPE* SVFIR::addThreadJoinPE(NodeID src, NodeID dst, const CallBlockNode* cs)
287
+ TDJoinPE* SVFIR::addThreadJoinPE(NodeID src, NodeID dst, const CallICFGNode* cs)
288
288
  {
289
289
  SVFVar* srcNode = getGNode(src);
290
290
  SVFVar* dstNode = getGNode(dst);
@@ -38,7 +38,7 @@ void DoubleFreeChecker::reportBug(ProgSlice* slice)
38
38
  if(slice->isSatisfiableForPairs() == false)
39
39
  {
40
40
  const SVFGNode* src = slice->getSource();
41
- const CallBlockNode* cs = getSrcCSID(src);
41
+ const CallICFGNode* cs = getSrcCSID(src);
42
42
  SVFUtil::errs() << bugMsg2("\t Double Free :") << " memory allocation at : ("
43
43
  << getSourceLoc(cs->getCallSite()) << ")\n";
44
44
  SVFUtil::errs() << "\t\t double free path: \n" << slice->evalFinalCond() << "\n";
@@ -35,14 +35,14 @@ using namespace SVFUtil;
35
35
 
36
36
  void FileChecker::reportNeverClose(const SVFGNode* src)
37
37
  {
38
- const CallBlockNode* cs = getSrcCSID(src);
38
+ const CallICFGNode* cs = getSrcCSID(src);
39
39
  SVFUtil::errs() << bugMsg1("\t FileNeverClose :") << " file open location at : ("
40
40
  << getSourceLoc(cs->getCallSite()) << ")\n";
41
41
  }
42
42
 
43
43
  void FileChecker::reportPartialClose(const SVFGNode* src)
44
44
  {
45
- const CallBlockNode* cs = getSrcCSID(src);
45
+ const CallICFGNode* cs = getSrcCSID(src);
46
46
  SVFUtil::errs() << bugMsg2("\t PartialFileClose :") << " file open location at : ("
47
47
  << getSourceLoc(cs->getCallSite()) << ")\n";
48
48
  }
@@ -46,7 +46,7 @@ void LeakChecker::initSrcs()
46
46
  for(SVFIR::CSToRetMap::iterator it = pag->getCallSiteRets().begin(),
47
47
  eit = pag->getCallSiteRets().end(); it!=eit; ++it)
48
48
  {
49
- const RetBlockNode* cs = it->first;
49
+ const RetICFGNode* cs = it->first;
50
50
  /// if this callsite return reside in a dead function then we do not care about its leaks
51
51
  /// for example instruction `int* p = malloc(size)` is in a dead function, then program won't allocate this memory
52
52
  /// for example a customized malloc `int p = malloc()` returns an integer value, then program treat it as a system malloc
@@ -65,8 +65,8 @@ void LeakChecker::initSrcs()
65
65
  worklist.push(it->first->getCallBlockNode());
66
66
  while (!worklist.empty())
67
67
  {
68
- const CallBlockNode* cs = worklist.pop();
69
- const RetBlockNode* retBlockNode = icfg->getRetBlockNode(cs->getCallSite());
68
+ const CallICFGNode* cs = worklist.pop();
69
+ const RetICFGNode* retBlockNode = icfg->getRetBlockNode(cs->getCallSite());
70
70
  const PAGNode* pagNode = pag->getCallSiteRet(retBlockNode);
71
71
  const SVFGNode* node = getSVFG()->getDefSVFGNode(pagNode);
72
72
  if (visited.test(node->getId()) == 0)
@@ -138,14 +138,14 @@ void LeakChecker::initSnks()
138
138
 
139
139
  void LeakChecker::reportNeverFree(const SVFGNode* src)
140
140
  {
141
- const CallBlockNode* cs = getSrcCSID(src);
141
+ const CallICFGNode* cs = getSrcCSID(src);
142
142
  SVFUtil::errs() << bugMsg1("\t NeverFree :") << " memory allocation at : ("
143
143
  << getSourceLoc(cs->getCallSite()) << ")\n";
144
144
  }
145
145
 
146
146
  void LeakChecker::reportPartialLeak(const SVFGNode* src)
147
147
  {
148
- const CallBlockNode* cs = getSrcCSID(src);
148
+ const CallICFGNode* cs = getSrcCSID(src);
149
149
  SVFUtil::errs() << bugMsg2("\t PartialLeak :") << " memory allocation at : ("
150
150
  << getSourceLoc(cs->getCallSite()) << ")\n";
151
151
  }
@@ -175,7 +175,7 @@ void LeakChecker::reportBug(ProgSlice* slice)
175
175
  void LeakChecker::testsValidation(const ProgSlice* slice)
176
176
  {
177
177
  const SVFGNode* source = slice->getSource();
178
- const CallBlockNode* cs = getSrcCSID(source);
178
+ const CallICFGNode* cs = getSrcCSID(source);
179
179
  const SVFFunction* fun = getCallee(cs->getCallSite());
180
180
  if(fun==nullptr)
181
181
  return;
@@ -188,7 +188,7 @@ void LeakChecker::testsValidation(const ProgSlice* slice)
188
188
  void LeakChecker::validateSuccessTests(const SVFGNode* source, const SVFFunction* fun)
189
189
  {
190
190
 
191
- const CallBlockNode* cs = getSrcCSID(source);
191
+ const CallICFGNode* cs = getSrcCSID(source);
192
192
 
193
193
  bool success = false;
194
194
 
@@ -241,7 +241,7 @@ void LeakChecker::validateSuccessTests(const SVFGNode* source, const SVFFunction
241
241
  void LeakChecker::validateExpectedFailureTests(const SVFGNode* source, const SVFFunction* fun)
242
242
  {
243
243
 
244
- const CallBlockNode* cs = getSrcCSID(source);
244
+ const CallICFGNode* cs = getSrcCSID(source);
245
245
 
246
246
  bool expectedFailure = false;
247
247
 
@@ -130,7 +130,7 @@ bool ProgSlice::isSatisfiableForPairs()
130
130
  return true;
131
131
  }
132
132
 
133
- const CallBlockNode* ProgSlice::getCallSite(const SVFGEdge* edge) const
133
+ const CallICFGNode* ProgSlice::getCallSite(const SVFGEdge* edge) const
134
134
  {
135
135
  assert(edge->isCallVFGEdge() && "not a call svfg edge?");
136
136
  if(const CallDirSVFGEdge* callEdge = SVFUtil::dyn_cast<CallDirSVFGEdge>(edge))
@@ -138,7 +138,7 @@ const CallBlockNode* ProgSlice::getCallSite(const SVFGEdge* edge) const
138
138
  else
139
139
  return getSVFG()->getCallSite(SVFUtil::cast<CallIndSVFGEdge>(edge)->getCallSiteId());
140
140
  }
141
- const CallBlockNode* ProgSlice::getRetSite(const SVFGEdge* edge) const
141
+ const CallICFGNode* ProgSlice::getRetSite(const SVFGEdge* edge) const
142
142
  {
143
143
  assert(edge->isRetVFGEdge() && "not a return svfg edge?");
144
144
  if(const RetDirSVFGEdge* callEdge = SVFUtil::dyn_cast<RetDirSVFGEdge>(edge))
@@ -55,7 +55,7 @@ PTACallGraph* CallGraphBuilder::buildCallGraph(SVFModule* svfModule)
55
55
  {
56
56
  if(const SVFFunction* callee = getCallee(inst))
57
57
  {
58
- const CallBlockNode* callBlockNode = icfg->getCallBlockNode(inst);
58
+ const CallICFGNode* callBlockNode = icfg->getCallBlockNode(inst);
59
59
  const SVFFunction* caller = LLVMModuleSet::getLLVMModuleSet()->getSVFFunction(fun);
60
60
  callgraph->addDirectCallGraphEdge(callBlockNode,caller,callee);
61
61
  }
@@ -83,7 +83,7 @@ PTACallGraph* ThreadCallGraphBuilder::buildThreadCallGraph(SVFModule* svfModule)
83
83
  const Instruction *inst = &*II;
84
84
  if (tdAPI->isTDFork(inst))
85
85
  {
86
- const CallBlockNode* cs = icfg->getCallBlockNode(inst);
86
+ const CallICFGNode* cs = icfg->getCallBlockNode(inst);
87
87
  cg->addForksite(cs);
88
88
  const Function* forkee = SVFUtil::dyn_cast<Function>(tdAPI->getForkedFun(inst));
89
89
  if (forkee)
@@ -98,7 +98,7 @@ PTACallGraph* ThreadCallGraphBuilder::buildThreadCallGraph(SVFModule* svfModule)
98
98
  }
99
99
  else if (tdAPI->isHareParFor(inst))
100
100
  {
101
- const CallBlockNode* cs = icfg->getCallBlockNode(inst);
101
+ const CallICFGNode* cs = icfg->getCallBlockNode(inst);
102
102
  cg->addParForSite(cs);
103
103
  const Function* taskFunc = SVFUtil::dyn_cast<Function>(tdAPI->getTaskFuncAtHareParForSite(inst));
104
104
  if (taskFunc)
@@ -122,7 +122,7 @@ PTACallGraph* ThreadCallGraphBuilder::buildThreadCallGraph(SVFModule* svfModule)
122
122
  const Instruction *inst = &*II;
123
123
  if (tdAPI->isTDJoin(inst))
124
124
  {
125
- const CallBlockNode* cs = icfg->getCallBlockNode(inst);
125
+ const CallICFGNode* cs = icfg->getCallBlockNode(inst);
126
126
  cg->addJoinsite(cs);
127
127
  }
128
128
  }
@@ -31,7 +31,7 @@ void ICFGPrinter::printICFGToJson(const std::string& filename)
31
31
  llvm::json::Object ICFGNode_Obj;
32
32
  ICFGNode_Obj["ICFG_ID"] = id;
33
33
  ICFGNode_Obj["Node Type"] = getICFGKind(node->getNodeKind());
34
- if(IntraBlockNode* bNode = SVFUtil::dyn_cast<IntraBlockNode>(node))
34
+ if(IntraICFGNode* bNode = SVFUtil::dyn_cast<IntraICFGNode>(node))
35
35
  {
36
36
  ICFGNode_Obj["Source Location"] = getSourceLoc(bNode->getInst());
37
37
  SVFIR::SVFStmtList& edges = SVFIR::getPAG()->getPTASVFStmtList(bNode);
@@ -61,7 +61,7 @@ void ICFGPrinter::printICFGToJson(const std::string& filename)
61
61
  llvm::json::Value PagEdge_value = llvm::json::Array{PAGEdge_array};
62
62
  ICFGNode_Obj["SVFIR Edges"] = PagEdge_value;
63
63
  }
64
- else if(FunEntryBlockNode* entry = SVFUtil::dyn_cast<FunEntryBlockNode>(node))
64
+ else if(FunEntryICFGNode* entry = SVFUtil::dyn_cast<FunEntryICFGNode>(node))
65
65
  {
66
66
  if (isExtCall(entry->getFun()))
67
67
  ICFGNode_Obj["isExtCall"] = true;
@@ -72,7 +72,7 @@ void ICFGPrinter::printICFGToJson(const std::string& filename)
72
72
  }
73
73
  ICFGNode_Obj["Function Name"] = entry->getFun()->getName();
74
74
  }
75
- else if (FunExitBlockNode* exit = SVFUtil::dyn_cast<FunExitBlockNode>(node))
75
+ else if (FunExitICFGNode* exit = SVFUtil::dyn_cast<FunExitICFGNode>(node))
76
76
  {
77
77
  if (isExtCall(exit->getFun()))
78
78
  ICFGNode_Obj["isExtCall"] = true;
@@ -83,11 +83,11 @@ void ICFGPrinter::printICFGToJson(const std::string& filename)
83
83
  }
84
84
  ICFGNode_Obj["Function Name"] = exit->getFun()->getName();
85
85
  }
86
- else if (CallBlockNode* call = SVFUtil::dyn_cast<CallBlockNode>(node))
86
+ else if (CallICFGNode* call = SVFUtil::dyn_cast<CallICFGNode>(node))
87
87
  {
88
88
  ICFGNode_Obj["Source Location"] = getSourceLoc(call->getCallSite());
89
89
  }
90
- else if (RetBlockNode* ret = SVFUtil::dyn_cast<RetBlockNode>(node))
90
+ else if (RetICFGNode* ret = SVFUtil::dyn_cast<RetICFGNode>(node))
91
91
  {
92
92
  ICFGNode_Obj["Source Location"] = getSourceLoc(ret->getCallSite());
93
93
  }
@@ -58,7 +58,7 @@ void ICFGBuilder::build(SVFModule* svfModule)
58
58
  */
59
59
  void ICFGBuilder::processFunEntry(const SVFFunction* fun, WorkList& worklist)
60
60
  {
61
- FunEntryBlockNode* FunEntryBlockNode = icfg->getFunEntryBlockNode(fun);
61
+ FunEntryICFGNode* FunEntryICFGNode = icfg->getFunEntryBlockNode(fun);
62
62
  const Instruction* entryInst = &((fun->getLLVMFun()->getEntryBlock()).front());
63
63
  InstVec insts;
64
64
  if (isIntrinsicInst(entryInst))
@@ -69,7 +69,7 @@ void ICFGBuilder::processFunEntry(const SVFFunction* fun, WorkList& worklist)
69
69
  nit != enit; ++nit)
70
70
  {
71
71
  ICFGNode* instNode = getOrAddBlockICFGNode(*nit); //add interprocedure edge
72
- icfg->addIntraEdge(FunEntryBlockNode, instNode);
72
+ icfg->addIntraEdge(FunEntryICFGNode, instNode);
73
73
  worklist.push(*nit);
74
74
  }
75
75
  }
@@ -92,8 +92,8 @@ void ICFGBuilder::processFunBody(WorkList& worklist)
92
92
  {
93
93
  const Function* fun = inst->getFunction();
94
94
  const SVFFunction* svfFun = LLVMModuleSet::getLLVMModuleSet()->getSVFFunction(fun);
95
- FunExitBlockNode* FunExitBlockNode = icfg->getFunExitBlockNode(svfFun);
96
- icfg->addIntraEdge(srcNode, FunExitBlockNode);
95
+ FunExitICFGNode* FunExitICFGNode = icfg->getFunExitBlockNode(svfFun);
96
+ icfg->addIntraEdge(srcNode, FunExitICFGNode);
97
97
  }
98
98
  InstVec nextInsts;
99
99
  getNextInsts(inst, nextInsts);
@@ -105,8 +105,7 @@ void ICFGBuilder::processFunBody(WorkList& worklist)
105
105
  ICFGNode* dstNode = getOrAddBlockICFGNode(succ);
106
106
  if (isNonInstricCallSite(inst))
107
107
  {
108
- RetBlockNode* retICFGNode = getOrAddRetICFGNode(inst);
109
- icfg->addIntraEdge(srcNode, retICFGNode);
108
+ RetICFGNode* retICFGNode = getOrAddRetICFGNode(inst);
110
109
  srcNode = retICFGNode;
111
110
  }
112
111
 
@@ -118,8 +117,7 @@ void ICFGBuilder::processFunBody(WorkList& worklist)
118
117
  else
119
118
  icfg->addIntraEdge(srcNode, dstNode);
120
119
  }
121
-
122
- if (const SwitchInst* si = SVFUtil::dyn_cast<SwitchInst>(inst))
120
+ else if (const SwitchInst* si = SVFUtil::dyn_cast<SwitchInst>(inst))
123
121
  {
124
122
  icfg->addConditionalIntraEdge(srcNode, dstNode, si->getCondition(),branchID);
125
123
  }
@@ -140,14 +138,14 @@ void ICFGBuilder::processFunBody(WorkList& worklist)
140
138
  */
141
139
  void ICFGBuilder::processFunExit(const SVFFunction* fun)
142
140
  {
143
- FunExitBlockNode* FunExitBlockNode = icfg->getFunExitBlockNode(fun);
141
+ FunExitICFGNode* FunExitICFGNode = icfg->getFunExitBlockNode(fun);
144
142
 
145
143
  for (inst_iterator II = inst_begin(fun->getLLVMFun()), EE = inst_end(fun->getLLVMFun()); II != EE; ++II)
146
144
  {
147
145
  const Instruction *inst = &*II;
148
146
  if(SVFUtil::isa<ReturnInst>(inst)) {
149
147
  ICFGNode* instNode = getOrAddBlockICFGNode(inst);
150
- icfg->addIntraEdge(instNode, FunExitBlockNode);
148
+ icfg->addIntraEdge(instNode, FunExitICFGNode);
151
149
  }
152
150
  }
153
151
  }
@@ -159,13 +157,12 @@ void ICFGBuilder::processFunExit(const SVFFunction* fun)
159
157
  * (1) Add and get CallBlockICFGNode
160
158
  * (2) Handle call instruction by creating interprocedural edges
161
159
  */
162
- InterBlockNode* ICFGBuilder::getOrAddInterBlockICFGNode(const Instruction* inst)
160
+ InterICFGNode* ICFGBuilder::getOrAddInterBlockICFGNode(const Instruction* inst)
163
161
  {
164
162
  assert(SVFUtil::isCallSite(inst) && "not a call instruction?");
165
163
  assert(SVFUtil::isNonInstricCallSite(inst) && "associating an intrinsic debug instruction with an ICFGNode!");
166
- CallBlockNode* callICFGNode = getOrAddCallICFGNode(inst);
167
- if (const SVFFunction* callee = getCallee(inst))
168
- addICFGInterEdges(inst, callee); //creating interprocedural edges
164
+ CallICFGNode* callICFGNode = getOrAddCallICFGNode(inst);
165
+ addICFGInterEdges(inst, getCallee(inst)); //creating interprocedural edges
169
166
  return callICFGNode;
170
167
  }
171
168
 
@@ -174,15 +171,24 @@ InterBlockNode* ICFGBuilder::getOrAddInterBlockICFGNode(const Instruction* inst)
174
171
  */
175
172
  void ICFGBuilder::addICFGInterEdges(const Instruction* cs, const SVFFunction* callee)
176
173
  {
177
- CallBlockNode* CallBlockNode = getOrAddCallICFGNode(cs);
178
- FunEntryBlockNode* calleeEntryNode = icfg->getFunEntryBlockNode(callee);
179
- icfg->addCallEdge(CallBlockNode, calleeEntryNode, cs);
180
-
181
- if (!isExtCall(callee))
182
- {
183
- RetBlockNode* retBlockNode = getOrAddRetICFGNode(cs);
184
- FunExitBlockNode* calleeExitNode = icfg->getFunExitBlockNode(callee);
174
+ CallICFGNode* CallICFGNode = getOrAddCallICFGNode(cs);
175
+ RetICFGNode* retBlockNode = getOrAddRetICFGNode(cs);
176
+
177
+ /// direct call
178
+ if(callee){
179
+ FunEntryICFGNode* calleeEntryNode = icfg->getFunEntryBlockNode(callee);
180
+ FunExitICFGNode* calleeExitNode = icfg->getFunExitBlockNode(callee);
181
+ icfg->addCallEdge(CallICFGNode, calleeEntryNode, cs);
185
182
  icfg->addRetEdge(calleeExitNode, retBlockNode, cs);
183
+ /// if this is an external function (no function body)
184
+ if (isExtCall(callee))
185
+ {
186
+ icfg->addIntraEdge(calleeEntryNode, calleeExitNode);
187
+ }
188
+ }
189
+ /// indirect call (don't know callee)
190
+ else{
191
+ icfg->addIntraEdge(CallICFGNode, retBlockNode);
186
192
  }
187
193
  }
188
194
  /*
@@ -196,15 +202,15 @@ void ICFGBuilder::connectGlobalToProgEntry(SVFModule* svfModule)
196
202
  if(mainFunc == nullptr)
197
203
  return;
198
204
 
199
- FunEntryBlockNode* entryNode = icfg->getFunEntryBlockNode(mainFunc);
200
- GlobalBlockNode* globalNode = icfg->getGlobalBlockNode();
205
+ FunEntryICFGNode* entryNode = icfg->getFunEntryBlockNode(mainFunc);
206
+ GlobalICFGNode* globalNode = icfg->getGlobalBlockNode();
201
207
 
202
208
  std::vector<ICFGEdge*> toBeRemovedEdges;
203
209
  for(ICFGEdge* edge : entryNode->getOutEdges())
204
210
  toBeRemovedEdges.push_back(edge);
205
211
 
206
212
  for(ICFGEdge* edge : toBeRemovedEdges){
207
- assert(SVFUtil::isa<IntraCFGEdge>(edge) && "the outgoing edge of FunEntryBlockNode is not an intraCFGEdge?");
213
+ assert(SVFUtil::isa<IntraCFGEdge>(edge) && "the outgoing edge of FunEntryICFGNode is not an intraCFGEdge?");
208
214
  icfg->removeICFGEdge(edge);
209
215
  IntraCFGEdge* intraEdge = new IntraCFGEdge(globalNode, edge->getDstNode());
210
216
  icfg->addICFGEdge(intraEdge);
@@ -754,8 +754,8 @@ void SVFIRBuilder::visitCallSite(CallSite cs)
754
754
  DBOUT(DPAGBuild,
755
755
  outs() << "process callsite " << *cs.getInstruction() << "\n");
756
756
 
757
- CallBlockNode* callBlockNode = pag->getICFG()->getCallBlockNode(cs.getInstruction());
758
- RetBlockNode* retBlockNode = pag->getICFG()->getRetBlockNode(cs.getInstruction());
757
+ CallICFGNode* callBlockNode = pag->getICFG()->getCallBlockNode(cs.getInstruction());
758
+ RetICFGNode* retBlockNode = pag->getICFG()->getRetBlockNode(cs.getInstruction());
759
759
 
760
760
  pag->addCallSite(callBlockNode);
761
761
 
@@ -918,7 +918,7 @@ void SVFIRBuilder::handleDirectCall(CallSite cs, const SVFFunction *F)
918
918
  if (!cs.getType()->isVoidTy())
919
919
  {
920
920
  NodeID srcret = getReturnNode(F);
921
- CallBlockNode* icfgNode = pag->getICFG()->getCallBlockNode(cs.getInstruction());
921
+ CallICFGNode* icfgNode = pag->getICFG()->getCallBlockNode(cs.getInstruction());
922
922
  addRetEdge(srcret, dstrec,icfgNode);
923
923
  }
924
924
  //Iterators for the actual and formal parameters
@@ -940,7 +940,7 @@ void SVFIRBuilder::handleDirectCall(CallSite cs, const SVFFunction *F)
940
940
 
941
941
  NodeID dstFA = getValueNode(FA);
942
942
  NodeID srcAA = getValueNode(AA);
943
- CallBlockNode* icfgNode = pag->getICFG()->getCallBlockNode(cs.getInstruction());
943
+ CallICFGNode* icfgNode = pag->getICFG()->getCallBlockNode(cs.getInstruction());
944
944
  addCallEdge(srcAA, dstFA, icfgNode);
945
945
  }
946
946
  //Any remaining actual args must be varargs.
@@ -952,7 +952,7 @@ void SVFIRBuilder::handleDirectCall(CallSite cs, const SVFFunction *F)
952
952
  {
953
953
  Value *AA = *itA;
954
954
  NodeID vnAA = getValueNode(AA);
955
- CallBlockNode* icfgNode = pag->getICFG()->getCallBlockNode(cs.getInstruction());
955
+ CallICFGNode* icfgNode = pag->getICFG()->getCallBlockNode(cs.getInstruction());
956
956
  addCallEdge(vnAA,vaF, icfgNode);
957
957
  }
958
958
  }
@@ -1435,7 +1435,7 @@ void SVFIRBuilder::handleExtCall(CallSite cs, const SVFFunction *callee)
1435
1435
  /// Connect actual parameter to formal parameter of the start routine
1436
1436
  if(SVFUtil::isa<PointerType>(actualParm->getType()) && SVFUtil::isa<PointerType>(formalParm->getType()) )
1437
1437
  {
1438
- CallBlockNode* icfgNode = pag->getICFG()->getCallBlockNode(inst);
1438
+ CallICFGNode* icfgNode = pag->getICFG()->getCallBlockNode(inst);
1439
1439
  addThreadForkEdge(pag->getValueNode(actualParm), pag->getValueNode(formalParm),icfgNode);
1440
1440
  }
1441
1441
  }
@@ -1464,7 +1464,7 @@ void SVFIRBuilder::handleExtCall(CallSite cs, const SVFFunction *callee)
1464
1464
  /// Connect actual parameter to formal parameter of the start routine
1465
1465
  if(SVFUtil::isa<PointerType>(actualParm->getType()) && SVFUtil::isa<PointerType>(formalParm->getType()) )
1466
1466
  {
1467
- CallBlockNode* icfgNode = pag->getICFG()->getCallBlockNode(inst);
1467
+ CallICFGNode* icfgNode = pag->getICFG()->getCallBlockNode(inst);
1468
1468
  addThreadForkEdge(pag->getValueNode(actualParm), pag->getValueNode(formalParm),icfgNode);
1469
1469
  }
1470
1470
  }
@@ -1486,7 +1486,7 @@ void SVFIRBuilder::handleExtCall(CallSite cs, const SVFFunction *callee)
1486
1486
  */
1487
1487
  void SVFIRBuilder::handleIndCall(CallSite cs)
1488
1488
  {
1489
- const CallBlockNode* cbn = pag->getICFG()->getCallBlockNode(cs.getInstruction());
1489
+ const CallICFGNode* cbn = pag->getICFG()->getCallBlockNode(cs.getInstruction());
1490
1490
  pag->addIndirectCallsites(cbn,pag->getValueNode(cs.getCalledValue()));
1491
1491
  }
1492
1492