svf-tools 1.0.340 → 1.0.344

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 (487) hide show
  1. package/SVF-doxygen/html/html/AndersenSCD_8cpp_source.html +2 -2
  2. package/SVF-doxygen/html/html/Andersen_8cpp_source.html +6 -6
  3. package/SVF-doxygen/html/html/BasicTypes_8h_source.html +2 -2
  4. package/SVF-doxygen/html/html/CallGraphBuilder_8cpp_source.html +9 -9
  5. package/SVF-doxygen/html/html/ConsG_8cpp_source.html +2 -2
  6. package/SVF-doxygen/html/html/ConsG_8h_source.html +2 -2
  7. package/SVF-doxygen/html/html/ContextDDA_8cpp_source.html +6 -6
  8. package/SVF-doxygen/html/html/ContextDDA_8h_source.html +7 -7
  9. package/SVF-doxygen/html/html/DDAClient_8cpp_source.html +5 -5
  10. package/SVF-doxygen/html/html/DDAClient_8h_source.html +3 -3
  11. package/SVF-doxygen/html/html/DDAVFSolver_8h_source.html +7 -7
  12. package/SVF-doxygen/html/html/DoubleFreeChecker_8cpp_source.html +3 -3
  13. package/SVF-doxygen/html/html/FSMPTA_8h_source.html +3 -3
  14. package/SVF-doxygen/html/html/FileChecker_8cpp_source.html +3 -3
  15. package/SVF-doxygen/html/html/FlowDDA_8cpp_source.html +3 -3
  16. package/SVF-doxygen/html/html/FlowDDA_8h_source.html +7 -7
  17. package/SVF-doxygen/html/html/FlowSensitive_8cpp_source.html +6 -6
  18. package/SVF-doxygen/html/html/FlowSensitive_8h_source.html +2 -2
  19. package/SVF-doxygen/html/html/Graph2Json_8cpp_source.html +6 -6
  20. package/SVF-doxygen/html/html/ICFGBuilder_8cpp_source.html +11 -11
  21. package/SVF-doxygen/html/html/ICFGBuilder_8h_source.html +15 -15
  22. package/SVF-doxygen/html/html/ICFGEdge_8h_source.html +1 -1
  23. package/SVF-doxygen/html/html/ICFGNode_8h.html +7 -7
  24. package/SVF-doxygen/html/html/ICFGNode_8h_source.html +69 -69
  25. package/SVF-doxygen/html/html/ICFGStat_8h_source.html +1 -1
  26. package/SVF-doxygen/html/html/ICFG_8cpp_source.html +64 -61
  27. package/SVF-doxygen/html/html/ICFG_8h_source.html +46 -46
  28. package/SVF-doxygen/html/html/LeakChecker_8cpp_source.html +9 -9
  29. package/SVF-doxygen/html/html/LeakChecker_8h_source.html +6 -6
  30. package/SVF-doxygen/html/html/LocationSet_8cpp_source.html +1 -1
  31. package/SVF-doxygen/html/html/LockAnalysis_8cpp_source.html +2 -2
  32. package/SVF-doxygen/html/html/LockResultValidator_8cpp_source.html +1 -1
  33. package/SVF-doxygen/html/html/LockResultValidator_8h_source.html +5 -5
  34. package/SVF-doxygen/html/html/MHP_8cpp_source.html +9 -9
  35. package/SVF-doxygen/html/html/MHP_8h_source.html +6 -6
  36. package/SVF-doxygen/html/html/MSSAMuChi_8h_source.html +9 -9
  37. package/SVF-doxygen/html/html/MTAResultValidator_8cpp_source.html +2 -2
  38. package/SVF-doxygen/html/html/MTAStat_8cpp_source.html +5 -5
  39. package/SVF-doxygen/html/html/MemRegion_8cpp_source.html +27 -27
  40. package/SVF-doxygen/html/html/MemRegion_8h_source.html +18 -18
  41. package/SVF-doxygen/html/html/MemSSA_8cpp_source.html +9 -9
  42. package/SVF-doxygen/html/html/MemSSA_8h_source.html +12 -12
  43. package/SVF-doxygen/html/html/NodeIDAllocator_8cpp_source.html +1 -1
  44. package/SVF-doxygen/html/html/Options_8cpp_source.html +2 -2
  45. package/SVF-doxygen/html/html/Options_8h_source.html +2 -2
  46. package/SVF-doxygen/html/html/PCG_8cpp_source.html +2 -2
  47. package/SVF-doxygen/html/html/PCG_8h_source.html +4 -4
  48. package/SVF-doxygen/html/html/PTACallGraph_8cpp_source.html +10 -10
  49. package/SVF-doxygen/html/html/PTACallGraph_8h_source.html +17 -17
  50. package/SVF-doxygen/html/html/PTAStat_8cpp_source.html +5 -5
  51. package/SVF-doxygen/html/html/PointerAnalysisImpl_8cpp_source.html +6 -6
  52. package/SVF-doxygen/html/html/PointerAnalysisImpl_8h_source.html +2 -2
  53. package/SVF-doxygen/html/html/PointerAnalysis_8cpp_source.html +18 -18
  54. package/SVF-doxygen/html/html/PointerAnalysis_8h_source.html +17 -17
  55. package/SVF-doxygen/html/html/ProgSlice_8cpp_source.html +4 -4
  56. package/SVF-doxygen/html/html/ProgSlice_8h_source.html +4 -4
  57. package/SVF-doxygen/html/html/SVFGBuilder_8h_source.html +3 -3
  58. package/SVF-doxygen/html/html/SVFGNode_8h_source.html +17 -17
  59. package/SVF-doxygen/html/html/SVFGOPT_8cpp_source.html +2 -2
  60. package/SVF-doxygen/html/html/SVFGOPT_8h_source.html +9 -9
  61. package/SVF-doxygen/html/html/SVFG_8cpp_source.html +32 -32
  62. package/SVF-doxygen/html/html/SVFG_8h_source.html +27 -27
  63. package/SVF-doxygen/html/html/SVFIRBuilder_8cpp_source.html +3 -3
  64. package/SVF-doxygen/html/html/SVFIRBuilder_8h_source.html +13 -13
  65. package/SVF-doxygen/html/html/SVFIR_8cpp_source.html +9 -9
  66. package/SVF-doxygen/html/html/SVFIR_8h_source.html +32 -32
  67. package/SVF-doxygen/html/html/SVFStatements_8cpp_source.html +20 -20
  68. package/SVF-doxygen/html/html/SVFStatements_8h_source.html +14 -14
  69. package/SVF-doxygen/html/html/SVFUtil_8cpp_source.html +8 -8
  70. package/SVF-doxygen/html/html/SVFUtil_8h_source.html +5 -5
  71. package/SVF-doxygen/html/html/SVFVariables_8cpp_source.html +3 -3
  72. package/SVF-doxygen/html/html/SaberCheckerAPI_8h_source.html +7 -7
  73. package/SVF-doxygen/html/html/SaberSVFGBuilder_8cpp_source.html +2 -2
  74. package/SVF-doxygen/html/html/SaberSVFGBuilder_8h_source.html +4 -4
  75. package/SVF-doxygen/html/html/SrcSnkDDA_8cpp_source.html +2 -2
  76. package/SVF-doxygen/html/html/SrcSnkDDA_8h_source.html +2 -2
  77. package/SVF-doxygen/html/html/SymbolTableBuilder_8cpp_source.html +16 -15
  78. package/SVF-doxygen/html/html/SymbolTableBuilder_8h_source.html +1 -1
  79. package/SVF-doxygen/html/html/SymbolTableInfo_8cpp_source.html +30 -28
  80. package/SVF-doxygen/html/html/SymbolTableInfo_8h_source.html +44 -42
  81. package/SVF-doxygen/html/html/TCT_8h_source.html +3 -3
  82. package/SVF-doxygen/html/html/ThreadCallGraph_8cpp_source.html +15 -15
  83. package/SVF-doxygen/html/html/ThreadCallGraph_8h_source.html +20 -20
  84. package/SVF-doxygen/html/html/TypeAnalysis_8cpp_source.html +5 -5
  85. package/SVF-doxygen/html/html/TypeAnalysis_8h_source.html +2 -2
  86. package/SVF-doxygen/html/html/TypeBasedHeapCloning_8cpp_source.html +3 -3
  87. package/SVF-doxygen/html/html/VFGNode_8h_source.html +11 -11
  88. package/SVF-doxygen/html/html/VFG_8cpp_source.html +20 -20
  89. package/SVF-doxygen/html/html/VFG_8h_source.html +19 -19
  90. package/SVF-doxygen/html/html/VersionedFlowSensitive_8cpp_source.html +4 -4
  91. package/SVF-doxygen/html/html/WPAPass_8cpp_source.html +4 -4
  92. package/SVF-doxygen/html/html/annotated.html +17 -17
  93. package/SVF-doxygen/html/html/classSVF_1_1ActualINSVFGNode-members.html +3 -3
  94. package/SVF-doxygen/html/html/classSVF_1_1ActualINSVFGNode.html +23 -23
  95. package/SVF-doxygen/html/html/classSVF_1_1ActualOUTSVFGNode-members.html +3 -3
  96. package/SVF-doxygen/html/html/classSVF_1_1ActualOUTSVFGNode.html +23 -23
  97. package/SVF-doxygen/html/html/classSVF_1_1ActualParmVFGNode-members.html +3 -3
  98. package/SVF-doxygen/html/html/classSVF_1_1ActualParmVFGNode.html +22 -22
  99. package/SVF-doxygen/html/html/classSVF_1_1ActualRetVFGNode-members.html +3 -3
  100. package/SVF-doxygen/html/html/classSVF_1_1ActualRetVFGNode.html +24 -24
  101. package/SVF-doxygen/html/html/classSVF_1_1AddrStmt.html +3 -3
  102. package/SVF-doxygen/html/html/classSVF_1_1AliasDDAClient-members.html +1 -1
  103. package/SVF-doxygen/html/html/classSVF_1_1AliasDDAClient.html +7 -7
  104. package/SVF-doxygen/html/html/classSVF_1_1Andersen-members.html +12 -12
  105. package/SVF-doxygen/html/html/classSVF_1_1Andersen.html +47 -47
  106. package/SVF-doxygen/html/html/classSVF_1_1AndersenBase-members.html +12 -12
  107. package/SVF-doxygen/html/html/classSVF_1_1AndersenBase.html +34 -34
  108. package/SVF-doxygen/html/html/classSVF_1_1AndersenHCD-members.html +12 -12
  109. package/SVF-doxygen/html/html/classSVF_1_1AndersenHCD.html +32 -32
  110. package/SVF-doxygen/html/html/classSVF_1_1AndersenHLCD-members.html +12 -12
  111. package/SVF-doxygen/html/html/classSVF_1_1AndersenHLCD.html +32 -32
  112. package/SVF-doxygen/html/html/classSVF_1_1AndersenLCD-members.html +12 -12
  113. package/SVF-doxygen/html/html/classSVF_1_1AndersenLCD.html +32 -32
  114. package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD-members.html +12 -12
  115. package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD.html +34 -34
  116. package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR-members.html +12 -12
  117. package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR.html +32 -32
  118. package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff-members.html +12 -12
  119. package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff.html +32 -32
  120. package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl-members.html +12 -12
  121. package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl.html +38 -38
  122. package/SVF-doxygen/html/html/classSVF_1_1BinaryOPStmt.html +6 -5
  123. package/SVF-doxygen/html/html/classSVF_1_1BinaryOPVFGNode.html +1 -1
  124. package/SVF-doxygen/html/html/classSVF_1_1BranchStmt.html +15 -12
  125. package/SVF-doxygen/html/html/classSVF_1_1CallBlockNode.html +5 -3
  126. package/SVF-doxygen/html/html/classSVF_1_1CallCFGEdge.html +2 -2
  127. package/SVF-doxygen/html/html/classSVF_1_1CallCHI-members.html +3 -3
  128. package/SVF-doxygen/html/html/classSVF_1_1CallCHI.html +22 -22
  129. package/SVF-doxygen/html/html/classSVF_1_1CallGraphBuilder.html +4 -4
  130. package/SVF-doxygen/html/html/classSVF_1_1CallICFGNode-members.html +158 -0
  131. package/SVF-doxygen/html/html/classSVF_1_1CallICFGNode.html +852 -0
  132. package/SVF-doxygen/html/html/classSVF_1_1CallICFGNode.png +0 -0
  133. package/SVF-doxygen/html/html/classSVF_1_1CallMU-members.html +3 -3
  134. package/SVF-doxygen/html/html/classSVF_1_1CallMU.html +22 -22
  135. package/SVF-doxygen/html/html/classSVF_1_1CallPE-members.html +4 -4
  136. package/SVF-doxygen/html/html/classSVF_1_1CallPE.html +31 -31
  137. package/SVF-doxygen/html/html/classSVF_1_1CmpStmt.html +6 -5
  138. package/SVF-doxygen/html/html/classSVF_1_1CmpVFGNode.html +1 -1
  139. package/SVF-doxygen/html/html/classSVF_1_1CondPTAImpl-members.html +12 -12
  140. package/SVF-doxygen/html/html/classSVF_1_1CondPTAImpl.html +31 -31
  141. package/SVF-doxygen/html/html/classSVF_1_1ConstraintGraph.html +3 -3
  142. package/SVF-doxygen/html/html/classSVF_1_1ContextDDA-members.html +14 -14
  143. package/SVF-doxygen/html/html/classSVF_1_1ContextDDA.html +60 -60
  144. package/SVF-doxygen/html/html/classSVF_1_1CopyStmt.html +3 -3
  145. package/SVF-doxygen/html/html/classSVF_1_1DDAVFSolver-members.html +1 -1
  146. package/SVF-doxygen/html/html/classSVF_1_1DDAVFSolver.html +16 -16
  147. package/SVF-doxygen/html/html/classSVF_1_1DistinctMRG-members.html +21 -21
  148. package/SVF-doxygen/html/html/classSVF_1_1DistinctMRG.html +51 -51
  149. package/SVF-doxygen/html/html/classSVF_1_1DoubleFreeChecker-members.html +5 -5
  150. package/SVF-doxygen/html/html/classSVF_1_1DoubleFreeChecker.html +16 -16
  151. package/SVF-doxygen/html/html/classSVF_1_1FIObjVar.html +3 -3
  152. package/SVF-doxygen/html/html/classSVF_1_1FSMPTA-members.html +12 -12
  153. package/SVF-doxygen/html/html/classSVF_1_1FSMPTA.html +33 -33
  154. package/SVF-doxygen/html/html/classSVF_1_1FileChecker-members.html +5 -5
  155. package/SVF-doxygen/html/html/classSVF_1_1FileChecker.html +20 -20
  156. package/SVF-doxygen/html/html/classSVF_1_1FlowDDA-members.html +11 -11
  157. package/SVF-doxygen/html/html/classSVF_1_1FlowDDA.html +52 -52
  158. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive-members.html +12 -12
  159. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive.html +43 -43
  160. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveTBHC-members.html +12 -12
  161. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveTBHC.html +33 -33
  162. package/SVF-doxygen/html/html/classSVF_1_1ForkJoinAnalysis-members.html +1 -1
  163. package/SVF-doxygen/html/html/classSVF_1_1ForkJoinAnalysis.html +21 -21
  164. package/SVF-doxygen/html/html/classSVF_1_1FormalINSVFGNode-members.html +3 -3
  165. package/SVF-doxygen/html/html/classSVF_1_1FormalINSVFGNode.html +19 -19
  166. package/SVF-doxygen/html/html/classSVF_1_1FormalOUTSVFGNode-members.html +3 -3
  167. package/SVF-doxygen/html/html/classSVF_1_1FormalOUTSVFGNode.html +18 -18
  168. package/SVF-doxygen/html/html/classSVF_1_1FunEntryBlockNode.html +4 -2
  169. package/SVF-doxygen/html/html/classSVF_1_1FunEntryICFGNode-members.html +150 -0
  170. package/SVF-doxygen/html/html/classSVF_1_1FunEntryICFGNode.html +618 -0
  171. package/SVF-doxygen/html/html/classSVF_1_1FunEntryICFGNode.png +0 -0
  172. package/SVF-doxygen/html/html/classSVF_1_1FunExitBlockNode.html +4 -2
  173. package/SVF-doxygen/html/html/classSVF_1_1FunExitICFGNode-members.html +149 -0
  174. package/SVF-doxygen/html/html/classSVF_1_1FunExitICFGNode.html +624 -0
  175. package/SVF-doxygen/html/html/classSVF_1_1FunExitICFGNode.png +0 -0
  176. package/SVF-doxygen/html/html/classSVF_1_1FunptrDDAClient-members.html +1 -1
  177. package/SVF-doxygen/html/html/classSVF_1_1FunptrDDAClient.html +12 -12
  178. package/SVF-doxygen/html/html/classSVF_1_1GenericNode.html +3 -3
  179. package/SVF-doxygen/html/html/classSVF_1_1GenericNode.png +0 -0
  180. package/SVF-doxygen/html/html/classSVF_1_1GepObjVar.html +3 -3
  181. package/SVF-doxygen/html/html/classSVF_1_1GepStmt.html +4 -4
  182. package/SVF-doxygen/html/html/classSVF_1_1GepValVar.html +3 -3
  183. package/SVF-doxygen/html/html/classSVF_1_1GlobalBlockNode.html +3 -1
  184. package/SVF-doxygen/html/html/classSVF_1_1GlobalICFGNode-members.html +144 -0
  185. package/SVF-doxygen/html/html/classSVF_1_1GlobalICFGNode.html +413 -0
  186. package/SVF-doxygen/html/html/classSVF_1_1GlobalICFGNode.png +0 -0
  187. package/SVF-doxygen/html/html/classSVF_1_1HareParForEdge-members.html +3 -3
  188. package/SVF-doxygen/html/html/classSVF_1_1HareParForEdge.html +11 -11
  189. package/SVF-doxygen/html/html/classSVF_1_1ICFG-members.html +22 -22
  190. package/SVF-doxygen/html/html/classSVF_1_1ICFG.html +224 -217
  191. package/SVF-doxygen/html/html/classSVF_1_1ICFGBuilder-members.html +4 -4
  192. package/SVF-doxygen/html/html/classSVF_1_1ICFGBuilder.html +74 -71
  193. package/SVF-doxygen/html/html/classSVF_1_1ICFGEdge.html +2 -2
  194. package/SVF-doxygen/html/html/classSVF_1_1ICFGNode.html +10 -10
  195. package/SVF-doxygen/html/html/classSVF_1_1ICFGNode.png +0 -0
  196. package/SVF-doxygen/html/html/classSVF_1_1ICFGPrinter-members.html +11 -11
  197. package/SVF-doxygen/html/html/classSVF_1_1ICFGPrinter.html +30 -30
  198. package/SVF-doxygen/html/html/classSVF_1_1ICFGStat.html +3 -3
  199. package/SVF-doxygen/html/html/classSVF_1_1InterDisjointMRG-members.html +21 -21
  200. package/SVF-doxygen/html/html/classSVF_1_1InterDisjointMRG.html +51 -51
  201. package/SVF-doxygen/html/html/classSVF_1_1InterICFGNode-members.html +144 -0
  202. package/SVF-doxygen/html/html/classSVF_1_1InterICFGNode.html +399 -0
  203. package/SVF-doxygen/html/html/classSVF_1_1InterICFGNode.png +0 -0
  204. package/SVF-doxygen/html/html/classSVF_1_1InterMSSAPHISVFGNode-members.html +2 -2
  205. package/SVF-doxygen/html/html/classSVF_1_1InterMSSAPHISVFGNode.html +23 -23
  206. package/SVF-doxygen/html/html/classSVF_1_1InterPHIVFGNode-members.html +2 -2
  207. package/SVF-doxygen/html/html/classSVF_1_1InterPHIVFGNode.html +21 -21
  208. package/SVF-doxygen/html/html/classSVF_1_1IntraBlockNode.html +7 -3
  209. package/SVF-doxygen/html/html/classSVF_1_1IntraCFGEdge.html +2 -2
  210. package/SVF-doxygen/html/html/classSVF_1_1IntraDisjointMRG-members.html +21 -21
  211. package/SVF-doxygen/html/html/classSVF_1_1IntraDisjointMRG.html +51 -51
  212. package/SVF-doxygen/html/html/classSVF_1_1IntraICFGNode-members.html +146 -0
  213. package/SVF-doxygen/html/html/classSVF_1_1IntraICFGNode.html +494 -0
  214. package/SVF-doxygen/html/html/classSVF_1_1IntraICFGNode.png +0 -0
  215. package/SVF-doxygen/html/html/classSVF_1_1IntraPHIVFGNode.html +1 -1
  216. package/SVF-doxygen/html/html/classSVF_1_1LeakChecker-members.html +5 -5
  217. package/SVF-doxygen/html/html/classSVF_1_1LeakChecker.html +61 -61
  218. package/SVF-doxygen/html/html/classSVF_1_1LoadStmt.html +4 -4
  219. package/SVF-doxygen/html/html/classSVF_1_1LocationSet.html +1 -1
  220. package/SVF-doxygen/html/html/classSVF_1_1LockAnalysis.html +14 -14
  221. package/SVF-doxygen/html/html/classSVF_1_1LockResultValidator-members.html +1 -1
  222. package/SVF-doxygen/html/html/classSVF_1_1LockResultValidator.html +11 -11
  223. package/SVF-doxygen/html/html/classSVF_1_1MHP-members.html +1 -1
  224. package/SVF-doxygen/html/html/classSVF_1_1MHP.html +22 -22
  225. package/SVF-doxygen/html/html/classSVF_1_1MRGenerator-members.html +24 -24
  226. package/SVF-doxygen/html/html/classSVF_1_1MRGenerator.html +198 -198
  227. package/SVF-doxygen/html/html/classSVF_1_1MTAResultValidator.html +8 -8
  228. package/SVF-doxygen/html/html/classSVF_1_1MTASVFGBuilder.html +6 -6
  229. package/SVF-doxygen/html/html/classSVF_1_1MTAStat.html +5 -5
  230. package/SVF-doxygen/html/html/classSVF_1_1MemObj-members.html +23 -22
  231. package/SVF-doxygen/html/html/classSVF_1_1MemObj.html +70 -47
  232. package/SVF-doxygen/html/html/classSVF_1_1MemSSA-members.html +10 -10
  233. package/SVF-doxygen/html/html/classSVF_1_1MemSSA.html +77 -77
  234. package/SVF-doxygen/html/html/classSVF_1_1MultiOpndStmt.html +4 -4
  235. package/SVF-doxygen/html/html/classSVF_1_1NodeIDAllocator_1_1Clusterer.html +2 -2
  236. package/SVF-doxygen/html/html/classSVF_1_1NormalGepStmt.html +4 -4
  237. package/SVF-doxygen/html/html/classSVF_1_1ObjTypeInfo-members.html +17 -15
  238. package/SVF-doxygen/html/html/classSVF_1_1ObjTypeInfo.html +141 -106
  239. package/SVF-doxygen/html/html/classSVF_1_1ObjVar.html +3 -3
  240. package/SVF-doxygen/html/html/classSVF_1_1OfflineConsG.html +1 -1
  241. package/SVF-doxygen/html/html/classSVF_1_1Options-members.html +27 -27
  242. package/SVF-doxygen/html/html/classSVF_1_1Options.html +26 -26
  243. package/SVF-doxygen/html/html/classSVF_1_1PAGBuilderFromFile.html +2 -2
  244. package/SVF-doxygen/html/html/classSVF_1_1PCG-members.html +1 -1
  245. package/SVF-doxygen/html/html/classSVF_1_1PCG.html +13 -13
  246. package/SVF-doxygen/html/html/classSVF_1_1PHIVFGNode.html +1 -1
  247. package/SVF-doxygen/html/html/classSVF_1_1PTACallGraph-members.html +15 -15
  248. package/SVF-doxygen/html/html/classSVF_1_1PTACallGraph.html +118 -118
  249. package/SVF-doxygen/html/html/classSVF_1_1PTACallGraphEdge-members.html +3 -3
  250. package/SVF-doxygen/html/html/classSVF_1_1PTACallGraphEdge.html +32 -32
  251. package/SVF-doxygen/html/html/classSVF_1_1PTAStat.html +5 -5
  252. package/SVF-doxygen/html/html/classSVF_1_1PhiStmt.html +6 -6
  253. package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis-members.html +12 -12
  254. package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.html +109 -109
  255. package/SVF-doxygen/html/html/classSVF_1_1ProgSlice-members.html +2 -2
  256. package/SVF-doxygen/html/html/classSVF_1_1ProgSlice.html +18 -18
  257. package/SVF-doxygen/html/html/classSVF_1_1RetBlockNode.html +5 -3
  258. package/SVF-doxygen/html/html/classSVF_1_1RetCFGEdge.html +2 -2
  259. package/SVF-doxygen/html/html/classSVF_1_1RetICFGNode-members.html +153 -0
  260. package/SVF-doxygen/html/html/classSVF_1_1RetICFGNode.html +696 -0
  261. package/SVF-doxygen/html/html/classSVF_1_1RetICFGNode.png +0 -0
  262. package/SVF-doxygen/html/html/classSVF_1_1RetPE-members.html +4 -4
  263. package/SVF-doxygen/html/html/classSVF_1_1RetPE.html +30 -30
  264. package/SVF-doxygen/html/html/classSVF_1_1SVFFunction.html +4 -4
  265. package/SVF-doxygen/html/html/classSVF_1_1SVFG-members.html +24 -24
  266. package/SVF-doxygen/html/html/classSVF_1_1SVFG.html +160 -160
  267. package/SVF-doxygen/html/html/classSVF_1_1SVFGBuilder.html +4 -4
  268. package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT-members.html +24 -24
  269. package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT.html +76 -76
  270. package/SVF-doxygen/html/html/classSVF_1_1SVFIR-members.html +19 -19
  271. package/SVF-doxygen/html/html/classSVF_1_1SVFIR.html +133 -133
  272. package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder-members.html +4 -4
  273. package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder.html +62 -62
  274. package/SVF-doxygen/html/html/classSVF_1_1SVFStmt.html +1 -1
  275. package/SVF-doxygen/html/html/classSVF_1_1SaberCheckerAPI-members.html +4 -4
  276. package/SVF-doxygen/html/html/classSVF_1_1SaberCheckerAPI.html +20 -20
  277. package/SVF-doxygen/html/html/classSVF_1_1SaberSVFGBuilder-members.html +1 -1
  278. package/SVF-doxygen/html/html/classSVF_1_1SaberSVFGBuilder.html +13 -13
  279. package/SVF-doxygen/html/html/classSVF_1_1SrcSnkDDA-members.html +1 -1
  280. package/SVF-doxygen/html/html/classSVF_1_1SrcSnkDDA.html +7 -7
  281. package/SVF-doxygen/html/html/classSVF_1_1StInfo.html +24 -24
  282. package/SVF-doxygen/html/html/classSVF_1_1Steensgaard-members.html +12 -12
  283. package/SVF-doxygen/html/html/classSVF_1_1Steensgaard.html +32 -32
  284. package/SVF-doxygen/html/html/classSVF_1_1StoreStmt-members.html +1 -1
  285. package/SVF-doxygen/html/html/classSVF_1_1StoreStmt.html +11 -11
  286. package/SVF-doxygen/html/html/classSVF_1_1SymbolTableBuilder.html +17 -16
  287. package/SVF-doxygen/html/html/classSVF_1_1SymbolTableInfo.html +16 -16
  288. package/SVF-doxygen/html/html/classSVF_1_1TCT-members.html +1 -1
  289. package/SVF-doxygen/html/html/classSVF_1_1TCT.html +22 -22
  290. package/SVF-doxygen/html/html/classSVF_1_1TDForkPE-members.html +4 -4
  291. package/SVF-doxygen/html/html/classSVF_1_1TDForkPE.html +19 -19
  292. package/SVF-doxygen/html/html/classSVF_1_1TDJoinPE-members.html +4 -4
  293. package/SVF-doxygen/html/html/classSVF_1_1TDJoinPE.html +19 -19
  294. package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraph-members.html +40 -40
  295. package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraph.html +220 -220
  296. package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraphBuilder.html +10 -10
  297. package/SVF-doxygen/html/html/classSVF_1_1ThreadForkEdge-members.html +3 -3
  298. package/SVF-doxygen/html/html/classSVF_1_1ThreadForkEdge.html +11 -11
  299. package/SVF-doxygen/html/html/classSVF_1_1ThreadJoinEdge-members.html +3 -3
  300. package/SVF-doxygen/html/html/classSVF_1_1ThreadJoinEdge.html +11 -11
  301. package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis-members.html +12 -12
  302. package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis.html +42 -42
  303. package/SVF-doxygen/html/html/classSVF_1_1TypeBasedHeapCloning.html +3 -3
  304. package/SVF-doxygen/html/html/classSVF_1_1UnaryOPStmt.html +10 -9
  305. package/SVF-doxygen/html/html/classSVF_1_1UnaryOPVFGNode.html +1 -1
  306. package/SVF-doxygen/html/html/classSVF_1_1VFG-members.html +9 -9
  307. package/SVF-doxygen/html/html/classSVF_1_1VFG.html +96 -96
  308. package/SVF-doxygen/html/html/classSVF_1_1ValVar.html +3 -3
  309. package/SVF-doxygen/html/html/classSVF_1_1VariantGepStmt.html +4 -4
  310. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive-members.html +12 -12
  311. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive.html +37 -37
  312. package/SVF-doxygen/html/html/classSVF_1_1WPAPass.html +12 -12
  313. package/SVF-doxygen/html/html/classes.html +16 -16
  314. package/SVF-doxygen/html/html/functions_a.html +59 -59
  315. package/SVF-doxygen/html/html/functions_c.html +74 -71
  316. package/SVF-doxygen/html/html/functions_eval_c.html +5 -2
  317. package/SVF-doxygen/html/html/functions_f.html +14 -14
  318. package/SVF-doxygen/html/html/functions_func.html +56 -56
  319. package/SVF-doxygen/html/html/functions_func_c.html +28 -28
  320. package/SVF-doxygen/html/html/functions_func_f.html +6 -6
  321. package/SVF-doxygen/html/html/functions_func_g.html +88 -88
  322. package/SVF-doxygen/html/html/functions_func_h.html +17 -17
  323. package/SVF-doxygen/html/html/functions_func_i.html +31 -29
  324. package/SVF-doxygen/html/html/functions_func_m.html +1 -1
  325. package/SVF-doxygen/html/html/functions_func_p.html +1 -1
  326. package/SVF-doxygen/html/html/functions_func_r.html +6 -6
  327. package/SVF-doxygen/html/html/functions_func_s.html +1 -1
  328. package/SVF-doxygen/html/html/functions_func_t.html +7 -7
  329. package/SVF-doxygen/html/html/functions_func_u.html +3 -3
  330. package/SVF-doxygen/html/html/functions_g.html +88 -88
  331. package/SVF-doxygen/html/html/functions_h.html +16 -16
  332. package/SVF-doxygen/html/html/functions_i.html +37 -35
  333. package/SVF-doxygen/html/html/functions_m.html +2 -2
  334. package/SVF-doxygen/html/html/functions_n.html +3 -3
  335. package/SVF-doxygen/html/html/functions_o.html +10 -10
  336. package/SVF-doxygen/html/html/functions_p.html +21 -30
  337. package/SVF-doxygen/html/html/functions_r.html +6 -6
  338. package/SVF-doxygen/html/html/functions_s.html +15 -14
  339. package/SVF-doxygen/html/html/functions_t.html +13 -15
  340. package/SVF-doxygen/html/html/functions_type.html +1 -1
  341. package/SVF-doxygen/html/html/functions_type_c.html +24 -24
  342. package/SVF-doxygen/html/html/functions_type_f.html +3 -3
  343. package/SVF-doxygen/html/html/functions_type_i.html +2 -2
  344. package/SVF-doxygen/html/html/functions_type_p.html +1 -1
  345. package/SVF-doxygen/html/html/functions_type_s.html +1 -1
  346. package/SVF-doxygen/html/html/functions_type_v.html +2 -2
  347. package/SVF-doxygen/html/html/functions_u.html +3 -3
  348. package/SVF-doxygen/html/html/functions_v.html +5 -5
  349. package/SVF-doxygen/html/html/functions_vars_a.html +2 -2
  350. package/SVF-doxygen/html/html/functions_vars_c.html +11 -11
  351. package/SVF-doxygen/html/html/functions_vars_f.html +5 -5
  352. package/SVF-doxygen/html/html/functions_vars_g.html +1 -1
  353. package/SVF-doxygen/html/html/functions_vars_i.html +3 -3
  354. package/SVF-doxygen/html/html/functions_vars_p.html +0 -3
  355. package/SVF-doxygen/html/html/functions_vars_r.html +1 -1
  356. package/SVF-doxygen/html/html/functions_vars_s.html +3 -0
  357. package/SVF-doxygen/html/html/functions_w.html +5 -9
  358. package/SVF-doxygen/html/html/hierarchy.html +7 -7
  359. package/SVF-doxygen/html/html/namespaceSVF.html +11 -11
  360. package/SVF-doxygen/html/html/namespaceSVF_1_1SVFUtil.html +11 -11
  361. package/SVF-doxygen/html/html/search/all_1.js +58 -58
  362. package/SVF-doxygen/html/html/search/all_10.js +13 -14
  363. package/SVF-doxygen/html/html/search/all_12.js +5 -5
  364. package/SVF-doxygen/html/html/search/all_13.js +9 -8
  365. package/SVF-doxygen/html/html/search/all_14.js +6 -6
  366. package/SVF-doxygen/html/html/search/all_15.js +1 -1
  367. package/SVF-doxygen/html/html/search/all_16.js +3 -3
  368. package/SVF-doxygen/html/html/search/all_17.js +1 -1
  369. package/SVF-doxygen/html/html/search/all_3.js +37 -35
  370. package/SVF-doxygen/html/html/search/all_6.js +12 -12
  371. package/SVF-doxygen/html/html/search/all_7.js +62 -61
  372. package/SVF-doxygen/html/html/search/all_8.js +17 -17
  373. package/SVF-doxygen/html/html/search/all_9.js +19 -19
  374. package/SVF-doxygen/html/html/search/all_c.js +1 -1
  375. package/SVF-doxygen/html/html/search/all_d.js +2 -2
  376. package/SVF-doxygen/html/html/search/all_e.js +1 -1
  377. package/SVF-doxygen/html/html/search/all_f.js +2 -2
  378. package/SVF-doxygen/html/html/search/classes_2.js +1 -1
  379. package/SVF-doxygen/html/html/search/classes_5.js +2 -2
  380. package/SVF-doxygen/html/html/search/classes_6.js +1 -1
  381. package/SVF-doxygen/html/html/search/classes_8.js +2 -2
  382. package/SVF-doxygen/html/html/search/classes_e.js +1 -1
  383. package/SVF-doxygen/html/html/search/enumvalues_2.js +2 -1
  384. package/SVF-doxygen/html/html/search/functions_0.js +55 -55
  385. package/SVF-doxygen/html/html/search/functions_10.js +2 -2
  386. package/SVF-doxygen/html/html/search/functions_11.js +4 -4
  387. package/SVF-doxygen/html/html/search/functions_12.js +1 -1
  388. package/SVF-doxygen/html/html/search/functions_2.js +10 -10
  389. package/SVF-doxygen/html/html/search/functions_5.js +4 -4
  390. package/SVF-doxygen/html/html/search/functions_6.js +61 -61
  391. package/SVF-doxygen/html/html/search/functions_7.js +17 -17
  392. package/SVF-doxygen/html/html/search/functions_8.js +16 -16
  393. package/SVF-doxygen/html/html/search/functions_b.js +1 -1
  394. package/SVF-doxygen/html/html/search/functions_e.js +2 -2
  395. package/SVF-doxygen/html/html/search/functions_f.js +4 -4
  396. package/SVF-doxygen/html/html/search/typedefs_0.js +1 -1
  397. package/SVF-doxygen/html/html/search/typedefs_11.js +1 -1
  398. package/SVF-doxygen/html/html/search/typedefs_14.js +1 -1
  399. package/SVF-doxygen/html/html/search/typedefs_2.js +21 -21
  400. package/SVF-doxygen/html/html/search/typedefs_5.js +3 -3
  401. package/SVF-doxygen/html/html/search/typedefs_8.js +2 -2
  402. package/SVF-doxygen/html/html/search/typedefs_f.js +1 -1
  403. package/SVF-doxygen/html/html/search/variables_1.js +2 -2
  404. package/SVF-doxygen/html/html/search/variables_10.js +0 -1
  405. package/SVF-doxygen/html/html/search/variables_12.js +1 -1
  406. package/SVF-doxygen/html/html/search/variables_13.js +1 -0
  407. package/SVF-doxygen/html/html/search/variables_14.js +1 -1
  408. package/SVF-doxygen/html/html/search/variables_3.js +4 -4
  409. package/SVF-doxygen/html/html/search/variables_6.js +5 -5
  410. package/SVF-doxygen/html/html/search/variables_7.js +1 -1
  411. package/SVF-doxygen/html/html/search/variables_9.js +1 -1
  412. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01ConstraintGraph_01_5_01_4.html +1 -1
  413. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01ICFG_01_5_01_4.html +23 -23
  414. package/SVF-doxygen/html/html/svf-ex_8cpp.html +1 -1
  415. package/SVF-doxygen/html/html/svf-ex_8cpp_source.html +1 -1
  416. package/include/DDA/ContextDDA.h +3 -3
  417. package/include/DDA/DDAClient.h +2 -2
  418. package/include/DDA/DDAVFSolver.h +2 -2
  419. package/include/DDA/FlowDDA.h +2 -2
  420. package/include/Graphs/ICFG.h +32 -32
  421. package/include/Graphs/ICFGNode.h +33 -33
  422. package/include/Graphs/ICFGStat.h +11 -11
  423. package/include/Graphs/PTACallGraph.h +19 -19
  424. package/include/Graphs/SVFG.h +16 -16
  425. package/include/Graphs/SVFGNode.h +14 -14
  426. package/include/Graphs/SVFGOPT.h +1 -1
  427. package/include/Graphs/ThreadCallGraph.h +25 -25
  428. package/include/Graphs/VFG.h +10 -10
  429. package/include/Graphs/VFGNode.h +8 -8
  430. package/include/MSSA/MSSAMuChi.h +6 -6
  431. package/include/MSSA/MemRegion.h +24 -24
  432. package/include/MSSA/MemSSA.h +10 -10
  433. package/include/MTA/LockResultValidator.h +2 -2
  434. package/include/MTA/MHP.h +4 -4
  435. package/include/MTA/PCG.h +1 -1
  436. package/include/MTA/TCT.h +2 -2
  437. package/include/MemoryModel/PointerAnalysis.h +12 -12
  438. package/include/MemoryModel/SVFIR.h +22 -22
  439. package/include/MemoryModel/SVFStatements.h +11 -11
  440. package/include/MemoryModel/SymbolTableInfo.h +15 -9
  441. package/include/SABER/LeakChecker.h +4 -4
  442. package/include/SABER/ProgSlice.h +2 -2
  443. package/include/SABER/SaberCheckerAPI.h +4 -4
  444. package/include/SABER/SaberSVFGBuilder.h +1 -1
  445. package/include/SABER/SrcSnkDDA.h +1 -1
  446. package/include/SVF-FE/ICFGBuilder.h +4 -4
  447. package/include/SVF-FE/SVFIRBuilder.h +5 -5
  448. package/include/Util/Options.h +1 -1
  449. package/lib/DDA/ContextDDA.cpp +3 -3
  450. package/lib/DDA/DDAClient.cpp +1 -1
  451. package/lib/DDA/FlowDDA.cpp +1 -1
  452. package/lib/Graphs/ICFG.cpp +88 -71
  453. package/lib/Graphs/PTACallGraph.cpp +5 -5
  454. package/lib/Graphs/SVFG.cpp +7 -7
  455. package/lib/Graphs/ThreadCallGraph.cpp +6 -6
  456. package/lib/Graphs/VFG.cpp +6 -6
  457. package/lib/MSSA/MemRegion.cpp +17 -17
  458. package/lib/MSSA/MemSSA.cpp +3 -3
  459. package/lib/MTA/LockAnalysis.cpp +4 -4
  460. package/lib/MTA/MHP.cpp +5 -5
  461. package/lib/MTA/MTAResultValidator.cpp +1 -1
  462. package/lib/MTA/PCG.cpp +1 -1
  463. package/lib/MemoryModel/PointerAnalysis.cpp +10 -10
  464. package/lib/MemoryModel/PointerAnalysisImpl.cpp +1 -1
  465. package/lib/MemoryModel/SVFIR.cpp +5 -5
  466. package/lib/MemoryModel/SVFStatements.cpp +53 -49
  467. package/lib/MemoryModel/SVFVariables.cpp +10 -10
  468. package/lib/MemoryModel/SymbolTableInfo.cpp +12 -7
  469. package/lib/SABER/DoubleFreeChecker.cpp +1 -1
  470. package/lib/SABER/FileChecker.cpp +2 -2
  471. package/lib/SABER/LeakChecker.cpp +8 -8
  472. package/lib/SABER/ProgSlice.cpp +2 -2
  473. package/lib/SVF-FE/CallGraphBuilder.cpp +4 -4
  474. package/lib/SVF-FE/Graph2Json.cpp +5 -5
  475. package/lib/SVF-FE/ICFGBuilder.cpp +31 -25
  476. package/lib/SVF-FE/SVFIRBuilder.cpp +8 -8
  477. package/lib/SVF-FE/SymbolTableBuilder.cpp +2 -2
  478. package/lib/Util/Options.cpp +3 -3
  479. package/lib/Util/PTAStat.cpp +3 -3
  480. package/lib/Util/SVFUtil.cpp +2 -0
  481. package/lib/Util/TypeBasedHeapCloning.cpp +1 -1
  482. package/lib/WPA/Andersen.cpp +3 -3
  483. package/lib/WPA/FlowSensitive.cpp +2 -2
  484. package/lib/WPA/TypeAnalysis.cpp +1 -1
  485. package/lib/WPA/VersionedFlowSensitive.cpp +4 -4
  486. package/lib/WPA/WPAPass.cpp +4 -4
  487. package/package.json +1 -1
