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
@@ -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
 
@@ -112,10 +112,10 @@ const std::string ValVar::toString() const {
112
112
  std::string str;
113
113
  raw_string_ostream rawstr(str);
114
114
  rawstr << "ValVar ID: " << getId();
115
- if (Options::PAGDotGraphShorter) {
115
+ if (Options::ShowSVFIRValue) {
116
116
  rawstr << "\n";
117
+ rawstr << value2String(value);
117
118
  }
118
- rawstr << value2String(value);
119
119
  return rawstr.str();
120
120
  }
121
121
 
@@ -123,10 +123,10 @@ const std::string ObjVar::toString() const {
123
123
  std::string str;
124
124
  raw_string_ostream rawstr(str);
125
125
  rawstr << "ObjVar ID: " << getId();
126
- if (Options::PAGDotGraphShorter) {
126
+ if (Options::ShowSVFIRValue) {
127
127
  rawstr << "\n";
128
+ rawstr << value2String(value);
128
129
  }
129
- rawstr << value2String(value);
130
130
  return rawstr.str();
131
131
  }
132
132
 
@@ -134,10 +134,10 @@ const std::string GepValVar::toString() const {
134
134
  std::string str;
135
135
  raw_string_ostream rawstr(str);
136
136
  rawstr << "GepValVar ID: " << getId() << " with offset_" + llvm::utostr(getFieldOffset());
137
- if (Options::PAGDotGraphShorter) {
137
+ if (Options::ShowSVFIRValue) {
138
138
  rawstr << "\n";
139
+ rawstr << value2String(value);
139
140
  }
140
- rawstr << value2String(value);
141
141
  return rawstr.str();
142
142
  }
143
143
 
@@ -145,10 +145,10 @@ const std::string GepObjVar::toString() const {
145
145
  std::string str;
146
146
  raw_string_ostream rawstr(str);
147
147
  rawstr << "GepObjVar ID: " << getId() << " with offset_" + llvm::itostr(ls.accumulateConstantFieldIdx());
148
- if (Options::PAGDotGraphShorter) {
148
+ if (Options::ShowSVFIRValue) {
149
149
  rawstr << "\n";
150
+ rawstr << value2String(value);
150
151
  }
151
- rawstr << value2String(value);
152
152
  return rawstr.str();
153
153
  }
154
154
 
@@ -156,10 +156,10 @@ const std::string FIObjVar::toString() const {
156
156
  std::string str;
157
157
  raw_string_ostream rawstr(str);
158
158
  rawstr << "FIObjVar ID: " << getId() << " (base object)";
159
- if (Options::PAGDotGraphShorter) {
159
+ if (Options::ShowSVFIRValue) {
160
160
  rawstr << "\n";
161
+ rawstr << value2String(value);
161
162
  }
162
- rawstr << value2String(value);
163
163
  return rawstr.str();
164
164
  }
165
165
 
@@ -268,7 +268,7 @@ bool SymbolTableInfo::isConstantObjSym(const Value *val)
268
268
  {
269
269
  if (const GlobalVariable* v = SVFUtil::dyn_cast<GlobalVariable>(val))
270
270
  {
271
- if (cppUtil::isValVtbl(const_cast<GlobalVariable*>(v)))
271
+ if (cppUtil::isValVtbl(v))
272
272
  return false;
273
273
  else if (!v->hasInitializer()){
274
274
  if(v->isExternalLinkage(v->getLinkage()))
@@ -702,19 +702,24 @@ bool MemObj::isVarArray() const
702
702
  return typeInfo->isVarArray();
703
703
  }
704
704
 
705
- bool MemObj::isConstStruct() const
705
+ bool MemObj::isConstantStruct() const
706
706
  {
707
- return typeInfo->isConstStruct();
707
+ return typeInfo->isConstantStruct();
708
708
  }
709
709
 
710
- bool MemObj::isConstArray() const
710
+ bool MemObj::isConstantArray() const
711
711
  {
712
- return typeInfo->isConstArray();
712
+ return typeInfo->isConstantArray();
713
713
  }
714
714
 
715
- bool MemObj::isConstant() const
715
+ bool MemObj::isConstDataOrConstGlobal() const
716
716
  {
717
- return typeInfo->isConstant();
717
+ return typeInfo->isConstDataOrConstGlobal();
718
+ }
719
+
720
+ bool MemObj::isConstantData() const
721
+ {
722
+ return typeInfo->isConstantData();
718
723
  }
719
724
 
720
725
  bool MemObj::hasPtrObj() const
@@ -38,7 +38,7 @@ void DoubleFreeChecker::reportBug(ProgSlice* slice)
38
38
  if(slice->isSatisfiableForPairs() == false)
39
39
  {
40
40
  const SVFGNode* src = slice->getSource();
41
- const CallBlockNode* cs = getSrcCSID(src);
41
+ const CallICFGNode* cs = getSrcCSID(src);
42
42
  SVFUtil::errs() << bugMsg2("\t Double Free :") << " memory allocation at : ("
43
43
  << getSourceLoc(cs->getCallSite()) << ")\n";
44
44
  SVFUtil::errs() << "\t\t double free path: \n" << slice->evalFinalCond() << "\n";
@@ -35,14 +35,14 @@ using namespace SVFUtil;
35
35
 
36
36
  void FileChecker::reportNeverClose(const SVFGNode* src)
37
37
  {
38
- const CallBlockNode* cs = getSrcCSID(src);
38
+ const CallICFGNode* cs = getSrcCSID(src);
39
39
  SVFUtil::errs() << bugMsg1("\t FileNeverClose :") << " file open location at : ("
40
40
  << getSourceLoc(cs->getCallSite()) << ")\n";
41
41
  }
42
42
 
43
43
  void FileChecker::reportPartialClose(const SVFGNode* src)
44
44
  {
45
- const CallBlockNode* cs = getSrcCSID(src);
45
+ const CallICFGNode* cs = getSrcCSID(src);
46
46
  SVFUtil::errs() << bugMsg2("\t PartialFileClose :") << " file open location at : ("
47
47
  << getSourceLoc(cs->getCallSite()) << ")\n";
48
48
  }
@@ -46,7 +46,7 @@ void LeakChecker::initSrcs()
46
46
  for(SVFIR::CSToRetMap::iterator it = pag->getCallSiteRets().begin(),
47
47
  eit = pag->getCallSiteRets().end(); it!=eit; ++it)
48
48
  {
49
- const RetBlockNode* cs = it->first;
49
+ const RetICFGNode* cs = it->first;
50
50
  /// if this callsite return reside in a dead function then we do not care about its leaks
51
51
  /// for example instruction `int* p = malloc(size)` is in a dead function, then program won't allocate this memory
52
52
  /// for example a customized malloc `int p = malloc()` returns an integer value, then program treat it as a system malloc
@@ -65,8 +65,8 @@ void LeakChecker::initSrcs()
65
65
  worklist.push(it->first->getCallBlockNode());
66
66
  while (!worklist.empty())
67
67
  {
68
- const CallBlockNode* cs = worklist.pop();
69
- const RetBlockNode* retBlockNode = icfg->getRetBlockNode(cs->getCallSite());
68
+ const CallICFGNode* cs = worklist.pop();
69
+ const RetICFGNode* retBlockNode = icfg->getRetBlockNode(cs->getCallSite());
70
70
  const PAGNode* pagNode = pag->getCallSiteRet(retBlockNode);
71
71
  const SVFGNode* node = getSVFG()->getDefSVFGNode(pagNode);
72
72
  if (visited.test(node->getId()) == 0)
@@ -138,14 +138,14 @@ void LeakChecker::initSnks()
138
138
 
139
139
  void LeakChecker::reportNeverFree(const SVFGNode* src)
140
140
  {
141
- const CallBlockNode* cs = getSrcCSID(src);
141
+ const CallICFGNode* cs = getSrcCSID(src);
142
142
  SVFUtil::errs() << bugMsg1("\t NeverFree :") << " memory allocation at : ("
143
143
  << getSourceLoc(cs->getCallSite()) << ")\n";
144
144
  }
145
145
 
146
146
  void LeakChecker::reportPartialLeak(const SVFGNode* src)
147
147
  {
148
- const CallBlockNode* cs = getSrcCSID(src);
148
+ const CallICFGNode* cs = getSrcCSID(src);
149
149
  SVFUtil::errs() << bugMsg2("\t PartialLeak :") << " memory allocation at : ("
150
150
  << getSourceLoc(cs->getCallSite()) << ")\n";
151
151
  }
@@ -175,7 +175,7 @@ void LeakChecker::reportBug(ProgSlice* slice)
175
175
  void LeakChecker::testsValidation(const ProgSlice* slice)
176
176
  {
177
177
  const SVFGNode* source = slice->getSource();
178
- const CallBlockNode* cs = getSrcCSID(source);
178
+ const CallICFGNode* cs = getSrcCSID(source);
179
179
  const SVFFunction* fun = getCallee(cs->getCallSite());
180
180
  if(fun==nullptr)
181
181
  return;
@@ -188,7 +188,7 @@ void LeakChecker::testsValidation(const ProgSlice* slice)
188
188
  void LeakChecker::validateSuccessTests(const SVFGNode* source, const SVFFunction* fun)
189
189
  {
190
190
 
191
- const CallBlockNode* cs = getSrcCSID(source);
191
+ const CallICFGNode* cs = getSrcCSID(source);
192
192
 
193
193
  bool success = false;
194
194
 
@@ -241,7 +241,7 @@ void LeakChecker::validateSuccessTests(const SVFGNode* source, const SVFFunction
241
241
  void LeakChecker::validateExpectedFailureTests(const SVFGNode* source, const SVFFunction* fun)
242
242
  {
243
243
 
244
- const CallBlockNode* cs = getSrcCSID(source);
244
+ const CallICFGNode* cs = getSrcCSID(source);
245
245
 
246
246
  bool expectedFailure = false;
247
247
 
@@ -130,7 +130,7 @@ bool ProgSlice::isSatisfiableForPairs()
130
130
  return true;
131
131
  }
132
132
 
133
- const CallBlockNode* ProgSlice::getCallSite(const SVFGEdge* edge) const
133
+ const CallICFGNode* ProgSlice::getCallSite(const SVFGEdge* edge) const
134
134
  {
135
135
  assert(edge->isCallVFGEdge() && "not a call svfg edge?");
136
136
  if(const CallDirSVFGEdge* callEdge = SVFUtil::dyn_cast<CallDirSVFGEdge>(edge))
@@ -138,7 +138,7 @@ const CallBlockNode* ProgSlice::getCallSite(const SVFGEdge* edge) const
138
138
  else
139
139
  return getSVFG()->getCallSite(SVFUtil::cast<CallIndSVFGEdge>(edge)->getCallSiteId());
140
140
  }
141
- const CallBlockNode* ProgSlice::getRetSite(const SVFGEdge* edge) const
141
+ const CallICFGNode* ProgSlice::getRetSite(const SVFGEdge* edge) const
142
142
  {
143
143
  assert(edge->isRetVFGEdge() && "not a return svfg edge?");
144
144
  if(const RetDirSVFGEdge* callEdge = SVFUtil::dyn_cast<RetDirSVFGEdge>(edge))
@@ -55,7 +55,7 @@ PTACallGraph* CallGraphBuilder::buildCallGraph(SVFModule* svfModule)
55
55
  {
56
56
  if(const SVFFunction* callee = getCallee(inst))
57
57
  {
58
- const CallBlockNode* callBlockNode = icfg->getCallBlockNode(inst);
58
+ const CallICFGNode* callBlockNode = icfg->getCallBlockNode(inst);
59
59
  const SVFFunction* caller = LLVMModuleSet::getLLVMModuleSet()->getSVFFunction(fun);
60
60
  callgraph->addDirectCallGraphEdge(callBlockNode,caller,callee);
61
61
  }
@@ -83,7 +83,7 @@ PTACallGraph* ThreadCallGraphBuilder::buildThreadCallGraph(SVFModule* svfModule)
83
83
  const Instruction *inst = &*II;
84
84
  if (tdAPI->isTDFork(inst))
85
85
  {
86
- const CallBlockNode* cs = icfg->getCallBlockNode(inst);
86
+ const CallICFGNode* cs = icfg->getCallBlockNode(inst);
87
87
  cg->addForksite(cs);
88
88
  const Function* forkee = SVFUtil::dyn_cast<Function>(tdAPI->getForkedFun(inst));
89
89
  if (forkee)
@@ -98,7 +98,7 @@ PTACallGraph* ThreadCallGraphBuilder::buildThreadCallGraph(SVFModule* svfModule)
98
98
  }
99
99
  else if (tdAPI->isHareParFor(inst))
100
100
  {
101
- const CallBlockNode* cs = icfg->getCallBlockNode(inst);
101
+ const CallICFGNode* cs = icfg->getCallBlockNode(inst);
102
102
  cg->addParForSite(cs);
103
103
  const Function* taskFunc = SVFUtil::dyn_cast<Function>(tdAPI->getTaskFuncAtHareParForSite(inst));
104
104
  if (taskFunc)
@@ -122,7 +122,7 @@ PTACallGraph* ThreadCallGraphBuilder::buildThreadCallGraph(SVFModule* svfModule)
122
122
  const Instruction *inst = &*II;
123
123
  if (tdAPI->isTDJoin(inst))
124
124
  {
125
- const CallBlockNode* cs = icfg->getCallBlockNode(inst);
125
+ const CallICFGNode* cs = icfg->getCallBlockNode(inst);
126
126
  cg->addJoinsite(cs);
127
127
  }
128
128
  }
@@ -31,7 +31,7 @@ void ICFGPrinter::printICFGToJson(const std::string& filename)
31
31
  llvm::json::Object ICFGNode_Obj;
32
32
  ICFGNode_Obj["ICFG_ID"] = id;
33
33
  ICFGNode_Obj["Node Type"] = getICFGKind(node->getNodeKind());
34
- if(IntraBlockNode* bNode = SVFUtil::dyn_cast<IntraBlockNode>(node))
34
+ if(IntraICFGNode* bNode = SVFUtil::dyn_cast<IntraICFGNode>(node))
35
35
  {
36
36
  ICFGNode_Obj["Source Location"] = getSourceLoc(bNode->getInst());
37
37
  SVFIR::SVFStmtList& edges = SVFIR::getPAG()->getPTASVFStmtList(bNode);
@@ -61,7 +61,7 @@ void ICFGPrinter::printICFGToJson(const std::string& filename)
61
61
  llvm::json::Value PagEdge_value = llvm::json::Array{PAGEdge_array};
62
62
  ICFGNode_Obj["SVFIR Edges"] = PagEdge_value;
63
63
  }
64
- else if(FunEntryBlockNode* entry = SVFUtil::dyn_cast<FunEntryBlockNode>(node))
64
+ else if(FunEntryICFGNode* entry = SVFUtil::dyn_cast<FunEntryICFGNode>(node))
65
65
  {
66
66
  if (isExtCall(entry->getFun()))
67
67
  ICFGNode_Obj["isExtCall"] = true;
@@ -72,7 +72,7 @@ void ICFGPrinter::printICFGToJson(const std::string& filename)
72
72
  }
73
73
  ICFGNode_Obj["Function Name"] = entry->getFun()->getName();
74
74
  }
75
- else if (FunExitBlockNode* exit = SVFUtil::dyn_cast<FunExitBlockNode>(node))
75
+ else if (FunExitICFGNode* exit = SVFUtil::dyn_cast<FunExitICFGNode>(node))
76
76
  {
77
77
  if (isExtCall(exit->getFun()))
78
78
  ICFGNode_Obj["isExtCall"] = true;
@@ -83,11 +83,11 @@ void ICFGPrinter::printICFGToJson(const std::string& filename)
83
83
  }
84
84
  ICFGNode_Obj["Function Name"] = exit->getFun()->getName();
85
85
  }
86
- else if (CallBlockNode* call = SVFUtil::dyn_cast<CallBlockNode>(node))
86
+ else if (CallICFGNode* call = SVFUtil::dyn_cast<CallICFGNode>(node))
87
87
  {
88
88
  ICFGNode_Obj["Source Location"] = getSourceLoc(call->getCallSite());
89
89
  }
90
- else if (RetBlockNode* ret = SVFUtil::dyn_cast<RetBlockNode>(node))
90
+ else if (RetICFGNode* ret = SVFUtil::dyn_cast<RetICFGNode>(node))
91
91
  {
92
92
  ICFGNode_Obj["Source Location"] = getSourceLoc(ret->getCallSite());
93
93
  }