svf-tools 1.0.558 → 1.0.561

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 (327) 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 +16 -16
  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/CFLGrammar_8txt.html +8 -8
  10. package/SVF-doxygen/html/html/CFLGraphBuilder_8cpp_source.html +10 -1
  11. package/SVF-doxygen/html/html/CFLGraphBuilder_8h_source.html +3 -1
  12. package/SVF-doxygen/html/html/ConditionalPT_8h_source.html +1 -1
  13. package/SVF-doxygen/html/html/ContextDDA_8cpp_source.html +44 -44
  14. package/SVF-doxygen/html/html/ContextDDA_8h_source.html +43 -43
  15. package/SVF-doxygen/html/html/DDAClient_8cpp_source.html +12 -12
  16. package/SVF-doxygen/html/html/DDAClient_8h_source.html +36 -36
  17. package/SVF-doxygen/html/html/DDAPass_8cpp_source.html +19 -19
  18. package/SVF-doxygen/html/html/DDAPass_8h_source.html +21 -21
  19. package/SVF-doxygen/html/html/DDAStat_8cpp_source.html +51 -51
  20. package/SVF-doxygen/html/html/DDAStat_8h_source.html +51 -51
  21. package/SVF-doxygen/html/html/DDAVFSolver_8h_source.html +111 -111
  22. package/SVF-doxygen/html/html/DoubleFreeChecker_8cpp_source.html +2 -2
  23. package/SVF-doxygen/html/html/DoubleFreeChecker_8h_source.html +2 -2
  24. package/SVF-doxygen/html/html/ExtAPI_8cpp_source.html +5 -2
  25. package/SVF-doxygen/html/html/ExtAPI_8h_source.html +3 -2
  26. package/SVF-doxygen/html/html/FSMPTA_8cpp_source.html +40 -40
  27. package/SVF-doxygen/html/html/FSMPTA_8h_source.html +52 -52
  28. package/SVF-doxygen/html/html/FileChecker_8cpp_source.html +2 -2
  29. package/SVF-doxygen/html/html/FileChecker_8h_source.html +2 -2
  30. package/SVF-doxygen/html/html/FlowDDA_8cpp_source.html +2 -2
  31. package/SVF-doxygen/html/html/FlowDDA_8h_source.html +42 -42
  32. package/SVF-doxygen/html/html/FlowSensitive_8cpp_source.html +3 -3
  33. package/SVF-doxygen/html/html/FlowSensitive_8h_source.html +6 -6
  34. package/SVF-doxygen/html/html/LeakChecker_8cpp_source.html +4 -4
  35. package/SVF-doxygen/html/html/LeakChecker_8h_source.html +3 -3
  36. package/SVF-doxygen/html/html/LocationSet_8cpp_source.html +1 -1
  37. package/SVF-doxygen/html/html/LocationSet_8h_source.html +1 -1
  38. package/SVF-doxygen/html/html/LockAnalysis_8cpp_source.html +34 -34
  39. package/SVF-doxygen/html/html/LockAnalysis_8h_source.html +114 -114
  40. package/SVF-doxygen/html/html/LockResultValidator_8cpp_source.html +2 -2
  41. package/SVF-doxygen/html/html/LockResultValidator_8h_source.html +7 -7
  42. package/SVF-doxygen/html/html/MHP_8cpp.html +2 -2
  43. package/SVF-doxygen/html/html/MHP_8cpp_source.html +94 -94
  44. package/SVF-doxygen/html/html/MHP_8h_source.html +135 -135
  45. package/SVF-doxygen/html/html/MSSAMuChi_8h_source.html +6 -6
  46. package/SVF-doxygen/html/html/MTAAnnotator_8cpp_source.html +2 -2
  47. package/SVF-doxygen/html/html/MTAAnnotator_8h_source.html +2 -2
  48. package/SVF-doxygen/html/html/MTAResultValidator_8cpp_source.html +10 -10
  49. package/SVF-doxygen/html/html/MTAResultValidator_8h_source.html +6 -6
  50. package/SVF-doxygen/html/html/MTAStat_8cpp_source.html +33 -33
  51. package/SVF-doxygen/html/html/MTAStat_8h_source.html +14 -14
  52. package/SVF-doxygen/html/html/MTA_8cpp_source.html +28 -28
  53. package/SVF-doxygen/html/html/MTA_8h_source.html +24 -24
  54. package/SVF-doxygen/html/html/MemPartition_8cpp_source.html +6 -6
  55. package/SVF-doxygen/html/html/MemPartition_8h_source.html +4 -4
  56. package/SVF-doxygen/html/html/MemRegion_8cpp_source.html +50 -50
  57. package/SVF-doxygen/html/html/MemRegion_8h_source.html +93 -93
  58. package/SVF-doxygen/html/html/MemSSA_8cpp_source.html +59 -59
  59. package/SVF-doxygen/html/html/MemSSA_8h_source.html +103 -103
  60. package/SVF-doxygen/html/html/MutablePointsToDS_8h_source.html +185 -185
  61. package/SVF-doxygen/html/html/PAGBuilderFromFile_8cpp_source.html +1 -1
  62. package/SVF-doxygen/html/html/PAGBuilderFromFile_8h_source.html +1 -1
  63. package/SVF-doxygen/html/html/PCG_8cpp_source.html +14 -14
  64. package/SVF-doxygen/html/html/PCG_8h_source.html +52 -52
  65. package/SVF-doxygen/html/html/PEGGrammar_8txt.html +14 -32
  66. package/SVF-doxygen/html/html/PersistentPointsToCache_8h_source.html +40 -40
  67. package/SVF-doxygen/html/html/PersistentPointsToDS_8h_source.html +181 -181
  68. package/SVF-doxygen/html/html/PointerAnalysisImpl_8cpp_source.html +15 -15
  69. package/SVF-doxygen/html/html/PointerAnalysisImpl_8h_source.html +30 -30
  70. package/SVF-doxygen/html/html/PointerAnalysis_8cpp_source.html +1 -1
  71. package/SVF-doxygen/html/html/PointerAnalysis_8h_source.html +1 -1
  72. package/SVF-doxygen/html/html/ProgSlice_8cpp_source.html +2 -2
  73. package/SVF-doxygen/html/html/ProgSlice_8h_source.html +60 -60
  74. package/SVF-doxygen/html/html/SVFGBuilder_8cpp_source.html +2 -2
  75. package/SVF-doxygen/html/html/SVFGBuilder_8h_source.html +2 -2
  76. package/SVF-doxygen/html/html/SVFGNode_8h_source.html +1 -1
  77. package/SVF-doxygen/html/html/SVFGOPT_8h_source.html +1 -1
  78. package/SVF-doxygen/html/html/SVFGReadWrite_8cpp_source.html +2 -2
  79. package/SVF-doxygen/html/html/SVFGStat_8cpp_source.html +19 -19
  80. package/SVF-doxygen/html/html/SVFGStat_8h_source.html +1 -1
  81. package/SVF-doxygen/html/html/SVFG_8cpp_source.html +12 -12
  82. package/SVF-doxygen/html/html/SVFG_8h_source.html +5 -5
  83. package/SVF-doxygen/html/html/SVFStatements_8h_source.html +1 -1
  84. package/SVF-doxygen/html/html/SVFUtil_8h_source.html +1 -1
  85. package/SVF-doxygen/html/html/SaberAnnotator_8cpp_source.html +3 -3
  86. package/SVF-doxygen/html/html/SaberAnnotator_8h_source.html +2 -2
  87. package/SVF-doxygen/html/html/SaberCheckerAPI_8cpp_source.html +1 -1
  88. package/SVF-doxygen/html/html/SaberCheckerAPI_8h_source.html +1 -1
  89. package/SVF-doxygen/html/html/SaberCondAllocator_8cpp_source.html +1 -1
  90. package/SVF-doxygen/html/html/SaberCondAllocator_8h_source.html +1 -1
  91. package/SVF-doxygen/html/html/SaberSVFGBuilder_8cpp_source.html +3 -3
  92. package/SVF-doxygen/html/html/SaberSVFGBuilder_8h_source.html +1 -1
  93. package/SVF-doxygen/html/html/SrcSnkDDA_8cpp_source.html +13 -13
  94. package/SVF-doxygen/html/html/SrcSnkDDA_8h_source.html +66 -66
  95. package/SVF-doxygen/html/html/SrcSnkSolver_8h_source.html +1 -1
  96. package/SVF-doxygen/html/html/Steensgaard_8cpp_source.html +4 -4
  97. package/SVF-doxygen/html/html/Steensgaard_8h_source.html +6 -6
  98. package/SVF-doxygen/html/html/TCT_8cpp_source.html +44 -44
  99. package/SVF-doxygen/html/html/TCT_8h_source.html +93 -93
  100. package/SVF-doxygen/html/html/TypeAnalysis_8cpp_source.html +1 -1
  101. package/SVF-doxygen/html/html/TypeAnalysis_8h_source.html +2 -2
  102. package/SVF-doxygen/html/html/VersionedFlowSensitiveStat_8cpp_source.html +2 -2
  103. package/SVF-doxygen/html/html/VersionedFlowSensitive_8cpp_source.html +25 -25
  104. package/SVF-doxygen/html/html/VersionedFlowSensitive_8h_source.html +38 -38
  105. package/SVF-doxygen/html/html/WPAPass_8cpp_source.html +5 -5
  106. package/SVF-doxygen/html/html/WPAStat_8h_source.html +2 -2
  107. package/SVF-doxygen/html/html/classSVF_1_1ActualINSVFGNode.html +2 -2
  108. package/SVF-doxygen/html/html/classSVF_1_1ActualOUTSVFGNode.html +2 -2
  109. package/SVF-doxygen/html/html/classSVF_1_1AliasCFLGraphBuilder-members.html +13 -10
  110. package/SVF-doxygen/html/html/classSVF_1_1AliasCFLGraphBuilder.html +190 -2
  111. package/SVF-doxygen/html/html/classSVF_1_1AliasDDAClient.html +22 -22
  112. package/SVF-doxygen/html/html/classSVF_1_1Andersen.html +102 -102
  113. package/SVF-doxygen/html/html/classSVF_1_1AndersenBase.html +43 -43
  114. package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD.html +20 -20
  115. package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR.html +6 -6
  116. package/SVF-doxygen/html/html/classSVF_1_1AndersenStat.html +16 -16
  117. package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff.html +19 -19
  118. package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl.html +39 -39
  119. package/SVF-doxygen/html/html/classSVF_1_1CFLAlias.html +1 -1
  120. package/SVF-doxygen/html/html/classSVF_1_1CallCHI.html +2 -2
  121. package/SVF-doxygen/html/html/classSVF_1_1CallMU.html +2 -2
  122. package/SVF-doxygen/html/html/classSVF_1_1CondPTAImpl.html +1 -1
  123. package/SVF-doxygen/html/html/classSVF_1_1ContextDDA.html +100 -100
  124. package/SVF-doxygen/html/html/classSVF_1_1DDAClient.html +51 -51
  125. package/SVF-doxygen/html/html/classSVF_1_1DDAPass.html +58 -58
  126. package/SVF-doxygen/html/html/classSVF_1_1DDAStat.html +165 -165
  127. package/SVF-doxygen/html/html/classSVF_1_1DDAVFSolver.html +286 -286
  128. package/SVF-doxygen/html/html/classSVF_1_1DFPTData.html +26 -26
  129. package/SVF-doxygen/html/html/classSVF_1_1DiffPTData.html +11 -11
  130. package/SVF-doxygen/html/html/classSVF_1_1DistinctMRG.html +4 -4
  131. package/SVF-doxygen/html/html/classSVF_1_1DoubleFreeChecker.html +4 -4
  132. package/SVF-doxygen/html/html/classSVF_1_1EntryCHI.html +2 -2
  133. package/SVF-doxygen/html/html/classSVF_1_1ExtAPI-members.html +5 -4
  134. package/SVF-doxygen/html/html/classSVF_1_1ExtAPI.html +40 -5
  135. package/SVF-doxygen/html/html/classSVF_1_1FSMPTA.html +30 -30
  136. package/SVF-doxygen/html/html/classSVF_1_1FileChecker.html +3 -3
  137. package/SVF-doxygen/html/html/classSVF_1_1FlowDDA.html +71 -71
  138. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive.html +7 -7
  139. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveStat.html +1 -1
  140. package/SVF-doxygen/html/html/classSVF_1_1ForkJoinAnalysis.html +218 -218
  141. package/SVF-doxygen/html/html/classSVF_1_1FormalINSVFGNode.html +2 -2
  142. package/SVF-doxygen/html/html/classSVF_1_1FormalOUTSVFGNode.html +2 -2
  143. package/SVF-doxygen/html/html/classSVF_1_1FunptrDDAClient.html +19 -19
  144. package/SVF-doxygen/html/html/classSVF_1_1InterDisjointMRG.html +1 -1
  145. package/SVF-doxygen/html/html/classSVF_1_1IntraDisjointMRG.html +7 -7
  146. package/SVF-doxygen/html/html/classSVF_1_1LeakChecker.html +17 -17
  147. package/SVF-doxygen/html/html/classSVF_1_1LoadMU.html +2 -2
  148. package/SVF-doxygen/html/html/classSVF_1_1LockAnalysis.html +334 -334
  149. package/SVF-doxygen/html/html/classSVF_1_1LockResultValidator.html +9 -9
  150. package/SVF-doxygen/html/html/classSVF_1_1MHP.html +246 -246
  151. package/SVF-doxygen/html/html/classSVF_1_1MHPValidator.html +7 -7
  152. package/SVF-doxygen/html/html/classSVF_1_1MRGenerator.html +200 -200
  153. package/SVF-doxygen/html/html/classSVF_1_1MSSACHI.html +2 -2
  154. package/SVF-doxygen/html/html/classSVF_1_1MSSADEF.html +1 -1
  155. package/SVF-doxygen/html/html/classSVF_1_1MSSAMU.html +2 -2
  156. package/SVF-doxygen/html/html/classSVF_1_1MSSAPHI.html +1 -1
  157. package/SVF-doxygen/html/html/classSVF_1_1MSSAPHISVFGNode.html +2 -2
  158. package/SVF-doxygen/html/html/classSVF_1_1MTA.html +53 -53
  159. package/SVF-doxygen/html/html/classSVF_1_1MTAAnnotator.html +4 -4
  160. package/SVF-doxygen/html/html/classSVF_1_1MTAResultValidator.html +22 -22
  161. package/SVF-doxygen/html/html/classSVF_1_1MTASVFGBuilder.html +181 -181
  162. package/SVF-doxygen/html/html/classSVF_1_1MTAStat.html +44 -44
  163. package/SVF-doxygen/html/html/classSVF_1_1MemRegion.html +23 -23
  164. package/SVF-doxygen/html/html/classSVF_1_1MemSSA.html +267 -267
  165. package/SVF-doxygen/html/html/classSVF_1_1MemSSAStat.html +18 -18
  166. package/SVF-doxygen/html/html/classSVF_1_1MutableDFPTData.html +128 -128
  167. package/SVF-doxygen/html/html/classSVF_1_1MutableDiffPTData.html +55 -55
  168. package/SVF-doxygen/html/html/classSVF_1_1MutableIncDFPTData.html +88 -88
  169. package/SVF-doxygen/html/html/classSVF_1_1MutablePTData.html +78 -78
  170. package/SVF-doxygen/html/html/classSVF_1_1MutableVersionedPTData.html +77 -77
  171. package/SVF-doxygen/html/html/classSVF_1_1PCG.html +131 -131
  172. package/SVF-doxygen/html/html/classSVF_1_1PTData.html +32 -32
  173. package/SVF-doxygen/html/html/classSVF_1_1PersistentDFPTData.html +107 -107
  174. package/SVF-doxygen/html/html/classSVF_1_1PersistentDiffPTData.html +66 -66
  175. package/SVF-doxygen/html/html/classSVF_1_1PersistentIncDFPTData.html +84 -84
  176. package/SVF-doxygen/html/html/classSVF_1_1PersistentPTData.html +77 -77
  177. package/SVF-doxygen/html/html/classSVF_1_1PersistentPointsToCache.html +134 -134
  178. package/SVF-doxygen/html/html/classSVF_1_1PersistentVersionedPTData.html +77 -77
  179. package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.html +3 -3
  180. package/SVF-doxygen/html/html/classSVF_1_1ProgSlice.html +161 -161
  181. package/SVF-doxygen/html/html/classSVF_1_1RaceValidator.html +7 -7
  182. package/SVF-doxygen/html/html/classSVF_1_1RetMU.html +2 -2
  183. package/SVF-doxygen/html/html/classSVF_1_1SVFG.html +22 -22
  184. package/SVF-doxygen/html/html/classSVF_1_1SVFGBuilder.html +4 -4
  185. package/SVF-doxygen/html/html/classSVF_1_1SVFGNodeLockSpan.html +23 -23
  186. package/SVF-doxygen/html/html/classSVF_1_1SaberAnnotator.html +5 -5
  187. package/SVF-doxygen/html/html/classSVF_1_1SaberSVFGBuilder.html +2 -2
  188. package/SVF-doxygen/html/html/classSVF_1_1SrcSnkDDA.html +157 -157
  189. package/SVF-doxygen/html/html/classSVF_1_1Steensgaard.html +15 -15
  190. package/SVF-doxygen/html/html/classSVF_1_1StoreCHI.html +2 -2
  191. package/SVF-doxygen/html/html/classSVF_1_1TCT.html +264 -264
  192. package/SVF-doxygen/html/html/classSVF_1_1TCTEdge.html +13 -13
  193. package/SVF-doxygen/html/html/classSVF_1_1TCTNode.html +20 -20
  194. package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis.html +1 -1
  195. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive.html +100 -100
  196. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitiveStat.html +8 -8
  197. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive_1_1SCC.html +1 -1
  198. package/SVF-doxygen/html/html/classSVF_1_1VersionedPTData.html +11 -11
  199. package/SVF-doxygen/html/html/classSVF_1_1WPAPass.html +6 -6
  200. package/SVF-doxygen/html/html/dda_8cpp.html +2 -2
  201. package/SVF-doxygen/html/html/dda_8cpp_source.html +2 -2
  202. package/SVF-doxygen/html/html/functions_a.html +11 -5
  203. package/SVF-doxygen/html/html/functions_c.html +21 -18
  204. package/SVF-doxygen/html/html/functions_f.html +6 -6
  205. package/SVF-doxygen/html/html/functions_func.html +16 -10
  206. package/SVF-doxygen/html/html/functions_func_c.html +19 -16
  207. package/SVF-doxygen/html/html/functions_func_i.html +11 -8
  208. package/SVF-doxygen/html/html/functions_i.html +11 -8
  209. package/SVF-doxygen/html/html/functions_l.html +5 -5
  210. package/SVF-doxygen/html/html/functions_p.html +6 -6
  211. package/SVF-doxygen/html/html/functions_r.html +3 -7
  212. package/SVF-doxygen/html/html/functions_s.html +16 -14
  213. package/SVF-doxygen/html/html/functions_v.html +6 -6
  214. package/SVF-doxygen/html/html/functions_w.html +11 -11
  215. package/SVF-doxygen/html/html/globals_g.html +3 -3
  216. package/SVF-doxygen/html/html/globals_v.html +1 -2
  217. package/SVF-doxygen/html/html/globals_vars.html +3 -4
  218. package/SVF-doxygen/html/html/mta_8cpp.html +2 -2
  219. package/SVF-doxygen/html/html/mta_8cpp_source.html +2 -2
  220. package/SVF-doxygen/html/html/namespaceSVF.html +11 -11
  221. package/SVF-doxygen/html/html/search/all_1.js +2 -0
  222. package/SVF-doxygen/html/html/search/all_10.js +5 -5
  223. package/SVF-doxygen/html/html/search/all_11.js +2 -2
  224. package/SVF-doxygen/html/html/search/all_12.js +8 -8
  225. package/SVF-doxygen/html/html/search/all_13.js +2 -2
  226. package/SVF-doxygen/html/html/search/all_14.js +1 -1
  227. package/SVF-doxygen/html/html/search/all_15.js +4 -4
  228. package/SVF-doxygen/html/html/search/all_16.js +2 -2
  229. package/SVF-doxygen/html/html/search/all_3.js +1 -0
  230. package/SVF-doxygen/html/html/search/all_6.js +2 -2
  231. package/SVF-doxygen/html/html/search/all_7.js +2 -2
  232. package/SVF-doxygen/html/html/search/all_9.js +2 -1
  233. package/SVF-doxygen/html/html/search/all_c.js +3 -3
  234. package/SVF-doxygen/html/html/search/all_e.js +2 -2
  235. package/SVF-doxygen/html/html/search/functions_0.js +2 -0
  236. package/SVF-doxygen/html/html/search/functions_2.js +1 -0
  237. package/SVF-doxygen/html/html/search/functions_8.js +1 -0
  238. package/SVF-doxygen/html/html/search/variables_13.js +1 -1
  239. package/SVF-doxygen/html/html/search/variables_14.js +1 -1
  240. package/SVF-doxygen/html/html/search/variables_15.js +1 -1
  241. package/SVF-doxygen/html/html/search/variables_7.js +2 -2
  242. package/SVF-doxygen/html/html/search/variables_e.js +1 -1
  243. package/SVF-doxygen/html/html/structSVF_1_1MemRegion_1_1equalMemRegion.html +3 -3
  244. package/SVF-doxygen/html/html/structSVF_1_1VersionedFlowSensitive_1_1SCC_1_1NodeData.html +4 -4
  245. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01TCT_01_5_01_4.html +15 -15
  246. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01Inverse_3_01SVF_1_1TCTNode_01_5_01_4_01_4.html +1 -1
  247. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1TCTNode_01_5_01_4.html +1 -1
  248. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1TCT_01_5_01_4.html +2 -2
  249. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1SVFGNodeLockSpan_01_4.html +3 -3
  250. package/SVF-doxygen/html/html/svf-ex_8cpp.html +1 -1
  251. package/SVF-doxygen/html/html/svf-ex_8cpp_source.html +1 -1
  252. package/include/CFL/CFLGraphBuilder.h +9 -0
  253. package/include/CFL/PEGGrammar.txt +4 -8
  254. package/include/DDA/ContextDDA.h +29 -0
  255. package/include/DDA/DDAClient.h +23 -0
  256. package/include/DDA/DDAPass.h +22 -0
  257. package/include/DDA/DDAStat.h +22 -0
  258. package/include/DDA/DDAVFSolver.h +22 -0
  259. package/include/DDA/FlowDDA.h +29 -0
  260. package/include/MSSA/MSSAMuChi.h +1 -1
  261. package/include/MSSA/MemPartition.h +1 -1
  262. package/include/MSSA/MemRegion.h +5 -1
  263. package/include/MSSA/MemSSA.h +7 -1
  264. package/include/MSSA/SVFGBuilder.h +1 -1
  265. package/include/MTA/FSMPTA.h +26 -0
  266. package/include/MTA/LockAnalysis.h +22 -0
  267. package/include/MTA/MHP.h +22 -0
  268. package/include/MTA/MTA.h +27 -1
  269. package/include/MTA/MTAStat.h +22 -0
  270. package/include/MTA/PCG.h +22 -0
  271. package/include/MTA/TCT.h +22 -0
  272. package/include/MemoryModel/AbstractPointsToDS.h +34 -0
  273. package/include/MemoryModel/ConditionalPT.h +1 -1
  274. package/include/MemoryModel/LocationSet.h +1 -1
  275. package/include/MemoryModel/MutablePointsToDS.h +32 -0
  276. package/include/MemoryModel/PAGBuilderFromFile.h +2 -2
  277. package/include/MemoryModel/PersistentPointsToCache.h +3 -1
  278. package/include/MemoryModel/PersistentPointsToDS.h +10 -0
  279. package/include/MemoryModel/PointerAnalysis.h +1 -1
  280. package/include/MemoryModel/PointerAnalysisImpl.h +1 -1
  281. package/include/MemoryModel/SVFStatements.h +1 -1
  282. package/include/SABER/DoubleFreeChecker.h +1 -1
  283. package/include/SABER/FileChecker.h +1 -1
  284. package/include/SABER/LeakChecker.h +1 -1
  285. package/include/SABER/ProgSlice.h +8 -1
  286. package/include/SABER/SaberAnnotator.h +1 -1
  287. package/include/SABER/SaberCheckerAPI.h +1 -1
  288. package/include/SABER/SaberCondAllocator.h +1 -1
  289. package/include/SABER/SaberSVFGBuilder.h +1 -1
  290. package/include/SABER/SrcSnkDDA.h +8 -1
  291. package/include/SABER/SrcSnkSolver.h +1 -1
  292. package/include/Util/ExtAPI.h +3 -0
  293. package/include/Util/ExtAPI.json +1456 -44
  294. package/include/WPA/Andersen.h +5 -0
  295. package/include/WPA/TypeAnalysis.h +1 -1
  296. package/include/WPA/VersionedFlowSensitive.h +4 -0
  297. package/lib/CFL/CFLGraphBuilder.cpp +44 -0
  298. package/lib/DDA/ContextDDA.cpp +22 -0
  299. package/lib/DDA/DDAClient.cpp +22 -0
  300. package/lib/DDA/DDAPass.cpp +23 -0
  301. package/lib/DDA/DDAStat.cpp +22 -0
  302. package/lib/DDA/FlowDDA.cpp +22 -0
  303. package/lib/MTA/FSMPTA.cpp +22 -0
  304. package/lib/MTA/LockAnalysis.cpp +22 -0
  305. package/lib/MTA/MHP.cpp +23 -1
  306. package/lib/MTA/MTA.cpp +23 -0
  307. package/lib/MTA/MTAStat.cpp +22 -0
  308. package/lib/MTA/PCG.cpp +22 -0
  309. package/lib/MTA/TCT.cpp +23 -0
  310. package/lib/MemoryModel/LocationSet.cpp +1 -1
  311. package/lib/MemoryModel/PAGBuilderFromFile.cpp +1 -1
  312. package/lib/MemoryModel/PointerAnalysis.cpp +1 -1
  313. package/lib/MemoryModel/PointerAnalysisImpl.cpp +23 -0
  314. package/lib/SABER/DoubleFreeChecker.cpp +1 -1
  315. package/lib/SABER/FileChecker.cpp +1 -1
  316. package/lib/SABER/LeakChecker.cpp +1 -1
  317. package/lib/SABER/ProgSlice.cpp +1 -1
  318. package/lib/SABER/SaberAnnotator.cpp +1 -1
  319. package/lib/SABER/SaberCheckerAPI.cpp +1 -1
  320. package/lib/SABER/SaberCondAllocator.cpp +1 -1
  321. package/lib/SABER/SaberSVFGBuilder.cpp +1 -1
  322. package/lib/SABER/SrcSnkDDA.cpp +1 -1
  323. package/lib/Util/ExtAPI.cpp +42 -4
  324. package/lib/WPA/Steensgaard.cpp +22 -0
  325. package/lib/WPA/TypeAnalysis.cpp +1 -1
  326. package/lib/WPA/WPAPass.cpp +1 -1
  327. package/package.json +1 -1
