svf-tools 1.0.321 → 1.0.325

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/AndersenSFR_8cpp_source.html +1 -1
  2. package/SVF-doxygen/html/html/AndersenStat_8cpp_source.html +7 -7
  3. package/SVF-doxygen/html/html/Andersen_8cpp_source.html +3 -3
  4. package/SVF-doxygen/html/html/Andersen_8h_source.html +2 -2
  5. package/SVF-doxygen/html/html/ConsGNode_8h_source.html +5 -5
  6. package/SVF-doxygen/html/html/ConsG_8cpp_source.html +13 -12
  7. package/SVF-doxygen/html/html/ConsG_8h_source.html +15 -15
  8. package/SVF-doxygen/html/html/ContextDDA_8cpp_source.html +6 -6
  9. package/SVF-doxygen/html/html/ContextDDA_8h_source.html +3 -3
  10. package/SVF-doxygen/html/html/DDAClient_8cpp_source.html +3 -3
  11. package/SVF-doxygen/html/html/DDAClient_8h_source.html +1 -1
  12. package/SVF-doxygen/html/html/DDAPass_8cpp_source.html +1 -1
  13. package/SVF-doxygen/html/html/DDAStat_8cpp_source.html +3 -3
  14. package/SVF-doxygen/html/html/DDAVFSolver_8h_source.html +8 -8
  15. package/SVF-doxygen/html/html/FSMPTA_8h_source.html +1 -1
  16. package/SVF-doxygen/html/html/FlowDDA_8cpp_source.html +2 -2
  17. package/SVF-doxygen/html/html/FlowDDA_8h_source.html +3 -3
  18. package/SVF-doxygen/html/html/FlowSensitiveStat_8cpp_source.html +8 -8
  19. package/SVF-doxygen/html/html/FlowSensitiveTBHC_8cpp_source.html +5 -5
  20. package/SVF-doxygen/html/html/FlowSensitiveTBHC_8h_source.html +2 -2
  21. package/SVF-doxygen/html/html/FlowSensitive_8cpp_source.html +2 -2
  22. package/SVF-doxygen/html/html/Graph2Json_8cpp_source.html +4 -4
  23. package/SVF-doxygen/html/html/ICFGNode_8h_source.html +4 -4
  24. package/SVF-doxygen/html/html/ICFG_8cpp_source.html +4 -4
  25. package/SVF-doxygen/html/html/IRAnnotator_8h_source.html +2 -2
  26. package/SVF-doxygen/html/html/IRGraph_8cpp.html +1 -0
  27. package/SVF-doxygen/html/html/IRGraph_8cpp_source.html +20 -18
  28. package/SVF-doxygen/html/html/IRGraph_8h_source.html +13 -13
  29. package/SVF-doxygen/html/html/LeakChecker_8cpp_source.html +6 -6
  30. package/SVF-doxygen/html/html/MSSAMuChi_8h_source.html +9 -9
  31. package/SVF-doxygen/html/html/MTAAnnotator_8cpp_source.html +6 -6
  32. package/SVF-doxygen/html/html/MemRegion_8cpp_source.html +24 -24
  33. package/SVF-doxygen/html/html/MemRegion_8h_source.html +13 -13
  34. package/SVF-doxygen/html/html/MemSSA_8cpp_source.html +13 -13
  35. package/SVF-doxygen/html/html/MemSSA_8h_source.html +13 -13
  36. package/SVF-doxygen/html/html/OfflineConsG_8cpp_source.html +2 -2
  37. package/SVF-doxygen/html/html/Options_8cpp_source.html +2 -1
  38. package/SVF-doxygen/html/html/Options_8h_source.html +2 -1
  39. package/SVF-doxygen/html/html/PAGBuilderFromFile_8cpp_source.html +3 -3
  40. package/SVF-doxygen/html/html/PTAStat_8cpp_source.html +8 -8
  41. package/SVF-doxygen/html/html/PointerAnalysisImpl_8cpp_source.html +8 -8
  42. package/SVF-doxygen/html/html/PointerAnalysisImpl_8h_source.html +3 -3
  43. package/SVF-doxygen/html/html/PointerAnalysis_8cpp_source.html +8 -8
  44. package/SVF-doxygen/html/html/PointerAnalysis_8h_source.html +17 -17
  45. package/SVF-doxygen/html/html/SVFGEdge_8h_source.html +1 -1
  46. package/SVF-doxygen/html/html/SVFGNode_8h_source.html +1 -1
  47. package/SVF-doxygen/html/html/SVFGOPT_8cpp_source.html +1 -1
  48. package/SVF-doxygen/html/html/SVFGOPT_8h_source.html +3 -3
  49. package/SVF-doxygen/html/html/SVFG_8cpp.html +1 -0
  50. package/SVF-doxygen/html/html/SVFG_8cpp_source.html +63 -61
  51. package/SVF-doxygen/html/html/SVFG_8h_source.html +20 -20
  52. package/SVF-doxygen/html/html/SVFIRBuilder_8cpp_source.html +5 -5
  53. package/SVF-doxygen/html/html/SVFIRBuilder_8h_source.html +42 -42
  54. package/SVF-doxygen/html/html/SVFIR_8cpp_source.html +61 -61
  55. package/SVF-doxygen/html/html/SVFIR_8h_source.html +153 -154
  56. package/SVF-doxygen/html/html/SVFStatements_8cpp_source.html +22 -22
  57. package/SVF-doxygen/html/html/SVFStatements_8h.html +11 -11
  58. package/SVF-doxygen/html/html/SVFStatements_8h_source.html +133 -132
  59. package/SVF-doxygen/html/html/SVFVariables_8cpp_source.html +9 -9
  60. package/SVF-doxygen/html/html/SVFVariables_8h.html +9 -9
  61. package/SVF-doxygen/html/html/SVFVariables_8h_source.html +78 -78
  62. package/SVF-doxygen/html/html/SaberSVFGBuilder_8cpp_source.html +6 -6
  63. package/SVF-doxygen/html/html/SrcSnkDDA_8h_source.html +1 -1
  64. package/SVF-doxygen/html/html/ThreadCallGraph_8cpp_source.html +3 -3
  65. package/SVF-doxygen/html/html/TypeAnalysis_8cpp_source.html +2 -2
  66. package/SVF-doxygen/html/html/TypeBasedHeapCloning_8cpp_source.html +13 -13
  67. package/SVF-doxygen/html/html/VFGNode_8h_source.html +17 -17
  68. package/SVF-doxygen/html/html/VFG_8cpp_source.html +48 -48
  69. package/SVF-doxygen/html/html/VFG_8h_source.html +35 -35
  70. package/SVF-doxygen/html/html/VersionedFlowSensitiveStat_8cpp_source.html +5 -5
  71. package/SVF-doxygen/html/html/VersionedFlowSensitive_8cpp_source.html +7 -7
  72. package/SVF-doxygen/html/html/WPAPass_8cpp_source.html +1 -1
  73. package/SVF-doxygen/html/html/annotated.html +21 -21
  74. package/SVF-doxygen/html/html/classSVF_1_1ActualINSVFGNode.html +2 -2
  75. package/SVF-doxygen/html/html/classSVF_1_1ActualOUTSVFGNode.html +2 -2
  76. package/SVF-doxygen/html/html/classSVF_1_1AddrCGEdge.html +2 -2
  77. package/SVF-doxygen/html/html/classSVF_1_1AddrStmt-members.html +137 -0
  78. package/SVF-doxygen/html/html/classSVF_1_1AddrStmt.html +500 -0
  79. package/SVF-doxygen/html/html/classSVF_1_1AddrStmt.png +0 -0
  80. package/SVF-doxygen/html/html/classSVF_1_1AddrVFGNode-members.html +1 -1
  81. package/SVF-doxygen/html/html/classSVF_1_1AddrVFGNode.html +7 -7
  82. package/SVF-doxygen/html/html/classSVF_1_1AliasDDAClient.html +3 -3
  83. package/SVF-doxygen/html/html/classSVF_1_1Andersen-members.html +4 -4
  84. package/SVF-doxygen/html/html/classSVF_1_1Andersen.html +34 -34
  85. package/SVF-doxygen/html/html/classSVF_1_1AndersenBase-members.html +4 -4
  86. package/SVF-doxygen/html/html/classSVF_1_1AndersenBase.html +12 -12
  87. package/SVF-doxygen/html/html/classSVF_1_1AndersenHCD-members.html +4 -4
  88. package/SVF-doxygen/html/html/classSVF_1_1AndersenHCD.html +8 -8
  89. package/SVF-doxygen/html/html/classSVF_1_1AndersenHLCD-members.html +4 -4
  90. package/SVF-doxygen/html/html/classSVF_1_1AndersenHLCD.html +8 -8
  91. package/SVF-doxygen/html/html/classSVF_1_1AndersenLCD-members.html +4 -4
  92. package/SVF-doxygen/html/html/classSVF_1_1AndersenLCD.html +8 -8
  93. package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD-members.html +4 -4
  94. package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD.html +8 -8
  95. package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR-members.html +4 -4
  96. package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR.html +11 -11
  97. package/SVF-doxygen/html/html/classSVF_1_1AndersenStat.html +9 -9
  98. package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff-members.html +4 -4
  99. package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff.html +8 -8
  100. package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl-members.html +4 -4
  101. package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl.html +26 -26
  102. package/SVF-doxygen/html/html/classSVF_1_1BinaryOPStmt-members.html +155 -0
  103. package/SVF-doxygen/html/html/classSVF_1_1BinaryOPStmt.html +756 -0
  104. package/SVF-doxygen/html/html/classSVF_1_1BinaryOPStmt.png +0 -0
  105. package/SVF-doxygen/html/html/classSVF_1_1BranchStmt-members.html +20 -19
  106. package/SVF-doxygen/html/html/classSVF_1_1BranchStmt.html +33 -31
  107. package/SVF-doxygen/html/html/classSVF_1_1BranchVFGNode.html +3 -3
  108. package/SVF-doxygen/html/html/classSVF_1_1CallBlockNode-members.html +8 -8
  109. package/SVF-doxygen/html/html/classSVF_1_1CallBlockNode.html +6 -6
  110. package/SVF-doxygen/html/html/classSVF_1_1CallIndSVFGEdge.html +2 -2
  111. package/SVF-doxygen/html/html/classSVF_1_1CallPE-members.html +20 -19
  112. package/SVF-doxygen/html/html/classSVF_1_1CallPE.html +24 -22
  113. package/SVF-doxygen/html/html/classSVF_1_1CloneDummyObjVar-members.html +169 -0
  114. package/SVF-doxygen/html/html/classSVF_1_1CloneDummyObjVar.html +537 -0
  115. package/SVF-doxygen/html/html/classSVF_1_1CloneDummyObjVar.png +0 -0
  116. package/SVF-doxygen/html/html/classSVF_1_1CloneFIObjVar-members.html +169 -0
  117. package/SVF-doxygen/html/html/classSVF_1_1CloneFIObjVar.html +547 -0
  118. package/SVF-doxygen/html/html/classSVF_1_1CloneFIObjVar.png +0 -0
  119. package/SVF-doxygen/html/html/classSVF_1_1CloneGepObjVar-members.html +172 -0
  120. package/SVF-doxygen/html/html/classSVF_1_1CloneGepObjVar.html +556 -0
  121. package/SVF-doxygen/html/html/classSVF_1_1CloneGepObjVar.png +0 -0
  122. package/SVF-doxygen/html/html/classSVF_1_1CmpStmt-members.html +75 -22
  123. package/SVF-doxygen/html/html/classSVF_1_1CmpStmt.html +479 -93
  124. package/SVF-doxygen/html/html/classSVF_1_1CmpStmt.png +0 -0
  125. package/SVF-doxygen/html/html/classSVF_1_1CondPTAImpl-members.html +4 -4
  126. package/SVF-doxygen/html/html/classSVF_1_1CondPTAImpl.html +11 -11
  127. package/SVF-doxygen/html/html/classSVF_1_1ConstraintGraph-members.html +5 -5
  128. package/SVF-doxygen/html/html/classSVF_1_1ConstraintGraph.html +46 -46
  129. package/SVF-doxygen/html/html/classSVF_1_1ConstraintNode-members.html +26 -26
  130. package/SVF-doxygen/html/html/classSVF_1_1ConstraintNode.html +43 -43
  131. package/SVF-doxygen/html/html/classSVF_1_1ContextDDA-members.html +4 -4
  132. package/SVF-doxygen/html/html/classSVF_1_1ContextDDA.html +18 -18
  133. package/SVF-doxygen/html/html/classSVF_1_1CopyStmt-members.html +57 -21
  134. package/SVF-doxygen/html/html/classSVF_1_1CopyStmt.html +253 -89
  135. package/SVF-doxygen/html/html/classSVF_1_1CopyStmt.png +0 -0
  136. package/SVF-doxygen/html/html/classSVF_1_1CopyVFGNode-members.html +1 -1
  137. package/SVF-doxygen/html/html/classSVF_1_1CopyVFGNode.html +7 -7
  138. package/SVF-doxygen/html/html/classSVF_1_1DDAClient.html +1 -1
  139. package/SVF-doxygen/html/html/classSVF_1_1DDAStat.html +3 -3
  140. package/SVF-doxygen/html/html/classSVF_1_1DDAVFSolver.html +10 -10
  141. package/SVF-doxygen/html/html/classSVF_1_1DistinctMRG-members.html +19 -19
  142. package/SVF-doxygen/html/html/classSVF_1_1DistinctMRG.html +27 -27
  143. package/SVF-doxygen/html/html/classSVF_1_1DummyObjVar-members.html +167 -0
  144. package/SVF-doxygen/html/html/classSVF_1_1DummyObjVar.html +531 -0
  145. package/SVF-doxygen/html/html/classSVF_1_1DummyObjVar.png +0 -0
  146. package/SVF-doxygen/html/html/classSVF_1_1DummyValVar-members.html +165 -0
  147. package/SVF-doxygen/html/html/classSVF_1_1DummyValVar.html +502 -0
  148. package/SVF-doxygen/html/html/classSVF_1_1DummyValVar.png +0 -0
  149. package/SVF-doxygen/html/html/classSVF_1_1FIObjVar-members.html +167 -0
  150. package/SVF-doxygen/html/html/classSVF_1_1FIObjVar.html +577 -0
  151. package/SVF-doxygen/html/html/classSVF_1_1FIObjVar.png +0 -0
  152. package/SVF-doxygen/html/html/classSVF_1_1FSMPTA-members.html +4 -4
  153. package/SVF-doxygen/html/html/classSVF_1_1FSMPTA.html +8 -8
  154. package/SVF-doxygen/html/html/classSVF_1_1FlowDDA-members.html +4 -4
  155. package/SVF-doxygen/html/html/classSVF_1_1FlowDDA.html +16 -16
  156. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive-members.html +4 -4
  157. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive.html +27 -27
  158. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveStat.html +8 -8
  159. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveTBHC-members.html +8 -8
  160. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveTBHC.html +26 -26
  161. package/SVF-doxygen/html/html/classSVF_1_1FormalINSVFGNode.html +2 -2
  162. package/SVF-doxygen/html/html/classSVF_1_1FormalOUTSVFGNode.html +4 -4
  163. package/SVF-doxygen/html/html/classSVF_1_1FunEntryBlockNode-members.html +6 -6
  164. package/SVF-doxygen/html/html/classSVF_1_1FunEntryBlockNode.html +6 -6
  165. package/SVF-doxygen/html/html/classSVF_1_1FunExitBlockNode-members.html +6 -6
  166. package/SVF-doxygen/html/html/classSVF_1_1FunExitBlockNode.html +6 -6
  167. package/SVF-doxygen/html/html/classSVF_1_1FunptrDDAClient.html +1 -1
  168. package/SVF-doxygen/html/html/classSVF_1_1GenericEdge.html +6 -6
  169. package/SVF-doxygen/html/html/classSVF_1_1GenericEdge.png +0 -0
  170. package/SVF-doxygen/html/html/classSVF_1_1GenericNode.html +23 -22
  171. package/SVF-doxygen/html/html/classSVF_1_1GenericNode.png +0 -0
  172. package/SVF-doxygen/html/html/classSVF_1_1GepObjPN-members.html +12 -12
  173. package/SVF-doxygen/html/html/classSVF_1_1GepObjPN.html +61 -61
  174. package/SVF-doxygen/html/html/classSVF_1_1GepObjPN.png +0 -0
  175. package/SVF-doxygen/html/html/classSVF_1_1GepStmt-members.html +57 -22
  176. package/SVF-doxygen/html/html/classSVF_1_1GepStmt.html +259 -118
  177. package/SVF-doxygen/html/html/classSVF_1_1GepStmt.png +0 -0
  178. package/SVF-doxygen/html/html/classSVF_1_1GepVFGNode-members.html +1 -1
  179. package/SVF-doxygen/html/html/classSVF_1_1GepVFGNode.html +7 -7
  180. package/SVF-doxygen/html/html/classSVF_1_1GepValVar-members.html +170 -0
  181. package/SVF-doxygen/html/html/classSVF_1_1GepValVar.html +752 -0
  182. package/SVF-doxygen/html/html/classSVF_1_1GepValVar.png +0 -0
  183. package/SVF-doxygen/html/html/classSVF_1_1GlobalBlockNode-members.html +6 -6
  184. package/SVF-doxygen/html/html/classSVF_1_1GlobalBlockNode.html +6 -6
  185. package/SVF-doxygen/html/html/classSVF_1_1ICFGNode-members.html +6 -6
  186. package/SVF-doxygen/html/html/classSVF_1_1ICFGNode.html +22 -22
  187. package/SVF-doxygen/html/html/classSVF_1_1ICFGPrinter.html +6 -6
  188. package/SVF-doxygen/html/html/classSVF_1_1IRAnnotator.html +1 -1
  189. package/SVF-doxygen/html/html/classSVF_1_1IRGraph-members.html +8 -8
  190. package/SVF-doxygen/html/html/classSVF_1_1IRGraph.html +54 -54
  191. package/SVF-doxygen/html/html/classSVF_1_1IndirectSVFGEdge.html +2 -2
  192. package/SVF-doxygen/html/html/classSVF_1_1InterBlockNode-members.html +6 -6
  193. package/SVF-doxygen/html/html/classSVF_1_1InterBlockNode.html +6 -6
  194. package/SVF-doxygen/html/html/classSVF_1_1InterDisjointMRG-members.html +20 -20
  195. package/SVF-doxygen/html/html/classSVF_1_1InterDisjointMRG.html +27 -27
  196. package/SVF-doxygen/html/html/classSVF_1_1InterMSSAPHISVFGNode.html +3 -3
  197. package/SVF-doxygen/html/html/classSVF_1_1IntraBlockNode-members.html +6 -6
  198. package/SVF-doxygen/html/html/classSVF_1_1IntraBlockNode.html +6 -6
  199. package/SVF-doxygen/html/html/classSVF_1_1IntraDisjointMRG-members.html +20 -20
  200. package/SVF-doxygen/html/html/classSVF_1_1IntraDisjointMRG.html +27 -27
  201. package/SVF-doxygen/html/html/classSVF_1_1IntraIndSVFGEdge.html +2 -2
  202. package/SVF-doxygen/html/html/classSVF_1_1IntraMSSAPHISVFGNode.html +3 -3
  203. package/SVF-doxygen/html/html/classSVF_1_1LeakChecker.html +6 -6
  204. package/SVF-doxygen/html/html/classSVF_1_1LoadMU-members.html +3 -3
  205. package/SVF-doxygen/html/html/classSVF_1_1LoadMU.html +20 -20
  206. package/SVF-doxygen/html/html/classSVF_1_1LoadStmt-members.html +57 -21
  207. package/SVF-doxygen/html/html/classSVF_1_1LoadStmt.html +253 -89
  208. package/SVF-doxygen/html/html/classSVF_1_1LoadStmt.png +0 -0
  209. package/SVF-doxygen/html/html/classSVF_1_1LoadVFGNode-members.html +1 -1
  210. package/SVF-doxygen/html/html/classSVF_1_1LoadVFGNode.html +7 -7
  211. package/SVF-doxygen/html/html/classSVF_1_1MRGenerator-members.html +23 -23
  212. package/SVF-doxygen/html/html/classSVF_1_1MRGenerator.html +147 -147
  213. package/SVF-doxygen/html/html/classSVF_1_1MRSVFGNode.html +2 -2
  214. package/SVF-doxygen/html/html/classSVF_1_1MSSAPHISVFGNode.html +2 -2
  215. package/SVF-doxygen/html/html/classSVF_1_1MTAAnnotator.html +6 -6
  216. package/SVF-doxygen/html/html/classSVF_1_1MTASVFGBuilder.html +2 -2
  217. package/SVF-doxygen/html/html/classSVF_1_1MemSSA-members.html +25 -25
  218. package/SVF-doxygen/html/html/classSVF_1_1MemSSA.html +102 -102
  219. package/SVF-doxygen/html/html/classSVF_1_1MultiOpndStmt-members.html +24 -23
  220. package/SVF-doxygen/html/html/classSVF_1_1MultiOpndStmt.html +36 -34
  221. package/SVF-doxygen/html/html/classSVF_1_1MultiOpndStmt.png +0 -0
  222. package/SVF-doxygen/html/html/classSVF_1_1NormalGepStmt-members.html +142 -0
  223. package/SVF-doxygen/html/html/classSVF_1_1NormalGepStmt.html +649 -0
  224. package/SVF-doxygen/html/html/classSVF_1_1NormalGepStmt.png +0 -0
  225. package/SVF-doxygen/html/html/classSVF_1_1ObjVar-members.html +165 -0
  226. package/SVF-doxygen/html/html/classSVF_1_1ObjVar.html +644 -0
  227. package/SVF-doxygen/html/html/classSVF_1_1ObjVar.png +0 -0
  228. package/SVF-doxygen/html/html/classSVF_1_1OfflineConsG-members.html +5 -5
  229. package/SVF-doxygen/html/html/classSVF_1_1OfflineConsG.html +13 -13
  230. package/SVF-doxygen/html/html/classSVF_1_1Options-members.html +21 -20
  231. package/SVF-doxygen/html/html/classSVF_1_1Options.html +26 -0
  232. package/SVF-doxygen/html/html/classSVF_1_1PAGBuilderFromFile.html +16 -16
  233. package/SVF-doxygen/html/html/classSVF_1_1PTAStat.html +8 -8
  234. package/SVF-doxygen/html/html/classSVF_1_1PhiStmt-members.html +74 -22
  235. package/SVF-doxygen/html/html/classSVF_1_1PhiStmt.html +447 -98
  236. package/SVF-doxygen/html/html/classSVF_1_1PhiStmt.png +0 -0
  237. package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis-members.html +4 -4
  238. package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.html +55 -55
  239. package/SVF-doxygen/html/html/classSVF_1_1RetBlockNode-members.html +7 -7
  240. package/SVF-doxygen/html/html/classSVF_1_1RetBlockNode.html +6 -6
  241. package/SVF-doxygen/html/html/classSVF_1_1RetIndSVFGEdge.html +2 -2
  242. package/SVF-doxygen/html/html/classSVF_1_1RetPE-members.html +20 -19
  243. package/SVF-doxygen/html/html/classSVF_1_1RetPE.html +24 -22
  244. package/SVF-doxygen/html/html/classSVF_1_1RetPN-members.html +8 -8
  245. package/SVF-doxygen/html/html/classSVF_1_1RetPN.html +24 -24
  246. package/SVF-doxygen/html/html/classSVF_1_1SVFG-members.html +56 -56
  247. package/SVF-doxygen/html/html/classSVF_1_1SVFG.html +103 -103
  248. package/SVF-doxygen/html/html/classSVF_1_1SVFGBuilder.html +3 -3
  249. package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT-members.html +68 -68
  250. package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT.html +45 -45
  251. package/SVF-doxygen/html/html/classSVF_1_1SVFIR-members.html +132 -133
  252. package/SVF-doxygen/html/html/classSVF_1_1SVFIR.html +759 -777
  253. package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder-members.html +12 -12
  254. package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder.html +180 -180
  255. package/SVF-doxygen/html/html/classSVF_1_1SVFStmt-members.html +23 -22
  256. package/SVF-doxygen/html/html/classSVF_1_1SVFStmt.html +57 -39
  257. package/SVF-doxygen/html/html/classSVF_1_1SVFStmt.png +0 -0
  258. package/SVF-doxygen/html/html/classSVF_1_1SVFVar-members.html +8 -8
  259. package/SVF-doxygen/html/html/classSVF_1_1SVFVar.html +82 -82
  260. package/SVF-doxygen/html/html/classSVF_1_1SVFVar.png +0 -0
  261. package/SVF-doxygen/html/html/classSVF_1_1SaberSVFGBuilder.html +11 -11
  262. package/SVF-doxygen/html/html/classSVF_1_1SrcSnkDDA.html +1 -1
  263. package/SVF-doxygen/html/html/classSVF_1_1Steensgaard-members.html +4 -4
  264. package/SVF-doxygen/html/html/classSVF_1_1Steensgaard.html +8 -8
  265. package/SVF-doxygen/html/html/classSVF_1_1StoreCHI-members.html +3 -3
  266. package/SVF-doxygen/html/html/classSVF_1_1StoreCHI.html +20 -20
  267. package/SVF-doxygen/html/html/classSVF_1_1StoreStmt-members.html +57 -21
  268. package/SVF-doxygen/html/html/classSVF_1_1StoreStmt.html +260 -89
  269. package/SVF-doxygen/html/html/classSVF_1_1StoreStmt.png +0 -0
  270. package/SVF-doxygen/html/html/classSVF_1_1StoreVFGNode-members.html +1 -1
  271. package/SVF-doxygen/html/html/classSVF_1_1StoreVFGNode.html +7 -7
  272. package/SVF-doxygen/html/html/classSVF_1_1TDForkPE-members.html +23 -22
  273. package/SVF-doxygen/html/html/classSVF_1_1TDForkPE.html +18 -16
  274. package/SVF-doxygen/html/html/classSVF_1_1TDJoinPE-members.html +23 -22
  275. package/SVF-doxygen/html/html/classSVF_1_1TDJoinPE.html +18 -16
  276. package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraph.html +3 -3
  277. package/SVF-doxygen/html/html/classSVF_1_1ThreadMHPIndSVFGEdge.html +2 -2
  278. package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis-members.html +4 -4
  279. package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis.html +10 -10
  280. package/SVF-doxygen/html/html/classSVF_1_1TypeBasedHeapCloning.html +28 -28
  281. package/SVF-doxygen/html/html/classSVF_1_1UnaryOPStmt-members.html +147 -0
  282. package/SVF-doxygen/html/html/classSVF_1_1UnaryOPStmt.html +794 -0
  283. package/SVF-doxygen/html/html/classSVF_1_1UnaryOPStmt.png +0 -0
  284. package/SVF-doxygen/html/html/classSVF_1_1VFG-members.html +42 -42
  285. package/SVF-doxygen/html/html/classSVF_1_1VFG.html +145 -145
  286. package/SVF-doxygen/html/html/classSVF_1_1ValVar-members.html +163 -0
  287. package/SVF-doxygen/html/html/classSVF_1_1ValVar.html +521 -0
  288. package/SVF-doxygen/html/html/classSVF_1_1ValVar.png +0 -0
  289. package/SVF-doxygen/html/html/classSVF_1_1VarArgPN-members.html +8 -8
  290. package/SVF-doxygen/html/html/classSVF_1_1VarArgPN.html +24 -24
  291. package/SVF-doxygen/html/html/classSVF_1_1VariantGepStmt-members.html +139 -0
  292. package/SVF-doxygen/html/html/classSVF_1_1VariantGepStmt.html +544 -0
  293. package/SVF-doxygen/html/html/classSVF_1_1VariantGepStmt.png +0 -0
  294. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive-members.html +4 -4
  295. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive.html +18 -18
  296. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitiveStat.html +4 -4
  297. package/SVF-doxygen/html/html/classSVF_1_1WPAPass.html +3 -3
  298. package/SVF-doxygen/html/html/classes.html +18 -18
  299. package/SVF-doxygen/html/html/functions_a.html +55 -55
  300. package/SVF-doxygen/html/html/functions_b.html +2 -2
  301. package/SVF-doxygen/html/html/functions_c.html +54 -59
  302. package/SVF-doxygen/html/html/functions_d.html +4 -4
  303. package/SVF-doxygen/html/html/functions_f.html +5 -5
  304. package/SVF-doxygen/html/html/functions_func.html +54 -54
  305. package/SVF-doxygen/html/html/functions_func_b.html +2 -2
  306. package/SVF-doxygen/html/html/functions_func_c.html +30 -30
  307. package/SVF-doxygen/html/html/functions_func_d.html +4 -4
  308. package/SVF-doxygen/html/html/functions_func_f.html +2 -2
  309. package/SVF-doxygen/html/html/functions_func_g.html +107 -105
  310. package/SVF-doxygen/html/html/functions_func_h.html +6 -6
  311. package/SVF-doxygen/html/html/functions_func_l.html +3 -3
  312. package/SVF-doxygen/html/html/functions_func_n.html +2 -2
  313. package/SVF-doxygen/html/html/functions_func_o.html +15 -15
  314. package/SVF-doxygen/html/html/functions_func_p.html +2 -2
  315. package/SVF-doxygen/html/html/functions_func_s.html +4 -4
  316. package/SVF-doxygen/html/html/functions_func_t.html +20 -20
  317. package/SVF-doxygen/html/html/functions_func_u.html +2 -2
  318. package/SVF-doxygen/html/html/functions_func_v.html +5 -5
  319. package/SVF-doxygen/html/html/functions_g.html +123 -121
  320. package/SVF-doxygen/html/html/functions_h.html +6 -6
  321. package/SVF-doxygen/html/html/functions_i.html +15 -15
  322. package/SVF-doxygen/html/html/functions_k.html +9 -0
  323. package/SVF-doxygen/html/html/functions_l.html +12 -12
  324. package/SVF-doxygen/html/html/functions_m.html +1 -1
  325. package/SVF-doxygen/html/html/functions_n.html +6 -6
  326. package/SVF-doxygen/html/html/functions_o.html +32 -35
  327. package/SVF-doxygen/html/html/functions_p.html +32 -49
  328. package/SVF-doxygen/html/html/functions_r.html +1 -1
  329. package/SVF-doxygen/html/html/functions_s.html +33 -14
  330. package/SVF-doxygen/html/html/functions_t.html +24 -24
  331. package/SVF-doxygen/html/html/functions_type_c.html +1 -4
  332. package/SVF-doxygen/html/html/functions_type_f.html +2 -2
  333. package/SVF-doxygen/html/html/functions_type_g.html +2 -2
  334. package/SVF-doxygen/html/html/functions_type_i.html +3 -3
  335. package/SVF-doxygen/html/html/functions_type_k.html +3 -0
  336. package/SVF-doxygen/html/html/functions_type_l.html +3 -3
  337. package/SVF-doxygen/html/html/functions_type_p.html +3 -19
  338. package/SVF-doxygen/html/html/functions_type_s.html +19 -3
  339. package/SVF-doxygen/html/html/functions_type_v.html +1 -1
  340. package/SVF-doxygen/html/html/functions_u.html +2 -2
  341. package/SVF-doxygen/html/html/functions_v.html +8 -8
  342. package/SVF-doxygen/html/html/functions_vars_f.html +1 -1
  343. package/SVF-doxygen/html/html/functions_vars_g.html +8 -8
  344. package/SVF-doxygen/html/html/functions_vars_i.html +9 -9
  345. package/SVF-doxygen/html/html/functions_vars_k.html +6 -0
  346. package/SVF-doxygen/html/html/functions_vars_l.html +2 -2
  347. package/SVF-doxygen/html/html/functions_vars_m.html +1 -1
  348. package/SVF-doxygen/html/html/functions_vars_o.html +3 -4
  349. package/SVF-doxygen/html/html/functions_vars_p.html +4 -7
  350. package/SVF-doxygen/html/html/functions_vars_s.html +3 -0
  351. package/SVF-doxygen/html/html/functions_w.html +5 -9
  352. package/SVF-doxygen/html/html/hierarchy.html +65 -65
  353. package/SVF-doxygen/html/html/namespaceSVF.html +24 -24
  354. package/SVF-doxygen/html/html/search/all_1.js +39 -39
  355. package/SVF-doxygen/html/html/search/all_10.js +12 -17
  356. package/SVF-doxygen/html/html/search/all_12.js +1 -1
  357. package/SVF-doxygen/html/html/search/all_13.js +17 -12
  358. package/SVF-doxygen/html/html/search/all_14.js +5 -5
  359. package/SVF-doxygen/html/html/search/all_15.js +2 -2
  360. package/SVF-doxygen/html/html/search/all_16.js +5 -5
  361. package/SVF-doxygen/html/html/search/all_17.js +1 -1
  362. package/SVF-doxygen/html/html/search/all_2.js +1 -1
  363. package/SVF-doxygen/html/html/search/all_3.js +9 -10
  364. package/SVF-doxygen/html/html/search/all_4.js +2 -2
  365. package/SVF-doxygen/html/html/search/all_6.js +4 -4
  366. package/SVF-doxygen/html/html/search/all_7.js +54 -53
  367. package/SVF-doxygen/html/html/search/all_8.js +2 -2
  368. package/SVF-doxygen/html/html/search/all_9.js +4 -4
  369. package/SVF-doxygen/html/html/search/all_b.js +3 -0
  370. package/SVF-doxygen/html/html/search/all_c.js +7 -7
  371. package/SVF-doxygen/html/html/search/all_d.js +1 -1
  372. package/SVF-doxygen/html/html/search/all_e.js +5 -5
  373. package/SVF-doxygen/html/html/search/all_f.js +5 -5
  374. package/SVF-doxygen/html/html/search/classes_0.js +1 -1
  375. package/SVF-doxygen/html/html/search/classes_1.js +1 -1
  376. package/SVF-doxygen/html/html/search/classes_11.js +1 -1
  377. package/SVF-doxygen/html/html/search/classes_12.js +2 -2
  378. package/SVF-doxygen/html/html/search/classes_2.js +5 -5
  379. package/SVF-doxygen/html/html/search/classes_3.js +2 -2
  380. package/SVF-doxygen/html/html/search/classes_5.js +1 -1
  381. package/SVF-doxygen/html/html/search/classes_6.js +2 -2
  382. package/SVF-doxygen/html/html/search/classes_9.js +1 -1
  383. package/SVF-doxygen/html/html/search/classes_b.js +1 -1
  384. package/SVF-doxygen/html/html/search/classes_c.js +1 -1
  385. package/SVF-doxygen/html/html/search/classes_d.js +1 -1
  386. package/SVF-doxygen/html/html/search/classes_f.js +1 -1
  387. package/SVF-doxygen/html/html/search/functions_0.js +39 -39
  388. package/SVF-doxygen/html/html/search/functions_1.js +1 -1
  389. package/SVF-doxygen/html/html/search/functions_10.js +4 -4
  390. package/SVF-doxygen/html/html/search/functions_11.js +1 -1
  391. package/SVF-doxygen/html/html/search/functions_12.js +1 -1
  392. package/SVF-doxygen/html/html/search/functions_13.js +2 -2
  393. package/SVF-doxygen/html/html/search/functions_2.js +7 -7
  394. package/SVF-doxygen/html/html/search/functions_3.js +2 -2
  395. package/SVF-doxygen/html/html/search/functions_5.js +1 -1
  396. package/SVF-doxygen/html/html/search/functions_6.js +49 -48
  397. package/SVF-doxygen/html/html/search/functions_7.js +2 -2
  398. package/SVF-doxygen/html/html/search/functions_a.js +3 -3
  399. package/SVF-doxygen/html/html/search/functions_c.js +1 -1
  400. package/SVF-doxygen/html/html/search/functions_d.js +2 -2
  401. package/SVF-doxygen/html/html/search/functions_e.js +1 -1
  402. package/SVF-doxygen/html/html/search/typedefs_11.js +7 -3
  403. package/SVF-doxygen/html/html/search/typedefs_14.js +1 -1
  404. package/SVF-doxygen/html/html/search/typedefs_2.js +1 -2
  405. package/SVF-doxygen/html/html/search/typedefs_5.js +2 -2
  406. package/SVF-doxygen/html/html/search/typedefs_6.js +1 -1
  407. package/SVF-doxygen/html/html/search/typedefs_8.js +1 -1
  408. package/SVF-doxygen/html/html/search/typedefs_a.js +2 -1
  409. package/SVF-doxygen/html/html/search/typedefs_b.js +3 -3
  410. package/SVF-doxygen/html/html/search/typedefs_f.js +3 -7
  411. package/SVF-doxygen/html/html/search/variables_10.js +2 -3
  412. package/SVF-doxygen/html/html/search/variables_13.js +1 -0
  413. package/SVF-doxygen/html/html/search/variables_14.js +3 -3
  414. package/SVF-doxygen/html/html/search/variables_15.js +1 -1
  415. package/SVF-doxygen/html/html/search/variables_6.js +1 -1
  416. package/SVF-doxygen/html/html/search/variables_7.js +4 -4
  417. package/SVF-doxygen/html/html/search/variables_9.js +4 -4
  418. package/SVF-doxygen/html/html/search/variables_b.js +3 -1
  419. package/SVF-doxygen/html/html/search/variables_c.js +1 -1
  420. package/SVF-doxygen/html/html/search/variables_d.js +1 -1
  421. package/SVF-doxygen/html/html/search/variables_e.js +3 -3
  422. package/SVF-doxygen/html/html/search/variables_f.js +2 -2
  423. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01ConstraintGraph_01_5_01_4.html +9 -9
  424. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01ICFG_01_5_01_4.html +2 -2
  425. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01IRGraph_01_5_01_4.html +18 -18
  426. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01OfflineConsG_01_5_01_4.html +2 -2
  427. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01SVFG_01_5_01_4.html +20 -20
  428. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01VFG_01_5_01_4.html +1 -1
  429. package/SVF-doxygen/html/html/svf-ex_8cpp.html +1 -1
  430. package/SVF-doxygen/html/html/svf-ex_8cpp_source.html +1 -1
  431. package/include/DDA/ContextDDA.h +1 -1
  432. package/include/DDA/FlowDDA.h +1 -1
  433. package/include/Graphs/ConsG.h +10 -10
  434. package/include/Graphs/ICFGNode.h +4 -4
  435. package/include/Graphs/IRGraph.h +7 -7
  436. package/include/Graphs/VFG.h +13 -13
  437. package/include/Graphs/VFGNode.h +6 -6
  438. package/include/MSSA/MSSAMuChi.h +6 -6
  439. package/include/MSSA/MemRegion.h +11 -11
  440. package/include/MSSA/MemSSA.h +11 -11
  441. package/include/MemoryModel/PointerAnalysis.h +9 -9
  442. package/include/MemoryModel/PointerAnalysisImpl.h +4 -4
  443. package/include/MemoryModel/SVFIR.h +82 -83
  444. package/include/MemoryModel/SVFStatements.h +97 -92
  445. package/include/MemoryModel/SVFVariables.h +71 -71
  446. package/include/SVF-FE/SVFIRBuilder.h +24 -24
  447. package/include/Util/IRAnnotator.h +1 -1
  448. package/include/Util/Options.h +3 -1
  449. package/include/Util/TypeBasedHeapCloning.h +2 -2
  450. package/include/WPA/Andersen.h +1 -1
  451. package/include/WPA/FlowSensitiveTBHC.h +1 -1
  452. package/lib/DDA/ContextDDA.cpp +6 -6
  453. package/lib/DDA/DDAClient.cpp +6 -6
  454. package/lib/DDA/DDAStat.cpp +2 -2
  455. package/lib/DDA/FlowDDA.cpp +4 -4
  456. package/lib/Graphs/ConsG.cpp +37 -36
  457. package/lib/Graphs/ICFG.cpp +4 -4
  458. package/lib/Graphs/IRGraph.cpp +27 -24
  459. package/lib/Graphs/OfflineConsG.cpp +8 -8
  460. package/lib/Graphs/SVFG.cpp +18 -16
  461. package/lib/Graphs/ThreadCallGraph.cpp +2 -2
  462. package/lib/Graphs/VFG.cpp +52 -52
  463. package/lib/MSSA/MemRegion.cpp +23 -23
  464. package/lib/MSSA/MemSSA.cpp +15 -15
  465. package/lib/MTA/MTAAnnotator.cpp +5 -5
  466. package/lib/MemoryModel/PAGBuilderFromFile.cpp +13 -13
  467. package/lib/MemoryModel/PointerAnalysis.cpp +9 -9
  468. package/lib/MemoryModel/PointerAnalysisImpl.cpp +14 -14
  469. package/lib/MemoryModel/SVFIR.cpp +95 -95
  470. package/lib/MemoryModel/SVFStatements.cpp +24 -24
  471. package/lib/MemoryModel/SVFVariables.cpp +19 -19
  472. package/lib/SABER/LeakChecker.cpp +2 -2
  473. package/lib/SABER/SaberSVFGBuilder.cpp +5 -5
  474. package/lib/SVF-FE/Graph2Json.cpp +3 -3
  475. package/lib/SVF-FE/SVFIRBuilder.cpp +22 -22
  476. package/lib/Util/Options.cpp +6 -0
  477. package/lib/Util/PTAStat.cpp +8 -8
  478. package/lib/Util/TypeBasedHeapCloning.cpp +22 -22
  479. package/lib/WPA/Andersen.cpp +13 -13
  480. package/lib/WPA/AndersenSFR.cpp +2 -2
  481. package/lib/WPA/AndersenStat.cpp +6 -6
  482. package/lib/WPA/FlowSensitive.cpp +8 -8
  483. package/lib/WPA/FlowSensitiveStat.cpp +4 -4
  484. package/lib/WPA/FlowSensitiveTBHC.cpp +9 -9
  485. package/lib/WPA/VersionedFlowSensitive.cpp +2 -2
  486. package/lib/WPA/VersionedFlowSensitiveStat.cpp +1 -1
  487. package/package.json +1 -1
