svf-tools 1.0.560 → 1.0.563

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 (348) hide show
  1. package/README.md +1 -1
  2. package/SVF-doxygen/html/html/AbstractPointsToDS_8h_source.html +43 -43
  3. package/SVF-doxygen/html/html/AndersenPWC_8h_source.html +2 -2
  4. package/SVF-doxygen/html/html/AndersenSCD_8cpp_source.html +1 -1
  5. package/SVF-doxygen/html/html/AndersenStat_8cpp_source.html +17 -17
  6. package/SVF-doxygen/html/html/AndersenWaveDiff_8cpp_source.html +2 -2
  7. package/SVF-doxygen/html/html/Andersen_8cpp_source.html +18 -18
  8. package/SVF-doxygen/html/html/Andersen_8h_source.html +56 -56
  9. package/SVF-doxygen/html/html/CHGBuilder_8cpp_source.html +1 -1
  10. package/SVF-doxygen/html/html/ConditionalPT_8h_source.html +1 -1
  11. package/SVF-doxygen/html/html/ContextDDA_8cpp_source.html +45 -45
  12. package/SVF-doxygen/html/html/ContextDDA_8h_source.html +43 -43
  13. package/SVF-doxygen/html/html/DDAClient_8cpp_source.html +12 -12
  14. package/SVF-doxygen/html/html/DDAClient_8h_source.html +36 -36
  15. package/SVF-doxygen/html/html/DDAPass_8cpp_source.html +19 -19
  16. package/SVF-doxygen/html/html/DDAPass_8h_source.html +21 -21
  17. package/SVF-doxygen/html/html/DDAStat_8cpp_source.html +53 -53
  18. package/SVF-doxygen/html/html/DDAStat_8h_source.html +51 -51
  19. package/SVF-doxygen/html/html/DDAVFSolver_8h_source.html +112 -112
  20. package/SVF-doxygen/html/html/DoubleFreeChecker_8cpp_source.html +2 -2
  21. package/SVF-doxygen/html/html/DoubleFreeChecker_8h_source.html +2 -2
  22. package/SVF-doxygen/html/html/ExtAPI_8cpp_source.html +17 -17
  23. package/SVF-doxygen/html/html/ExtAPI_8h_source.html +17 -17
  24. package/SVF-doxygen/html/html/FSMPTA_8cpp_source.html +40 -40
  25. package/SVF-doxygen/html/html/FSMPTA_8h_source.html +52 -52
  26. package/SVF-doxygen/html/html/FileChecker_8cpp_source.html +2 -2
  27. package/SVF-doxygen/html/html/FileChecker_8h_source.html +2 -2
  28. package/SVF-doxygen/html/html/FlowDDA_8cpp_source.html +2 -2
  29. package/SVF-doxygen/html/html/FlowDDA_8h_source.html +42 -42
  30. package/SVF-doxygen/html/html/FlowSensitiveStat_8cpp_source.html +1 -1
  31. package/SVF-doxygen/html/html/FlowSensitive_8cpp_source.html +3 -3
  32. package/SVF-doxygen/html/html/FlowSensitive_8h_source.html +6 -6
  33. package/SVF-doxygen/html/html/LLVMModule_8cpp_source.html +2 -1
  34. package/SVF-doxygen/html/html/LLVMModule_8h_source.html +10 -10
  35. package/SVF-doxygen/html/html/LeakChecker_8cpp_source.html +4 -4
  36. package/SVF-doxygen/html/html/LeakChecker_8h_source.html +3 -3
  37. package/SVF-doxygen/html/html/LocationSet_8cpp_source.html +1 -1
  38. package/SVF-doxygen/html/html/LocationSet_8h_source.html +1 -1
  39. package/SVF-doxygen/html/html/LockAnalysis_8cpp_source.html +35 -35
  40. package/SVF-doxygen/html/html/LockAnalysis_8h_source.html +114 -114
  41. package/SVF-doxygen/html/html/LockResultValidator_8cpp_source.html +2 -2
  42. package/SVF-doxygen/html/html/LockResultValidator_8h_source.html +7 -7
  43. package/SVF-doxygen/html/html/MHP_8cpp.html +2 -2
  44. package/SVF-doxygen/html/html/MHP_8cpp_source.html +95 -95
  45. package/SVF-doxygen/html/html/MHP_8h_source.html +135 -135
  46. package/SVF-doxygen/html/html/MSSAMuChi_8h_source.html +6 -6
  47. package/SVF-doxygen/html/html/MTAAnnotator_8cpp_source.html +2 -2
  48. package/SVF-doxygen/html/html/MTAAnnotator_8h_source.html +2 -2
  49. package/SVF-doxygen/html/html/MTAResultValidator_8cpp_source.html +10 -10
  50. package/SVF-doxygen/html/html/MTAResultValidator_8h_source.html +6 -6
  51. package/SVF-doxygen/html/html/MTAStat_8cpp_source.html +34 -34
  52. package/SVF-doxygen/html/html/MTAStat_8h_source.html +14 -14
  53. package/SVF-doxygen/html/html/MTA_8cpp_source.html +29 -29
  54. package/SVF-doxygen/html/html/MTA_8h_source.html +24 -24
  55. package/SVF-doxygen/html/html/MemPartition_8cpp_source.html +6 -6
  56. package/SVF-doxygen/html/html/MemPartition_8h_source.html +4 -4
  57. package/SVF-doxygen/html/html/MemRegion_8cpp_source.html +50 -50
  58. package/SVF-doxygen/html/html/MemRegion_8h_source.html +93 -93
  59. package/SVF-doxygen/html/html/MemSSA_8cpp_source.html +60 -60
  60. package/SVF-doxygen/html/html/MemSSA_8h_source.html +103 -103
  61. package/SVF-doxygen/html/html/MutablePointsToDS_8h_source.html +185 -185
  62. package/SVF-doxygen/html/html/NodeIDAllocator_8cpp_source.html +1 -1
  63. package/SVF-doxygen/html/html/PAGBuilderFromFile_8cpp_source.html +1 -1
  64. package/SVF-doxygen/html/html/PAGBuilderFromFile_8h_source.html +1 -1
  65. package/SVF-doxygen/html/html/PCG_8cpp_source.html +14 -14
  66. package/SVF-doxygen/html/html/PCG_8h_source.html +52 -52
  67. package/SVF-doxygen/html/html/PTAStat_8cpp_source.html +7 -4
  68. package/SVF-doxygen/html/html/PTAStat_8h_source.html +3 -3
  69. package/SVF-doxygen/html/html/PersistentPointsToCache_8h_source.html +40 -40
  70. package/SVF-doxygen/html/html/PersistentPointsToDS_8h_source.html +181 -181
  71. package/SVF-doxygen/html/html/PointerAnalysisImpl_8cpp_source.html +15 -15
  72. package/SVF-doxygen/html/html/PointerAnalysisImpl_8h_source.html +30 -30
  73. package/SVF-doxygen/html/html/PointerAnalysis_8cpp_source.html +1 -1
  74. package/SVF-doxygen/html/html/PointerAnalysis_8h_source.html +1 -1
  75. package/SVF-doxygen/html/html/ProgSlice_8cpp_source.html +2 -2
  76. package/SVF-doxygen/html/html/ProgSlice_8h_source.html +60 -60
  77. package/SVF-doxygen/html/html/SVFGBuilder_8cpp_source.html +2 -2
  78. package/SVF-doxygen/html/html/SVFGBuilder_8h_source.html +2 -2
  79. package/SVF-doxygen/html/html/SVFGNode_8h_source.html +1 -1
  80. package/SVF-doxygen/html/html/SVFGOPT_8h_source.html +1 -1
  81. package/SVF-doxygen/html/html/SVFGReadWrite_8cpp_source.html +2 -2
  82. package/SVF-doxygen/html/html/SVFGStat_8cpp_source.html +20 -20
  83. package/SVF-doxygen/html/html/SVFGStat_8h_source.html +2 -2
  84. package/SVF-doxygen/html/html/SVFG_8cpp_source.html +12 -12
  85. package/SVF-doxygen/html/html/SVFG_8h_source.html +5 -5
  86. package/SVF-doxygen/html/html/SVFIRBuilder_8cpp_source.html +2 -1
  87. package/SVF-doxygen/html/html/SVFIRBuilder_8h_source.html +37 -37
  88. package/SVF-doxygen/html/html/SVFModule_8cpp.html +1 -0
  89. package/SVF-doxygen/html/html/SVFModule_8cpp_source.html +6 -2
  90. package/SVF-doxygen/html/html/SVFModule_8h_source.html +1 -1
  91. package/SVF-doxygen/html/html/SVFStat_8cpp_source.html +6 -3
  92. package/SVF-doxygen/html/html/SVFStat_8h_source.html +7 -4
  93. package/SVF-doxygen/html/html/SVFStatements_8h_source.html +1 -1
  94. package/SVF-doxygen/html/html/SVFUtil_8h_source.html +7 -7
  95. package/SVF-doxygen/html/html/SaberAnnotator_8cpp_source.html +3 -3
  96. package/SVF-doxygen/html/html/SaberAnnotator_8h_source.html +2 -2
  97. package/SVF-doxygen/html/html/SaberCheckerAPI_8cpp_source.html +1 -1
  98. package/SVF-doxygen/html/html/SaberCheckerAPI_8h_source.html +1 -1
  99. package/SVF-doxygen/html/html/SaberCondAllocator_8cpp_source.html +1 -1
  100. package/SVF-doxygen/html/html/SaberCondAllocator_8h_source.html +1 -1
  101. package/SVF-doxygen/html/html/SaberSVFGBuilder_8cpp_source.html +3 -3
  102. package/SVF-doxygen/html/html/SaberSVFGBuilder_8h_source.html +1 -1
  103. package/SVF-doxygen/html/html/SrcSnkDDA_8cpp_source.html +13 -13
  104. package/SVF-doxygen/html/html/SrcSnkDDA_8h_source.html +66 -66
  105. package/SVF-doxygen/html/html/SrcSnkSolver_8h_source.html +1 -1
  106. package/SVF-doxygen/html/html/Steensgaard_8cpp_source.html +4 -4
  107. package/SVF-doxygen/html/html/Steensgaard_8h_source.html +6 -6
  108. package/SVF-doxygen/html/html/TCT_8cpp_source.html +44 -44
  109. package/SVF-doxygen/html/html/TCT_8h_source.html +93 -93
  110. package/SVF-doxygen/html/html/TypeAnalysis_8cpp_source.html +1 -1
  111. package/SVF-doxygen/html/html/TypeAnalysis_8h_source.html +2 -2
  112. package/SVF-doxygen/html/html/VersionedFlowSensitiveStat_8cpp_source.html +3 -3
  113. package/SVF-doxygen/html/html/VersionedFlowSensitive_8cpp_source.html +26 -26
  114. package/SVF-doxygen/html/html/VersionedFlowSensitive_8h_source.html +38 -38
  115. package/SVF-doxygen/html/html/WPAPass_8cpp_source.html +5 -5
  116. package/SVF-doxygen/html/html/WPAStat_8h_source.html +2 -2
  117. package/SVF-doxygen/html/html/cfl_8cpp.html +1 -1
  118. package/SVF-doxygen/html/html/cfl_8cpp_source.html +1 -1
  119. package/SVF-doxygen/html/html/classSVF_1_1ActualINSVFGNode.html +2 -2
  120. package/SVF-doxygen/html/html/classSVF_1_1ActualOUTSVFGNode.html +2 -2
  121. package/SVF-doxygen/html/html/classSVF_1_1AliasDDAClient.html +22 -22
  122. package/SVF-doxygen/html/html/classSVF_1_1Andersen.html +106 -106
  123. package/SVF-doxygen/html/html/classSVF_1_1AndersenBase.html +43 -43
  124. package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD.html +24 -24
  125. package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR.html +6 -6
  126. package/SVF-doxygen/html/html/classSVF_1_1AndersenStat-members.html +15 -12
  127. package/SVF-doxygen/html/html/classSVF_1_1AndersenStat.html +25 -18
  128. package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff.html +21 -21
  129. package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl.html +39 -39
  130. package/SVF-doxygen/html/html/classSVF_1_1CFLAlias.html +1 -1
  131. package/SVF-doxygen/html/html/classSVF_1_1CHGBuilder.html +1 -1
  132. package/SVF-doxygen/html/html/classSVF_1_1CallCHI.html +2 -2
  133. package/SVF-doxygen/html/html/classSVF_1_1CallMU.html +2 -2
  134. package/SVF-doxygen/html/html/classSVF_1_1CondPTAImpl.html +1 -1
  135. package/SVF-doxygen/html/html/classSVF_1_1ContextDDA.html +101 -101
  136. package/SVF-doxygen/html/html/classSVF_1_1DDAClient.html +51 -51
  137. package/SVF-doxygen/html/html/classSVF_1_1DDAPass.html +58 -58
  138. package/SVF-doxygen/html/html/classSVF_1_1DDAStat-members.html +14 -11
  139. package/SVF-doxygen/html/html/classSVF_1_1DDAStat.html +173 -166
  140. package/SVF-doxygen/html/html/classSVF_1_1DDAVFSolver.html +288 -288
  141. package/SVF-doxygen/html/html/classSVF_1_1DFPTData.html +26 -26
  142. package/SVF-doxygen/html/html/classSVF_1_1DiffPTData.html +11 -11
  143. package/SVF-doxygen/html/html/classSVF_1_1DistinctMRG.html +4 -4
  144. package/SVF-doxygen/html/html/classSVF_1_1DoubleFreeChecker.html +4 -4
  145. package/SVF-doxygen/html/html/classSVF_1_1EntryCHI.html +2 -2
  146. package/SVF-doxygen/html/html/classSVF_1_1ExtAPI.html +50 -50
  147. package/SVF-doxygen/html/html/classSVF_1_1FSMPTA.html +30 -30
  148. package/SVF-doxygen/html/html/classSVF_1_1FileChecker.html +3 -3
  149. package/SVF-doxygen/html/html/classSVF_1_1FlowDDA.html +72 -72
  150. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive.html +20 -20
  151. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveStat-members.html +15 -12
  152. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveStat.html +9 -2
  153. package/SVF-doxygen/html/html/classSVF_1_1ForkJoinAnalysis.html +218 -218
  154. package/SVF-doxygen/html/html/classSVF_1_1FormalINSVFGNode.html +2 -2
  155. package/SVF-doxygen/html/html/classSVF_1_1FormalOUTSVFGNode.html +2 -2
  156. package/SVF-doxygen/html/html/classSVF_1_1FunptrDDAClient.html +19 -19
  157. package/SVF-doxygen/html/html/classSVF_1_1ICFGStat-members.html +14 -11
  158. package/SVF-doxygen/html/html/classSVF_1_1ICFGStat.html +7 -0
  159. package/SVF-doxygen/html/html/classSVF_1_1InterDisjointMRG.html +1 -1
  160. package/SVF-doxygen/html/html/classSVF_1_1IntraDisjointMRG.html +7 -7
  161. package/SVF-doxygen/html/html/classSVF_1_1LLVMModuleSet.html +36 -33
  162. package/SVF-doxygen/html/html/classSVF_1_1LeakChecker.html +17 -17
  163. package/SVF-doxygen/html/html/classSVF_1_1LoadMU.html +2 -2
  164. package/SVF-doxygen/html/html/classSVF_1_1LockAnalysis.html +337 -337
  165. package/SVF-doxygen/html/html/classSVF_1_1LockResultValidator.html +9 -9
  166. package/SVF-doxygen/html/html/classSVF_1_1MHP.html +248 -248
  167. package/SVF-doxygen/html/html/classSVF_1_1MHPValidator.html +7 -7
  168. package/SVF-doxygen/html/html/classSVF_1_1MRGenerator.html +200 -200
  169. package/SVF-doxygen/html/html/classSVF_1_1MSSACHI.html +2 -2
  170. package/SVF-doxygen/html/html/classSVF_1_1MSSADEF.html +1 -1
  171. package/SVF-doxygen/html/html/classSVF_1_1MSSAMU.html +2 -2
  172. package/SVF-doxygen/html/html/classSVF_1_1MSSAPHI.html +1 -1
  173. package/SVF-doxygen/html/html/classSVF_1_1MSSAPHISVFGNode.html +2 -2
  174. package/SVF-doxygen/html/html/classSVF_1_1MTA.html +54 -54
  175. package/SVF-doxygen/html/html/classSVF_1_1MTAAnnotator.html +4 -4
  176. package/SVF-doxygen/html/html/classSVF_1_1MTAResultValidator.html +22 -22
  177. package/SVF-doxygen/html/html/classSVF_1_1MTASVFGBuilder.html +181 -181
  178. package/SVF-doxygen/html/html/classSVF_1_1MTAStat-members.html +13 -10
  179. package/SVF-doxygen/html/html/classSVF_1_1MTAStat.html +54 -47
  180. package/SVF-doxygen/html/html/classSVF_1_1MemRegion.html +23 -23
  181. package/SVF-doxygen/html/html/classSVF_1_1MemSSA.html +269 -269
  182. package/SVF-doxygen/html/html/classSVF_1_1MemSSAStat-members.html +19 -16
  183. package/SVF-doxygen/html/html/classSVF_1_1MemSSAStat.html +26 -19
  184. package/SVF-doxygen/html/html/classSVF_1_1MutableDFPTData.html +128 -128
  185. package/SVF-doxygen/html/html/classSVF_1_1MutableDiffPTData.html +55 -55
  186. package/SVF-doxygen/html/html/classSVF_1_1MutableIncDFPTData.html +88 -88
  187. package/SVF-doxygen/html/html/classSVF_1_1MutablePTData.html +78 -78
  188. package/SVF-doxygen/html/html/classSVF_1_1MutableVersionedPTData.html +77 -77
  189. package/SVF-doxygen/html/html/classSVF_1_1NodeIDAllocator_1_1Clusterer.html +3 -3
  190. package/SVF-doxygen/html/html/classSVF_1_1PCG.html +131 -131
  191. package/SVF-doxygen/html/html/classSVF_1_1PTAStat-members.html +14 -11
  192. package/SVF-doxygen/html/html/classSVF_1_1PTAStat.html +23 -12
  193. package/SVF-doxygen/html/html/classSVF_1_1PTData.html +32 -32
  194. package/SVF-doxygen/html/html/classSVF_1_1PersistentDFPTData.html +107 -107
  195. package/SVF-doxygen/html/html/classSVF_1_1PersistentDiffPTData.html +66 -66
  196. package/SVF-doxygen/html/html/classSVF_1_1PersistentIncDFPTData.html +84 -84
  197. package/SVF-doxygen/html/html/classSVF_1_1PersistentPTData.html +77 -77
  198. package/SVF-doxygen/html/html/classSVF_1_1PersistentPointsToCache.html +134 -134
  199. package/SVF-doxygen/html/html/classSVF_1_1PersistentVersionedPTData.html +77 -77
  200. package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.html +3 -3
  201. package/SVF-doxygen/html/html/classSVF_1_1ProgSlice.html +161 -161
  202. package/SVF-doxygen/html/html/classSVF_1_1RaceValidator.html +7 -7
  203. package/SVF-doxygen/html/html/classSVF_1_1RetMU.html +2 -2
  204. package/SVF-doxygen/html/html/classSVF_1_1SVFG.html +22 -22
  205. package/SVF-doxygen/html/html/classSVF_1_1SVFGBuilder.html +4 -4
  206. package/SVF-doxygen/html/html/classSVF_1_1SVFGNodeLockSpan.html +23 -23
  207. package/SVF-doxygen/html/html/classSVF_1_1SVFGStat-members.html +26 -23
  208. package/SVF-doxygen/html/html/classSVF_1_1SVFGStat.html +19 -12
  209. package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder.html +128 -122
  210. package/SVF-doxygen/html/html/classSVF_1_1SVFModule.html +5 -2
  211. package/SVF-doxygen/html/html/classSVF_1_1SVFStat-members.html +6 -3
  212. package/SVF-doxygen/html/html/classSVF_1_1SVFStat.html +89 -7
  213. package/SVF-doxygen/html/html/classSVF_1_1SaberAnnotator.html +5 -5
  214. package/SVF-doxygen/html/html/classSVF_1_1SaberSVFGBuilder.html +2 -2
  215. package/SVF-doxygen/html/html/classSVF_1_1SrcSnkDDA.html +157 -157
  216. package/SVF-doxygen/html/html/classSVF_1_1Steensgaard.html +15 -15
  217. package/SVF-doxygen/html/html/classSVF_1_1StoreCHI.html +2 -2
  218. package/SVF-doxygen/html/html/classSVF_1_1TCT.html +264 -264
  219. package/SVF-doxygen/html/html/classSVF_1_1TCTEdge.html +13 -13
  220. package/SVF-doxygen/html/html/classSVF_1_1TCTNode.html +20 -20
  221. package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis.html +1 -1
  222. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive.html +106 -106
  223. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitiveStat-members.html +18 -15
  224. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitiveStat.html +16 -9
  225. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive_1_1SCC.html +1 -1
  226. package/SVF-doxygen/html/html/classSVF_1_1VersionedPTData.html +11 -11
  227. package/SVF-doxygen/html/html/classSVF_1_1WPAPass.html +6 -6
  228. package/SVF-doxygen/html/html/dda_8cpp.html +3 -3
  229. package/SVF-doxygen/html/html/dda_8cpp_source.html +3 -3
  230. package/SVF-doxygen/html/html/functions_func_s.html +1 -1
  231. package/SVF-doxygen/html/html/functions_i.html +3 -3
  232. package/SVF-doxygen/html/html/functions_l.html +6 -6
  233. package/SVF-doxygen/html/html/functions_o.html +15 -15
  234. package/SVF-doxygen/html/html/functions_p.html +1 -1
  235. package/SVF-doxygen/html/html/functions_s.html +9 -11
  236. package/SVF-doxygen/html/html/functions_t.html +17 -10
  237. package/SVF-doxygen/html/html/functions_v.html +6 -6
  238. package/SVF-doxygen/html/html/functions_vars_t.html +9 -0
  239. package/SVF-doxygen/html/html/functions_w.html +11 -11
  240. package/SVF-doxygen/html/html/mta_8cpp.html +3 -3
  241. package/SVF-doxygen/html/html/mta_8cpp_source.html +3 -3
  242. package/SVF-doxygen/html/html/namespaceSVF.html +11 -11
  243. package/SVF-doxygen/html/html/saber_8cpp.html +1 -1
  244. package/SVF-doxygen/html/html/saber_8cpp_source.html +1 -1
  245. package/SVF-doxygen/html/html/search/all_10.js +3 -3
  246. package/SVF-doxygen/html/html/search/all_11.js +2 -2
  247. package/SVF-doxygen/html/html/search/all_12.js +6 -6
  248. package/SVF-doxygen/html/html/search/all_13.js +9 -6
  249. package/SVF-doxygen/html/html/search/all_14.js +1 -1
  250. package/SVF-doxygen/html/html/search/all_15.js +2 -2
  251. package/SVF-doxygen/html/html/search/all_16.js +1 -1
  252. package/SVF-doxygen/html/html/search/all_9.js +1 -1
  253. package/SVF-doxygen/html/html/search/all_c.js +3 -3
  254. package/SVF-doxygen/html/html/search/all_e.js +2 -2
  255. package/SVF-doxygen/html/html/search/all_f.js +3 -3
  256. package/SVF-doxygen/html/html/search/functions_11.js +1 -1
  257. package/SVF-doxygen/html/html/search/variables_13.js +5 -2
  258. package/SVF-doxygen/html/html/search/variables_14.js +1 -1
  259. package/SVF-doxygen/html/html/search/variables_c.js +1 -1
  260. package/SVF-doxygen/html/html/search/variables_e.js +2 -2
  261. package/SVF-doxygen/html/html/structSVF_1_1MemRegion_1_1equalMemRegion.html +3 -3
  262. package/SVF-doxygen/html/html/structSVF_1_1VersionedFlowSensitive_1_1SCC_1_1NodeData.html +4 -4
  263. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01TCT_01_5_01_4.html +15 -15
  264. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01Inverse_3_01SVF_1_1TCTNode_01_5_01_4_01_4.html +1 -1
  265. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1TCTNode_01_5_01_4.html +1 -1
  266. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1TCT_01_5_01_4.html +2 -2
  267. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1SVFGNodeLockSpan_01_4.html +3 -3
  268. package/SVF-doxygen/html/html/svf-ex_8cpp.html +2 -2
  269. package/SVF-doxygen/html/html/svf-ex_8cpp_source.html +2 -2
  270. package/SVF-doxygen/html/html/wpa_8cpp.html +1 -1
  271. package/SVF-doxygen/html/html/wpa_8cpp_source.html +1 -1
  272. package/include/DDA/ContextDDA.h +29 -0
  273. package/include/DDA/DDAClient.h +23 -0
  274. package/include/DDA/DDAPass.h +22 -0
  275. package/include/DDA/DDAStat.h +22 -0
  276. package/include/DDA/DDAVFSolver.h +26 -4
  277. package/include/DDA/FlowDDA.h +29 -0
  278. package/include/MSSA/MSSAMuChi.h +1 -1
  279. package/include/MSSA/MemPartition.h +1 -1
  280. package/include/MSSA/MemRegion.h +5 -1
  281. package/include/MSSA/MemSSA.h +7 -1
  282. package/include/MSSA/SVFGBuilder.h +1 -1
  283. package/include/MTA/FSMPTA.h +26 -0
  284. package/include/MTA/LockAnalysis.h +22 -0
  285. package/include/MTA/MHP.h +22 -0
  286. package/include/MTA/MTA.h +27 -1
  287. package/include/MTA/MTAStat.h +22 -0
  288. package/include/MTA/PCG.h +22 -0
  289. package/include/MTA/TCT.h +22 -0
  290. package/include/MemoryModel/AbstractPointsToDS.h +34 -0
  291. package/include/MemoryModel/ConditionalPT.h +1 -1
  292. package/include/MemoryModel/LocationSet.h +1 -1
  293. package/include/MemoryModel/MutablePointsToDS.h +32 -0
  294. package/include/MemoryModel/PAGBuilderFromFile.h +2 -2
  295. package/include/MemoryModel/PersistentPointsToCache.h +3 -1
  296. package/include/MemoryModel/PersistentPointsToDS.h +10 -0
  297. package/include/MemoryModel/PointerAnalysis.h +1 -1
  298. package/include/MemoryModel/PointerAnalysisImpl.h +1 -1
  299. package/include/MemoryModel/SVFStatements.h +1 -1
  300. package/include/SABER/DoubleFreeChecker.h +1 -1
  301. package/include/SABER/FileChecker.h +1 -1
  302. package/include/SABER/LeakChecker.h +1 -1
  303. package/include/SABER/ProgSlice.h +8 -1
  304. package/include/SABER/SaberAnnotator.h +1 -1
  305. package/include/SABER/SaberCheckerAPI.h +1 -1
  306. package/include/SABER/SaberCondAllocator.h +1 -1
  307. package/include/SABER/SaberSVFGBuilder.h +1 -1
  308. package/include/SABER/SrcSnkDDA.h +8 -1
  309. package/include/SABER/SrcSnkSolver.h +1 -1
  310. package/include/Util/SVFStat.h +4 -0
  311. package/include/WPA/Andersen.h +5 -0
  312. package/include/WPA/TypeAnalysis.h +1 -1
  313. package/include/WPA/VersionedFlowSensitive.h +4 -0
  314. package/lib/DDA/ContextDDA.cpp +22 -0
  315. package/lib/DDA/DDAClient.cpp +22 -0
  316. package/lib/DDA/DDAPass.cpp +23 -0
  317. package/lib/DDA/DDAStat.cpp +22 -0
  318. package/lib/DDA/FlowDDA.cpp +22 -0
  319. package/lib/MTA/FSMPTA.cpp +22 -0
  320. package/lib/MTA/LockAnalysis.cpp +26 -4
  321. package/lib/MTA/MHP.cpp +25 -3
  322. package/lib/MTA/MTA.cpp +23 -0
  323. package/lib/MTA/MTAStat.cpp +22 -0
  324. package/lib/MTA/PCG.cpp +22 -0
  325. package/lib/MTA/TCT.cpp +23 -0
  326. package/lib/MemoryModel/LocationSet.cpp +1 -1
  327. package/lib/MemoryModel/PAGBuilderFromFile.cpp +1 -1
  328. package/lib/MemoryModel/PointerAnalysis.cpp +1 -1
  329. package/lib/MemoryModel/PointerAnalysisImpl.cpp +23 -0
  330. package/lib/SABER/DoubleFreeChecker.cpp +1 -1
  331. package/lib/SABER/FileChecker.cpp +1 -1
  332. package/lib/SABER/LeakChecker.cpp +1 -1
  333. package/lib/SABER/ProgSlice.cpp +1 -1
  334. package/lib/SABER/SaberAnnotator.cpp +1 -1
  335. package/lib/SABER/SaberCheckerAPI.cpp +1 -1
  336. package/lib/SABER/SaberCondAllocator.cpp +1 -1
  337. package/lib/SABER/SaberSVFGBuilder.cpp +1 -1
  338. package/lib/SABER/SrcSnkDDA.cpp +1 -1
  339. package/lib/SVF-FE/LLVMModule.cpp +5 -0
  340. package/lib/SVF-FE/SVFIRBuilder.cpp +26 -0
  341. package/lib/Util/ExtAPI.cpp +42 -0
  342. package/lib/Util/PTAStat.cpp +5 -0
  343. package/lib/Util/SVFModule.cpp +4 -0
  344. package/lib/Util/SVFStat.cpp +5 -0
  345. package/lib/WPA/Steensgaard.cpp +22 -0
  346. package/lib/WPA/TypeAnalysis.cpp +1 -1
  347. package/lib/WPA/WPAPass.cpp +1 -1
  348. package/package.json +1 -1
