svf-tools 1.0.320 → 1.0.324

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 (460) 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/CHG_8h_source.html +1 -1
  6. package/SVF-doxygen/html/html/ConsGNode_8h_source.html +5 -5
  7. package/SVF-doxygen/html/html/ConsG_8cpp_source.html +8 -8
  8. package/SVF-doxygen/html/html/ConsG_8h_source.html +15 -15
  9. package/SVF-doxygen/html/html/ContextDDA_8cpp_source.html +6 -6
  10. package/SVF-doxygen/html/html/ContextDDA_8h_source.html +2 -2
  11. package/SVF-doxygen/html/html/DDAClient_8cpp_source.html +3 -3
  12. package/SVF-doxygen/html/html/DDAClient_8h_source.html +1 -1
  13. package/SVF-doxygen/html/html/DDAPass_8cpp_source.html +1 -1
  14. package/SVF-doxygen/html/html/DDAStat_8cpp_source.html +3 -3
  15. package/SVF-doxygen/html/html/DDAVFSolver_8h_source.html +8 -8
  16. package/SVF-doxygen/html/html/FSMPTA_8h_source.html +1 -1
  17. package/SVF-doxygen/html/html/FlowDDA_8cpp_source.html +2 -2
  18. package/SVF-doxygen/html/html/FlowDDA_8h_source.html +2 -2
  19. package/SVF-doxygen/html/html/FlowSensitiveStat_8cpp_source.html +8 -8
  20. package/SVF-doxygen/html/html/FlowSensitiveTBHC_8cpp_source.html +5 -5
  21. package/SVF-doxygen/html/html/FlowSensitiveTBHC_8h_source.html +2 -2
  22. package/SVF-doxygen/html/html/FlowSensitive_8cpp_source.html +2 -2
  23. package/SVF-doxygen/html/html/Graph2Json_8cpp_source.html +4 -4
  24. package/SVF-doxygen/html/html/ICFGNode_8h_source.html +4 -4
  25. package/SVF-doxygen/html/html/ICFG_8cpp_source.html +4 -4
  26. package/SVF-doxygen/html/html/IRAnnotator_8h_source.html +2 -2
  27. package/SVF-doxygen/html/html/IRGraph_8cpp_source.html +3 -3
  28. package/SVF-doxygen/html/html/IRGraph_8h_source.html +7 -7
  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/PAGBuilderFromFile_8cpp_source.html +3 -3
  38. package/SVF-doxygen/html/html/PTAStat_8cpp_source.html +8 -8
  39. package/SVF-doxygen/html/html/PointerAnalysisImpl_8cpp_source.html +8 -8
  40. package/SVF-doxygen/html/html/PointerAnalysisImpl_8h_source.html +3 -3
  41. package/SVF-doxygen/html/html/PointerAnalysis_8cpp_source.html +7 -7
  42. package/SVF-doxygen/html/html/PointerAnalysis_8h_source.html +17 -17
  43. package/SVF-doxygen/html/html/SVFGOPT_8h_source.html +3 -3
  44. package/SVF-doxygen/html/html/SVFG_8cpp_source.html +18 -18
  45. package/SVF-doxygen/html/html/SVFG_8h_source.html +1 -1
  46. package/SVF-doxygen/html/html/SVFIRBuilder_8cpp_source.html +5 -5
  47. package/SVF-doxygen/html/html/SVFIRBuilder_8h_source.html +42 -42
  48. package/SVF-doxygen/html/html/SVFIR_8cpp_source.html +58 -58
  49. package/SVF-doxygen/html/html/SVFIR_8h_source.html +153 -154
  50. package/SVF-doxygen/html/html/SVFStatements_8cpp_source.html +22 -22
  51. package/SVF-doxygen/html/html/SVFStatements_8h.html +11 -11
  52. package/SVF-doxygen/html/html/SVFStatements_8h_source.html +133 -132
  53. package/SVF-doxygen/html/html/SVFVariables_8cpp_source.html +9 -9
  54. package/SVF-doxygen/html/html/SVFVariables_8h.html +9 -9
  55. package/SVF-doxygen/html/html/SVFVariables_8h_source.html +78 -78
  56. package/SVF-doxygen/html/html/SaberSVFGBuilder_8cpp_source.html +6 -6
  57. package/SVF-doxygen/html/html/SrcSnkDDA_8h_source.html +1 -1
  58. package/SVF-doxygen/html/html/ThreadCallGraph_8cpp_source.html +3 -3
  59. package/SVF-doxygen/html/html/TypeAnalysis_8cpp_source.html +2 -2
  60. package/SVF-doxygen/html/html/TypeBasedHeapCloning_8cpp_source.html +13 -13
  61. package/SVF-doxygen/html/html/VFGNode_8h_source.html +17 -17
  62. package/SVF-doxygen/html/html/VFG_8cpp_source.html +48 -48
  63. package/SVF-doxygen/html/html/VFG_8h_source.html +35 -35
  64. package/SVF-doxygen/html/html/VersionedFlowSensitiveStat_8cpp_source.html +5 -5
  65. package/SVF-doxygen/html/html/VersionedFlowSensitive_8cpp_source.html +5 -5
  66. package/SVF-doxygen/html/html/WPAPass_8cpp_source.html +1 -1
  67. package/SVF-doxygen/html/html/annotated.html +21 -21
  68. package/SVF-doxygen/html/html/classSVF_1_1AddrCGEdge.html +2 -2
  69. package/SVF-doxygen/html/html/classSVF_1_1AddrStmt-members.html +137 -0
  70. package/SVF-doxygen/html/html/classSVF_1_1AddrStmt.html +500 -0
  71. package/SVF-doxygen/html/html/classSVF_1_1AddrStmt.png +0 -0
  72. package/SVF-doxygen/html/html/classSVF_1_1AddrVFGNode-members.html +1 -1
  73. package/SVF-doxygen/html/html/classSVF_1_1AddrVFGNode.html +7 -7
  74. package/SVF-doxygen/html/html/classSVF_1_1AliasDDAClient.html +3 -3
  75. package/SVF-doxygen/html/html/classSVF_1_1Andersen-members.html +4 -4
  76. package/SVF-doxygen/html/html/classSVF_1_1Andersen.html +34 -34
  77. package/SVF-doxygen/html/html/classSVF_1_1AndersenBase-members.html +4 -4
  78. package/SVF-doxygen/html/html/classSVF_1_1AndersenBase.html +12 -12
  79. package/SVF-doxygen/html/html/classSVF_1_1AndersenHCD-members.html +4 -4
  80. package/SVF-doxygen/html/html/classSVF_1_1AndersenHCD.html +8 -8
  81. package/SVF-doxygen/html/html/classSVF_1_1AndersenHLCD-members.html +4 -4
  82. package/SVF-doxygen/html/html/classSVF_1_1AndersenHLCD.html +8 -8
  83. package/SVF-doxygen/html/html/classSVF_1_1AndersenLCD-members.html +4 -4
  84. package/SVF-doxygen/html/html/classSVF_1_1AndersenLCD.html +8 -8
  85. package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD-members.html +4 -4
  86. package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD.html +8 -8
  87. package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR-members.html +4 -4
  88. package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR.html +11 -11
  89. package/SVF-doxygen/html/html/classSVF_1_1AndersenStat.html +9 -9
  90. package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff-members.html +4 -4
  91. package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff.html +8 -8
  92. package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl-members.html +4 -4
  93. package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl.html +26 -26
  94. package/SVF-doxygen/html/html/classSVF_1_1BinaryOPStmt-members.html +155 -0
  95. package/SVF-doxygen/html/html/classSVF_1_1BinaryOPStmt.html +756 -0
  96. package/SVF-doxygen/html/html/classSVF_1_1BinaryOPStmt.png +0 -0
  97. package/SVF-doxygen/html/html/classSVF_1_1BranchStmt-members.html +20 -19
  98. package/SVF-doxygen/html/html/classSVF_1_1BranchStmt.html +33 -31
  99. package/SVF-doxygen/html/html/classSVF_1_1BranchVFGNode.html +3 -3
  100. package/SVF-doxygen/html/html/classSVF_1_1CallBlockNode-members.html +8 -8
  101. package/SVF-doxygen/html/html/classSVF_1_1CallBlockNode.html +6 -6
  102. package/SVF-doxygen/html/html/classSVF_1_1CallPE-members.html +20 -19
  103. package/SVF-doxygen/html/html/classSVF_1_1CallPE.html +24 -22
  104. package/SVF-doxygen/html/html/classSVF_1_1CloneDummyObjVar-members.html +169 -0
  105. package/SVF-doxygen/html/html/classSVF_1_1CloneDummyObjVar.html +537 -0
  106. package/SVF-doxygen/html/html/classSVF_1_1CloneDummyObjVar.png +0 -0
  107. package/SVF-doxygen/html/html/classSVF_1_1CloneFIObjVar-members.html +169 -0
  108. package/SVF-doxygen/html/html/classSVF_1_1CloneFIObjVar.html +547 -0
  109. package/SVF-doxygen/html/html/classSVF_1_1CloneFIObjVar.png +0 -0
  110. package/SVF-doxygen/html/html/classSVF_1_1CloneGepObjVar-members.html +172 -0
  111. package/SVF-doxygen/html/html/classSVF_1_1CloneGepObjVar.html +556 -0
  112. package/SVF-doxygen/html/html/classSVF_1_1CloneGepObjVar.png +0 -0
  113. package/SVF-doxygen/html/html/classSVF_1_1CmpStmt-members.html +75 -22
  114. package/SVF-doxygen/html/html/classSVF_1_1CmpStmt.html +479 -93
  115. package/SVF-doxygen/html/html/classSVF_1_1CmpStmt.png +0 -0
  116. package/SVF-doxygen/html/html/classSVF_1_1CondPTAImpl-members.html +4 -4
  117. package/SVF-doxygen/html/html/classSVF_1_1CondPTAImpl.html +11 -11
  118. package/SVF-doxygen/html/html/classSVF_1_1ConstraintGraph-members.html +5 -5
  119. package/SVF-doxygen/html/html/classSVF_1_1ConstraintGraph.html +46 -46
  120. package/SVF-doxygen/html/html/classSVF_1_1ConstraintNode-members.html +26 -26
  121. package/SVF-doxygen/html/html/classSVF_1_1ConstraintNode.html +43 -43
  122. package/SVF-doxygen/html/html/classSVF_1_1ContextDDA-members.html +4 -4
  123. package/SVF-doxygen/html/html/classSVF_1_1ContextDDA.html +17 -17
  124. package/SVF-doxygen/html/html/classSVF_1_1CopyStmt-members.html +57 -21
  125. package/SVF-doxygen/html/html/classSVF_1_1CopyStmt.html +253 -89
  126. package/SVF-doxygen/html/html/classSVF_1_1CopyStmt.png +0 -0
  127. package/SVF-doxygen/html/html/classSVF_1_1CopyVFGNode-members.html +1 -1
  128. package/SVF-doxygen/html/html/classSVF_1_1CopyVFGNode.html +7 -7
  129. package/SVF-doxygen/html/html/classSVF_1_1DDAClient.html +1 -1
  130. package/SVF-doxygen/html/html/classSVF_1_1DDAStat.html +3 -3
  131. package/SVF-doxygen/html/html/classSVF_1_1DDAVFSolver.html +10 -10
  132. package/SVF-doxygen/html/html/classSVF_1_1DistinctMRG-members.html +19 -19
  133. package/SVF-doxygen/html/html/classSVF_1_1DistinctMRG.html +27 -27
  134. package/SVF-doxygen/html/html/classSVF_1_1DummyObjVar-members.html +167 -0
  135. package/SVF-doxygen/html/html/classSVF_1_1DummyObjVar.html +531 -0
  136. package/SVF-doxygen/html/html/classSVF_1_1DummyObjVar.png +0 -0
  137. package/SVF-doxygen/html/html/classSVF_1_1DummyValVar-members.html +165 -0
  138. package/SVF-doxygen/html/html/classSVF_1_1DummyValVar.html +502 -0
  139. package/SVF-doxygen/html/html/classSVF_1_1DummyValVar.png +0 -0
  140. package/SVF-doxygen/html/html/classSVF_1_1FIObjVar-members.html +167 -0
  141. package/SVF-doxygen/html/html/classSVF_1_1FIObjVar.html +577 -0
  142. package/SVF-doxygen/html/html/classSVF_1_1FIObjVar.png +0 -0
  143. package/SVF-doxygen/html/html/classSVF_1_1FSMPTA-members.html +4 -4
  144. package/SVF-doxygen/html/html/classSVF_1_1FSMPTA.html +8 -8
  145. package/SVF-doxygen/html/html/classSVF_1_1FlowDDA-members.html +4 -4
  146. package/SVF-doxygen/html/html/classSVF_1_1FlowDDA.html +15 -15
  147. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive-members.html +4 -4
  148. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive.html +25 -25
  149. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveStat.html +8 -8
  150. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveTBHC-members.html +8 -8
  151. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveTBHC.html +26 -26
  152. package/SVF-doxygen/html/html/classSVF_1_1FunEntryBlockNode-members.html +6 -6
  153. package/SVF-doxygen/html/html/classSVF_1_1FunEntryBlockNode.html +6 -6
  154. package/SVF-doxygen/html/html/classSVF_1_1FunExitBlockNode-members.html +6 -6
  155. package/SVF-doxygen/html/html/classSVF_1_1FunExitBlockNode.html +6 -6
  156. package/SVF-doxygen/html/html/classSVF_1_1FunptrDDAClient.html +1 -1
  157. package/SVF-doxygen/html/html/classSVF_1_1GenericEdge.html +6 -6
  158. package/SVF-doxygen/html/html/classSVF_1_1GenericEdge.png +0 -0
  159. package/SVF-doxygen/html/html/classSVF_1_1GenericNode.html +23 -22
  160. package/SVF-doxygen/html/html/classSVF_1_1GenericNode.png +0 -0
  161. package/SVF-doxygen/html/html/classSVF_1_1GepObjPN-members.html +12 -12
  162. package/SVF-doxygen/html/html/classSVF_1_1GepObjPN.html +61 -61
  163. package/SVF-doxygen/html/html/classSVF_1_1GepObjPN.png +0 -0
  164. package/SVF-doxygen/html/html/classSVF_1_1GepStmt-members.html +57 -22
  165. package/SVF-doxygen/html/html/classSVF_1_1GepStmt.html +259 -118
  166. package/SVF-doxygen/html/html/classSVF_1_1GepStmt.png +0 -0
  167. package/SVF-doxygen/html/html/classSVF_1_1GepVFGNode-members.html +1 -1
  168. package/SVF-doxygen/html/html/classSVF_1_1GepVFGNode.html +7 -7
  169. package/SVF-doxygen/html/html/classSVF_1_1GepValVar-members.html +170 -0
  170. package/SVF-doxygen/html/html/classSVF_1_1GepValVar.html +752 -0
  171. package/SVF-doxygen/html/html/classSVF_1_1GepValVar.png +0 -0
  172. package/SVF-doxygen/html/html/classSVF_1_1GlobalBlockNode-members.html +6 -6
  173. package/SVF-doxygen/html/html/classSVF_1_1GlobalBlockNode.html +6 -6
  174. package/SVF-doxygen/html/html/classSVF_1_1ICFGNode-members.html +6 -6
  175. package/SVF-doxygen/html/html/classSVF_1_1ICFGNode.html +22 -22
  176. package/SVF-doxygen/html/html/classSVF_1_1ICFGPrinter.html +6 -6
  177. package/SVF-doxygen/html/html/classSVF_1_1IRAnnotator.html +1 -1
  178. package/SVF-doxygen/html/html/classSVF_1_1IRGraph-members.html +8 -8
  179. package/SVF-doxygen/html/html/classSVF_1_1IRGraph.html +43 -43
  180. package/SVF-doxygen/html/html/classSVF_1_1InterBlockNode-members.html +6 -6
  181. package/SVF-doxygen/html/html/classSVF_1_1InterBlockNode.html +6 -6
  182. package/SVF-doxygen/html/html/classSVF_1_1InterDisjointMRG-members.html +20 -20
  183. package/SVF-doxygen/html/html/classSVF_1_1InterDisjointMRG.html +27 -27
  184. package/SVF-doxygen/html/html/classSVF_1_1IntraBlockNode-members.html +6 -6
  185. package/SVF-doxygen/html/html/classSVF_1_1IntraBlockNode.html +6 -6
  186. package/SVF-doxygen/html/html/classSVF_1_1IntraDisjointMRG-members.html +20 -20
  187. package/SVF-doxygen/html/html/classSVF_1_1IntraDisjointMRG.html +27 -27
  188. package/SVF-doxygen/html/html/classSVF_1_1LeakChecker.html +6 -6
  189. package/SVF-doxygen/html/html/classSVF_1_1LoadMU-members.html +3 -3
  190. package/SVF-doxygen/html/html/classSVF_1_1LoadMU.html +20 -20
  191. package/SVF-doxygen/html/html/classSVF_1_1LoadStmt-members.html +57 -21
  192. package/SVF-doxygen/html/html/classSVF_1_1LoadStmt.html +253 -89
  193. package/SVF-doxygen/html/html/classSVF_1_1LoadStmt.png +0 -0
  194. package/SVF-doxygen/html/html/classSVF_1_1LoadVFGNode-members.html +1 -1
  195. package/SVF-doxygen/html/html/classSVF_1_1LoadVFGNode.html +7 -7
  196. package/SVF-doxygen/html/html/classSVF_1_1MRGenerator-members.html +23 -23
  197. package/SVF-doxygen/html/html/classSVF_1_1MRGenerator.html +147 -147
  198. package/SVF-doxygen/html/html/classSVF_1_1MTAAnnotator.html +6 -6
  199. package/SVF-doxygen/html/html/classSVF_1_1MemSSA-members.html +25 -25
  200. package/SVF-doxygen/html/html/classSVF_1_1MemSSA.html +102 -102
  201. package/SVF-doxygen/html/html/classSVF_1_1MultiOpndStmt-members.html +24 -23
  202. package/SVF-doxygen/html/html/classSVF_1_1MultiOpndStmt.html +36 -34
  203. package/SVF-doxygen/html/html/classSVF_1_1MultiOpndStmt.png +0 -0
  204. package/SVF-doxygen/html/html/classSVF_1_1NormalGepStmt-members.html +142 -0
  205. package/SVF-doxygen/html/html/classSVF_1_1NormalGepStmt.html +649 -0
  206. package/SVF-doxygen/html/html/classSVF_1_1NormalGepStmt.png +0 -0
  207. package/SVF-doxygen/html/html/classSVF_1_1ObjVar-members.html +165 -0
  208. package/SVF-doxygen/html/html/classSVF_1_1ObjVar.html +644 -0
  209. package/SVF-doxygen/html/html/classSVF_1_1ObjVar.png +0 -0
  210. package/SVF-doxygen/html/html/classSVF_1_1OfflineConsG-members.html +5 -5
  211. package/SVF-doxygen/html/html/classSVF_1_1OfflineConsG.html +13 -13
  212. package/SVF-doxygen/html/html/classSVF_1_1PAGBuilderFromFile.html +15 -15
  213. package/SVF-doxygen/html/html/classSVF_1_1PTAStat.html +8 -8
  214. package/SVF-doxygen/html/html/classSVF_1_1PhiStmt-members.html +74 -22
  215. package/SVF-doxygen/html/html/classSVF_1_1PhiStmt.html +447 -98
  216. package/SVF-doxygen/html/html/classSVF_1_1PhiStmt.png +0 -0
  217. package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis-members.html +4 -4
  218. package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.html +53 -53
  219. package/SVF-doxygen/html/html/classSVF_1_1RetBlockNode-members.html +7 -7
  220. package/SVF-doxygen/html/html/classSVF_1_1RetBlockNode.html +6 -6
  221. package/SVF-doxygen/html/html/classSVF_1_1RetPE-members.html +20 -19
  222. package/SVF-doxygen/html/html/classSVF_1_1RetPE.html +24 -22
  223. package/SVF-doxygen/html/html/classSVF_1_1RetPN-members.html +8 -8
  224. package/SVF-doxygen/html/html/classSVF_1_1RetPN.html +24 -24
  225. package/SVF-doxygen/html/html/classSVF_1_1SVFG-members.html +56 -56
  226. package/SVF-doxygen/html/html/classSVF_1_1SVFG.html +58 -58
  227. package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT-members.html +68 -68
  228. package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT.html +36 -36
  229. package/SVF-doxygen/html/html/classSVF_1_1SVFIR-members.html +132 -133
  230. package/SVF-doxygen/html/html/classSVF_1_1SVFIR.html +730 -748
  231. package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder-members.html +12 -12
  232. package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder.html +180 -180
  233. package/SVF-doxygen/html/html/classSVF_1_1SVFStmt-members.html +23 -22
  234. package/SVF-doxygen/html/html/classSVF_1_1SVFStmt.html +57 -39
  235. package/SVF-doxygen/html/html/classSVF_1_1SVFStmt.png +0 -0
  236. package/SVF-doxygen/html/html/classSVF_1_1SVFVar-members.html +8 -8
  237. package/SVF-doxygen/html/html/classSVF_1_1SVFVar.html +82 -82
  238. package/SVF-doxygen/html/html/classSVF_1_1SVFVar.png +0 -0
  239. package/SVF-doxygen/html/html/classSVF_1_1SaberSVFGBuilder.html +9 -9
  240. package/SVF-doxygen/html/html/classSVF_1_1SrcSnkDDA.html +1 -1
  241. package/SVF-doxygen/html/html/classSVF_1_1Steensgaard-members.html +4 -4
  242. package/SVF-doxygen/html/html/classSVF_1_1Steensgaard.html +8 -8
  243. package/SVF-doxygen/html/html/classSVF_1_1StoreCHI-members.html +3 -3
  244. package/SVF-doxygen/html/html/classSVF_1_1StoreCHI.html +20 -20
  245. package/SVF-doxygen/html/html/classSVF_1_1StoreStmt-members.html +57 -21
  246. package/SVF-doxygen/html/html/classSVF_1_1StoreStmt.html +260 -89
  247. package/SVF-doxygen/html/html/classSVF_1_1StoreStmt.png +0 -0
  248. package/SVF-doxygen/html/html/classSVF_1_1StoreVFGNode-members.html +1 -1
  249. package/SVF-doxygen/html/html/classSVF_1_1StoreVFGNode.html +7 -7
  250. package/SVF-doxygen/html/html/classSVF_1_1TDForkPE-members.html +23 -22
  251. package/SVF-doxygen/html/html/classSVF_1_1TDForkPE.html +18 -16
  252. package/SVF-doxygen/html/html/classSVF_1_1TDJoinPE-members.html +23 -22
  253. package/SVF-doxygen/html/html/classSVF_1_1TDJoinPE.html +18 -16
  254. package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraph.html +3 -3
  255. package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis-members.html +4 -4
  256. package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis.html +10 -10
  257. package/SVF-doxygen/html/html/classSVF_1_1TypeBasedHeapCloning.html +28 -28
  258. package/SVF-doxygen/html/html/classSVF_1_1UnaryOPStmt-members.html +147 -0
  259. package/SVF-doxygen/html/html/classSVF_1_1UnaryOPStmt.html +794 -0
  260. package/SVF-doxygen/html/html/classSVF_1_1UnaryOPStmt.png +0 -0
  261. package/SVF-doxygen/html/html/classSVF_1_1VFG-members.html +42 -42
  262. package/SVF-doxygen/html/html/classSVF_1_1VFG.html +145 -145
  263. package/SVF-doxygen/html/html/classSVF_1_1ValVar-members.html +163 -0
  264. package/SVF-doxygen/html/html/classSVF_1_1ValVar.html +521 -0
  265. package/SVF-doxygen/html/html/classSVF_1_1ValVar.png +0 -0
  266. package/SVF-doxygen/html/html/classSVF_1_1VarArgPN-members.html +8 -8
  267. package/SVF-doxygen/html/html/classSVF_1_1VarArgPN.html +24 -24
  268. package/SVF-doxygen/html/html/classSVF_1_1VariantGepStmt-members.html +139 -0
  269. package/SVF-doxygen/html/html/classSVF_1_1VariantGepStmt.html +544 -0
  270. package/SVF-doxygen/html/html/classSVF_1_1VariantGepStmt.png +0 -0
  271. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive-members.html +4 -4
  272. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive.html +16 -16
  273. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitiveStat.html +4 -4
  274. package/SVF-doxygen/html/html/classSVF_1_1WPAPass.html +3 -3
  275. package/SVF-doxygen/html/html/classes.html +18 -18
  276. package/SVF-doxygen/html/html/functions_a.html +55 -55
  277. package/SVF-doxygen/html/html/functions_b.html +2 -2
  278. package/SVF-doxygen/html/html/functions_c.html +52 -57
  279. package/SVF-doxygen/html/html/functions_d.html +4 -4
  280. package/SVF-doxygen/html/html/functions_f.html +5 -5
  281. package/SVF-doxygen/html/html/functions_func.html +54 -54
  282. package/SVF-doxygen/html/html/functions_func_b.html +2 -2
  283. package/SVF-doxygen/html/html/functions_func_c.html +30 -30
  284. package/SVF-doxygen/html/html/functions_func_d.html +4 -4
  285. package/SVF-doxygen/html/html/functions_func_f.html +2 -2
  286. package/SVF-doxygen/html/html/functions_func_g.html +107 -105
  287. package/SVF-doxygen/html/html/functions_func_h.html +6 -6
  288. package/SVF-doxygen/html/html/functions_func_l.html +3 -3
  289. package/SVF-doxygen/html/html/functions_func_n.html +2 -2
  290. package/SVF-doxygen/html/html/functions_func_o.html +15 -15
  291. package/SVF-doxygen/html/html/functions_func_p.html +2 -2
  292. package/SVF-doxygen/html/html/functions_func_s.html +4 -4
  293. package/SVF-doxygen/html/html/functions_func_t.html +20 -20
  294. package/SVF-doxygen/html/html/functions_func_u.html +2 -2
  295. package/SVF-doxygen/html/html/functions_func_v.html +5 -5
  296. package/SVF-doxygen/html/html/functions_g.html +123 -121
  297. package/SVF-doxygen/html/html/functions_h.html +6 -6
  298. package/SVF-doxygen/html/html/functions_i.html +15 -15
  299. package/SVF-doxygen/html/html/functions_k.html +9 -0
  300. package/SVF-doxygen/html/html/functions_l.html +11 -11
  301. package/SVF-doxygen/html/html/functions_m.html +1 -1
  302. package/SVF-doxygen/html/html/functions_n.html +2 -2
  303. package/SVF-doxygen/html/html/functions_o.html +32 -35
  304. package/SVF-doxygen/html/html/functions_p.html +34 -51
  305. package/SVF-doxygen/html/html/functions_r.html +1 -1
  306. package/SVF-doxygen/html/html/functions_s.html +32 -16
  307. package/SVF-doxygen/html/html/functions_t.html +24 -24
  308. package/SVF-doxygen/html/html/functions_type_c.html +1 -4
  309. package/SVF-doxygen/html/html/functions_type_f.html +2 -2
  310. package/SVF-doxygen/html/html/functions_type_g.html +2 -2
  311. package/SVF-doxygen/html/html/functions_type_i.html +3 -3
  312. package/SVF-doxygen/html/html/functions_type_k.html +3 -0
  313. package/SVF-doxygen/html/html/functions_type_l.html +3 -3
  314. package/SVF-doxygen/html/html/functions_type_p.html +3 -19
  315. package/SVF-doxygen/html/html/functions_type_s.html +19 -3
  316. package/SVF-doxygen/html/html/functions_type_v.html +1 -1
  317. package/SVF-doxygen/html/html/functions_u.html +2 -2
  318. package/SVF-doxygen/html/html/functions_v.html +10 -10
  319. package/SVF-doxygen/html/html/functions_vars_f.html +1 -1
  320. package/SVF-doxygen/html/html/functions_vars_g.html +8 -8
  321. package/SVF-doxygen/html/html/functions_vars_i.html +9 -9
  322. package/SVF-doxygen/html/html/functions_vars_k.html +6 -0
  323. package/SVF-doxygen/html/html/functions_vars_l.html +2 -2
  324. package/SVF-doxygen/html/html/functions_vars_m.html +1 -1
  325. package/SVF-doxygen/html/html/functions_vars_o.html +3 -4
  326. package/SVF-doxygen/html/html/functions_vars_p.html +4 -7
  327. package/SVF-doxygen/html/html/functions_w.html +5 -9
  328. package/SVF-doxygen/html/html/hierarchy.html +65 -65
  329. package/SVF-doxygen/html/html/namespaceSVF.html +24 -24
  330. package/SVF-doxygen/html/html/search/all_1.js +39 -39
  331. package/SVF-doxygen/html/html/search/all_10.js +12 -17
  332. package/SVF-doxygen/html/html/search/all_12.js +1 -1
  333. package/SVF-doxygen/html/html/search/all_13.js +15 -11
  334. package/SVF-doxygen/html/html/search/all_14.js +7 -7
  335. package/SVF-doxygen/html/html/search/all_15.js +1 -1
  336. package/SVF-doxygen/html/html/search/all_16.js +4 -4
  337. package/SVF-doxygen/html/html/search/all_17.js +1 -1
  338. package/SVF-doxygen/html/html/search/all_2.js +1 -1
  339. package/SVF-doxygen/html/html/search/all_3.js +8 -9
  340. package/SVF-doxygen/html/html/search/all_4.js +2 -2
  341. package/SVF-doxygen/html/html/search/all_6.js +4 -4
  342. package/SVF-doxygen/html/html/search/all_7.js +54 -53
  343. package/SVF-doxygen/html/html/search/all_8.js +2 -2
  344. package/SVF-doxygen/html/html/search/all_9.js +4 -4
  345. package/SVF-doxygen/html/html/search/all_b.js +3 -0
  346. package/SVF-doxygen/html/html/search/all_c.js +7 -7
  347. package/SVF-doxygen/html/html/search/all_d.js +1 -1
  348. package/SVF-doxygen/html/html/search/all_e.js +4 -4
  349. package/SVF-doxygen/html/html/search/all_f.js +6 -6
  350. package/SVF-doxygen/html/html/search/classes_0.js +1 -1
  351. package/SVF-doxygen/html/html/search/classes_1.js +1 -1
  352. package/SVF-doxygen/html/html/search/classes_11.js +1 -1
  353. package/SVF-doxygen/html/html/search/classes_12.js +2 -2
  354. package/SVF-doxygen/html/html/search/classes_2.js +5 -5
  355. package/SVF-doxygen/html/html/search/classes_3.js +2 -2
  356. package/SVF-doxygen/html/html/search/classes_5.js +1 -1
  357. package/SVF-doxygen/html/html/search/classes_6.js +2 -2
  358. package/SVF-doxygen/html/html/search/classes_9.js +1 -1
  359. package/SVF-doxygen/html/html/search/classes_b.js +1 -1
  360. package/SVF-doxygen/html/html/search/classes_c.js +1 -1
  361. package/SVF-doxygen/html/html/search/classes_d.js +1 -1
  362. package/SVF-doxygen/html/html/search/classes_f.js +1 -1
  363. package/SVF-doxygen/html/html/search/functions_0.js +39 -39
  364. package/SVF-doxygen/html/html/search/functions_1.js +1 -1
  365. package/SVF-doxygen/html/html/search/functions_10.js +4 -4
  366. package/SVF-doxygen/html/html/search/functions_11.js +1 -1
  367. package/SVF-doxygen/html/html/search/functions_12.js +1 -1
  368. package/SVF-doxygen/html/html/search/functions_13.js +2 -2
  369. package/SVF-doxygen/html/html/search/functions_2.js +7 -7
  370. package/SVF-doxygen/html/html/search/functions_3.js +2 -2
  371. package/SVF-doxygen/html/html/search/functions_5.js +1 -1
  372. package/SVF-doxygen/html/html/search/functions_6.js +49 -48
  373. package/SVF-doxygen/html/html/search/functions_7.js +2 -2
  374. package/SVF-doxygen/html/html/search/functions_a.js +3 -3
  375. package/SVF-doxygen/html/html/search/functions_c.js +1 -1
  376. package/SVF-doxygen/html/html/search/functions_d.js +2 -2
  377. package/SVF-doxygen/html/html/search/functions_e.js +1 -1
  378. package/SVF-doxygen/html/html/search/typedefs_11.js +7 -3
  379. package/SVF-doxygen/html/html/search/typedefs_14.js +1 -1
  380. package/SVF-doxygen/html/html/search/typedefs_2.js +1 -2
  381. package/SVF-doxygen/html/html/search/typedefs_5.js +2 -2
  382. package/SVF-doxygen/html/html/search/typedefs_6.js +1 -1
  383. package/SVF-doxygen/html/html/search/typedefs_8.js +1 -1
  384. package/SVF-doxygen/html/html/search/typedefs_a.js +2 -1
  385. package/SVF-doxygen/html/html/search/typedefs_b.js +3 -3
  386. package/SVF-doxygen/html/html/search/typedefs_f.js +3 -7
  387. package/SVF-doxygen/html/html/search/variables_10.js +2 -3
  388. package/SVF-doxygen/html/html/search/variables_14.js +4 -4
  389. package/SVF-doxygen/html/html/search/variables_6.js +1 -1
  390. package/SVF-doxygen/html/html/search/variables_7.js +4 -4
  391. package/SVF-doxygen/html/html/search/variables_9.js +4 -4
  392. package/SVF-doxygen/html/html/search/variables_b.js +3 -1
  393. package/SVF-doxygen/html/html/search/variables_c.js +1 -1
  394. package/SVF-doxygen/html/html/search/variables_d.js +1 -1
  395. package/SVF-doxygen/html/html/search/variables_e.js +2 -2
  396. package/SVF-doxygen/html/html/search/variables_f.js +2 -2
  397. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01ConstraintGraph_01_5_01_4.html +2 -2
  398. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01ICFG_01_5_01_4.html +2 -2
  399. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01IRGraph_01_5_01_4.html +4 -4
  400. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01OfflineConsG_01_5_01_4.html +2 -2
  401. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01SVFG_01_5_01_4.html +1 -1
  402. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01VFG_01_5_01_4.html +1 -1
  403. package/SVF-doxygen/html/html/svf-ex_8cpp.html +1 -1
  404. package/SVF-doxygen/html/html/svf-ex_8cpp_source.html +1 -1
  405. package/include/DDA/ContextDDA.h +1 -1
  406. package/include/DDA/FlowDDA.h +1 -1
  407. package/include/Graphs/CHG.h +2 -2
  408. package/include/Graphs/ConsG.h +10 -10
  409. package/include/Graphs/ICFGNode.h +4 -4
  410. package/include/Graphs/IRGraph.h +7 -7
  411. package/include/Graphs/VFG.h +13 -13
  412. package/include/Graphs/VFGNode.h +6 -6
  413. package/include/MSSA/MSSAMuChi.h +6 -6
  414. package/include/MSSA/MemRegion.h +11 -11
  415. package/include/MSSA/MemSSA.h +11 -11
  416. package/include/MemoryModel/PointerAnalysis.h +9 -9
  417. package/include/MemoryModel/PointerAnalysisImpl.h +4 -4
  418. package/include/MemoryModel/SVFIR.h +82 -83
  419. package/include/MemoryModel/SVFStatements.h +97 -92
  420. package/include/MemoryModel/SVFVariables.h +71 -71
  421. package/include/SVF-FE/SVFIRBuilder.h +24 -24
  422. package/include/Util/IRAnnotator.h +1 -1
  423. package/include/Util/TypeBasedHeapCloning.h +2 -2
  424. package/include/WPA/Andersen.h +1 -1
  425. package/include/WPA/FlowSensitiveTBHC.h +1 -1
  426. package/lib/DDA/ContextDDA.cpp +6 -6
  427. package/lib/DDA/DDAClient.cpp +6 -6
  428. package/lib/DDA/DDAStat.cpp +2 -2
  429. package/lib/DDA/FlowDDA.cpp +4 -4
  430. package/lib/Graphs/ConsG.cpp +34 -34
  431. package/lib/Graphs/ICFG.cpp +4 -4
  432. package/lib/Graphs/IRGraph.cpp +21 -21
  433. package/lib/Graphs/OfflineConsG.cpp +8 -8
  434. package/lib/Graphs/SVFG.cpp +14 -14
  435. package/lib/Graphs/ThreadCallGraph.cpp +2 -2
  436. package/lib/Graphs/VFG.cpp +52 -52
  437. package/lib/MSSA/MemRegion.cpp +23 -23
  438. package/lib/MSSA/MemSSA.cpp +15 -15
  439. package/lib/MTA/MTAAnnotator.cpp +5 -5
  440. package/lib/MemoryModel/PAGBuilderFromFile.cpp +13 -13
  441. package/lib/MemoryModel/PointerAnalysis.cpp +9 -9
  442. package/lib/MemoryModel/PointerAnalysisImpl.cpp +14 -14
  443. package/lib/MemoryModel/SVFIR.cpp +95 -95
  444. package/lib/MemoryModel/SVFStatements.cpp +24 -24
  445. package/lib/MemoryModel/SVFVariables.cpp +19 -19
  446. package/lib/SABER/LeakChecker.cpp +2 -2
  447. package/lib/SABER/SaberSVFGBuilder.cpp +5 -5
  448. package/lib/SVF-FE/Graph2Json.cpp +3 -3
  449. package/lib/SVF-FE/SVFIRBuilder.cpp +22 -22
  450. package/lib/Util/PTAStat.cpp +8 -8
  451. package/lib/Util/TypeBasedHeapCloning.cpp +22 -22
  452. package/lib/WPA/Andersen.cpp +13 -13
  453. package/lib/WPA/AndersenSFR.cpp +2 -2
  454. package/lib/WPA/AndersenStat.cpp +6 -6
  455. package/lib/WPA/FlowSensitive.cpp +8 -8
  456. package/lib/WPA/FlowSensitiveStat.cpp +4 -4
  457. package/lib/WPA/FlowSensitiveTBHC.cpp +9 -9
  458. package/lib/WPA/VersionedFlowSensitive.cpp +2 -2
  459. package/lib/WPA/VersionedFlowSensitiveStat.cpp +1 -1
  460. package/package.json +1 -1
