svf-tools 1.0.349 → 1.0.353

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 (608) hide show
  1. package/SVF-doxygen/html/html/AndersenSFR_8cpp_source.html +6 -5
  2. package/SVF-doxygen/html/html/AndersenSFR_8h_source.html +2 -2
  3. package/SVF-doxygen/html/html/AndersenStat_8cpp_source.html +16 -16
  4. package/SVF-doxygen/html/html/Andersen_8cpp_source.html +14 -14
  5. package/SVF-doxygen/html/html/Andersen_8h_source.html +13 -13
  6. package/SVF-doxygen/html/html/CHG_8h_source.html +7 -7
  7. package/SVF-doxygen/html/html/CPPUtil_8cpp.html +3 -3
  8. package/SVF-doxygen/html/html/CPPUtil_8cpp_source.html +3 -3
  9. package/SVF-doxygen/html/html/CPPUtil_8h_source.html +1 -1
  10. package/SVF-doxygen/html/html/CSC_8cpp_source.html +4 -4
  11. package/SVF-doxygen/html/html/CSC_8h_source.html +3 -3
  12. package/SVF-doxygen/html/html/Conditions_8cpp_source.html +2 -2
  13. package/SVF-doxygen/html/html/ConsGEdge_8h_source.html +4 -4
  14. package/SVF-doxygen/html/html/ConsGNode_8h_source.html +7 -7
  15. package/SVF-doxygen/html/html/ConsG_8cpp_source.html +45 -46
  16. package/SVF-doxygen/html/html/ConsG_8h_source.html +22 -22
  17. package/SVF-doxygen/html/html/ContextDDA_8cpp_source.html +10 -8
  18. package/SVF-doxygen/html/html/ContextDDA_8h_source.html +5 -5
  19. package/SVF-doxygen/html/html/DCHG_8cpp_source.html +2 -2
  20. package/SVF-doxygen/html/html/DCHG_8h_source.html +4 -4
  21. package/SVF-doxygen/html/html/DDAClient_8cpp_source.html +4 -4
  22. package/SVF-doxygen/html/html/DDAClient_8h_source.html +1 -1
  23. package/SVF-doxygen/html/html/DDAPass_8cpp_source.html +1 -1
  24. package/SVF-doxygen/html/html/DDAStat_8cpp_source.html +2 -2
  25. package/SVF-doxygen/html/html/DDAStat_8h_source.html +1 -1
  26. package/SVF-doxygen/html/html/DDAVFSolver_8h_source.html +3 -3
  27. package/SVF-doxygen/html/html/DPItem_8h_source.html +1 -1
  28. package/SVF-doxygen/html/html/FlowDDA_8cpp_source.html +4 -2
  29. package/SVF-doxygen/html/html/FlowDDA_8h_source.html +1 -1
  30. package/SVF-doxygen/html/html/FlowSensitiveStat_8cpp_source.html +6 -6
  31. package/SVF-doxygen/html/html/FlowSensitiveTBHC_8cpp.html +2 -2
  32. package/SVF-doxygen/html/html/FlowSensitiveTBHC_8cpp_source.html +33 -31
  33. package/SVF-doxygen/html/html/FlowSensitiveTBHC_8h_source.html +17 -17
  34. package/SVF-doxygen/html/html/FlowSensitive_8cpp_source.html +30 -30
  35. package/SVF-doxygen/html/html/FlowSensitive_8h_source.html +40 -40
  36. package/SVF-doxygen/html/html/GenericGraph_8h_source.html +7 -8
  37. package/SVF-doxygen/html/html/Graph2Json_8cpp_source.html +3 -3
  38. package/SVF-doxygen/html/html/ICFGEdge_8h_source.html +2 -2
  39. package/SVF-doxygen/html/html/ICFG_8cpp_source.html +2 -2
  40. package/SVF-doxygen/html/html/IRAnnotator_8h_source.html +5 -5
  41. package/SVF-doxygen/html/html/IRGraph_8cpp_source.html +4 -4
  42. package/SVF-doxygen/html/html/IRGraph_8h_source.html +7 -8
  43. package/SVF-doxygen/html/html/LLVMUtil_8cpp_source.html +2 -2
  44. package/SVF-doxygen/html/html/LocationSet_8cpp_source.html +13 -6
  45. package/SVF-doxygen/html/html/LocationSet_8h_source.html +12 -14
  46. package/SVF-doxygen/html/html/MHP_8cpp.html +2 -2
  47. package/SVF-doxygen/html/html/MHP_8cpp_source.html +2 -2
  48. package/SVF-doxygen/html/html/MSSAMuChi_8h_source.html +4 -5
  49. package/SVF-doxygen/html/html/MTAAnnotator_8cpp_source.html +2 -2
  50. package/SVF-doxygen/html/html/MTAStat_8cpp_source.html +2 -2
  51. package/SVF-doxygen/html/html/MemRegion_8cpp_source.html +8 -8
  52. package/SVF-doxygen/html/html/MemRegion_8h_source.html +5 -6
  53. package/SVF-doxygen/html/html/MemSSA_8cpp_source.html +2 -2
  54. package/SVF-doxygen/html/html/MemSSA_8h_source.html +2 -2
  55. package/SVF-doxygen/html/html/NodeIDAllocator_8cpp_source.html +1 -1
  56. package/SVF-doxygen/html/html/Options_8cpp_source.html +1 -1
  57. package/SVF-doxygen/html/html/PAGBuilderFromFile_8cpp_source.html +4 -4
  58. package/SVF-doxygen/html/html/PAGBuilderFromFile_8h_source.html +3 -3
  59. package/SVF-doxygen/html/html/PTACallGraph_8cpp_source.html +2 -2
  60. package/SVF-doxygen/html/html/PTACallGraph_8h_source.html +4 -5
  61. package/SVF-doxygen/html/html/PTAStat_8cpp_source.html +9 -10
  62. package/SVF-doxygen/html/html/PathCondAllocator_8cpp_source.html +1 -1
  63. package/SVF-doxygen/html/html/PersistentPointsToCache_8h_source.html +1 -1
  64. package/SVF-doxygen/html/html/PointerAnalysisImpl_8cpp_source.html +3 -3
  65. package/SVF-doxygen/html/html/PointerAnalysis_8cpp_source.html +3 -3
  66. package/SVF-doxygen/html/html/PointerAnalysis_8h_source.html +3 -4
  67. package/SVF-doxygen/html/html/SVFBasicTypes_8h.html +4 -4
  68. package/SVF-doxygen/html/html/SVFBasicTypes_8h_source.html +5 -5
  69. package/SVF-doxygen/html/html/SVFGBuilder_8cpp_source.html +7 -8
  70. package/SVF-doxygen/html/html/SVFGBuilder_8h_source.html +8 -8
  71. package/SVF-doxygen/html/html/SVFGOPT_8h_source.html +2 -2
  72. package/SVF-doxygen/html/html/SVFGStat_8cpp_source.html +2 -3
  73. package/SVF-doxygen/html/html/SVFG_8cpp_source.html +8 -8
  74. package/SVF-doxygen/html/html/SVFG_8h_source.html +1 -1
  75. package/SVF-doxygen/html/html/SVFIRBuilder_8cpp_source.html +12 -12
  76. package/SVF-doxygen/html/html/SVFIRBuilder_8h_source.html +53 -55
  77. package/SVF-doxygen/html/html/SVFIR_8cpp_source.html +39 -41
  78. package/SVF-doxygen/html/html/SVFIR_8h_source.html +38 -41
  79. package/SVF-doxygen/html/html/SVFStatements_8cpp_source.html +22 -24
  80. package/SVF-doxygen/html/html/SVFStatements_8h.html +0 -4
  81. package/SVF-doxygen/html/html/SVFStatements_8h_source.html +150 -160
  82. package/SVF-doxygen/html/html/SVFVariables_8cpp_source.html +1 -1
  83. package/SVF-doxygen/html/html/SVFVariables_8h_source.html +101 -100
  84. package/SVF-doxygen/html/html/SaberSVFGBuilder_8cpp_source.html +1 -1
  85. package/SVF-doxygen/html/html/SaberSVFGBuilder_8h_source.html +1 -1
  86. package/SVF-doxygen/html/html/SrcSnkDDA_8cpp_source.html +1 -1
  87. package/SVF-doxygen/html/html/SymbolTableBuilder_8cpp_source.html +2 -2
  88. package/SVF-doxygen/html/html/SymbolTableInfo_8cpp_source.html +6 -6
  89. package/SVF-doxygen/html/html/SymbolTableInfo_8h_source.html +3 -4
  90. package/SVF-doxygen/html/html/ThreadCallGraph_8cpp_source.html +1 -1
  91. package/SVF-doxygen/html/html/TypeAnalysis_8cpp_source.html +2 -2
  92. package/SVF-doxygen/html/html/TypeBasedHeapCloning_8cpp_source.html +14 -13
  93. package/SVF-doxygen/html/html/VFGEdge_8h_source.html +2 -2
  94. package/SVF-doxygen/html/html/VFGNode_8h_source.html +13 -13
  95. package/SVF-doxygen/html/html/VFG_8cpp_source.html +50 -51
  96. package/SVF-doxygen/html/html/VFG_8h_source.html +35 -35
  97. package/SVF-doxygen/html/html/VersionedFlowSensitiveStat_8cpp_source.html +5 -5
  98. package/SVF-doxygen/html/html/VersionedFlowSensitive_8cpp_source.html +6 -6
  99. package/SVF-doxygen/html/html/VersionedFlowSensitive_8h_source.html +5 -5
  100. package/SVF-doxygen/html/html/WPAPass_8cpp_source.html +4 -6
  101. package/SVF-doxygen/html/html/WPAPass_8h_source.html +2 -2
  102. package/SVF-doxygen/html/html/annotated.html +100 -102
  103. package/SVF-doxygen/html/html/classSVF_1_1ActualINSVFGNode-members.html +3 -3
  104. package/SVF-doxygen/html/html/classSVF_1_1ActualINSVFGNode.html +9 -9
  105. package/SVF-doxygen/html/html/classSVF_1_1ActualOUTSVFGNode-members.html +3 -3
  106. package/SVF-doxygen/html/html/classSVF_1_1ActualOUTSVFGNode.html +9 -9
  107. package/SVF-doxygen/html/html/classSVF_1_1ActualParmVFGNode-members.html +3 -3
  108. package/SVF-doxygen/html/html/classSVF_1_1ActualParmVFGNode.html +9 -9
  109. package/SVF-doxygen/html/html/classSVF_1_1ActualRetVFGNode-members.html +3 -3
  110. package/SVF-doxygen/html/html/classSVF_1_1ActualRetVFGNode.html +9 -9
  111. package/SVF-doxygen/html/html/classSVF_1_1AddrCGEdge-members.html +1 -1
  112. package/SVF-doxygen/html/html/classSVF_1_1AddrCGEdge.html +5 -5
  113. package/SVF-doxygen/html/html/classSVF_1_1AddrStmt-members.html +26 -27
  114. package/SVF-doxygen/html/html/classSVF_1_1AddrStmt.html +26 -27
  115. package/SVF-doxygen/html/html/classSVF_1_1AddrVFGNode-members.html +3 -3
  116. package/SVF-doxygen/html/html/classSVF_1_1AddrVFGNode.html +9 -9
  117. package/SVF-doxygen/html/html/classSVF_1_1AliasDDAClient.html +3 -3
  118. package/SVF-doxygen/html/html/classSVF_1_1Andersen-members.html +11 -11
  119. package/SVF-doxygen/html/html/classSVF_1_1Andersen.html +46 -46
  120. package/SVF-doxygen/html/html/classSVF_1_1AndersenBase-members.html +11 -11
  121. package/SVF-doxygen/html/html/classSVF_1_1AndersenBase.html +64 -64
  122. package/SVF-doxygen/html/html/classSVF_1_1AndersenHCD-members.html +11 -11
  123. package/SVF-doxygen/html/html/classSVF_1_1AndersenHCD.html +29 -29
  124. package/SVF-doxygen/html/html/classSVF_1_1AndersenHLCD-members.html +11 -11
  125. package/SVF-doxygen/html/html/classSVF_1_1AndersenHLCD.html +29 -29
  126. package/SVF-doxygen/html/html/classSVF_1_1AndersenLCD-members.html +11 -11
  127. package/SVF-doxygen/html/html/classSVF_1_1AndersenLCD.html +31 -31
  128. package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD-members.html +11 -11
  129. package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD.html +33 -33
  130. package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR-members.html +12 -12
  131. package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR.html +43 -42
  132. package/SVF-doxygen/html/html/classSVF_1_1AndersenStat.html +18 -18
  133. package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff-members.html +11 -11
  134. package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff.html +31 -31
  135. package/SVF-doxygen/html/html/classSVF_1_1ArgumentVFGNode-members.html +3 -3
  136. package/SVF-doxygen/html/html/classSVF_1_1ArgumentVFGNode.html +11 -11
  137. package/SVF-doxygen/html/html/classSVF_1_1AssignStmt-members.html +30 -31
  138. package/SVF-doxygen/html/html/classSVF_1_1AssignStmt.html +34 -39
  139. package/SVF-doxygen/html/html/classSVF_1_1AssignStmt.png +0 -0
  140. package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl-members.html +1 -1
  141. package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl.html +7 -7
  142. package/SVF-doxygen/html/html/classSVF_1_1BinaryOPStmt-members.html +30 -31
  143. package/SVF-doxygen/html/html/classSVF_1_1BinaryOPStmt.html +32 -33
  144. package/SVF-doxygen/html/html/classSVF_1_1BinaryOPVFGNode-members.html +3 -3
  145. package/SVF-doxygen/html/html/classSVF_1_1BinaryOPVFGNode.html +11 -11
  146. package/SVF-doxygen/html/html/classSVF_1_1BranchStmt-members.html +33 -34
  147. package/SVF-doxygen/html/html/classSVF_1_1BranchStmt.html +47 -48
  148. package/SVF-doxygen/html/html/classSVF_1_1BranchVFGNode-members.html +3 -3
  149. package/SVF-doxygen/html/html/classSVF_1_1BranchVFGNode.html +12 -12
  150. package/SVF-doxygen/html/html/classSVF_1_1CHEdge-members.html +1 -1
  151. package/SVF-doxygen/html/html/classSVF_1_1CHEdge.html +3 -3
  152. package/SVF-doxygen/html/html/classSVF_1_1CHGBuilder.html +3 -3
  153. package/SVF-doxygen/html/html/classSVF_1_1CHGraph-members.html +4 -4
  154. package/SVF-doxygen/html/html/classSVF_1_1CHGraph.html +24 -24
  155. package/SVF-doxygen/html/html/classSVF_1_1CHNode-members.html +3 -3
  156. package/SVF-doxygen/html/html/classSVF_1_1CHNode.html +11 -11
  157. package/SVF-doxygen/html/html/classSVF_1_1CSC-members.html +1 -1
  158. package/SVF-doxygen/html/html/classSVF_1_1CSC.html +11 -11
  159. package/SVF-doxygen/html/html/classSVF_1_1CallCFGEdge-members.html +1 -1
  160. package/SVF-doxygen/html/html/classSVF_1_1CallCFGEdge.html +4 -4
  161. package/SVF-doxygen/html/html/classSVF_1_1CallDirSVFGEdge-members.html +1 -1
  162. package/SVF-doxygen/html/html/classSVF_1_1CallDirSVFGEdge.html +4 -4
  163. package/SVF-doxygen/html/html/classSVF_1_1CallICFGNode-members.html +3 -3
  164. package/SVF-doxygen/html/html/classSVF_1_1CallICFGNode.html +9 -9
  165. package/SVF-doxygen/html/html/classSVF_1_1CallIndSVFGEdge-members.html +1 -1
  166. package/SVF-doxygen/html/html/classSVF_1_1CallIndSVFGEdge.html +4 -4
  167. package/SVF-doxygen/html/html/classSVF_1_1CallPE-members.html +29 -30
  168. package/SVF-doxygen/html/html/classSVF_1_1CallPE.html +35 -36
  169. package/SVF-doxygen/html/html/classSVF_1_1CloneDummyObjVar-members.html +3 -3
  170. package/SVF-doxygen/html/html/classSVF_1_1CloneDummyObjVar.html +20 -20
  171. package/SVF-doxygen/html/html/classSVF_1_1CloneFIObjVar-members.html +3 -3
  172. package/SVF-doxygen/html/html/classSVF_1_1CloneFIObjVar.html +21 -21
  173. package/SVF-doxygen/html/html/classSVF_1_1CloneGepObjVar-members.html +4 -4
  174. package/SVF-doxygen/html/html/classSVF_1_1CloneGepObjVar.html +24 -24
  175. package/SVF-doxygen/html/html/classSVF_1_1CmpStmt-members.html +32 -33
  176. package/SVF-doxygen/html/html/classSVF_1_1CmpStmt.html +33 -34
  177. package/SVF-doxygen/html/html/classSVF_1_1CmpVFGNode-members.html +3 -3
  178. package/SVF-doxygen/html/html/classSVF_1_1CmpVFGNode.html +11 -11
  179. package/SVF-doxygen/html/html/classSVF_1_1CondManager.html +2 -2
  180. package/SVF-doxygen/html/html/classSVF_1_1CondPTAImpl-members.html +1 -1
  181. package/SVF-doxygen/html/html/classSVF_1_1CondPTAImpl.html +3 -3
  182. package/SVF-doxygen/html/html/classSVF_1_1ConstraintEdge-members.html +1 -1
  183. package/SVF-doxygen/html/html/classSVF_1_1ConstraintEdge.html +3 -3
  184. package/SVF-doxygen/html/html/classSVF_1_1ConstraintGraph-members.html +1 -1
  185. package/SVF-doxygen/html/html/classSVF_1_1ConstraintGraph.html +99 -100
  186. package/SVF-doxygen/html/html/classSVF_1_1ConstraintNode-members.html +26 -26
  187. package/SVF-doxygen/html/html/classSVF_1_1ConstraintNode.html +68 -68
  188. package/SVF-doxygen/html/html/classSVF_1_1ContextDDA-members.html +1 -1
  189. package/SVF-doxygen/html/html/classSVF_1_1ContextDDA.html +20 -19
  190. package/SVF-doxygen/html/html/classSVF_1_1CopyCGEdge-members.html +1 -1
  191. package/SVF-doxygen/html/html/classSVF_1_1CopyCGEdge.html +3 -3
  192. package/SVF-doxygen/html/html/classSVF_1_1CopyStmt-members.html +26 -27
  193. package/SVF-doxygen/html/html/classSVF_1_1CopyStmt.html +26 -27
  194. package/SVF-doxygen/html/html/classSVF_1_1CopyVFGNode-members.html +3 -3
  195. package/SVF-doxygen/html/html/classSVF_1_1CopyVFGNode.html +9 -9
  196. package/SVF-doxygen/html/html/classSVF_1_1DCHEdge-members.html +5 -5
  197. package/SVF-doxygen/html/html/classSVF_1_1DCHEdge.html +8 -8
  198. package/SVF-doxygen/html/html/classSVF_1_1DCHGraph.html +7 -7
  199. package/SVF-doxygen/html/html/classSVF_1_1DCHNode-members.html +3 -3
  200. package/SVF-doxygen/html/html/classSVF_1_1DCHNode.html +11 -11
  201. package/SVF-doxygen/html/html/classSVF_1_1DDAClient.html +2 -2
  202. package/SVF-doxygen/html/html/classSVF_1_1DDAPass.html +2 -2
  203. package/SVF-doxygen/html/html/classSVF_1_1DDAStat.html +5 -5
  204. package/SVF-doxygen/html/html/classSVF_1_1DDAVFSolver.html +5 -5
  205. package/SVF-doxygen/html/html/classSVF_1_1DirectSVFGEdge-members.html +1 -1
  206. package/SVF-doxygen/html/html/classSVF_1_1DirectSVFGEdge.html +4 -4
  207. package/SVF-doxygen/html/html/classSVF_1_1DistinctMRG-members.html +1 -1
  208. package/SVF-doxygen/html/html/classSVF_1_1DistinctMRG.html +2 -2
  209. package/SVF-doxygen/html/html/classSVF_1_1DummyObjVar-members.html +3 -3
  210. package/SVF-doxygen/html/html/classSVF_1_1DummyObjVar.html +22 -22
  211. package/SVF-doxygen/html/html/classSVF_1_1DummyValVar-members.html +3 -3
  212. package/SVF-doxygen/html/html/classSVF_1_1DummyValVar.html +22 -22
  213. package/SVF-doxygen/html/html/classSVF_1_1DummyVersionPropSVFGNode-members.html +3 -3
  214. package/SVF-doxygen/html/html/classSVF_1_1DummyVersionPropSVFGNode.html +9 -9
  215. package/SVF-doxygen/html/html/classSVF_1_1FIObjVar-members.html +3 -3
  216. package/SVF-doxygen/html/html/classSVF_1_1FIObjVar.html +23 -23
  217. package/SVF-doxygen/html/html/classSVF_1_1FSMPTA-members.html +13 -13
  218. package/SVF-doxygen/html/html/classSVF_1_1FSMPTA.html +38 -38
  219. package/SVF-doxygen/html/html/classSVF_1_1FlowDDA-members.html +1 -1
  220. package/SVF-doxygen/html/html/classSVF_1_1FlowDDA.html +9 -8
  221. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive-members.html +13 -13
  222. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive.html +173 -175
  223. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveStat.html +22 -22
  224. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveTBHC-members.html +13 -13
  225. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveTBHC.html +100 -99
  226. package/SVF-doxygen/html/html/classSVF_1_1FormalINSVFGNode-members.html +3 -3
  227. package/SVF-doxygen/html/html/classSVF_1_1FormalINSVFGNode.html +9 -9
  228. package/SVF-doxygen/html/html/classSVF_1_1FormalOUTSVFGNode-members.html +3 -3
  229. package/SVF-doxygen/html/html/classSVF_1_1FormalOUTSVFGNode.html +9 -9
  230. package/SVF-doxygen/html/html/classSVF_1_1FormalParmVFGNode-members.html +3 -3
  231. package/SVF-doxygen/html/html/classSVF_1_1FormalParmVFGNode.html +9 -9
  232. package/SVF-doxygen/html/html/classSVF_1_1FormalRetVFGNode-members.html +3 -3
  233. package/SVF-doxygen/html/html/classSVF_1_1FormalRetVFGNode.html +9 -9
  234. package/SVF-doxygen/html/html/classSVF_1_1FunEntryICFGNode-members.html +3 -3
  235. package/SVF-doxygen/html/html/classSVF_1_1FunEntryICFGNode.html +9 -9
  236. package/SVF-doxygen/html/html/classSVF_1_1FunExitICFGNode-members.html +3 -3
  237. package/SVF-doxygen/html/html/classSVF_1_1FunExitICFGNode.html +9 -9
  238. package/SVF-doxygen/html/html/classSVF_1_1GenericEdge-members.html +1 -1
  239. package/SVF-doxygen/html/html/classSVF_1_1GenericEdge.html +7 -7
  240. package/SVF-doxygen/html/html/classSVF_1_1GenericNode-members.html +3 -3
  241. package/SVF-doxygen/html/html/classSVF_1_1GenericNode.html +43 -42
  242. package/SVF-doxygen/html/html/classSVF_1_1GenericNode.png +0 -0
  243. package/SVF-doxygen/html/html/classSVF_1_1GepCGEdge-members.html +1 -1
  244. package/SVF-doxygen/html/html/classSVF_1_1GepCGEdge.html +3 -3
  245. package/SVF-doxygen/html/html/classSVF_1_1GepObjVar-members.html +4 -4
  246. package/SVF-doxygen/html/html/classSVF_1_1GepObjVar.html +52 -52
  247. package/SVF-doxygen/html/html/classSVF_1_1GepStmt-members.html +18 -16
  248. package/SVF-doxygen/html/html/classSVF_1_1GepStmt.html +148 -59
  249. package/SVF-doxygen/html/html/classSVF_1_1GepStmt.png +0 -0
  250. package/SVF-doxygen/html/html/classSVF_1_1GepVFGNode-members.html +3 -3
  251. package/SVF-doxygen/html/html/classSVF_1_1GepVFGNode.html +9 -9
  252. package/SVF-doxygen/html/html/classSVF_1_1GepValVar-members.html +5 -5
  253. package/SVF-doxygen/html/html/classSVF_1_1GepValVar.html +49 -49
  254. package/SVF-doxygen/html/html/classSVF_1_1GlobalICFGNode-members.html +3 -3
  255. package/SVF-doxygen/html/html/classSVF_1_1GlobalICFGNode.html +9 -9
  256. package/SVF-doxygen/html/html/classSVF_1_1HareParForEdge-members.html +1 -1
  257. package/SVF-doxygen/html/html/classSVF_1_1HareParForEdge.html +4 -4
  258. package/SVF-doxygen/html/html/classSVF_1_1ICFG.html +2 -2
  259. package/SVF-doxygen/html/html/classSVF_1_1ICFGEdge-members.html +1 -1
  260. package/SVF-doxygen/html/html/classSVF_1_1ICFGEdge.html +5 -5
  261. package/SVF-doxygen/html/html/classSVF_1_1ICFGNode-members.html +3 -3
  262. package/SVF-doxygen/html/html/classSVF_1_1ICFGNode.html +9 -9
  263. package/SVF-doxygen/html/html/classSVF_1_1ICFGPrinter.html +7 -8
  264. package/SVF-doxygen/html/html/classSVF_1_1ICFGStat.html +1 -1
  265. package/SVF-doxygen/html/html/classSVF_1_1IRAnnotator.html +3 -3
  266. package/SVF-doxygen/html/html/classSVF_1_1IRGraph-members.html +5 -5
  267. package/SVF-doxygen/html/html/classSVF_1_1IRGraph.html +27 -27
  268. package/SVF-doxygen/html/html/classSVF_1_1IndirectSVFGEdge-members.html +1 -1
  269. package/SVF-doxygen/html/html/classSVF_1_1IndirectSVFGEdge.html +4 -4
  270. package/SVF-doxygen/html/html/classSVF_1_1InterDisjointMRG-members.html +1 -1
  271. package/SVF-doxygen/html/html/classSVF_1_1InterDisjointMRG.html +2 -2
  272. package/SVF-doxygen/html/html/classSVF_1_1InterICFGNode-members.html +3 -3
  273. package/SVF-doxygen/html/html/classSVF_1_1InterICFGNode.html +9 -9
  274. package/SVF-doxygen/html/html/classSVF_1_1InterMSSAPHISVFGNode-members.html +3 -3
  275. package/SVF-doxygen/html/html/classSVF_1_1InterMSSAPHISVFGNode.html +9 -9
  276. package/SVF-doxygen/html/html/classSVF_1_1InterPHIVFGNode-members.html +3 -3
  277. package/SVF-doxygen/html/html/classSVF_1_1InterPHIVFGNode.html +9 -9
  278. package/SVF-doxygen/html/html/classSVF_1_1IntraCFGEdge-members.html +1 -1
  279. package/SVF-doxygen/html/html/classSVF_1_1IntraCFGEdge.html +4 -4
  280. package/SVF-doxygen/html/html/classSVF_1_1IntraDirSVFGEdge-members.html +1 -1
  281. package/SVF-doxygen/html/html/classSVF_1_1IntraDirSVFGEdge.html +4 -4
  282. package/SVF-doxygen/html/html/classSVF_1_1IntraDisjointMRG-members.html +1 -1
  283. package/SVF-doxygen/html/html/classSVF_1_1IntraDisjointMRG.html +2 -2
  284. package/SVF-doxygen/html/html/classSVF_1_1IntraICFGNode-members.html +3 -3
  285. package/SVF-doxygen/html/html/classSVF_1_1IntraICFGNode.html +9 -9
  286. package/SVF-doxygen/html/html/classSVF_1_1IntraIndSVFGEdge-members.html +1 -1
  287. package/SVF-doxygen/html/html/classSVF_1_1IntraIndSVFGEdge.html +4 -4
  288. package/SVF-doxygen/html/html/classSVF_1_1IntraMSSAPHISVFGNode-members.html +3 -3
  289. package/SVF-doxygen/html/html/classSVF_1_1IntraMSSAPHISVFGNode.html +9 -9
  290. package/SVF-doxygen/html/html/classSVF_1_1IntraPHIVFGNode-members.html +3 -3
  291. package/SVF-doxygen/html/html/classSVF_1_1IntraPHIVFGNode.html +9 -9
  292. package/SVF-doxygen/html/html/classSVF_1_1LoadCGEdge-members.html +1 -1
  293. package/SVF-doxygen/html/html/classSVF_1_1LoadCGEdge.html +3 -3
  294. package/SVF-doxygen/html/html/classSVF_1_1LoadStmt-members.html +29 -30
  295. package/SVF-doxygen/html/html/classSVF_1_1LoadStmt.html +26 -27
  296. package/SVF-doxygen/html/html/classSVF_1_1LoadVFGNode-members.html +3 -3
  297. package/SVF-doxygen/html/html/classSVF_1_1LoadVFGNode.html +9 -9
  298. package/SVF-doxygen/html/html/classSVF_1_1LocationSet-members.html +12 -12
  299. package/SVF-doxygen/html/html/classSVF_1_1LocationSet.html +120 -150
  300. package/SVF-doxygen/html/html/classSVF_1_1MRGenerator-members.html +1 -1
  301. package/SVF-doxygen/html/html/classSVF_1_1MRGenerator.html +11 -11
  302. package/SVF-doxygen/html/html/classSVF_1_1MRSVFGNode-members.html +3 -3
  303. package/SVF-doxygen/html/html/classSVF_1_1MRSVFGNode.html +9 -9
  304. package/SVF-doxygen/html/html/classSVF_1_1MRVer-members.html +1 -1
  305. package/SVF-doxygen/html/html/classSVF_1_1MRVer.html +8 -8
  306. package/SVF-doxygen/html/html/classSVF_1_1MSSAPHISVFGNode-members.html +3 -3
  307. package/SVF-doxygen/html/html/classSVF_1_1MSSAPHISVFGNode.html +9 -9
  308. package/SVF-doxygen/html/html/classSVF_1_1MTAAnnotator.html +2 -2
  309. package/SVF-doxygen/html/html/classSVF_1_1MTASVFGBuilder-members.html +2 -4
  310. package/SVF-doxygen/html/html/classSVF_1_1MTASVFGBuilder.html +11 -15
  311. package/SVF-doxygen/html/html/classSVF_1_1MTAStat.html +3 -3
  312. package/SVF-doxygen/html/html/classSVF_1_1MemObj-members.html +1 -1
  313. package/SVF-doxygen/html/html/classSVF_1_1MemObj.html +7 -7
  314. package/SVF-doxygen/html/html/classSVF_1_1MemRegion-members.html +1 -1
  315. package/SVF-doxygen/html/html/classSVF_1_1MemRegion.html +8 -8
  316. package/SVF-doxygen/html/html/classSVF_1_1MemSSA.html +6 -6
  317. package/SVF-doxygen/html/html/classSVF_1_1MemSSAStat.html +3 -3
  318. package/SVF-doxygen/html/html/classSVF_1_1MultiOpndStmt-members.html +35 -36
  319. package/SVF-doxygen/html/html/classSVF_1_1MultiOpndStmt.html +41 -42
  320. package/SVF-doxygen/html/html/classSVF_1_1NodeIDAllocator_1_1Clusterer.html +1 -1
  321. package/SVF-doxygen/html/html/classSVF_1_1NormalGepCGEdge-members.html +6 -6
  322. package/SVF-doxygen/html/html/classSVF_1_1NormalGepCGEdge.html +11 -11
  323. package/SVF-doxygen/html/html/classSVF_1_1NormalGepStmt-members.html +3 -3
  324. package/SVF-doxygen/html/html/classSVF_1_1NormalGepStmt.html +17 -17
  325. package/SVF-doxygen/html/html/classSVF_1_1NullPtrVFGNode-members.html +3 -3
  326. package/SVF-doxygen/html/html/classSVF_1_1NullPtrVFGNode.html +9 -9
  327. package/SVF-doxygen/html/html/classSVF_1_1ObjTypeInfo-members.html +1 -1
  328. package/SVF-doxygen/html/html/classSVF_1_1ObjTypeInfo.html +13 -13
  329. package/SVF-doxygen/html/html/classSVF_1_1ObjVar-members.html +3 -3
  330. package/SVF-doxygen/html/html/classSVF_1_1ObjVar.html +27 -27
  331. package/SVF-doxygen/html/html/classSVF_1_1OfflineConsG-members.html +1 -1
  332. package/SVF-doxygen/html/html/classSVF_1_1OfflineConsG.html +6 -6
  333. package/SVF-doxygen/html/html/classSVF_1_1PAGBuilderFromFile-members.html +1 -1
  334. package/SVF-doxygen/html/html/classSVF_1_1PAGBuilderFromFile.html +12 -12
  335. package/SVF-doxygen/html/html/classSVF_1_1PHIVFGNode-members.html +3 -3
  336. package/SVF-doxygen/html/html/classSVF_1_1PHIVFGNode.html +11 -11
  337. package/SVF-doxygen/html/html/classSVF_1_1PTACallGraph-members.html +2 -2
  338. package/SVF-doxygen/html/html/classSVF_1_1PTACallGraph.html +15 -15
  339. package/SVF-doxygen/html/html/classSVF_1_1PTACallGraphEdge-members.html +1 -1
  340. package/SVF-doxygen/html/html/classSVF_1_1PTACallGraphEdge.html +5 -5
  341. package/SVF-doxygen/html/html/classSVF_1_1PTACallGraphNode-members.html +3 -3
  342. package/SVF-doxygen/html/html/classSVF_1_1PTACallGraphNode.html +9 -9
  343. package/SVF-doxygen/html/html/classSVF_1_1PTAStat.html +11 -12
  344. package/SVF-doxygen/html/html/classSVF_1_1PhiStmt-members.html +32 -33
  345. package/SVF-doxygen/html/html/classSVF_1_1PhiStmt.html +32 -33
  346. package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis-members.html +1 -1
  347. package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.html +12 -12
  348. package/SVF-doxygen/html/html/classSVF_1_1RetCFGEdge-members.html +1 -1
  349. package/SVF-doxygen/html/html/classSVF_1_1RetCFGEdge.html +4 -4
  350. package/SVF-doxygen/html/html/classSVF_1_1RetDirSVFGEdge-members.html +1 -1
  351. package/SVF-doxygen/html/html/classSVF_1_1RetDirSVFGEdge.html +4 -4
  352. package/SVF-doxygen/html/html/classSVF_1_1RetICFGNode-members.html +3 -3
  353. package/SVF-doxygen/html/html/classSVF_1_1RetICFGNode.html +9 -9
  354. package/SVF-doxygen/html/html/classSVF_1_1RetIndSVFGEdge-members.html +1 -1
  355. package/SVF-doxygen/html/html/classSVF_1_1RetIndSVFGEdge.html +4 -4
  356. package/SVF-doxygen/html/html/classSVF_1_1RetPE-members.html +29 -30
  357. package/SVF-doxygen/html/html/classSVF_1_1RetPE.html +35 -36
  358. package/SVF-doxygen/html/html/classSVF_1_1RetPN-members.html +3 -3
  359. package/SVF-doxygen/html/html/classSVF_1_1RetPN.html +22 -22
  360. package/SVF-doxygen/html/html/classSVF_1_1SVFBasicBlock-members.html +1 -1
  361. package/SVF-doxygen/html/html/classSVF_1_1SVFBasicBlock.html +3 -3
  362. package/SVF-doxygen/html/html/classSVF_1_1SVFFunction-members.html +1 -1
  363. package/SVF-doxygen/html/html/classSVF_1_1SVFFunction.html +3 -3
  364. package/SVF-doxygen/html/html/classSVF_1_1SVFG-members.html +2 -2
  365. package/SVF-doxygen/html/html/classSVF_1_1SVFG.html +16 -16
  366. package/SVF-doxygen/html/html/classSVF_1_1SVFGBuilder-members.html +2 -4
  367. package/SVF-doxygen/html/html/classSVF_1_1SVFGBuilder.html +33 -79
  368. package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT-members.html +2 -2
  369. package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT.html +10 -10
  370. package/SVF-doxygen/html/html/classSVF_1_1SVFGStat.html +3 -3
  371. package/SVF-doxygen/html/html/classSVF_1_1SVFGlobal-members.html +1 -1
  372. package/SVF-doxygen/html/html/classSVF_1_1SVFGlobal.html +3 -3
  373. package/SVF-doxygen/html/html/classSVF_1_1SVFIR-members.html +10 -10
  374. package/SVF-doxygen/html/html/classSVF_1_1SVFIR.html +110 -111
  375. package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder-members.html +4 -4
  376. package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder.html +152 -151
  377. package/SVF-doxygen/html/html/classSVF_1_1SVFStmt-members.html +26 -27
  378. package/SVF-doxygen/html/html/classSVF_1_1SVFStmt.html +67 -71
  379. package/SVF-doxygen/html/html/classSVF_1_1SVFStmt.png +0 -0
  380. package/SVF-doxygen/html/html/classSVF_1_1SVFValue-members.html +1 -1
  381. package/SVF-doxygen/html/html/classSVF_1_1SVFValue.html +9 -9
  382. package/SVF-doxygen/html/html/classSVF_1_1SVFVar-members.html +3 -3
  383. package/SVF-doxygen/html/html/classSVF_1_1SVFVar.html +15 -15
  384. package/SVF-doxygen/html/html/classSVF_1_1SaberSVFGBuilder-members.html +2 -4
  385. package/SVF-doxygen/html/html/classSVF_1_1SaberSVFGBuilder.html +10 -14
  386. package/SVF-doxygen/html/html/classSVF_1_1SrcSnkDDA.html +4 -4
  387. package/SVF-doxygen/html/html/classSVF_1_1Steensgaard-members.html +11 -11
  388. package/SVF-doxygen/html/html/classSVF_1_1Steensgaard.html +31 -31
  389. package/SVF-doxygen/html/html/classSVF_1_1StmtVFGNode-members.html +3 -3
  390. package/SVF-doxygen/html/html/classSVF_1_1StmtVFGNode.html +12 -12
  391. package/SVF-doxygen/html/html/classSVF_1_1StoreCGEdge-members.html +1 -1
  392. package/SVF-doxygen/html/html/classSVF_1_1StoreCGEdge.html +3 -3
  393. package/SVF-doxygen/html/html/classSVF_1_1StoreStmt-members.html +26 -27
  394. package/SVF-doxygen/html/html/classSVF_1_1StoreStmt.html +27 -28
  395. package/SVF-doxygen/html/html/classSVF_1_1StoreVFGNode-members.html +3 -3
  396. package/SVF-doxygen/html/html/classSVF_1_1StoreVFGNode.html +9 -9
  397. package/SVF-doxygen/html/html/classSVF_1_1SymbolTableBuilder.html +2 -2
  398. package/SVF-doxygen/html/html/classSVF_1_1SymbolTableInfo-members.html +1 -1
  399. package/SVF-doxygen/html/html/classSVF_1_1SymbolTableInfo.html +12 -12
  400. package/SVF-doxygen/html/html/classSVF_1_1TCTEdge-members.html +1 -1
  401. package/SVF-doxygen/html/html/classSVF_1_1TCTEdge.html +3 -3
  402. package/SVF-doxygen/html/html/classSVF_1_1TCTNode-members.html +3 -3
  403. package/SVF-doxygen/html/html/classSVF_1_1TCTNode.html +9 -9
  404. package/SVF-doxygen/html/html/classSVF_1_1TDForkPE-members.html +28 -29
  405. package/SVF-doxygen/html/html/classSVF_1_1TDForkPE.html +28 -29
  406. package/SVF-doxygen/html/html/classSVF_1_1TDJoinPE-members.html +28 -29
  407. package/SVF-doxygen/html/html/classSVF_1_1TDJoinPE.html +28 -29
  408. package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraph-members.html +2 -2
  409. package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraph.html +5 -5
  410. package/SVF-doxygen/html/html/classSVF_1_1ThreadForkEdge-members.html +1 -1
  411. package/SVF-doxygen/html/html/classSVF_1_1ThreadForkEdge.html +4 -4
  412. package/SVF-doxygen/html/html/classSVF_1_1ThreadJoinEdge-members.html +1 -1
  413. package/SVF-doxygen/html/html/classSVF_1_1ThreadJoinEdge.html +4 -4
  414. package/SVF-doxygen/html/html/classSVF_1_1ThreadMHPIndSVFGEdge-members.html +1 -1
  415. package/SVF-doxygen/html/html/classSVF_1_1ThreadMHPIndSVFGEdge.html +4 -4
  416. package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis-members.html +11 -11
  417. package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis.html +31 -31
  418. package/SVF-doxygen/html/html/classSVF_1_1TypeBasedHeapCloning.html +22 -21
  419. package/SVF-doxygen/html/html/classSVF_1_1UnaryOPStmt-members.html +31 -32
  420. package/SVF-doxygen/html/html/classSVF_1_1UnaryOPStmt.html +39 -40
  421. package/SVF-doxygen/html/html/classSVF_1_1UnaryOPVFGNode-members.html +3 -3
  422. package/SVF-doxygen/html/html/classSVF_1_1UnaryOPVFGNode.html +9 -9
  423. package/SVF-doxygen/html/html/classSVF_1_1VFG-members.html +2 -2
  424. package/SVF-doxygen/html/html/classSVF_1_1VFG.html +79 -80
  425. package/SVF-doxygen/html/html/classSVF_1_1VFGEdge-members.html +1 -1
  426. package/SVF-doxygen/html/html/classSVF_1_1VFGEdge.html +5 -5
  427. package/SVF-doxygen/html/html/classSVF_1_1VFGNode-members.html +3 -3
  428. package/SVF-doxygen/html/html/classSVF_1_1VFGNode.html +9 -9
  429. package/SVF-doxygen/html/html/classSVF_1_1ValVar-members.html +3 -3
  430. package/SVF-doxygen/html/html/classSVF_1_1ValVar.html +20 -20
  431. package/SVF-doxygen/html/html/classSVF_1_1VarArgPN-members.html +3 -3
  432. package/SVF-doxygen/html/html/classSVF_1_1VarArgPN.html +22 -22
  433. package/SVF-doxygen/html/html/classSVF_1_1VariantGepCGEdge-members.html +1 -1
  434. package/SVF-doxygen/html/html/classSVF_1_1VariantGepCGEdge.html +3 -3
  435. package/SVF-doxygen/html/html/classSVF_1_1VariantGepStmt-members.html +2 -2
  436. package/SVF-doxygen/html/html/classSVF_1_1VariantGepStmt.html +9 -9
  437. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive-members.html +15 -15
  438. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive.html +58 -58
  439. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitiveStat.html +20 -20
  440. package/SVF-doxygen/html/html/classSVF_1_1WPAPass.html +13 -14
  441. package/SVF-doxygen/html/html/classes.html +95 -93
  442. package/SVF-doxygen/html/html/functions_a.html +19 -16
  443. package/SVF-doxygen/html/html/functions_b.html +5 -11
  444. package/SVF-doxygen/html/html/functions_c.html +22 -22
  445. package/SVF-doxygen/html/html/functions_eval_g.html +2 -1
  446. package/SVF-doxygen/html/html/functions_eval_n.html +0 -1
  447. package/SVF-doxygen/html/html/functions_eval_v.html +0 -1
  448. package/SVF-doxygen/html/html/functions_f.html +3 -3
  449. package/SVF-doxygen/html/html/functions_func.html +20 -17
  450. package/SVF-doxygen/html/html/functions_func_b.html +0 -6
  451. package/SVF-doxygen/html/html/functions_func_c.html +20 -22
  452. package/SVF-doxygen/html/html/functions_func_f.html +1 -1
  453. package/SVF-doxygen/html/html/functions_func_g.html +37 -40
  454. package/SVF-doxygen/html/html/functions_func_i.html +8 -5
  455. package/SVF-doxygen/html/html/functions_func_n.html +0 -3
  456. package/SVF-doxygen/html/html/functions_func_o.html +5 -7
  457. package/SVF-doxygen/html/html/functions_func_r.html +2 -2
  458. package/SVF-doxygen/html/html/functions_func_s.html +1 -1
  459. package/SVF-doxygen/html/html/functions_func_t.html +0 -2
  460. package/SVF-doxygen/html/html/functions_func_v.html +1 -4
  461. package/SVF-doxygen/html/html/functions_g.html +30 -32
  462. package/SVF-doxygen/html/html/functions_i.html +10 -7
  463. package/SVF-doxygen/html/html/functions_l.html +7 -7
  464. package/SVF-doxygen/html/html/functions_m.html +3 -3
  465. package/SVF-doxygen/html/html/functions_n.html +23 -27
  466. package/SVF-doxygen/html/html/functions_o.html +9 -11
  467. package/SVF-doxygen/html/html/functions_p.html +1 -1
  468. package/SVF-doxygen/html/html/functions_r.html +3 -5
  469. package/SVF-doxygen/html/html/functions_s.html +9 -9
  470. package/SVF-doxygen/html/html/functions_t.html +8 -12
  471. package/SVF-doxygen/html/html/functions_type_g.html +3 -3
  472. package/SVF-doxygen/html/html/functions_type_n.html +1 -1
  473. package/SVF-doxygen/html/html/functions_type_o.html +1 -1
  474. package/SVF-doxygen/html/html/functions_v.html +13 -14
  475. package/SVF-doxygen/html/html/functions_vars_a.html +1 -1
  476. package/SVF-doxygen/html/html/functions_vars_f.html +2 -2
  477. package/SVF-doxygen/html/html/functions_vars_m.html +2 -2
  478. package/SVF-doxygen/html/html/functions_vars_n.html +22 -22
  479. package/SVF-doxygen/html/html/functions_vars_t.html +3 -3
  480. package/SVF-doxygen/html/html/functions_vars_v.html +5 -2
  481. package/SVF-doxygen/html/html/hierarchy.html +55 -57
  482. package/SVF-doxygen/html/html/namespaceSVF.html +22 -26
  483. package/SVF-doxygen/html/html/namespaceSVF_1_1SVFUtil.html +1 -1
  484. package/SVF-doxygen/html/html/namespaceSVF_1_1cppUtil.html +5 -5
  485. package/SVF-doxygen/html/html/namespacemembers_s.html +3 -3
  486. package/SVF-doxygen/html/html/namespacemembers_type_s.html +3 -3
  487. package/SVF-doxygen/html/html/search/all_1.js +9 -8
  488. package/SVF-doxygen/html/html/search/all_10.js +4 -4
  489. package/SVF-doxygen/html/html/search/all_12.js +3 -3
  490. package/SVF-doxygen/html/html/search/all_13.js +9 -9
  491. package/SVF-doxygen/html/html/search/all_14.js +8 -8
  492. package/SVF-doxygen/html/html/search/all_15.js +1 -1
  493. package/SVF-doxygen/html/html/search/all_16.js +8 -8
  494. package/SVF-doxygen/html/html/search/all_2.js +0 -2
  495. package/SVF-doxygen/html/html/search/all_3.js +1 -1
  496. package/SVF-doxygen/html/html/search/all_6.js +3 -3
  497. package/SVF-doxygen/html/html/search/all_7.js +19 -20
  498. package/SVF-doxygen/html/html/search/all_9.js +3 -2
  499. package/SVF-doxygen/html/html/search/all_c.js +4 -4
  500. package/SVF-doxygen/html/html/search/all_d.js +5 -5
  501. package/SVF-doxygen/html/html/search/all_e.js +21 -22
  502. package/SVF-doxygen/html/html/search/all_f.js +5 -5
  503. package/SVF-doxygen/html/html/search/classes_12.js +0 -1
  504. package/SVF-doxygen/html/html/search/classes_b.js +0 -1
  505. package/SVF-doxygen/html/html/search/enumvalues_12.js +1 -1
  506. package/SVF-doxygen/html/html/search/enumvalues_6.js +1 -1
  507. package/SVF-doxygen/html/html/search/enumvalues_b.js +1 -1
  508. package/SVF-doxygen/html/html/search/functions_0.js +8 -7
  509. package/SVF-doxygen/html/html/search/functions_1.js +0 -2
  510. package/SVF-doxygen/html/html/search/functions_10.js +1 -1
  511. package/SVF-doxygen/html/html/search/functions_11.js +1 -1
  512. package/SVF-doxygen/html/html/search/functions_13.js +1 -2
  513. package/SVF-doxygen/html/html/search/functions_2.js +1 -1
  514. package/SVF-doxygen/html/html/search/functions_5.js +1 -1
  515. package/SVF-doxygen/html/html/search/functions_6.js +16 -17
  516. package/SVF-doxygen/html/html/search/functions_8.js +3 -2
  517. package/SVF-doxygen/html/html/search/functions_a.js +1 -1
  518. package/SVF-doxygen/html/html/search/functions_c.js +0 -1
  519. package/SVF-doxygen/html/html/search/functions_d.js +3 -3
  520. package/SVF-doxygen/html/html/search/functions_e.js +1 -1
  521. package/SVF-doxygen/html/html/search/functions_f.js +2 -2
  522. package/SVF-doxygen/html/html/search/typedefs_11.js +1 -1
  523. package/SVF-doxygen/html/html/search/typedefs_6.js +2 -2
  524. package/SVF-doxygen/html/html/search/typedefs_d.js +1 -1
  525. package/SVF-doxygen/html/html/search/typedefs_e.js +1 -1
  526. package/SVF-doxygen/html/html/search/variables_1.js +1 -1
  527. package/SVF-doxygen/html/html/search/variables_14.js +5 -5
  528. package/SVF-doxygen/html/html/search/variables_15.js +1 -1
  529. package/SVF-doxygen/html/html/search/variables_16.js +3 -2
  530. package/SVF-doxygen/html/html/search/variables_6.js +2 -2
  531. package/SVF-doxygen/html/html/search/variables_d.js +3 -3
  532. package/SVF-doxygen/html/html/search/variables_e.js +19 -19
  533. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01ConstraintGraph_01_5_01_4.html +16 -16
  534. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01IRGraph_01_5_01_4.html +2 -2
  535. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01VFG_01_5_01_4.html +18 -18
  536. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1LocationSet_01_4.html +5 -5
  537. package/SVF-doxygen/html/html/svf-ex_8cpp.html +1 -1
  538. package/SVF-doxygen/html/html/svf-ex_8cpp_source.html +2 -2
  539. package/include/DDA/DDAVFSolver.h +1 -1
  540. package/include/Graphs/CHG.h +6 -6
  541. package/include/Graphs/ConsG.h +2 -2
  542. package/include/Graphs/ConsGEdge.h +1 -1
  543. package/include/Graphs/ConsGNode.h +16 -16
  544. package/include/Graphs/GenericGraph.h +4 -4
  545. package/include/Graphs/IRGraph.h +5 -5
  546. package/include/Graphs/PTACallGraph.h +2 -2
  547. package/include/Graphs/VFG.h +2 -2
  548. package/include/MSSA/MSSAMuChi.h +1 -1
  549. package/include/MSSA/MemRegion.h +2 -2
  550. package/include/MSSA/SVFGBuilder.h +0 -2
  551. package/include/MemoryModel/LocationSet.h +10 -48
  552. package/include/MemoryModel/PAGBuilderFromFile.h +1 -1
  553. package/include/MemoryModel/PointerAnalysis.h +1 -1
  554. package/include/MemoryModel/SVFIR.h +5 -5
  555. package/include/MemoryModel/SVFStatements.h +18 -95
  556. package/include/MemoryModel/SVFVariables.h +9 -6
  557. package/include/MemoryModel/SymbolTableInfo.h +3 -3
  558. package/include/SVF-FE/DCHG.h +1 -1
  559. package/include/SVF-FE/SVFIRBuilder.h +7 -7
  560. package/include/Util/IRAnnotator.h +3 -3
  561. package/include/Util/SVFBasicTypes.h +3 -3
  562. package/include/WPA/Andersen.h +11 -11
  563. package/include/WPA/AndersenSFR.h +1 -1
  564. package/include/WPA/CSC.h +1 -1
  565. package/include/WPA/FlowSensitive.h +13 -13
  566. package/include/WPA/VersionedFlowSensitive.h +2 -2
  567. package/lib/DDA/ContextDDA.cpp +4 -5
  568. package/lib/DDA/DDAClient.cpp +6 -6
  569. package/lib/DDA/DDAStat.cpp +1 -1
  570. package/lib/DDA/FlowDDA.cpp +4 -5
  571. package/lib/Graphs/ConsG.cpp +30 -35
  572. package/lib/Graphs/ICFG.cpp +1 -1
  573. package/lib/Graphs/SVFG.cpp +2 -2
  574. package/lib/Graphs/SVFGStat.cpp +2 -2
  575. package/lib/Graphs/VFG.cpp +36 -43
  576. package/lib/MSSA/MemRegion.cpp +2 -2
  577. package/lib/MSSA/SVFGBuilder.cpp +4 -11
  578. package/lib/MTA/MHP.cpp +2 -2
  579. package/lib/MTA/MTAAnnotator.cpp +3 -3
  580. package/lib/MemoryModel/LocationSet.cpp +49 -9
  581. package/lib/MemoryModel/PAGBuilderFromFile.cpp +3 -3
  582. package/lib/MemoryModel/PointerAnalysisImpl.cpp +1 -1
  583. package/lib/MemoryModel/SVFIR.cpp +27 -35
  584. package/lib/MemoryModel/SVFStatements.cpp +0 -22
  585. package/lib/MemoryModel/SVFVariables.cpp +1 -1
  586. package/lib/MemoryModel/SymbolTableInfo.cpp +4 -4
  587. package/lib/SABER/SrcSnkDDA.cpp +2 -2
  588. package/lib/SVF-FE/CPPUtil.cpp +6 -6
  589. package/lib/SVF-FE/DCHG.cpp +1 -1
  590. package/lib/SVF-FE/Graph2Json.cpp +24 -27
  591. package/lib/SVF-FE/LLVMUtil.cpp +1 -1
  592. package/lib/SVF-FE/SVFIRBuilder.cpp +14 -13
  593. package/lib/SVF-FE/SymbolTableBuilder.cpp +1 -1
  594. package/lib/Util/Conditions.cpp +1 -1
  595. package/lib/Util/Options.cpp +1 -1
  596. package/lib/Util/PTAStat.cpp +9 -9
  597. package/lib/Util/TypeBasedHeapCloning.cpp +6 -6
  598. package/lib/WPA/Andersen.cpp +13 -13
  599. package/lib/WPA/AndersenSFR.cpp +8 -8
  600. package/lib/WPA/AndersenStat.cpp +2 -2
  601. package/lib/WPA/CSC.cpp +6 -6
  602. package/lib/WPA/FlowSensitive.cpp +7 -12
  603. package/lib/WPA/FlowSensitiveStat.cpp +2 -2
  604. package/lib/WPA/FlowSensitiveTBHC.cpp +6 -9
  605. package/lib/WPA/TypeAnalysis.cpp +3 -3
  606. package/lib/WPA/WPAPass.cpp +1 -9
  607. package/package.json +1 -1
  608. package/tools/Example/svf-ex.cpp +1 -1
