svf-tools 1.0.341 → 1.0.345

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 (465) 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/PointerAnalysisImpl_8cpp_source.html +6 -6
  51. package/SVF-doxygen/html/html/PointerAnalysisImpl_8h_source.html +2 -2
  52. package/SVF-doxygen/html/html/PointerAnalysis_8cpp_source.html +18 -18
  53. package/SVF-doxygen/html/html/PointerAnalysis_8h_source.html +17 -17
  54. package/SVF-doxygen/html/html/ProgSlice_8cpp_source.html +4 -4
  55. package/SVF-doxygen/html/html/ProgSlice_8h_source.html +4 -4
  56. package/SVF-doxygen/html/html/SVFGBuilder_8h_source.html +3 -3
  57. package/SVF-doxygen/html/html/SVFGNode_8h_source.html +17 -17
  58. package/SVF-doxygen/html/html/SVFGOPT_8cpp_source.html +2 -2
  59. package/SVF-doxygen/html/html/SVFGOPT_8h_source.html +9 -9
  60. package/SVF-doxygen/html/html/SVFG_8cpp_source.html +32 -32
  61. package/SVF-doxygen/html/html/SVFG_8h_source.html +27 -27
  62. package/SVF-doxygen/html/html/SVFIRBuilder_8cpp_source.html +3 -3
  63. package/SVF-doxygen/html/html/SVFIRBuilder_8h_source.html +13 -13
  64. package/SVF-doxygen/html/html/SVFIR_8cpp_source.html +8 -8
  65. package/SVF-doxygen/html/html/SVFIR_8h_source.html +31 -31
  66. package/SVF-doxygen/html/html/SVFStatements_8cpp_source.html +20 -20
  67. package/SVF-doxygen/html/html/SVFStatements_8h_source.html +14 -14
  68. package/SVF-doxygen/html/html/SVFUtil_8cpp_source.html +8 -8
  69. package/SVF-doxygen/html/html/SVFUtil_8h_source.html +5 -5
  70. package/SVF-doxygen/html/html/SVFVariables_8cpp_source.html +3 -3
  71. package/SVF-doxygen/html/html/SaberCheckerAPI_8h_source.html +7 -7
  72. package/SVF-doxygen/html/html/SaberSVFGBuilder_8cpp_source.html +2 -2
  73. package/SVF-doxygen/html/html/SaberSVFGBuilder_8h_source.html +4 -4
  74. package/SVF-doxygen/html/html/SrcSnkDDA_8cpp_source.html +2 -2
  75. package/SVF-doxygen/html/html/SrcSnkDDA_8h_source.html +2 -2
  76. package/SVF-doxygen/html/html/SymbolTableInfo_8cpp_source.html +1 -1
  77. package/SVF-doxygen/html/html/TCT_8h_source.html +3 -3
  78. package/SVF-doxygen/html/html/ThreadCallGraph_8cpp_source.html +15 -15
  79. package/SVF-doxygen/html/html/ThreadCallGraph_8h_source.html +20 -20
  80. package/SVF-doxygen/html/html/TypeAnalysis_8cpp_source.html +5 -5
  81. package/SVF-doxygen/html/html/TypeAnalysis_8h_source.html +2 -2
  82. package/SVF-doxygen/html/html/TypeBasedHeapCloning_8cpp_source.html +3 -3
  83. package/SVF-doxygen/html/html/VFGNode_8h_source.html +11 -11
  84. package/SVF-doxygen/html/html/VFG_8cpp_source.html +20 -20
  85. package/SVF-doxygen/html/html/VFG_8h_source.html +19 -19
  86. package/SVF-doxygen/html/html/VersionedFlowSensitive_8cpp_source.html +4 -4
  87. package/SVF-doxygen/html/html/WPAPass_8cpp_source.html +4 -4
  88. package/SVF-doxygen/html/html/annotated.html +17 -17
  89. package/SVF-doxygen/html/html/classSVF_1_1ActualINSVFGNode-members.html +3 -3
  90. package/SVF-doxygen/html/html/classSVF_1_1ActualINSVFGNode.html +23 -23
  91. package/SVF-doxygen/html/html/classSVF_1_1ActualOUTSVFGNode-members.html +3 -3
  92. package/SVF-doxygen/html/html/classSVF_1_1ActualOUTSVFGNode.html +23 -23
  93. package/SVF-doxygen/html/html/classSVF_1_1ActualParmVFGNode-members.html +3 -3
  94. package/SVF-doxygen/html/html/classSVF_1_1ActualParmVFGNode.html +22 -22
  95. package/SVF-doxygen/html/html/classSVF_1_1ActualRetVFGNode-members.html +3 -3
  96. package/SVF-doxygen/html/html/classSVF_1_1ActualRetVFGNode.html +24 -24
  97. package/SVF-doxygen/html/html/classSVF_1_1AddrStmt.html +3 -3
  98. package/SVF-doxygen/html/html/classSVF_1_1AliasDDAClient-members.html +1 -1
  99. package/SVF-doxygen/html/html/classSVF_1_1AliasDDAClient.html +7 -7
  100. package/SVF-doxygen/html/html/classSVF_1_1Andersen-members.html +12 -12
  101. package/SVF-doxygen/html/html/classSVF_1_1Andersen.html +47 -47
  102. package/SVF-doxygen/html/html/classSVF_1_1AndersenBase-members.html +12 -12
  103. package/SVF-doxygen/html/html/classSVF_1_1AndersenBase.html +34 -34
  104. package/SVF-doxygen/html/html/classSVF_1_1AndersenHCD-members.html +12 -12
  105. package/SVF-doxygen/html/html/classSVF_1_1AndersenHCD.html +32 -32
  106. package/SVF-doxygen/html/html/classSVF_1_1AndersenHLCD-members.html +12 -12
  107. package/SVF-doxygen/html/html/classSVF_1_1AndersenHLCD.html +32 -32
  108. package/SVF-doxygen/html/html/classSVF_1_1AndersenLCD-members.html +12 -12
  109. package/SVF-doxygen/html/html/classSVF_1_1AndersenLCD.html +32 -32
  110. package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD-members.html +12 -12
  111. package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD.html +34 -34
  112. package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR-members.html +12 -12
  113. package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR.html +32 -32
  114. package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff-members.html +12 -12
  115. package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff.html +32 -32
  116. package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl-members.html +12 -12
  117. package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl.html +38 -38
  118. package/SVF-doxygen/html/html/classSVF_1_1BinaryOPStmt.html +6 -5
  119. package/SVF-doxygen/html/html/classSVF_1_1BinaryOPVFGNode.html +1 -1
  120. package/SVF-doxygen/html/html/classSVF_1_1BranchStmt.html +15 -12
  121. package/SVF-doxygen/html/html/classSVF_1_1CallBlockNode.html +5 -3
  122. package/SVF-doxygen/html/html/classSVF_1_1CallCFGEdge.html +2 -2
  123. package/SVF-doxygen/html/html/classSVF_1_1CallCHI-members.html +3 -3
  124. package/SVF-doxygen/html/html/classSVF_1_1CallCHI.html +22 -22
  125. package/SVF-doxygen/html/html/classSVF_1_1CallGraphBuilder.html +4 -4
  126. package/SVF-doxygen/html/html/classSVF_1_1CallICFGNode-members.html +158 -0
  127. package/SVF-doxygen/html/html/classSVF_1_1CallICFGNode.html +852 -0
  128. package/SVF-doxygen/html/html/classSVF_1_1CallICFGNode.png +0 -0
  129. package/SVF-doxygen/html/html/classSVF_1_1CallMU-members.html +3 -3
  130. package/SVF-doxygen/html/html/classSVF_1_1CallMU.html +22 -22
  131. package/SVF-doxygen/html/html/classSVF_1_1CallPE-members.html +4 -4
  132. package/SVF-doxygen/html/html/classSVF_1_1CallPE.html +31 -31
  133. package/SVF-doxygen/html/html/classSVF_1_1CmpStmt.html +6 -5
  134. package/SVF-doxygen/html/html/classSVF_1_1CmpVFGNode.html +1 -1
  135. package/SVF-doxygen/html/html/classSVF_1_1CondPTAImpl-members.html +12 -12
  136. package/SVF-doxygen/html/html/classSVF_1_1CondPTAImpl.html +31 -31
  137. package/SVF-doxygen/html/html/classSVF_1_1ConstraintGraph.html +3 -3
  138. package/SVF-doxygen/html/html/classSVF_1_1ContextDDA-members.html +14 -14
  139. package/SVF-doxygen/html/html/classSVF_1_1ContextDDA.html +60 -60
  140. package/SVF-doxygen/html/html/classSVF_1_1CopyStmt.html +3 -3
  141. package/SVF-doxygen/html/html/classSVF_1_1DDAVFSolver-members.html +1 -1
  142. package/SVF-doxygen/html/html/classSVF_1_1DDAVFSolver.html +16 -16
  143. package/SVF-doxygen/html/html/classSVF_1_1DistinctMRG-members.html +21 -21
  144. package/SVF-doxygen/html/html/classSVF_1_1DistinctMRG.html +51 -51
  145. package/SVF-doxygen/html/html/classSVF_1_1DoubleFreeChecker-members.html +5 -5
  146. package/SVF-doxygen/html/html/classSVF_1_1DoubleFreeChecker.html +16 -16
  147. package/SVF-doxygen/html/html/classSVF_1_1FIObjVar.html +3 -3
  148. package/SVF-doxygen/html/html/classSVF_1_1FSMPTA-members.html +12 -12
  149. package/SVF-doxygen/html/html/classSVF_1_1FSMPTA.html +33 -33
  150. package/SVF-doxygen/html/html/classSVF_1_1FileChecker-members.html +5 -5
  151. package/SVF-doxygen/html/html/classSVF_1_1FileChecker.html +20 -20
  152. package/SVF-doxygen/html/html/classSVF_1_1FlowDDA-members.html +11 -11
  153. package/SVF-doxygen/html/html/classSVF_1_1FlowDDA.html +52 -52
  154. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive-members.html +12 -12
  155. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive.html +43 -43
  156. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveTBHC-members.html +12 -12
  157. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveTBHC.html +33 -33
  158. package/SVF-doxygen/html/html/classSVF_1_1ForkJoinAnalysis-members.html +1 -1
  159. package/SVF-doxygen/html/html/classSVF_1_1ForkJoinAnalysis.html +21 -21
  160. package/SVF-doxygen/html/html/classSVF_1_1FormalINSVFGNode-members.html +3 -3
  161. package/SVF-doxygen/html/html/classSVF_1_1FormalINSVFGNode.html +19 -19
  162. package/SVF-doxygen/html/html/classSVF_1_1FormalOUTSVFGNode-members.html +3 -3
  163. package/SVF-doxygen/html/html/classSVF_1_1FormalOUTSVFGNode.html +18 -18
  164. package/SVF-doxygen/html/html/classSVF_1_1FunEntryBlockNode.html +4 -2
  165. package/SVF-doxygen/html/html/classSVF_1_1FunEntryICFGNode-members.html +150 -0
  166. package/SVF-doxygen/html/html/classSVF_1_1FunEntryICFGNode.html +618 -0
  167. package/SVF-doxygen/html/html/classSVF_1_1FunEntryICFGNode.png +0 -0
  168. package/SVF-doxygen/html/html/classSVF_1_1FunExitBlockNode.html +4 -2
  169. package/SVF-doxygen/html/html/classSVF_1_1FunExitICFGNode-members.html +149 -0
  170. package/SVF-doxygen/html/html/classSVF_1_1FunExitICFGNode.html +624 -0
  171. package/SVF-doxygen/html/html/classSVF_1_1FunExitICFGNode.png +0 -0
  172. package/SVF-doxygen/html/html/classSVF_1_1FunptrDDAClient-members.html +1 -1
  173. package/SVF-doxygen/html/html/classSVF_1_1FunptrDDAClient.html +12 -12
  174. package/SVF-doxygen/html/html/classSVF_1_1GenericNode.html +3 -3
  175. package/SVF-doxygen/html/html/classSVF_1_1GenericNode.png +0 -0
  176. package/SVF-doxygen/html/html/classSVF_1_1GepObjVar.html +3 -3
  177. package/SVF-doxygen/html/html/classSVF_1_1GepStmt.html +4 -4
  178. package/SVF-doxygen/html/html/classSVF_1_1GepValVar.html +3 -3
  179. package/SVF-doxygen/html/html/classSVF_1_1GlobalBlockNode.html +3 -1
  180. package/SVF-doxygen/html/html/classSVF_1_1GlobalICFGNode-members.html +144 -0
  181. package/SVF-doxygen/html/html/classSVF_1_1GlobalICFGNode.html +413 -0
  182. package/SVF-doxygen/html/html/classSVF_1_1GlobalICFGNode.png +0 -0
  183. package/SVF-doxygen/html/html/classSVF_1_1HareParForEdge-members.html +3 -3
  184. package/SVF-doxygen/html/html/classSVF_1_1HareParForEdge.html +11 -11
  185. package/SVF-doxygen/html/html/classSVF_1_1ICFG-members.html +22 -22
  186. package/SVF-doxygen/html/html/classSVF_1_1ICFG.html +224 -217
  187. package/SVF-doxygen/html/html/classSVF_1_1ICFGBuilder-members.html +4 -4
  188. package/SVF-doxygen/html/html/classSVF_1_1ICFGBuilder.html +74 -71
  189. package/SVF-doxygen/html/html/classSVF_1_1ICFGEdge.html +2 -2
  190. package/SVF-doxygen/html/html/classSVF_1_1ICFGNode.html +10 -10
  191. package/SVF-doxygen/html/html/classSVF_1_1ICFGNode.png +0 -0
  192. package/SVF-doxygen/html/html/classSVF_1_1ICFGPrinter-members.html +11 -11
  193. package/SVF-doxygen/html/html/classSVF_1_1ICFGPrinter.html +30 -30
  194. package/SVF-doxygen/html/html/classSVF_1_1ICFGStat.html +3 -3
  195. package/SVF-doxygen/html/html/classSVF_1_1InterDisjointMRG-members.html +21 -21
  196. package/SVF-doxygen/html/html/classSVF_1_1InterDisjointMRG.html +51 -51
  197. package/SVF-doxygen/html/html/classSVF_1_1InterICFGNode-members.html +144 -0
  198. package/SVF-doxygen/html/html/classSVF_1_1InterICFGNode.html +399 -0
  199. package/SVF-doxygen/html/html/classSVF_1_1InterICFGNode.png +0 -0
  200. package/SVF-doxygen/html/html/classSVF_1_1InterMSSAPHISVFGNode-members.html +2 -2
  201. package/SVF-doxygen/html/html/classSVF_1_1InterMSSAPHISVFGNode.html +23 -23
  202. package/SVF-doxygen/html/html/classSVF_1_1InterPHIVFGNode-members.html +2 -2
  203. package/SVF-doxygen/html/html/classSVF_1_1InterPHIVFGNode.html +21 -21
  204. package/SVF-doxygen/html/html/classSVF_1_1IntraBlockNode.html +7 -3
  205. package/SVF-doxygen/html/html/classSVF_1_1IntraCFGEdge.html +2 -2
  206. package/SVF-doxygen/html/html/classSVF_1_1IntraDisjointMRG-members.html +21 -21
  207. package/SVF-doxygen/html/html/classSVF_1_1IntraDisjointMRG.html +51 -51
  208. package/SVF-doxygen/html/html/classSVF_1_1IntraICFGNode-members.html +146 -0
  209. package/SVF-doxygen/html/html/classSVF_1_1IntraICFGNode.html +494 -0
  210. package/SVF-doxygen/html/html/classSVF_1_1IntraICFGNode.png +0 -0
  211. package/SVF-doxygen/html/html/classSVF_1_1IntraPHIVFGNode.html +1 -1
  212. package/SVF-doxygen/html/html/classSVF_1_1LeakChecker-members.html +5 -5
  213. package/SVF-doxygen/html/html/classSVF_1_1LeakChecker.html +61 -61
  214. package/SVF-doxygen/html/html/classSVF_1_1LoadStmt.html +4 -4
  215. package/SVF-doxygen/html/html/classSVF_1_1LocationSet.html +1 -1
  216. package/SVF-doxygen/html/html/classSVF_1_1LockAnalysis.html +14 -14
  217. package/SVF-doxygen/html/html/classSVF_1_1LockResultValidator-members.html +1 -1
  218. package/SVF-doxygen/html/html/classSVF_1_1LockResultValidator.html +11 -11
  219. package/SVF-doxygen/html/html/classSVF_1_1MHP-members.html +1 -1
  220. package/SVF-doxygen/html/html/classSVF_1_1MHP.html +22 -22
  221. package/SVF-doxygen/html/html/classSVF_1_1MRGenerator-members.html +24 -24
  222. package/SVF-doxygen/html/html/classSVF_1_1MRGenerator.html +198 -198
  223. package/SVF-doxygen/html/html/classSVF_1_1MTAResultValidator.html +8 -8
  224. package/SVF-doxygen/html/html/classSVF_1_1MTASVFGBuilder.html +6 -6
  225. package/SVF-doxygen/html/html/classSVF_1_1MTAStat.html +5 -5
  226. package/SVF-doxygen/html/html/classSVF_1_1MemObj.html +1 -1
  227. package/SVF-doxygen/html/html/classSVF_1_1MemSSA-members.html +10 -10
  228. package/SVF-doxygen/html/html/classSVF_1_1MemSSA.html +77 -77
  229. package/SVF-doxygen/html/html/classSVF_1_1MultiOpndStmt.html +4 -4
  230. package/SVF-doxygen/html/html/classSVF_1_1NodeIDAllocator_1_1Clusterer.html +2 -2
  231. package/SVF-doxygen/html/html/classSVF_1_1NormalGepStmt.html +4 -4
  232. package/SVF-doxygen/html/html/classSVF_1_1ObjVar.html +3 -3
  233. package/SVF-doxygen/html/html/classSVF_1_1OfflineConsG.html +1 -1
  234. package/SVF-doxygen/html/html/classSVF_1_1Options-members.html +27 -27
  235. package/SVF-doxygen/html/html/classSVF_1_1Options.html +26 -26
  236. package/SVF-doxygen/html/html/classSVF_1_1PAGBuilderFromFile.html +2 -2
  237. package/SVF-doxygen/html/html/classSVF_1_1PCG-members.html +1 -1
  238. package/SVF-doxygen/html/html/classSVF_1_1PCG.html +13 -13
  239. package/SVF-doxygen/html/html/classSVF_1_1PHIVFGNode.html +1 -1
  240. package/SVF-doxygen/html/html/classSVF_1_1PTACallGraph-members.html +15 -15
  241. package/SVF-doxygen/html/html/classSVF_1_1PTACallGraph.html +118 -118
  242. package/SVF-doxygen/html/html/classSVF_1_1PTACallGraphEdge-members.html +3 -3
  243. package/SVF-doxygen/html/html/classSVF_1_1PTACallGraphEdge.html +32 -32
  244. package/SVF-doxygen/html/html/classSVF_1_1PhiStmt.html +6 -6
  245. package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis-members.html +12 -12
  246. package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.html +109 -109
  247. package/SVF-doxygen/html/html/classSVF_1_1ProgSlice-members.html +2 -2
  248. package/SVF-doxygen/html/html/classSVF_1_1ProgSlice.html +18 -18
  249. package/SVF-doxygen/html/html/classSVF_1_1RetBlockNode.html +5 -3
  250. package/SVF-doxygen/html/html/classSVF_1_1RetCFGEdge.html +2 -2
  251. package/SVF-doxygen/html/html/classSVF_1_1RetICFGNode-members.html +153 -0
  252. package/SVF-doxygen/html/html/classSVF_1_1RetICFGNode.html +696 -0
  253. package/SVF-doxygen/html/html/classSVF_1_1RetICFGNode.png +0 -0
  254. package/SVF-doxygen/html/html/classSVF_1_1RetPE-members.html +4 -4
  255. package/SVF-doxygen/html/html/classSVF_1_1RetPE.html +30 -30
  256. package/SVF-doxygen/html/html/classSVF_1_1SVFFunction.html +4 -4
  257. package/SVF-doxygen/html/html/classSVF_1_1SVFG-members.html +24 -24
  258. package/SVF-doxygen/html/html/classSVF_1_1SVFG.html +160 -160
  259. package/SVF-doxygen/html/html/classSVF_1_1SVFGBuilder.html +4 -4
  260. package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT-members.html +24 -24
  261. package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT.html +76 -76
  262. package/SVF-doxygen/html/html/classSVF_1_1SVFIR-members.html +19 -19
  263. package/SVF-doxygen/html/html/classSVF_1_1SVFIR.html +131 -131
  264. package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder-members.html +4 -4
  265. package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder.html +62 -62
  266. package/SVF-doxygen/html/html/classSVF_1_1SVFStmt.html +1 -1
  267. package/SVF-doxygen/html/html/classSVF_1_1SaberCheckerAPI-members.html +4 -4
  268. package/SVF-doxygen/html/html/classSVF_1_1SaberCheckerAPI.html +20 -20
  269. package/SVF-doxygen/html/html/classSVF_1_1SaberSVFGBuilder-members.html +1 -1
  270. package/SVF-doxygen/html/html/classSVF_1_1SaberSVFGBuilder.html +13 -13
  271. package/SVF-doxygen/html/html/classSVF_1_1SrcSnkDDA-members.html +1 -1
  272. package/SVF-doxygen/html/html/classSVF_1_1SrcSnkDDA.html +7 -7
  273. package/SVF-doxygen/html/html/classSVF_1_1Steensgaard-members.html +12 -12
  274. package/SVF-doxygen/html/html/classSVF_1_1Steensgaard.html +32 -32
  275. package/SVF-doxygen/html/html/classSVF_1_1StoreStmt-members.html +1 -1
  276. package/SVF-doxygen/html/html/classSVF_1_1StoreStmt.html +11 -11
  277. package/SVF-doxygen/html/html/classSVF_1_1SymbolTableInfo.html +1 -1
  278. package/SVF-doxygen/html/html/classSVF_1_1TCT-members.html +1 -1
  279. package/SVF-doxygen/html/html/classSVF_1_1TCT.html +22 -22
  280. package/SVF-doxygen/html/html/classSVF_1_1TDForkPE-members.html +4 -4
  281. package/SVF-doxygen/html/html/classSVF_1_1TDForkPE.html +19 -19
  282. package/SVF-doxygen/html/html/classSVF_1_1TDJoinPE-members.html +4 -4
  283. package/SVF-doxygen/html/html/classSVF_1_1TDJoinPE.html +19 -19
  284. package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraph-members.html +40 -40
  285. package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraph.html +220 -220
  286. package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraphBuilder.html +10 -10
  287. package/SVF-doxygen/html/html/classSVF_1_1ThreadForkEdge-members.html +3 -3
  288. package/SVF-doxygen/html/html/classSVF_1_1ThreadForkEdge.html +11 -11
  289. package/SVF-doxygen/html/html/classSVF_1_1ThreadJoinEdge-members.html +3 -3
  290. package/SVF-doxygen/html/html/classSVF_1_1ThreadJoinEdge.html +11 -11
  291. package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis-members.html +12 -12
  292. package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis.html +42 -42
  293. package/SVF-doxygen/html/html/classSVF_1_1TypeBasedHeapCloning.html +3 -3
  294. package/SVF-doxygen/html/html/classSVF_1_1UnaryOPStmt.html +10 -9
  295. package/SVF-doxygen/html/html/classSVF_1_1UnaryOPVFGNode.html +1 -1
  296. package/SVF-doxygen/html/html/classSVF_1_1VFG-members.html +9 -9
  297. package/SVF-doxygen/html/html/classSVF_1_1VFG.html +96 -96
  298. package/SVF-doxygen/html/html/classSVF_1_1ValVar.html +3 -3
  299. package/SVF-doxygen/html/html/classSVF_1_1VariantGepStmt.html +4 -4
  300. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive-members.html +12 -12
  301. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive.html +37 -37
  302. package/SVF-doxygen/html/html/classSVF_1_1WPAPass.html +12 -12
  303. package/SVF-doxygen/html/html/classes.html +16 -16
  304. package/SVF-doxygen/html/html/functions_a.html +59 -59
  305. package/SVF-doxygen/html/html/functions_c.html +65 -67
  306. package/SVF-doxygen/html/html/functions_f.html +14 -14
  307. package/SVF-doxygen/html/html/functions_func.html +56 -56
  308. package/SVF-doxygen/html/html/functions_func_c.html +28 -28
  309. package/SVF-doxygen/html/html/functions_func_f.html +6 -6
  310. package/SVF-doxygen/html/html/functions_func_g.html +86 -86
  311. package/SVF-doxygen/html/html/functions_func_h.html +17 -17
  312. package/SVF-doxygen/html/html/functions_func_i.html +12 -12
  313. package/SVF-doxygen/html/html/functions_func_m.html +1 -1
  314. package/SVF-doxygen/html/html/functions_func_p.html +1 -1
  315. package/SVF-doxygen/html/html/functions_func_r.html +6 -6
  316. package/SVF-doxygen/html/html/functions_func_s.html +2 -2
  317. package/SVF-doxygen/html/html/functions_func_t.html +7 -7
  318. package/SVF-doxygen/html/html/functions_func_u.html +3 -3
  319. package/SVF-doxygen/html/html/functions_g.html +88 -88
  320. package/SVF-doxygen/html/html/functions_h.html +16 -16
  321. package/SVF-doxygen/html/html/functions_i.html +19 -19
  322. package/SVF-doxygen/html/html/functions_m.html +1 -1
  323. package/SVF-doxygen/html/html/functions_p.html +10 -13
  324. package/SVF-doxygen/html/html/functions_r.html +6 -6
  325. package/SVF-doxygen/html/html/functions_s.html +21 -18
  326. package/SVF-doxygen/html/html/functions_t.html +13 -15
  327. package/SVF-doxygen/html/html/functions_type.html +1 -1
  328. package/SVF-doxygen/html/html/functions_type_c.html +24 -24
  329. package/SVF-doxygen/html/html/functions_type_f.html +3 -3
  330. package/SVF-doxygen/html/html/functions_type_i.html +2 -2
  331. package/SVF-doxygen/html/html/functions_type_p.html +1 -1
  332. package/SVF-doxygen/html/html/functions_type_s.html +1 -1
  333. package/SVF-doxygen/html/html/functions_type_v.html +2 -2
  334. package/SVF-doxygen/html/html/functions_u.html +3 -3
  335. package/SVF-doxygen/html/html/functions_v.html +5 -5
  336. package/SVF-doxygen/html/html/functions_vars_a.html +2 -2
  337. package/SVF-doxygen/html/html/functions_vars_c.html +11 -11
  338. package/SVF-doxygen/html/html/functions_vars_f.html +5 -5
  339. package/SVF-doxygen/html/html/functions_vars_g.html +1 -1
  340. package/SVF-doxygen/html/html/functions_vars_i.html +3 -3
  341. package/SVF-doxygen/html/html/functions_vars_p.html +0 -3
  342. package/SVF-doxygen/html/html/functions_vars_r.html +1 -1
  343. package/SVF-doxygen/html/html/functions_vars_s.html +3 -0
  344. package/SVF-doxygen/html/html/hierarchy.html +7 -7
  345. package/SVF-doxygen/html/html/namespaceSVF.html +11 -11
  346. package/SVF-doxygen/html/html/namespaceSVF_1_1SVFUtil.html +11 -11
  347. package/SVF-doxygen/html/html/search/all_1.js +58 -58
  348. package/SVF-doxygen/html/html/search/all_10.js +2 -3
  349. package/SVF-doxygen/html/html/search/all_12.js +5 -5
  350. package/SVF-doxygen/html/html/search/all_13.js +5 -4
  351. package/SVF-doxygen/html/html/search/all_14.js +8 -8
  352. package/SVF-doxygen/html/html/search/all_15.js +2 -2
  353. package/SVF-doxygen/html/html/search/all_16.js +3 -3
  354. package/SVF-doxygen/html/html/search/all_3.js +35 -34
  355. package/SVF-doxygen/html/html/search/all_6.js +12 -12
  356. package/SVF-doxygen/html/html/search/all_7.js +62 -61
  357. package/SVF-doxygen/html/html/search/all_8.js +17 -17
  358. package/SVF-doxygen/html/html/search/all_9.js +15 -15
  359. package/SVF-doxygen/html/html/search/all_d.js +1 -1
  360. package/SVF-doxygen/html/html/search/classes_2.js +1 -1
  361. package/SVF-doxygen/html/html/search/classes_5.js +2 -2
  362. package/SVF-doxygen/html/html/search/classes_6.js +1 -1
  363. package/SVF-doxygen/html/html/search/classes_8.js +2 -2
  364. package/SVF-doxygen/html/html/search/classes_e.js +1 -1
  365. package/SVF-doxygen/html/html/search/functions_0.js +55 -55
  366. package/SVF-doxygen/html/html/search/functions_10.js +2 -2
  367. package/SVF-doxygen/html/html/search/functions_11.js +4 -4
  368. package/SVF-doxygen/html/html/search/functions_12.js +1 -1
  369. package/SVF-doxygen/html/html/search/functions_2.js +10 -10
  370. package/SVF-doxygen/html/html/search/functions_5.js +4 -4
  371. package/SVF-doxygen/html/html/search/functions_6.js +61 -61
  372. package/SVF-doxygen/html/html/search/functions_7.js +17 -17
  373. package/SVF-doxygen/html/html/search/functions_8.js +12 -12
  374. package/SVF-doxygen/html/html/search/functions_b.js +1 -1
  375. package/SVF-doxygen/html/html/search/functions_e.js +1 -1
  376. package/SVF-doxygen/html/html/search/functions_f.js +4 -4
  377. package/SVF-doxygen/html/html/search/typedefs_0.js +1 -1
  378. package/SVF-doxygen/html/html/search/typedefs_11.js +1 -1
  379. package/SVF-doxygen/html/html/search/typedefs_14.js +1 -1
  380. package/SVF-doxygen/html/html/search/typedefs_2.js +21 -21
  381. package/SVF-doxygen/html/html/search/typedefs_5.js +3 -3
  382. package/SVF-doxygen/html/html/search/typedefs_8.js +2 -2
  383. package/SVF-doxygen/html/html/search/typedefs_f.js +1 -1
  384. package/SVF-doxygen/html/html/search/variables_1.js +2 -2
  385. package/SVF-doxygen/html/html/search/variables_10.js +0 -1
  386. package/SVF-doxygen/html/html/search/variables_12.js +1 -1
  387. package/SVF-doxygen/html/html/search/variables_13.js +1 -0
  388. package/SVF-doxygen/html/html/search/variables_14.js +2 -2
  389. package/SVF-doxygen/html/html/search/variables_15.js +1 -1
  390. package/SVF-doxygen/html/html/search/variables_3.js +4 -4
  391. package/SVF-doxygen/html/html/search/variables_6.js +5 -5
  392. package/SVF-doxygen/html/html/search/variables_7.js +1 -1
  393. package/SVF-doxygen/html/html/search/variables_9.js +1 -1
  394. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01ConstraintGraph_01_5_01_4.html +1 -1
  395. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01ICFG_01_5_01_4.html +23 -23
  396. package/SVF-doxygen/html/html/svf-ex_8cpp.html +1 -1
  397. package/SVF-doxygen/html/html/svf-ex_8cpp_source.html +1 -1
  398. package/include/DDA/ContextDDA.h +3 -3
  399. package/include/DDA/DDAClient.h +2 -2
  400. package/include/DDA/DDAVFSolver.h +2 -2
  401. package/include/DDA/FlowDDA.h +2 -2
  402. package/include/Graphs/ICFG.h +33 -33
  403. package/include/Graphs/ICFGNode.h +33 -33
  404. package/include/Graphs/ICFGStat.h +11 -11
  405. package/include/Graphs/PTACallGraph.h +19 -19
  406. package/include/Graphs/SVFG.h +16 -16
  407. package/include/Graphs/SVFGNode.h +14 -14
  408. package/include/Graphs/SVFGOPT.h +1 -1
  409. package/include/Graphs/ThreadCallGraph.h +25 -25
  410. package/include/Graphs/VFG.h +10 -10
  411. package/include/Graphs/VFGNode.h +8 -8
  412. package/include/MSSA/MSSAMuChi.h +6 -6
  413. package/include/MSSA/MemRegion.h +24 -24
  414. package/include/MSSA/MemSSA.h +10 -10
  415. package/include/MTA/LockResultValidator.h +2 -2
  416. package/include/MTA/MHP.h +4 -4
  417. package/include/MTA/PCG.h +1 -1
  418. package/include/MTA/TCT.h +2 -2
  419. package/include/MemoryModel/PointerAnalysis.h +12 -12
  420. package/include/MemoryModel/SVFIR.h +21 -21
  421. package/include/MemoryModel/SVFStatements.h +11 -11
  422. package/include/SABER/LeakChecker.h +4 -4
  423. package/include/SABER/ProgSlice.h +2 -2
  424. package/include/SABER/SaberCheckerAPI.h +4 -4
  425. package/include/SABER/SaberSVFGBuilder.h +1 -1
  426. package/include/SABER/SrcSnkDDA.h +1 -1
  427. package/include/SVF-FE/ICFGBuilder.h +4 -4
  428. package/include/SVF-FE/SVFIRBuilder.h +5 -5
  429. package/include/Util/Options.h +1 -1
  430. package/lib/DDA/ContextDDA.cpp +3 -3
  431. package/lib/DDA/DDAClient.cpp +1 -1
  432. package/lib/DDA/FlowDDA.cpp +1 -1
  433. package/lib/Graphs/ICFG.cpp +88 -71
  434. package/lib/Graphs/PTACallGraph.cpp +5 -5
  435. package/lib/Graphs/SVFG.cpp +7 -7
  436. package/lib/Graphs/ThreadCallGraph.cpp +6 -6
  437. package/lib/Graphs/VFG.cpp +6 -6
  438. package/lib/MSSA/MemRegion.cpp +17 -17
  439. package/lib/MSSA/MemSSA.cpp +3 -3
  440. package/lib/MTA/LockAnalysis.cpp +4 -4
  441. package/lib/MTA/MHP.cpp +5 -5
  442. package/lib/MTA/MTAResultValidator.cpp +1 -1
  443. package/lib/MTA/PCG.cpp +1 -1
  444. package/lib/MemoryModel/PointerAnalysis.cpp +10 -10
  445. package/lib/MemoryModel/PointerAnalysisImpl.cpp +1 -1
  446. package/lib/MemoryModel/SVFIR.cpp +5 -5
  447. package/lib/MemoryModel/SVFStatements.cpp +53 -49
  448. package/lib/MemoryModel/SVFVariables.cpp +10 -10
  449. package/lib/SABER/DoubleFreeChecker.cpp +1 -1
  450. package/lib/SABER/FileChecker.cpp +2 -2
  451. package/lib/SABER/LeakChecker.cpp +8 -8
  452. package/lib/SABER/ProgSlice.cpp +2 -2
  453. package/lib/SVF-FE/CallGraphBuilder.cpp +4 -4
  454. package/lib/SVF-FE/Graph2Json.cpp +5 -5
  455. package/lib/SVF-FE/ICFGBuilder.cpp +31 -25
  456. package/lib/SVF-FE/SVFIRBuilder.cpp +8 -8
  457. package/lib/Util/Options.cpp +3 -3
  458. package/lib/Util/SVFUtil.cpp +2 -0
  459. package/lib/Util/TypeBasedHeapCloning.cpp +1 -1
  460. package/lib/WPA/Andersen.cpp +3 -3
  461. package/lib/WPA/FlowSensitive.cpp +2 -2
  462. package/lib/WPA/TypeAnalysis.cpp +1 -1
  463. package/lib/WPA/VersionedFlowSensitive.cpp +4 -4
  464. package/lib/WPA/WPAPass.cpp +4 -4
  465. package/package.json +1 -1