@@ -84,9 +84,9 @@ void BVDataPTAImpl::expandFIObjs(const PointsTo& pts, PointsTo& expandedPts)
84
84
  expandedPts = pts;;
85
85
  for(PointsTo::iterator pit = pts.begin(), epit = pts.end(); pit!=epit; ++pit)
86
86
  {
87
- if (pag->getBaseObjNode(*pit) == *pit || isFieldInsensitive(*pit))
87
+ if (pag->getBaseObjVar(*pit) == *pit || isFieldInsensitive(*pit))
88
88
  {
89
- expandedPts |= pag->getAllFieldsObjNode(*pit);
89
+ expandedPts |= pag->getAllFieldsObjVars(*pit);
90
90
  }
91
91
  }
92
92
  }
@@ -96,9 +96,9 @@ void BVDataPTAImpl::expandFIObjs(const NodeBS& pts, NodeBS& expandedPts)
96
96
  expandedPts = pts;
97
97
  for (const NodeID o : pts)
98
98
  {
99
- if (pag->getBaseObjNode(o) == o || isFieldInsensitive(o))
99
+ if (pag->getBaseObjVar(o) == o || isFieldInsensitive(o))
100
100
  {
101
- expandedPts |= pag->getAllFieldsObjNode(o);
101
+ expandedPts |= pag->getAllFieldsObjVars(o);
102
102
  }
103
103
  }