@@ -66,16 +66,16 @@ $(function() {
66
66
  <div class="title">svf-ex.cpp</div> </div>
67
67
  </div><!--header-->
68
68
  <div class="contents">
69
- <a href="svf-ex_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">//===- svf-ex.cpp -- A driver example of SVF-------------------------------------//</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">// SVF: Static Value-Flow Analysis</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// Copyright (C) &lt;2013-&gt; &lt;Yulei Sui&gt;</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// This program is free software: you can redistribute it and/or modify</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">// the Free Software Foundation, either version 3 of the License, or</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// (at your option) any later version.</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// GNU General Public License for more details.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// along with this program. If not, see &lt;http://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">//===-----------------------------------------------------------------------===//</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment"> // A driver program of SVF including usages of SVF APIs</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment"> //</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment"> // Author: Yulei Sui,</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="LLVMUtil_8h.html">SVF-FE/LLVMUtil.h</a>&quot;</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="SVFG_8h.html">Graphs/SVFG.h</a>&quot;</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="Andersen_8h.html">WPA/Andersen.h</a>&quot;</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="SVFIRBuilder_8h.html">SVF-FE/SVFIRBuilder.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="Options_8h.html">Util/Options.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="keyword">using namespace </span><a class="code" href="namespacellvm.html">llvm</a>;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="keyword">using namespace </span><a class="code" href="namespacestd.html">std</a>;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="keyword">using namespace </span><a class="code" href="namespaceSVF.html">SVF</a>;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="keyword">static</span> llvm::cl::opt&lt;std::string&gt; <a class="code" href="svf-ex_8cpp.html#a2d332c504284f0bc181289ee67479845">InputFilename</a>(cl::Positional,</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; llvm::cl::desc(<span class="stringliteral">&quot;&lt;input bitcode&gt;&quot;</span>), llvm::cl::init(<span class="stringliteral">&quot;-&quot;</span>));</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div><div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="svf-ex_8cpp.html#ac5b51f055ec3ed000c95a409a73403a7"> 45</a></span>&#160;<a class="code" href="namespaceSVF.html#ae941b2925716d8ebe14bf190aa8dfd06">AliasResult</a> <a class="code" href="svf-ex_8cpp.html#ac5b51f055ec3ed000c95a409a73403a7">aliasQuery</a>(<a class="code" href="classSVF_1_1PointerAnalysis.html">PointerAnalysis</a>* pta, <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* v1, <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* v2)</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;{</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="keywordflow">return</span> pta-&gt;<a class="code" href="classSVF_1_1PointerAnalysis.html#abd9da46106d820721a24201caaa164e1">alias</a>(v1,v2);</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;}</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div><div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="svf-ex_8cpp.html#ae004a620ad67220b6dd8212a2ad625a9"> 53</a></span>&#160;std::string <a class="code" href="svf-ex_8cpp.html#ae004a620ad67220b6dd8212a2ad625a9">printPts</a>(<a class="code" href="classSVF_1_1PointerAnalysis.html">PointerAnalysis</a>* pta, <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* val)</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;{</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; std::string str;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <a class="code" href="namespaceSVF.html#a726981481ac082dcda3e4921416b65a0">raw_string_ostream</a> rawstr(str);</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> pNodeId = pta-&gt;<a class="code" href="classSVF_1_1PointerAnalysis.html#a240219c2dc4f5cc5f85445e18c79b83b">getPAG</a>()-&gt;<a class="code" href="classSVF_1_1IRGraph.html#abffddd41cc308b9b3bd5ad4a7f8f1624">getValueNode</a>(val);</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a>&amp; pts = pta-&gt;<a class="code" href="classSVF_1_1PointerAnalysis.html#a4dfb43679e9fa794ebad99b6584c32ec">getPts</a>(pNodeId);</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html">PointsTo::iterator</a> ii = pts.<a class="code" href="classSVF_1_1PointsTo.html#aa53962e561399bf493d1f2b9137356f6">begin</a>(), ie = pts.<a class="code" href="classSVF_1_1PointsTo.html#a8f741cdffbf3c5fe0f602cdca677dee6">end</a>();</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; ii != ie; ii++)</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; {</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot; &quot;</span> &lt;&lt; *ii &lt;&lt; <span class="stringliteral">&quot; &quot;</span>;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <a class="code" href="classSVF_1_1SVFVar.html">PAGNode</a>* targetObj = pta-&gt;<a class="code" href="classSVF_1_1PointerAnalysis.html#a240219c2dc4f5cc5f85445e18c79b83b">getPAG</a>()-&gt;<a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(*ii);</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="keywordflow">if</span>(targetObj-&gt;<a class="code" href="classSVF_1_1SVFVar.html#a1ace69053c2c4436fd78d5624bd0086a">hasValue</a>())</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; {</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot;(&quot;</span> &lt;&lt;*targetObj-&gt;<a class="code" href="classSVF_1_1SVFVar.html#afaa33caa8d2a306f6741d9d066243e40">getValue</a>() &lt;&lt; <span class="stringliteral">&quot;)\t &quot;</span>;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; }</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; }</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keywordflow">return</span> rawstr.str();</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;}</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;</div><div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="svf-ex_8cpp.html#af45b449c07f1c975eea45d40d1cc37f6"> 80</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="svf-ex_8cpp.html#af45b449c07f1c975eea45d40d1cc37f6">traverseOnICFG</a>(<a class="code" href="classSVF_1_1ICFG.html">ICFG</a>* icfg, <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a>* inst)</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;{</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <a class="code" href="classSVF_1_1ICFGNode.html">ICFGNode</a>* iNode = icfg-&gt;<a class="code" href="classSVF_1_1ICFG.html#ab7b0b3088b46ad65451905cc4f567a7b">getBlockICFGNode</a>(inst);</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <a class="code" href="classSVF_1_1FIFOWorkList.html">FIFOWorkList&lt;const ICFGNode*&gt;</a> worklist;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set&lt;const ICFGNode*&gt;</a> visited;</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; worklist.<a class="code" href="classSVF_1_1FIFOWorkList.html#ad4c6a48b60c870d63049fe7272cc7eb8">push</a>(iNode);</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="keywordflow">while</span> (!worklist.<a class="code" href="classSVF_1_1FIFOWorkList.html#a7056704c224dfb4b57287fe90c004aa8">empty</a>())</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; {</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1ICFGNode.html">ICFGNode</a>* vNode = worklist.<a class="code" href="classSVF_1_1FIFOWorkList.html#a8fa72918fce7e9c0b2dc34b683a797c6">pop</a>();</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1ICFGNode.html#ac16c5a3227a44d3b9f7c3209156d9df2">ICFGNode::const_iterator</a> it = iNode-&gt;<a class="code" href="classSVF_1_1GenericNode.html#aa4f103330118c8976bf95e4bf53416eb">OutEdgeBegin</a>(), eit =</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; iNode-&gt;<a class="code" href="classSVF_1_1GenericNode.html#a19a3366fd8a58290d0c740c46c3dcb3d">OutEdgeEnd</a>(); it != eit; ++it)</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; {</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <a class="code" href="classSVF_1_1ICFGEdge.html">ICFGEdge</a>* edge = *it;</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <a class="code" href="classSVF_1_1ICFGNode.html">ICFGNode</a>* succNode = edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#aeaa31a2c8479e831b36ce2e2582ceb86">getDstNode</a>();</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keywordflow">if</span> (visited.find(succNode) == visited.end())</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; {</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; visited.insert(succNode);</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; worklist.<a class="code" href="classSVF_1_1FIFOWorkList.html#ad4c6a48b60c870d63049fe7272cc7eb8">push</a>(succNode);</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; }</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; }</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; }</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;}</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;</div><div class="line"><a name="l00108"></a><span class="lineno"><a class="line" href="svf-ex_8cpp.html#a210d797e39e39071d420ba450727d6e4"> 108</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="svf-ex_8cpp.html#a210d797e39e39071d420ba450727d6e4">traverseOnVFG</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFG.html">SVFG</a>* vfg, <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* val)</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;{</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <a class="code" href="classSVF_1_1SVFIR.html">SVFIR</a>* pag = SVFIR::getPAG();</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <a class="code" href="classSVF_1_1SVFVar.html">PAGNode</a>* pNode = pag-&gt;<a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(pag-&gt;<a class="code" href="classSVF_1_1IRGraph.html#abffddd41cc308b9b3bd5ad4a7f8f1624">getValueNode</a>(val));</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">VFGNode</a>* vNode = vfg-&gt;<a class="code" href="classSVF_1_1SVFG.html#a8e7a945f4266e8dc7dcfff2ad6494bfb">getDefSVFGNode</a>(pNode);</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <a class="code" href="classSVF_1_1FIFOWorkList.html">FIFOWorkList&lt;const VFGNode*&gt;</a> worklist;</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set&lt;const VFGNode*&gt;</a> visited;</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; worklist.<a class="code" href="classSVF_1_1FIFOWorkList.html#ad4c6a48b60c870d63049fe7272cc7eb8">push</a>(vNode);</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <span class="keywordflow">while</span> (!worklist.<a class="code" href="classSVF_1_1FIFOWorkList.html#a7056704c224dfb4b57287fe90c004aa8">empty</a>())</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; {</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">VFGNode</a>* vNode = worklist.<a class="code" href="classSVF_1_1FIFOWorkList.html#a8fa72918fce7e9c0b2dc34b683a797c6">pop</a>();</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1VFGNode.html#a3c558955f60c237c558d8faafed781e8">VFGNode::const_iterator</a> it = vNode-&gt;<a class="code" href="classSVF_1_1GenericNode.html#aa4f103330118c8976bf95e4bf53416eb">OutEdgeBegin</a>(), eit =</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; vNode-&gt;<a class="code" href="classSVF_1_1GenericNode.html#a19a3366fd8a58290d0c740c46c3dcb3d">OutEdgeEnd</a>(); it != eit; ++it)</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; {</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <a class="code" href="classSVF_1_1VFGEdge.html">VFGEdge</a>* edge = *it;</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <a class="code" href="classSVF_1_1VFGNode.html">VFGNode</a>* succNode = edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#aeaa31a2c8479e831b36ce2e2582ceb86">getDstNode</a>();</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="keywordflow">if</span> (visited.find(succNode) == visited.end())</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; {</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; visited.insert(succNode);</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; worklist.<a class="code" href="classSVF_1_1FIFOWorkList.html#ad4c6a48b60c870d63049fe7272cc7eb8">push</a>(succNode);</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; }</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; }</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; }</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="keywordflow">for</span>(<a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set&lt;const VFGNode*&gt;::const_iterator</a> it = visited.begin(), eit = visited.end(); it!=eit; ++it)</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; {</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">VFGNode</a>* node = *it;</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; }</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;}</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;</div><div class="line"><a name="l00145"></a><span class="lineno"><a class="line" href="svf-ex_8cpp.html#a3c04138a5bfe5d72780bb7e82a18e627"> 145</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="svf-ex_8cpp.html#a3c04138a5bfe5d72780bb7e82a18e627">main</a>(<span class="keywordtype">int</span> argc, <span class="keywordtype">char</span> ** argv)</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;{</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <span class="keywordtype">int</span> arg_num = 0;</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <span class="keywordtype">char</span> **arg_value = <span class="keyword">new</span> <span class="keywordtype">char</span>*[argc];</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; std::vector&lt;std::string&gt; moduleNameVec;</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a62ca9a79ce7b6960e3fc42d8b183bd50">SVFUtil::processArguments</a>(argc, argv, arg_num, arg_value, moduleNameVec);</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; cl::ParseCommandLineOptions(arg_num, arg_value,</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <span class="stringliteral">&quot;Whole Program Points-to Analysis\n&quot;</span>);</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; </div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <span class="keywordflow">if</span> (Options::WriteAnder == <span class="stringliteral">&quot;ir_annotator&quot;</span>)</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; {</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; LLVMModuleSet::getLLVMModuleSet()-&gt;preProcessBCs(moduleNameVec);</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; }</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <a class="code" href="classSVF_1_1SVFModule.html">SVFModule</a>* svfModule = LLVMModuleSet::getLLVMModuleSet()-&gt;buildSVFModule(moduleNameVec);</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; svfModule-&gt;<a class="code" href="classSVF_1_1SVFModule.html#aa03ab5272652290f30870c6e2d053d98">buildSymbolTableInfo</a>();</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <a class="code" href="classSVF_1_1SVFIRBuilder.html">SVFIRBuilder</a> builder;</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; <a class="code" href="classSVF_1_1SVFIR.html">SVFIR</a>* pag = builder.<a class="code" href="classSVF_1_1SVFIRBuilder.html#aa6d56f9580f76fd09d25ce6cf7541e98">build</a>(svfModule);</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; <a class="code" href="classSVF_1_1Andersen.html">Andersen</a>* ander = AndersenWaveDiff::createAndersenWaveDiff(pag);</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160;</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <a class="code" href="classSVF_1_1PTACallGraph.html">PTACallGraph</a>* callgraph = ander-&gt;<a class="code" href="classSVF_1_1PointerAnalysis.html#a7c9b7e5fe37ae31ba84d167945ca57df">getPTACallGraph</a>();</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <a class="code" href="classSVF_1_1ICFG.html">ICFG</a>* icfg = pag-&gt;<a class="code" href="classSVF_1_1SVFIR.html#aa1943d53e75aef9b014953143c6894da">getICFG</a>();</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <a class="code" href="classSVF_1_1VFG.html">VFG</a>* vfg = <span class="keyword">new</span> <a class="code" href="classSVF_1_1VFG.html">VFG</a>(callgraph);</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; <a class="code" href="classSVF_1_1SVFGBuilder.html">SVFGBuilder</a> svfBuilder(<span class="keyword">true</span>);</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <a class="code" href="classSVF_1_1SVFG.html">SVFG</a>* svfg = svfBuilder.<a class="code" href="classSVF_1_1SVFGBuilder.html#a7a43ae081645eb74fa48c136548f0809">buildFullSVFGWithoutOPT</a>(ander);</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; <span class="comment">// clean up memory</span></div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <span class="keyword">delete</span> vfg;</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <span class="keyword">delete</span> svfg;</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; AndersenWaveDiff::releaseAndersenWaveDiff();</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; SVFIR::releaseSVFIR();</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; LLVMModuleSet::getLLVMModuleSet()-&gt;dumpModulesToFile(<span class="stringliteral">&quot;.svf.bc&quot;</span>);</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <a class="code" href="classSVF_1_1LLVMModuleSet.html#a2f8e91c075d90be66412a079fe73e936">SVF::LLVMModuleSet::releaseLLVMModuleSet</a>();</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; llvm::llvm_shutdown();</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160;}</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160;</div><div class="ttc" id="Andersen_8h_html"><div class="ttname"><a href="Andersen_8h.html">Andersen.h</a></div></div>
69
+ <a href="svf-ex_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">//===- svf-ex.cpp -- A driver example of SVF-------------------------------------//</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">// SVF: Static Value-Flow Analysis</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// Copyright (C) &lt;2013-&gt; &lt;Yulei Sui&gt;</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// This program is free software: you can redistribute it and/or modify</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">// the Free Software Foundation, either version 3 of the License, or</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// (at your option) any later version.</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// GNU General Public License for more details.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// along with this program. If not, see &lt;http://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">//===-----------------------------------------------------------------------===//</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment"> // A driver program of SVF including usages of SVF APIs</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment"> //</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment"> // Author: Yulei Sui,</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="LLVMUtil_8h.html">SVF-FE/LLVMUtil.h</a>&quot;</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="SVFG_8h.html">Graphs/SVFG.h</a>&quot;</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="Andersen_8h.html">WPA/Andersen.h</a>&quot;</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="SVFIRBuilder_8h.html">SVF-FE/SVFIRBuilder.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="Options_8h.html">Util/Options.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="keyword">using namespace </span><a class="code" href="namespacellvm.html">llvm</a>;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="keyword">using namespace </span><a class="code" href="namespacestd.html">std</a>;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="keyword">using namespace </span><a class="code" href="namespaceSVF.html">SVF</a>;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="keyword">static</span> llvm::cl::opt&lt;std::string&gt; <a class="code" href="svf-ex_8cpp.html#a2d332c504284f0bc181289ee67479845">InputFilename</a>(cl::Positional,</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; llvm::cl::desc(<span class="stringliteral">&quot;&lt;input bitcode&gt;&quot;</span>), llvm::cl::init(<span class="stringliteral">&quot;-&quot;</span>));</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div><div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="svf-ex_8cpp.html#ac5b51f055ec3ed000c95a409a73403a7"> 45</a></span>&#160;<a class="code" href="namespaceSVF.html#ae941b2925716d8ebe14bf190aa8dfd06">AliasResult</a> <a class="code" href="svf-ex_8cpp.html#ac5b51f055ec3ed000c95a409a73403a7">aliasQuery</a>(<a class="code" href="classSVF_1_1PointerAnalysis.html">PointerAnalysis</a>* pta, <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* v1, <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* v2)</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;{</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="keywordflow">return</span> pta-&gt;<a class="code" href="classSVF_1_1PointerAnalysis.html#abd9da46106d820721a24201caaa164e1">alias</a>(v1,v2);</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;}</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div><div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="svf-ex_8cpp.html#ae004a620ad67220b6dd8212a2ad625a9"> 53</a></span>&#160;std::string <a class="code" href="svf-ex_8cpp.html#ae004a620ad67220b6dd8212a2ad625a9">printPts</a>(<a class="code" href="classSVF_1_1PointerAnalysis.html">PointerAnalysis</a>* pta, <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* val)</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;{</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; std::string str;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <a class="code" href="namespaceSVF.html#a726981481ac082dcda3e4921416b65a0">raw_string_ostream</a> rawstr(str);</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> pNodeId = pta-&gt;<a class="code" href="classSVF_1_1PointerAnalysis.html#a240219c2dc4f5cc5f85445e18c79b83b">getPAG</a>()-&gt;<a class="code" href="classSVF_1_1IRGraph.html#abffddd41cc308b9b3bd5ad4a7f8f1624">getValueNode</a>(val);</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a>&amp; pts = pta-&gt;<a class="code" href="classSVF_1_1PointerAnalysis.html#a4dfb43679e9fa794ebad99b6584c32ec">getPts</a>(pNodeId);</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html">PointsTo::iterator</a> ii = pts.<a class="code" href="classSVF_1_1PointsTo.html#aa53962e561399bf493d1f2b9137356f6">begin</a>(), ie = pts.<a class="code" href="classSVF_1_1PointsTo.html#a8f741cdffbf3c5fe0f602cdca677dee6">end</a>();</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; ii != ie; ii++)</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; {</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot; &quot;</span> &lt;&lt; *ii &lt;&lt; <span class="stringliteral">&quot; &quot;</span>;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <a class="code" href="classSVF_1_1SVFVar.html">PAGNode</a>* targetObj = pta-&gt;<a class="code" href="classSVF_1_1PointerAnalysis.html#a240219c2dc4f5cc5f85445e18c79b83b">getPAG</a>()-&gt;<a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(*ii);</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="keywordflow">if</span>(targetObj-&gt;<a class="code" href="classSVF_1_1SVFVar.html#a1ace69053c2c4436fd78d5624bd0086a">hasValue</a>())</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; {</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot;(&quot;</span> &lt;&lt;*targetObj-&gt;<a class="code" href="classSVF_1_1SVFVar.html#afaa33caa8d2a306f6741d9d066243e40">getValue</a>() &lt;&lt; <span class="stringliteral">&quot;)\t &quot;</span>;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; }</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; }</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keywordflow">return</span> rawstr.str();</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;}</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;</div><div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="svf-ex_8cpp.html#af45b449c07f1c975eea45d40d1cc37f6"> 80</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="svf-ex_8cpp.html#af45b449c07f1c975eea45d40d1cc37f6">traverseOnICFG</a>(<a class="code" href="classSVF_1_1ICFG.html">ICFG</a>* icfg, <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a>* inst)</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;{</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <a class="code" href="classSVF_1_1ICFGNode.html">ICFGNode</a>* iNode = icfg-&gt;<a class="code" href="classSVF_1_1ICFG.html#ab7b0b3088b46ad65451905cc4f567a7b">getBlockICFGNode</a>(inst);</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <a class="code" href="classSVF_1_1FIFOWorkList.html">FIFOWorkList&lt;const ICFGNode*&gt;</a> worklist;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set&lt;const ICFGNode*&gt;</a> visited;</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; worklist.<a class="code" href="classSVF_1_1FIFOWorkList.html#ad4c6a48b60c870d63049fe7272cc7eb8">push</a>(iNode);</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="keywordflow">while</span> (!worklist.<a class="code" href="classSVF_1_1FIFOWorkList.html#a7056704c224dfb4b57287fe90c004aa8">empty</a>())</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; {</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1ICFGNode.html">ICFGNode</a>* vNode = worklist.<a class="code" href="classSVF_1_1FIFOWorkList.html#a8fa72918fce7e9c0b2dc34b683a797c6">pop</a>();</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1ICFGNode.html#ac16c5a3227a44d3b9f7c3209156d9df2">ICFGNode::const_iterator</a> it = iNode-&gt;<a class="code" href="classSVF_1_1GenericNode.html#aa4f103330118c8976bf95e4bf53416eb">OutEdgeBegin</a>(), eit =</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; iNode-&gt;<a class="code" href="classSVF_1_1GenericNode.html#a19a3366fd8a58290d0c740c46c3dcb3d">OutEdgeEnd</a>(); it != eit; ++it)</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; {</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <a class="code" href="classSVF_1_1ICFGEdge.html">ICFGEdge</a>* edge = *it;</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <a class="code" href="classSVF_1_1ICFGNode.html">ICFGNode</a>* succNode = edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#aeaa31a2c8479e831b36ce2e2582ceb86">getDstNode</a>();</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keywordflow">if</span> (visited.find(succNode) == visited.end())</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; {</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; visited.insert(succNode);</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; worklist.<a class="code" href="classSVF_1_1FIFOWorkList.html#ad4c6a48b60c870d63049fe7272cc7eb8">push</a>(succNode);</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; }</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; }</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; }</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;}</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;</div><div class="line"><a name="l00108"></a><span class="lineno"><a class="line" href="svf-ex_8cpp.html#a210d797e39e39071d420ba450727d6e4"> 108</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="svf-ex_8cpp.html#a210d797e39e39071d420ba450727d6e4">traverseOnVFG</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFG.html">SVFG</a>* vfg, <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* val)</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;{</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <a class="code" href="classSVF_1_1SVFIR.html">SVFIR</a>* pag = SVFIR::getPAG();</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <a class="code" href="classSVF_1_1SVFVar.html">PAGNode</a>* pNode = pag-&gt;<a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(pag-&gt;<a class="code" href="classSVF_1_1IRGraph.html#abffddd41cc308b9b3bd5ad4a7f8f1624">getValueNode</a>(val));</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">VFGNode</a>* vNode = vfg-&gt;<a class="code" href="classSVF_1_1SVFG.html#a8e7a945f4266e8dc7dcfff2ad6494bfb">getDefSVFGNode</a>(pNode);</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <a class="code" href="classSVF_1_1FIFOWorkList.html">FIFOWorkList&lt;const VFGNode*&gt;</a> worklist;</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set&lt;const VFGNode*&gt;</a> visited;</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; worklist.<a class="code" href="classSVF_1_1FIFOWorkList.html#ad4c6a48b60c870d63049fe7272cc7eb8">push</a>(vNode);</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <span class="keywordflow">while</span> (!worklist.<a class="code" href="classSVF_1_1FIFOWorkList.html#a7056704c224dfb4b57287fe90c004aa8">empty</a>())</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; {</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">VFGNode</a>* vNode = worklist.<a class="code" href="classSVF_1_1FIFOWorkList.html#a8fa72918fce7e9c0b2dc34b683a797c6">pop</a>();</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1VFGNode.html#a3c558955f60c237c558d8faafed781e8">VFGNode::const_iterator</a> it = vNode-&gt;<a class="code" href="classSVF_1_1GenericNode.html#aa4f103330118c8976bf95e4bf53416eb">OutEdgeBegin</a>(), eit =</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; vNode-&gt;<a class="code" href="classSVF_1_1GenericNode.html#a19a3366fd8a58290d0c740c46c3dcb3d">OutEdgeEnd</a>(); it != eit; ++it)</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; {</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <a class="code" href="classSVF_1_1VFGEdge.html">VFGEdge</a>* edge = *it;</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <a class="code" href="classSVF_1_1VFGNode.html">VFGNode</a>* succNode = edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#aeaa31a2c8479e831b36ce2e2582ceb86">getDstNode</a>();</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="keywordflow">if</span> (visited.find(succNode) == visited.end())</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; {</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; visited.insert(succNode);</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; worklist.<a class="code" href="classSVF_1_1FIFOWorkList.html#ad4c6a48b60c870d63049fe7272cc7eb8">push</a>(succNode);</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; }</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; }</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; }</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="keywordflow">for</span>(<a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set&lt;const VFGNode*&gt;::const_iterator</a> it = visited.begin(), eit = visited.end(); it!=eit; ++it)</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; {</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">VFGNode</a>* node = *it;</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; }</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;}</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;</div><div class="line"><a name="l00145"></a><span class="lineno"><a class="line" href="svf-ex_8cpp.html#a3c04138a5bfe5d72780bb7e82a18e627"> 145</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="svf-ex_8cpp.html#a3c04138a5bfe5d72780bb7e82a18e627">main</a>(<span class="keywordtype">int</span> argc, <span class="keywordtype">char</span> ** argv)</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;{</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <span class="keywordtype">int</span> arg_num = 0;</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <span class="keywordtype">char</span> **arg_value = <span class="keyword">new</span> <span class="keywordtype">char</span>*[argc];</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; std::vector&lt;std::string&gt; moduleNameVec;</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a62ca9a79ce7b6960e3fc42d8b183bd50">SVFUtil::processArguments</a>(argc, argv, arg_num, arg_value, moduleNameVec);</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; cl::ParseCommandLineOptions(arg_num, arg_value,</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <span class="stringliteral">&quot;Whole Program Points-to Analysis\n&quot;</span>);</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; </div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <span class="keywordflow">if</span> (Options::WriteAnder == <span class="stringliteral">&quot;ir_annotator&quot;</span>)</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; {</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; LLVMModuleSet::getLLVMModuleSet()-&gt;preProcessBCs(moduleNameVec);</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; }</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <a class="code" href="classSVF_1_1SVFModule.html">SVFModule</a>* svfModule = LLVMModuleSet::getLLVMModuleSet()-&gt;buildSVFModule(moduleNameVec);</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; svfModule-&gt;<a class="code" href="classSVF_1_1SVFModule.html#aa03ab5272652290f30870c6e2d053d98">buildSymbolTableInfo</a>();</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <a class="code" href="classSVF_1_1SVFIRBuilder.html">SVFIRBuilder</a> builder;</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; <a class="code" href="classSVF_1_1SVFIR.html">SVFIR</a>* pag = builder.<a class="code" href="classSVF_1_1SVFIRBuilder.html#aa6d56f9580f76fd09d25ce6cf7541e98">build</a>(svfModule);</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; <a class="code" href="classSVF_1_1Andersen.html">Andersen</a>* ander = AndersenWaveDiff::createAndersenWaveDiff(pag);</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160;</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <a class="code" href="classSVF_1_1PTACallGraph.html">PTACallGraph</a>* callgraph = ander-&gt;<a class="code" href="classSVF_1_1PointerAnalysis.html#a7c9b7e5fe37ae31ba84d167945ca57df">getPTACallGraph</a>();</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <a class="code" href="classSVF_1_1ICFG.html">ICFG</a>* icfg = pag-&gt;<a class="code" href="classSVF_1_1SVFIR.html#aa1943d53e75aef9b014953143c6894da">getICFG</a>();</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <a class="code" href="classSVF_1_1VFG.html">VFG</a>* vfg = <span class="keyword">new</span> <a class="code" href="classSVF_1_1VFG.html">VFG</a>(callgraph);</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; <a class="code" href="classSVF_1_1SVFGBuilder.html">SVFGBuilder</a> svfBuilder(<span class="keyword">true</span>);</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <a class="code" href="classSVF_1_1SVFG.html">SVFG</a>* svfg = svfBuilder.<a class="code" href="classSVF_1_1SVFGBuilder.html#a54a713e3989597b11cee70864d0197bd">buildFullSVFG</a>(ander);</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; <span class="comment">// clean up memory</span></div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <span class="keyword">delete</span> vfg;</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <span class="keyword">delete</span> svfg;</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; AndersenWaveDiff::releaseAndersenWaveDiff();</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; SVFIR::releaseSVFIR();</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; LLVMModuleSet::getLLVMModuleSet()-&gt;dumpModulesToFile(<span class="stringliteral">&quot;.svf.bc&quot;</span>);</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <a class="code" href="classSVF_1_1LLVMModuleSet.html#a2f8e91c075d90be66412a079fe73e936">SVF::LLVMModuleSet::releaseLLVMModuleSet</a>();</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; llvm::llvm_shutdown();</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160;}</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160;</div><div class="ttc" id="Andersen_8h_html"><div class="ttname"><a href="Andersen_8h.html">Andersen.h</a></div></div>
70
70
  <div class="ttc" id="classSVF_1_1ICFGEdge_html"><div class="ttname"><a href="classSVF_1_1ICFGEdge.html">SVF::ICFGEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGEdge_8h_source.html#l00042">ICFGEdge.h:42</a></div></div>
71
71
  <div class="ttc" id="classSVF_1_1VFG_html"><div class="ttname"><a href="classSVF_1_1VFG.html">SVF::VFG</a></div><div class="ttdef"><b>Definition:</b> <a href="VFG_8h_source.html#l00050">VFG.h:50</a></div></div>
72
- <div class="ttc" id="classSVF_1_1SVFGBuilder_html_a7a43ae081645eb74fa48c136548f0809"><div class="ttname"><a href="classSVF_1_1SVFGBuilder.html#a7a43ae081645eb74fa48c136548f0809">SVF::SVFGBuilder::buildFullSVFGWithoutOPT</a></div><div class="ttdeci">SVFG * buildFullSVFGWithoutOPT(BVDataPTAImpl *pta)</div><div class="ttdef"><b>Definition:</b> <a href="SVFGBuilder_8cpp_source.html#l00059">SVFGBuilder.cpp:59</a></div></div>
73
72
  <div class="ttc" id="namespacellvm_html"><div class="ttname"><a href="namespacellvm.html">llvm</a></div><div class="ttdef"><b>Definition:</b> <a href="CHG_8h_source.html#l00328">CHG.h:328</a></div></div>
74
73
  <div class="ttc" id="classSVF_1_1PointerAnalysis_html_a4dfb43679e9fa794ebad99b6584c32ec"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a4dfb43679e9fa794ebad99b6584c32ec">SVF::PointerAnalysis::getPts</a></div><div class="ttdeci">virtual const PointsTo &amp; getPts(NodeID ptr)=0</div><div class="ttdoc">Get points-to targets of a pointer. It needs to be implemented in child class. </div></div>
75
74
  <div class="ttc" id="classSVF_1_1SVFIRBuilder_html_aa6d56f9580f76fd09d25ce6cf7541e98"><div class="ttname"><a href="classSVF_1_1SVFIRBuilder.html#aa6d56f9580f76fd09d25ce6cf7541e98">SVF::SVFIRBuilder::build</a></div><div class="ttdeci">virtual SVFIR * build(SVFModule *svfModule)</div><div class="ttdoc">Start building SVFIR here. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIRBuilder_8cpp_source.html#l00047">SVFIRBuilder.cpp:47</a></div></div>
76
75
  <div class="ttc" id="namespaceSVF_html_a43a65e0d33af3c743294f7a1139d2301"><div class="ttname"><a href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">SVF::NodeID</a></div><div class="ttdeci">unsigned NodeID</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8h_source.html#l00018">MTAResultValidator.h:18</a></div></div>
77
76
  <div class="ttc" id="svf-ex_8cpp_html_a2d332c504284f0bc181289ee67479845"><div class="ttname"><a href="svf-ex_8cpp.html#a2d332c504284f0bc181289ee67479845">InputFilename</a></div><div class="ttdeci">static llvm::cl::opt&lt; std::string &gt; InputFilename(cl::Positional, llvm::cl::desc(&quot;&lt;input bitcode&gt;&quot;), llvm::cl::init(&quot;-&quot;))</div></div>
78
77
  <div class="ttc" id="classSVF_1_1GenericNode_html_aa4f103330118c8976bf95e4bf53416eb"><div class="ttname"><a href="classSVF_1_1GenericNode.html#aa4f103330118c8976bf95e4bf53416eb">SVF::GenericNode::OutEdgeBegin</a></div><div class="ttdeci">iterator OutEdgeBegin()</div><div class="ttdoc">iterators </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00202">GenericGraph.h:202</a></div></div>
78
+ <div class="ttc" id="classSVF_1_1SVFGBuilder_html_a54a713e3989597b11cee70864d0197bd"><div class="ttname"><a href="classSVF_1_1SVFGBuilder.html#a54a713e3989597b11cee70864d0197bd">SVF::SVFGBuilder::buildFullSVFG</a></div><div class="ttdeci">SVFG * buildFullSVFG(BVDataPTAImpl *pta)</div><div class="ttdef"><b>Definition:</b> <a href="SVFGBuilder_8cpp_source.html#l00052">SVFGBuilder.cpp:52</a></div></div>
79
79
  <div class="ttc" id="classSVF_1_1SVFG_html_a8e7a945f4266e8dc7dcfff2ad6494bfb"><div class="ttname"><a href="classSVF_1_1SVFG.html#a8e7a945f4266e8dc7dcfff2ad6494bfb">SVF::SVFG::getDefSVFGNode</a></div><div class="ttdeci">const SVFGNode * getDefSVFGNode(const PAGNode *pagNode) const</div><div class="ttdoc">Given a pagNode, return its definition site. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00171">SVFG.h:171</a></div></div>
80
80
  <div class="ttc" id="classSVF_1_1FIFOWorkList_html_a7056704c224dfb4b57287fe90c004aa8"><div class="ttname"><a href="classSVF_1_1FIFOWorkList.html#a7056704c224dfb4b57287fe90c004aa8">SVF::FIFOWorkList::empty</a></div><div class="ttdeci">bool empty() const</div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#l00146">WorkList.h:146</a></div></div>
81
81
  <div class="ttc" id="classSVF_1_1PointsTo_1_1PointsToIterator_html"><div class="ttname"><a href="classSVF_1_1PointsTo_1_1PointsToIterator.html">SVF::PointsTo::PointsToIterator</a></div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8h_source.html#l00174">PointsTo.h:174</a></div></div>
@@ -290,7 +290,7 @@ protected:
290
290
  virtual inline void buildSVFG(SVFIR* pag)
291
291
  {
292
292
  _ander = AndersenWaveDiff::createAndersenWaveDiff(pag);
293
- _svfg = svfgBuilder.buildPTROnlySVFGWithoutOPT(_ander);
293
+ _svfg = svfgBuilder.buildPTROnlySVFG(_ander);
294
294
  _pag = _svfg->getPAG();
295
295
  }
296
296
  /// Reset visited map for next points-to query
@@ -238,18 +238,18 @@ public:
238
238
  void view();
239
239
  void printCH();
240
240
 
241
- inline s32_t getVirtualFunctionID(const SVFFunction* vfn) const
241
+ inline s64_t getVirtualFunctionID(const SVFFunction* vfn) const
242
242
  {
243
- Map<const SVFFunction*, s32_t>::const_iterator it =
243
+ Map<const SVFFunction*, s64_t>::const_iterator it =
244
244
  virtualFunctionToIDMap.find(vfn);
245
245
  if (it != virtualFunctionToIDMap.end())
246
246
  return it->second;
247
247
  else
248
248
  return -1;
249
249
  }
250
- inline const SVFFunction* getVirtualFunctionBasedonID(s32_t id) const
250
+ inline const SVFFunction* getVirtualFunctionBasedonID(s64_t id) const
251
251
  {
252
- Map<const SVFFunction*, s32_t>::const_iterator it, eit;
252
+ Map<const SVFFunction*, s64_t>::const_iterator it, eit;
253
253
  for (it = virtualFunctionToIDMap.begin(), eit =
254
254
  virtualFunctionToIDMap.end(); it != eit; ++it)
255
255
  {
@@ -309,7 +309,7 @@ public:
309
309
  private:
310
310
  SVFModule* svfMod;
311
311
  u32_t classNum;
312
- s32_t vfID;
312
+ s64_t vfID;
313
313
  double buildingCHGTime;
314
314
  Map<std::string, CHNode *> classNameToNodeMap;
315
315
  NameToCHNodesMap classNameToDescendantsMap;
@@ -318,7 +318,7 @@ private:
318
318
  NameToCHNodesMap templateNameToInstancesMap;
319
319
  CallSiteToCHNodesMap csToClassesMap;
320
320
 
321
- Map<const SVFFunction*, s32_t> virtualFunctionToIDMap;
321
+ Map<const SVFFunction*, s64_t> virtualFunctionToIDMap;
322
322
  CallSiteToVTableSetMap csToCHAVtblsMap;
323
323
  CallSiteToVFunSetMap csToCHAVFnsMap;
324
324
  };
@@ -67,7 +67,7 @@ protected:
67
67
 
68
68
  void destroy();
69
69
 
70
- PAGEdge::SVFStmtSetTy& getPAGEdgeSet(PAGEdge::PEDGEK kind)
70
+ SVFStmt::SVFStmtSetTy& getPAGEdgeSet(SVFStmt::PEDGEK kind)
71
71
  {
72
72
  return pag->getPTASVFStmtSet(kind);
73
73
  }
@@ -291,7 +291,7 @@ public:
291
291
  inline bool isZeroOffsettedGepCGEdge(ConstraintEdge *edge) const
292
292
  {
293
293
  if (NormalGepCGEdge *normalGepCGEdge = SVFUtil::dyn_cast<NormalGepCGEdge>(edge))
294
- if (0 == normalGepCGEdge->getFieldOffset())
294
+ if (0 == normalGepCGEdge->getConstantFieldIdx())
295
295
  return true;
296
296
  return false;
297
297
  }
@@ -304,7 +304,7 @@ public:
304
304
  }
305
305
 
306
306
  /// Get location set of the gep edge
307
- inline Size_t getFieldOffset() const
307
+ inline s64_t getConstantFieldIdx() const
308
308
  {
309
309
  return ls.accumulateConstantFieldIdx();
310
310
  }
@@ -364,15 +364,15 @@ public:
364
364
  //{@
365
365
  inline void removeOutgoingAddrEdge(AddrCGEdge* outEdge)
366
366
  {
367
- Size_t num1 = addressOutEdges.erase(outEdge);
368
- Size_t num2 = removeOutgoingEdge(outEdge);
367
+ u32_t num1 = addressOutEdges.erase(outEdge);
368
+ u32_t num2 = removeOutgoingEdge(outEdge);
369
369
  assert((num1 && num2) && "edge not in the set, can not remove!!!");
370
370
  }
371
371
 
372
372
  inline void removeIncomingAddrEdge(AddrCGEdge* inEdge)
373
373
  {
374
- Size_t num1 = addressInEdges.erase(inEdge);
375
- Size_t num2 = removeIncomingEdge(inEdge);
374
+ u32_t num1 = addressInEdges.erase(inEdge);
375
+ u32_t num2 = removeIncomingEdge(inEdge);
376
376
  assert((num1 && num2) && "edge not in the set, can not remove!!!");
377
377
  }
378
378
 
@@ -382,8 +382,8 @@ public:
382
382
  gepOutEdges.erase(outEdge);
383
383
  else
384
384
  copyOutEdges.erase(outEdge);
385
- Size_t num1 = directOutEdges.erase(outEdge);
386
- Size_t num2 = removeOutgoingEdge(outEdge);
385
+ u32_t num1 = directOutEdges.erase(outEdge);
386
+ u32_t num2 = removeOutgoingEdge(outEdge);
387
387
  assert((num1 && num2) && "edge not in the set, can not remove!!!");
388
388
  }
389
389
 
@@ -393,36 +393,36 @@ public:
393
393
  gepInEdges.erase(inEdge);
394
394
  else
395
395
  copyInEdges.erase(inEdge);
396
- Size_t num1 = directInEdges.erase(inEdge);
397
- Size_t num2 = removeIncomingEdge(inEdge);
396
+ u32_t num1 = directInEdges.erase(inEdge);
397
+ u32_t num2 = removeIncomingEdge(inEdge);
398
398
  assert((num1 && num2) && "edge not in the set, can not remove!!!");
399
399
  }