@@ -178,6 +178,8 @@ Public Member Functions</h2></td></tr>
178
178
  <tr class="separator:a82ebf71c5214f891f17e842e0b133b4f"><td class="memSeparator" colspan="2">&#160;</td></tr>
179
179
  <tr class="memitem:ac6d6bdc51a6b75d6d5741cb751559fe4"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1ExtAPI.html#ac6d6bdc51a6b75d6d5741cb751559fe4">is_realloc</a> (const <a class="el" href="classSVF_1_1SVFFunction.html">SVFFunction</a> *<a class="el" href="PEGGrammar_8txt.html#acc7b4cf736579c4d83be2316d5a9e5f2">F</a>)</td></tr>
180
180
  <tr class="separator:ac6d6bdc51a6b75d6d5741cb751559fe4"><td class="memSeparator" colspan="2">&#160;</td></tr>
181
+ <tr class="memitem:a5e8b816a3eb894f6b09403852df0d01b"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1ExtAPI.html#a5e8b816a3eb894f6b09403852df0d01b">is_sameSignature</a> (const <a class="el" href="classSVF_1_1SVFFunction.html">SVFFunction</a> *<a class="el" href="PEGGrammar_8txt.html#acc7b4cf736579c4d83be2316d5a9e5f2">F</a>)</td></tr>
182
+ <tr class="separator:a5e8b816a3eb894f6b09403852df0d01b"><td class="memSeparator" colspan="2">&#160;</td></tr>
181
183
  <tr class="memitem:a21f45c806672255c044d39490990eae2"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1ExtAPI.html#a21f45c806672255c044d39490990eae2">is_ext</a> (const <a class="el" href="classSVF_1_1SVFFunction.html">SVFFunction</a> *<a class="el" href="PEGGrammar_8txt.html#acc7b4cf736579c4d83be2316d5a9e5f2">F</a>)</td></tr>
182
184
  <tr class="separator:a21f45c806672255c044d39490990eae2"><td class="memSeparator" colspan="2">&#160;</td></tr>
183
185
  </table><table class="memberdecls">
@@ -577,7 +579,7 @@ Static Private Attributes</h2></td></tr>
577
579
  </div><div class="memdoc">
578
580
 
579
581
  <p class="definition">Definition at line <a class="el" href="ExtAPI_8cpp_source.html#l00354">354</a> of file <a class="el" href="ExtAPI_8cpp_source.html">ExtAPI.cpp</a>.</p>