@@ -112,7 +112,7 @@ struct llvm::DOTGraphTraits&lt; TCT * &gt;</h3>
112
112
 
113
113
  <p>Write value flow graph into dot file for debugging </p>
114
114
 
115
- <p class="definition">Definition at line <a class="el" href="TCT_8cpp_source.html#l00601">601</a> of file <a class="el" href="TCT_8cpp_source.html">TCT.cpp</a>.</p>
115
+ <p class="definition">Definition at line <a class="el" href="TCT_8cpp_source.html#l00624">624</a> of file <a class="el" href="TCT_8cpp_source.html">TCT.cpp</a>.</p>
116
116
  </div><h2 class="groupheader">Member Typedef Documentation</h2>
117
117
  <a id="a73a500d1bdff303590f9dc8786e1f8c0"></a>
118
118
  <h2 class="memtitle"><span class="permalink"><a href="#a73a500d1bdff303590f9dc8786e1f8c0">&#9670;&nbsp;</a></span>ChildIteratorType</h2>
@@ -126,7 +126,7 @@ struct llvm::DOTGraphTraits&lt; TCT * &gt;</h3>
126
126
  </table>
127
127
  </div><div class="memdoc">
128
128
 
129
- <p class="definition">Definition at line <a class="el" href="TCT_8cpp_source.html#l00605">605</a> of file <a class="el" href="TCT_8cpp_source.html">TCT.cpp</a>.</p>
129
+ <p class="definition">Definition at line <a class="el" href="TCT_8cpp_source.html#l00628">628</a> of file <a class="el" href="TCT_8cpp_source.html">TCT.cpp</a>.</p>
130
130
 