400
400
 
401
401
  inline void removeOutgoingLoadEdge(LoadCGEdge* outEdge)
402
402
  {
403
- Size_t num1 = loadOutEdges.erase(outEdge);
404
- Size_t num2 = removeOutgoingEdge(outEdge);
403
+ u32_t num1 = loadOutEdges.erase(outEdge);
404
+ u32_t num2 = removeOutgoingEdge(outEdge);
405
405
  assert((num1 && num2) && "edge not in the set, can not remove!!!");
406
406
  }
407
407
 
408
408
  inline void removeIncomingLoadEdge(LoadCGEdge* inEdge)
409
409
  {
410
- Size_t num1 = loadInEdges.erase(inEdge);
411
- Size_t num2 = removeIncomingEdge(inEdge);
410
+ u32_t num1 = loadInEdges.erase(inEdge);
411
+ u32_t num2 = removeIncomingEdge(inEdge);
412
412
  assert((num1 && num2) && "edge not in the set, can not remove!!!");
413
413
  }
414
414
 
415
415
  inline void removeOutgoingStoreEdge(StoreCGEdge* outEdge)
416
416
  {
417
- Size_t num1 = storeOutEdges.erase(outEdge);
418
- Size_t num2 = removeOutgoingEdge(outEdge);
417
+ u32_t num1 = storeOutEdges.erase(outEdge);
418
+ u32_t num2 = removeOutgoingEdge(outEdge);
419
419
  assert((num1 && num2) && "edge not in the set, can not remove!!!");
420
420
  }