580
- <div class="fragment"><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160;{</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; <a class="code" href="structcJSON.html">cJSON</a> *<a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a> = <a class="code" href="classSVF_1_1ExtAPI.html#ab61fbc80acc89e26df2b451cbab81246">get_FunJson</a>(funName);</div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160; <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a> = <span class="stringliteral">&quot;&quot;</span>;</div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160; <span class="keywordflow">if</span> (item != <span class="keyword">nullptr</span>)</div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160; {</div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; <span class="comment">// Get the first operation of the function</span></div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160; <a class="code" href="structcJSON.html">cJSON</a> *obj = item-&gt;<a class="code" href="structcJSON.html#a401b274c2da358dac5c23ab8b2c71f85">child</a>;</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; <span class="keywordflow">if</span> (strcmp(obj-&gt;<a class="code" href="structcJSON.html#aa6b47e9a4b0e0a26f519b1a2b6739983">string</a>, <a class="code" href="ExtAPI_8h.html#a8af07ec3fec2ac9636dfb81bb7a8961e">JSON_OPT_FUNCTIONTYPE</a>) == 0)</div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; type = obj-&gt;<a class="code" href="structcJSON.html#ad43f8de2571e504c4c5ce0a36990e6e1">valuestring</a>;</div><div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; assert(<span class="keyword">false</span> &amp;&amp; <span class="stringliteral">&quot;The function operation format is illegal!&quot;</span>);</div><div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160; }</div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160; std::map&lt;std::string, extType&gt;::const_iterator it = <a class="code" href="classSVF_1_1ExtAPI.html#a95ac45d2367b3d3124d5d98958e74cc5">type_pair</a>.find(type);</div><div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; <span class="keywordflow">if</span> (it == <a class="code" href="classSVF_1_1ExtAPI.html#a95ac45d2367b3d3124d5d98958e74cc5">type_pair</a>.end())</div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ExtAPI.html#a5df65081e82a05223ce781660ee199caa7ad779bd3527f7cd220ca74c736fd2df">EFT_NULL</a>;</div><div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; <span class="keywordflow">return</span> it-&gt;second;</div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160;}</div><div class="ttc" id="ExtAPI_8h_html_a8af07ec3fec2ac9636dfb81bb7a8961e"><div class="ttname"><a href="ExtAPI_8h.html#a8af07ec3fec2ac9636dfb81bb7a8961e">JSON_OPT_FUNCTIONTYPE</a></div><div class="ttdeci">#define JSON_OPT_FUNCTIONTYPE</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8h_source.html#l00041">ExtAPI.h:41</a></div></div>
582
+ <div class="fragment"><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160;{</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; <a class="code" href="structcJSON.html">cJSON</a> *<a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a> = <a class="code" href="classSVF_1_1ExtAPI.html#ab61fbc80acc89e26df2b451cbab81246">get_FunJson</a>(funName);</div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160; <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a> = <span class="stringliteral">&quot;&quot;</span>;</div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160; <span class="keywordflow">if</span> (item != <span class="keyword">nullptr</span>)</div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160; {</div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; <span class="comment">// Get the first operation of the function</span></div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160; <a class="code" href="structcJSON.html">cJSON</a> *obj = item-&gt;<a class="code" href="structcJSON.html#a401b274c2da358dac5c23ab8b2c71f85">child</a>-&gt;<a class="code" href="structcJSON.html#ade862b880379b5e2a591f7326401fa8d">next</a>-&gt;<a class="code" href="structcJSON.html#ade862b880379b5e2a591f7326401fa8d">next</a>;</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; <span class="keywordflow">if</span> (strcmp(obj-&gt;<a class="code" href="structcJSON.html#aa6b47e9a4b0e0a26f519b1a2b6739983">string</a>, <a class="code" href="ExtAPI_8h.html#a8af07ec3fec2ac9636dfb81bb7a8961e">JSON_OPT_FUNCTIONTYPE</a>) == 0)</div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; type = obj-&gt;<a class="code" href="structcJSON.html#ad43f8de2571e504c4c5ce0a36990e6e1">valuestring</a>;</div><div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; assert(<span class="keyword">false</span> &amp;&amp; <span class="stringliteral">&quot;The function operation format is illegal!&quot;</span>);</div><div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160; }</div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160; std::map&lt;std::string, extType&gt;::const_iterator it = <a class="code" href="classSVF_1_1ExtAPI.html#a95ac45d2367b3d3124d5d98958e74cc5">type_pair</a>.find(type);</div><div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; <span class="keywordflow">if</span> (it == <a class="code" href="classSVF_1_1ExtAPI.html#a95ac45d2367b3d3124d5d98958e74cc5">type_pair</a>.end())</div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ExtAPI.html#a5df65081e82a05223ce781660ee199caa7ad779bd3527f7cd220ca74c736fd2df">EFT_NULL</a>;</div><div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; <span class="keywordflow">return</span> it-&gt;second;</div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160;}</div><div class="ttc" id="ExtAPI_8h_html_a8af07ec3fec2ac9636dfb81bb7a8961e"><div class="ttname"><a href="ExtAPI_8h.html#a8af07ec3fec2ac9636dfb81bb7a8961e">JSON_OPT_FUNCTIONTYPE</a></div><div class="ttdeci">#define JSON_OPT_FUNCTIONTYPE</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8h_source.html#l00041">ExtAPI.h:41</a></div></div>
581
583
  <div class="ttc" id="classSVF_1_1ExtAPI_html_ab61fbc80acc89e26df2b451cbab81246"><div class="ttname"><a href="classSVF_1_1ExtAPI.html#ab61fbc80acc89e26df2b451cbab81246">SVF::ExtAPI::get_FunJson</a></div><div class="ttdeci">cJSON * get_FunJson(const std::string &amp;funName)</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8cpp_source.html#l00295">ExtAPI.cpp:295</a></div></div>
582
584
  <div class="ttc" id="classSVF_1_1ExtAPI_html_a95ac45d2367b3d3124d5d98958e74cc5"><div class="ttname"><a href="classSVF_1_1ExtAPI.html#a95ac45d2367b3d3124d5d98958e74cc5">SVF::ExtAPI::type_pair</a></div><div class="ttdeci">std::map&lt; std::string, extType &gt; type_pair</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8h_source.html#l00154">ExtAPI.h:154</a></div></div>
583
585
  <div class="ttc" id="structcJSON_html_ad43f8de2571e504c4c5ce0a36990e6e1"><div class="ttname"><a href="structcJSON.html#ad43f8de2571e504c4c5ce0a36990e6e1">cJSON::valuestring</a></div><div class="ttdeci">char * valuestring</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8h_source.html#l00115">cJSON.h:115</a></div></div>
@@ -586,6 +588,7 @@ Static Private Attributes</h2></td></tr>
586
588
  <div class="ttc" id="structcJSON_html_aa6b47e9a4b0e0a26f519b1a2b6739983"><div class="ttname"><a href="structcJSON.html#aa6b47e9a4b0e0a26f519b1a2b6739983">cJSON::string</a></div><div class="ttdeci">char * string</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8h_source.html#l00122">cJSON.h:122</a></div></div>
587
589
  <div class="ttc" id="cJSON_8cpp_html_a3f9a0d3265a6254722587175dac3e4dc"><div class="ttname"><a href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a></div><div class="ttdeci">newitem type</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8cpp_source.html#l02739">cJSON.cpp:2739</a></div></div>
588
590
  <div class="ttc" id="classSVF_1_1ExtAPI_html_a5df65081e82a05223ce781660ee199caa7ad779bd3527f7cd220ca74c736fd2df"><div class="ttname"><a href="classSVF_1_1ExtAPI.html#a5df65081e82a05223ce781660ee199caa7ad779bd3527f7cd220ca74c736fd2df">SVF::ExtAPI::EFT_NULL</a></div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8h_source.html#l00149">ExtAPI.h:149</a></div></div>
591
+ <div class="ttc" id="structcJSON_html_ade862b880379b5e2a591f7326401fa8d"><div class="ttname"><a href="structcJSON.html#ade862b880379b5e2a591f7326401fa8d">cJSON::next</a></div><div class="ttdeci">struct cJSON * next</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8h_source.html#l00106">cJSON.h:106</a></div></div>
589
592
  <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>
590
593
  <div class="ttc" id="cJSON_8h_html_ac76cea59d438ba893d2f82aabb367d14"><div class="ttname"><a href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a></div><div class="ttdeci">cJSON * item</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8h_source.html#l00222">cJSON.h:222</a></div></div>
591
594
  </div><!-- fragment -->
@@ -608,7 +611,7 @@ Static Private Attributes</h2></td></tr>
608
611
  </div><div class="memdoc">
609
612
 
610
613
  <p class="definition">Definition at line <a class="el" href="ExtAPI_8cpp_source.html#l00302">302</a> of file <a class="el" href="ExtAPI_8cpp_source.html">ExtAPI.cpp</a>.</p>
611
- <div class="fragment"><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160;{</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; std::vector&lt;ExtAPI::Operation&gt; allOperations;</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; <a class="code" href="structcJSON.html">cJSON</a> *<a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a> = <a class="code" href="classSVF_1_1ExtAPI.html#ab61fbc80acc89e26df2b451cbab81246">get_FunJson</a>(funName);</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; <span class="keywordflow">if</span> (item != <span class="keyword">nullptr</span>)</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; {</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; <a class="code" href="structcJSON.html">cJSON</a> *obj = item-&gt;<a class="code" href="structcJSON.html#a401b274c2da358dac5c23ab8b2c71f85">child</a>;</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; <span class="comment">// Get the first operation of the function</span></div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; obj = obj -&gt; <a class="code" href="cJSON_8cpp.html#a2599f74bdbbc1b3fd1ba8db3789a0be7">next</a> -&gt; <a class="code" href="cJSON_8cpp.html#a2599f74bdbbc1b3fd1ba8db3789a0be7">next</a>;</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; std::vector&lt;ExtAPI::Operation *&gt; operations;</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; <span class="keywordflow">while</span> (obj)</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; {</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> op;</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; std::vector&lt;std::string&gt; operandsStr;</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; std::map&lt;std::string, NodeID&gt; opMap;</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; <span class="keywordflow">if</span> (obj-&gt;<a class="code" href="structcJSON.html#ab13084c574681593b12f6e0a3db0dcfc">type</a> == <a class="code" href="cJSON_8h.html#a22c6e13481c090629afbd77b7cebd24c">cJSON_Object</a> || obj-&gt;<a class="code" href="structcJSON.html#ab13084c574681593b12f6e0a3db0dcfc">type</a> == <a class="code" href="cJSON_8h.html#a57cffa126740a8efcdcb7bcef80e8897">cJSON_Array</a>)</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; {</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; op = <a class="code" href="classSVF_1_1ExtAPI.html#a1930d622cd47f7fd875e1964b65ec506">get_opName</a>(obj -&gt; <span class="keywordtype">string</span>);</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; <a class="code" href="structcJSON.html">cJSON</a> *value = obj-&gt;<a class="code" href="structcJSON.html#a401b274c2da358dac5c23ab8b2c71f85">child</a>;</div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; std::vector&lt;std::string&gt; args;</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; <span class="keywordflow">while</span> (value)</div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; {</div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; <span class="keywordflow">if</span> (value-&gt;<a class="code" href="structcJSON.html#ab13084c574681593b12f6e0a3db0dcfc">type</a> == <a class="code" href="cJSON_8h.html#aa2cb4765308e2bbdf01988b2acdf92d9">cJSON_String</a>)</div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; {</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; operandsStr.push_back(value-&gt;<a class="code" href="structcJSON.html#ad43f8de2571e504c4c5ce0a36990e6e1">valuestring</a>);</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; }</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; value = value-&gt;<a class="code" href="structcJSON.html#ade862b880379b5e2a591f7326401fa8d">next</a>;</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; }</div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; }</div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160; <a class="code" href="classSVF_1_1ExtAPI_1_1Operation.html">ExtAPI::Operation</a> operation(op, operandsStr);</div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; allOperations.push_back(operation);</div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; operations.clear();</div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160;</div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; obj = obj -&gt; <a class="code" href="cJSON_8cpp.html#a2599f74bdbbc1b3fd1ba8db3789a0be7">next</a>;</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; }</div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; }</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; <span class="keywordflow">return</span> allOperations;</div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160;}</div><div class="ttc" id="cJSON_8cpp_html_a2599f74bdbbc1b3fd1ba8db3789a0be7"><div class="ttname"><a href="cJSON_8cpp.html#a2599f74bdbbc1b3fd1ba8db3789a0be7">next</a></div><div class="ttdeci">item next</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8cpp_source.html#l02224">cJSON.cpp:2224</a></div></div>
614
+ <div class="fragment"><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160;{</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; std::vector&lt;ExtAPI::Operation&gt; allOperations;</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; <a class="code" href="structcJSON.html">cJSON</a> *<a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a> = <a class="code" href="classSVF_1_1ExtAPI.html#ab61fbc80acc89e26df2b451cbab81246">get_FunJson</a>(funName);</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; <span class="keywordflow">if</span> (item != <span class="keyword">nullptr</span>)</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; {</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; <a class="code" href="structcJSON.html">cJSON</a> *obj = item-&gt;<a class="code" href="structcJSON.html#a401b274c2da358dac5c23ab8b2c71f85">child</a>;</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; <span class="comment">// Get the first operation of the function</span></div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; obj = obj -&gt; <a class="code" href="cJSON_8cpp.html#a2599f74bdbbc1b3fd1ba8db3789a0be7">next</a> -&gt; <a class="code" href="cJSON_8cpp.html#a2599f74bdbbc1b3fd1ba8db3789a0be7">next</a> -&gt; <a class="code" href="cJSON_8cpp.html#a2599f74bdbbc1b3fd1ba8db3789a0be7">next</a> -&gt; <a class="code" href="cJSON_8cpp.html#a2599f74bdbbc1b3fd1ba8db3789a0be7">next</a>;</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; std::vector&lt;ExtAPI::Operation *&gt; operations;</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; <span class="keywordflow">while</span> (obj)</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; {</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> op;</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; std::vector&lt;std::string&gt; operandsStr;</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; std::map&lt;std::string, NodeID&gt; opMap;</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; <span class="keywordflow">if</span> (obj-&gt;<a class="code" href="structcJSON.html#ab13084c574681593b12f6e0a3db0dcfc">type</a> == <a class="code" href="cJSON_8h.html#a22c6e13481c090629afbd77b7cebd24c">cJSON_Object</a> || obj-&gt;<a class="code" href="structcJSON.html#ab13084c574681593b12f6e0a3db0dcfc">type</a> == <a class="code" href="cJSON_8h.html#a57cffa126740a8efcdcb7bcef80e8897">cJSON_Array</a>)</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; {</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; op = <a class="code" href="classSVF_1_1ExtAPI.html#a1930d622cd47f7fd875e1964b65ec506">get_opName</a>(obj -&gt; <span class="keywordtype">string</span>);</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; <a class="code" href="structcJSON.html">cJSON</a> *value = obj-&gt;<a class="code" href="structcJSON.html#a401b274c2da358dac5c23ab8b2c71f85">child</a>;</div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; std::vector&lt;std::string&gt; args;</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; <span class="keywordflow">while</span> (value)</div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; {</div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; <span class="keywordflow">if</span> (value-&gt;<a class="code" href="structcJSON.html#ab13084c574681593b12f6e0a3db0dcfc">type</a> == <a class="code" href="cJSON_8h.html#aa2cb4765308e2bbdf01988b2acdf92d9">cJSON_String</a>)</div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; {</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; operandsStr.push_back(value-&gt;<a class="code" href="structcJSON.html#ad43f8de2571e504c4c5ce0a36990e6e1">valuestring</a>);</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; }</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; value = value-&gt;<a class="code" href="structcJSON.html#ade862b880379b5e2a591f7326401fa8d">next</a>;</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; }</div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; }</div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160; <a class="code" href="classSVF_1_1ExtAPI_1_1Operation.html">ExtAPI::Operation</a> operation(op, operandsStr);</div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; allOperations.push_back(operation);</div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; operations.clear();</div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160;</div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; obj = obj -&gt; <a class="code" href="cJSON_8cpp.html#a2599f74bdbbc1b3fd1ba8db3789a0be7">next</a>;</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; }</div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; }</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; <span class="keywordflow">return</span> allOperations;</div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160;}</div><div class="ttc" id="cJSON_8cpp_html_a2599f74bdbbc1b3fd1ba8db3789a0be7"><div class="ttname"><a href="cJSON_8cpp.html#a2599f74bdbbc1b3fd1ba8db3789a0be7">next</a></div><div class="ttdeci">item next</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8cpp_source.html#l02224">cJSON.cpp:2224</a></div></div>
612
615
  <div class="ttc" id="classSVF_1_1ExtAPI_html_ab61fbc80acc89e26df2b451cbab81246"><div class="ttname"><a href="classSVF_1_1ExtAPI.html#ab61fbc80acc89e26df2b451cbab81246">SVF::ExtAPI::get_FunJson</a></div><div class="ttdeci">cJSON * get_FunJson(const std::string &amp;funName)</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8cpp_source.html#l00295">ExtAPI.cpp:295</a></div></div>
613
616
  <div class="ttc" id="classSVF_1_1ExtAPI_1_1Operation_html"><div class="ttname"><a href="classSVF_1_1ExtAPI_1_1Operation.html">SVF::ExtAPI::Operation</a></div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8h_source.html#l00202">ExtAPI.h:202</a></div></div>
614
617
  <div class="ttc" id="structcJSON_html_ad43f8de2571e504c4c5ce0a36990e6e1"><div class="ttname"><a href="structcJSON.html#ad43f8de2571e504c4c5ce0a36990e6e1">cJSON::valuestring</a></div><div class="ttdeci">char * valuestring</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8h_source.html#l00115">cJSON.h:115</a></div></div>
@@ -842,8 +845,9 @@ Static Private Attributes</h2></td></tr>
842
845
  </table>
843
846
  </div><div class="memdoc">
844
847
 
845
- <p class="definition">Definition at line <a class="el" href="ExtAPI_8cpp_source.html#l00478">478</a> of file <a class="el" href="ExtAPI_8cpp_source.html">ExtAPI.cpp</a>.</p>
846
- <div class="fragment"><div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160;{</div><div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160; assert(F);</div><div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160; <span class="keywordtype">bool</span> res;</div><div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160; <span class="keywordflow">if</span> (F-&gt;<a class="code" href="classSVF_1_1SVFFunction.html#ab672f0255ec8e42d5e414bc8c72b7c76">isDeclaration</a>() || F-&gt;<a class="code" href="classSVF_1_1SVFFunction.html#a7b4c6c7143d012802ea5ee962bec2deb">isIntrinsic</a>())</div><div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160; {</div><div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160; res = 1;</div><div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160; }</div><div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160; {</div><div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160; <a class="code" href="classSVF_1_1ExtAPI.html#a5df65081e82a05223ce781660ee199ca">ExtAPI::extType</a> t = <a class="code" href="classSVF_1_1ExtAPI.html#a411a034f872afcf62ce5456e408ccf41">get_type</a>(F);</div><div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160; <span class="keywordflow">if</span> (t != <a class="code" href="classSVF_1_1ExtAPI.html#a5df65081e82a05223ce781660ee199caa7ad779bd3527f7cd220ca74c736fd2df">EFT_NULL</a>)</div><div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160; {</div><div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> overwrittenAppFunction = <a class="code" href="classSVF_1_1ExtAPI.html#a5ef7edb1664ab87f00418e7808d00258">isOverwrittenAppFunction</a>(F);</div><div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160; <span class="comment">// overwrittenAppFunction = 1: Execute function specification in ExtAPI.json</span></div><div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160; <span class="comment">// F is considered as external function</span></div><div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160; <span class="keywordflow">if</span> (overwrittenAppFunction == 1)</div><div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160; res = 1;</div><div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160; <span class="comment">// overwrittenAppFunction = 0: Execute user-defined functions</span></div><div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160; <span class="comment">// F is not considered as external function</span></div><div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160; res = 0;</div><div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160; }</div><div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160; res = 0;</div><div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160; }</div><div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160; <span class="keywordflow">return</span> res;</div><div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160;}</div><div class="ttc" id="classSVF_1_1SVFFunction_html_ab672f0255ec8e42d5e414bc8c72b7c76"><div class="ttname"><a href="classSVF_1_1SVFFunction.html#ab672f0255ec8e42d5e414bc8c72b7c76">SVF::SVFFunction::isDeclaration</a></div><div class="ttdeci">bool isDeclaration() const</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00157">BasicTypes.h:157</a></div></div>
848
+ <p class="definition">Definition at line <a class="el" href="ExtAPI_8cpp_source.html#l00514">514</a> of file <a class="el" href="ExtAPI_8cpp_source.html">ExtAPI.cpp</a>.</p>
849
+ <div class="fragment"><div class="line"><a name="l00515"></a><span class="lineno"> 515</span>&#160;{</div><div class="line"><a name="l00516"></a><span class="lineno"> 516</span>&#160; assert(F);</div><div class="line"><a name="l00517"></a><span class="lineno"> 517</span>&#160; <span class="keywordtype">bool</span> res;</div><div class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160; <span class="keywordflow">if</span> (F-&gt;<a class="code" href="classSVF_1_1SVFFunction.html#ab672f0255ec8e42d5e414bc8c72b7c76">isDeclaration</a>() || F-&gt;<a class="code" href="classSVF_1_1SVFFunction.html#a7b4c6c7143d012802ea5ee962bec2deb">isIntrinsic</a>())</div><div class="line"><a name="l00519"></a><span class="lineno"> 519</span>&#160; {</div><div class="line"><a name="l00520"></a><span class="lineno"> 520</span>&#160; res = 1;</div><div class="line"><a name="l00521"></a><span class="lineno"> 521</span>&#160; }</div><div class="line"><a name="l00522"></a><span class="lineno"> 522</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00523"></a><span class="lineno"> 523</span>&#160; {</div><div class="line"><a name="l00524"></a><span class="lineno"> 524</span>&#160; <a class="code" href="classSVF_1_1ExtAPI.html#a5df65081e82a05223ce781660ee199ca">ExtAPI::extType</a> t = <a class="code" href="classSVF_1_1ExtAPI.html#a411a034f872afcf62ce5456e408ccf41">get_type</a>(F);</div><div class="line"><a name="l00525"></a><span class="lineno"> 525</span>&#160; <span class="keywordflow">if</span> (t != <a class="code" href="classSVF_1_1ExtAPI.html#a5df65081e82a05223ce781660ee199caa7ad779bd3527f7cd220ca74c736fd2df">EFT_NULL</a>)</div><div class="line"><a name="l00526"></a><span class="lineno"> 526</span>&#160; {</div><div class="line"><a name="l00527"></a><span class="lineno"> 527</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> overwrittenAppFunction = <a class="code" href="classSVF_1_1ExtAPI.html#a5ef7edb1664ab87f00418e7808d00258">isOverwrittenAppFunction</a>(F);</div><div class="line"><a name="l00528"></a><span class="lineno"> 528</span>&#160; <span class="keywordflow">if</span> (!<a class="code" href="classSVF_1_1ExtAPI.html#a5e8b816a3eb894f6b09403852df0d01b">is_sameSignature</a>(F))</div><div class="line"><a name="l00529"></a><span class="lineno"> 529</span>&#160; res = 0;</div><div class="line"><a name="l00530"></a><span class="lineno"> 530</span>&#160; <span class="comment">// overwrittenAppFunction = 1: Execute function specification in ExtAPI.json</span></div><div class="line"><a name="l00531"></a><span class="lineno"> 531</span>&#160; <span class="comment">// F is considered as external function</span></div><div class="line"><a name="l00532"></a><span class="lineno"> 532</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (overwrittenAppFunction == 1)</div><div class="line"><a name="l00533"></a><span class="lineno"> 533</span>&#160; res = 1;</div><div class="line"><a name="l00534"></a><span class="lineno"> 534</span>&#160; <span class="comment">// overwrittenAppFunction = 0: Execute user-defined functions</span></div><div class="line"><a name="l00535"></a><span class="lineno"> 535</span>&#160; <span class="comment">// F is not considered as external function</span></div><div class="line"><a name="l00536"></a><span class="lineno"> 536</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00537"></a><span class="lineno"> 537</span>&#160; res = 0;</div><div class="line"><a name="l00538"></a><span class="lineno"> 538</span>&#160; }</div><div class="line"><a name="l00539"></a><span class="lineno"> 539</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00540"></a><span class="lineno"> 540</span>&#160; res = 0;</div><div class="line"><a name="l00541"></a><span class="lineno"> 541</span>&#160; }</div><div class="line"><a name="l00542"></a><span class="lineno"> 542</span>&#160; <span class="keywordflow">return</span> res;</div><div class="line"><a name="l00543"></a><span class="lineno"> 543</span>&#160;}</div><div class="ttc" id="classSVF_1_1ExtAPI_html_a5e8b816a3eb894f6b09403852df0d01b"><div class="ttname"><a href="classSVF_1_1ExtAPI.html#a5e8b816a3eb894f6b09403852df0d01b">SVF::ExtAPI::is_sameSignature</a></div><div class="ttdeci">bool is_sameSignature(const SVFFunction *F)</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8cpp_source.html#l00477">ExtAPI.cpp:477</a></div></div>
850
+ <div class="ttc" id="classSVF_1_1SVFFunction_html_ab672f0255ec8e42d5e414bc8c72b7c76"><div class="ttname"><a href="classSVF_1_1SVFFunction.html#ab672f0255ec8e42d5e414bc8c72b7c76">SVF::SVFFunction::isDeclaration</a></div><div class="ttdeci">bool isDeclaration() const</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00157">BasicTypes.h:157</a></div></div>
847
851
  <div class="ttc" id="namespaceSVF_html_ad42bff8d0a7d60a085aa32d10f4955af"><div class="ttname"><a href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">SVF::u32_t</a></div><div class="ttdeci">unsigned u32_t</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00085">SVFBasicTypes.h:85</a></div></div>
848
852
  <div class="ttc" id="classSVF_1_1ExtAPI_html_a411a034f872afcf62ce5456e408ccf41"><div class="ttname"><a href="classSVF_1_1ExtAPI.html#a411a034f872afcf62ce5456e408ccf41">SVF::ExtAPI::get_type</a></div><div class="ttdeci">extType get_type(const SVF::SVFFunction *callee)</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8cpp_source.html#l00375">ExtAPI.cpp:375</a></div></div>
849
853
  <div class="ttc" id="classSVF_1_1ExtAPI_html_a5df65081e82a05223ce781660ee199ca"><div class="ttname"><a href="classSVF_1_1ExtAPI.html#a5df65081e82a05223ce781660ee199ca">SVF::ExtAPI::extType</a></div><div class="ttdeci">extType</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8h_source.html#l00108">ExtAPI.h:108</a></div></div>
@@ -900,6 +904,37 @@ Static Private Attributes</h2></td></tr>
900
904
  </div><!-- fragment -->
901
905
  </div>
902
906
  </div>
907
+ <a id="a5e8b816a3eb894f6b09403852df0d01b"></a>
908
+ <h2 class="memtitle"><span class="permalink"><a href="#a5e8b816a3eb894f6b09403852df0d01b">&#9670;&nbsp;</a></span>is_sameSignature()</h2>
909
+
910
+ <div class="memitem">
911
+ <div class="memproto">
912
+ <table class="memname">
913
+ <tr>
914
+ <td class="memname">bool ExtAPI::is_sameSignature </td>
915
+ <td>(</td>
916
+ <td class="paramtype">const <a class="el" href="classSVF_1_1SVFFunction.html">SVFFunction</a> *&#160;</td>
917
+ <td class="paramname"><em>F</em></td><td>)</td>
918
+ <td></td>
919
+ </tr>
920
+ </table>
921
+ </div><div class="memdoc">
922
+
923
+ <p class="definition">Definition at line <a class="el" href="ExtAPI_8cpp_source.html#l00477">477</a> of file <a class="el" href="ExtAPI_8cpp_source.html">ExtAPI.cpp</a>.</p>
924
+ <div class="fragment"><div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160;{</div><div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160; <a class="code" href="structcJSON.html">cJSON</a> *<a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a> = <a class="code" href="classSVF_1_1ExtAPI.html#ab61fbc80acc89e26df2b451cbab81246">get_FunJson</a>(F-&gt;<a class="code" href="classSVF_1_1SVFValue.html#a2409c01221b9a6632655cee43d1b35e4">getName</a>());</div><div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160; <span class="comment">// If return type is pointer</span></div><div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160; <span class="keywordtype">bool</span> isPointer = <span class="keyword">false</span>;</div><div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160; <span class="comment">// The number of arguments</span></div><div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> argNum = 0;</div><div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160; <span class="keywordflow">if</span> (item != <span class="keyword">nullptr</span>)</div><div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160; {</div><div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160; <span class="comment">// Get the &quot;return&quot; attribute</span></div><div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160; <a class="code" href="structcJSON.html">cJSON</a> *obj = item-&gt;<a class="code" href="structcJSON.html#a401b274c2da358dac5c23ab8b2c71f85">child</a>;</div><div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160; <span class="keywordflow">if</span> (strlen(obj-&gt;<a class="code" href="structcJSON.html#ad43f8de2571e504c4c5ce0a36990e6e1">valuestring</a>) == 0) <span class="comment">// e.g. &quot;return&quot;: &quot;&quot;</span></div><div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160; assert(<span class="keyword">false</span> &amp;&amp; <span class="stringliteral">&quot;&#39;return&#39; should not be empty!&quot;</span>);</div><div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160; <span class="comment">// If &quot;return&quot;: &quot;...&quot; includes &quot;*&quot;, the return type of extern function is a pointer</span></div><div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160; <span class="keywordflow">if</span> (strstr(obj-&gt;<a class="code" href="structcJSON.html#ad43f8de2571e504c4c5ce0a36990e6e1">valuestring</a>, <span class="stringliteral">&quot;*&quot;</span>) != <a class="code" href="cJSON_8cpp.html#a1a05ede2ad100bf5de5dfa7ccdfa4397">NULL</a>)</div><div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160; isPointer = <span class="keyword">true</span>;</div><div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160; <span class="comment">// Get the &quot;arguments&quot; attribute</span></div><div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160; obj = obj -&gt; <a class="code" href="cJSON_8cpp.html#a2599f74bdbbc1b3fd1ba8db3789a0be7">next</a>;</div><div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160; <span class="keywordflow">if</span> (strlen(obj-&gt;<a class="code" href="structcJSON.html#ad43f8de2571e504c4c5ce0a36990e6e1">valuestring</a>) == 0) <span class="comment">// e.g. &quot;arguments&quot;: &quot;&quot;,</span></div><div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160; assert(<span class="keyword">false</span> &amp;&amp; <span class="stringliteral">&quot;&#39;arguments&#39; should not be empty!&quot;</span>);</div><div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160; <span class="comment">// If &quot;arguments&quot;: &quot;()&quot;, the number of arguments is 0, otherwise, number &gt;= 1;</span></div><div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160; <span class="keywordflow">if</span> (strcmp(obj-&gt;<a class="code" href="structcJSON.html#ad43f8de2571e504c4c5ce0a36990e6e1">valuestring</a>, <span class="stringliteral">&quot;()&quot;</span>) != 0)</div><div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160; {</div><div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160; argNum++;</div><div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> i = 0; i &lt; strlen(obj-&gt;<a class="code" href="structcJSON.html#ad43f8de2571e504c4c5ce0a36990e6e1">valuestring</a>); i++)</div><div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160; <span class="keywordflow">if</span> (obj-&gt;<a class="code" href="structcJSON.html#ad43f8de2571e504c4c5ce0a36990e6e1">valuestring</a>[i] == <span class="charliteral">&#39;,&#39;</span>) <span class="comment">// Calculate the number of arguments based on the number of &quot;,&quot;</span></div><div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160; argNum++;</div><div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160; }</div><div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160; }</div><div class="line"><a name="l00506"></a><span class="lineno"> 506</span>&#160; <span class="keywordflow">if</span> (F-&gt;<a class="code" href="classSVF_1_1SVFFunction.html#a3757cd3ae587eaca488fa4cd8ad3967d">arg_size</a>() != argNum) <span class="comment">// The number of arguments is different</span></div><div class="line"><a name="l00507"></a><span class="lineno"> 507</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160; <span class="comment">// Is the return type the same?</span></div><div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160; <span class="keywordflow">return</span> F-&gt;<a class="code" href="classSVF_1_1SVFFunction.html#ac4ae917ae35ac6fca652fe2dd90a8ac2">getLLVMFun</a>()-&gt;getReturnType()-&gt;isPointerTy() == isPointer;</div><div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160;}</div><div class="ttc" id="cJSON_8cpp_html_a2599f74bdbbc1b3fd1ba8db3789a0be7"><div class="ttname"><a href="cJSON_8cpp.html#a2599f74bdbbc1b3fd1ba8db3789a0be7">next</a></div><div class="ttdeci">item next</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8cpp_source.html#l02224">cJSON.cpp:2224</a></div></div>
925
+ <div class="ttc" id="classSVF_1_1ExtAPI_html_ab61fbc80acc89e26df2b451cbab81246"><div class="ttname"><a href="classSVF_1_1ExtAPI.html#ab61fbc80acc89e26df2b451cbab81246">SVF::ExtAPI::get_FunJson</a></div><div class="ttdeci">cJSON * get_FunJson(const std::string &amp;funName)</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8cpp_source.html#l00295">ExtAPI.cpp:295</a></div></div>
926
+ <div class="ttc" id="structcJSON_html_ad43f8de2571e504c4c5ce0a36990e6e1"><div class="ttname"><a href="structcJSON.html#ad43f8de2571e504c4c5ce0a36990e6e1">cJSON::valuestring</a></div><div class="ttdeci">char * valuestring</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8h_source.html#l00115">cJSON.h:115</a></div></div>
927
+ <div class="ttc" id="classSVF_1_1SVFFunction_html_a3757cd3ae587eaca488fa4cd8ad3967d"><div class="ttname"><a href="classSVF_1_1SVFFunction.html#a3757cd3ae587eaca488fa4cd8ad3967d">SVF::SVFFunction::arg_size</a></div><div class="ttdeci">u32_t arg_size() const</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00167">BasicTypes.h:167</a></div></div>
928
+ <div class="ttc" id="namespaceSVF_html_ad42bff8d0a7d60a085aa32d10f4955af"><div class="ttname"><a href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">SVF::u32_t</a></div><div class="ttdeci">unsigned u32_t</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00085">SVFBasicTypes.h:85</a></div></div>
929
+ <div class="ttc" id="structcJSON_html"><div class="ttname"><a href="structcJSON.html">cJSON</a></div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8h_source.html#l00103">cJSON.h:103</a></div></div>
930
+ <div class="ttc" id="structcJSON_html_a401b274c2da358dac5c23ab8b2c71f85"><div class="ttname"><a href="structcJSON.html#a401b274c2da358dac5c23ab8b2c71f85">cJSON::child</a></div><div class="ttdeci">struct cJSON * child</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8h_source.html#l00109">cJSON.h:109</a></div></div>
931
+ <div class="ttc" id="classSVF_1_1SVFValue_html_a2409c01221b9a6632655cee43d1b35e4"><div class="ttname"><a href="classSVF_1_1SVFValue.html#a2409c01221b9a6632655cee43d1b35e4">SVF::SVFValue::getName</a></div><div class="ttdeci">const std::string getName() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00253">SVFBasicTypes.h:253</a></div></div>
932
+ <div class="ttc" id="classSVF_1_1SVFFunction_html_ac4ae917ae35ac6fca652fe2dd90a8ac2"><div class="ttname"><a href="classSVF_1_1SVFFunction.html#ac4ae917ae35ac6fca652fe2dd90a8ac2">SVF::SVFFunction::getLLVMFun</a></div><div class="ttdeci">Function * getLLVMFun() const</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00151">BasicTypes.h:151</a></div></div>
933
+ <div class="ttc" id="cJSON_8cpp_html_a1a05ede2ad100bf5de5dfa7ccdfa4397"><div class="ttname"><a href="cJSON_8cpp.html#a1a05ede2ad100bf5de5dfa7ccdfa4397">NULL</a></div><div class="ttdeci">return NULL</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8cpp_source.html#l01173">cJSON.cpp:1173</a></div></div>
934
+ <div class="ttc" id="cJSON_8h_html_ac76cea59d438ba893d2f82aabb367d14"><div class="ttname"><a href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a></div><div class="ttdeci">cJSON * item</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8h_source.html#l00222">cJSON.h:222</a></div></div>
935
+ </div><!-- fragment -->
936
+ </div>
937
+ </div>
903
938
  <a id="a5ef7edb1664ab87f00418e7808d00258"></a>
904
939
  <h2 class="memtitle"><span class="permalink"><a href="#a5ef7edb1664ab87f00418e7808d00258">&#9670;&nbsp;</a></span>isOverwrittenAppFunction()</h2>
905
940
 
@@ -917,7 +952,7 @@ Static Private Attributes</h2></td></tr>
917
952
  </div><div class="memdoc">
918
953
 
919
954
  <p class="definition">Definition at line <a class="el" href="ExtAPI_8cpp_source.html#l00383">383</a> of file <a class="el" href="ExtAPI_8cpp_source.html">ExtAPI.cpp</a>.</p>
920
- <div class="fragment"><div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160;{</div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160; <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> funName = <a class="code" href="classSVF_1_1ExtAPI.html#ac3e34227968d6a2835d63b1052da3c1a">get_name</a>(callee);</div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160; <a class="code" href="structcJSON.html">cJSON</a> *<a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a> = <a class="code" href="classSVF_1_1ExtAPI.html#ab61fbc80acc89e26df2b451cbab81246">get_FunJson</a>(funName);</div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160; <span class="keywordflow">if</span> (item != <span class="keyword">nullptr</span>)</div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160; {</div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; <a class="code" href="structcJSON.html">cJSON</a> *obj = item-&gt;<a class="code" href="structcJSON.html#a401b274c2da358dac5c23ab8b2c71f85">child</a>;</div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; obj = obj-&gt;<a class="code" href="structcJSON.html#ade862b880379b5e2a591f7326401fa8d">next</a>;</div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160; <span class="keywordflow">if</span> (strcmp(obj-&gt;<a class="code" href="structcJSON.html#aa6b47e9a4b0e0a26f519b1a2b6739983">string</a>, <a class="code" href="ExtAPI_8h.html#a6dec9d5ce6e777757e97065129d96874">JSON_OPT_OVERWRITE</a>) == 0)</div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160; <span class="keywordflow">return</span> obj-&gt;<a class="code" href="structcJSON.html#a369cea49494eb5d4409d532a731a0fbf">valueint</a>;</div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160; assert(<span class="keyword">false</span> &amp;&amp; <span class="stringliteral">&quot;The function operation format is illegal!&quot;</span>);</div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160; }</div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160; <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160;}</div><div class="ttc" id="classSVF_1_1ExtAPI_html_ab61fbc80acc89e26df2b451cbab81246"><div class="ttname"><a href="classSVF_1_1ExtAPI.html#ab61fbc80acc89e26df2b451cbab81246">SVF::ExtAPI::get_FunJson</a></div><div class="ttdeci">cJSON * get_FunJson(const std::string &amp;funName)</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8cpp_source.html#l00295">ExtAPI.cpp:295</a></div></div>
955
+ <div class="fragment"><div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160;{</div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160; <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> funName = <a class="code" href="classSVF_1_1ExtAPI.html#ac3e34227968d6a2835d63b1052da3c1a">get_name</a>(callee);</div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160; <a class="code" href="structcJSON.html">cJSON</a> *<a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a> = <a class="code" href="classSVF_1_1ExtAPI.html#ab61fbc80acc89e26df2b451cbab81246">get_FunJson</a>(funName);</div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160; <span class="keywordflow">if</span> (item != <span class="keyword">nullptr</span>)</div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160; {</div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; <a class="code" href="structcJSON.html">cJSON</a> *obj = item-&gt;<a class="code" href="structcJSON.html#a401b274c2da358dac5c23ab8b2c71f85">child</a>;</div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; obj = obj-&gt;<a class="code" href="structcJSON.html#ade862b880379b5e2a591f7326401fa8d">next</a>-&gt;<a class="code" href="structcJSON.html#ade862b880379b5e2a591f7326401fa8d">next</a>-&gt;<a class="code" href="structcJSON.html#ade862b880379b5e2a591f7326401fa8d">next</a>;</div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160; <span class="keywordflow">if</span> (strcmp(obj-&gt;<a class="code" href="structcJSON.html#aa6b47e9a4b0e0a26f519b1a2b6739983">string</a>, <a class="code" href="ExtAPI_8h.html#a6dec9d5ce6e777757e97065129d96874">JSON_OPT_OVERWRITE</a>) == 0)</div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160; <span class="keywordflow">return</span> obj-&gt;<a class="code" href="structcJSON.html#a369cea49494eb5d4409d532a731a0fbf">valueint</a>;</div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160; assert(<span class="keyword">false</span> &amp;&amp; <span class="stringliteral">&quot;The function operation format is illegal!&quot;</span>);</div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160; }</div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160; <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160;}</div><div class="ttc" id="classSVF_1_1ExtAPI_html_ab61fbc80acc89e26df2b451cbab81246"><div class="ttname"><a href="classSVF_1_1ExtAPI.html#ab61fbc80acc89e26df2b451cbab81246">SVF::ExtAPI::get_FunJson</a></div><div class="ttdeci">cJSON * get_FunJson(const std::string &amp;funName)</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8cpp_source.html#l00295">ExtAPI.cpp:295</a></div></div>
921
956
  <div class="ttc" id="structcJSON_html_a369cea49494eb5d4409d532a731a0fbf"><div class="ttname"><a href="structcJSON.html#a369cea49494eb5d4409d532a731a0fbf">cJSON::valueint</a></div><div class="ttdeci">int valueint</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8h_source.html#l00117">cJSON.h:117</a></div></div>
922
957
  <div class="ttc" id="structcJSON_html"><div class="ttname"><a href="structcJSON.html">cJSON</a></div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8h_source.html#l00103">cJSON.h:103</a></div></div>
923
958
  <div class="ttc" id="structcJSON_html_a401b274c2da358dac5c23ab8b2c71f85"><div class="ttname"><a href="structcJSON.html#a401b274c2da358dac5c23ab8b2c71f85">cJSON::child</a></div><div class="ttdeci">struct cJSON * child</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8h_source.html#l00109">cJSON.h:109</a></div></div>
@@ -839,7 +839,7 @@ Additional Inherited Members</h2></td></tr>
839
839
  <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
840
840
  <div class="textblock"><p>Flow-sensitive pointer analysis for multithreaded programs </p>
841
841
 
842
- <p class="definition">Definition at line <a class="el" href="FSMPTA_8h_source.html#l00176">176</a> of file <a class="el" href="FSMPTA_8h_source.html">FSMPTA.h</a>.</p>
842
+ <p class="definition">Definition at line <a class="el" href="FSMPTA_8h_source.html#l00202">202</a> of file <a class="el" href="FSMPTA_8h_source.html">FSMPTA.h</a>.</p>
843
843
  </div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
844
844
  <a id="a551da3b02d2387cd551365e4c61e4d35"></a>
845
845
  <h2 class="memtitle"><span class="permalink"><a href="#a551da3b02d2387cd551365e4c61e4d35">&#9670;&nbsp;</a></span>FSMPTA()</h2>
@@ -877,10 +877,10 @@ Additional Inherited Members</h2></td></tr>
877
877
 
878
878
  <p>Constructor. </p>
879
879
 
880
- <p class="definition">Definition at line <a class="el" href="FSMPTA_8h_source.html#l00183">183</a> of file <a class="el" href="FSMPTA_8h_source.html">FSMPTA.h</a>.</p>
881
- <div class="fragment"><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; : <a class="code" href="classSVF_1_1FlowSensitive.html#aac88b67b49cbd72912ff586d30197ffb">FlowSensitive</a>(m-&gt;getTCT()-&gt;getPTA()-&gt;getPAG()), <a class="code" href="classSVF_1_1FSMPTA.html#aa8dcd130d4b9283fc6b903de8e4ad830">mhp</a>(m), <a class="code" href="classSVF_1_1FSMPTA.html#abf8f7645c51f3a8c70ca542de5b7d6c9">lockana</a>(la)</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; {</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; }</div><div class="ttc" id="classSVF_1_1FlowSensitive_html_aac88b67b49cbd72912ff586d30197ffb"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#aac88b67b49cbd72912ff586d30197ffb">SVF::FlowSensitive::FlowSensitive</a></div><div class="ttdeci">FlowSensitive(SVFIR *_pag, PTATY type=FSSPARSE_WPA)</div><div class="ttdoc">Constructor. </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#l00061">FlowSensitive.h:61</a></div></div>
882
- <div class="ttc" id="classSVF_1_1FSMPTA_html_abf8f7645c51f3a8c70ca542de5b7d6c9"><div class="ttname"><a href="classSVF_1_1FSMPTA.html#abf8f7645c51f3a8c70ca542de5b7d6c9">SVF::FSMPTA::lockana</a></div><div class="ttdeci">LockAnalysis * lockana</div><div class="ttdef"><b>Definition:</b> <a href="FSMPTA_8h_source.html#l00228">FSMPTA.h:228</a></div></div>
883
- <div class="ttc" id="classSVF_1_1FSMPTA_html_aa8dcd130d4b9283fc6b903de8e4ad830"><div class="ttname"><a href="classSVF_1_1FSMPTA.html#aa8dcd130d4b9283fc6b903de8e4ad830">SVF::FSMPTA::mhp</a></div><div class="ttdeci">MHP * mhp</div><div class="ttdef"><b>Definition:</b> <a href="FSMPTA_8h_source.html#l00227">FSMPTA.h:227</a></div></div>
880
+ <p class="definition">Definition at line <a class="el" href="FSMPTA_8h_source.html#l00209">209</a> of file <a class="el" href="FSMPTA_8h_source.html">FSMPTA.h</a>.</p>
881
+ <div class="fragment"><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; : <a class="code" href="classSVF_1_1FlowSensitive.html#aac88b67b49cbd72912ff586d30197ffb">FlowSensitive</a>(m-&gt;getTCT()-&gt;getPTA()-&gt;getPAG()), <a class="code" href="classSVF_1_1FSMPTA.html#aa8dcd130d4b9283fc6b903de8e4ad830">mhp</a>(m), <a class="code" href="classSVF_1_1FSMPTA.html#abf8f7645c51f3a8c70ca542de5b7d6c9">lockana</a>(la)</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; {</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; }</div><div class="ttc" id="classSVF_1_1FlowSensitive_html_aac88b67b49cbd72912ff586d30197ffb"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#aac88b67b49cbd72912ff586d30197ffb">SVF::FlowSensitive::FlowSensitive</a></div><div class="ttdeci">FlowSensitive(SVFIR *_pag, PTATY type=FSSPARSE_WPA)</div><div class="ttdoc">Constructor. </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#l00061">FlowSensitive.h:61</a></div></div>
882
+ <div class="ttc" id="classSVF_1_1FSMPTA_html_abf8f7645c51f3a8c70ca542de5b7d6c9"><div class="ttname"><a href="classSVF_1_1FSMPTA.html#abf8f7645c51f3a8c70ca542de5b7d6c9">SVF::FSMPTA::lockana</a></div><div class="ttdeci">LockAnalysis * lockana</div><div class="ttdef"><b>Definition:</b> <a href="FSMPTA_8h_source.html#l00254">FSMPTA.h:254</a></div></div>
883
+ <div class="ttc" id="classSVF_1_1FSMPTA_html_aa8dcd130d4b9283fc6b903de8e4ad830"><div class="ttname"><a href="classSVF_1_1FSMPTA.html#aa8dcd130d4b9283fc6b903de8e4ad830">SVF::FSMPTA::mhp</a></div><div class="ttdeci">MHP * mhp</div><div class="ttdef"><b>Definition:</b> <a href="FSMPTA_8h_source.html#l00253">FSMPTA.h:253</a></div></div>
884
884
  </div><!-- fragment -->
885
885
  </div>
886
886
  </div>
@@ -909,8 +909,8 @@ Additional Inherited Members</h2></td></tr>
909
909
 
910
910
  <p>Destructor. </p>
911
911
 
912
- <p class="definition">Definition at line <a class="el" href="FSMPTA_8h_source.html#l00188">188</a> of file <a class="el" href="FSMPTA_8h_source.html">FSMPTA.h</a>.</p>
913
- <div class="fragment"><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; {</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; }</div></div><!-- fragment -->
912
+ <p class="definition">Definition at line <a class="el" href="FSMPTA_8h_source.html#l00214">214</a> of file <a class="el" href="FSMPTA_8h_source.html">FSMPTA.h</a>.</p>
913
+ <div class="fragment"><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; {</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; }</div></div><!-- fragment -->
914
914
  </div>
915
915
  </div>
916
916
  <h2 class="groupheader">Member Function Documentation</h2>
@@ -956,10 +956,10 @@ Additional Inherited Members</h2></td></tr>
956
956
 
957
957
  <p>Create signle instance of flow-sensitive pointer analysis. </p>
958
958
 
959
- <p class="definition">Definition at line <a class="el" href="FSMPTA_8h_source.html#l00201">201</a> of file <a class="el" href="FSMPTA_8h_source.html">FSMPTA.h</a>.</p>
960
- <div class="fragment"><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; {</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1FSMPTA.html#af248a80855457ca9e5a7208c114681bb">mfspta</a> == <span class="keyword">nullptr</span>)</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; {</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <a class="code" href="classSVF_1_1FSMPTA.html#af248a80855457ca9e5a7208c114681bb">mfspta</a> = <span class="keyword">new</span> <a class="code" href="classSVF_1_1FSMPTA.html#a551da3b02d2387cd551365e4c61e4d35">FSMPTA</a>(m,la);</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; <a class="code" href="classSVF_1_1FSMPTA.html#af248a80855457ca9e5a7208c114681bb">mfspta</a>-&gt;<a class="code" href="classSVF_1_1FlowSensitive.html#a267f7198600dde3054feb40def7a6681">analyze</a>();</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; }</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1FSMPTA.html#af248a80855457ca9e5a7208c114681bb">mfspta</a>;</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; }</div><div class="ttc" id="classSVF_1_1FlowSensitive_html_a267f7198600dde3054feb40def7a6681"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#a267f7198600dde3054feb40def7a6681">SVF::FlowSensitive::analyze</a></div><div class="ttdeci">virtual void analyze()</div><div class="ttdoc">Flow sensitive analysis. </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8cpp_source.html#l00082">FlowSensitive.cpp:82</a></div></div>
961
- <div class="ttc" id="classSVF_1_1FSMPTA_html_af248a80855457ca9e5a7208c114681bb"><div class="ttname"><a href="classSVF_1_1FSMPTA.html#af248a80855457ca9e5a7208c114681bb">SVF::FSMPTA::mfspta</a></div><div class="ttdeci">static FSMPTA * mfspta</div><div class="ttdef"><b>Definition:</b> <a href="FSMPTA_8h_source.html#l00226">FSMPTA.h:226</a></div></div>
962
- <div class="ttc" id="classSVF_1_1FSMPTA_html_a551da3b02d2387cd551365e4c61e4d35"><div class="ttname"><a href="classSVF_1_1FSMPTA.html#a551da3b02d2387cd551365e4c61e4d35">SVF::FSMPTA::FSMPTA</a></div><div class="ttdeci">FSMPTA(MHP *m, LockAnalysis *la)</div><div class="ttdoc">Constructor. </div><div class="ttdef"><b>Definition:</b> <a href="FSMPTA_8h_source.html#l00183">FSMPTA.h:183</a></div></div>
959
+ <p class="definition">Definition at line <a class="el" href="FSMPTA_8h_source.html#l00227">227</a> of file <a class="el" href="FSMPTA_8h_source.html">FSMPTA.h</a>.</p>
960
+ <div class="fragment"><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; {</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1FSMPTA.html#af248a80855457ca9e5a7208c114681bb">mfspta</a> == <span class="keyword">nullptr</span>)</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; {</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; <a class="code" href="classSVF_1_1FSMPTA.html#af248a80855457ca9e5a7208c114681bb">mfspta</a> = <span class="keyword">new</span> <a class="code" href="classSVF_1_1FSMPTA.html#a551da3b02d2387cd551365e4c61e4d35">FSMPTA</a>(m,la);</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; <a class="code" href="classSVF_1_1FSMPTA.html#af248a80855457ca9e5a7208c114681bb">mfspta</a>-&gt;<a class="code" href="classSVF_1_1FlowSensitive.html#a267f7198600dde3054feb40def7a6681">analyze</a>();</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; }</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1FSMPTA.html#af248a80855457ca9e5a7208c114681bb">mfspta</a>;</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; }</div><div class="ttc" id="classSVF_1_1FlowSensitive_html_a267f7198600dde3054feb40def7a6681"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#a267f7198600dde3054feb40def7a6681">SVF::FlowSensitive::analyze</a></div><div class="ttdeci">virtual void analyze()</div><div class="ttdoc">Flow sensitive analysis. </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8cpp_source.html#l00082">FlowSensitive.cpp:82</a></div></div>
961
+ <div class="ttc" id="classSVF_1_1FSMPTA_html_af248a80855457ca9e5a7208c114681bb"><div class="ttname"><a href="classSVF_1_1FSMPTA.html#af248a80855457ca9e5a7208c114681bb">SVF::FSMPTA::mfspta</a></div><div class="ttdeci">static FSMPTA * mfspta</div><div class="ttdef"><b>Definition:</b> <a href="FSMPTA_8h_source.html#l00252">FSMPTA.h:252</a></div></div>
962
+ <div class="ttc" id="classSVF_1_1FSMPTA_html_a551da3b02d2387cd551365e4c61e4d35"><div class="ttname"><a href="classSVF_1_1FSMPTA.html#a551da3b02d2387cd551365e4c61e4d35">SVF::FSMPTA::FSMPTA</a></div><div class="ttdeci">FSMPTA(MHP *m, LockAnalysis *la)</div><div class="ttdoc">Constructor. </div><div class="ttdef"><b>Definition:</b> <a href="FSMPTA_8h_source.html#l00209">FSMPTA.h:209</a></div></div>
963
963
  </div><!-- fragment -->
964
964
  </div>
965
965
  </div>
@@ -988,8 +988,8 @@ Additional Inherited Members</h2></td></tr>
988
988
 
989
989
  <p>Get <a class="el" href="classSVF_1_1MHP.html">MHP</a>. </p>
990
990
 
991
- <p class="definition">Definition at line <a class="el" href="FSMPTA_8h_source.html#l00220">220</a> of file <a class="el" href="FSMPTA_8h_source.html">FSMPTA.h</a>.</p>
992
- <div class="fragment"><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; {</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1FSMPTA.html#aa8dcd130d4b9283fc6b903de8e4ad830">mhp</a>;</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; }</div><div class="ttc" id="classSVF_1_1FSMPTA_html_aa8dcd130d4b9283fc6b903de8e4ad830"><div class="ttname"><a href="classSVF_1_1FSMPTA.html#aa8dcd130d4b9283fc6b903de8e4ad830">SVF::FSMPTA::mhp</a></div><div class="ttdeci">MHP * mhp</div><div class="ttdef"><b>Definition:</b> <a href="FSMPTA_8h_source.html#l00227">FSMPTA.h:227</a></div></div>
991
+ <p class="definition">Definition at line <a class="el" href="FSMPTA_8h_source.html#l00246">246</a> of file <a class="el" href="FSMPTA_8h_source.html">FSMPTA.h</a>.</p>
992
+ <div class="fragment"><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; {</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1FSMPTA.html#aa8dcd130d4b9283fc6b903de8e4ad830">mhp</a>;</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; }</div><div class="ttc" id="classSVF_1_1FSMPTA_html_aa8dcd130d4b9283fc6b903de8e4ad830"><div class="ttname"><a href="classSVF_1_1FSMPTA.html#aa8dcd130d4b9283fc6b903de8e4ad830">SVF::FSMPTA::mhp</a></div><div class="ttdeci">MHP * mhp</div><div class="ttdef"><b>Definition:</b> <a href="FSMPTA_8h_source.html#l00253">FSMPTA.h:253</a></div></div>
993
993
  </div><!-- fragment -->
994
994
  </div>
995
995
  </div>
@@ -1016,11 +1016,11 @@ Additional Inherited Members</h2></td></tr>
1016
1016
  </table>
1017
1017
  </div><div class="memdoc">
1018
1018
 
1019
- <p class="definition">Definition at line <a class="el" href="FSMPTA_8h_source.html#l00195">195</a> of file <a class="el" href="FSMPTA_8h_source.html">FSMPTA.h</a>.</p>
1020
- <div class="fragment"><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; {</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1FSMPTA.html#aa8dcd130d4b9283fc6b903de8e4ad830">mhp</a>-&gt;<a class="code" href="classSVF_1_1MHP.html#a033936547612c54326a604f0ff1e39a6">getTCT</a>()-&gt;<a class="code" href="classSVF_1_1TCT.html#a5b087b42340d1a1b2ee37339637709d3">getPTA</a>()-&gt;<a class="code" href="classSVF_1_1PointerAnalysis.html#a240219c2dc4f5cc5f85445e18c79b83b">getPAG</a>();</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; }</div><div class="ttc" id="classSVF_1_1TCT_html_a5b087b42340d1a1b2ee37339637709d3"><div class="ttname"><a href="classSVF_1_1TCT.html#a5b087b42340d1a1b2ee37339637709d3">SVF::TCT::getPTA</a></div><div class="ttdeci">PointerAnalysis * getPTA() const</div><div class="ttdoc">Get PTA. </div><div class="ttdef"><b>Definition:</b> <a href="TCT_8h_source.html#l00171">TCT.h:171</a></div></div>
1019
+ <p class="definition">Definition at line <a class="el" href="FSMPTA_8h_source.html#l00221">221</a> of file <a class="el" href="FSMPTA_8h_source.html">FSMPTA.h</a>.</p>
1020
+ <div class="fragment"><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; {</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1FSMPTA.html#aa8dcd130d4b9283fc6b903de8e4ad830">mhp</a>-&gt;<a class="code" href="classSVF_1_1MHP.html#a033936547612c54326a604f0ff1e39a6">getTCT</a>()-&gt;<a class="code" href="classSVF_1_1TCT.html#a5b087b42340d1a1b2ee37339637709d3">getPTA</a>()-&gt;<a class="code" href="classSVF_1_1PointerAnalysis.html#a240219c2dc4f5cc5f85445e18c79b83b">getPAG</a>();</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; }</div><div class="ttc" id="classSVF_1_1TCT_html_a5b087b42340d1a1b2ee37339637709d3"><div class="ttname"><a href="classSVF_1_1TCT.html#a5b087b42340d1a1b2ee37339637709d3">SVF::TCT::getPTA</a></div><div class="ttdeci">PointerAnalysis * getPTA() const</div><div class="ttdoc">Get PTA. </div><div class="ttdef"><b>Definition:</b> <a href="TCT_8h_source.html#l00193">TCT.h:193</a></div></div>
1021
1021
  <div class="ttc" id="classSVF_1_1PointerAnalysis_html_a240219c2dc4f5cc5f85445e18c79b83b"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a240219c2dc4f5cc5f85445e18c79b83b">SVF::PointerAnalysis::getPAG</a></div><div class="ttdeci">SVFIR * getPAG() const</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00201">PointerAnalysis.h:201</a></div></div>
1022
- <div class="ttc" id="classSVF_1_1MHP_html_a033936547612c54326a604f0ff1e39a6"><div class="ttname"><a href="classSVF_1_1MHP.html#a033936547612c54326a604f0ff1e39a6">SVF::MHP::getTCT</a></div><div class="ttdeci">TCT * getTCT() const</div><div class="ttdoc">Get Thread Creation Tree. </div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#l00060">MHP.h:60</a></div></div>
1023
- <div class="ttc" id="classSVF_1_1FSMPTA_html_aa8dcd130d4b9283fc6b903de8e4ad830"><div class="ttname"><a href="classSVF_1_1FSMPTA.html#aa8dcd130d4b9283fc6b903de8e4ad830">SVF::FSMPTA::mhp</a></div><div class="ttdeci">MHP * mhp</div><div class="ttdef"><b>Definition:</b> <a href="FSMPTA_8h_source.html#l00227">FSMPTA.h:227</a></div></div>
1022
+ <div class="ttc" id="classSVF_1_1MHP_html_a033936547612c54326a604f0ff1e39a6"><div class="ttname"><a href="classSVF_1_1MHP.html#a033936547612c54326a604f0ff1e39a6">SVF::MHP::getTCT</a></div><div class="ttdeci">TCT * getTCT() const</div><div class="ttdoc">Get Thread Creation Tree. </div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#l00082">MHP.h:82</a></div></div>
1023
+ <div class="ttc" id="classSVF_1_1FSMPTA_html_aa8dcd130d4b9283fc6b903de8e4ad830"><div class="ttname"><a href="classSVF_1_1FSMPTA.html#aa8dcd130d4b9283fc6b903de8e4ad830">SVF::FSMPTA::mhp</a></div><div class="ttdeci">MHP * mhp</div><div class="ttdef"><b>Definition:</b> <a href="FSMPTA_8h_source.html#l00253">FSMPTA.h:253</a></div></div>
1024
1024
  </div><!-- fragment -->
1025
1025
  </div>
1026
1026
  </div>
@@ -1043,18 +1043,18 @@ Additional Inherited Members</h2></td></tr>
1043
1043
  <p>Initialize analysis. </p>
1044
1044
  <p>Initialize analysis </p>
1045
1045
 
1046
- <p class="definition">Definition at line <a class="el" href="FSMPTA_8cpp_source.html#l00757">757</a> of file <a class="el" href="FSMPTA_8cpp_source.html">FSMPTA.cpp</a>.</p>
1047
- <div class="fragment"><div class="line"><a name="l00758"></a><span class="lineno"> 758</span>&#160;{</div><div class="line"><a name="l00759"></a><span class="lineno"> 759</span>&#160; <a class="code" href="classSVF_1_1PointerAnalysis.html#a431ec4f85eb0f029e5740b92fd9ceb32">PointerAnalysis::initialize</a>();</div><div class="line"><a name="l00760"></a><span class="lineno"> 760</span>&#160;</div><div class="line"><a name="l00761"></a><span class="lineno"> 761</span>&#160; <a class="code" href="classSVF_1_1AndersenWaveDiff.html">AndersenWaveDiff</a>* <a class="code" href="classSVF_1_1FlowSensitive.html#a5cfee013a1a5821ef0c449842dd8690d">ander</a> = <a class="code" href="classSVF_1_1AndersenWaveDiff.html#a48ff6fc4badc79ad3204ae9bd95cc540">AndersenWaveDiff::createAndersenWaveDiff</a>(<a class="code" href="classSVF_1_1FSMPTA.html#ad93ee6450a9eb498369bf63acc9f6578">getPAG</a>());</div><div class="line"><a name="l00762"></a><span class="lineno"> 762</span>&#160; <a class="code" href="classSVF_1_1MTASVFGBuilder.html">MTASVFGBuilder</a> mtaSVFGBuilder(<a class="code" href="classSVF_1_1FSMPTA.html#aa8dcd130d4b9283fc6b903de8e4ad830">mhp</a>,<a class="code" href="classSVF_1_1FSMPTA.html#abf8f7645c51f3a8c70ca542de5b7d6c9">lockana</a>);</div><div class="line"><a name="l00763"></a><span class="lineno"> 763</span>&#160; <a class="code" href="classSVF_1_1FlowSensitive.html#aae032e5f5d53b131d0112dc8faa464a9">svfg</a> = mtaSVFGBuilder.buildPTROnlySVFG(ander);</div><div class="line"><a name="l00764"></a><span class="lineno"> 764</span>&#160; <a class="code" href="classSVF_1_1WPASolver.html#aa04deb39cd024c051f30ac43d1d62b34">setGraph</a>(<a class="code" href="classSVF_1_1FlowSensitive.html#aae032e5f5d53b131d0112dc8faa464a9">svfg</a>);</div><div class="line"><a name="l00765"></a><span class="lineno"> 765</span>&#160; <span class="comment">//AndersenWaveDiff::releaseAndersenWaveDiff();</span></div><div class="line"><a name="l00766"></a><span class="lineno"> 766</span>&#160;</div><div class="line"><a name="l00767"></a><span class="lineno"> 767</span>&#160; <a class="code" href="classSVF_1_1PointerAnalysis.html#a5ec3d9bf1fc81346c9df29638daedc0f">stat</a> = <span class="keyword">new</span> <a class="code" href="classSVF_1_1FlowSensitive.html#a88f9752372eabb71f47f13a89e4d6d9c">FlowSensitiveStat</a>(<span class="keyword">this</span>);</div><div class="line"><a name="l00768"></a><span class="lineno"> 768</span>&#160;}</div><div class="ttc" id="classSVF_1_1FlowSensitive_html_aae032e5f5d53b131d0112dc8faa464a9"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#aae032e5f5d53b131d0112dc8faa464a9">SVF::FlowSensitive::svfg</a></div><div class="ttdeci">SVFG * svfg</div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#l00246">FlowSensitive.h:246</a></div></div>
1048
- <div class="ttc" id="classSVF_1_1AndersenWaveDiff_html"><div class="ttname"><a href="classSVF_1_1AndersenWaveDiff.html">SVF::AndersenWaveDiff</a></div><div class="ttdef"><b>Definition:</b> <a href="Andersen_8h_source.html#l00373">Andersen.h:373</a></div></div>
1049
- <div class="ttc" id="classSVF_1_1FSMPTA_html_ad93ee6450a9eb498369bf63acc9f6578"><div class="ttname"><a href="classSVF_1_1FSMPTA.html#ad93ee6450a9eb498369bf63acc9f6578">SVF::FSMPTA::getPAG</a></div><div class="ttdeci">SVFIR * getPAG()</div><div class="ttdef"><b>Definition:</b> <a href="FSMPTA_8h_source.html#l00195">FSMPTA.h:195</a></div></div>
1046
+ <p class="definition">Definition at line <a class="el" href="FSMPTA_8cpp_source.html#l00779">779</a> of file <a class="el" href="FSMPTA_8cpp_source.html">FSMPTA.cpp</a>.</p>
1047
+ <div class="fragment"><div class="line"><a name="l00780"></a><span class="lineno"> 780</span>&#160;{</div><div class="line"><a name="l00781"></a><span class="lineno"> 781</span>&#160; <a class="code" href="classSVF_1_1PointerAnalysis.html#a431ec4f85eb0f029e5740b92fd9ceb32">PointerAnalysis::initialize</a>();</div><div class="line"><a name="l00782"></a><span class="lineno"> 782</span>&#160;</div><div class="line"><a name="l00783"></a><span class="lineno"> 783</span>&#160; <a class="code" href="classSVF_1_1AndersenWaveDiff.html">AndersenWaveDiff</a>* <a class="code" href="classSVF_1_1FlowSensitive.html#a5cfee013a1a5821ef0c449842dd8690d">ander</a> = <a class="code" href="classSVF_1_1AndersenWaveDiff.html#a48ff6fc4badc79ad3204ae9bd95cc540">AndersenWaveDiff::createAndersenWaveDiff</a>(<a class="code" href="classSVF_1_1FSMPTA.html#ad93ee6450a9eb498369bf63acc9f6578">getPAG</a>());</div><div class="line"><a name="l00784"></a><span class="lineno"> 784</span>&#160; <a class="code" href="classSVF_1_1MTASVFGBuilder.html">MTASVFGBuilder</a> mtaSVFGBuilder(<a class="code" href="classSVF_1_1FSMPTA.html#aa8dcd130d4b9283fc6b903de8e4ad830">mhp</a>,<a class="code" href="classSVF_1_1FSMPTA.html#abf8f7645c51f3a8c70ca542de5b7d6c9">lockana</a>);</div><div class="line"><a name="l00785"></a><span class="lineno"> 785</span>&#160; <a class="code" href="classSVF_1_1FlowSensitive.html#aae032e5f5d53b131d0112dc8faa464a9">svfg</a> = mtaSVFGBuilder.buildPTROnlySVFG(ander);</div><div class="line"><a name="l00786"></a><span class="lineno"> 786</span>&#160; <a class="code" href="classSVF_1_1WPASolver.html#aa04deb39cd024c051f30ac43d1d62b34">setGraph</a>(<a class="code" href="classSVF_1_1FlowSensitive.html#aae032e5f5d53b131d0112dc8faa464a9">svfg</a>);</div><div class="line"><a name="l00787"></a><span class="lineno"> 787</span>&#160; <span class="comment">//AndersenWaveDiff::releaseAndersenWaveDiff();</span></div><div class="line"><a name="l00788"></a><span class="lineno"> 788</span>&#160;</div><div class="line"><a name="l00789"></a><span class="lineno"> 789</span>&#160; <a class="code" href="classSVF_1_1PointerAnalysis.html#a5ec3d9bf1fc81346c9df29638daedc0f">stat</a> = <span class="keyword">new</span> <a class="code" href="classSVF_1_1FlowSensitive.html#a88f9752372eabb71f47f13a89e4d6d9c">FlowSensitiveStat</a>(<span class="keyword">this</span>);</div><div class="line"><a name="l00790"></a><span class="lineno"> 790</span>&#160;}</div><div class="ttc" id="classSVF_1_1FlowSensitive_html_aae032e5f5d53b131d0112dc8faa464a9"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#aae032e5f5d53b131d0112dc8faa464a9">SVF::FlowSensitive::svfg</a></div><div class="ttdeci">SVFG * svfg</div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#l00246">FlowSensitive.h:246</a></div></div>
1048
+ <div class="ttc" id="classSVF_1_1AndersenWaveDiff_html"><div class="ttname"><a href="classSVF_1_1AndersenWaveDiff.html">SVF::AndersenWaveDiff</a></div><div class="ttdef"><b>Definition:</b> <a href="Andersen_8h_source.html#l00378">Andersen.h:378</a></div></div>
1049
+ <div class="ttc" id="classSVF_1_1FSMPTA_html_ad93ee6450a9eb498369bf63acc9f6578"><div class="ttname"><a href="classSVF_1_1FSMPTA.html#ad93ee6450a9eb498369bf63acc9f6578">SVF::FSMPTA::getPAG</a></div><div class="ttdeci">SVFIR * getPAG()</div><div class="ttdef"><b>Definition:</b> <a href="FSMPTA_8h_source.html#l00221">FSMPTA.h:221</a></div></div>
1050
1050
  <div class="ttc" id="classSVF_1_1FlowSensitive_html_a88f9752372eabb71f47f13a89e4d6d9c"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#a88f9752372eabb71f47f13a89e4d6d9c">SVF::FlowSensitive::FlowSensitiveStat</a></div><div class="ttdeci">friend class FlowSensitiveStat</div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#l00051">FlowSensitive.h:51</a></div></div>
1051
- <div class="ttc" id="classSVF_1_1FSMPTA_html_abf8f7645c51f3a8c70ca542de5b7d6c9"><div class="ttname"><a href="classSVF_1_1FSMPTA.html#abf8f7645c51f3a8c70ca542de5b7d6c9">SVF::FSMPTA::lockana</a></div><div class="ttdeci">LockAnalysis * lockana</div><div class="ttdef"><b>Definition:</b> <a href="FSMPTA_8h_source.html#l00228">FSMPTA.h:228</a></div></div>
1051
+ <div class="ttc" id="classSVF_1_1FSMPTA_html_abf8f7645c51f3a8c70ca542de5b7d6c9"><div class="ttname"><a href="classSVF_1_1FSMPTA.html#abf8f7645c51f3a8c70ca542de5b7d6c9">SVF::FSMPTA::lockana</a></div><div class="ttdeci">LockAnalysis * lockana</div><div class="ttdef"><b>Definition:</b> <a href="FSMPTA_8h_source.html#l00254">FSMPTA.h:254</a></div></div>
1052
1052
  <div class="ttc" id="classSVF_1_1WPASolver_html_aa04deb39cd024c051f30ac43d1d62b34"><div class="ttname"><a href="classSVF_1_1WPASolver.html#aa04deb39cd024c051f30ac43d1d62b34">SVF::WPASolver::setGraph</a></div><div class="ttdeci">void setGraph(GraphType g)</div><div class="ttdef"><b>Definition:</b> <a href="WPASolver_8h_source.html#l00082">WPASolver.h:82</a></div></div>
1053
1053
  <div class="ttc" id="classSVF_1_1PointerAnalysis_html_a5ec3d9bf1fc81346c9df29638daedc0f"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a5ec3d9bf1fc81346c9df29638daedc0f">SVF::PointerAnalysis::stat</a></div><div class="ttdeci">PTAStat * stat</div><div class="ttdoc">Statistics. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00150">PointerAnalysis.h:150</a></div></div>
1054
- <div class="ttc" id="classSVF_1_1AndersenWaveDiff_html_a48ff6fc4badc79ad3204ae9bd95cc540"><div class="ttname"><a href="classSVF_1_1AndersenWaveDiff.html#a48ff6fc4badc79ad3204ae9bd95cc540">SVF::AndersenWaveDiff::createAndersenWaveDiff</a></div><div class="ttdeci">static AndersenWaveDiff * createAndersenWaveDiff(SVFIR *_pag)</div><div class="ttdoc">Create an singleton instance directly instead of invoking llvm pass manager. </div><div class="ttdef"><b>Definition:</b> <a href="Andersen_8h_source.html#l00384">Andersen.h:384</a></div></div>
1055
- <div class="ttc" id="classSVF_1_1FSMPTA_html_aa8dcd130d4b9283fc6b903de8e4ad830"><div class="ttname"><a href="classSVF_1_1FSMPTA.html#aa8dcd130d4b9283fc6b903de8e4ad830">SVF::FSMPTA::mhp</a></div><div class="ttdeci">MHP * mhp</div><div class="ttdef"><b>Definition:</b> <a href="FSMPTA_8h_source.html#l00227">FSMPTA.h:227</a></div></div>
1054
+ <div class="ttc" id="classSVF_1_1AndersenWaveDiff_html_a48ff6fc4badc79ad3204ae9bd95cc540"><div class="ttname"><a href="classSVF_1_1AndersenWaveDiff.html#a48ff6fc4badc79ad3204ae9bd95cc540">SVF::AndersenWaveDiff::createAndersenWaveDiff</a></div><div class="ttdeci">static AndersenWaveDiff * createAndersenWaveDiff(SVFIR *_pag)</div><div class="ttdoc">Create an singleton instance directly instead of invoking llvm pass manager. </div><div class="ttdef"><b>Definition:</b> <a href="Andersen_8h_source.html#l00389">Andersen.h:389</a></div></div>
1055
+ <div class="ttc" id="classSVF_1_1FSMPTA_html_aa8dcd130d4b9283fc6b903de8e4ad830"><div class="ttname"><a href="classSVF_1_1FSMPTA.html#aa8dcd130d4b9283fc6b903de8e4ad830">SVF::FSMPTA::mhp</a></div><div class="ttdeci">MHP * mhp</div><div class="ttdef"><b>Definition:</b> <a href="FSMPTA_8h_source.html#l00253">FSMPTA.h:253</a></div></div>
1056
1056
  <div class="ttc" id="classSVF_1_1FlowSensitive_html_a5cfee013a1a5821ef0c449842dd8690d"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#a5cfee013a1a5821ef0c449842dd8690d">SVF::FlowSensitive::ander</a></div><div class="ttdeci">AndersenWaveDiff * ander</div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#l00280">FlowSensitive.h:280</a></div></div>
1057
- <div class="ttc" id="classSVF_1_1MTASVFGBuilder_html"><div class="ttname"><a href="classSVF_1_1MTASVFGBuilder.html">SVF::MTASVFGBuilder</a></div><div class="ttdef"><b>Definition:</b> <a href="FSMPTA_8h_source.html#l00071">FSMPTA.h:71</a></div></div>
1057
+ <div class="ttc" id="classSVF_1_1MTASVFGBuilder_html"><div class="ttname"><a href="classSVF_1_1MTASVFGBuilder.html">SVF::MTASVFGBuilder</a></div><div class="ttdef"><b>Definition:</b> <a href="FSMPTA_8h_source.html#l00097">FSMPTA.h:97</a></div></div>
1058
1058
  <div class="ttc" id="classSVF_1_1PointerAnalysis_html_a431ec4f85eb0f029e5740b92fd9ceb32"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a431ec4f85eb0f029e5740b92fd9ceb32">SVF::PointerAnalysis::initialize</a></div><div class="ttdeci">virtual void initialize()</div><div class="ttdoc">Initialization of a pointer analysis, including building symbol table and SVFIR etc. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8cpp_source.html#l00111">PointerAnalysis.cpp:111</a></div></div>
1059
1059
  </div><!-- fragment -->
1060
1060
  </div>
@@ -1084,8 +1084,8 @@ Additional Inherited Members</h2></td></tr>
1084
1084
 
1085
1085
  <p>Release flow-sensitive pointer analysis. </p>
1086
1086
 
1087
- <p class="definition">Definition at line <a class="el" href="FSMPTA_8h_source.html#l00212">212</a> of file <a class="el" href="FSMPTA_8h_source.html">FSMPTA.h</a>.</p>
1088
- <div class="fragment"><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; {</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1FSMPTA.html#af248a80855457ca9e5a7208c114681bb">mfspta</a>)</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; <span class="keyword">delete</span> <a class="code" href="classSVF_1_1FSMPTA.html#af248a80855457ca9e5a7208c114681bb">mfspta</a>;</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; <a class="code" href="classSVF_1_1FSMPTA.html#af248a80855457ca9e5a7208c114681bb">mfspta</a> = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; }</div><div class="ttc" id="classSVF_1_1FSMPTA_html_af248a80855457ca9e5a7208c114681bb"><div class="ttname"><a href="classSVF_1_1FSMPTA.html#af248a80855457ca9e5a7208c114681bb">SVF::FSMPTA::mfspta</a></div><div class="ttdeci">static FSMPTA * mfspta</div><div class="ttdef"><b>Definition:</b> <a href="FSMPTA_8h_source.html#l00226">FSMPTA.h:226</a></div></div>
1087
+ <p class="definition">Definition at line <a class="el" href="FSMPTA_8h_source.html#l00238">238</a> of file <a class="el" href="FSMPTA_8h_source.html">FSMPTA.h</a>.</p>
1088
+ <div class="fragment"><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; {</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1FSMPTA.html#af248a80855457ca9e5a7208c114681bb">mfspta</a>)</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; <span class="keyword">delete</span> <a class="code" href="classSVF_1_1FSMPTA.html#af248a80855457ca9e5a7208c114681bb">mfspta</a>;</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; <a class="code" href="classSVF_1_1FSMPTA.html#af248a80855457ca9e5a7208c114681bb">mfspta</a> = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; }</div><div class="ttc" id="classSVF_1_1FSMPTA_html_af248a80855457ca9e5a7208c114681bb"><div class="ttname"><a href="classSVF_1_1FSMPTA.html#af248a80855457ca9e5a7208c114681bb">SVF::FSMPTA::mfspta</a></div><div class="ttdeci">static FSMPTA * mfspta</div><div class="ttdef"><b>Definition:</b> <a href="FSMPTA_8h_source.html#l00252">FSMPTA.h:252</a></div></div>
1089
1089
  </div><!-- fragment -->
1090
1090
  </div>
1091
1091
  </div>
@@ -1110,7 +1110,7 @@ Additional Inherited Members</h2></td></tr>
1110
1110
  </table>
1111
1111
  </div><div class="memdoc">
1112
1112
 
1113
- <p class="definition">Definition at line <a class="el" href="FSMPTA_8h_source.html#l00228">228</a> of file <a class="el" href="FSMPTA_8h_source.html">FSMPTA.h</a>.</p>
1113
+ <p class="definition">Definition at line <a class="el" href="FSMPTA_8h_source.html#l00254">254</a> of file <a class="el" href="FSMPTA_8h_source.html">FSMPTA.h</a>.</p>
1114
1114
 
1115
1115
  </div>
1116
1116
  </div>
@@ -1134,7 +1134,7 @@ Additional Inherited Members</h2></td></tr>
1134
1134
  </table>
1135
1135
  </div><div class="memdoc">
1136
1136
 
1137
- <p class="definition">Definition at line <a class="el" href="FSMPTA_8h_source.html#l00226">226</a> of file <a class="el" href="FSMPTA_8h_source.html">FSMPTA.h</a>.</p>
1137
+ <p class="definition">Definition at line <a class="el" href="FSMPTA_8h_source.html#l00252">252</a> of file <a class="el" href="FSMPTA_8h_source.html">FSMPTA.h</a>.</p>
1138
1138
 
1139
1139
  </div>
1140
1140
  </div>
@@ -1158,7 +1158,7 @@ Additional Inherited Members</h2></td></tr>
1158
1158
  </table>
1159
1159
  </div><div class="memdoc">
1160
1160
 
1161
- <p class="definition">Definition at line <a class="el" href="FSMPTA_8h_source.html#l00227">227</a> of file <a class="el" href="FSMPTA_8h_source.html">FSMPTA.h</a>.</p>
1161
+ <p class="definition">Definition at line <a class="el" href="FSMPTA_8h_source.html#l00253">253</a> of file <a class="el" href="FSMPTA_8h_source.html">FSMPTA.h</a>.</p>
1162
1162
 
1163
1163
  </div>
1164
1164
  </div>
@@ -513,13 +513,13 @@ Additional Inherited Members</h2></td></tr>
513
513
  <p>Reimplemented from <a class="el" href="classSVF_1_1LeakChecker.html#aa8bd31ae91ed1e9890203f865982a065">SVF::LeakChecker</a>.</p>
514
514
 
515
515
  <p class="definition">Definition at line <a class="el" href="FileChecker_8cpp_source.html#l00050">50</a> of file <a class="el" href="FileChecker_8cpp_source.html">FileChecker.cpp</a>.</p>
516
- <div class="fragment"><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;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1SrcSnkDDA.html#a6ae0d47bac09163e90b8b2e773ad69f0">isAllPathReachable</a>() == <span class="keyword">false</span> &amp;&amp; <a class="code" href="classSVF_1_1SrcSnkDDA.html#a19ab6f6df2a67b294268cfe7f4287fd7">isSomePathReachable</a>() == <span class="keyword">false</span>)</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_1FileChecker.html#ac6b092dd119642f435c21a708b160b49">reportNeverClose</a>(slice-&gt;<a class="code" href="classSVF_1_1ProgSlice.html#ac1dc48ea64a89ce37394a22e609a0cd0">getSource</a>());</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; }</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SrcSnkDDA.html#a6ae0d47bac09163e90b8b2e773ad69f0">isAllPathReachable</a>() == <span class="keyword">false</span> &amp;&amp; <a class="code" href="classSVF_1_1SrcSnkDDA.html#a19ab6f6df2a67b294268cfe7f4287fd7">isSomePathReachable</a>() == <span class="keyword">true</span>)</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="classSVF_1_1FileChecker.html#a8a4e249c4ac93b98149d25e1aa411cb0">reportPartialClose</a>(slice-&gt;<a class="code" href="classSVF_1_1ProgSlice.html#ac1dc48ea64a89ce37394a22e609a0cd0">getSource</a>());</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">SVFUtil::errs</a>() &lt;&lt; <span class="stringliteral">&quot;\t\t conditional file close path: \n&quot;</span> &lt;&lt; slice-&gt;<a class="code" href="classSVF_1_1ProgSlice.html#afac06b0be2b04cb8a65af21fd697b756">evalFinalCond</a>() &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; slice-&gt;<a class="code" href="classSVF_1_1ProgSlice.html#ab1fdec8d39c9890324718607d7464eab">annotatePaths</a>();</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; }</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;}</div><div class="ttc" id="classSVF_1_1ProgSlice_html_ac1dc48ea64a89ce37394a22e609a0cd0"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#ac1dc48ea64a89ce37394a22e609a0cd0">SVF::ProgSlice::getSource</a></div><div class="ttdeci">const SVFGNode * getSource() const</div><div class="ttdoc">root and sink operations </div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8h_source.html#l00112">ProgSlice.h:112</a></div></div>
516
+ <div class="fragment"><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;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1SrcSnkDDA.html#a6ae0d47bac09163e90b8b2e773ad69f0">isAllPathReachable</a>() == <span class="keyword">false</span> &amp;&amp; <a class="code" href="classSVF_1_1SrcSnkDDA.html#a19ab6f6df2a67b294268cfe7f4287fd7">isSomePathReachable</a>() == <span class="keyword">false</span>)</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_1FileChecker.html#ac6b092dd119642f435c21a708b160b49">reportNeverClose</a>(slice-&gt;<a class="code" href="classSVF_1_1ProgSlice.html#ac1dc48ea64a89ce37394a22e609a0cd0">getSource</a>());</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; }</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SrcSnkDDA.html#a6ae0d47bac09163e90b8b2e773ad69f0">isAllPathReachable</a>() == <span class="keyword">false</span> &amp;&amp; <a class="code" href="classSVF_1_1SrcSnkDDA.html#a19ab6f6df2a67b294268cfe7f4287fd7">isSomePathReachable</a>() == <span class="keyword">true</span>)</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="classSVF_1_1FileChecker.html#a8a4e249c4ac93b98149d25e1aa411cb0">reportPartialClose</a>(slice-&gt;<a class="code" href="classSVF_1_1ProgSlice.html#ac1dc48ea64a89ce37394a22e609a0cd0">getSource</a>());</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">SVFUtil::errs</a>() &lt;&lt; <span class="stringliteral">&quot;\t\t conditional file close path: \n&quot;</span> &lt;&lt; slice-&gt;<a class="code" href="classSVF_1_1ProgSlice.html#afac06b0be2b04cb8a65af21fd697b756">evalFinalCond</a>() &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; slice-&gt;<a class="code" href="classSVF_1_1ProgSlice.html#ab1fdec8d39c9890324718607d7464eab">annotatePaths</a>();</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; }</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;}</div><div class="ttc" id="classSVF_1_1ProgSlice_html_ac1dc48ea64a89ce37394a22e609a0cd0"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#ac1dc48ea64a89ce37394a22e609a0cd0">SVF::ProgSlice::getSource</a></div><div class="ttdeci">const SVFGNode * getSource() const</div><div class="ttdoc">root and sink operations </div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8h_source.html#l00119">ProgSlice.h:119</a></div></div>
517
517
  <div class="ttc" id="classSVF_1_1FileChecker_html_a8a4e249c4ac93b98149d25e1aa411cb0"><div class="ttname"><a href="classSVF_1_1FileChecker.html#a8a4e249c4ac93b98149d25e1aa411cb0">SVF::FileChecker::reportPartialClose</a></div><div class="ttdeci">void reportPartialClose(const SVFGNode *src)</div><div class="ttdef"><b>Definition:</b> <a href="FileChecker_8cpp_source.html#l00043">FileChecker.cpp:43</a></div></div>
518
518
  <div class="ttc" id="classSVF_1_1ProgSlice_html_afac06b0be2b04cb8a65af21fd697b756"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#afac06b0be2b04cb8a65af21fd697b756">SVF::ProgSlice::evalFinalCond</a></div><div class="ttdeci">std::string evalFinalCond() const</div><div class="ttdoc">Evaluate final condition. </div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8cpp_source.html#l00160">ProgSlice.cpp:160</a></div></div>
519
- <div class="ttc" id="classSVF_1_1SrcSnkDDA_html_a19ab6f6df2a67b294268cfe7f4287fd7"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a19ab6f6df2a67b294268cfe7f4287fd7">SVF::SrcSnkDDA::isSomePathReachable</a></div><div class="ttdeci">virtual bool isSomePathReachable()</div><div class="ttdoc">Whether it is some path reachable from a source. </div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00302">SrcSnkDDA.h:302</a></div></div>
519
+ <div class="ttc" id="classSVF_1_1SrcSnkDDA_html_a19ab6f6df2a67b294268cfe7f4287fd7"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a19ab6f6df2a67b294268cfe7f4287fd7">SVF::SrcSnkDDA::isSomePathReachable</a></div><div class="ttdeci">virtual bool isSomePathReachable()</div><div class="ttdoc">Whether it is some path reachable from a source. </div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00309">SrcSnkDDA.h:309</a></div></div>
520
520
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_ab65033f068bfbeb0a1c52dcec3beb6bc"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">SVF::SVFUtil::errs</a></div><div class="ttdeci">std::ostream &amp; errs()</div><div class="ttdoc">Overwrite llvm::errs() </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00055">SVFUtil.h:55</a></div></div>
521
521
  <div class="ttc" id="classSVF_1_1FileChecker_html_ac6b092dd119642f435c21a708b160b49"><div class="ttname"><a href="classSVF_1_1FileChecker.html#ac6b092dd119642f435c21a708b160b49">SVF::FileChecker::reportNeverClose</a></div><div class="ttdeci">void reportNeverClose(const SVFGNode *src)</div><div class="ttdef"><b>Definition:</b> <a href="FileChecker_8cpp_source.html#l00036">FileChecker.cpp:36</a></div></div>
522
- <div class="ttc" id="classSVF_1_1SrcSnkDDA_html_a6ae0d47bac09163e90b8b2e773ad69f0"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a6ae0d47bac09163e90b8b2e773ad69f0">SVF::SrcSnkDDA::isAllPathReachable</a></div><div class="ttdeci">virtual bool isAllPathReachable()</div><div class="ttdoc">Whether it is all path reachable from a source. </div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00297">SrcSnkDDA.h:297</a></div></div>
522
+ <div class="ttc" id="classSVF_1_1SrcSnkDDA_html_a6ae0d47bac09163e90b8b2e773ad69f0"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a6ae0d47bac09163e90b8b2e773ad69f0">SVF::SrcSnkDDA::isAllPathReachable</a></div><div class="ttdeci">virtual bool isAllPathReachable()</div><div class="ttdoc">Whether it is all path reachable from a source. </div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00304">SrcSnkDDA.h:304</a></div></div>
523
523
  <div class="ttc" id="classSVF_1_1ProgSlice_html_ab1fdec8d39c9890324718607d7464eab"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#ab1fdec8d39c9890324718607d7464eab">SVF::ProgSlice::annotatePaths</a></div><div class="ttdeci">void annotatePaths()</div><div class="ttdoc">Annotate program according to final condition. </div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8cpp_source.html#l00187">ProgSlice.cpp:187</a></div></div>
524
524
  </div><!-- fragment -->
525
525
  </div>