@@ -136,7 +136,7 @@ void MRGenerator::generateMRs()
136
136
  /// collect mod-ref for loads/stores
137
137
  collectModRefForLoadStore();
138
138
 
139
- DBOUT(DGENERAL, outs() << pasMsg("\tCollect ModRef For const CallBlockNode*\n"));
139
+ DBOUT(DGENERAL, outs() << pasMsg("\tCollect ModRef For const CallICFGNode*\n"));
140
140
 
141
141
  /// collect mod-ref for calls
142
142
  collectModRefForCall();
@@ -259,7 +259,7 @@ void MRGenerator::collectModRefForCall()
259
259
 
260
260
  for (CallSite cs : SymbolTableInfo::SymbolInfo()->getCallSiteSet())
261
261
  {
262
- const CallBlockNode* callBlockNode = pta->getPAG()->getICFG()->getCallBlockNode(cs.getInstruction());
262
+ const CallICFGNode* callBlockNode = pta->getPAG()->getICFG()->getCallBlockNode(cs.getInstruction());
263
263
  if(hasRefSideEffectOfCallSite(callBlockNode))
264
264
  {
265
265
  NodeBS refs = getRefSideEffectOfCallSite(callBlockNode);
@@ -428,7 +428,7 @@ void MRGenerator::addModSideEffectOfFunction(const SVFFunction* fun, const NodeB
428
428
  /*!
429
429
  * Add indirect uses an memory object in the function
430
430
  */
431
- bool MRGenerator::addRefSideEffectOfCallSite(const CallBlockNode* cs, const NodeBS& refs)
431
+ bool MRGenerator::addRefSideEffectOfCallSite(const CallICFGNode* cs, const NodeBS& refs)
432
432
  {
433
433
  if(!refs.empty())
434
434
  {
@@ -444,7 +444,7 @@ bool MRGenerator::addRefSideEffectOfCallSite(const CallBlockNode* cs, const Node
444
444
  /*!
445
445
  * Add indirect def an memory object in the function
446
446
  */
447
- bool MRGenerator::addModSideEffectOfCallSite(const CallBlockNode* cs, const NodeBS& mods)
447
+ bool MRGenerator::addModSideEffectOfCallSite(const CallICFGNode* cs, const NodeBS& mods)
448
448
  {
449
449
  if(!mods.empty())
450
450
  {
@@ -476,13 +476,13 @@ void MRGenerator::getCallGraphSCCRevTopoOrder(WorkList& worklist)
476
476
  /*!
477
477
  * Get all objects might pass into and pass out of callee(s) from a callsite
478
478
  */
479
- void MRGenerator::collectCallSitePts(const CallBlockNode* cs)
479
+ void MRGenerator::collectCallSitePts(const CallICFGNode* cs)
480
480
  {
481
481
  /// collect the pts chain of the callsite arguments
482
482
  NodeBS& argsPts = csToCallSiteArgsPtsMap[cs];
483
483
  SVFIR* pag = pta->getPAG();
484
- CallBlockNode* callBlockNode = pag->getICFG()->getCallBlockNode(cs->getCallSite());
485
- RetBlockNode* retBlockNode = pag->getICFG()->getRetBlockNode(cs->getCallSite());
484
+ CallICFGNode* callBlockNode = pag->getICFG()->getCallBlockNode(cs->getCallSite());
485
+ RetICFGNode* retBlockNode = pag->getICFG()->getRetBlockNode(cs->getCallSite());
486
486
 
487
487
  WorkList worklist;
488
488
  if (pag->hasCallSiteArgsMap(callBlockNode))
@@ -600,7 +600,7 @@ bool MRGenerator::isNonLocalObject(NodeID id, const SVFFunction* curFun) const
600
600
  /*!
601
601
  * Get Mod-Ref of a callee function
602
602
  */
603
- bool MRGenerator::handleCallsiteModRef(NodeBS& mod, NodeBS& ref, const CallBlockNode* cs, const SVFFunction* callee)
603
+ bool MRGenerator::handleCallsiteModRef(NodeBS& mod, NodeBS& ref, const CallICFGNode* cs, const SVFFunction* callee)
604
604
  {
605
605
  /// if a callee is a heap allocator function, then its mod set of this callsite is the heap object.
606
606
  if(isHeapAllocExtCall(cs->getCallSite()))
@@ -646,7 +646,7 @@ void MRGenerator::modRefAnalysis(PTACallGraphNode* callGraphNode, WorkList& work
646
646
  ecit = edge->getDirectCalls().end(); cit!=ecit; ++cit)
647
647
  {
648
648
  NodeBS mod, ref;
649
- const CallBlockNode* cs = (*cit);
649
+ const CallICFGNode* cs = (*cit);
650
650
  bool modrefchanged = handleCallsiteModRef(mod, ref, cs, callGraphNode->getFunction());
651
651
  if(modrefchanged)
652
652
  worklist.push(edge->getSrcID());
@@ -656,7 +656,7 @@ void MRGenerator::modRefAnalysis(PTACallGraphNode* callGraphNode, WorkList& work
656
656
  ecit = edge->getIndirectCalls().end(); cit!=ecit; ++cit)
657
657
  {
658
658
  NodeBS mod, ref;
659
- const CallBlockNode* cs = (*cit);
659
+ const CallICFGNode* cs = (*cit);
660
660
  bool modrefchanged = handleCallsiteModRef(mod, ref, cs, callGraphNode->getFunction());
661
661
  if(modrefchanged)
662
662
  worklist.push(edge->getSrcID());
@@ -667,7 +667,7 @@ void MRGenerator::modRefAnalysis(PTACallGraphNode* callGraphNode, WorkList& work
667
667
  /*!
668
668
  * Obtain the mod sets for a call, used for external ModRefInfo queries
669
669
  */
670
- NodeBS MRGenerator::getModInfoForCall(const CallBlockNode* cs)
670
+ NodeBS MRGenerator::getModInfoForCall(const CallICFGNode* cs)
671
671
  {
672
672
  if (isExtCall(cs->getCallSite()) && !isHeapAllocExtCall(cs->getCallSite()))
673
673
  {
@@ -691,7 +691,7 @@ NodeBS MRGenerator::getModInfoForCall(const CallBlockNode* cs)
691
691
  /*!
692
692
  * Obtain the ref sets for a call, used for external ModRefInfo queries
693
693
  */
694
- NodeBS MRGenerator::getRefInfoForCall(const CallBlockNode* cs)
694
+ NodeBS MRGenerator::getRefInfoForCall(const CallICFGNode* cs)
695
695
  {
696
696
  if (isExtCall(cs->getCallSite()) && !isHeapAllocExtCall(cs->getCallSite()))
697
697
  {
@@ -716,7 +716,7 @@ NodeBS MRGenerator::getRefInfoForCall(const CallBlockNode* cs)
716
716
  * Determine whether a CallSite instruction can mod or ref
717
717
  * any memory location
718
718
  */
719
- ModRefInfo MRGenerator::getModRefInfo(const CallBlockNode* cs)
719
+ ModRefInfo MRGenerator::getModRefInfo(const CallICFGNode* cs)
720
720
  {
721
721
  bool ref = !getRefInfoForCall(cs).empty();
722
722
  bool mod = !getModInfoForCall(cs).empty();
@@ -732,10 +732,10 @@ ModRefInfo MRGenerator::getModRefInfo(const CallBlockNode* cs)
732
732
  }
733
733
 
734
734
  /*!
735
- * Determine whether a const CallBlockNode* instruction can mod or ref
735
+ * Determine whether a const CallICFGNode* instruction can mod or ref
736
736
  * a specific memory location pointed by V
737
737
  */
738
- ModRefInfo MRGenerator::getModRefInfo(const CallBlockNode* cs, const Value* V)
738
+ ModRefInfo MRGenerator::getModRefInfo(const CallICFGNode* cs, const Value* V)
739
739
  {
740
740
  bool ref = false;
741
741
  bool mod = false;
@@ -767,9 +767,9 @@ ModRefInfo MRGenerator::getModRefInfo(const CallBlockNode* cs, const Value* V)
767
767
  }
768
768
 
769
769
  /*!
770
- * Determine mod-ref relations between two const CallBlockNode* instructions
770
+ * Determine mod-ref relations between two const CallICFGNode* instructions
771
771
  */
772
- ModRefInfo MRGenerator::getModRefInfo(const CallBlockNode* cs1, const CallBlockNode* cs2)
772
+ ModRefInfo MRGenerator::getModRefInfo(const CallICFGNode* cs1, const CallICFGNode* cs2)
773
773
  {
774
774
  bool ref = false;
775
775
  bool mod = false;
@@ -174,7 +174,7 @@ void MemSSA::createMUCHI(const SVFFunction& fun)
174
174
  }
175
175
  if (isNonInstricCallSite(inst))
176
176
  {
177
- const CallBlockNode* cs = pag->getICFG()->getCallBlockNode(inst);
177
+ const CallICFGNode* cs = pag->getICFG()->getCallBlockNode(inst);
178
178
  if(mrGen->hasRefMRSet(cs))
179
179
  AddCallSiteMU(cs,mrGen->getCallSiteRefMRSet(cs));
180
180
 
@@ -318,7 +318,7 @@ void MemSSA::SSARenameBB(const BasicBlock& bb)
318
318
  }
319
319
  if (isNonInstricCallSite(inst))
320
320
  {
321
- const CallBlockNode* cs = pag->getICFG()->getCallBlockNode(inst);
321
+ const CallICFGNode* cs = pag->getICFG()->getCallBlockNode(inst);
322
322
  if(mrGen->hasRefMRSet(cs))
323
323
  RenameMuSet(getMUSet(cs));
324
324
 
@@ -634,7 +634,7 @@ void MemSSA::dumpMSSA(raw_ostream& Out)
634
634
  bool isAppCall = isNonInstricCallSite(&inst) && !isExtCall(&inst);
635
635
  if (isAppCall || isHeapAllocExtCall(&inst))
636
636
  {
637
- const CallBlockNode* cs = pag->getICFG()->getCallBlockNode(&inst);
637
+ const CallICFGNode* cs = pag->getICFG()->getCallBlockNode(&inst);
638
638
  if(hasMU(cs))
639
639
  {
640
640
  if (!last_is_chi)
@@ -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);
@@ -61,76 +61,76 @@ bool SVFStmt::isPTAEdge() const
61
61
  const std::string SVFStmt::toString() const {
62
62
  std::string str;
63
63
  raw_string_ostream rawstr(str);
64
- rawstr << "SVFStmt: [" << getDstID() << "<--" << getSrcID() << "]\t";
64
+ rawstr << "SVFStmt: [Var" << getDstID() << " <-- Var" << getSrcID() << "]\t";
65
65
  return rawstr.str();
66
66
  }
67
67
 
68
68
  const std::string AddrStmt::toString() const{
69
69
  std::string str;
70
70
  raw_string_ostream rawstr(str);
71
- rawstr << "AddrStmt: [" << getLHSVarID() << "<--" << getRHSVarID() << "]\t";
72
- if (Options::PAGDotGraphShorter) {
71
+ rawstr << "AddrStmt: [Var" << getLHSVarID() << " <-- Var" << getRHSVarID() << "]\t";
72
+ if (Options::ShowSVFIRValue) {
73
73
  rawstr << "\n";
74
+ rawstr << value2String(getValue());
74
75
  }
75
- rawstr << value2String(getValue());
76
76
  return rawstr.str();
77
77
  }
78
78
 
79
79
  const std::string CopyStmt::toString() const{
80
80
  std::string str;
81
81
  raw_string_ostream rawstr(str);
82
- rawstr << "CopyStmt: [" << getLHSVarID() << "<--" << getRHSVarID() << "]\t";
83
- if (Options::PAGDotGraphShorter) {
82
+ rawstr << "CopyStmt: [Var" << getLHSVarID() << " <-- Var" << getRHSVarID() << "]\t";
83
+ if (Options::ShowSVFIRValue) {
84
84
  rawstr << "\n";
85
+ rawstr << value2String(getValue());
85
86
  }
86
- rawstr << value2String(getValue());
87
87
  return rawstr.str();
88
88
  }
89
89
 
90
90
  const std::string PhiStmt::toString() const{
91
91
  std::string str;
92
92
  raw_string_ostream rawstr(str);
93
- rawstr << "PhiStmt: [" << getResID() << "<--(";
93
+ rawstr << "PhiStmt: [Var" << getResID() << " <-- (Var";
94
94
  for(const SVFVar* op : getOpndVars())
95
95
  rawstr << op->getId() << ",";
96
96
  rawstr << ")]\t";
97
- if (Options::PAGDotGraphShorter) {
97
+ if (Options::ShowSVFIRValue) {
98
98
  rawstr << "\n";
99
+ rawstr << value2String(getValue());
99
100
  }
100
- rawstr << value2String(getValue());
101
101
  return rawstr.str();
102
102
  }
103
103
 
104
104
  const std::string CmpStmt::toString() const{
105
105
  std::string str;
106
106
  raw_string_ostream rawstr(str);
107
- rawstr << "CmpStmt: [" << getResID() << "<--(" << getOpVarID(0) << "," << getOpVarID(1) << ")]\t";
108
- if (Options::PAGDotGraphShorter) {
107
+ rawstr << "CmpStmt: [Var" << getResID() << " <-- (Var" << getOpVarID(0) << " predicate" << getPredicate() << " Var" << getOpVarID(1) << ")]\t";
108
+ if (Options::ShowSVFIRValue) {
109
109
  rawstr << "\n";
110
+ rawstr << value2String(getValue());
110
111
  }
111
- rawstr << value2String(getValue());
112
112
  return rawstr.str();
113
113
  }
114
114
 
115
115
  const std::string BinaryOPStmt::toString() const{
116
116
  std::string str;
117
117
  raw_string_ostream rawstr(str);
118
- rawstr << "BinaryOPStmt: [" << getResID() << "<--(" << getOpVarID(0) << "," << getOpVarID(1) << ")]\t";
119
- if (Options::PAGDotGraphShorter) {
118
+ rawstr << "BinaryOPStmt: [Var" << getResID() << " <-- (Var" << getOpVarID(0) << " opcode" << getOpcode() << " Var" << getOpVarID(1) << ")]\t";
119
+ if (Options::ShowSVFIRValue) {
120
120
  rawstr << "\n";
121
+ rawstr << value2String(getValue());
121
122
  }
122
- rawstr << value2String(getValue());
123
123
  return rawstr.str();
124
124
  }
125
125
 
126
126
  const std::string UnaryOPStmt::toString() const{
127
127
  std::string str;
128
128
  raw_string_ostream rawstr(str);
129
- rawstr << "UnaryOPStmt: [" << getResID() << "<--" << getOpVarID() << "]\t";
130
- if (Options::PAGDotGraphShorter) {
129
+ rawstr << "UnaryOPStmt: [Var" << getResID() << " <-- " << " opcode" << getOpcode() << " Var" << getOpVarID() << "]\t";
130
+ if (Options::ShowSVFIRValue) {
131
131
  rawstr << "\n";
132
+ rawstr << value2String(getValue());
132
133
  }
133
- rawstr << value2String(getValue());
134
134
  return rawstr.str();
135
135
  }
136
136
 
@@ -138,13 +138,17 @@ const std::string BranchStmt::toString() const {
138
138
  std::string str;
139
139
  raw_string_ostream rawstr(str);
140
140
  if(isConditional())
141
- rawstr << "BranchStmt: [" << getCondition()->toString() << "]\t";
141
+ rawstr << "BranchStmt: [Condition Var" << getCondition()->getId() << "]\t";
142
142
  else
143
143
  rawstr << "BranchStmt: [" << " Unconditional branch" << "]\t";
144
- if (Options::PAGDotGraphShorter) {
144
+
145
+ for(u32_t i = 0; i < getNumSuccessors(); i++)
146
+ rawstr << "Successor " << i << " ICFGNode" << getSuccessor(i)->getId() << "\n";
147
+
148
+ if (Options::ShowSVFIRValue) {
145
149
  rawstr << "\n";
150
+ rawstr << value2String(getValue());
146
151
  }
147
- rawstr << value2String(getValue());
148
152
  return rawstr.str();
149
153
  }
150
154
 
@@ -152,99 +156,99 @@ const std::string BranchStmt::toString() const {
152
156
  const std::string LoadStmt::toString() const{
153
157
  std::string str;
154
158
  raw_string_ostream rawstr(str);
155
- rawstr << "LoadStmt: [" << getLHSVarID() << "<--" << getRHSVarID() << "]\t";
156
- if (Options::PAGDotGraphShorter) {
159
+ rawstr << "LoadStmt: [Var" << getLHSVarID() << " <-- Var" << getRHSVarID() << "]\t";
160
+ if (Options::ShowSVFIRValue) {
157
161
  rawstr << "\n";
162
+ rawstr << value2String(getValue());
158
163
  }
159
- rawstr << value2String(getValue());
160
164
  return rawstr.str();
161
165
  }
162
166
 
163
167
  const std::string StoreStmt::toString() const{
164
168
  std::string str;
165
169
  raw_string_ostream rawstr(str);
166
- rawstr << "StoreStmt: [" << getLHSVarID() << "<--" << getRHSVarID() << "]\t";
167
- if (Options::PAGDotGraphShorter) {
170
+ rawstr << "StoreStmt: [Var" << getLHSVarID() << " <-- Var" << getRHSVarID() << "]\t";
171
+ if (Options::ShowSVFIRValue) {
168
172
  rawstr << "\n";
173
+ rawstr << value2String(getValue());
169
174
  }
170
- rawstr << value2String(getValue());
171
175
  return rawstr.str();
172
176
  }
173
177
 
174
178
  const std::string GepStmt::toString() const{
175
179
  std::string str;
176
180
  raw_string_ostream rawstr(str);
177
- rawstr << "GepStmt: [" << getLHSVarID() << "<--" << getRHSVarID() << "]\t";
178
- if (Options::PAGDotGraphShorter) {
181
+ rawstr << "GepStmt: [Var" << getLHSVarID() << " <-- Var" << getRHSVarID() << "]\t";
182
+ if (Options::ShowSVFIRValue) {
179
183
  rawstr << "\n";
184
+ rawstr << value2String(getValue());
180
185
  }
181
- rawstr << value2String(getValue());
182
186
  return rawstr.str();
183
187
  }
184
188
 
185
189
  const std::string NormalGepStmt::toString() const{
186
190
  std::string str;
187
191
  raw_string_ostream rawstr(str);
188
- rawstr << "NormalGepStmt: [" << getLHSVarID() << "<--" << getRHSVarID() << "]\t";
189
- if (Options::PAGDotGraphShorter) {
192
+ rawstr << "NormalGepStmt: [Var" << getLHSVarID() << " <-- Var" << getRHSVarID() << "]\t";
193
+ if (Options::ShowSVFIRValue) {
190
194
  rawstr << "\n";
195
+ rawstr << value2String(getValue());
191
196
  }
192
- rawstr << value2String(getValue());
193
197
  return rawstr.str();
194
198
  }
195
199
 
196
200
  const std::string VariantGepStmt::toString() const{
197
201
  std::string str;
198
202
  raw_string_ostream rawstr(str);
199
- rawstr << "VariantGepStmt: [" << getLHSVarID() << "<--" << getRHSVarID() << "]\t";
200
- if (Options::PAGDotGraphShorter) {
203
+ rawstr << "VariantGepStmt: [Var" << getLHSVarID() << " <-- Var" << getRHSVarID() << "]\t";
204
+ if (Options::ShowSVFIRValue) {
201
205
  rawstr << "\n";
206
+ rawstr << value2String(getValue());
202
207
  }
203
- rawstr << value2String(getValue());
204
208
  return rawstr.str();
205
209
  }
206
210
 
207
211
  const std::string CallPE::toString() const{
208
212
  std::string str;
209
213
  raw_string_ostream rawstr(str);
210
- rawstr << "CallPE: [" << getLHSVarID() << "<--" << getRHSVarID() << "]\t";
211
- if (Options::PAGDotGraphShorter) {
214
+ rawstr << "CallPE: [Var" << getLHSVarID() << " <-- Var" << getRHSVarID() << "]\t";
215
+ if (Options::ShowSVFIRValue) {
212
216
  rawstr << "\n";
217
+ rawstr << value2String(getValue());
213
218
  }
214
- rawstr << value2String(getValue());
215
219
  return rawstr.str();
216
220
  }
217
221
 
218
222
  const std::string RetPE::toString() const{
219
223
  std::string str;
220
224
  raw_string_ostream rawstr(str);
221
- rawstr << "RetPE: [" << getLHSVarID() << "<--" << getRHSVarID() << "]\t";
222
- if (Options::PAGDotGraphShorter) {
225
+ rawstr << "RetPE: [Var" << getLHSVarID() << " <-- Var" << getRHSVarID() << "]\t";
226
+ if (Options::ShowSVFIRValue) {
223
227
  rawstr << "\n";
228
+ rawstr << value2String(getValue());
224
229
  }
225
- rawstr << value2String(getValue());
226
230
  return rawstr.str();
227
231
  }
228
232
 
229
233
  const std::string TDForkPE::toString() const{
230
234
  std::string str;
231
235
  raw_string_ostream rawstr(str);
232
- rawstr << "TDForkPE: [" << getLHSVarID() << "<--" << getRHSVarID() << "]\t";
233
- if (Options::PAGDotGraphShorter) {
236
+ rawstr << "TDForkPE: [Var" << getLHSVarID() << " <-- Var" << getRHSVarID() << "]\t";
237
+ if (Options::ShowSVFIRValue) {
234
238
  rawstr << "\n";
239
+ rawstr << value2String(getValue());
235
240
  }
236
- rawstr << value2String(getValue());
237
241
  return rawstr.str();
238
242
  }
239
243
 
240
244
  const std::string TDJoinPE::toString() const{
241
245
  std::string str;
242
246
  raw_string_ostream rawstr(str);
243
- rawstr << "TDJoinPE: [" << getLHSVarID() << "<--" << getRHSVarID() << "]\t";
244
- if (Options::PAGDotGraphShorter) {
247
+ rawstr << "TDJoinPE: [Var" << getLHSVarID() << " <-- Var" << getRHSVarID() << "]\t";
248
+ if (Options::ShowSVFIRValue) {
245
249
  rawstr << "\n";
250
+ rawstr << value2String(getValue());
246
251
  }
247
- rawstr << value2String(getValue());
248
252
  return rawstr.str();
249
253
  }
250
254