421
421
 
422
422
  inline void removeIncomingStoreEdge(StoreCGEdge* inEdge)
423
423
  {
424
- Size_t num1 = storeInEdges.erase(inEdge);
425
- Size_t num2 = removeIncomingEdge(inEdge);
424
+ u32_t num1 = storeInEdges.erase(inEdge);
425
+ u32_t num2 = removeIncomingEdge(inEdge);
426
426
  assert((num1 && num2) && "edge not in the set, can not remove!!!");
427
427
  }
428
428
  //@}
@@ -50,7 +50,7 @@ public:
50
50
  /// (1) 0-7 bits encode an edge kind (allow maximum 16 kinds)
51
51
  /// (2) 8-63 bits encode a callsite instruction
52
52
  typedef u64_t GEdgeFlag;
53
- typedef s32_t GEdgeKind;
53
+ typedef s64_t GEdgeKind;
54
54
  private:
55
55
  NodeTy* src; ///< source node
56
56
  NodeTy* dst; ///< destination node
@@ -132,7 +132,7 @@ public:
132
132
  typedef NodeTy NodeType;
133
133
  typedef EdgeTy EdgeType;
134
134
  /// Edge kind
135
- typedef s32_t GNodeK;
135
+ typedef s64_t GNodeK;
136
136
  typedef OrderedSet<EdgeType*, typename EdgeType::equalGEdge> GEdgeSetTy;