131
131
  </div>
132
132
  </div>
@@ -142,7 +142,7 @@ struct llvm::DOTGraphTraits&lt; TCT * &gt;</h3>
142
142
  </table>
143
143
  </div><div class="memdoc">
144
144
 
145
- <p class="definition">Definition at line <a class="el" href="TCT_8cpp_source.html#l00604">604</a> of file <a class="el" href="TCT_8cpp_source.html">TCT.cpp</a>.</p>
145
+ <p class="definition">Definition at line <a class="el" href="TCT_8cpp_source.html#l00627">627</a> of file <a class="el" href="TCT_8cpp_source.html">TCT.cpp</a>.</p>
146
146
 
147
147
  </div>
148
148
  </div>
@@ -171,8 +171,8 @@ struct llvm::DOTGraphTraits&lt; TCT * &gt;</h3>
171
171
  </table>
172
172
  </div><div class="memdoc">
173
173
 
174
- <p class="definition">Definition at line <a class="el" href="TCT_8cpp_source.html#l00606">606</a> of file <a class="el" href="TCT_8cpp_source.html">TCT.cpp</a>.</p>
175
- <div class="fragment"><div class="line"><a name="l00606"></a><span class="lineno"> 606</span>&#160; :</div><div class="line"><a name="l00607"></a><span class="lineno"> 607</span>&#160; DefaultDOTGraphTraits(isSimple)</div><div class="line"><a name="l00608"></a><span class="lineno"> 608</span>&#160; {</div><div class="line"><a name="l00609"></a><span class="lineno"> 609</span>&#160; }</div></div><!-- fragment -->
174
+ <p class="definition">Definition at line <a class="el" href="TCT_8cpp_source.html#l00629">629</a> of file <a class="el" href="TCT_8cpp_source.html">TCT.cpp</a>.</p>
175
+ <div class="fragment"><div class="line"><a name="l00629"></a><span class="lineno"> 629</span>&#160; :</div><div class="line"><a name="l00630"></a><span class="lineno"> 630</span>&#160; DefaultDOTGraphTraits(isSimple)</div><div class="line"><a name="l00631"></a><span class="lineno"> 631</span>&#160; {</div><div class="line"><a name="l00632"></a><span class="lineno"> 632</span>&#160; }</div></div><!-- fragment -->
176
176
  </div>