104
104
  }
@@ -153,7 +153,7 @@ void BVDataPTAImpl::writeToFile(const string& filename)
153
153
  if (GepObjPN *gepObjPN = SVFUtil::dyn_cast<GepObjPN>(pagNode))
154
154
  {
155
155
  F.os() << it->first << " ";
156
- F.os() << pag->getBaseObjNode(it->first) << " ";
156
+ F.os() << pag->getBaseObjVar(it->first) << " ";
157
157
  F.os() << gepObjPN->getLocationSet().getOffset() << "\n";
158
158
  }
159
159
  }
@@ -164,8 +164,8 @@ void BVDataPTAImpl::writeToFile(const string& filename)
164
164
  for (auto it = pag->begin(), ie = pag->end(); it != ie; ++it)
165
165
  {
166
166
  PAGNode* pagNode = it->second;
167
- if (!isa<ObjPN>(pagNode)) continue;
168
- NodeID n = pag->getBaseObjNode(it->first);
167
+ if (!isa<ObjVar>(pagNode)) continue;
168
+ NodeID n = pag->getBaseObjVar(it->first);
169
169
  if (NodeIDs.test(n)) continue;
170
170
  F.os() << n << " ";
171
171
  F.os() << isFieldInsensitive(n) << "\n";
@@ -265,7 +265,7 @@ bool BVDataPTAImpl::readFromFile(const string& filename)
265
265
  size_t offset;
266
266
  ss >> id >> base >> offset;
267
267
 
268
- NodeID n = pag->getGepObjNode(pag->getObject(base), LocationSet(offset));
268
+ NodeID n = pag->getGepObjVar(pag->getObject(base), LocationSet(offset));
269
269
  assert(id == n && "Error adding GepObjNode into SVFIR!");
270
270
 
271
271
  getline(F, line);
@@ -353,7 +353,7 @@ void BVDataPTAImpl::dumpTopLevelPtsTo()
353
353
 
354
354
 
355
355
  /*!
356
- * Dump all points-to including top-level (ValPN) and address-taken (ObjPN) variables
356
+ * Dump all points-to including top-level (ValVar) and address-taken (ObjVar) variables
357
357
  */
358
358
  void BVDataPTAImpl::dumpAllPts()
359
359
  {
@@ -401,7 +401,7 @@ void BVDataPTAImpl::onTheFlyCallGraphSolve(const CallSiteToFunPtrMap& callsites,
401
401
  */
402
402
  void BVDataPTAImpl::normalizePointsTo() {
403
403
  SVFIR::MemObjToFieldsMap &memToFieldsMap = pag->getMemToFieldsMap();
404
- SVFIR::NodeLocationSetMap &GepObjNodeMap = pag->getGepObjNodeMap();
404
+ SVFIR::NodeLocationSetMap &GepObjVarMap = pag->getGepObjNodeMap();
405
405
 
406
406
  // collect each gep node whose base node has been set as field-insensitive
407
407
  NodeBS dropNodes;
@@ -427,19 +427,19 @@ void BVDataPTAImpl::normalizePointsTo() {
427
427
  for (NodeID obj : tmpPts) {
428
428
  if (!dropNodes.test(obj))
429
429
  continue;
430
- NodeID baseObj = pag->getBaseObjNode(obj);
430
+ NodeID baseObj = pag->getBaseObjVar(obj);
431
431
  clearPts(n, obj);
432
432
  addPts(n, baseObj);
433
433
  }
434
434
  }
435
435
 
436
- // clear GepObjNodeMap and memToFieldsMap for redundant gepnodes
436
+ // clear GepObjVarMap and memToFieldsMap for redundant gepnodes
437
437
  // and remove those nodes from pag
438
438
  for (NodeID n: dropNodes) {
439
- NodeID base = pag->getBaseObjNode(n);
439
+ NodeID base = pag->getBaseObjVar(n);
440
440
  GepObjPN *gepNode = SVFUtil::dyn_cast<GepObjPN>(pag->getGNode(n));
441
441
  const LocationSet ls = gepNode->getLocationSet();
442
- GepObjNodeMap.erase(std::make_pair(base, ls));
442
+ GepObjVarMap.erase(std::make_pair(base, ls));
443
443
  memToFieldsMap[base].reset(n);
444
444
 
445
445
  pag->removeGNode(gepNode);
@@ -48,15 +48,15 @@ SVFIR::SVFIR(bool buildFromFile) : IRGraph(buildFromFile)
48
48
  /*!
49
49
  * Add Address edge
50
50
  */
51
- AddrPE* SVFIR::addAddrPE(NodeID src, NodeID dst)
51
+ AddrStmt* SVFIR::addAddrStmt(NodeID src, NodeID dst)
52
52
  {
53
53
  SVFVar* srcNode = getGNode(src);
54
54
  SVFVar* dstNode = getGNode(dst);
55
55
  if(SVFStmt* edge = hasNonlabeledEdge(srcNode,dstNode, SVFStmt::Addr))
56
- return SVFUtil::cast<AddrPE>(edge);
56
+ return SVFUtil::cast<AddrStmt>(edge);
57
57
  else
58
58
  {
59
- AddrPE* addrPE = new AddrPE(srcNode, dstNode);
59
+ AddrStmt* addrPE = new AddrStmt(srcNode, dstNode);
60
60
  addToStmt2TypeMap(addrPE);
61
61
  addEdge(srcNode,dstNode, addrPE);
62
62
  return addrPE;
@@ -66,15 +66,15 @@ AddrPE* SVFIR::addAddrPE(NodeID src, NodeID dst)
66
66
  /*!
67
67
  * Add Copy edge
68
68
  */
69
- CopyPE* SVFIR::addCopyPE(NodeID src, NodeID dst)
69
+ CopyStmt* SVFIR::addCopyStmt(NodeID src, NodeID dst)
70
70
  {
71
71
  SVFVar* srcNode = getGNode(src);
72
72
  SVFVar* dstNode = getGNode(dst);
73
73
  if(SVFStmt* edge = hasNonlabeledEdge(srcNode,dstNode, SVFStmt::Copy))
74
- return SVFUtil::cast<CopyPE>(edge);
74
+ return SVFUtil::cast<CopyStmt>(edge);
75
75
  else
76
76
  {
77
- CopyPE* copyPE = new CopyPE(srcNode, dstNode);
77
+ CopyStmt* copyPE = new CopyStmt(srcNode, dstNode);
78
78
  addToStmt2TypeMap(copyPE);
79
79
  addEdge(srcNode,dstNode, copyPE);
80
80
  return copyPE;
@@ -84,13 +84,13 @@ CopyPE* SVFIR::addCopyPE(NodeID src, NodeID dst)
84
84
  /*!
85
85
  * Add Phi statement
86
86
  */
87
- PhiPE* SVFIR::addPhiNode(NodeID res, NodeID opnd)
87
+ PhiStmt* SVFIR::addPhiStmt(NodeID res, NodeID opnd)
88
88
  {
89
89
  SVFVar* opNode = getGNode(opnd);
90
90
  SVFVar* resNode = getGNode(res);
91
91
  PHINodeMap::iterator it = phiNodeMap.find(resNode);
92
92
  if(it == phiNodeMap.end()){
93
- PhiPE* phi = new PhiPE(resNode, {opNode});
93
+ PhiStmt* phi = new PhiStmt(resNode, {opNode});
94
94
  addToStmt2TypeMap(phi);
95
95
  addEdge(opNode, resNode, phi);
96
96
  phiNodeMap[resNode] = phi;
@@ -105,17 +105,17 @@ PhiPE* SVFIR::addPhiNode(NodeID res, NodeID opnd)
105
105
  /*!
106
106
  * Add Compare edge
107
107
  */
108
- CmpPE* SVFIR::addCmpPE(NodeID op1, NodeID op2, NodeID dst, u32_t opcode)
108
+ CmpStmt* SVFIR::addCmpStmt(NodeID op1, NodeID op2, NodeID dst, u32_t predicate)
109
109
  {
110
110
  SVFVar* op1Node = getGNode(op1);
111
111
  SVFVar* op2Node = getGNode(op2);
112
112
  SVFVar* dstNode = getGNode(dst);
113
113
  if(SVFStmt* edge = hasLabeledEdge(op1Node, dstNode, SVFStmt::Cmp, op2Node))
114
- return SVFUtil::cast<CmpPE>(edge);
114
+ return SVFUtil::cast<CmpStmt>(edge);
115
115
  else
116
116
  {
117
117
  std::vector<SVFVar*> opnds = {op1Node, op2Node};
118
- CmpPE* cmp = new CmpPE(dstNode, opnds, opcode);
118
+ CmpStmt* cmp = new CmpStmt(dstNode, opnds, predicate);
119
119
  addToStmt2TypeMap(cmp);
120
120
  addEdge(op1Node, dstNode, cmp);
121
121
  return cmp;
@@ -126,17 +126,17 @@ CmpPE* SVFIR::addCmpPE(NodeID op1, NodeID op2, NodeID dst, u32_t opcode)
126
126
  /*!
127
127
  * Add Compare edge
128
128
  */
129
- BinaryOPPE* SVFIR::addBinaryOPPE(NodeID op1, NodeID op2, NodeID dst, u32_t opcode)
129
+ BinaryOPStmt* SVFIR::addBinaryOPStmt(NodeID op1, NodeID op2, NodeID dst, u32_t opcode)
130
130
  {
131
131
  SVFVar* op1Node = getGNode(op1);
132
132
  SVFVar* op2Node = getGNode(op2);
133
133
  SVFVar* dstNode = getGNode(dst);
134
134
  if(SVFStmt* edge = hasLabeledEdge(op1Node, dstNode, SVFStmt::BinaryOp, op2Node))
135
- return SVFUtil::cast<BinaryOPPE>(edge);
135
+ return SVFUtil::cast<BinaryOPStmt>(edge);
136
136
  else
137
137
  {
138
138
  std::vector<SVFVar*> opnds = {op1Node, op2Node};
139
- BinaryOPPE* binaryOP = new BinaryOPPE(dstNode, opnds, opcode);
139
+ BinaryOPStmt* binaryOP = new BinaryOPStmt(dstNode, opnds, opcode);
140
140
  addToStmt2TypeMap(binaryOP);
141
141
  addEdge(op1Node,dstNode, binaryOP);
142
142
  return binaryOP;
@@ -146,15 +146,15 @@ BinaryOPPE* SVFIR::addBinaryOPPE(NodeID op1, NodeID op2, NodeID dst, u32_t opcod
146
146
  /*!
147
147
  * Add Unary edge
148
148
  */
149
- UnaryOPPE* SVFIR::addUnaryOPPE(NodeID src, NodeID dst, u32_t opcode)
149
+ UnaryOPStmt* SVFIR::addUnaryOPStmt(NodeID src, NodeID dst, u32_t opcode)
150
150
  {
151
151
  SVFVar* srcNode = getGNode(src);
152
152
  SVFVar* dstNode = getGNode(dst);
153
153
  if(SVFStmt* edge = hasNonlabeledEdge(srcNode,dstNode, SVFStmt::UnaryOp))
154
- return SVFUtil::cast<UnaryOPPE>(edge);
154
+ return SVFUtil::cast<UnaryOPStmt>(edge);
155
155
  else
156
156
  {
157
- UnaryOPPE* unaryOP = new UnaryOPPE(srcNode, dstNode, opcode);
157
+ UnaryOPStmt* unaryOP = new UnaryOPStmt(srcNode, dstNode, opcode);
158
158
  addToStmt2TypeMap(unaryOP);
159
159
  addEdge(srcNode,dstNode, unaryOP);
160
160
  return unaryOP;
@@ -182,15 +182,15 @@ BranchStmt* SVFIR::addBranchStmt(NodeID br, NodeID cond, std::vector<const ICFGN
182
182
  /*!
183
183
  * Add Load edge
184
184
  */
185
- LoadPE* SVFIR::addLoadPE(NodeID src, NodeID dst)
185
+ LoadStmt* SVFIR::addLoadStmt(NodeID src, NodeID dst)
186
186
  {
187
187
  SVFVar* srcNode = getGNode(src);
188
188
  SVFVar* dstNode = getGNode(dst);
189
189
  if(SVFStmt* edge = hasNonlabeledEdge(srcNode,dstNode, SVFStmt::Load))
190
- return SVFUtil::cast<LoadPE>(edge);
190
+ return SVFUtil::cast<LoadStmt>(edge);
191
191
  else
192
192
  {
193
- LoadPE* loadPE = new LoadPE(srcNode, dstNode);
193
+ LoadStmt* loadPE = new LoadStmt(srcNode, dstNode);
194
194
  addToStmt2TypeMap(loadPE);
195
195
  addEdge(srcNode,dstNode, loadPE);
196
196
  return loadPE;
@@ -201,15 +201,15 @@ LoadPE* SVFIR::addLoadPE(NodeID src, NodeID dst)
201
201
  * Add Store edge
202
202
  * Note that two store instructions may share the same Store SVFStmt
203
203
  */
204
- StorePE* SVFIR::addStorePE(NodeID src, NodeID dst, const IntraBlockNode* curVal)
204
+ StoreStmt* SVFIR::addStoreStmt(NodeID src, NodeID dst, const IntraBlockNode* curVal)
205
205
  {
206
206
  SVFVar* srcNode = getGNode(src);
207
207
  SVFVar* dstNode = getGNode(dst);
208
208
  if(SVFStmt* edge = hasLabeledEdge(srcNode,dstNode, SVFStmt::Store, curVal))
209
- return SVFUtil::cast<StorePE>(edge);
209
+ return SVFUtil::cast<StoreStmt>(edge);
210
210
  else
211
211
  {
212
- StorePE* storePE = new StorePE(srcNode, dstNode, curVal);
212
+ StoreStmt* storePE = new StoreStmt(srcNode, dstNode, curVal);
213
213
  addToStmt2TypeMap(storePE);
214
214
  addEdge(srcNode,dstNode, storePE);
215
215
  return storePE;
@@ -255,12 +255,12 @@ RetPE* SVFIR::addRetPE(NodeID src, NodeID dst, const CallBlockNode* cs)
255
255
  /*!
256
256
  * Add blackhole/constant edge
257
257
  */
258
- SVFStmt* SVFIR::addBlackHoleAddrPE(NodeID node)
258
+ SVFStmt* SVFIR::addBlackHoleAddrStmt(NodeID node)
259
259
  {
260
260
  if(Options::HandBlackHole)
261
- return pag->addAddrPE(pag->getBlackHoleNode(), node);
261
+ return pag->addAddrStmt(pag->getBlackHoleNode(), node);
262
262
  else
263
- return pag->addCopyPE(pag->getNullPtr(), node);
263
+ return pag->addCopyStmt(pag->getNullPtr(), node);
264
264
  }
265
265
 
266
266
  /*!
@@ -305,35 +305,35 @@ TDJoinPE* SVFIR::addThreadJoinPE(NodeID src, NodeID dst, const CallBlockNode* cs
305
305
  * Find the base node id of src and connect base node to dst node
306
306
  * Create gep offset: (offset + baseOff <nested struct gep size>)
307
307
  */
308
- GepPE* SVFIR::addGepPE(NodeID src, NodeID dst, const LocationSet& ls, bool constGep)
308
+ GepStmt* SVFIR::addGepStmt(NodeID src, NodeID dst, const LocationSet& ls, bool constGep)
309
309
  {
310
310
 
311
311
  SVFVar* node = getGNode(src);
312
312
  if (!constGep || node->hasIncomingVariantGepEdge())
313
313
  {
314
314
  /// Since the offset from base to src is variant,
315
- /// the new gep edge being created is also a VariantGepPE edge.
316
- return addVariantGepPE(src, dst);
315
+ /// the new gep edge being created is also a VariantGepStmt edge.
316
+ return addVariantGepStmt(src, dst);
317
317
  }
318
318
  else
319
319
  {
320
- return addNormalGepPE(src, dst, ls);
320
+ return addNormalGepStmt(src, dst, ls);
321
321
  }
322
322
  }
323
323
 
324
324
  /*!
325
325
  * Add normal (Gep) edge
326
326
  */
327
- NormalGepPE* SVFIR::addNormalGepPE(NodeID src, NodeID dst, const LocationSet& ls)
327
+ NormalGepStmt* SVFIR::addNormalGepStmt(NodeID src, NodeID dst, const LocationSet& ls)
328
328
  {
329
329
  const LocationSet& baseLS = getLocationSetFromBaseNode(src);
330
- SVFVar* baseNode = getGNode(getBaseValNode(src));
330
+ SVFVar* baseNode = getGNode(getBaseValVar(src));
331
331
  SVFVar* dstNode = getGNode(dst);
332
332
  if(SVFStmt* edge = hasNonlabeledEdge(baseNode, dstNode, SVFStmt::NormalGep))
333
- return SVFUtil::cast<NormalGepPE>(edge);
333
+ return SVFUtil::cast<NormalGepStmt>(edge);
334
334
  else
335
335
  {
336
- NormalGepPE* gepPE = new NormalGepPE(baseNode, dstNode, ls+baseLS);
336
+ NormalGepStmt* gepPE = new NormalGepStmt(baseNode, dstNode, ls+baseLS);
337
337
  addToStmt2TypeMap(gepPE);
338
338
  addEdge(baseNode, dstNode, gepPE);
339
339
  return gepPE;
@@ -344,16 +344,16 @@ NormalGepPE* SVFIR::addNormalGepPE(NodeID src, NodeID dst, const LocationSet& ls
344
344
  * Add variant(Gep) edge
345
345
  * Find the base node id of src and connect base node to dst node
346
346
  */
347
- VariantGepPE* SVFIR::addVariantGepPE(NodeID src, NodeID dst)
347
+ VariantGepStmt* SVFIR::addVariantGepStmt(NodeID src, NodeID dst)
348
348
  {
349
349
 
350
- SVFVar* baseNode = getGNode(getBaseValNode(src));
350
+ SVFVar* baseNode = getGNode(getBaseValVar(src));
351
351
  SVFVar* dstNode = getGNode(dst);
352
352
  if(SVFStmt* edge = hasNonlabeledEdge(baseNode, dstNode, SVFStmt::VariantGep))
353
- return SVFUtil::cast<VariantGepPE>(edge);
353
+ return SVFUtil::cast<VariantGepStmt>(edge);
354
354
  else
355
355
  {
356
- VariantGepPE* gepPE = new VariantGepPE(baseNode, dstNode);
356
+ VariantGepStmt* gepPE = new VariantGepStmt(baseNode, dstNode);
357
357
  addToStmt2TypeMap(gepPE);
358
358
  addEdge(baseNode, dstNode, gepPE);
359
359
  return gepPE;
@@ -363,32 +363,32 @@ VariantGepPE* SVFIR::addVariantGepPE(NodeID src, NodeID dst)
363
363
 
364
364
 
365
365
  /*!
366
- * Add a temp field value node, this method can only invoked by getGepValNode
367
- * due to constaint expression, curInst is used to distinguish different instructions (e.g., memorycpy) when creating GepValPN.
366
+ * Add a temp field value node, this method can only invoked by getGepValVar
367
+ * due to constaint expression, curInst is used to distinguish different instructions (e.g., memorycpy) when creating GepValVar.
368
368
  */
369
369
  NodeID SVFIR::addGepValNode(const Value* curInst,const Value* gepVal, const LocationSet& ls, NodeID i, const Type *type, u32_t fieldidx)
370
370
  {
371
- NodeID base = getBaseValNode(getValueNode(gepVal));
371
+ NodeID base = getBaseValVar(getValueNode(gepVal));
372
372
  //assert(findPAGNode(i) == false && "this node should not be created before");
373
- assert(0==GepValNodeMap[curInst].count(std::make_pair(base, ls))
373
+ assert(0==GepValObjMap[curInst].count(std::make_pair(base, ls))
374
374
  && "this node should not be created before");
375
- GepValNodeMap[curInst][std::make_pair(base, ls)] = i;
376
- GepValPN *node = new GepValPN(gepVal, i, ls, type, fieldidx);
375
+ GepValObjMap[curInst][std::make_pair(base, ls)] = i;
376
+ GepValVar *node = new GepValVar(gepVal, i, ls, type, fieldidx);
377
377
  return addValNode(gepVal, node, i);
378
378
  }
379
379
 
380
380
  /*!
381
381
  * Given an object node, find its field object node
382
382
  */
383
- NodeID SVFIR::getGepObjNode(NodeID id, const LocationSet& ls)
383
+ NodeID SVFIR::getGepObjVar(NodeID id, const LocationSet& ls)
384
384
  {
385
385
  SVFVar* node = pag->getGNode(id);
386
386
  if (GepObjPN* gepNode = SVFUtil::dyn_cast<GepObjPN>(node))
387
- return getGepObjNode(gepNode->getMemObj(), gepNode->getLocationSet() + ls);
388
- else if (FIObjPN* baseNode = SVFUtil::dyn_cast<FIObjPN>(node))
389
- return getGepObjNode(baseNode->getMemObj(), ls);
390
- else if (DummyObjPN* baseNode = SVFUtil::dyn_cast<DummyObjPN>(node))
391
- return getGepObjNode(baseNode->getMemObj(), ls);
387
+ return getGepObjVar(gepNode->getMemObj(), gepNode->getLocationSet() + ls);
388
+ else if (FIObjVar* baseNode = SVFUtil::dyn_cast<FIObjVar>(node))
389
+ return getGepObjVar(baseNode->getMemObj(), ls);
390
+ else if (DummyObjVar* baseNode = SVFUtil::dyn_cast<DummyObjVar>(node))
391
+ return getGepObjVar(baseNode->getMemObj(), ls);
392
392
  else
393
393
  {
394
394
  assert(false && "new gep obj node kind?");
@@ -402,21 +402,21 @@ NodeID SVFIR::getGepObjNode(NodeID id, const LocationSet& ls)
402
402
  * offset = offset % obj->getMaxFieldOffsetLimit() to create limited number of mem objects
403
403
  * maximum number of field object creation is obj->getMaxFieldOffsetLimit()
404
404
  */
405
- NodeID SVFIR::getGepObjNode(const MemObj* obj, const LocationSet& ls)
405
+ NodeID SVFIR::getGepObjVar(const MemObj* obj, const LocationSet& ls)
406
406
  {
407
407
  NodeID base = obj->getId();
408
408
 
409
409
  /// if this obj is field-insensitive, just return the field-insensitive node.
410
410
  if (obj->isFieldInsensitive())
411
- return getFIObjNode(obj);
411
+ return getFIObjVar(obj);
412
412
 
413
413
  LocationSet newLS = SymbolTableInfo::SymbolInfo()->getModulusOffset(obj,ls);
414
414
 
415
415
  // Base and first field are the same memory location.
416
416
  if (Options::FirstFieldEqBase && newLS.getOffset() == 0) return base;
417
417
 
418
- NodeLocationSetMap::iterator iter = GepObjNodeMap.find(std::make_pair(base, newLS));
419
- if (iter == GepObjNodeMap.end())
418
+ NodeLocationSetMap::iterator iter = GepObjVarMap.find(std::make_pair(base, newLS));
419
+ if (iter == GepObjVarMap.end())
420
420
  return addGepObjNode(obj, newLS);
421
421
  else
422
422
  return iter->second;
@@ -424,17 +424,17 @@ NodeID SVFIR::getGepObjNode(const MemObj* obj, const LocationSet& ls)
424
424
  }
425
425
 
426
426
  /*!
427
- * Add a field obj node, this method can only invoked by getGepObjNode
427
+ * Add a field obj node, this method can only invoked by getGepObjVar
428
428
  */
429
429
  NodeID SVFIR::addGepObjNode(const MemObj* obj, const LocationSet& ls)
430
430
  {
431
431
  //assert(findPAGNode(i) == false && "this node should not be created before");
432
432
  NodeID base = obj->getId();
433
- assert(0==GepObjNodeMap.count(std::make_pair(base, ls))
433
+ assert(0==GepObjVarMap.count(std::make_pair(base, ls))
434
434
  && "this node should not be created before");
435
435
 
436
436
  NodeID gepId = NodeIDAllocator::get()->allocateGepObjectId(base, ls.getOffset(), StInfo::getMaxFieldLimit());
437
- GepObjNodeMap[std::make_pair(base, ls)] = gepId;
437
+ GepObjVarMap[std::make_pair(base, ls)] = gepId;
438
438
  GepObjPN *node = new GepObjPN(obj, gepId, ls);
439
439
  memToFieldsMap[base].set(gepId);
440
440
  return addObjNode(obj->getValue(), node, gepId);
@@ -448,14 +448,14 @@ NodeID SVFIR::addFIObjNode(const MemObj* obj)
448
448
  //assert(findPAGNode(i) == false && "this node should not be created before");
449
449
  NodeID base = obj->getId();
450
450
  memToFieldsMap[base].set(obj->getId());
451
- FIObjPN *node = new FIObjPN(obj->getValue(), obj->getId(), obj);
451
+ FIObjVar *node = new FIObjVar(obj->getValue(), obj->getId(), obj);
452
452
  return addObjNode(obj->getValue(), node, obj->getId());
453
453
  }
454
454
 
455
455
  /*!
456
456
  * Get all fields object nodes of an object
457
457
  */
458
- NodeBS& SVFIR::getAllFieldsObjNode(const MemObj* obj)
458
+ NodeBS& SVFIR::getAllFieldsObjVars(const MemObj* obj)
459
459
  {
460
460
  NodeID base = obj->getId();
461
461
  return memToFieldsMap[base];
@@ -464,12 +464,12 @@ NodeBS& SVFIR::getAllFieldsObjNode(const MemObj* obj)
464
464
  /*!
465
465
  * Get all fields object nodes of an object
466
466
  */
467
- NodeBS& SVFIR::getAllFieldsObjNode(NodeID id)
467
+ NodeBS& SVFIR::getAllFieldsObjVars(NodeID id)
468
468
  {
469
469
  const SVFVar* node = pag->getGNode(id);
470
- assert(SVFUtil::isa<ObjPN>(node) && "need an object node");
471
- const ObjPN* obj = SVFUtil::cast<ObjPN>(node);
472
- return getAllFieldsObjNode(obj->getMemObj());
470
+ assert(SVFUtil::isa<ObjVar>(node) && "need an object node");
471
+ const ObjVar* obj = SVFUtil::cast<ObjVar>(node);
472
+ return getAllFieldsObjVars(obj->getMemObj());
473
473
  }
474
474
 
475
475
  /*!
@@ -480,16 +480,16 @@ NodeBS& SVFIR::getAllFieldsObjNode(NodeID id)
480
480
  NodeBS SVFIR::getFieldsAfterCollapse(NodeID id)
481
481
  {
482
482
  const SVFVar* node = pag->getGNode(id);
483
- assert(SVFUtil::isa<ObjPN>(node) && "need an object node");
484
- const MemObj* mem = SVFUtil::cast<ObjPN>(node)->getMemObj();
483
+ assert(SVFUtil::isa<ObjVar>(node) && "need an object node");
484
+ const MemObj* mem = SVFUtil::cast<ObjVar>(node)->getMemObj();
485
485
  if(mem->isFieldInsensitive())
486
486
  {
487
487
  NodeBS bs;
488
- bs.set(getFIObjNode(mem));
488
+ bs.set(getFIObjVar(mem));
489
489
  return bs;
490
490
  }
491
491
  else
492
- return getAllFieldsObjNode(mem);
492
+ return getAllFieldsObjVars(mem);
493
493
  }
494
494
 
495
495
  /*!
@@ -497,13 +497,13 @@ NodeBS SVFIR::getFieldsAfterCollapse(NodeID id)
497
497
  * Return the source node of its connected gep edge if this pointer has
498
498
  * Otherwise return the node id itself
499
499
  */
500
- NodeID SVFIR::getBaseValNode(NodeID nodeId)
500
+ NodeID SVFIR::getBaseValVar(NodeID nodeId)
501
501
  {
502
502
  SVFVar* node = getGNode(nodeId);
503
503
  if (node->hasIncomingEdges(SVFStmt::NormalGep) || node->hasIncomingEdges(SVFStmt::VariantGep))
504
504
  {
505
- SVFStmt::PAGEdgeSetTy& ngeps = node->getIncomingEdges(SVFStmt::NormalGep);
506
- SVFStmt::PAGEdgeSetTy& vgeps = node->getIncomingEdges(SVFStmt::VariantGep);
505
+ SVFStmt::SVFStmtSetTy& ngeps = node->getIncomingEdges(SVFStmt::NormalGep);
506
+ SVFStmt::SVFStmtSetTy& vgeps = node->getIncomingEdges(SVFStmt::VariantGep);
507
507
 
508
508
  assert(((ngeps.size()+vgeps.size())==1) && "one node can only be connected by at most one gep edge!");
509
509
 
@@ -513,7 +513,7 @@ NodeID SVFIR::getBaseValNode(NodeID nodeId)
513
513
  else
514
514
  it = vgeps.begin();
515
515
 
516
- assert(SVFUtil::isa<GepPE>(*it) && "not a gep edge??");
516
+ assert(SVFUtil::isa<GepStmt>(*it) && "not a gep edge??");
517
517
  return (*it)->getSrcID();
518
518
  }
519
519
  else
@@ -529,7 +529,7 @@ NodeID SVFIR::getBaseValNode(NodeID nodeId)
529
529
  LocationSet SVFIR::getLocationSetFromBaseNode(NodeID nodeId)
530
530
  {
531
531
  SVFVar* node = getGNode(nodeId);
532
- SVFStmt::PAGEdgeSetTy& geps = node->getIncomingEdges(SVFStmt::NormalGep);
532
+ SVFStmt::SVFStmtSetTy& geps = node->getIncomingEdges(SVFStmt::NormalGep);
533
533
  /// if this node is already a base node
534
534
  if(geps.empty())
535
535
  return LocationSet(0);
@@ -537,8 +537,8 @@ LocationSet SVFIR::getLocationSetFromBaseNode(NodeID nodeId)
537
537
  assert(geps.size()==1 && "one node can only be connected by at most one gep edge!");
538
538
  SVFVar::iterator it = geps.begin();
539
539
  const SVFStmt* edge = *it;
540
- assert(SVFUtil::isa<NormalGepPE>(edge) && "not a get edge??");
541
- const NormalGepPE* gepEdge = SVFUtil::cast<NormalGepPE>(edge);
540
+ assert(SVFUtil::isa<NormalGepStmt>(edge) && "not a get edge??");
541
+ const NormalGepStmt* gepEdge = SVFUtil::cast<NormalGepStmt>(edge);
542
542
  return gepEdge->getLocationSet();
543
543
  }
544
544
 
@@ -558,81 +558,81 @@ void SVFIR::print()
558
558
  {
559
559
 
560
560
  outs() << "-------------------SVFIR------------------------------------\n";
561
- SVFStmt::PAGEdgeSetTy& addrs = pag->getEdgeSet(SVFStmt::Addr);
562
- for (SVFStmt::PAGEdgeSetTy::iterator iter = addrs.begin(), eiter =
561
+ SVFStmt::SVFStmtSetTy& addrs = pag->getSVFStmtSet(SVFStmt::Addr);
562
+ for (SVFStmt::SVFStmtSetTy::iterator iter = addrs.begin(), eiter =
563
563
  addrs.end(); iter != eiter; ++iter)
564
564
  {
565
565
  outs() << (*iter)->getSrcID() << " -- Addr --> " << (*iter)->getDstID()
566
566
  << "\n";
567
567
  }
568
568
 
569
- SVFStmt::PAGEdgeSetTy& copys = pag->getEdgeSet(SVFStmt::Copy);
570
- for (SVFStmt::PAGEdgeSetTy::iterator iter = copys.begin(), eiter =
569
+ SVFStmt::SVFStmtSetTy& copys = pag->getSVFStmtSet(SVFStmt::Copy);
570
+ for (SVFStmt::SVFStmtSetTy::iterator iter = copys.begin(), eiter =
571
571
  copys.end(); iter != eiter; ++iter)
572
572
  {
573
573
  outs() << (*iter)->getSrcID() << " -- Copy --> " << (*iter)->getDstID()
574
574
  << "\n";
575
575
  }
576
576
 
577
- SVFStmt::PAGEdgeSetTy& calls = pag->getEdgeSet(SVFStmt::Call);
578
- for (SVFStmt::PAGEdgeSetTy::iterator iter = calls.begin(), eiter =
577
+ SVFStmt::SVFStmtSetTy& calls = pag->getSVFStmtSet(SVFStmt::Call);
578
+ for (SVFStmt::SVFStmtSetTy::iterator iter = calls.begin(), eiter =
579
579
  calls.end(); iter != eiter; ++iter)
580
580
  {
581
581
  outs() << (*iter)->getSrcID() << " -- Call --> " << (*iter)->getDstID()
582
582
  << "\n";
583
583
  }
584
584
 
585
- SVFStmt::PAGEdgeSetTy& rets = pag->getEdgeSet(SVFStmt::Ret);
586
- for (SVFStmt::PAGEdgeSetTy::iterator iter = rets.begin(), eiter =
585
+ SVFStmt::SVFStmtSetTy& rets = pag->getSVFStmtSet(SVFStmt::Ret);
586
+ for (SVFStmt::SVFStmtSetTy::iterator iter = rets.begin(), eiter =
587
587
  rets.end(); iter != eiter; ++iter)
588
588
  {
589
589
  outs() << (*iter)->getSrcID() << " -- Ret --> " << (*iter)->getDstID()
590
590
  << "\n";
591
591
  }
592
592
 
593
- SVFStmt::PAGEdgeSetTy& tdfks = pag->getEdgeSet(SVFStmt::ThreadFork);
594
- for (SVFStmt::PAGEdgeSetTy::iterator iter = tdfks.begin(), eiter =
593
+ SVFStmt::SVFStmtSetTy& tdfks = pag->getSVFStmtSet(SVFStmt::ThreadFork);
594
+ for (SVFStmt::SVFStmtSetTy::iterator iter = tdfks.begin(), eiter =
595
595
  tdfks.end(); iter != eiter; ++iter)
596
596
  {
597
597
  outs() << (*iter)->getSrcID() << " -- ThreadFork --> "
598
598
  << (*iter)->getDstID() << "\n";
599
599
  }
600
600
 
601
- SVFStmt::PAGEdgeSetTy& tdjns = pag->getEdgeSet(SVFStmt::ThreadJoin);
602
- for (SVFStmt::PAGEdgeSetTy::iterator iter = tdjns.begin(), eiter =
601
+ SVFStmt::SVFStmtSetTy& tdjns = pag->getSVFStmtSet(SVFStmt::ThreadJoin);
602
+ for (SVFStmt::SVFStmtSetTy::iterator iter = tdjns.begin(), eiter =
603
603
  tdjns.end(); iter != eiter; ++iter)
604
604
  {
605
605
  outs() << (*iter)->getSrcID() << " -- ThreadJoin --> "
606
606
  << (*iter)->getDstID() << "\n";
607
607
  }
608
608
 
609
- SVFStmt::PAGEdgeSetTy& ngeps = pag->getEdgeSet(SVFStmt::NormalGep);
610
- for (SVFStmt::PAGEdgeSetTy::iterator iter = ngeps.begin(), eiter =
609
+ SVFStmt::SVFStmtSetTy& ngeps = pag->getSVFStmtSet(SVFStmt::NormalGep);
610
+ for (SVFStmt::SVFStmtSetTy::iterator iter = ngeps.begin(), eiter =
611
611
  ngeps.end(); iter != eiter; ++iter)
612
612
  {
613
- NormalGepPE* gep = SVFUtil::cast<NormalGepPE>(*iter);
613
+ NormalGepStmt* gep = SVFUtil::cast<NormalGepStmt>(*iter);
614
614
  outs() << gep->getSrcID() << " -- NormalGep (" << gep->getOffset()
615
615
  << ") --> " << gep->getDstID() << "\n";
616
616
  }
617
617
 
618
- SVFStmt::PAGEdgeSetTy& vgeps = pag->getEdgeSet(SVFStmt::VariantGep);
619
- for (SVFStmt::PAGEdgeSetTy::iterator iter = vgeps.begin(), eiter =
618
+ SVFStmt::SVFStmtSetTy& vgeps = pag->getSVFStmtSet(SVFStmt::VariantGep);
619
+ for (SVFStmt::SVFStmtSetTy::iterator iter = vgeps.begin(), eiter =
620
620
  vgeps.end(); iter != eiter; ++iter)
621
621
  {
622
622
  outs() << (*iter)->getSrcID() << " -- VariantGep --> "
623
623
  << (*iter)->getDstID() << "\n";
624
624
  }
625
625
 
626
- SVFStmt::PAGEdgeSetTy& loads = pag->getEdgeSet(SVFStmt::Load);
627
- for (SVFStmt::PAGEdgeSetTy::iterator iter = loads.begin(), eiter =
626
+ SVFStmt::SVFStmtSetTy& loads = pag->getSVFStmtSet(SVFStmt::Load);
627
+ for (SVFStmt::SVFStmtSetTy::iterator iter = loads.begin(), eiter =
628
628
  loads.end(); iter != eiter; ++iter)
629
629
  {
630
630
  outs() << (*iter)->getSrcID() << " -- Load --> " << (*iter)->getDstID()
631
631
  << "\n";
632
632
  }
633
633
 
634
- SVFStmt::PAGEdgeSetTy& stores = pag->getEdgeSet(SVFStmt::Store);
635
- for (SVFStmt::PAGEdgeSetTy::iterator iter = stores.begin(), eiter =
634
+ SVFStmt::SVFStmtSetTy& stores = pag->getSVFStmtSet(SVFStmt::Store);
635
+ for (SVFStmt::SVFStmtSetTy::iterator iter = stores.begin(), eiter =
636
636
  stores.end(); iter != eiter; ++iter)
637
637
  {
638
638
  outs() << (*iter)->getSrcID() << " -- Store --> " << (*iter)->getDstID()