137
137
  /// Edge iterator
138
138
  ///@{
@@ -284,13 +284,13 @@ public:
284
284
 
285
285
  /// Remove incoming and outgoing edges
286
286
  ///@{
287
- inline Size_t removeIncomingEdge(EdgeType* edge)
287
+ inline u32_t removeIncomingEdge(EdgeType* edge)
288
288
  {
289
289
  iterator it = InEdges.find(edge);
290
290
  assert(it != InEdges.end() && "can not find in edge in SVFG node");
291
291
  return InEdges.erase(edge);
292
292
  }
293
- inline Size_t removeOutgoingEdge(EdgeType* edge)
293
+ inline u32_t removeOutgoingEdge(EdgeType* edge)
294
294
  {
295
295
  iterator it = OutEdges.find(edge);
296
296
  assert(it != OutEdges.end() && "can not find out edge in SVFG node");
@@ -166,11 +166,11 @@ public:
166
166
  return symInfo->getConstantObj();
167
167
  }
168
168
 
169
- inline Size_t getValueNodeNum() const
169
+ inline u32_t getValueNodeNum() const
170
170
  {
171
171
  return symInfo->valSyms().size();
172
172
  }
173
- inline Size_t getObjectNodeNum() const
173
+ inline u32_t getObjectNodeNum() const
174
174
  {
175
175
  return symInfo->idToObjMap().size();
176
176
  }