@@ -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
 
@@ -567,7 +567,7 @@ void SymbolTableBuilder::initTypeInfo(ObjTypeInfo* typeinfo, const Value* val){
567
567
  {
568
568
  typeinfo->setFlag(ObjTypeInfo::GLOBVAR_OBJ);
569
569
  if(SymbolTableInfo::SymbolInfo()->isConstantObjSym(val))
570
- typeinfo->setFlag(ObjTypeInfo::CONST_OBJ);
570
+ typeinfo->setFlag(ObjTypeInfo::CONST_GLOBAL_OBJ);
571
571
  analyzeGlobalStackObjType(typeinfo,val);
572
572
  objSize = getObjSize(val);
573
573
  }
@@ -591,7 +591,7 @@ void SymbolTableBuilder::initTypeInfo(ObjTypeInfo* typeinfo, const Value* val){
591
591
  }
592
592
  else if(SVFUtil::isConstantData(val))
593
593
  {
594
- typeinfo->setFlag(ObjTypeInfo::CONST_OBJ);
594
+ typeinfo->setFlag(ObjTypeInfo::CONST_DATA);
595
595
  }
596
596
  else{
597
597
  assert("what other object do we have??");
@@ -296,10 +296,10 @@ namespace SVF
296
296
  llvm::cl::desc("Dump dot graph of SVFIR")
297
297
  );
298
298
 
299
- const llvm::cl::opt<bool> Options::PAGDotGraphShorter(
300
- "dump-pag-shorter",
299
+ const llvm::cl::opt<bool> Options::ShowSVFIRValue(
300
+ "show-ir-value",
301
301
  llvm::cl::init(true),
302
- llvm::cl::desc("If dumping dot graph of SVFIR, use shorter lines")
302
+ llvm::cl::desc("Show values of SVFIR (e.g., when generating dot graph)")
303
303
  );
304
304
 
305
305
  const llvm::cl::opt<bool> Options::DumpICFG(
@@ -170,13 +170,13 @@ void PTAStat::performStat()
170
170
  numOfHasVarArray++;
171
171
  if(mem->isVarStruct())
172
172
  numOfHasVarStruct++;
173
- if(mem->isConstArray())
173
+ if(mem->isConstantArray())
174
174
  numOfHasConstArray++;
175
- if(mem->isConstStruct())
175
+ if(mem->isConstantStruct())
176
176
  numOfHasConstStruct++;
177
177
  if(mem->hasPtrObj() == false)
178
178
  numOfScalar++;
179
- if(mem->isConstant())
179
+ if(mem->isConstDataOrConstGlobal())
180
180
  numOfConstant++;
181
181
 
182
182
  if (mem->isFieldInsensitive())
@@ -359,6 +359,8 @@ std::string SVFUtil::getSourceLoc(const Value* val)
359
359
  }
360
360
  rawstr << " }";
361
361
 
362
+ if(rawstr.str()=="{ }")
363
+ return "";
362
364
  return rawstr.str();
363
365
  }
364
366
 
@@ -565,7 +565,7 @@ void TypeBasedHeapCloning::validateTBHCTests(SVFModule*)
565
565
  for (u32_t i = 0; i < llvmModuleSet->getModuleNum(); ++i)
566
566
  {
567
567
  const SVFIR::CallSiteSet &callSites = ppag->getCallSiteSet();
568
- for (const CallBlockNode *cbn : callSites)
568
+ for (const CallICFGNode *cbn : callSites)
569
569
  {
570
570
  const CallSite &cs = SVFUtil::getLLVMCallSite(cbn->getCallSite());
571
571
  const Function *fn = cs.getCalledFunction();
@@ -654,7 +654,7 @@ bool Andersen::updateCallGraph(const CallSiteToFunPtrMap& callsites)
654
654
  void Andersen::heapAllocatorViaIndCall(CallSite cs, NodePairSet &cpySrcNodes)
655
655
  {
656
656
  assert(SVFUtil::getCallee(cs) == nullptr && "not an indirect callsite?");
657
- RetBlockNode* retBlockNode = pag->getICFG()->getRetBlockNode(cs.getInstruction());
657
+ RetICFGNode* retBlockNode = pag->getICFG()->getRetBlockNode(cs.getInstruction());
658
658
  const PAGNode* cs_return = pag->getCallSiteRet(retBlockNode);
659
659
  NodeID srcret;
660
660
  CallSite2DummyValPN::const_iterator it = callsite2DummyValPN.find(cs);
@@ -687,8 +687,8 @@ void Andersen::connectCaller2CalleeParams(CallSite cs, const SVFFunction* F, Nod
687
687
 
688
688
  DBOUT(DAndersen, outs() << "connect parameters from indirect callsite " << *cs.getInstruction() << " to callee " << *F << "\n");
689
689
 
690
- CallBlockNode* callBlockNode = pag->getICFG()->getCallBlockNode(cs.getInstruction());
691
- RetBlockNode* retBlockNode = pag->getICFG()->getRetBlockNode(cs.getInstruction());
690
+ CallICFGNode* callBlockNode = pag->getICFG()->getCallBlockNode(cs.getInstruction());
691
+ RetICFGNode* retBlockNode = pag->getICFG()->getRetBlockNode(cs.getInstruction());
692
692
 
693
693
  if(SVFUtil::isHeapAllocExtFunViaRet(F) && pag->callsiteHasRet(retBlockNode))
694
694
  {
@@ -661,7 +661,7 @@ bool FlowSensitive::updateCallGraph(const CallSiteToFunPtrMap& callsites)
661
661
  const CallEdgeMap &andersCallEdgeMap = ander->getIndCallMap();
662
662
  for (typename CallEdgeMap::value_type &csfs : newEdges)
663
663
  {
664
- const CallBlockNode *potentialCallSite = csfs.first;
664
+ const CallICFGNode *potentialCallSite = csfs.first;
665
665
  FunctionSet &potentialFunctionSet = csfs.second;
666
666
 
667
667
  // Check this callsite even calls anything per Andersen's.
@@ -709,7 +709,7 @@ void FlowSensitive::connectCallerAndCallee(const CallEdgeMap& newEdges, SVFGEdge
709
709
  CallEdgeMap::const_iterator eiter = newEdges.end();
710
710
  for (; iter != eiter; iter++)
711
711
  {
712
- const CallBlockNode* cs = iter->first;
712
+ const CallICFGNode* cs = iter->first;
713
713
  const FunctionSet & functions = iter->second;
714
714
  for (FunctionSet::const_iterator func_iter = functions.begin(); func_iter != functions.end(); func_iter++)
715
715
  {
@@ -79,7 +79,7 @@ void TypeAnalysis::callGraphSolveBasedOnCHA(const CallSiteToFunPtrMap& callsites
79
79
  {
80
80
  for(CallSiteToFunPtrMap::const_iterator iter = callsites.begin(), eiter = callsites.end(); iter!=eiter; ++iter)
81
81
  {
82
- const CallBlockNode* cbn = iter->first;
82
+ const CallICFGNode* cbn = iter->first;
83
83
  CallSite cs = SVFUtil::getLLVMCallSite(cbn->getCallSite());
84
84
  if (isVirtualCallSite(cs))
85
85
  {
@@ -441,7 +441,7 @@ void VersionedFlowSensitive::buildDeltaMaps(void)
441
441
  deltaMap.resize(svfg->getTotalNodeNum(), false);
442
442
 
443
443
  // Call block nodes corresponding to all delta nodes.
444
- Set<const CallBlockNode *> deltaCBNs;
444
+ Set<const CallICFGNode *> deltaCBNs;
445
445
 
446
446
  for (SVFG::const_iterator it = svfg->begin(); it != svfg->end(); ++it)
447
447
  {
@@ -463,10 +463,10 @@ void VersionedFlowSensitive::buildDeltaMaps(void)
463
463
  if (isDelta)
464
464
  {
465
465
  // TODO: could we use deltaCBNs in the call above, avoiding this loop?
466
- for (const CallBlockNode *cbn : callsites) deltaCBNs.insert(cbn);
466
+ for (const CallICFGNode *cbn : callsites) deltaCBNs.insert(cbn);
467
467
  }
468
468
  }
469
- else if (const CallBlockNode *cbn = svfg->isCallSiteRetSVFGNode(s))
469
+ else if (const CallICFGNode *cbn = svfg->isCallSiteRetSVFGNode(s))
470
470
  {
471
471
  isDelta = cbn->isIndirectCall();
472
472
  if (isDelta) deltaCBNs.insert(cbn);
@@ -482,7 +482,7 @@ void VersionedFlowSensitive::buildDeltaMaps(void)
482
482
  const NodeID l = it->first;
483
483
  const SVFGNode *s = it->second;
484
484
 
485
- if (const CallBlockNode *cbn = SVFUtil::dyn_cast<CallBlockNode>(s->getICFGNode()))
485
+ if (const CallICFGNode *cbn = SVFUtil::dyn_cast<CallICFGNode>(s->getICFGNode()))
486
486
  {
487
487
  if (deltaCBNs.find(cbn) != deltaCBNs.end()) deltaSourceMap[l] = true;
488
488
  }
@@ -247,7 +247,7 @@ ModRefInfo WPAPass::getModRefInfo(const CallInst* callInst)
247
247
  {
248
248
  assert(Options::PASelected.isSet(PointerAnalysis::AndersenWaveDiff_WPA) && Options::AnderSVFG && "mod-ref query is only support with -ander and -svfg turned on");
249
249
  ICFG* icfg = _svfg->getPAG()->getICFG();
250
- const CallBlockNode* cbn = icfg->getCallBlockNode(callInst);
250
+ const CallICFGNode* cbn = icfg->getCallBlockNode(callInst);
251
251
  return _svfg->getMSSA()->getMRGenerator()->getModRefInfo(cbn);
252
252
  }
253
253
 
@@ -258,7 +258,7 @@ ModRefInfo WPAPass::getModRefInfo(const CallInst* callInst, const Value* V)
258
258
  {
259
259
  assert(Options::PASelected.isSet(PointerAnalysis::AndersenWaveDiff_WPA) && Options::AnderSVFG && "mod-ref query is only support with -ander and -svfg turned on");
260
260
  ICFG* icfg = _svfg->getPAG()->getICFG();
261
- const CallBlockNode* cbn = icfg->getCallBlockNode(callInst);
261
+ const CallICFGNode* cbn = icfg->getCallBlockNode(callInst);
262
262
  return _svfg->getMSSA()->getMRGenerator()->getModRefInfo(cbn, V);
263
263
  }
264
264
 
@@ -269,7 +269,7 @@ ModRefInfo WPAPass::getModRefInfo(const CallInst* callInst1, const CallInst* cal
269
269
  {
270
270
  assert(Options::PASelected.isSet(PointerAnalysis::AndersenWaveDiff_WPA) && Options::AnderSVFG && "mod-ref query is only support with -ander and -svfg turned on");
271
271
  ICFG* icfg = _svfg->getPAG()->getICFG();
272
- const CallBlockNode* cbn1 = icfg->getCallBlockNode(callInst1);
273
- const CallBlockNode* cbn2 = icfg->getCallBlockNode(callInst2);
272
+ const CallICFGNode* cbn1 = icfg->getCallBlockNode(callInst1);
273
+ const CallICFGNode* cbn2 = icfg->getCallBlockNode(callInst2);
274
274
  return _svfg->getMSSA()->getMRGenerator()->getModRefInfo(cbn1, cbn2);
275
275
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "svf-tools",
3
- "version": "1.0.340",
3
+ "version": "1.0.344",
4
4
  "description": "* <b>[TypeClone](https://github.com/SVF-tools/SVF/wiki/TypeClone) published in our [ECOOP paper](https://yuleisui.github.io/publications/ecoop20.pdf) is now available in SVF </b> * <b>SVF now uses a single script for its build. Just type [`source ./build.sh`](https://github.com/SVF-tools/SVF/blob/master/build.sh) in your terminal, that's it!</b> * <b>SVF now supports LLVM-10.0.0! </b> * <b>We thank [bsauce](https://github.com/bsauce) for writing a user manual of SVF ([link1](https://www.jianshu.com/p/068a08ec749c) and [link2](https://www.jianshu.com/p/777c30d4240e)) in Chinese </b> * <b>SVF now supports LLVM-9.0.0 (Thank [Byoungyoung Lee](https://github.com/SVF-tools/SVF/issues/142) for his help!). </b> * <b>SVF now supports a set of [field-sensitive pointer analyses](https://yuleisui.github.io/publications/sas2019a.pdf). </b> * <b>[Use SVF as an external lib](https://github.com/SVF-tools/SVF/wiki/Using-SVF-as-a-lib-in-your-own-tool) for your own project (Contributed by [Hongxu Chen](https://github.com/HongxuChen)). </b> * <b>SVF now supports LLVM-7.0.0. </b> * <b>SVF now supports Docker. [Try SVF in Docker](https://github.com/SVF-tools/SVF/wiki/Try-SVF-in-Docker)! </b> * <b>SVF now supports [LLVM-6.0.0](https://github.com/svf-tools/SVF/pull/38) (Contributed by [Jack Anthony](https://github.com/jackanth)). </b> * <b>SVF now supports [LLVM-4.0.0](https://github.com/svf-tools/SVF/pull/23) (Contributed by Jared Carlson. Thank [Jared](https://github.com/jcarlson23) and [Will](https://github.com/dtzWill) for their in-depth [discussions](https://github.com/svf-tools/SVF/pull/18) about updating SVF!) </b> * <b>SVF now supports analysis for C++ programs.</b> <br />",
5
5
  "main": "index.js",
6
6
  "scripts": {