177
177
  </div>
178
178
  <h2 class="groupheader">Member Function Documentation</h2>
@@ -219,9 +219,9 @@ template&lt;class EdgeIter &gt; </div>
219
219
  </div><div class="memdoc">
220
220
  <p>black edge for direct call while two functions contain indirect calls will be label with red color </p>
221
221
 
222
- <p class="definition">Definition at line <a class="el" href="TCT_8cpp_source.html#l00637">637</a> of file <a class="el" href="TCT_8cpp_source.html">TCT.cpp</a>.</p>
223
- <div class="fragment"><div class="line"><a name="l00638"></a><span class="lineno"> 638</span>&#160; {</div><div class="line"><a name="l00639"></a><span class="lineno"> 639</span>&#160;</div><div class="line"><a name="l00640"></a><span class="lineno"> 640</span>&#160; <a class="code" href="classSVF_1_1TCTEdge.html">TCTEdge</a>* edge = csThreadTree-&gt;<a class="code" href="classSVF_1_1TCT.html#a7b40580939dc63f501a32571806c07bc">getGraphEdge</a>(node, *EI, TCTEdge::ThreadCreateEdge);</div><div class="line"><a name="l00641"></a><span class="lineno"> 641</span>&#160; assert(edge &amp;&amp; <span class="stringliteral">&quot;No edge found!!&quot;</span>);</div><div class="line"><a name="l00643"></a><span class="lineno"> 643</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;color=black&quot;</span>;</div><div class="line"><a name="l00644"></a><span class="lineno"> 644</span>&#160; }</div><div class="ttc" id="classSVF_1_1TCT_html_a7b40580939dc63f501a32571806c07bc"><div class="ttname"><a href="classSVF_1_1TCT.html#a7b40580939dc63f501a32571806c07bc">SVF::TCT::getGraphEdge</a></div><div class="ttdeci">TCTEdge * getGraphEdge(TCTNode *src, TCTNode *dst, TCTEdge::CEDGEK kind)</div><div class="ttdoc">Get call graph edge via nodes. </div><div class="ttdef"><b>Definition:</b> <a href="TCT_8cpp_source.html#l00584">TCT.cpp:584</a></div></div>
224
- <div class="ttc" id="classSVF_1_1TCTEdge_html"><div class="ttname"><a href="classSVF_1_1TCTEdge.html">SVF::TCTEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="TCT_8h_source.html#l00029">TCT.h:29</a></div></div>
222
+ <p class="definition">Definition at line <a class="el" href="TCT_8cpp_source.html#l00660">660</a> of file <a class="el" href="TCT_8cpp_source.html">TCT.cpp</a>.</p>
223
+ <div class="fragment"><div class="line"><a name="l00661"></a><span class="lineno"> 661</span>&#160; {</div><div class="line"><a name="l00662"></a><span class="lineno"> 662</span>&#160;</div><div class="line"><a name="l00663"></a><span class="lineno"> 663</span>&#160; <a class="code" href="classSVF_1_1TCTEdge.html">TCTEdge</a>* edge = csThreadTree-&gt;<a class="code" href="classSVF_1_1TCT.html#a7b40580939dc63f501a32571806c07bc">getGraphEdge</a>(node, *EI, TCTEdge::ThreadCreateEdge);</div><div class="line"><a name="l00664"></a><span class="lineno"> 664</span>&#160; assert(edge &amp;&amp; <span class="stringliteral">&quot;No edge found!!&quot;</span>);</div><div class="line"><a name="l00666"></a><span class="lineno"> 666</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;color=black&quot;</span>;</div><div class="line"><a name="l00667"></a><span class="lineno"> 667</span>&#160; }</div><div class="ttc" id="classSVF_1_1TCT_html_a7b40580939dc63f501a32571806c07bc"><div class="ttname"><a href="classSVF_1_1TCT.html#a7b40580939dc63f501a32571806c07bc">SVF::TCT::getGraphEdge</a></div><div class="ttdeci">TCTEdge * getGraphEdge(TCTNode *src, TCTNode *dst, TCTEdge::CEDGEK kind)</div><div class="ttdoc">Get call graph edge via nodes. </div><div class="ttdef"><b>Definition:</b> <a href="TCT_8cpp_source.html#l00607">TCT.cpp:607</a></div></div>
224
+ <div class="ttc" id="classSVF_1_1TCTEdge_html"><div class="ttname"><a href="classSVF_1_1TCTEdge.html">SVF::TCTEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="TCT_8h_source.html#l00051">TCT.h:51</a></div></div>
225
225
  </div><!-- fragment -->
226
226
  </div>
227
227
  </div>
@@ -251,8 +251,8 @@ template&lt;class EdgeIter &gt; </div>
251
251
 
252
252
  <p>Return name of the graph. </p>
253
253
 
254
- <p class="definition">Definition at line <a class="el" href="TCT_8cpp_source.html#l00612">612</a> of file <a class="el" href="TCT_8cpp_source.html">TCT.cpp</a>.</p>
255
- <div class="fragment"><div class="line"><a name="l00613"></a><span class="lineno"> 613</span>&#160; {</div><div class="line"><a name="l00614"></a><span class="lineno"> 614</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;Thread Create Tree&quot;</span>;</div><div class="line"><a name="l00615"></a><span class="lineno"> 615</span>&#160; }</div></div><!-- fragment -->
254
+ <p class="definition">Definition at line <a class="el" href="TCT_8cpp_source.html#l00635">635</a> of file <a class="el" href="TCT_8cpp_source.html">TCT.cpp</a>.</p>
255
+ <div class="fragment"><div class="line"><a name="l00636"></a><span class="lineno"> 636</span>&#160; {</div><div class="line"><a name="l00637"></a><span class="lineno"> 637</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;Thread Create Tree&quot;</span>;</div><div class="line"><a name="l00638"></a><span class="lineno"> 638</span>&#160; }</div></div><!-- fragment -->
256
256
  </div>
257
257
  </div>
258
258
  <a id="a2b3151a123d6c22dc5d6fa81b3ea4a83"></a>
@@ -289,9 +289,9 @@ template&lt;class EdgeIter &gt; </div>
289
289
  </table>
290
290
  </div><div class="memdoc">
291
291
 