@@ -183,15 +183,15 @@ public:
183
183
  nodeNumAfterPAGBuild = num;
184
184
  }
185
185
 
186
- inline Size_t getPAGNodeNum() const
186
+ inline u32_t getPAGNodeNum() const
187
187
  {
188
188
  return nodeNum;
189
189
  }
190
- inline Size_t getPAGEdgeNum() const
190
+ inline u32_t getPAGEdgeNum() const
191
191
  {
192
192
  return edgeNum;
193
193
  }
194
- inline Size_t getPTAPAGEdgeNum() const
194
+ inline u32_t getPTAPAGEdgeNum() const
195
195
  {
196
196
  return totalPTAPAGEdge;
197
197
  }
@@ -251,7 +251,7 @@ protected:
251
251
  CallInstToCallGraphEdgesMap callinstToCallGraphEdgesMap; ///< Map a call instruction to its corresponding call edges
252
252
 
253
253
  NodeID callGraphNodeNum;
254
- Size_t numOfResolvedIndCallEdge;
254
+ u32_t numOfResolvedIndCallEdge;
255
255
 
256
256
  /// Clean up memory
257
257
  void destroy();
@@ -297,7 +297,7 @@ public:
297
297
  return totalCallSiteNum;
298
298
  }
299
299
 
300
- inline Size_t getNumOfResolvedIndCallEdge() const
300
+ inline u32_t getNumOfResolvedIndCallEdge() const
301
301
  {
302
302
  return numOfResolvedIndCallEdge;
303
303
  }