@@ -155,8 +155,8 @@ void FunptrDDAClient::performStat(PointerAnalysis* pta)
155
155
  OrderedNodeSet& AliasDDAClient::collectCandidateQueries(SVFIR* pag)
156
156
  {
157
157
  setPAG(pag);
158
- PAGEdge::PAGEdgeSetTy& loads = pag->getEdgeSet(PAGEdge::Load);
159
- for (PAGEdge::PAGEdgeSetTy::iterator iter = loads.begin(), eiter =
158
+ PAGEdge::SVFStmtSetTy& loads = pag->getSVFStmtSet(PAGEdge::Load);
159
+ for (PAGEdge::SVFStmtSetTy::iterator iter = loads.begin(), eiter =
160
160
  loads.end(); iter != eiter; ++iter)
161
161
  {
162
162
  PAGNode* loadsrc = (*iter)->getSrcNode();
@@ -164,16 +164,16 @@ OrderedNodeSet& AliasDDAClient::collectCandidateQueries(SVFIR* pag)
164
164
  addCandidate(loadsrc->getId());
165
165
  }
166
166
 
167
- PAGEdge::PAGEdgeSetTy& stores = pag->getEdgeSet(PAGEdge::Store);
168
- for (PAGEdge::PAGEdgeSetTy::iterator iter = stores.begin(), eiter =
167
+ PAGEdge::SVFStmtSetTy& stores = pag->getSVFStmtSet(PAGEdge::Store);
168
+ for (PAGEdge::SVFStmtSetTy::iterator iter = stores.begin(), eiter =
169
169
  stores.end(); iter != eiter; ++iter)
170
170
  {
171
171
  PAGNode* storedst = (*iter)->getDstNode();
172
172
  storeDstNodes.insert(storedst);
173
173
  addCandidate(storedst->getId());
174
174
  }
175
- PAGEdge::PAGEdgeSetTy& geps = pag->getEdgeSet(PAGEdge::NormalGep);
176
- for (PAGEdge::PAGEdgeSetTy::iterator iter = geps.begin(), eiter =
175
+ PAGEdge::SVFStmtSetTy& geps = pag->getSVFStmtSet(PAGEdge::NormalGep);
176
+ for (PAGEdge::SVFStmtSetTy::iterator iter = geps.begin(), eiter =
177
177
  geps.end(); iter != eiter; ++iter)
178
178
  {
179
179
  PAGNode* gepsrc = (*iter)->getSrcNode();
@@ -208,7 +208,7 @@ void DDAStat::performStat()
208
208
  for (SVFIR::const_iterator nodeIt = SVFIR::getPAG()->begin(), nodeEit = SVFIR::getPAG()->end(); nodeIt != nodeEit; nodeIt++)
209
209
  {
210
210
  PAGNode* pagNode = nodeIt->second;
211
- if(SVFUtil::isa<ObjPN>(pagNode))
211
+ if(SVFUtil::isa<ObjVar>(pagNode))
212
212
  {
213
213
  if(getPTA()->isLocalVarInRecursiveFun(nodeIt->first))
214
214
  {
@@ -242,7 +242,7 @@ void DDAStat::performStat()
242
242
  PTNumStatMap["PointsToBlkPtr"] = _NumOfBlackholePtr;
243
243
  PTNumStatMap["NumOfMustAA"] = _TotalNumOfMustAliases;
244
244
  PTNumStatMap["NumOfInfePath"] = _TotalNumOfInfeasiblePath;
245
- PTNumStatMap["NumOfStore"] = SVFIR::getPAG()->getPTAEdgeSet(PAGEdge::Store).size();
245
+ PTNumStatMap["NumOfStore"] = SVFIR::getPAG()->getPTASVFStmtSet(PAGEdge::Store).size();
246
246
  PTNumStatMap["MemoryUsageVmrss"] = _vmrssUsageAfter - _vmrssUsageBefore;
247
247
  PTNumStatMap["MemoryUsageVmsize"] = _vmsizeUsageAfter - _vmsizeUsageBefore;
248
248
 
@@ -126,14 +126,14 @@ PointsTo FlowDDA::processGepPts(const GepSVFGNode* gep, const PointsTo& srcPts)
126
126
  tmpDstPts.set(ptd);
127
127
  else
128
128
  {
129
- if (SVFUtil::isa<VariantGepPE>(gep->getPAGEdge()))
129
+ if (SVFUtil::isa<VariantGepStmt>(gep->getPAGEdge()))
130
130
  {
131
131
  setObjFieldInsensitive(ptd);
132
- tmpDstPts.set(getFIObjNode(ptd));
132
+ tmpDstPts.set(getFIObjVar(ptd));
133
133
  }
134
- else if (const NormalGepPE* normalGep = SVFUtil::dyn_cast<NormalGepPE>(gep->getPAGEdge()))
134
+ else if (const NormalGepStmt* normalGep = SVFUtil::dyn_cast<NormalGepStmt>(gep->getPAGEdge()))
135
135
  {
136
- NodeID fieldSrcPtdNode = getGepObjNode(ptd, normalGep->getLocationSet());
136
+ NodeID fieldSrcPtdNode = getGepObjVar(ptd, normalGep->getLocationSet());
137
137
  tmpDstPts.set(fieldSrcPtdNode);
138
138
  }
139
139
  else
@@ -49,89 +49,89 @@ void ConstraintGraph::buildCG()
49
49
  }
50
50
 
51
51
  // initialize edges
52
- PAGEdge::PAGEdgeSetTy& addrs = getPAGEdgeSet(PAGEdge::Addr);
53
- for (PAGEdge::PAGEdgeSetTy::iterator iter = addrs.begin(), eiter =
52
+ PAGEdge::SVFStmtSetTy& addrs = getPAGEdgeSet(PAGEdge::Addr);
53
+ for (PAGEdge::SVFStmtSetTy::iterator iter = addrs.begin(), eiter =
54
54
  addrs.end(); iter != eiter; ++iter)
55
55
  {
56
56
  PAGEdge* edge = *iter;
57
57
  addAddrCGEdge(edge->getSrcID(),edge->getDstID());
58
58
  }
59
59
 
60
- PAGEdge::PAGEdgeSetTy& copys = getPAGEdgeSet(PAGEdge::Copy);
61
- for (PAGEdge::PAGEdgeSetTy::iterator iter = copys.begin(), eiter =
60
+ PAGEdge::SVFStmtSetTy& copys = getPAGEdgeSet(PAGEdge::Copy);
61
+ for (PAGEdge::SVFStmtSetTy::iterator iter = copys.begin(), eiter =
62
62
  copys.end(); iter != eiter; ++iter)
63
63
  {
64
64
  PAGEdge* edge = *iter;
65
65
  addCopyCGEdge(edge->getSrcID(),edge->getDstID());
66
66
  }
67
67
 
68
- PAGEdge::PAGEdgeSetTy& phis = getPAGEdgeSet(PAGEdge::Phi);
69
- for (PAGEdge::PAGEdgeSetTy::iterator iter = phis.begin(), eiter =
68
+ PAGEdge::SVFStmtSetTy& phis = getPAGEdgeSet(PAGEdge::Phi);
69
+ for (PAGEdge::SVFStmtSetTy::iterator iter = phis.begin(), eiter =
70
70
  phis.end(); iter != eiter; ++iter)
71
71
  {
72
- const PhiPE* edge = SVFUtil::cast<PhiPE>(*iter);
72
+ const PhiStmt* edge = SVFUtil::cast<PhiStmt>(*iter);
73
73
  for(const auto opVar : edge->getOpndVars())
74
74
  addCopyCGEdge(opVar->getId(),edge->getResID());
75
75
  }
76
76
 
77
- PAGEdge::PAGEdgeSetTy& calls = getPAGEdgeSet(PAGEdge::Call);
78
- for (PAGEdge::PAGEdgeSetTy::iterator iter = calls.begin(), eiter =
77
+ PAGEdge::SVFStmtSetTy& calls = getPAGEdgeSet(PAGEdge::Call);
78
+ for (PAGEdge::SVFStmtSetTy::iterator iter = calls.begin(), eiter =
79
79
  calls.end(); iter != eiter; ++iter)
80
80
  {
81
81
  PAGEdge* edge = *iter;
82
82
  addCopyCGEdge(edge->getSrcID(),edge->getDstID());
83
83
  }
84
84
 
85
- PAGEdge::PAGEdgeSetTy& rets = getPAGEdgeSet(PAGEdge::Ret);
86
- for (PAGEdge::PAGEdgeSetTy::iterator iter = rets.begin(), eiter =
85
+ PAGEdge::SVFStmtSetTy& rets = getPAGEdgeSet(PAGEdge::Ret);
86
+ for (PAGEdge::SVFStmtSetTy::iterator iter = rets.begin(), eiter =
87
87
  rets.end(); iter != eiter; ++iter)
88
88
  {
89
89
  PAGEdge* edge = *iter;
90
90
  addCopyCGEdge(edge->getSrcID(),edge->getDstID());
91
91
  }
92
92
 
93
- PAGEdge::PAGEdgeSetTy& tdfks = getPAGEdgeSet(PAGEdge::ThreadFork);
94
- for (PAGEdge::PAGEdgeSetTy::iterator iter = tdfks.begin(), eiter =
93
+ PAGEdge::SVFStmtSetTy& tdfks = getPAGEdgeSet(PAGEdge::ThreadFork);
94
+ for (PAGEdge::SVFStmtSetTy::iterator iter = tdfks.begin(), eiter =
95
95
  tdfks.end(); iter != eiter; ++iter)
96
96
  {
97
97
  PAGEdge* edge = *iter;
98
98
  addCopyCGEdge(edge->getSrcID(),edge->getDstID());
99
99
  }
100
100
 
101
- PAGEdge::PAGEdgeSetTy& tdjns = getPAGEdgeSet(PAGEdge::ThreadJoin);
102
- for (PAGEdge::PAGEdgeSetTy::iterator iter = tdjns.begin(), eiter =
101
+ PAGEdge::SVFStmtSetTy& tdjns = getPAGEdgeSet(PAGEdge::ThreadJoin);
102
+ for (PAGEdge::SVFStmtSetTy::iterator iter = tdjns.begin(), eiter =
103
103
  tdjns.end(); iter != eiter; ++iter)
104
104
  {
105
105
  PAGEdge* edge = *iter;
106
106
  addCopyCGEdge(edge->getSrcID(),edge->getDstID());
107
107
  }
108
108
 
109
- PAGEdge::PAGEdgeSetTy& ngeps = getPAGEdgeSet(PAGEdge::NormalGep);
110
- for (PAGEdge::PAGEdgeSetTy::iterator iter = ngeps.begin(), eiter =
109
+ PAGEdge::SVFStmtSetTy& ngeps = getPAGEdgeSet(PAGEdge::NormalGep);
110
+ for (PAGEdge::SVFStmtSetTy::iterator iter = ngeps.begin(), eiter =
111
111
  ngeps.end(); iter != eiter; ++iter)
112
112
  {
113
- NormalGepPE* edge = SVFUtil::cast<NormalGepPE>(*iter);
113
+ NormalGepStmt* edge = SVFUtil::cast<NormalGepStmt>(*iter);
114
114
  addNormalGepCGEdge(edge->getSrcID(),edge->getDstID(),edge->getLocationSet());
115
115
  }
116
116
 
117
- PAGEdge::PAGEdgeSetTy& vgeps = getPAGEdgeSet(PAGEdge::VariantGep);
118
- for (PAGEdge::PAGEdgeSetTy::iterator iter = vgeps.begin(), eiter =
117
+ PAGEdge::SVFStmtSetTy& vgeps = getPAGEdgeSet(PAGEdge::VariantGep);
118
+ for (PAGEdge::SVFStmtSetTy::iterator iter = vgeps.begin(), eiter =
119
119
  vgeps.end(); iter != eiter; ++iter)
120
120
  {
121
- VariantGepPE* edge = SVFUtil::cast<VariantGepPE>(*iter);
121
+ VariantGepStmt* edge = SVFUtil::cast<VariantGepStmt>(*iter);
122
122
  addVariantGepCGEdge(edge->getSrcID(),edge->getDstID());
123
123
  }
124
124
 
125
- PAGEdge::PAGEdgeSetTy& stores = getPAGEdgeSet(PAGEdge::Load);
126
- for (PAGEdge::PAGEdgeSetTy::iterator iter = stores.begin(), eiter =
125
+ PAGEdge::SVFStmtSetTy& stores = getPAGEdgeSet(PAGEdge::Load);
126
+ for (PAGEdge::SVFStmtSetTy::iterator iter = stores.begin(), eiter =
127
127
  stores.end(); iter != eiter; ++iter)
128
128
  {
129
129
  PAGEdge* edge = *iter;
130
130
  addLoadCGEdge(edge->getSrcID(),edge->getDstID());
131
131
  }
132
132
 
133
- PAGEdge::PAGEdgeSetTy& loads = getPAGEdgeSet(PAGEdge::Store);
134
- for (PAGEdge::PAGEdgeSetTy::iterator iter = loads.begin(), eiter =
133
+ PAGEdge::SVFStmtSetTy& loads = getPAGEdgeSet(PAGEdge::Store);
134
+ for (PAGEdge::SVFStmtSetTy::iterator iter = loads.begin(), eiter =
135
135
  loads.end(); iter != eiter; ++iter)
136
136
  {
137
137
  PAGEdge* edge = *iter;
@@ -156,7 +156,7 @@ AddrCGEdge::AddrCGEdge(ConstraintNode* s, ConstraintNode* d, EdgeID id)
156
156
  // Retarget addr edges may lead s to be a dummy node
157
157
  PAGNode* node = SVFIR::getPAG()->getGNode(s->getId());
158
158
  if (!SVFModule::pagReadFromTXT())
159
- assert(!SVFUtil::isa<DummyValPN>(node) && "a dummy node??");
159
+ assert(!SVFUtil::isa<DummyValVar>(node) && "a dummy node??");
160
160
  }
161
161
 
162
162
  /*!
@@ -624,11 +624,12 @@ struct DOTGraphTraits<ConstraintGraph*> : public DOTGraphTraits<SVFIR*>
624
624
  }
625
625
 
626
626
  #if LLVM_VERSION_MAJOR >= 12
627
- static bool isNodeHidden(NodeType *n, ConstraintGraph*) {
627
+ static bool isNodeHidden(NodeType *n, ConstraintGraph *){
628
628
  #else
629
629
  static bool isNodeHidden(NodeType *n) {
630
630
  #endif
631
- return (n->getInEdges().empty() && n->getOutEdges().empty());
631
+ if (Options::ShowHiddenNode) return false;
632
+ else return (n->getInEdges().empty() && n->getOutEdges().empty());
632
633
  }
633
634
 
634
635
  /// Return label of a VFG node with two display mode
@@ -643,7 +644,7 @@ struct DOTGraphTraits<ConstraintGraph*> : public DOTGraphTraits<SVFIR*>
643
644
 
644
645
  if (briefDisplay)
645
646
  {
646
- if (SVFUtil::isa<ValPN>(node))
647
+ if (SVFUtil::isa<ValVar>(node))
647
648
  {
648
649
  if (nameDisplay)
649
650
  rawstr << node->getId() << ":" << node->getValueName();
@@ -656,7 +657,7 @@ struct DOTGraphTraits<ConstraintGraph*> : public DOTGraphTraits<SVFIR*>
656
657
  else
657
658
  {
658
659
  // print the whole value
659
- if (!SVFUtil::isa<DummyValPN>(node) && !SVFUtil::isa<DummyObjPN>(node))
660
+ if (!SVFUtil::isa<DummyValVar>(node) && !SVFUtil::isa<DummyObjVar>(node))
660
661
  rawstr << node->getId() << ":" << value2String(node->getValue());
661
662
  else
662
663
  rawstr << node->getId() << ":";
@@ -669,22 +670,22 @@ struct DOTGraphTraits<ConstraintGraph*> : public DOTGraphTraits<SVFIR*>
669
670
  static std::string getNodeAttributes(NodeType *n, ConstraintGraph*)
670
671
  {
671
672
  PAGNode* node = SVFIR::getPAG()->getGNode(n->getId());
672
- if (SVFUtil::isa<ValPN>(node))
673
+ if (SVFUtil::isa<ValVar>(node))
673
674
  {
674
- if(SVFUtil::isa<GepValPN>(node))
675
+ if(SVFUtil::isa<GepValVar>(node))
675
676
  return "shape=hexagon";
676
- else if (SVFUtil::isa<DummyValPN>(node))
677
+ else if (SVFUtil::isa<DummyValVar>(node))
677
678
  return "shape=diamond";
678
679
  else
679
680
  return "shape=box";
680
681
  }
681
- else if (SVFUtil::isa<ObjPN>(node))
682
+ else if (SVFUtil::isa<ObjVar>(node))
682
683
  {
683
684
  if(SVFUtil::isa<GepObjPN>(node))
684
685
  return "shape=doubleoctagon";
685
- else if(SVFUtil::isa<FIObjPN>(node))
686
+ else if(SVFUtil::isa<FIObjVar>(node))
686
687
  return "shape=box3d";
687
- else if (SVFUtil::isa<DummyObjPN>(node))
688
+ else if (SVFUtil::isa<DummyObjVar>(node))
688
689
  return "shape=tab";
689
690
  else
690
691
  return "shape=component";
@@ -472,11 +472,11 @@ struct DOTGraphTraits<ICFG*> : public DOTGraphTraits<SVFIR*>
472
472
  if (IntraBlockNode* bNode = SVFUtil::dyn_cast<IntraBlockNode>(node))
473
473
  {
474
474
  rawstr << "IntraBlockNode ID: " << bNode->getId() << " \t";
475
- SVFIR::PAGEdgeList& edges = SVFIR::getPAG()->getInstPTAPAGEdgeList(bNode);
475
+ SVFIR::SVFStmtList& edges = SVFIR::getPAG()->getPTASVFStmtList(bNode);
476
476
  if (edges.empty()) {
477
477
  rawstr << value2String(bNode->getInst()) << " \t";
478
478
  } else {
479
- for (SVFIR::PAGEdgeList::iterator it = edges.begin(), eit = edges.end(); it != eit; ++it)
479
+ for (SVFIR::SVFStmtList::iterator it = edges.begin(), eit = edges.end(); it != eit; ++it)
480
480
  {
481
481
  const PAGEdge* edge = *it;
482
482
  rawstr << edge->toString();
@@ -502,8 +502,8 @@ struct DOTGraphTraits<ICFG*> : public DOTGraphTraits<SVFIR*>
502
502
  }
503
503
  else if (GlobalBlockNode* glob = SVFUtil::dyn_cast<GlobalBlockNode>(node) )
504
504
  {
505
- SVFIR::PAGEdgeList& edges = SVFIR::getPAG()->getInstPTAPAGEdgeList(glob);
506
- for (SVFIR::PAGEdgeList::iterator it = edges.begin(), eit = edges.end(); it != eit; ++it)
505
+ SVFIR::SVFStmtList& edges = SVFIR::getPAG()->getPTASVFStmtList(glob);
506
+ for (SVFIR::SVFStmtList::iterator it = edges.begin(), eit = edges.end(); it != eit; ++it)
507
507
  {
508
508
  const PAGEdge* edge = *it;
509
509
  rawstr << edge->toString();
@@ -28,6 +28,8 @@
28
28
  */
29
29
 
30
30
  #include "Graphs/IRGraph.h"
31
+ #include "Util/Options.h"
32
+
31
33
  using namespace SVF;
32
34
  using namespace SVFUtil;
33
35
 
@@ -57,8 +59,8 @@ bool IRGraph::addEdge(SVFVar* src, SVFVar* dst, SVFStmt* edge)
57
59
  SVFStmt* IRGraph::hasNonlabeledEdge(SVFVar* src, SVFVar* dst, SVFStmt::PEDGEK kind)
58
60
  {
59
61
  SVFStmt edge(src,dst,kind);
60
- SVFStmt::PAGEdgeSetTy::iterator it = PAGEdgeKindToSetMap[kind].find(&edge);
61
- if (it != PAGEdgeKindToSetMap[kind].end())
62
+ SVFStmt::SVFStmtSetTy::iterator it = KindToSVFStmtSetMap[kind].find(&edge);
63
+ if (it != KindToSVFStmtSetMap[kind].end())
62
64
  {
63
65
  return *it;
64
66
  }
@@ -71,8 +73,8 @@ SVFStmt* IRGraph::hasNonlabeledEdge(SVFVar* src, SVFVar* dst, SVFStmt::PEDGEK ki
71
73
  SVFStmt* IRGraph::hasLabeledEdge(SVFVar* src, SVFVar* op1, SVFStmt::PEDGEK kind, const SVFVar* op2)
72
74
  {
73
75
  SVFStmt edge(src,op1,SVFStmt::makeEdgeFlagWithAddionalOpnd(kind,op2));
74
- SVFStmt::PAGEdgeSetTy::iterator it = PAGEdgeKindToSetMap[kind].find(&edge);
75
- if (it != PAGEdgeKindToSetMap[kind].end())
76
+ SVFStmt::SVFStmtSetTy::iterator it = KindToSVFStmtSetMap[kind].find(&edge);
77
+ if (it != KindToSVFStmtSetMap[kind].end())
76
78
  {
77
79
  return *it;
78
80
  }
@@ -85,8 +87,8 @@ SVFStmt* IRGraph::hasLabeledEdge(SVFVar* src, SVFVar* op1, SVFStmt::PEDGEK kind,
85
87
  SVFStmt* IRGraph::hasLabeledEdge(SVFVar* src, SVFVar* dst, SVFStmt::PEDGEK kind, const ICFGNode* callInst)
86
88
  {
87
89
  SVFStmt edge(src,dst,SVFStmt::makeEdgeFlagWithCallInst(kind,callInst));
88
- SVFStmt::PAGEdgeSetTy::iterator it = PAGEdgeKindToSetMap[kind].find(&edge);
89
- if (it != PAGEdgeKindToSetMap[kind].end())
90
+ SVFStmt::SVFStmtSetTy::iterator it = KindToSVFStmtSetMap[kind].find(&edge);
91
+ if (it != KindToSVFStmtSetMap[kind].end())
90
92
  {
91
93
  return *it;
92
94
  }
@@ -135,12 +137,13 @@ struct DOTGraphTraits<IRGraph*> : public DefaultDOTGraphTraits
135
137
  /// isNodeHidden - If the function returns true, the given node is not
136
138
  /// displayed in the graph
137
139
  #if LLVM_VERSION_MAJOR >= 12
138
- static bool isNodeHidden(SVFVar *node, IRGraph*) {
140
+ static bool isNodeHidden(SVFVar *node, IRGraph *){
139
141
  #else
140
142
  static bool isNodeHidden(SVFVar *node) {
141
143
  #endif
142
- return node->isIsolatedNode();
143
- }
144
+ if (Options::ShowHiddenNode) return false;
145
+ else return node->isIsolatedNode();
146
+ }
144
147
 
145
148
  /// Return label of a VFG node with two display mode
146
149
  /// Either you can choose to display the name of the value or the whole instruction
@@ -160,22 +163,22 @@ struct DOTGraphTraits<IRGraph*> : public DefaultDOTGraphTraits
160
163
 
161
164
  static std::string getNodeAttributes(SVFVar *node, IRGraph*)
162
165
  {
163
- if (SVFUtil::isa<ValPN>(node))
166
+ if (SVFUtil::isa<ValVar>(node))
164
167
  {
165
- if(SVFUtil::isa<GepValPN>(node))
168
+ if(SVFUtil::isa<GepValVar>(node))
166
169
  return "shape=hexagon";
167
- else if (SVFUtil::isa<DummyValPN>(node))
170
+ else if (SVFUtil::isa<DummyValVar>(node))
168
171
  return "shape=diamond";
169
172
  else
170
173
  return "shape=box";
171
174
  }
172
- else if (SVFUtil::isa<ObjPN>(node))
175
+ else if (SVFUtil::isa<ObjVar>(node))
173
176
  {
174
177
  if(SVFUtil::isa<GepObjPN>(node))
175
178
  return "shape=doubleoctagon";
176
- else if(SVFUtil::isa<FIObjPN>(node))
179
+ else if(SVFUtil::isa<FIObjVar>(node))
177
180
  return "shape=box3d";
178
- else if (SVFUtil::isa<DummyObjPN>(node))
181
+ else if (SVFUtil::isa<DummyObjVar>(node))
179
182
  return "shape=tab";
180
183
  else
181
184
  return "shape=component";
@@ -200,39 +203,39 @@ struct DOTGraphTraits<IRGraph*> : public DefaultDOTGraphTraits
200
203
  {
201
204
  const SVFStmt* edge = *(EI.getCurrent());
202
205
  assert(edge && "No edge found!!");
203
- if (SVFUtil::isa<AddrPE>(edge))
206
+ if (SVFUtil::isa<AddrStmt>(edge))
204
207
  {
205
208
  return "color=green";
206
209
  }
207
- else if (SVFUtil::isa<CopyPE>(edge))
210
+ else if (SVFUtil::isa<CopyStmt>(edge))
208
211
  {
209
212
  return "color=black";
210
213
  }
211
- else if (SVFUtil::isa<GepPE>(edge))
214
+ else if (SVFUtil::isa<GepStmt>(edge))
212
215
  {
213
216
  return "color=purple";
214
217
  }
215
- else if (SVFUtil::isa<StorePE>(edge))
218
+ else if (SVFUtil::isa<StoreStmt>(edge))
216
219
  {
217
220
  return "color=blue";
218
221
  }
219
- else if (SVFUtil::isa<LoadPE>(edge))
222
+ else if (SVFUtil::isa<LoadStmt>(edge))
220
223
  {
221
224
  return "color=red";
222
225
  }
223
- else if (SVFUtil::isa<PhiPE>(edge))
226
+ else if (SVFUtil::isa<PhiStmt>(edge))
224
227
  {
225
228
  return "color=grey";
226
229
  }
227
- else if (SVFUtil::isa<CmpPE>(edge))
230
+ else if (SVFUtil::isa<CmpStmt>(edge))
228
231
  {
229
232
  return "color=grey";
230
233
  }
231
- else if (SVFUtil::isa<BinaryOPPE>(edge))
234
+ else if (SVFUtil::isa<BinaryOPStmt>(edge))
232
235
  {
233
236
  return "color=grey";
234
237
  }
235
- else if (SVFUtil::isa<UnaryOPPE>(edge))
238
+ else if (SVFUtil::isa<UnaryOPStmt>(edge))
236
239
  {
237
240
  return "color=grey";
238
241
  }
@@ -209,7 +209,7 @@ struct DOTGraphTraits<OfflineConsG*> : public DOTGraphTraits<SVFIR*>
209
209
 
210
210
  if (briefDisplay)
211
211
  {
212
- if (SVFUtil::isa<ValPN>(node))
212
+ if (SVFUtil::isa<ValVar>(node))
213
213
  {
214
214
  if (nameDisplay)
215
215
  rawstr << node->getId() << ":" << node->getValueName();
@@ -222,7 +222,7 @@ struct DOTGraphTraits<OfflineConsG*> : public DOTGraphTraits<SVFIR*>
222
222
  else
223
223
  {
224
224
  // print the whole value
225
- if (!SVFUtil::isa<DummyValPN>(node) && !SVFUtil::isa<DummyObjPN>(node))
225
+ if (!SVFUtil::isa<DummyValVar>(node) && !SVFUtil::isa<DummyObjVar>(node))
226
226
  rawstr << *node->getValue();
227
227
  else
228
228
  rawstr << "";
@@ -243,22 +243,22 @@ struct DOTGraphTraits<OfflineConsG*> : public DOTGraphTraits<SVFIR*>
243
243
  if (SVFIR::getPAG()->getGNode(n->getId()))
244
244
  {
245
245
  PAGNode *node = SVFIR::getPAG()->getGNode(n->getId());
246
- if (SVFUtil::isa<ValPN>(node))
246
+ if (SVFUtil::isa<ValVar>(node))
247
247
  {
248
- if(SVFUtil::isa<GepValPN>(node))
248
+ if(SVFUtil::isa<GepValVar>(node))
249
249
  return "shape=hexagon";
250
- else if (SVFUtil::isa<DummyValPN>(node))
250
+ else if (SVFUtil::isa<DummyValVar>(node))
251
251
  return "shape=diamond";
252
252
  else
253
253
  return "shape=box";
254
254
  }
255
- else if (SVFUtil::isa<ObjPN>(node))
255
+ else if (SVFUtil::isa<ObjVar>(node))
256
256
  {
257
257
  if(SVFUtil::isa<GepObjPN>(node))
258
258
  return "shape=doubleoctagon";
259
- else if(SVFUtil::isa<FIObjPN>(node))
259
+ else if(SVFUtil::isa<FIObjVar>(node))
260
260
  return "shape=box3d";
261
- else if (SVFUtil::isa<DummyObjPN>(node))
261
+ else if (SVFUtil::isa<DummyObjVar>(node))
262
262
  return "shape=tab";
263
263
  else
264
264
  return "shape=component";
@@ -33,6 +33,7 @@
33
33
  #include "Graphs/SVFGOPT.h"
34
34
  #include "Graphs/SVFGStat.h"
35
35
  #include "Graphs/ICFG.h"
36
+ #include "Util/Options.h"
36
37
  #include "MemoryModel/PointerAnalysisImpl.h"
37
38
  #include <fstream>
38
39
 
@@ -223,11 +224,11 @@ void SVFG::addSVFGNodesForAddrTakenVars()
223
224
  {
224
225
 
225
226
  // set defs for address-taken vars defined at store statements
226
- PAGEdge::PAGEdgeSetTy& stores = getPAGEdgeSet(PAGEdge::Store);
227
- for (PAGEdge::PAGEdgeSetTy::iterator iter = stores.begin(), eiter =
227
+ PAGEdge::SVFStmtSetTy& stores = getPAGEdgeSet(PAGEdge::Store);
228
+ for (PAGEdge::SVFStmtSetTy::iterator iter = stores.begin(), eiter =
228
229
  stores.end(); iter != eiter; ++iter)
229
230
  {
230
- StorePE* store = SVFUtil::cast<StorePE>(*iter);
231
+ StoreStmt* store = SVFUtil::cast<StoreStmt>(*iter);
231
232
  const StmtSVFGNode* sNode = getStmtVFGNode(store);
232
233
  for(CHISet::iterator pi = mssa->getCHISet(store).begin(), epi = mssa->getCHISet(store).end(); pi!=epi; ++pi)
233
234
  setDef((*pi)->getResVer(),sNode);
@@ -297,7 +298,7 @@ void SVFG::connectIndirectSVFGEdges()
297
298
  const SVFGNode* node = it->second;
298
299
  if(const LoadSVFGNode* loadNode = SVFUtil::dyn_cast<LoadSVFGNode>(node))
299
300
  {
300
- MUSet& muSet = mssa->getMUSet(SVFUtil::cast<LoadPE>(loadNode->getPAGEdge()));
301
+ MUSet& muSet = mssa->getMUSet(SVFUtil::cast<LoadStmt>(loadNode->getPAGEdge()));
301
302
  for(MUSet::iterator it = muSet.begin(), eit = muSet.end(); it!=eit; ++it)
302
303
  {
303
304
  if(LOADMU* mu = SVFUtil::dyn_cast<LOADMU>(*it))
@@ -309,7 +310,7 @@ void SVFG::connectIndirectSVFGEdges()
309
310
  }
310
311
  else if(const StoreSVFGNode* storeNode = SVFUtil::dyn_cast<StoreSVFGNode>(node))
311
312
  {
312
- CHISet& chiSet = mssa->getCHISet(SVFUtil::cast<StorePE>(storeNode->getPAGEdge()));
313
+ CHISet& chiSet = mssa->getCHISet(SVFUtil::cast<StoreStmt>(storeNode->getPAGEdge()));
313
314
  for(CHISet::iterator it = chiSet.begin(), eit = chiSet.end(); it!=eit; ++it)
314
315
  {
315
316
  if(STORECHI* chi = SVFUtil::dyn_cast<STORECHI>(*it))
@@ -571,10 +572,10 @@ void SVFG::getInterVFEdgesForIndirectCallSite(const CallBlockNode* callBlockNode
571
572
  // Find inter direct call edges between actual param and formal param.
572
573
  if (pag->hasCallSiteArgsMap(callBlockNode) && pag->hasFunArgsList(callee))
573
574
  {
574
- const SVFIR::PAGNodeList& csArgList = pag->getCallSiteArgsList(callBlockNode);
575
- const SVFIR::PAGNodeList& funArgList = pag->getFunArgsList(callee);
576
- SVFIR::PAGNodeList::const_iterator csArgIt = csArgList.begin(), csArgEit = csArgList.end();
577
- SVFIR::PAGNodeList::const_iterator funArgIt = funArgList.begin(), funArgEit = funArgList.end();
575
+ const SVFIR::SVFVarList& csArgList = pag->getCallSiteArgsList(callBlockNode);
576
+ const SVFIR::SVFVarList& funArgList = pag->getFunArgsList(callee);
577
+ SVFIR::SVFVarList::const_iterator csArgIt = csArgList.begin(), csArgEit = csArgList.end();
578
+ SVFIR::SVFVarList::const_iterator funArgIt = funArgList.begin(), funArgEit = funArgList.end();
578
579
  for (; funArgIt != funArgEit && csArgIt != csArgEit; funArgIt++, csArgIt++)
579
580
  {
580
581
  const PAGNode *cs_arg = *csArgIt;
@@ -766,11 +767,12 @@ struct DOTGraphTraits<SVFG*> : public DOTGraphTraits<SVFIR*>
766
767
  /// isNodeHidden - If the function returns true, the given node is not
767
768
  /// displayed in the graph
768
769
  #if LLVM_VERSION_MAJOR >= 12
769
- static bool isNodeHidden(SVFGNode *node, SVFG*) {
770
+ static bool isNodeHidden(SVFGNode *node, SVFG *){
770
771
  #else
771
772
  static bool isNodeHidden(SVFGNode *node) {
772
773
  #endif
773
- return node->getInEdges().empty() && node->getOutEdges().empty();
774
+ if (Options::ShowHiddenNode) return false;
775
+ else return node->getInEdges().empty() && node->getOutEdges().empty();
774
776
  }
775
777
 
776
778
  std::string getNodeLabel(NodeType *node, SVFG *graph)
@@ -932,11 +934,11 @@ struct DOTGraphTraits<SVFG*> : public DOTGraphTraits<SVFIR*>
932
934
  if(StmtSVFGNode* stmtNode = SVFUtil::dyn_cast<StmtSVFGNode>(node))
933
935
  {
934
936
  const PAGEdge* edge = stmtNode->getPAGEdge();
935
- if (SVFUtil::isa<AddrPE>(edge))
937
+ if (SVFUtil::isa<AddrStmt>(edge))
936
938
  {
937
939
  rawstr << "color=green";
938
940
  }
939
- else if (SVFUtil::isa<CopyPE>(edge))
941
+ else if (SVFUtil::isa<CopyStmt>(edge))
940
942
  {
941
943
  rawstr << "color=black";
942
944
  }
@@ -944,15 +946,15 @@ struct DOTGraphTraits<SVFG*> : public DOTGraphTraits<SVFIR*>
944
946
  {
945
947
  rawstr << "color=black,style=dotted";
946
948
  }
947
- else if (SVFUtil::isa<GepPE>(edge))
949
+ else if (SVFUtil::isa<GepStmt>(edge))
948
950
  {
949
951
  rawstr << "color=purple";
950
952
  }
951
- else if (SVFUtil::isa<StorePE>(edge))
953
+ else if (SVFUtil::isa<StoreStmt>(edge))
952
954
  {
953
955
  rawstr << "color=blue";
954
956
  }
955
- else if (SVFUtil::isa<LoadPE>(edge))
957
+ else if (SVFUtil::isa<LoadStmt>(edge))
956
958
  {
957
959
  rawstr << "color=red";
958
960
  }
@@ -77,7 +77,7 @@ void ThreadCallGraph::updateCallGraph(PointerAnalysis* pta)
77
77
  const NodeBS targets = pta->getPts(pag->getValueNode(forkedval)).toNodeBS();
78
78
  for (NodeBS::iterator ii = targets.begin(), ie = targets.end(); ii != ie; ii++)
79
79
  {
80
- if(ObjPN* objPN = SVFUtil::dyn_cast<ObjPN>(pag->getGNode(*ii)))
80
+ if(ObjVar* objPN = SVFUtil::dyn_cast<ObjVar>(pag->getGNode(*ii)))
81
81
  {
82
82
  const MemObj* obj = pag->getObject(objPN);
83
83
  if(obj->isFunction())
@@ -101,7 +101,7 @@ void ThreadCallGraph::updateCallGraph(PointerAnalysis* pta)
101
101
  const NodeBS targets = pta->getPts(pag->getValueNode(forkedval)).toNodeBS();
102
102
  for (NodeBS::iterator ii = targets.begin(), ie = targets.end(); ii != ie; ii++)
103
103
  {
104
- if(ObjPN* objPN = SVFUtil::dyn_cast<ObjPN>(pag->getGNode(*ii)))
104
+ if(ObjVar* objPN = SVFUtil::dyn_cast<ObjVar>(pag->getGNode(*ii)))
105
105
  {
106
106
  const MemObj* obj = pag->getObject(objPN);
107
107
  if(obj->isFunction())