292
- <p class="definition">Definition at line <a class="el" href="TCT_8cpp_source.html#l00622">622</a> of file <a class="el" href="TCT_8cpp_source.html">TCT.cpp</a>.</p>
293
- <div class="fragment"><div class="line"><a name="l00623"></a><span class="lineno"> 623</span>&#160; {</div><div class="line"><a name="l00624"></a><span class="lineno"> 624</span>&#160; <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> attr;</div><div class="line"><a name="l00625"></a><span class="lineno"> 625</span>&#160; <span class="keywordflow">if</span> (node-&gt;<a class="code" href="classSVF_1_1TCTNode.html#a4541cd85dcde2ce789ea411ebb1d89c7">isInloop</a>())</div><div class="line"><a name="l00626"></a><span class="lineno"> 626</span>&#160; {</div><div class="line"><a name="l00627"></a><span class="lineno"> 627</span>&#160; attr.append(<span class="stringliteral">&quot; style=filled fillcolor=red&quot;</span>);</div><div class="line"><a name="l00628"></a><span class="lineno"> 628</span>&#160; }</div><div class="line"><a name="l00629"></a><span class="lineno"> 629</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (node-&gt;<a class="code" href="classSVF_1_1TCTNode.html#a42dde4c3714cc5605f7c0e76cfd4a74c">isIncycle</a>())</div><div class="line"><a name="l00630"></a><span class="lineno"> 630</span>&#160; {</div><div class="line"><a name="l00631"></a><span class="lineno"> 631</span>&#160; attr.append(<span class="stringliteral">&quot; style=filled fillcolor=yellow&quot;</span>);</div><div class="line"><a name="l00632"></a><span class="lineno"> 632</span>&#160; }</div><div class="line"><a name="l00633"></a><span class="lineno"> 633</span>&#160; <span class="keywordflow">return</span> attr;</div><div class="line"><a name="l00634"></a><span class="lineno"> 634</span>&#160; }</div><div class="ttc" id="classSVF_1_1TCTNode_html_a4541cd85dcde2ce789ea411ebb1d89c7"><div class="ttname"><a href="classSVF_1_1TCTNode.html#a4541cd85dcde2ce789ea411ebb1d89c7">SVF::TCTNode::isInloop</a></div><div class="ttdeci">bool isInloop() const</div><div class="ttdoc">inloop, incycle attributes </div><div class="ttdef"><b>Definition:</b> <a href="TCT_8h_source.html#l00088">TCT.h:88</a></div></div>
294
- <div class="ttc" id="classSVF_1_1TCTNode_html_a42dde4c3714cc5605f7c0e76cfd4a74c"><div class="ttname"><a href="classSVF_1_1TCTNode.html#a42dde4c3714cc5605f7c0e76cfd4a74c">SVF::TCTNode::isIncycle</a></div><div class="ttdeci">bool isIncycle() const</div><div class="ttdef"><b>Definition:</b> <a href="TCT_8h_source.html#l00092">TCT.h:92</a></div></div>
292
+ <p class="definition">Definition at line <a class="el" href="TCT_8cpp_source.html#l00645">645</a> of file <a class="el" href="TCT_8cpp_source.html">TCT.cpp</a>.</p>
293
+ <div class="fragment"><div class="line"><a name="l00646"></a><span class="lineno"> 646</span>&#160; {</div><div class="line"><a name="l00647"></a><span class="lineno"> 647</span>&#160; <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> attr;</div><div class="line"><a name="l00648"></a><span class="lineno"> 648</span>&#160; <span class="keywordflow">if</span> (node-&gt;<a class="code" href="classSVF_1_1TCTNode.html#a4541cd85dcde2ce789ea411ebb1d89c7">isInloop</a>())</div><div class="line"><a name="l00649"></a><span class="lineno"> 649</span>&#160; {</div><div class="line"><a name="l00650"></a><span class="lineno"> 650</span>&#160; attr.append(<span class="stringliteral">&quot; style=filled fillcolor=red&quot;</span>);</div><div class="line"><a name="l00651"></a><span class="lineno"> 651</span>&#160; }</div><div class="line"><a name="l00652"></a><span class="lineno"> 652</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (node-&gt;<a class="code" href="classSVF_1_1TCTNode.html#a42dde4c3714cc5605f7c0e76cfd4a74c">isIncycle</a>())</div><div class="line"><a name="l00653"></a><span class="lineno"> 653</span>&#160; {</div><div class="line"><a name="l00654"></a><span class="lineno"> 654</span>&#160; attr.append(<span class="stringliteral">&quot; style=filled fillcolor=yellow&quot;</span>);</div><div class="line"><a name="l00655"></a><span class="lineno"> 655</span>&#160; }</div><div class="line"><a name="l00656"></a><span class="lineno"> 656</span>&#160; <span class="keywordflow">return</span> attr;</div><div class="line"><a name="l00657"></a><span class="lineno"> 657</span>&#160; }</div><div class="ttc" id="classSVF_1_1TCTNode_html_a4541cd85dcde2ce789ea411ebb1d89c7"><div class="ttname"><a href="classSVF_1_1TCTNode.html#a4541cd85dcde2ce789ea411ebb1d89c7">SVF::TCTNode::isInloop</a></div><div class="ttdeci">bool isInloop() const</div><div class="ttdoc">inloop, incycle attributes </div><div class="ttdef"><b>Definition:</b> <a href="TCT_8h_source.html#l00110">TCT.h:110</a></div></div>
294
+ <div class="ttc" id="classSVF_1_1TCTNode_html_a42dde4c3714cc5605f7c0e76cfd4a74c"><div class="ttname"><a href="classSVF_1_1TCTNode.html#a42dde4c3714cc5605f7c0e76cfd4a74c">SVF::TCTNode::isIncycle</a></div><div class="ttdeci">bool isIncycle() const</div><div class="ttdef"><b>Definition:</b> <a href="TCT_8h_source.html#l00114">TCT.h:114</a></div></div>
295
295
  <div class="ttc" id="cJSON_8h_html_ad4c68ea99a26b0a98ad9a79982960458"><div class="ttname"><a href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">string</a></div><div class="ttdeci">const char *const string</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8h_source.html#l00172">cJSON.h:172</a></div></div>
296
296
  </div><!-- fragment -->
297
297
  </div>
@@ -332,8 +332,8 @@ template&lt;class EdgeIter &gt; </div>
332
332
 
333
333
  <p>Return function name;. </p>
334
334
 
335
- <p class="definition">Definition at line <a class="el" href="TCT_8cpp_source.html#l00617">617</a> of file <a class="el" href="TCT_8cpp_source.html">TCT.cpp</a>.</p>
336
- <div class="fragment"><div class="line"><a name="l00618"></a><span class="lineno"> 618</span>&#160; {</div><div class="line"><a name="l00619"></a><span class="lineno"> 619</span>&#160; <span class="keywordflow">return</span> std::to_string(node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>());</div><div class="line"><a name="l00620"></a><span class="lineno"> 620</span>&#160; }</div><div class="ttc" id="classSVF_1_1GenericNode_html_ac3e55ef37aefb411ea4c87b1aa3b1895"><div class="ttname"><a href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">SVF::GenericNode::getId</a></div><div class="ttdeci">NodeID getId() const</div><div class="ttdoc">Get ID. </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00169">GenericGraph.h:169</a></div></div>
335
+ <p class="definition">Definition at line <a class="el" href="TCT_8cpp_source.html#l00640">640</a> of file <a class="el" href="TCT_8cpp_source.html">TCT.cpp</a>.</p>
336
+ <div class="fragment"><div class="line"><a name="l00641"></a><span class="lineno"> 641</span>&#160; {</div><div class="line"><a name="l00642"></a><span class="lineno"> 642</span>&#160; <span class="keywordflow">return</span> std::to_string(node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>());</div><div class="line"><a name="l00643"></a><span class="lineno"> 643</span>&#160; }</div><div class="ttc" id="classSVF_1_1GenericNode_html_ac3e55ef37aefb411ea4c87b1aa3b1895"><div class="ttname"><a href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">SVF::GenericNode::getId</a></div><div class="ttdeci">NodeID getId() const</div><div class="ttdoc">Get ID. </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00169">GenericGraph.h:169</a></div></div>
337
337
  </div><!-- fragment -->
338
338
  </div>
339
339
  </div>
@@ -85,7 +85,7 @@ struct llvm::GraphTraits&lt; Inverse&lt; SVF::TCTNode * &gt; &gt;</h3>
85
85
 
86
86
  <p>Inverse GraphTraits specializations for Value flow node, it is used for inverse traversal. </p>
87
87
 
88
- <p class="definition">Definition at line <a class="el" href="TCT_8h_source.html#l00568">568</a> of file <a class="el" href="TCT_8h_source.html">TCT.h</a>.</p>
88
+ <p class="definition">Definition at line <a class="el" href="TCT_8h_source.html#l00590">590</a> of file <a class="el" href="TCT_8h_source.html">TCT.h</a>.</p>
89
89
  </div><hr/>The documentation for this struct was generated from the following file:<ul>
90
90
  <li>/home/runner/work/SVF/SVF/include/MTA/<a class="el" href="TCT_8h_source.html">TCT.h</a></li>
91
91
  </ul>
@@ -81,7 +81,7 @@ Inheritance diagram for llvm::GraphTraits&lt; SVF::TCTNode * &gt;:</div>
81
81
  struct llvm::GraphTraits&lt; SVF::TCTNode * &gt;</h3>
82
82
 
83
83
 
84
- <p class="definition">Definition at line <a class="el" href="TCT_8h_source.html#l00562">562</a> of file <a class="el" href="TCT_8h_source.html">TCT.h</a>.</p>
84
+ <p class="definition">Definition at line <a class="el" href="TCT_8h_source.html#l00584">584</a> of file <a class="el" href="TCT_8h_source.html">TCT.h</a>.</p>
85
85
  </div><hr/>The documentation for this struct was generated from the following file:<ul>
86
86
  <li>/home/runner/work/SVF/SVF/include/MTA/<a class="el" href="TCT_8h_source.html">TCT.h</a></li>
87
87
  </ul>
@@ -90,7 +90,7 @@ Public Types</h2></td></tr>
90
90
  struct llvm::GraphTraits&lt; SVF::TCT * &gt;</h3>
91
91
 
92
92
 
93
- <p class="definition">Definition at line <a class="el" href="TCT_8h_source.html#l00572">572</a> of file <a class="el" href="TCT_8h_source.html">TCT.h</a>.</p>
93
+ <p class="definition">Definition at line <a class="el" href="TCT_8h_source.html#l00594">594</a> of file <a class="el" href="TCT_8h_source.html">TCT.h</a>.</p>
94
94
  </div><h2 class="groupheader">Member Typedef Documentation</h2>
95
95
  <a id="a064d2e7841d3ad3fce45f8b99f37001b"></a>
96
96
  <h2 class="memtitle"><span class="permalink"><a href="#a064d2e7841d3ad3fce45f8b99f37001b">&#9670;&nbsp;</a></span>NodeRef</h2>
@@ -104,7 +104,7 @@ struct llvm::GraphTraits&lt; SVF::TCT * &gt;</h3>
104
104
  </table>
105
105
  </div><div class="memdoc">
106
106
 
107
- <p class="definition">Definition at line <a class="el" href="TCT_8h_source.html#l00574">574</a> of file <a class="el" href="TCT_8h_source.html">TCT.h</a>.</p>
107
+ <p class="definition">Definition at line <a class="el" href="TCT_8h_source.html#l00596">596</a> of file <a class="el" href="TCT_8h_source.html">TCT.h</a>.</p>
108
108
 
109
109
  </div>
110
110
  </div>
@@ -82,7 +82,7 @@ Public Member Functions</h2></td></tr>
82
82
  struct std::hash&lt; SVF::SVFGNodeLockSpan &gt;</h3>
83
83
 
84
84
 
85
- <p class="definition">Definition at line <a class="el" href="FSMPTA_8h_source.html#l00234">234</a> of file <a class="el" href="FSMPTA_8h_source.html">FSMPTA.h</a>.</p>
85
+ <p class="definition">Definition at line <a class="el" href="FSMPTA_8h_source.html#l00260">260</a> of file <a class="el" href="FSMPTA_8h_source.html">FSMPTA.h</a>.</p>
86
86
  </div><h2 class="groupheader">Member Function Documentation</h2>
87
87
  <a id="a7854984f902d9a42c6d4e095de8464a7"></a>
88
88
  <h2 class="memtitle"><span class="permalink"><a href="#a7854984f902d9a42c6d4e095de8464a7">&#9670;&nbsp;</a></span>operator()()</h2>
@@ -108,8 +108,8 @@ struct std::hash&lt; SVF::SVFGNodeLockSpan &gt;</h3>
108
108
  </table>
109
109
  </div><div class="memdoc">
110
110
 