@@ -427,7 +427,7 @@ protected:
427
427
  void addVFGNodes();
428
428
 
429
429
  /// Get PAGEdge set
430
- virtual inline PAGEdge::SVFStmtSetTy& getPAGEdgeSet(PAGEdge::PEDGEK kind)
430
+ virtual inline SVFStmt::SVFStmtSetTy& getPAGEdgeSet(SVFStmt::PEDGEK kind)
431
431
  {
432
432
  if (isPtrOnlySVFG())
433
433
  return pag->getPTASVFStmtSet(kind);
@@ -435,7 +435,7 @@ protected:
435
435
  return pag->getSVFStmtSet(kind);
436
436
  }
437
437
 
438
- virtual inline bool isInterestedPAGNode(const PAGNode* node) const
438
+ virtual inline bool isInterestedPAGNode(const SVFVar* node) const
439
439
  {
440
440
  if (isPtrOnlySVFG())
441
441
  return node->isPointer();
@@ -47,7 +47,7 @@ public:
47
47
  typedef MSSADEF MSSADef;
48
48
  private:
49
49
  /// ver ID 0 is reserved
50
- static Size_t totalVERNum;
50
+ static u32_t totalVERNum;
51
51
  const MemRegion* mr;
52
52
  MRVERSION version;
53
53
  MRVERID vid;
@@ -55,7 +55,7 @@ public:
55
55
  typedef bool Condition;
56
56
  private:
57
57
  /// region ID 0 is reserved
58
- static Size_t totalMRNum;
58
+ static u32_t totalMRNum;
59
59
  MRID rid;
60
60
  const NodeBS cptsSet;
61
61
 
@@ -413,7 +413,7 @@ protected:
413
413
  //@}
414
414
 
415
415
  public:
416
- inline Size_t getMRNum() const
416
+ inline u32_t getMRNum() const
417
417
  {
418
418
  return memRegSet.size();
419
419
  }
@@ -74,9 +74,7 @@ public:
74
74
  static SVFG* globalSvfg;
75
75
 
76
76
  SVFG* buildPTROnlySVFG(BVDataPTAImpl* pta);
77
- SVFG* buildPTROnlySVFGWithoutOPT(BVDataPTAImpl* pta);
78
77
  SVFG* buildFullSVFG(BVDataPTAImpl* pta);
79
- SVFG* buildFullSVFGWithoutOPT(BVDataPTAImpl* pta);
80
78
 
81
79
  /// Clean up
82
80
  static void releaseSVFG()