111
- <p class="definition">Definition at line <a class="el" href="FSMPTA_8h_source.html#l00236">236</a> of file <a class="el" href="FSMPTA_8h_source.html">FSMPTA.h</a>.</p>
112
- <div class="fragment"><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; {</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; std::hash&lt;SVF::StmtSVFGNode* &gt;h;</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; <a class="code" href="classSVF_1_1StmtVFGNode.html">SVF::StmtSVFGNode</a>* node = <span class="keyword">const_cast&lt;</span><a class="code" href="classSVF_1_1StmtVFGNode.html">SVF::StmtSVFGNode</a>* <span class="keyword">&gt;</span> (cs.<a class="code" href="classSVF_1_1SVFGNodeLockSpan.html#ac6b8a2fd39afa60cdb8379c0377eb50f">getSVFGNode</a>());</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; <span class="keywordflow">return</span> h(node);</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; }</div><div class="ttc" id="classSVF_1_1SVFGNodeLockSpan_html_ac6b8a2fd39afa60cdb8379c0377eb50f"><div class="ttname"><a href="classSVF_1_1SVFGNodeLockSpan.html#ac6b8a2fd39afa60cdb8379c0377eb50f">SVF::SVFGNodeLockSpan::getSVFGNode</a></div><div class="ttdeci">const StmtSVFGNode * getSVFGNode() const</div><div class="ttdef"><b>Definition:</b> <a href="FSMPTA_8h_source.html#l00055">FSMPTA.h:55</a></div></div>
111
+ <p class="definition">Definition at line <a class="el" href="FSMPTA_8h_source.html#l00262">262</a> of file <a class="el" href="FSMPTA_8h_source.html">FSMPTA.h</a>.</p>
112
+ <div class="fragment"><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; {</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; std::hash&lt;SVF::StmtSVFGNode* &gt;h;</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; <a class="code" href="classSVF_1_1StmtVFGNode.html">SVF::StmtSVFGNode</a>* node = <span class="keyword">const_cast&lt;</span><a class="code" href="classSVF_1_1StmtVFGNode.html">SVF::StmtSVFGNode</a>* <span class="keyword">&gt;</span> (cs.<a class="code" href="classSVF_1_1SVFGNodeLockSpan.html#ac6b8a2fd39afa60cdb8379c0377eb50f">getSVFGNode</a>());</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; <span class="keywordflow">return</span> h(node);</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; }</div><div class="ttc" id="classSVF_1_1SVFGNodeLockSpan_html_ac6b8a2fd39afa60cdb8379c0377eb50f"><div class="ttname"><a href="classSVF_1_1SVFGNodeLockSpan.html#ac6b8a2fd39afa60cdb8379c0377eb50f">SVF::SVFGNodeLockSpan::getSVFGNode</a></div><div class="ttdeci">const StmtSVFGNode * getSVFGNode() const</div><div class="ttdef"><b>Definition:</b> <a href="FSMPTA_8h_source.html#l00081">FSMPTA.h:81</a></div></div>
113
113
  <div class="ttc" id="classSVF_1_1StmtVFGNode_html"><div class="ttname"><a href="classSVF_1_1StmtVFGNode.html">SVF::StmtVFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00116">VFGNode.h:116</a></div></div>
114
114
  </div><!-- fragment -->
115
115
  </div>
@@ -220,10 +220,10 @@ Functions</h2></td></tr>
220
220
  <div class="ttc" id="classSVF_1_1ICFG_html_a999956500bbd605326531480546db9ba"><div class="ttname"><a href="classSVF_1_1ICFG.html#a999956500bbd605326531480546db9ba">SVF::ICFG::dump</a></div><div class="ttdeci">void dump(const std::string &amp;file, bool simple=false)</div><div class="ttdoc">Dump graph into dot file. </div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#l00441">ICFG.cpp:441</a></div></div>
221
221
  <div class="ttc" id="classSVF_1_1SVFG_html"><div class="ttname"><a href="classSVF_1_1SVFG.html">SVF::SVFG</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00065">SVFG.h:65</a></div></div>
222
222
  <div class="ttc" id="classSVF_1_1SVFGBuilder_html"><div class="ttname"><a href="classSVF_1_1SVFGBuilder.html">SVF::SVFGBuilder</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFGBuilder_8h_source.html#l00059">SVFGBuilder.h:59</a></div></div>
223
- <div class="ttc" id="classSVF_1_1Andersen_html"><div class="ttname"><a href="classSVF_1_1Andersen.html">SVF::Andersen</a></div><div class="ttdef"><b>Definition:</b> <a href="Andersen_8h_source.html#l00145">Andersen.h:145</a></div></div>
223
+ <div class="ttc" id="classSVF_1_1Andersen_html"><div class="ttname"><a href="classSVF_1_1Andersen.html">SVF::Andersen</a></div><div class="ttdef"><b>Definition:</b> <a href="Andersen_8h_source.html#l00150">Andersen.h:150</a></div></div>
224
224
  <div class="ttc" id="namespaceSVF_1_1LLVMUtil_html_accdd44093d6d145dc92edeaaff3f5732"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#accdd44093d6d145dc92edeaaff3f5732">SVF::LLVMUtil::processArguments</a></div><div class="ttdeci">void processArguments(int argc, char **argv, int &amp;arg_num, char **arg_value, std::vector&lt; std::string &gt; &amp;moduleNameVec)</div><div class="ttdoc">Parse argument for multi-module analysis. </div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00436">LLVMUtil.cpp:436</a></div></div>
225
225
  <div class="ttc" id="classSVF_1_1SVFIR_html"><div class="ttname"><a href="classSVF_1_1SVFIR.html">SVF::SVFIR</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00043">SVFIR.h:43</a></div></div>
226
- <div class="ttc" id="classSVF_1_1SVFModule_html_aa03ab5272652290f30870c6e2d053d98"><div class="ttname"><a href="classSVF_1_1SVFModule.html#aa03ab5272652290f30870c6e2d053d98">SVF::SVFModule::buildSymbolTableInfo</a></div><div class="ttdeci">void buildSymbolTableInfo()</div><div class="ttdef"><b>Definition:</b> <a href="SVFModule_8cpp_source.html#l00030">SVFModule.cpp:30</a></div></div>
226
+ <div class="ttc" id="classSVF_1_1SVFModule_html_aa03ab5272652290f30870c6e2d053d98"><div class="ttname"><a href="classSVF_1_1SVFModule.html#aa03ab5272652290f30870c6e2d053d98">SVF::SVFModule::buildSymbolTableInfo</a></div><div class="ttdeci">void buildSymbolTableInfo()</div><div class="ttdef"><b>Definition:</b> <a href="SVFModule_8cpp_source.html#l00031">SVFModule.cpp:31</a></div></div>
227
227
  <div class="ttc" id="classSVF_1_1SVFIR_html_aa1943d53e75aef9b014953143c6894da"><div class="ttname"><a href="classSVF_1_1SVFIR.html#aa1943d53e75aef9b014953143c6894da">SVF::SVFIR::getICFG</a></div><div class="ttdeci">ICFG * getICFG()</div><div class="ttdoc">Return ICFG. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00132">SVFIR.h:132</a></div></div>
228
228
  </div><!-- fragment -->
229
229
  </div>
@@ -118,11 +118,11 @@ $(function() {
118
118
  <div class="ttc" id="SVFIRBuilder_8h_html"><div class="ttname"><a href="SVFIRBuilder_8h.html">SVFIRBuilder.h</a></div></div>
119
119
  <div class="ttc" id="classSVF_1_1GenericNode_html_a19a3366fd8a58290d0c740c46c3dcb3d"><div class="ttname"><a href="classSVF_1_1GenericNode.html#a19a3366fd8a58290d0c740c46c3dcb3d">SVF::GenericNode::OutEdgeEnd</a></div><div class="ttdeci">iterator OutEdgeEnd()</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00210">GenericGraph.h:210</a></div></div>
120
120
  <div class="ttc" id="classSVF_1_1GenericGraph_html_a43c9c773bfa17abf481c33073e30d01b"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">SVF::GenericGraph::getGNode</a></div><div class="ttdeci">NodeType * getGNode(NodeID id) const</div><div class="ttdoc">Get a node. </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00391">GenericGraph.h:391</a></div></div>
121
- <div class="ttc" id="classSVF_1_1Andersen_html"><div class="ttname"><a href="classSVF_1_1Andersen.html">SVF::Andersen</a></div><div class="ttdef"><b>Definition:</b> <a href="Andersen_8h_source.html#l00145">Andersen.h:145</a></div></div>
121
+ <div class="ttc" id="classSVF_1_1Andersen_html"><div class="ttname"><a href="classSVF_1_1Andersen.html">SVF::Andersen</a></div><div class="ttdef"><b>Definition:</b> <a href="Andersen_8h_source.html#l00150">Andersen.h:150</a></div></div>
122
122
  <div class="ttc" id="namespaceSVF_1_1LLVMUtil_html_accdd44093d6d145dc92edeaaff3f5732"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#accdd44093d6d145dc92edeaaff3f5732">SVF::LLVMUtil::processArguments</a></div><div class="ttdeci">void processArguments(int argc, char **argv, int &amp;arg_num, char **arg_value, std::vector&lt; std::string &gt; &amp;moduleNameVec)</div><div class="ttdoc">Parse argument for multi-module analysis. </div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00436">LLVMUtil.cpp:436</a></div></div>
123
123
  <div class="ttc" id="classSVF_1_1PointsTo_html"><div class="ttname"><a href="classSVF_1_1PointsTo.html">SVF::PointsTo</a></div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8h_source.html#l00028">PointsTo.h:28</a></div></div>
124
124
  <div class="ttc" id="classSVF_1_1SVFIR_html"><div class="ttname"><a href="classSVF_1_1SVFIR.html">SVF::SVFIR</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00043">SVFIR.h:43</a></div></div>
125
- <div class="ttc" id="classSVF_1_1SVFModule_html_aa03ab5272652290f30870c6e2d053d98"><div class="ttname"><a href="classSVF_1_1SVFModule.html#aa03ab5272652290f30870c6e2d053d98">SVF::SVFModule::buildSymbolTableInfo</a></div><div class="ttdeci">void buildSymbolTableInfo()</div><div class="ttdef"><b>Definition:</b> <a href="SVFModule_8cpp_source.html#l00030">SVFModule.cpp:30</a></div></div>
125
+ <div class="ttc" id="classSVF_1_1SVFModule_html_aa03ab5272652290f30870c6e2d053d98"><div class="ttname"><a href="classSVF_1_1SVFModule.html#aa03ab5272652290f30870c6e2d053d98">SVF::SVFModule::buildSymbolTableInfo</a></div><div class="ttdeci">void buildSymbolTableInfo()</div><div class="ttdef"><b>Definition:</b> <a href="SVFModule_8cpp_source.html#l00031">SVFModule.cpp:31</a></div></div>
126
126
  <div class="ttc" id="classSVF_1_1SVFIR_html_aa1943d53e75aef9b014953143c6894da"><div class="ttname"><a href="classSVF_1_1SVFIR.html#aa1943d53e75aef9b014953143c6894da">SVF::SVFIR::getICFG</a></div><div class="ttdeci">ICFG * getICFG()</div><div class="ttdoc">Return ICFG. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00132">SVFIR.h:132</a></div></div>
127
127
  <div class="ttc" id="svf-ex_8cpp_html_af45b449c07f1c975eea45d40d1cc37f6"><div class="ttname"><a href="svf-ex_8cpp.html#af45b449c07f1c975eea45d40d1cc37f6">traverseOnICFG</a></div><div class="ttdeci">void traverseOnICFG(ICFG *icfg, const Instruction *inst)</div><div class="ttdef"><b>Definition:</b> <a href="svf-ex_8cpp_source.html#l00080">svf-ex.cpp:80</a></div></div>
128
128
  <div class="ttc" id="cJSON_8h_html_ad4c68ea99a26b0a98ad9a79982960458"><div class="ttname"><a href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">string</a></div><div class="ttdeci">const char *const string</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8h_source.html#l00172">cJSON.h:172</a></div></div>
@@ -154,7 +154,7 @@ Functions</h2></td></tr>
154
154
  <div class="fragment"><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;{</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <span class="keywordtype">int</span> arg_num = 0;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</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="l00045"></a><span class="lineno"> 45</span>&#160; std::vector&lt;std::string&gt; moduleNameVec;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <a class="code" href="namespaceSVF_1_1LLVMUtil.html#accdd44093d6d145dc92edeaaff3f5732">LLVMUtil::processArguments</a>(argc, argv, arg_num, arg_value, moduleNameVec);</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; cl::ParseCommandLineOptions(arg_num, arg_value,</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="stringliteral">&quot;Whole Program Points-to Analysis\n&quot;</span>);</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keywordflow">if</span> (Options::WriteAnder == <span class="stringliteral">&quot;ir_annotator&quot;</span>)</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; {</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; LLVMModuleSet::getLLVMModuleSet()-&gt;preProcessBCs(moduleNameVec);</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; }</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; <a class="code" href="classSVF_1_1SVFModule.html">SVFModule</a>* svfModule = LLVMModuleSet::getLLVMModuleSet()-&gt;buildSVFModule(moduleNameVec);</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; svfModule-&gt;<a class="code" href="classSVF_1_1SVFModule.html#aa03ab5272652290f30870c6e2d053d98">buildSymbolTableInfo</a>();</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <a class="code" href="classSVF_1_1WPAPass.html">WPAPass</a> *wpa = <span class="keyword">new</span> <a class="code" href="classSVF_1_1WPAPass.html">WPAPass</a>();</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; wpa-&gt;<a class="code" href="classSVF_1_1WPAPass.html#a394dcd976c1ef08d9cadcba8f5d07c75">runOnModule</a>(svfModule);</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;}</div><div class="ttc" id="classSVF_1_1SVFModule_html"><div class="ttname"><a href="classSVF_1_1SVFModule.html">SVF::SVFModule</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFModule_8h_source.html#l00041">SVFModule.h:41</a></div></div>
155
155
  <div class="ttc" id="classSVF_1_1WPAPass_html"><div class="ttname"><a href="classSVF_1_1WPAPass.html">SVF::WPAPass</a></div><div class="ttdef"><b>Definition:</b> <a href="WPAPass_8h_source.html#l00054">WPAPass.h:54</a></div></div>
156
156
  <div class="ttc" id="namespaceSVF_1_1LLVMUtil_html_accdd44093d6d145dc92edeaaff3f5732"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#accdd44093d6d145dc92edeaaff3f5732">SVF::LLVMUtil::processArguments</a></div><div class="ttdeci">void processArguments(int argc, char **argv, int &amp;arg_num, char **arg_value, std::vector&lt; std::string &gt; &amp;moduleNameVec)</div><div class="ttdoc">Parse argument for multi-module analysis. </div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00436">LLVMUtil.cpp:436</a></div></div>
157
- <div class="ttc" id="classSVF_1_1SVFModule_html_aa03ab5272652290f30870c6e2d053d98"><div class="ttname"><a href="classSVF_1_1SVFModule.html#aa03ab5272652290f30870c6e2d053d98">SVF::SVFModule::buildSymbolTableInfo</a></div><div class="ttdeci">void buildSymbolTableInfo()</div><div class="ttdef"><b>Definition:</b> <a href="SVFModule_8cpp_source.html#l00030">SVFModule.cpp:30</a></div></div>
157
+ <div class="ttc" id="classSVF_1_1SVFModule_html_aa03ab5272652290f30870c6e2d053d98"><div class="ttname"><a href="classSVF_1_1SVFModule.html#aa03ab5272652290f30870c6e2d053d98">SVF::SVFModule::buildSymbolTableInfo</a></div><div class="ttdeci">void buildSymbolTableInfo()</div><div class="ttdef"><b>Definition:</b> <a href="SVFModule_8cpp_source.html#l00031">SVFModule.cpp:31</a></div></div>
158
158
  <div class="ttc" id="classSVF_1_1WPAPass_html_a394dcd976c1ef08d9cadcba8f5d07c75"><div class="ttname"><a href="classSVF_1_1WPAPass.html#a394dcd976c1ef08d9cadcba8f5d07c75">SVF::WPAPass::runOnModule</a></div><div class="ttdeci">virtual void runOnModule(SVFModule *svfModule)</div><div class="ttdoc">Run pointer analysis on SVFModule. </div><div class="ttdef"><b>Definition:</b> <a href="WPAPass_8cpp_source.html#l00070">WPAPass.cpp:70</a></div></div>
159
159
  </div><!-- fragment -->
160
160
  </div>
@@ -76,7 +76,7 @@ $(function() {
76
76
  <div class="ttc" id="Options_8h_html"><div class="ttname"><a href="Options_8h.html">Options.h</a></div></div>
77
77
  <div class="ttc" id="namespaceSVF_html"><div class="ttname"><a href="namespaceSVF.html">SVF</a></div><div class="ttdoc">for isBitcode </div><div class="ttdef"><b>Definition:</b> <a href="CFGNormalizer_8h_source.html#l00035">CFGNormalizer.h:35</a></div></div>
78
78
  <div class="ttc" id="namespaceSVF_1_1LLVMUtil_html_accdd44093d6d145dc92edeaaff3f5732"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#accdd44093d6d145dc92edeaaff3f5732">SVF::LLVMUtil::processArguments</a></div><div class="ttdeci">void processArguments(int argc, char **argv, int &amp;arg_num, char **arg_value, std::vector&lt; std::string &gt; &amp;moduleNameVec)</div><div class="ttdoc">Parse argument for multi-module analysis. </div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00436">LLVMUtil.cpp:436</a></div></div>
79
- <div class="ttc" id="classSVF_1_1SVFModule_html_aa03ab5272652290f30870c6e2d053d98"><div class="ttname"><a href="classSVF_1_1SVFModule.html#aa03ab5272652290f30870c6e2d053d98">SVF::SVFModule::buildSymbolTableInfo</a></div><div class="ttdeci">void buildSymbolTableInfo()</div><div class="ttdef"><b>Definition:</b> <a href="SVFModule_8cpp_source.html#l00030">SVFModule.cpp:30</a></div></div>
79
+ <div class="ttc" id="classSVF_1_1SVFModule_html_aa03ab5272652290f30870c6e2d053d98"><div class="ttname"><a href="classSVF_1_1SVFModule.html#aa03ab5272652290f30870c6e2d053d98">SVF::SVFModule::buildSymbolTableInfo</a></div><div class="ttdeci">void buildSymbolTableInfo()</div><div class="ttdef"><b>Definition:</b> <a href="SVFModule_8cpp_source.html#l00031">SVFModule.cpp:31</a></div></div>
80
80
  <div class="ttc" id="classSVF_1_1WPAPass_html_a394dcd976c1ef08d9cadcba8f5d07c75"><div class="ttname"><a href="classSVF_1_1WPAPass.html#a394dcd976c1ef08d9cadcba8f5d07c75">SVF::WPAPass::runOnModule</a></div><div class="ttdeci">virtual void runOnModule(SVFModule *svfModule)</div><div class="ttdoc">Run pointer analysis on SVFModule. </div><div class="ttdef"><b>Definition:</b> <a href="WPAPass_8cpp_source.html#l00070">WPAPass.cpp:70</a></div></div>
81
81
  <div class="ttc" id="LLVMUtil_8h_html"><div class="ttname"><a href="LLVMUtil_8h.html">LLVMUtil.h</a></div></div>
82
82
  </div><!-- fragment --></div><!-- contents -->
@@ -1,8 +1,37 @@
1
+ //===- ContextDDA.h -- Context-sensitive demand-driven analysis-------------//
2
+ //
3
+ // SVF: Static Value-Flow Analysis
4
+ //
5
+ // Copyright (C) <2013-> <Yulei Sui>
6
+ //
7
+
8
+ // This program is free software: you can redistribute it and/or modify
9
+ // it under the terms of the GNU General Public License as published by
10
+ // the Free Software Foundation, either version 3 of the License, or
11
+ // (at your option) any later version.
12
+
13
+ // This program is distributed in the hope that it will be useful,
14
+ // but WITHOUT ANY WARRANTY; without even the implied warranty of
15
+ // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16
+ // GNU General Public License for more details.
17
+
18
+ // You should have received a copy of the GNU General Public License
19
+ // along with this program. If not, see <http://www.gnu.org/licenses/>.
20
+ //
21
+ //===----------------------------------------------------------------------===//
22
+
1
23
  /*
2
24
  * ContextDDA.h
3
25
  *
4
26
  * Created on: Aug 17, 2014
5
27
  * Author: Yulei Sui
28
+ *
29
+ * The implementation is based on
30
+ * (1) Yulei Sui and Jingling Xue. "On-Demand Strong Update Analysis via Value-Flow Refinement".
31
+ * ACM SIGSOFT International Symposium on the Foundation of Software Engineering (FSE'16)
32
+ *
33
+ * (2) Yulei Sui and Jingling Xue. "Value-Flow-Based Demand-Driven Pointer Analysis for C and C++".
34
+ * IEEE Transactions on Software Engineering (TSE'18)
6
35
  */
7
36
 
8
37
  #ifndef ContextDDA_H_
@@ -1,3 +1,26 @@
1
+ //===- DDAClient.h -- Clients of demand-driven analysis-------------//
2
+ //
3
+ // SVF: Static Value-Flow Analysis
4
+ //
5
+ // Copyright (C) <2013-> <Yulei Sui>
6
+ //
7
+
8
+ // This program is free software: you can redistribute it and/or modify
9
+ // it under the terms of the GNU General Public License as published by
10
+ // the Free Software Foundation, either version 3 of the License, or
11
+ // (at your option) any later version.
12
+
13
+ // This program is distributed in the hope that it will be useful,
14
+ // but WITHOUT ANY WARRANTY; without even the implied warranty of
15
+ // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16
+ // GNU General Public License for more details.
17
+
18
+ // You should have received a copy of the GNU General Public License
19
+ // along with this program. If not, see <http://www.gnu.org/licenses/>.
20
+ //
21
+ //===----------------------------------------------------------------------===//
22
+
23
+
1
24
  /*
2
25
  * @file: DDAClient.h
3
26
  * @author: yesen
@@ -1,3 +1,25 @@
1
+ //===- DDAPass.h -- Demand-driven analysis driver pass-------------//
2
+ //
3
+ // SVF: Static Value-Flow Analysis
4
+ //
5
+ // Copyright (C) <2013-> <Yulei Sui>
6
+ //
7
+
8
+ // This program is free software: you can redistribute it and/or modify
9
+ // it under the terms of the GNU General Public License as published by
10
+ // the Free Software Foundation, either version 3 of the License, or
11
+ // (at your option) any later version.
12
+
13
+ // This program is distributed in the hope that it will be useful,
14
+ // but WITHOUT ANY WARRANTY; without even the implied warranty of
15
+ // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16
+ // GNU General Public License for more details.
17
+
18
+ // You should have received a copy of the GNU General Public License
19
+ // along with this program. If not, see <http://www.gnu.org/licenses/>.
20
+ //
21
+ //===----------------------------------------------------------------------===//
22
+
1
23
  /*
2
24
  * @file: DDAPass.h
3
25
  * @author: Yulei Sui
@@ -1,3 +1,25 @@
1
+ //===- DDAStat.h -- Statistics for demand-driven pass-------------//
2
+ //
3
+ // SVF: Static Value-Flow Analysis
4
+ //
5
+ // Copyright (C) <2013-> <Yulei Sui>
6
+ //
7
+
8
+ // This program is free software: you can redistribute it and/or modify
9
+ // it under the terms of the GNU General Public License as published by
10
+ // the Free Software Foundation, either version 3 of the License, or
11
+ // (at your option) any later version.
12
+
13
+ // This program is distributed in the hope that it will be useful,
14
+ // but WITHOUT ANY WARRANTY; without even the implied warranty of
15
+ // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16
+ // GNU General Public License for more details.
17
+
18
+ // You should have received a copy of the GNU General Public License
19
+ // along with this program. If not, see <http://www.gnu.org/licenses/>.
20
+ //
21
+ //===----------------------------------------------------------------------===//
22
+
1
23
  /*
2
24
  * DDAStat.h
3
25
  *
@@ -1,3 +1,25 @@
1
+ //===- DDAVFSolver.h -- Demand-driven analysis value-flow solver------------//
2
+ //
3
+ // SVF: Static Value-Flow Analysis
4
+ //
5
+ // Copyright (C) <2013-> <Yulei Sui>
6
+ //
7
+
8
+ // This program is free software: you can redistribute it and/or modify
9
+ // it under the terms of the GNU General Public License as published by
10
+ // the Free Software Foundation, either version 3 of the License, or
11
+ // (at your option) any later version.
12
+
13
+ // This program is distributed in the hope that it will be useful,
14
+ // but WITHOUT ANY WARRANTY; without even the implied warranty of
15
+ // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16
+ // GNU General Public License for more details.
17
+
18
+ // You should have received a copy of the GNU General Public License
19
+ // along with this program. If not, see <http://www.gnu.org/licenses/>.
20
+ //
21
+ //===----------------------------------------------------------------------===//
22
+
1
23
  /*
2
24
  * DDAVFSolver.h
3
25
  *
@@ -400,11 +422,11 @@ protected:
400
422
  {
401
423
  DPIm dpm(oldDpm);
402
424
  dpm.setLocVar(edge->getSrcNode(),ptr);
403
- DOTIMESTAT(double start = DDAStat::getClk());
425
+ DOTIMESTAT(double start = DDAStat::getClk(true));
404
426
  /// handle context-/path- sensitivity
405
427
  if(handleBKCondition(dpm,edge)==false)
406
428
  {
407
- DOTIMESTAT(ddaStat->_TotalTimeOfBKCondition += DDAStat::getClk() - start);
429
+ DOTIMESTAT(ddaStat->_TotalTimeOfBKCondition += DDAStat::getClk(true) - start);
408
430
  DBOUT(DDDA, SVFUtil::outs() << "\t!!! infeasible path svfgNode: " << edge->getDstID() << " --| " << edge->getSrcID() << "\n");
409
431
  DOSTAT(ddaStat->_NumOfInfeasiblePath++);
410
432
  return;
@@ -540,9 +562,9 @@ protected:
540
562
  {
541
563
  if (unionDDAPts(dpm, pts))
542
564
  {
543
- DOSTAT(double start = DDAStat::getClk());
565
+ DOSTAT(double start = DDAStat::getClk(true));
544
566
  reCompute(dpm);
545
- DOSTAT(ddaStat->_AnaTimeCyclePerQuery += DDAStat::getClk() - start);
567
+ DOSTAT(ddaStat->_AnaTimeCyclePerQuery += DDAStat::getClk(true) - start);
546
568
  }
547
569
  }
548
570
  virtual inline const CPtSet& getCachedTLPointsTo(const DPIm& dpm)
@@ -1,8 +1,37 @@
1
+ //===- FlowDDA.h -- Flow-sensitive demand-driven analysis -------------//
2
+ //
3
+ // SVF: Static Value-Flow Analysis
4
+ //
5
+ // Copyright (C) <2013-> <Yulei Sui>
6
+ //
7
+
8
+ // This program is free software: you can redistribute it and/or modify
9
+ // it under the terms of the GNU General Public License as published by
10
+ // the Free Software Foundation, either version 3 of the License, or
11
+ // (at your option) any later version.
12
+
13
+ // This program is distributed in the hope that it will be useful,
14
+ // but WITHOUT ANY WARRANTY; without even the implied warranty of
15
+ // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16
+ // GNU General Public License for more details.
17
+
18
+ // You should have received a copy of the GNU General Public License
19
+ // along with this program. If not, see <http://www.gnu.org/licenses/>.
20
+ //
21
+ //===----------------------------------------------------------------------===//
22
+
1
23
  /*
2
24
  * FlowDDA.h
3
25
  *
4
26
  * Created on: Jun 30, 2014
5
27
  * Author: Yulei Sui, Sen Ye
28
+ *
29
+ * The implementation is based on
30
+ * (1) Yulei Sui and Jingling Xue. "On-Demand Strong Update Analysis via Value-Flow Refinement".
31
+ * ACM SIGSOFT International Symposium on the Foundation of Software Engineering (FSE'16)
32
+ *
33
+ * (2) Yulei Sui and Jingling Xue. "Value-Flow-Based Demand-Driven Pointer Analysis for C and C++".
34
+ * IEEE Transactions on Software Engineering (TSE'18)
6
35
  */
7
36
 
8
37
  #ifndef FlowDDA_H_
@@ -2,7 +2,7 @@
2
2
  //
3
3
  // SVF: Static Value-Flow Analysis
4
4
  //
5
- // Copyright (C) <2013-2017> <Yulei Sui>
5
+ // Copyright (C) <2013-> <Yulei Sui>
6
6
  //
7
7
 
8
8
  // This program is free software: you can redistribute it and/or modify
@@ -2,7 +2,7 @@
2
2
  //
3
3
  // SVF: Static Value-Flow Analysis
4
4
  //
5
- // Copyright (C) <2013-2017> <Yulei Sui>
5
+ // Copyright (C) <2013-> <Yulei Sui>
6
6
  //
7
7
 
8
8
  // This program is free software: you can redistribute it and/or modify
@@ -2,7 +2,7 @@
2
2
  //
3
3
  // SVF: Static Value-Flow Analysis
4
4
  //
5
- // Copyright (C) <2013-2017> <Yulei Sui>
5
+ // Copyright (C) <2013-> <Yulei Sui>
6
6
  //
7
7
 
8
8
  // This program is free software: you can redistribute it and/or modify
@@ -25,6 +25,10 @@
25
25
  *
26
26
  * Created on: Jul 14, 2013
27
27
  * Author: Yulei Sui
28
+ * The implementation is based on
29
+ * Yulei Sui, Hua Yan, Yunpeng Zhang, Jingling Xue and Zheng Zheng.
30
+ * "Parallel Construction of Interprocedural Memory SSA Form".
31
+ * Journal of Systems and Software (JSS'16)
28
32
  */
29
33
 
30
34
  #ifndef MEMORYREGION_H_
@@ -2,7 +2,7 @@
2
2
  //
3
3
  // SVF: Static Value-Flow Analysis
4
4
  //
5
- // Copyright (C) <2013-2017> <Yulei Sui>
5
+ // Copyright (C) <2013-> <Yulei Sui>
6
6
  //
7
7
 
8
8
  // This program is free software: you can redistribute it and/or modify
@@ -25,8 +25,14 @@
25
25
  *
26
26
  * Created on: Jul 14, 2013
27
27
  * Author: Yulei Sui
28
+ *
29
+ * The implementation is based on
30
+ * Yulei Sui, Hua Yan, Yunpeng Zhang, Jingling Xue and Zheng Zheng.
31
+ * "Parallel Construction of Interprocedural Memory SSA Form".
32
+ * Journal of Systems and Software (JSS'16), Algorithm 3 in the paper
28
33
  */
29
34
 
35
+
30
36
  #ifndef MEMORYSSAPASS_H_
31
37
  #define MEMORYSSAPASS_H_
32
38
 
@@ -2,7 +2,7 @@
2
2
  //
3
3
  // SVF: Static Value-Flow Analysis
4
4
  //
5
- // Copyright (C) <2013-2017> <Yulei Sui>
5
+ // Copyright (C) <2013-> <Yulei Sui>
6
6
  //
7
7
 
8
8
  // This program is free software: you can redistribute it and/or modify
@@ -1,8 +1,34 @@
1
+ //===- FSMPTA.h -- Flow-sensitive analysis of multithreaded programs-------------//
2
+ //
3
+ // SVF: Static Value-Flow Analysis
4
+ //
5
+ // Copyright (C) <2013-> <Yulei Sui>
6
+ //
7
+
8
+ // This program is free software: you can redistribute it and/or modify
9
+ // it under the terms of the GNU General Public License as published by
10
+ // the Free Software Foundation, either version 3 of the License, or
11
+ // (at your option) any later version.
12
+
13
+ // This program is distributed in the hope that it will be useful,
14
+ // but WITHOUT ANY WARRANTY; without even the implied warranty of
15
+ // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16
+ // GNU General Public License for more details.
17
+
18
+ // You should have received a copy of the GNU General Public License
19
+ // along with this program. If not, see <http://www.gnu.org/licenses/>.
20
+ //
21
+ //===----------------------------------------------------------------------===//
22
+
1
23
  /*
2
24
  * FSMPTA.h
3
25
  *
4
26
  * Created on: Jul 29, 2015
5
27
  * Author: Yulei Sui, Peng Di
28
+ *
29
+ * The implementation is based on
30
+ * Yulei Sui, Peng Di, and Jingling Xue. "Sparse Flow-Sensitive Pointer Analysis for Multithreaded Programs".
31
+ * 2016 International Symposium on Code Generation and Optimization (CGO'16)
6
32
  */
7
33
 
8
34
  #ifndef FSPTANALYSIS_H_