svf-tools 1.0.613 → 1.0.615

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 (542) hide show
  1. package/CMakeLists.txt +13 -0
  2. package/SVF-doxygen/html/html/AndersenPWC_8h_source.html +1 -1
  3. package/SVF-doxygen/html/html/AndersenSCD_8cpp_source.html +2 -2
  4. package/SVF-doxygen/html/html/AndersenSFR_8cpp_source.html +7 -6
  5. package/SVF-doxygen/html/html/AndersenStat_8cpp_source.html +15 -15
  6. package/SVF-doxygen/html/html/AndersenWaveDiff_8cpp_source.html +1 -1
  7. package/SVF-doxygen/html/html/Andersen_8cpp_source.html +22 -22
  8. package/SVF-doxygen/html/html/Andersen_8h_source.html +16 -16
  9. package/SVF-doxygen/html/html/CFLAlias_8cpp_source.html +6 -6
  10. package/SVF-doxygen/html/html/CFLAlias_8h_source.html +7 -7
  11. package/SVF-doxygen/html/html/CFLBase_8cpp_source.html +6 -6
  12. package/SVF-doxygen/html/html/CFLGrammar_8cpp_source.html +1 -1
  13. package/SVF-doxygen/html/html/CFLGrammar_8h_source.html +1 -1
  14. package/SVF-doxygen/html/html/CFLGraphBuilder_8cpp_source.html +5 -5
  15. package/SVF-doxygen/html/html/CFLGraph_8cpp_source.html +11 -11
  16. package/SVF-doxygen/html/html/CFLGraph_8h_source.html +1 -1
  17. package/SVF-doxygen/html/html/CFLVF_8cpp_source.html +2 -2
  18. package/SVF-doxygen/html/html/CHGBuilder_8cpp_source.html +5 -5
  19. package/SVF-doxygen/html/html/CHG_8h_source.html +1 -1
  20. package/SVF-doxygen/html/html/CSC_8cpp_source.html +1 -1
  21. package/SVF-doxygen/html/html/ConditionalPT_8h_source.html +14 -14
  22. package/SVF-doxygen/html/html/ConsGNode_8h_source.html +1 -1
  23. package/SVF-doxygen/html/html/ConsG_8cpp_source.html +3 -3
  24. package/SVF-doxygen/html/html/ConsG_8h_source.html +9 -9
  25. package/SVF-doxygen/html/html/ContextDDA_8cpp_source.html +18 -18
  26. package/SVF-doxygen/html/html/ContextDDA_8h_source.html +9 -9
  27. package/SVF-doxygen/html/html/DCHG_8cpp_source.html +4 -4
  28. package/SVF-doxygen/html/html/DCHG_8h_source.html +1 -1
  29. package/SVF-doxygen/html/html/DDAClient_8cpp_source.html +8 -8
  30. package/SVF-doxygen/html/html/DDAClient_8h_source.html +1 -1
  31. package/SVF-doxygen/html/html/DDAPass_8cpp_source.html +4 -6
  32. package/SVF-doxygen/html/html/DDAPass_8h_source.html +3 -3
  33. package/SVF-doxygen/html/html/DDAStat_8cpp_source.html +9 -9
  34. package/SVF-doxygen/html/html/DDAStat_8h_source.html +1 -1
  35. package/SVF-doxygen/html/html/DDAVFSolver_8h_source.html +22 -22
  36. package/SVF-doxygen/html/html/DoubleFreeChecker_8cpp_source.html +1 -1
  37. package/SVF-doxygen/html/html/DoubleFreeChecker_8h_source.html +1 -1
  38. package/SVF-doxygen/html/html/ExtAPI_8cpp_source.html +1 -1
  39. package/SVF-doxygen/html/html/FSMPTA_8cpp_source.html +21 -21
  40. package/SVF-doxygen/html/html/FSMPTA_8h_source.html +3 -3
  41. package/SVF-doxygen/html/html/FileChecker_8h_source.html +1 -1
  42. package/SVF-doxygen/html/html/FlowDDA_8cpp_source.html +10 -10
  43. package/SVF-doxygen/html/html/FlowDDA_8h_source.html +7 -7
  44. package/SVF-doxygen/html/html/FlowSensitiveStat_8cpp_source.html +13 -13
  45. package/SVF-doxygen/html/html/FlowSensitive_8cpp_source.html +27 -28
  46. package/SVF-doxygen/html/html/FlowSensitive_8h_source.html +65 -65
  47. package/SVF-doxygen/html/html/ICFGBuilder_8cpp_source.html +2 -2
  48. package/SVF-doxygen/html/html/ICFG_8cpp_source.html +2 -2
  49. package/SVF-doxygen/html/html/ICFG_8h_source.html +2 -2
  50. package/SVF-doxygen/html/html/IRAnnotator_8h_source.html +3 -3
  51. package/SVF-doxygen/html/html/IRGraph_8cpp_source.html +3 -3
  52. package/SVF-doxygen/html/html/IRGraph_8h_source.html +2 -2
  53. package/SVF-doxygen/html/html/LLVMLoopAnalysis_8cpp_source.html +6 -6
  54. package/SVF-doxygen/html/html/LLVMLoopAnalysis_8h_source.html +3 -3
  55. package/SVF-doxygen/html/html/LLVMModule_8cpp_source.html +24 -29
  56. package/SVF-doxygen/html/html/LLVMModule_8h_source.html +8 -8
  57. package/SVF-doxygen/html/html/LLVMUtil_8cpp_source.html +2 -2
  58. package/SVF-doxygen/html/html/LeakChecker_8cpp_source.html +9 -9
  59. package/SVF-doxygen/html/html/LeakChecker_8h_source.html +2 -2
  60. package/SVF-doxygen/html/html/LocationSet_8cpp_source.html +9 -9
  61. package/SVF-doxygen/html/html/LocationSet_8h_source.html +3 -3
  62. package/SVF-doxygen/html/html/LockAnalysis_8cpp_source.html +5 -5
  63. package/SVF-doxygen/html/html/LockAnalysis_8h_source.html +3 -3
  64. package/SVF-doxygen/html/html/LockResultValidator_8cpp_source.html +3 -3
  65. package/SVF-doxygen/html/html/MHP_8cpp_source.html +10 -10
  66. package/SVF-doxygen/html/html/MHP_8h_source.html +5 -5
  67. package/SVF-doxygen/html/html/MTAAnnotator_8cpp_source.html +17 -17
  68. package/SVF-doxygen/html/html/MTAResultValidator_8cpp_source.html +8 -8
  69. package/SVF-doxygen/html/html/MTAStat_8cpp_source.html +3 -3
  70. package/SVF-doxygen/html/html/MTA_8cpp_source.html +12 -17
  71. package/SVF-doxygen/html/html/MTA_8h_source.html +3 -4
  72. package/SVF-doxygen/html/html/MemPartition_8cpp_source.html +10 -10
  73. package/SVF-doxygen/html/html/MemPartition_8h_source.html +1 -1
  74. package/SVF-doxygen/html/html/MemRegion_8cpp_source.html +34 -34
  75. package/SVF-doxygen/html/html/MemRegion_8h_source.html +7 -7
  76. package/SVF-doxygen/html/html/MemSSA_8cpp_source.html +16 -15
  77. package/SVF-doxygen/html/html/MemSSA_8h_source.html +53 -52
  78. package/SVF-doxygen/html/html/MutablePointsToDS_8h_source.html +7 -8
  79. package/SVF-doxygen/html/html/NodeIDAllocator_8cpp_source.html +7 -7
  80. package/SVF-doxygen/html/html/Options_8cpp_source.html +52 -53
  81. package/SVF-doxygen/html/html/Options_8h_source.html +53 -54
  82. package/SVF-doxygen/html/html/PCG_8cpp_source.html +2 -2
  83. package/SVF-doxygen/html/html/PTACallGraph_8cpp_source.html +3 -3
  84. package/SVF-doxygen/html/html/PTACallGraph_8h_source.html +1 -1
  85. package/SVF-doxygen/html/html/PTAStat_8cpp_source.html +3 -3
  86. package/SVF-doxygen/html/html/PTAStat_8h_source.html +1 -1
  87. package/SVF-doxygen/html/html/PersistentPointsToCache_8h_source.html +33 -33
  88. package/SVF-doxygen/html/html/PersistentPointsToDS_8h_source.html +91 -95
  89. package/SVF-doxygen/html/html/PointerAnalysisImpl_8cpp_source.html +31 -39
  90. package/SVF-doxygen/html/html/PointerAnalysisImpl_8h_source.html +85 -92
  91. package/SVF-doxygen/html/html/PointerAnalysis_8cpp_source.html +20 -20
  92. package/SVF-doxygen/html/html/PointerAnalysis_8h_source.html +16 -16
  93. package/SVF-doxygen/html/html/PointsTo_8cpp.html +1 -0
  94. package/SVF-doxygen/html/html/PointsTo_8cpp_source.html +51 -51
  95. package/SVF-doxygen/html/html/PointsTo_8h_source.html +38 -38
  96. package/SVF-doxygen/html/html/ProgSlice_8cpp_source.html +6 -6
  97. package/SVF-doxygen/html/html/SCC_8h_source.html +4 -4
  98. package/SVF-doxygen/html/html/SVFGBuilder_8cpp_source.html +11 -22
  99. package/SVF-doxygen/html/html/SVFGBuilder_8h_source.html +14 -17
  100. package/SVF-doxygen/html/html/SVFGEdge_8h_source.html +1 -1
  101. package/SVF-doxygen/html/html/SVFGNode_8h_source.html +1 -1
  102. package/SVF-doxygen/html/html/SVFGOPT_8cpp_source.html +7 -7
  103. package/SVF-doxygen/html/html/SVFGOPT_8h_source.html +21 -19
  104. package/SVF-doxygen/html/html/SVFGReadWrite_8cpp_source.html +5 -5
  105. package/SVF-doxygen/html/html/SVFGStat_8cpp_source.html +18 -18
  106. package/SVF-doxygen/html/html/SVFG_8cpp_source.html +49 -62
  107. package/SVF-doxygen/html/html/SVFG_8h_source.html +45 -45
  108. package/SVF-doxygen/html/html/SVFIR2ItvExeState_8cpp_source.html +12 -12
  109. package/SVF-doxygen/html/html/SVFIRBuilder_8cpp_source.html +8 -8
  110. package/SVF-doxygen/html/html/SVFIRBuilder_8h_source.html +3 -3
  111. package/SVF-doxygen/html/html/SVFIR_8cpp_source.html +10 -16
  112. package/SVF-doxygen/html/html/SVFIR_8h_source.html +83 -83
  113. package/SVF-doxygen/html/html/SVFStat_8cpp_source.html +19 -19
  114. package/SVF-doxygen/html/html/SVFType_8h.html +22 -22
  115. package/SVF-doxygen/html/html/SVFType_8h_source.html +76 -77
  116. package/SVF-doxygen/html/html/SVFUtil_8cpp_source.html +5 -5
  117. package/SVF-doxygen/html/html/SVFUtil_8h_source.html +11 -11
  118. package/SVF-doxygen/html/html/SVFValue_8cpp_source.html +5 -5
  119. package/SVF-doxygen/html/html/SVFValue_8h_source.html +6 -6
  120. package/SVF-doxygen/html/html/SVFVariables_8cpp_source.html +1 -1
  121. package/SVF-doxygen/html/html/SVFVariables_8h_source.html +3 -3
  122. package/SVF-doxygen/html/html/SaberCondAllocator_8cpp_source.html +6 -6
  123. package/SVF-doxygen/html/html/SaberCondAllocator_8h_source.html +4 -4
  124. package/SVF-doxygen/html/html/SaberSVFGBuilder_8cpp_source.html +15 -15
  125. package/SVF-doxygen/html/html/SaberSVFGBuilder_8h_source.html +2 -3
  126. package/SVF-doxygen/html/html/SparseBitVector_8h_source.html +69 -71
  127. package/SVF-doxygen/html/html/SrcSnkDDA_8cpp_source.html +13 -13
  128. package/SVF-doxygen/html/html/SrcSnkDDA_8h_source.html +39 -39
  129. package/SVF-doxygen/html/html/Steensgaard_8h_source.html +1 -1
  130. package/SVF-doxygen/html/html/SymbolTableBuilder_8cpp_source.html +7 -7
  131. package/SVF-doxygen/html/html/SymbolTableInfo_8cpp_source.html +49 -51
  132. package/SVF-doxygen/html/html/SymbolTableInfo_8h_source.html +13 -13
  133. package/SVF-doxygen/html/html/TCT_8cpp_source.html +4 -4
  134. package/SVF-doxygen/html/html/TCT_8h_source.html +4 -4
  135. package/SVF-doxygen/html/html/ThreadCallGraph_8cpp_source.html +8 -8
  136. package/SVF-doxygen/html/html/TypeAnalysis_8cpp_source.html +3 -3
  137. package/SVF-doxygen/html/html/VFGNode_8h_source.html +1 -1
  138. package/SVF-doxygen/html/html/VFG_8cpp_source.html +17 -17
  139. package/SVF-doxygen/html/html/VFG_8h_source.html +5 -5
  140. package/SVF-doxygen/html/html/VersionedFlowSensitiveStat_8cpp_source.html +8 -8
  141. package/SVF-doxygen/html/html/VersionedFlowSensitive_8cpp_source.html +33 -33
  142. package/SVF-doxygen/html/html/VersionedFlowSensitive_8h_source.html +4 -4
  143. package/SVF-doxygen/html/html/WPAFSSolver_8h_source.html +11 -11
  144. package/SVF-doxygen/html/html/WPAPass_8cpp_source.html +12 -12
  145. package/SVF-doxygen/html/html/WPAPass_8h_source.html +2 -2
  146. package/SVF-doxygen/html/html/WPASolver_8h_source.html +25 -25
  147. package/SVF-doxygen/html/html/Z3Expr_8cpp_source.html +1 -1
  148. package/SVF-doxygen/html/html/cfl_8cpp.html +1 -5
  149. package/SVF-doxygen/html/html/cfl_8cpp_source.html +1 -5
  150. package/SVF-doxygen/html/html/classSVF_1_1ActualParmVFGNode.html +2 -2
  151. package/SVF-doxygen/html/html/classSVF_1_1ActualRetVFGNode.html +2 -2
  152. package/SVF-doxygen/html/html/classSVF_1_1AddrVFGNode.html +2 -2
  153. package/SVF-doxygen/html/html/classSVF_1_1AliasDDAClient.html +2 -2
  154. package/SVF-doxygen/html/html/classSVF_1_1Andersen-members.html +187 -188
  155. package/SVF-doxygen/html/html/classSVF_1_1Andersen.html +104 -107
  156. package/SVF-doxygen/html/html/classSVF_1_1AndersenBase-members.html +163 -164
  157. package/SVF-doxygen/html/html/classSVF_1_1AndersenBase.html +47 -50
  158. package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD-members.html +194 -195
  159. package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD.html +45 -48
  160. package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR-members.html +204 -205
  161. package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR.html +35 -38
  162. package/SVF-doxygen/html/html/classSVF_1_1AndersenStat.html +17 -17
  163. package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff-members.html +191 -192
  164. package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff.html +29 -32
  165. package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl-members.html +122 -123
  166. package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl.html +158 -219
  167. package/SVF-doxygen/html/html/classSVF_1_1BinaryOPVFGNode.html +2 -2
  168. package/SVF-doxygen/html/html/classSVF_1_1CFLAlias-members.html +137 -138
  169. package/SVF-doxygen/html/html/classSVF_1_1CFLAlias.html +57 -49
  170. package/SVF-doxygen/html/html/classSVF_1_1CFLBase-members.html +138 -139
  171. package/SVF-doxygen/html/html/classSVF_1_1CFLBase.html +34 -34
  172. package/SVF-doxygen/html/html/classSVF_1_1CFLGraph.html +7 -7
  173. package/SVF-doxygen/html/html/classSVF_1_1CFLGraphBuilder.html +1 -1
  174. package/SVF-doxygen/html/html/classSVF_1_1CFLVF-members.html +140 -141
  175. package/SVF-doxygen/html/html/classSVF_1_1CFLVF.html +30 -30
  176. package/SVF-doxygen/html/html/classSVF_1_1CHGBuilder.html +8 -8
  177. package/SVF-doxygen/html/html/classSVF_1_1CSC.html +2 -2
  178. package/SVF-doxygen/html/html/classSVF_1_1CallSite-members.html +1 -1
  179. package/SVF-doxygen/html/html/classSVF_1_1CallSite.html +10 -10
  180. package/SVF-doxygen/html/html/classSVF_1_1CmpVFGNode.html +2 -2
  181. package/SVF-doxygen/html/html/classSVF_1_1CondPTAImpl.html +114 -114
  182. package/SVF-doxygen/html/html/classSVF_1_1ConstraintGraph.html +6 -6
  183. package/SVF-doxygen/html/html/classSVF_1_1ConstraintNode.html +8 -8
  184. package/SVF-doxygen/html/html/classSVF_1_1ContextDDA.html +28 -28
  185. package/SVF-doxygen/html/html/classSVF_1_1CopyVFGNode.html +2 -2
  186. package/SVF-doxygen/html/html/classSVF_1_1DCHGraph.html +6 -6
  187. package/SVF-doxygen/html/html/classSVF_1_1DDAClient.html +4 -4
  188. package/SVF-doxygen/html/html/classSVF_1_1DDAPass-members.html +1 -1
  189. package/SVF-doxygen/html/html/classSVF_1_1DDAPass.html +17 -31
  190. package/SVF-doxygen/html/html/classSVF_1_1DDAStat.html +10 -10
  191. package/SVF-doxygen/html/html/classSVF_1_1DDAVFSolver.html +40 -40
  192. package/SVF-doxygen/html/html/classSVF_1_1DFPTData.html +15 -15
  193. package/SVF-doxygen/html/html/classSVF_1_1DiffPTData.html +4 -4
  194. package/SVF-doxygen/html/html/classSVF_1_1DistinctMRG.html +11 -11
  195. package/SVF-doxygen/html/html/classSVF_1_1DoubleFreeChecker-members.html +5 -5
  196. package/SVF-doxygen/html/html/classSVF_1_1DoubleFreeChecker.html +16 -16
  197. package/SVF-doxygen/html/html/classSVF_1_1DummyVersionPropSVFGNode.html +2 -2
  198. package/SVF-doxygen/html/html/classSVF_1_1ExtAPI.html +1 -1
  199. package/SVF-doxygen/html/html/classSVF_1_1FSMPTA-members.html +228 -229
  200. package/SVF-doxygen/html/html/classSVF_1_1FSMPTA.html +62 -65
  201. package/SVF-doxygen/html/html/classSVF_1_1FileChecker-members.html +5 -5
  202. package/SVF-doxygen/html/html/classSVF_1_1FileChecker.html +17 -17
  203. package/SVF-doxygen/html/html/classSVF_1_1FlowDDA-members.html +194 -195
  204. package/SVF-doxygen/html/html/classSVF_1_1FlowDDA.html +55 -55
  205. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive-members.html +219 -220
  206. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive.html +335 -342
  207. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveStat.html +57 -57
  208. package/SVF-doxygen/html/html/classSVF_1_1ForkJoinAnalysis.html +6 -6
  209. package/SVF-doxygen/html/html/classSVF_1_1FormalParmVFGNode.html +2 -2
  210. package/SVF-doxygen/html/html/classSVF_1_1FormalRetVFGNode.html +2 -2
  211. package/SVF-doxygen/html/html/classSVF_1_1FunptrDDAClient.html +4 -4
  212. package/SVF-doxygen/html/html/classSVF_1_1GepObjVar.html +2 -2
  213. package/SVF-doxygen/html/html/classSVF_1_1GepVFGNode.html +2 -2
  214. package/SVF-doxygen/html/html/classSVF_1_1ICFG-members.html +1 -1
  215. package/SVF-doxygen/html/html/classSVF_1_1ICFG.html +6 -6
  216. package/SVF-doxygen/html/html/classSVF_1_1ICFGBuilder.html +2 -2
  217. package/SVF-doxygen/html/html/classSVF_1_1IRAnnotator.html +4 -4
  218. package/SVF-doxygen/html/html/classSVF_1_1IRGraph.html +4 -4
  219. package/SVF-doxygen/html/html/classSVF_1_1InterDisjointMRG.html +2 -2
  220. package/SVF-doxygen/html/html/classSVF_1_1IntraDisjointMRG.html +8 -8
  221. package/SVF-doxygen/html/html/classSVF_1_1LLVMLoopAnalysis-members.html +1 -1
  222. package/SVF-doxygen/html/html/classSVF_1_1LLVMLoopAnalysis.html +20 -14
  223. package/SVF-doxygen/html/html/classSVF_1_1LLVMModuleSet-members.html +4 -4
  224. package/SVF-doxygen/html/html/classSVF_1_1LLVMModuleSet.html +108 -94
  225. package/SVF-doxygen/html/html/classSVF_1_1LeakChecker-members.html +5 -5
  226. package/SVF-doxygen/html/html/classSVF_1_1LeakChecker.html +36 -36
  227. package/SVF-doxygen/html/html/classSVF_1_1LoadVFGNode.html +2 -2
  228. package/SVF-doxygen/html/html/classSVF_1_1LocationSet.html +12 -12
  229. package/SVF-doxygen/html/html/classSVF_1_1LockAnalysis.html +25 -25
  230. package/SVF-doxygen/html/html/classSVF_1_1LockResultValidator.html +3 -3
  231. package/SVF-doxygen/html/html/classSVF_1_1MHP.html +26 -26
  232. package/SVF-doxygen/html/html/classSVF_1_1MRGenerator.html +87 -87
  233. package/SVF-doxygen/html/html/classSVF_1_1MTA-members.html +2 -2
  234. package/SVF-doxygen/html/html/classSVF_1_1MTA.html +27 -33
  235. package/SVF-doxygen/html/html/classSVF_1_1MTAAnnotator.html +21 -21
  236. package/SVF-doxygen/html/html/classSVF_1_1MTAResultValidator.html +14 -14
  237. package/SVF-doxygen/html/html/classSVF_1_1MTASVFGBuilder-members.html +41 -43
  238. package/SVF-doxygen/html/html/classSVF_1_1MTASVFGBuilder.html +57 -80
  239. package/SVF-doxygen/html/html/classSVF_1_1MTAStat.html +3 -3
  240. package/SVF-doxygen/html/html/classSVF_1_1MemObj.html +54 -54
  241. package/SVF-doxygen/html/html/classSVF_1_1MemRegion.html +4 -4
  242. package/SVF-doxygen/html/html/classSVF_1_1MemSSA-members.html +4 -3
  243. package/SVF-doxygen/html/html/classSVF_1_1MemSSA.html +170 -143
  244. package/SVF-doxygen/html/html/classSVF_1_1MemSSAStat.html +16 -16
  245. package/SVF-doxygen/html/html/classSVF_1_1MutableDFPTData.html +2 -2
  246. package/SVF-doxygen/html/html/classSVF_1_1MutableDiffPTData-members.html +3 -3
  247. package/SVF-doxygen/html/html/classSVF_1_1MutableDiffPTData.html +13 -15
  248. package/SVF-doxygen/html/html/classSVF_1_1NodeIDAllocator_1_1Clusterer.html +7 -7
  249. package/SVF-doxygen/html/html/classSVF_1_1NullPtrVFGNode.html +2 -2
  250. package/SVF-doxygen/html/html/classSVF_1_1ObjTypeInfo.html +8 -8
  251. package/SVF-doxygen/html/html/classSVF_1_1ObjVar.html +1 -1
  252. package/SVF-doxygen/html/html/classSVF_1_1Options-members.html +17 -18
  253. package/SVF-doxygen/html/html/classSVF_1_1Options.html +53 -79
  254. package/SVF-doxygen/html/html/classSVF_1_1PAGBuilderFromFile.html +2 -2
  255. package/SVF-doxygen/html/html/classSVF_1_1PCG.html +2 -2
  256. package/SVF-doxygen/html/html/classSVF_1_1PHIVFGNode.html +2 -2
  257. package/SVF-doxygen/html/html/classSVF_1_1PTACallGraph.html +3 -3
  258. package/SVF-doxygen/html/html/classSVF_1_1PTACallGraphNode.html +3 -3
  259. package/SVF-doxygen/html/html/classSVF_1_1PTAStat.html +4 -4
  260. package/SVF-doxygen/html/html/classSVF_1_1PTData.html +11 -11
  261. package/SVF-doxygen/html/html/classSVF_1_1PersistentDFPTData-members.html +28 -28
  262. package/SVF-doxygen/html/html/classSVF_1_1PersistentDFPTData.html +174 -177
  263. package/SVF-doxygen/html/html/classSVF_1_1PersistentDiffPTData-members.html +17 -17
  264. package/SVF-doxygen/html/html/classSVF_1_1PersistentDiffPTData.html +99 -102
  265. package/SVF-doxygen/html/html/classSVF_1_1PersistentIncDFPTData-members.html +30 -30
  266. package/SVF-doxygen/html/html/classSVF_1_1PersistentIncDFPTData.html +125 -127
  267. package/SVF-doxygen/html/html/classSVF_1_1PersistentPTData-members.html +13 -13
  268. package/SVF-doxygen/html/html/classSVF_1_1PersistentPTData.html +83 -86
  269. package/SVF-doxygen/html/html/classSVF_1_1PersistentPointsToCache-members.html +1 -1
  270. package/SVF-doxygen/html/html/classSVF_1_1PersistentPointsToCache.html +122 -122
  271. package/SVF-doxygen/html/html/classSVF_1_1PersistentVersionedPTData-members.html +22 -22
  272. package/SVF-doxygen/html/html/classSVF_1_1PersistentVersionedPTData.html +137 -140
  273. package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.html +56 -56
  274. package/SVF-doxygen/html/html/classSVF_1_1PointsTo-members.html +16 -16
  275. package/SVF-doxygen/html/html/classSVF_1_1PointsTo.html +183 -178
  276. package/SVF-doxygen/html/html/classSVF_1_1PointsTo_1_1PointsToIterator-members.html +7 -7
  277. package/SVF-doxygen/html/html/classSVF_1_1PointsTo_1_1PointsToIterator.html +87 -65
  278. package/SVF-doxygen/html/html/classSVF_1_1ProgSlice.html +6 -6
  279. package/SVF-doxygen/html/html/classSVF_1_1SCCDetection.html +3 -3
  280. package/SVF-doxygen/html/html/classSVF_1_1SCCDetection_1_1GNodeSCCInfo.html +1 -1
  281. package/SVF-doxygen/html/html/classSVF_1_1SVFArgument-members.html +1 -1
  282. package/SVF-doxygen/html/html/classSVF_1_1SVFArgument.html +4 -4
  283. package/SVF-doxygen/html/html/classSVF_1_1SVFArrayType.html +6 -6
  284. package/SVF-doxygen/html/html/classSVF_1_1SVFBasicBlock-members.html +3 -3
  285. package/SVF-doxygen/html/html/classSVF_1_1SVFBasicBlock.html +13 -16
  286. package/SVF-doxygen/html/html/classSVF_1_1SVFBlackHoleValue-members.html +1 -1
  287. package/SVF-doxygen/html/html/classSVF_1_1SVFBlackHoleValue.html +2 -2
  288. package/SVF-doxygen/html/html/classSVF_1_1SVFCallInst-members.html +1 -1
  289. package/SVF-doxygen/html/html/classSVF_1_1SVFCallInst.html +2 -2
  290. package/SVF-doxygen/html/html/classSVF_1_1SVFConstant-members.html +1 -1
  291. package/SVF-doxygen/html/html/classSVF_1_1SVFConstant.html +3 -3
  292. package/SVF-doxygen/html/html/classSVF_1_1SVFConstantData-members.html +1 -1
  293. package/SVF-doxygen/html/html/classSVF_1_1SVFConstantData.html +2 -2
  294. package/SVF-doxygen/html/html/classSVF_1_1SVFConstantFP-members.html +1 -1
  295. package/SVF-doxygen/html/html/classSVF_1_1SVFConstantFP.html +2 -2
  296. package/SVF-doxygen/html/html/classSVF_1_1SVFConstantInt-members.html +1 -1
  297. package/SVF-doxygen/html/html/classSVF_1_1SVFConstantInt.html +2 -2
  298. package/SVF-doxygen/html/html/classSVF_1_1SVFConstantNullPtr-members.html +1 -1
  299. package/SVF-doxygen/html/html/classSVF_1_1SVFConstantNullPtr.html +2 -2
  300. package/SVF-doxygen/html/html/classSVF_1_1SVFFunction-members.html +1 -1
  301. package/SVF-doxygen/html/html/classSVF_1_1SVFFunction.html +5 -7
  302. package/SVF-doxygen/html/html/classSVF_1_1SVFFunctionType.html +9 -9
  303. package/SVF-doxygen/html/html/classSVF_1_1SVFG-members.html +2 -2
  304. package/SVF-doxygen/html/html/classSVF_1_1SVFG.html +211 -236
  305. package/SVF-doxygen/html/html/classSVF_1_1SVFGBuilder-members.html +7 -9
  306. package/SVF-doxygen/html/html/classSVF_1_1SVFGBuilder.html +50 -138
  307. package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT-members.html +9 -9
  308. package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT.html +82 -82
  309. package/SVF-doxygen/html/html/classSVF_1_1SVFGStat.html +5 -5
  310. package/SVF-doxygen/html/html/classSVF_1_1SVFGlobalValue-members.html +1 -1
  311. package/SVF-doxygen/html/html/classSVF_1_1SVFGlobalValue.html +2 -2
  312. package/SVF-doxygen/html/html/classSVF_1_1SVFIR-members.html +1 -1
  313. package/SVF-doxygen/html/html/classSVF_1_1SVFIR.html +203 -215
  314. package/SVF-doxygen/html/html/classSVF_1_1SVFIR2ItvExeState.html +13 -13
  315. package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder.html +79 -79
  316. package/SVF-doxygen/html/html/classSVF_1_1SVFInstruction-members.html +1 -1
  317. package/SVF-doxygen/html/html/classSVF_1_1SVFInstruction.html +4 -4
  318. package/SVF-doxygen/html/html/classSVF_1_1SVFIntergerType.html +5 -5
  319. package/SVF-doxygen/html/html/classSVF_1_1SVFLoopAndDomInfo-members.html +1 -1
  320. package/SVF-doxygen/html/html/classSVF_1_1SVFLoopAndDomInfo.html +5 -5
  321. package/SVF-doxygen/html/html/classSVF_1_1SVFMetadataAsValue-members.html +1 -1
  322. package/SVF-doxygen/html/html/classSVF_1_1SVFMetadataAsValue.html +2 -2
  323. package/SVF-doxygen/html/html/classSVF_1_1SVFModule.html +0 -4
  324. package/SVF-doxygen/html/html/classSVF_1_1SVFOtherType.html +5 -5
  325. package/SVF-doxygen/html/html/classSVF_1_1SVFOtherValue-members.html +1 -1
  326. package/SVF-doxygen/html/html/classSVF_1_1SVFOtherValue.html +3 -3
  327. package/SVF-doxygen/html/html/classSVF_1_1SVFPointerType.html +9 -9
  328. package/SVF-doxygen/html/html/classSVF_1_1SVFStat.html +19 -19
  329. package/SVF-doxygen/html/html/classSVF_1_1SVFStructType.html +5 -5
  330. package/SVF-doxygen/html/html/classSVF_1_1SVFType.html +38 -38
  331. package/SVF-doxygen/html/html/classSVF_1_1SVFValue-members.html +1 -1
  332. package/SVF-doxygen/html/html/classSVF_1_1SVFValue.html +4 -5
  333. package/SVF-doxygen/html/html/classSVF_1_1SVFVar.html +1 -1
  334. package/SVF-doxygen/html/html/classSVF_1_1SVFVirtualCallInst-members.html +1 -1
  335. package/SVF-doxygen/html/html/classSVF_1_1SVFVirtualCallInst.html +2 -2
  336. package/SVF-doxygen/html/html/classSVF_1_1SaberCondAllocator.html +9 -9
  337. package/SVF-doxygen/html/html/classSVF_1_1SaberSVFGBuilder-members.html +12 -14
  338. package/SVF-doxygen/html/html/classSVF_1_1SaberSVFGBuilder.html +42 -68
  339. package/SVF-doxygen/html/html/classSVF_1_1SparseBitVector-members.html +1 -1
  340. package/SVF-doxygen/html/html/classSVF_1_1SparseBitVector.html +108 -109
  341. package/SVF-doxygen/html/html/classSVF_1_1SparseBitVector_1_1SparseBitVectorIterator-members.html +1 -1
  342. package/SVF-doxygen/html/html/classSVF_1_1SparseBitVector_1_1SparseBitVectorIterator.html +50 -50
  343. package/SVF-doxygen/html/html/classSVF_1_1SrcSnkDDA-members.html +6 -6
  344. package/SVF-doxygen/html/html/classSVF_1_1SrcSnkDDA.html +146 -146
  345. package/SVF-doxygen/html/html/classSVF_1_1StInfo-members.html +5 -5
  346. package/SVF-doxygen/html/html/classSVF_1_1StInfo.html +48 -61
  347. package/SVF-doxygen/html/html/classSVF_1_1Steensgaard-members.html +178 -179
  348. package/SVF-doxygen/html/html/classSVF_1_1Steensgaard.html +35 -38
  349. package/SVF-doxygen/html/html/classSVF_1_1StoreVFGNode.html +1 -1
  350. package/SVF-doxygen/html/html/classSVF_1_1SymbolTableBuilder.html +20 -20
  351. package/SVF-doxygen/html/html/classSVF_1_1SymbolTableInfo.html +42 -46
  352. package/SVF-doxygen/html/html/classSVF_1_1TCT.html +10 -10
  353. package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraph.html +8 -8
  354. package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis-members.html +169 -170
  355. package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis.html +31 -34
  356. package/SVF-doxygen/html/html/classSVF_1_1UnaryOPVFGNode.html +2 -2
  357. package/SVF-doxygen/html/html/classSVF_1_1VFG.html +28 -28
  358. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive-members.html +263 -264
  359. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive.html +112 -115
  360. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitiveStat.html +41 -41
  361. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive_1_1SCC.html +1 -1
  362. package/SVF-doxygen/html/html/classSVF_1_1VersionedPTData.html +9 -9
  363. package/SVF-doxygen/html/html/classSVF_1_1WPAFSSolver-members.html +2 -2
  364. package/SVF-doxygen/html/html/classSVF_1_1WPAFSSolver.html +9 -9
  365. package/SVF-doxygen/html/html/classSVF_1_1WPAMinimumSolver-members.html +2 -2
  366. package/SVF-doxygen/html/html/classSVF_1_1WPAMinimumSolver.html +15 -15
  367. package/SVF-doxygen/html/html/classSVF_1_1WPAPass.html +25 -25
  368. package/SVF-doxygen/html/html/classSVF_1_1WPASCCSolver-members.html +2 -2
  369. package/SVF-doxygen/html/html/classSVF_1_1WPASCCSolver.html +17 -17
  370. package/SVF-doxygen/html/html/classSVF_1_1WPASolver-members.html +2 -2
  371. package/SVF-doxygen/html/html/classSVF_1_1WPASolver.html +76 -81
  372. package/SVF-doxygen/html/html/classSVF_1_1Z3Expr.html +2 -2
  373. package/SVF-doxygen/html/html/dda_8cpp.html +1 -1
  374. package/SVF-doxygen/html/html/dda_8cpp_source.html +1 -1
  375. package/SVF-doxygen/html/html/functions.html +1 -1
  376. package/SVF-doxygen/html/html/functions_0x7e.html +16 -16
  377. package/SVF-doxygen/html/html/functions_a.html +7 -7
  378. package/SVF-doxygen/html/html/functions_b.html +6 -6
  379. package/SVF-doxygen/html/html/functions_c.html +27 -27
  380. package/SVF-doxygen/html/html/functions_d.html +10 -11
  381. package/SVF-doxygen/html/html/functions_e.html +2 -2
  382. package/SVF-doxygen/html/html/functions_f.html +6 -6
  383. package/SVF-doxygen/html/html/functions_func.html +6 -6
  384. package/SVF-doxygen/html/html/functions_func_0x7e.html +16 -16
  385. package/SVF-doxygen/html/html/functions_func_b.html +6 -6
  386. package/SVF-doxygen/html/html/functions_func_c.html +27 -27
  387. package/SVF-doxygen/html/html/functions_func_d.html +10 -11
  388. package/SVF-doxygen/html/html/functions_func_e.html +2 -2
  389. package/SVF-doxygen/html/html/functions_func_f.html +5 -5
  390. package/SVF-doxygen/html/html/functions_func_g.html +22 -22
  391. package/SVF-doxygen/html/html/functions_func_h.html +3 -3
  392. package/SVF-doxygen/html/html/functions_func_i.html +3 -3
  393. package/SVF-doxygen/html/html/functions_func_o.html +3 -3
  394. package/SVF-doxygen/html/html/functions_func_p.html +5 -5
  395. package/SVF-doxygen/html/html/functions_func_r.html +5 -8
  396. package/SVF-doxygen/html/html/functions_func_s.html +6 -6
  397. package/SVF-doxygen/html/html/functions_func_t.html +1 -1
  398. package/SVF-doxygen/html/html/functions_func_u.html +23 -23
  399. package/SVF-doxygen/html/html/functions_g.html +25 -28
  400. package/SVF-doxygen/html/html/functions_h.html +3 -3
  401. package/SVF-doxygen/html/html/functions_i.html +6 -6
  402. package/SVF-doxygen/html/html/functions_m.html +1 -1
  403. package/SVF-doxygen/html/html/functions_o.html +13 -13
  404. package/SVF-doxygen/html/html/functions_p.html +19 -19
  405. package/SVF-doxygen/html/html/functions_r.html +11 -12
  406. package/SVF-doxygen/html/html/functions_s.html +33 -36
  407. package/SVF-doxygen/html/html/functions_t.html +12 -12
  408. package/SVF-doxygen/html/html/functions_type_t.html +1 -1
  409. package/SVF-doxygen/html/html/functions_u.html +26 -23
  410. package/SVF-doxygen/html/html/functions_v.html +6 -6
  411. package/SVF-doxygen/html/html/functions_vars.html +1 -1
  412. package/SVF-doxygen/html/html/functions_vars_f.html +1 -1
  413. package/SVF-doxygen/html/html/functions_vars_g.html +0 -3
  414. package/SVF-doxygen/html/html/functions_vars_i.html +1 -1
  415. package/SVF-doxygen/html/html/functions_vars_m.html +1 -1
  416. package/SVF-doxygen/html/html/functions_vars_p.html +2 -2
  417. package/SVF-doxygen/html/html/functions_vars_s.html +5 -8
  418. package/SVF-doxygen/html/html/functions_vars_t.html +1 -1
  419. package/SVF-doxygen/html/html/functions_vars_u.html +3 -0
  420. package/SVF-doxygen/html/html/functions_w.html +3 -7
  421. package/SVF-doxygen/html/html/include_2MTA_2MTAResultValidator_8h_source.html +1 -1
  422. package/SVF-doxygen/html/html/mta_8cpp.html +1 -1
  423. package/SVF-doxygen/html/html/mta_8cpp_source.html +1 -1
  424. package/SVF-doxygen/html/html/namespaceSVF.html +35 -35
  425. package/SVF-doxygen/html/html/namespaceSVF_1_1LLVMUtil.html +2 -2
  426. package/SVF-doxygen/html/html/namespaceSVF_1_1SVFUtil.html +4 -4
  427. package/SVF-doxygen/html/html/saber_8cpp.html +1 -5
  428. package/SVF-doxygen/html/html/saber_8cpp_source.html +1 -5
  429. package/SVF-doxygen/html/html/search/all_0.js +1 -1
  430. package/SVF-doxygen/html/html/search/all_1.js +4 -4
  431. package/SVF-doxygen/html/html/search/all_10.js +15 -15
  432. package/SVF-doxygen/html/html/search/all_11.js +1 -2
  433. package/SVF-doxygen/html/html/search/all_12.js +20 -21
  434. package/SVF-doxygen/html/html/search/all_13.js +8 -8
  435. package/SVF-doxygen/html/html/search/all_14.js +13 -12
  436. package/SVF-doxygen/html/html/search/all_15.js +4 -4
  437. package/SVF-doxygen/html/html/search/all_16.js +2 -2
  438. package/SVF-doxygen/html/html/search/all_19.js +16 -16
  439. package/SVF-doxygen/html/html/search/all_2.js +6 -6
  440. package/SVF-doxygen/html/html/search/all_3.js +14 -14
  441. package/SVF-doxygen/html/html/search/all_4.js +5 -5
  442. package/SVF-doxygen/html/html/search/all_5.js +2 -2
  443. package/SVF-doxygen/html/html/search/all_6.js +5 -5
  444. package/SVF-doxygen/html/html/search/all_7.js +11 -12
  445. package/SVF-doxygen/html/html/search/all_8.js +3 -3
  446. package/SVF-doxygen/html/html/search/all_9.js +4 -4
  447. package/SVF-doxygen/html/html/search/all_b.js +1 -1
  448. package/SVF-doxygen/html/html/search/all_c.js +3 -3
  449. package/SVF-doxygen/html/html/search/all_d.js +3 -3
  450. package/SVF-doxygen/html/html/search/all_e.js +2 -2
  451. package/SVF-doxygen/html/html/search/all_f.js +5 -5
  452. package/SVF-doxygen/html/html/search/functions_0.js +4 -4
  453. package/SVF-doxygen/html/html/search/functions_1.js +6 -6
  454. package/SVF-doxygen/html/html/search/functions_10.js +1 -2
  455. package/SVF-doxygen/html/html/search/functions_11.js +11 -11
  456. package/SVF-doxygen/html/html/search/functions_12.js +1 -1
  457. package/SVF-doxygen/html/html/search/functions_13.js +12 -12
  458. package/SVF-doxygen/html/html/search/functions_17.js +16 -16
  459. package/SVF-doxygen/html/html/search/functions_2.js +14 -14
  460. package/SVF-doxygen/html/html/search/functions_3.js +5 -5
  461. package/SVF-doxygen/html/html/search/functions_4.js +2 -2
  462. package/SVF-doxygen/html/html/search/functions_5.js +4 -4
  463. package/SVF-doxygen/html/html/search/functions_6.js +11 -11
  464. package/SVF-doxygen/html/html/search/functions_7.js +3 -3
  465. package/SVF-doxygen/html/html/search/functions_8.js +3 -3
  466. package/SVF-doxygen/html/html/search/functions_d.js +1 -1
  467. package/SVF-doxygen/html/html/search/functions_e.js +3 -3
  468. package/SVF-doxygen/html/html/search/functions_f.js +5 -5
  469. package/SVF-doxygen/html/html/search/typedefs_11.js +1 -1
  470. package/SVF-doxygen/html/html/search/variables_0.js +1 -1
  471. package/SVF-doxygen/html/html/search/variables_10.js +2 -2
  472. package/SVF-doxygen/html/html/search/variables_12.js +5 -6
  473. package/SVF-doxygen/html/html/search/variables_13.js +3 -3
  474. package/SVF-doxygen/html/html/search/variables_14.js +1 -0
  475. package/SVF-doxygen/html/html/search/variables_6.js +1 -1
  476. package/SVF-doxygen/html/html/search/variables_7.js +0 -1
  477. package/SVF-doxygen/html/html/search/variables_9.js +1 -1
  478. package/SVF-doxygen/html/html/search/variables_d.js +1 -1
  479. package/SVF-doxygen/html/html/search/variables_e.js +1 -1
  480. package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01CFLGraph_01_5_01_4.html +14 -14
  481. package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01ConstraintGraph_01_5_01_4.html +2 -2
  482. package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01IRGraph_01_5_01_4.html +1 -1
  483. package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01SVFG_01_5_01_4.html +1 -1
  484. package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1SVFG_01_5_01_4.html +2 -2
  485. package/SVF-doxygen/html/html/structSVF_1_1Hash_3_01NodePair_01_4.html +3 -3
  486. package/SVF-doxygen/html/html/structSVF_1_1SparseBitVectorElement-members.html +1 -1
  487. package/SVF-doxygen/html/html/structSVF_1_1SparseBitVectorElement.html +47 -57
  488. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1NodePair_01_4.html +3 -3
  489. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1PointsTo_01_4.html +1 -1
  490. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1SparseBitVector_3_01N_01_4_01_4.html +5 -5
  491. package/SVF-doxygen/html/html/structstd_1_1hash_3_01std_1_1vector_3_01T_01_4_01_4.html +3 -3
  492. package/SVF-doxygen/html/html/svf-ex_8cpp.html +6 -7
  493. package/SVF-doxygen/html/html/svf-ex_8cpp_source.html +7 -7
  494. package/SVF-doxygen/html/html/tools_2MTA_2MTAResultValidator_8h_source.html +1 -1
  495. package/SVF-doxygen/html/html/wpa_8cpp.html +1 -1
  496. package/SVF-doxygen/html/html/wpa_8cpp_source.html +1 -1
  497. package/build.sh +2 -2
  498. package/include/DDA/DDAPass.h +1 -1
  499. package/include/DDA/FlowDDA.h +1 -1
  500. package/include/Graphs/ICFG.h +1 -1
  501. package/include/Graphs/SVFG.h +3 -4
  502. package/include/Graphs/SVFGOPT.h +7 -7
  503. package/include/MSSA/MemSSA.h +2 -0
  504. package/include/MSSA/SVFGBuilder.h +5 -14
  505. package/include/MTA/MTA.h +2 -2
  506. package/include/MemoryModel/MutablePointsToDS.h +3 -3
  507. package/include/MemoryModel/PersistentPointsToCache.h +7 -8
  508. package/include/MemoryModel/PersistentPointsToDS.h +93 -93
  509. package/include/MemoryModel/PointerAnalysisImpl.h +17 -28
  510. package/include/MemoryModel/PointsTo.h +24 -24
  511. package/include/SABER/SrcSnkDDA.h +10 -13
  512. package/include/SVF-LLVM/LLVMLoopAnalysis.h +2 -1
  513. package/include/SVF-LLVM/LLVMModule.h +6 -6
  514. package/include/SVFIR/SVFIR.h +3 -5
  515. package/include/SVFIR/SVFType.h +6 -8
  516. package/include/SVFIR/SVFValue.h +5 -5
  517. package/include/Util/Options.h +0 -1
  518. package/include/Util/SparseBitVector.h +6 -14
  519. package/include/WPA/FlowSensitive.h +13 -20
  520. package/include/WPA/WPASolver.h +5 -9
  521. package/lib/DDA/DDAPass.cpp +4 -4
  522. package/lib/Graphs/CFLGraph.cpp +3 -0
  523. package/lib/Graphs/SVFG.cpp +1 -1
  524. package/lib/MSSA/MemSSA.cpp +5 -3
  525. package/lib/MSSA/SVFGBuilder.cpp +9 -27
  526. package/lib/MTA/MTA.cpp +4 -4
  527. package/lib/MemoryModel/PointerAnalysisImpl.cpp +10 -10
  528. package/lib/MemoryModel/PointsTo.cpp +23 -19
  529. package/lib/SVF-LLVM/LLVMLoopAnalysis.cpp +3 -4
  530. package/lib/SVF-LLVM/LLVMModule.cpp +32 -21
  531. package/lib/SVFIR/SVFIR.cpp +1 -1
  532. package/lib/SVFIR/SymbolTableInfo.cpp +4 -15
  533. package/lib/Util/Options.cpp +0 -6
  534. package/lib/WPA/AndersenSFR.cpp +1 -1
  535. package/lib/WPA/FlowSensitive.cpp +1 -1
  536. package/package.json +1 -1
  537. package/tools/CFL/cfl.cpp +5 -4
  538. package/tools/DDA/dda.cpp +3 -2
  539. package/tools/Example/svf-ex.cpp +3 -2
  540. package/tools/MTA/mta.cpp +6 -4
  541. package/tools/SABER/saber.cpp +7 -5
  542. package/tools/WPA/wpa.cpp +3 -2
@@ -89,12 +89,12 @@ Inheritance diagram for SVF::SVFGOPT:</div>
89
89
  <table class="memberdecls">
90
90
  <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
91
91
  Public Member Functions</h2></td></tr>
92
- <tr class="memitem:a239475c15b39d54c632427307b8e9350"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SVFGOPT.html#a239475c15b39d54c632427307b8e9350">SVFGOPT</a> (<a class="el" href="classSVF_1_1MemSSA.html">MemSSA</a> *_mssa, <a class="el" href="classSVF_1_1VFG.html#ac2e2f555975063da3fa1932ac35802c6">VFGK</a> <a class="el" href="classSVF_1_1VFG.html#a3867c591a231bad0aa2e6ab7c095a42f">kind</a>)</td></tr>
93
- <tr class="memdesc:a239475c15b39d54c632427307b8e9350"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor. <a href="#a239475c15b39d54c632427307b8e9350">More...</a><br /></td></tr>
94
- <tr class="separator:a239475c15b39d54c632427307b8e9350"><td class="memSeparator" colspan="2">&#160;</td></tr>
95
- <tr class="memitem:af45feec9a906f9df86e244bb62f603b8"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SVFGOPT.html#af45feec9a906f9df86e244bb62f603b8">~SVFGOPT</a> ()</td></tr>
96
- <tr class="memdesc:af45feec9a906f9df86e244bb62f603b8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destructor. <a href="#af45feec9a906f9df86e244bb62f603b8">More...</a><br /></td></tr>
97
- <tr class="separator:af45feec9a906f9df86e244bb62f603b8"><td class="memSeparator" colspan="2">&#160;</td></tr>
92
+ <tr class="memitem:a64c300c8a9f8cc2ac13eef65c1108d01"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SVFGOPT.html#a64c300c8a9f8cc2ac13eef65c1108d01">SVFGOPT</a> (std::unique_ptr&lt; <a class="el" href="classSVF_1_1MemSSA.html">MemSSA</a> &gt; <a class="el" href="classSVF_1_1SVFG.html#aa6a563cab8678b2256ca6ae7838285c8">mssa</a>, <a class="el" href="classSVF_1_1VFG.html#ac2e2f555975063da3fa1932ac35802c6">VFGK</a> <a class="el" href="classSVF_1_1VFG.html#a3867c591a231bad0aa2e6ab7c095a42f">kind</a>)</td></tr>
93
+ <tr class="memdesc:a64c300c8a9f8cc2ac13eef65c1108d01"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor. <a href="#a64c300c8a9f8cc2ac13eef65c1108d01">More...</a><br /></td></tr>
94
+ <tr class="separator:a64c300c8a9f8cc2ac13eef65c1108d01"><td class="memSeparator" colspan="2">&#160;</td></tr>
95
+ <tr class="memitem:ac9c5f279353ceea5a93dbdf002e3be0c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SVFGOPT.html#ac9c5f279353ceea5a93dbdf002e3be0c">~SVFGOPT</a> () override=default</td></tr>
96
+ <tr class="memdesc:ac9c5f279353ceea5a93dbdf002e3be0c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destructor. <a href="#ac9c5f279353ceea5a93dbdf002e3be0c">More...</a><br /></td></tr>
97
+ <tr class="separator:ac9c5f279353ceea5a93dbdf002e3be0c"><td class="memSeparator" colspan="2">&#160;</td></tr>
98
98
  <tr class="memitem:af0c1bb4055d3c4b7f5c6133c433144ad"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SVFGOPT.html#af0c1bb4055d3c4b7f5c6133c433144ad">setTokeepActualOutFormalIn</a> ()</td></tr>
99
99
  <tr class="separator:af0c1bb4055d3c4b7f5c6133c433144ad"><td class="memSeparator" colspan="2">&#160;</td></tr>
100
100
  <tr class="memitem:a99cce24804a9116f9bf4e773b2f28e85"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SVFGOPT.html#a99cce24804a9116f9bf4e773b2f28e85">setTokeepAllSelfCycle</a> ()</td></tr>
@@ -335,22 +335,22 @@ Public Member Functions</h2></td></tr>
335
335
  </table><table class="memberdecls">
336
336
  <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
337
337
  Protected Member Functions</h2></td></tr>
338
- <tr class="memitem:af4d2c6d2e3b316b256f860801fe3b178"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SVFGOPT.html#af4d2c6d2e3b316b256f860801fe3b178">buildSVFG</a> ()</td></tr>
339
- <tr class="memdesc:af4d2c6d2e3b316b256f860801fe3b178"><td class="mdescLeft">&#160;</td><td class="mdescRight">Start building <a class="el" href="classSVF_1_1SVFG.html">SVFG</a>. <a href="#af4d2c6d2e3b316b256f860801fe3b178">More...</a><br /></td></tr>
340
- <tr class="separator:af4d2c6d2e3b316b256f860801fe3b178"><td class="memSeparator" colspan="2">&#160;</td></tr>
338
+ <tr class="memitem:a788fded648d6d037dc7be4b7796a3e7a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SVFGOPT.html#a788fded648d6d037dc7be4b7796a3e7a">buildSVFG</a> () override</td></tr>
339
+ <tr class="memdesc:a788fded648d6d037dc7be4b7796a3e7a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Start building <a class="el" href="classSVF_1_1SVFG.html">SVFG</a>. <a href="#a788fded648d6d037dc7be4b7796a3e7a">More...</a><br /></td></tr>
340
+ <tr class="separator:a788fded648d6d037dc7be4b7796a3e7a"><td class="memSeparator" colspan="2">&#160;</td></tr>
341
341
  <tr><td colspan="2"><div class="groupHeader"></div></td></tr>
342
- <tr class="memitem:a5e65ac95b96fb87a11a765c51f366ec1"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SVFGOPT.html#a5e65ac95b96fb87a11a765c51f366ec1">connectAParamAndFParam</a> (const <a class="el" href="namespaceSVF.html#a733b44f64a95e6e13e7379120d7a3eea">PAGNode</a> *cs_arg, const <a class="el" href="namespaceSVF.html#a733b44f64a95e6e13e7379120d7a3eea">PAGNode</a> *fun_arg, const <a class="el" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a> *, <a class="el" href="namespaceSVF.html#a03d88a0302bcd253387690f13f693f64">CallSiteID</a> csId, <a class="el" href="classSVF_1_1VFG.html#ac97ef8c479556f9ca2c40cd4d8a18694">SVFGEdgeSetTy</a> &amp;edges)</td></tr>
343
- <tr class="memdesc:a5e65ac95b96fb87a11a765c51f366ec1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Connect <a class="el" href="classSVF_1_1SVFG.html">SVFG</a> nodes between caller and callee for indirect call sites. <a href="#a5e65ac95b96fb87a11a765c51f366ec1">More...</a><br /></td></tr>
344
- <tr class="separator:a5e65ac95b96fb87a11a765c51f366ec1"><td class="memSeparator" colspan="2">&#160;</td></tr>
345
- <tr class="memitem:aad3217fa932738ab8ba09e1e9f48ac56"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SVFGOPT.html#aad3217fa932738ab8ba09e1e9f48ac56">connectFRetAndARet</a> (const <a class="el" href="namespaceSVF.html#a733b44f64a95e6e13e7379120d7a3eea">PAGNode</a> *fun_ret, const <a class="el" href="namespaceSVF.html#a733b44f64a95e6e13e7379120d7a3eea">PAGNode</a> *cs_ret, <a class="el" href="namespaceSVF.html#a03d88a0302bcd253387690f13f693f64">CallSiteID</a> csId, <a class="el" href="classSVF_1_1VFG.html#ac97ef8c479556f9ca2c40cd4d8a18694">SVFGEdgeSetTy</a> &amp;edges)</td></tr>
346
- <tr class="memdesc:aad3217fa932738ab8ba09e1e9f48ac56"><td class="mdescLeft">&#160;</td><td class="mdescRight">Connect formal-ret and actual ret. <a href="#aad3217fa932738ab8ba09e1e9f48ac56">More...</a><br /></td></tr>
347
- <tr class="separator:aad3217fa932738ab8ba09e1e9f48ac56"><td class="memSeparator" colspan="2">&#160;</td></tr>
348
- <tr class="memitem:aa39900e11f5689f8bd70f3ec45865225"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SVFGOPT.html#aa39900e11f5689f8bd70f3ec45865225">connectAInAndFIn</a> (const <a class="el" href="classSVF_1_1ActualINSVFGNode.html">ActualINSVFGNode</a> *actualIn, const <a class="el" href="classSVF_1_1FormalINSVFGNode.html">FormalINSVFGNode</a> *formalIn, <a class="el" href="namespaceSVF.html#a03d88a0302bcd253387690f13f693f64">CallSiteID</a> csId, <a class="el" href="classSVF_1_1VFG.html#ac97ef8c479556f9ca2c40cd4d8a18694">SVFGEdgeSetTy</a> &amp;edges)</td></tr>
349
- <tr class="memdesc:aa39900e11f5689f8bd70f3ec45865225"><td class="mdescLeft">&#160;</td><td class="mdescRight">Connect actual-in and formal-in. <a href="#aa39900e11f5689f8bd70f3ec45865225">More...</a><br /></td></tr>
350
- <tr class="separator:aa39900e11f5689f8bd70f3ec45865225"><td class="memSeparator" colspan="2">&#160;</td></tr>
351
- <tr class="memitem:a79ace9bac7f2e075c27209ea56fc6032"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SVFGOPT.html#a79ace9bac7f2e075c27209ea56fc6032">connectFOutAndAOut</a> (const <a class="el" href="classSVF_1_1FormalOUTSVFGNode.html">FormalOUTSVFGNode</a> *formalOut, const <a class="el" href="classSVF_1_1ActualOUTSVFGNode.html">ActualOUTSVFGNode</a> *actualOut, <a class="el" href="namespaceSVF.html#a03d88a0302bcd253387690f13f693f64">CallSiteID</a> csId, <a class="el" href="classSVF_1_1VFG.html#ac97ef8c479556f9ca2c40cd4d8a18694">SVFGEdgeSetTy</a> &amp;edges)</td></tr>
352
- <tr class="memdesc:a79ace9bac7f2e075c27209ea56fc6032"><td class="mdescLeft">&#160;</td><td class="mdescRight">Connect formal-out and actual-out. <a href="#a79ace9bac7f2e075c27209ea56fc6032">More...</a><br /></td></tr>
353
- <tr class="separator:a79ace9bac7f2e075c27209ea56fc6032"><td class="memSeparator" colspan="2">&#160;</td></tr>
342
+ <tr class="memitem:a82c28afbba24b90ef0394c9dcd0aae57"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SVFGOPT.html#a82c28afbba24b90ef0394c9dcd0aae57">connectAParamAndFParam</a> (const <a class="el" href="namespaceSVF.html#a733b44f64a95e6e13e7379120d7a3eea">PAGNode</a> *cs_arg, const <a class="el" href="namespaceSVF.html#a733b44f64a95e6e13e7379120d7a3eea">PAGNode</a> *fun_arg, const <a class="el" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a> *, <a class="el" href="namespaceSVF.html#a03d88a0302bcd253387690f13f693f64">CallSiteID</a> csId, <a class="el" href="classSVF_1_1VFG.html#ac97ef8c479556f9ca2c40cd4d8a18694">SVFGEdgeSetTy</a> &amp;edges) override</td></tr>
343
+ <tr class="memdesc:a82c28afbba24b90ef0394c9dcd0aae57"><td class="mdescLeft">&#160;</td><td class="mdescRight">Connect <a class="el" href="classSVF_1_1SVFG.html">SVFG</a> nodes between caller and callee for indirect call sites. <a href="#a82c28afbba24b90ef0394c9dcd0aae57">More...</a><br /></td></tr>
344
+ <tr class="separator:a82c28afbba24b90ef0394c9dcd0aae57"><td class="memSeparator" colspan="2">&#160;</td></tr>
345
+ <tr class="memitem:ae5648d1248af4e4ce755ee5d32f84a06"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SVFGOPT.html#ae5648d1248af4e4ce755ee5d32f84a06">connectFRetAndARet</a> (const <a class="el" href="namespaceSVF.html#a733b44f64a95e6e13e7379120d7a3eea">PAGNode</a> *fun_ret, const <a class="el" href="namespaceSVF.html#a733b44f64a95e6e13e7379120d7a3eea">PAGNode</a> *cs_ret, <a class="el" href="namespaceSVF.html#a03d88a0302bcd253387690f13f693f64">CallSiteID</a> csId, <a class="el" href="classSVF_1_1VFG.html#ac97ef8c479556f9ca2c40cd4d8a18694">SVFGEdgeSetTy</a> &amp;edges) override</td></tr>
346
+ <tr class="memdesc:ae5648d1248af4e4ce755ee5d32f84a06"><td class="mdescLeft">&#160;</td><td class="mdescRight">Connect formal-ret and actual ret. <a href="#ae5648d1248af4e4ce755ee5d32f84a06">More...</a><br /></td></tr>
347
+ <tr class="separator:ae5648d1248af4e4ce755ee5d32f84a06"><td class="memSeparator" colspan="2">&#160;</td></tr>
348
+ <tr class="memitem:a624c36b40fd301d67a71952adf206e47"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SVFGOPT.html#a624c36b40fd301d67a71952adf206e47">connectAInAndFIn</a> (const <a class="el" href="classSVF_1_1ActualINSVFGNode.html">ActualINSVFGNode</a> *actualIn, const <a class="el" href="classSVF_1_1FormalINSVFGNode.html">FormalINSVFGNode</a> *formalIn, <a class="el" href="namespaceSVF.html#a03d88a0302bcd253387690f13f693f64">CallSiteID</a> csId, <a class="el" href="classSVF_1_1VFG.html#ac97ef8c479556f9ca2c40cd4d8a18694">SVFGEdgeSetTy</a> &amp;edges) override</td></tr>
349
+ <tr class="memdesc:a624c36b40fd301d67a71952adf206e47"><td class="mdescLeft">&#160;</td><td class="mdescRight">Connect actual-in and formal-in. <a href="#a624c36b40fd301d67a71952adf206e47">More...</a><br /></td></tr>
350
+ <tr class="separator:a624c36b40fd301d67a71952adf206e47"><td class="memSeparator" colspan="2">&#160;</td></tr>
351
+ <tr class="memitem:ad88f85a4d5c397b3b6896608ba035bd3"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SVFGOPT.html#ad88f85a4d5c397b3b6896608ba035bd3">connectFOutAndAOut</a> (const <a class="el" href="classSVF_1_1FormalOUTSVFGNode.html">FormalOUTSVFGNode</a> *formalOut, const <a class="el" href="classSVF_1_1ActualOUTSVFGNode.html">ActualOUTSVFGNode</a> *actualOut, <a class="el" href="namespaceSVF.html#a03d88a0302bcd253387690f13f693f64">CallSiteID</a> csId, <a class="el" href="classSVF_1_1VFG.html#ac97ef8c479556f9ca2c40cd4d8a18694">SVFGEdgeSetTy</a> &amp;edges) override</td></tr>
352
+ <tr class="memdesc:ad88f85a4d5c397b3b6896608ba035bd3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Connect formal-out and actual-out. <a href="#ad88f85a4d5c397b3b6896608ba035bd3">More...</a><br /></td></tr>
353
+ <tr class="separator:ad88f85a4d5c397b3b6896608ba035bd3"><td class="memSeparator" colspan="2">&#160;</td></tr>
354
354
  <tr><td colspan="2"><div class="groupHeader"></div></td></tr>
355
355
  <tr class="memitem:a550f93b640a6fd68773fbafd2944d7df"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SVFGOPT.html#a550f93b640a6fd68773fbafd2944d7df">getActualINDef</a> (<a class="el" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> ai) const</td></tr>
356
356
  <tr class="memdesc:a550f93b640a6fd68773fbafd2944d7df"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get def-site of actual-in/formal-out. <a href="#a550f93b640a6fd68773fbafd2944d7df">More...</a><br /></td></tr>
@@ -361,9 +361,9 @@ Protected Member Functions</h2></td></tr>
361
361
  <tr class="memitem:a82a93d9b7fcf1938e3090a0826a1ca7e inherit pro_methods_classSVF_1_1SVFG"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SVFG.html#a82a93d9b7fcf1938e3090a0826a1ca7e">destroy</a> ()</td></tr>
362
362
  <tr class="memdesc:a82a93d9b7fcf1938e3090a0826a1ca7e inherit pro_methods_classSVF_1_1SVFG"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clean up memory. <a href="classSVF_1_1SVFG.html#a82a93d9b7fcf1938e3090a0826a1ca7e">More...</a><br /></td></tr>
363
363
  <tr class="separator:a82a93d9b7fcf1938e3090a0826a1ca7e inherit pro_methods_classSVF_1_1SVFG"><td class="memSeparator" colspan="2">&#160;</td></tr>
364
- <tr class="memitem:a68965c5a9cc5136aa0b593851c60ff12 inherit pro_methods_classSVF_1_1SVFG"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SVFG.html#a68965c5a9cc5136aa0b593851c60ff12">SVFG</a> (<a class="el" href="classSVF_1_1MemSSA.html">MemSSA</a> *<a class="el" href="classSVF_1_1SVFG.html#a6f07410ee34e4bf1079e3b5902c81d28">mssa</a>, <a class="el" href="classSVF_1_1VFG.html#ac2e2f555975063da3fa1932ac35802c6">VFGK</a> k)</td></tr>
365
- <tr class="memdesc:a68965c5a9cc5136aa0b593851c60ff12 inherit pro_methods_classSVF_1_1SVFG"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor. <a href="classSVF_1_1SVFG.html#a68965c5a9cc5136aa0b593851c60ff12">More...</a><br /></td></tr>
366
- <tr class="separator:a68965c5a9cc5136aa0b593851c60ff12 inherit pro_methods_classSVF_1_1SVFG"><td class="memSeparator" colspan="2">&#160;</td></tr>
364
+ <tr class="memitem:a07d48490eda50ee6d31f295150409cf3 inherit pro_methods_classSVF_1_1SVFG"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SVFG.html#a07d48490eda50ee6d31f295150409cf3">SVFG</a> (std::unique_ptr&lt; <a class="el" href="classSVF_1_1MemSSA.html">MemSSA</a> &gt; <a class="el" href="classSVF_1_1SVFG.html#aa6a563cab8678b2256ca6ae7838285c8">mssa</a>, <a class="el" href="classSVF_1_1VFG.html#ac2e2f555975063da3fa1932ac35802c6">VFGK</a> k)</td></tr>
365
+ <tr class="memdesc:a07d48490eda50ee6d31f295150409cf3 inherit pro_methods_classSVF_1_1SVFG"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor. <a href="classSVF_1_1SVFG.html#a07d48490eda50ee6d31f295150409cf3">More...</a><br /></td></tr>
366
+ <tr class="separator:a07d48490eda50ee6d31f295150409cf3 inherit pro_methods_classSVF_1_1SVFG"><td class="memSeparator" colspan="2">&#160;</td></tr>
367
367
  <tr class="memitem:a57629591037e16e57a0178d102a405f2 inherit pro_methods_classSVF_1_1SVFG"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceSVF.html#aa4745cf70b26e17d59752356f0b19dd9">SVFGEdge</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SVFG.html#a57629591037e16e57a0178d102a405f2">addInterIndirectVFCallEdge</a> (const <a class="el" href="classSVF_1_1ActualINSVFGNode.html">ActualINSVFGNode</a> *src, const <a class="el" href="classSVF_1_1FormalINSVFGNode.html">FormalINSVFGNode</a> *dst, <a class="el" href="namespaceSVF.html#a03d88a0302bcd253387690f13f693f64">CallSiteID</a> csId)</td></tr>
368
368
  <tr class="memdesc:a57629591037e16e57a0178d102a405f2 inherit pro_methods_classSVF_1_1SVFG"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add inter VF edge from callsite mu to function entry chi. <a href="classSVF_1_1SVFG.html#a57629591037e16e57a0178d102a405f2">More...</a><br /></td></tr>
369
369
  <tr class="separator:a57629591037e16e57a0178d102a405f2 inherit pro_methods_classSVF_1_1SVFG"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -780,8 +780,8 @@ Additional Inherited Members</h2></td></tr>
780
780
  <tr class="separator:a7d58f9fe97071ec9936174689cb99301 inherit pro_attribs_classSVF_1_1SVFG"><td class="memSeparator" colspan="2">&#160;</td></tr>
781
781
  <tr class="memitem:ad5c1415f488ec4412d5457262269eff3 inherit pro_attribs_classSVF_1_1SVFG"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1SVFGStat.html">SVFGStat</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SVFG.html#ad5c1415f488ec4412d5457262269eff3">stat</a></td></tr>
782
782
  <tr class="separator:ad5c1415f488ec4412d5457262269eff3 inherit pro_attribs_classSVF_1_1SVFG"><td class="memSeparator" colspan="2">&#160;</td></tr>
783
- <tr class="memitem:a6f07410ee34e4bf1079e3b5902c81d28 inherit pro_attribs_classSVF_1_1SVFG"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1MemSSA.html">MemSSA</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SVFG.html#a6f07410ee34e4bf1079e3b5902c81d28">mssa</a></td></tr>
784
- <tr class="separator:a6f07410ee34e4bf1079e3b5902c81d28 inherit pro_attribs_classSVF_1_1SVFG"><td class="memSeparator" colspan="2">&#160;</td></tr>
783
+ <tr class="memitem:aa6a563cab8678b2256ca6ae7838285c8 inherit pro_attribs_classSVF_1_1SVFG"><td class="memItemLeft" align="right" valign="top">std::unique_ptr&lt; <a class="el" href="classSVF_1_1MemSSA.html">MemSSA</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SVFG.html#aa6a563cab8678b2256ca6ae7838285c8">mssa</a></td></tr>
784
+ <tr class="separator:aa6a563cab8678b2256ca6ae7838285c8 inherit pro_attribs_classSVF_1_1SVFG"><td class="memSeparator" colspan="2">&#160;</td></tr>
785
785
  <tr class="memitem:a0d6cfa496e6885fe31b6b7a651fa01a8 inherit pro_attribs_classSVF_1_1SVFG"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1PointerAnalysis.html">PointerAnalysis</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SVFG.html#a0d6cfa496e6885fe31b6b7a651fa01a8">pta</a></td></tr>
786
786
  <tr class="separator:a0d6cfa496e6885fe31b6b7a651fa01a8 inherit pro_attribs_classSVF_1_1SVFG"><td class="memSeparator" colspan="2">&#160;</td></tr>
787
787
  <tr class="inherit_header pro_attribs_classSVF_1_1VFG"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classSVF_1_1VFG')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="classSVF_1_1VFG.html">SVF::VFG</a></td></tr>
@@ -920,8 +920,8 @@ Additional Inherited Members</h2></td></tr>
920
920
  </div>
921
921
  </div>
922
922
  <h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
923
- <a id="a239475c15b39d54c632427307b8e9350"></a>
924
- <h2 class="memtitle"><span class="permalink"><a href="#a239475c15b39d54c632427307b8e9350">&#9670;&nbsp;</a></span>SVFGOPT()</h2>
923
+ <a id="a64c300c8a9f8cc2ac13eef65c1108d01"></a>
924
+ <h2 class="memtitle"><span class="permalink"><a href="#a64c300c8a9f8cc2ac13eef65c1108d01">&#9670;&nbsp;</a></span>SVFGOPT()</h2>
925
925
 
926
926
  <div class="memitem">
927
927
  <div class="memproto">
@@ -932,8 +932,8 @@ Additional Inherited Members</h2></td></tr>
932
932
  <tr>
933
933
  <td class="memname">SVF::SVFGOPT::SVFGOPT </td>
934
934
  <td>(</td>
935
- <td class="paramtype"><a class="el" href="classSVF_1_1MemSSA.html">MemSSA</a> *&#160;</td>
936
- <td class="paramname"><em>_mssa</em>, </td>
935
+ <td class="paramtype">std::unique_ptr&lt; <a class="el" href="classSVF_1_1MemSSA.html">MemSSA</a> &gt;&#160;</td>
936
+ <td class="paramname"><em>mssa</em>, </td>
937
937
  </tr>
938
938
  <tr>
939
939
  <td class="paramkey"></td>
@@ -957,16 +957,18 @@ Additional Inherited Members</h2></td></tr>
957
957
  <p>Constructor. </p>
958
958
 
959
959
  <p class="definition">Definition at line <a class="el" href="SVFGOPT_8h_source.html#l00064">64</a> of file <a class="el" href="SVFGOPT_8h_source.html">SVFGOPT.h</a>.</p>
960
- <div class="fragment"><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; : <a class="code" href="classSVF_1_1SVFG.html#a68965c5a9cc5136aa0b593851c60ff12">SVFG</a>(_mssa, <a class="code" href="classSVF_1_1VFG.html#a3867c591a231bad0aa2e6ab7c095a42f">kind</a>)</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; {</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <a class="code" href="classSVF_1_1SVFGOPT.html#a65bba62d9b62bf2bdbbda69540eeb38d">keepAllSelfCycle</a> = <a class="code" href="classSVF_1_1SVFGOPT.html#ac68a53c567929ba8b69c00e3e8d9d30f">keepContextSelfCycle</a> = <a class="code" href="classSVF_1_1SVFGOPT.html#a7e57ca56a587a5b59543b5bab7fe794d">keepActualOutFormalIn</a> = <span class="keyword">false</span>;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; }</div><div class="ttc" id="classSVF_1_1SVFGOPT_html_a65bba62d9b62bf2bdbbda69540eeb38d"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#a65bba62d9b62bf2bdbbda69540eeb38d">SVF::SVFGOPT::keepAllSelfCycle</a></div><div class="ttdeci">bool keepAllSelfCycle</div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8h_source.html#l00356">SVFGOPT.h:356</a></div></div>
960
+ <div class="fragment"><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; : <a class="code" href="classSVF_1_1SVFG.html#a07d48490eda50ee6d31f295150409cf3">SVFG</a>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a72502f7f536418621485e90ab98c2016">std::move</a>(<a class="code" href="classSVF_1_1SVFG.html#aa6a563cab8678b2256ca6ae7838285c8">mssa</a>), <a class="code" href="classSVF_1_1VFG.html#a3867c591a231bad0aa2e6ab7c095a42f">kind</a>)</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; {</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <a class="code" href="classSVF_1_1SVFGOPT.html#a65bba62d9b62bf2bdbbda69540eeb38d">keepAllSelfCycle</a> = <a class="code" href="classSVF_1_1SVFGOPT.html#ac68a53c567929ba8b69c00e3e8d9d30f">keepContextSelfCycle</a> = <a class="code" href="classSVF_1_1SVFGOPT.html#a7e57ca56a587a5b59543b5bab7fe794d">keepActualOutFormalIn</a> = <span class="keyword">false</span>;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; }</div><div class="ttc" id="classSVF_1_1SVFG_html_aa6a563cab8678b2256ca6ae7838285c8"><div class="ttname"><a href="classSVF_1_1SVFG.html#aa6a563cab8678b2256ca6ae7838285c8">SVF::SVFG::mssa</a></div><div class="ttdeci">std::unique_ptr&lt; MemSSA &gt; mssa</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00105">SVFG.h:105</a></div></div>
961
+ <div class="ttc" id="classSVF_1_1SVFGOPT_html_a65bba62d9b62bf2bdbbda69540eeb38d"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#a65bba62d9b62bf2bdbbda69540eeb38d">SVF::SVFGOPT::keepAllSelfCycle</a></div><div class="ttdeci">bool keepAllSelfCycle</div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8h_source.html#l00356">SVFGOPT.h:356</a></div></div>
961
962
  <div class="ttc" id="classSVF_1_1SVFGOPT_html_a7e57ca56a587a5b59543b5bab7fe794d"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#a7e57ca56a587a5b59543b5bab7fe794d">SVF::SVFGOPT::keepActualOutFormalIn</a></div><div class="ttdeci">bool keepActualOutFormalIn</div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8h_source.html#l00355">SVFGOPT.h:355</a></div></div>
962
963
  <div class="ttc" id="classSVF_1_1SVFGOPT_html_ac68a53c567929ba8b69c00e3e8d9d30f"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#ac68a53c567929ba8b69c00e3e8d9d30f">SVF::SVFGOPT::keepContextSelfCycle</a></div><div class="ttdeci">bool keepContextSelfCycle</div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8h_source.html#l00357">SVFGOPT.h:357</a></div></div>
964
+ <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a72502f7f536418621485e90ab98c2016"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a72502f7f536418621485e90ab98c2016">SVF::SVFUtil::move</a></div><div class="ttdeci">constexpr std::remove_reference&lt; T &gt;::type &amp;&amp; move(T &amp;&amp;t) noexcept</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00657">SVFUtil.h:657</a></div></div>
963
965
  <div class="ttc" id="classSVF_1_1VFG_html_a3867c591a231bad0aa2e6ab7c095a42f"><div class="ttname"><a href="classSVF_1_1VFG.html#a3867c591a231bad0aa2e6ab7c095a42f">SVF::VFG::kind</a></div><div class="ttdeci">VFGK kind</div><div class="ttdef"><b>Definition:</b> <a href="VFG_8h_source.html#l00105">VFG.h:105</a></div></div>
964
- <div class="ttc" id="classSVF_1_1SVFG_html_a68965c5a9cc5136aa0b593851c60ff12"><div class="ttname"><a href="classSVF_1_1SVFG.html#a68965c5a9cc5136aa0b593851c60ff12">SVF::SVFG::SVFG</a></div><div class="ttdeci">SVFG(MemSSA *mssa, VFGK k)</div><div class="ttdoc">Constructor. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8cpp_source.html#l00200">SVFG.cpp:200</a></div></div>
966
+ <div class="ttc" id="classSVF_1_1SVFG_html_a07d48490eda50ee6d31f295150409cf3"><div class="ttname"><a href="classSVF_1_1SVFG.html#a07d48490eda50ee6d31f295150409cf3">SVF::SVFG::SVFG</a></div><div class="ttdeci">SVFG(std::unique_ptr&lt; MemSSA &gt; mssa, VFGK k)</div><div class="ttdoc">Constructor. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8cpp_source.html#l00200">SVFG.cpp:200</a></div></div>
965
967
  </div><!-- fragment -->
966
968
  </div>
967
969
  </div>
968
- <a id="af45feec9a906f9df86e244bb62f603b8"></a>
969
- <h2 class="memtitle"><span class="permalink"><a href="#af45feec9a906f9df86e244bb62f603b8">&#9670;&nbsp;</a></span>~SVFGOPT()</h2>
970
+ <a id="ac9c5f279353ceea5a93dbdf002e3be0c"></a>
971
+ <h2 class="memtitle"><span class="permalink"><a href="#ac9c5f279353ceea5a93dbdf002e3be0c">&#9670;&nbsp;</a></span>~SVFGOPT()</h2>
970
972
 
971
973
  <div class="memitem">
972
974
  <div class="memproto">
@@ -975,7 +977,7 @@ Additional Inherited Members</h2></td></tr>
975
977
  <td class="mlabels-left">
976
978
  <table class="memname">
977
979
  <tr>
978
- <td class="memname">virtual SVF::SVFGOPT::~SVFGOPT </td>
980
+ <td class="memname">SVF::SVFGOPT::~SVFGOPT </td>
979
981
  <td>(</td>
980
982
  <td class="paramname"></td><td>)</td>
981
983
  <td></td>
@@ -983,15 +985,13 @@ Additional Inherited Members</h2></td></tr>
983
985
  </table>
984
986
  </td>
985
987
  <td class="mlabels-right">
986
- <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span> </td>
988
+ <span class="mlabels"><span class="mlabel">override</span><span class="mlabel">default</span></span> </td>
987
989
  </tr>
988
990
  </table>
989
991
  </div><div class="memdoc">
990
992
 
991
993
  <p>Destructor. </p>
992
994
 
993
- <p class="definition">Definition at line <a class="el" href="SVFGOPT_8h_source.html#l00069">69</a> of file <a class="el" href="SVFGOPT_8h_source.html">SVFGOPT.h</a>.</p>
994
- <div class="fragment"><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;{}</div></div><!-- fragment -->
995
995
  </div>
996
996
  </div>
997
997
  <h2 class="groupheader">Member Function Documentation</h2>
@@ -1143,8 +1143,8 @@ Additional Inherited Members</h2></td></tr>
1143
1143
  <div class="ttc" id="classSVF_1_1VFG_html_a25c2bbbc2e966e2aaa59a5b83363557a"><div class="ttname"><a href="classSVF_1_1VFG.html#a25c2bbbc2e966e2aaa59a5b83363557a">SVF::VFG::pag</a></div><div class="ttdeci">SVFIR * pag</div><div class="ttdef"><b>Definition:</b> <a href="VFG_8h_source.html#l00104">VFG.h:104</a></div></div>
1144
1144
  <div class="ttc" id="classSVF_1_1VFG_html_acb181d4f9faa40578c80e2018e2742b8"><div class="ttname"><a href="classSVF_1_1VFG.html#acb181d4f9faa40578c80e2018e2742b8">SVF::VFG::totalVFGNode</a></div><div class="ttdeci">NodeID totalVFGNode</div><div class="ttdef"><b>Definition:</b> <a href="VFG_8h_source.html#l00088">VFG.h:88</a></div></div>
1145
1145
  <div class="ttc" id="classSVF_1_1SVFGOPT_html_af504407e6cd42cfe2ea27165ff15df40"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#af504407e6cd42cfe2ea27165ff15df40">SVF::SVFGOPT::resetDef</a></div><div class="ttdeci">void resetDef(const PAGNode *pagNode, const SVFGNode *node)</div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8h_source.html#l00260">SVFGOPT.h:260</a></div></div>
1146
- <div class="ttc" id="classSVF_1_1SVFG_html_a88e1f6f77421c5274ceeb14928bdcb43"><div class="ttname"><a href="classSVF_1_1SVFG.html#a88e1f6f77421c5274ceeb14928bdcb43">SVF::SVFG::addSVFGNode</a></div><div class="ttdeci">virtual void addSVFGNode(SVFGNode *node, ICFGNode *icfgNode)</div><div class="ttdoc">Add SVFG node. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00391">SVFG.h:391</a></div></div>
1147
- <div class="ttc" id="classSVF_1_1SVFIR_html_aa1943d53e75aef9b014953143c6894da"><div class="ttname"><a href="classSVF_1_1SVFIR.html#aa1943d53e75aef9b014953143c6894da">SVF::SVFIR::getICFG</a></div><div class="ttdeci">ICFG * getICFG()</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00165">SVFIR.h:165</a></div></div>
1146
+ <div class="ttc" id="classSVF_1_1SVFG_html_a88e1f6f77421c5274ceeb14928bdcb43"><div class="ttname"><a href="classSVF_1_1SVFG.html#a88e1f6f77421c5274ceeb14928bdcb43">SVF::SVFG::addSVFGNode</a></div><div class="ttdeci">virtual void addSVFGNode(SVFGNode *node, ICFGNode *icfgNode)</div><div class="ttdoc">Add SVFG node. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00390">SVFG.h:390</a></div></div>
1147
+ <div class="ttc" id="classSVF_1_1SVFIR_html_aa1943d53e75aef9b014953143c6894da"><div class="ttname"><a href="classSVF_1_1SVFIR.html#aa1943d53e75aef9b014953143c6894da">SVF::SVFIR::getICFG</a></div><div class="ttdeci">ICFG * getICFG()</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00163">SVFIR.h:163</a></div></div>
1148
1148
  </div><!-- fragment -->
1149
1149
  </div>
1150
1150
  </div>
@@ -1180,8 +1180,8 @@ Additional Inherited Members</h2></td></tr>
1180
1180
  <div class="ttc" id="classSVF_1_1VFG_html_acb181d4f9faa40578c80e2018e2742b8"><div class="ttname"><a href="classSVF_1_1VFG.html#acb181d4f9faa40578c80e2018e2742b8">SVF::VFG::totalVFGNode</a></div><div class="ttdeci">NodeID totalVFGNode</div><div class="ttdef"><b>Definition:</b> <a href="VFG_8h_source.html#l00088">VFG.h:88</a></div></div>
1181
1181
  <div class="ttc" id="classSVF_1_1ICFG_html_a0dca4655c2f6112a5be1f921b8e81076"><div class="ttname"><a href="classSVF_1_1ICFG.html#a0dca4655c2f6112a5be1f921b8e81076">SVF::ICFG::getFunEntryICFGNode</a></div><div class="ttdeci">FunEntryICFGNode * getFunEntryICFGNode(const SVFFunction *fun)</div><div class="ttdoc">Add a function entry node. </div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#l00269">ICFG.cpp:269</a></div></div>
1182
1182
  <div class="ttc" id="classSVF_1_1SVFGOPT_html_af504407e6cd42cfe2ea27165ff15df40"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#af504407e6cd42cfe2ea27165ff15df40">SVF::SVFGOPT::resetDef</a></div><div class="ttdeci">void resetDef(const PAGNode *pagNode, const SVFGNode *node)</div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8h_source.html#l00260">SVFGOPT.h:260</a></div></div>
1183
- <div class="ttc" id="classSVF_1_1SVFG_html_a88e1f6f77421c5274ceeb14928bdcb43"><div class="ttname"><a href="classSVF_1_1SVFG.html#a88e1f6f77421c5274ceeb14928bdcb43">SVF::SVFG::addSVFGNode</a></div><div class="ttdeci">virtual void addSVFGNode(SVFGNode *node, ICFGNode *icfgNode)</div><div class="ttdoc">Add SVFG node. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00391">SVFG.h:391</a></div></div>
1184
- <div class="ttc" id="classSVF_1_1SVFIR_html_aa1943d53e75aef9b014953143c6894da"><div class="ttname"><a href="classSVF_1_1SVFIR.html#aa1943d53e75aef9b014953143c6894da">SVF::SVFIR::getICFG</a></div><div class="ttdeci">ICFG * getICFG()</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00165">SVFIR.h:165</a></div></div>
1183
+ <div class="ttc" id="classSVF_1_1SVFG_html_a88e1f6f77421c5274ceeb14928bdcb43"><div class="ttname"><a href="classSVF_1_1SVFG.html#a88e1f6f77421c5274ceeb14928bdcb43">SVF::SVFG::addSVFGNode</a></div><div class="ttdeci">virtual void addSVFGNode(SVFGNode *node, ICFGNode *icfgNode)</div><div class="ttdoc">Add SVFG node. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00390">SVFG.h:390</a></div></div>
1184
+ <div class="ttc" id="classSVF_1_1SVFIR_html_aa1943d53e75aef9b014953143c6894da"><div class="ttname"><a href="classSVF_1_1SVFIR.html#aa1943d53e75aef9b014953143c6894da">SVF::SVFIR::getICFG</a></div><div class="ttdeci">ICFG * getICFG()</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00163">SVFIR.h:163</a></div></div>
1185
1185
  </div><!-- fragment -->
1186
1186
  </div>
1187
1187
  </div>
@@ -1312,7 +1312,7 @@ Additional Inherited Members</h2></td></tr>
1312
1312
  <div class="fragment"><div class="line"><a name="l00524"></a><span class="lineno"> 524</span>&#160;{</div><div class="line"><a name="l00525"></a><span class="lineno"> 525</span>&#160; assert(SVFUtil::isa&lt;IndirectSVFGEdge&gt;(preEdge) &amp;&amp; SVFUtil::isa&lt;IndirectSVFGEdge&gt;(succEdge)</div><div class="line"><a name="l00526"></a><span class="lineno"> 526</span>&#160; &amp;&amp; <span class="stringliteral">&quot;either pre or succ edge is not indirect SVFG edge&quot;</span>);</div><div class="line"><a name="l00527"></a><span class="lineno"> 527</span>&#160;</div><div class="line"><a name="l00528"></a><span class="lineno"> 528</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1IndirectSVFGEdge.html">IndirectSVFGEdge</a>* preIndEdge = SVFUtil::cast&lt;IndirectSVFGEdge&gt;(preEdge);</div><div class="line"><a name="l00529"></a><span class="lineno"> 529</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1IndirectSVFGEdge.html">IndirectSVFGEdge</a>* succIndEdge = SVFUtil::cast&lt;IndirectSVFGEdge&gt;(succEdge);</div><div class="line"><a name="l00530"></a><span class="lineno"> 530</span>&#160;</div><div class="line"><a name="l00531"></a><span class="lineno"> 531</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a> intersection = preIndEdge-&gt;<a class="code" href="classSVF_1_1IndirectSVFGEdge.html#a30aca718d25924f1babdf348bb0ace71">getPointsTo</a>();</div><div class="line"><a name="l00532"></a><span class="lineno"> 532</span>&#160; intersection &amp;= succIndEdge-&gt;getPointsTo();</div><div class="line"><a name="l00533"></a><span class="lineno"> 533</span>&#160;</div><div class="line"><a name="l00534"></a><span class="lineno"> 534</span>&#160; <span class="keywordflow">if</span> (intersection.empty())</div><div class="line"><a name="l00535"></a><span class="lineno"> 535</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00536"></a><span class="lineno"> 536</span>&#160;</div><div class="line"><a name="l00537"></a><span class="lineno"> 537</span>&#160; assert(<a class="code" href="classSVF_1_1SVFGOPT.html#a6d5cdb3b78e4ed482b0da4c64323b463">bothInterEdges</a>(preEdge, succEdge) == <span class="keyword">false</span> &amp;&amp; <span class="stringliteral">&quot;both edges are inter edges&quot;</span>);</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">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallIndSVFGEdge.html">CallIndSVFGEdge</a>* preCallEdge = SVFUtil::dyn_cast&lt;CallIndSVFGEdge&gt;(preEdge))</div><div class="line"><a name="l00540"></a><span class="lineno"> 540</span>&#160; {</div><div class="line"><a name="l00541"></a><span class="lineno"> 541</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFGOPT.html#a11dc712bf74ba61160fed7a5c3efaeee">addCallIndirectSVFGEdge</a>(srcId, dstId, preCallEdge-&gt;getCallSiteId(), intersection);</div><div class="line"><a name="l00542"></a><span class="lineno"> 542</span>&#160; }</div><div class="line"><a name="l00543"></a><span class="lineno"> 543</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallIndSVFGEdge.html">CallIndSVFGEdge</a>* succCallEdge = SVFUtil::dyn_cast&lt;CallIndSVFGEdge&gt;(succEdge))</div><div class="line"><a name="l00544"></a><span class="lineno"> 544</span>&#160; {</div><div class="line"><a name="l00545"></a><span class="lineno"> 545</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFGOPT.html#a11dc712bf74ba61160fed7a5c3efaeee">addCallIndirectSVFGEdge</a>(srcId, dstId, succCallEdge-&gt;getCallSiteId(), intersection);</div><div class="line"><a name="l00546"></a><span class="lineno"> 546</span>&#160; }</div><div class="line"><a name="l00547"></a><span class="lineno"> 547</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1RetIndSVFGEdge.html">RetIndSVFGEdge</a>* preRetEdge = SVFUtil::dyn_cast&lt;RetIndSVFGEdge&gt;(preEdge))</div><div class="line"><a name="l00548"></a><span class="lineno"> 548</span>&#160; {</div><div class="line"><a name="l00549"></a><span class="lineno"> 549</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFGOPT.html#afa99da68ef756d968d39a85f0fac3649">addRetIndirectSVFGEdge</a>(srcId, dstId, preRetEdge-&gt;getCallSiteId(), intersection);</div><div class="line"><a name="l00550"></a><span class="lineno"> 550</span>&#160; }</div><div class="line"><a name="l00551"></a><span class="lineno"> 551</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1RetIndSVFGEdge.html">RetIndSVFGEdge</a>* succRetEdge = SVFUtil::dyn_cast&lt;RetIndSVFGEdge&gt;(succEdge))</div><div class="line"><a name="l00552"></a><span class="lineno"> 552</span>&#160; {</div><div class="line"><a name="l00553"></a><span class="lineno"> 553</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFGOPT.html#afa99da68ef756d968d39a85f0fac3649">addRetIndirectSVFGEdge</a>(srcId, dstId, succRetEdge-&gt;getCallSiteId(), intersection);</div><div class="line"><a name="l00554"></a><span class="lineno"> 554</span>&#160; }</div><div class="line"><a name="l00555"></a><span class="lineno"> 555</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00556"></a><span class="lineno"> 556</span>&#160; {</div><div class="line"><a name="l00557"></a><span class="lineno"> 557</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFG.html#ad03f0064d3a1ff397b35a606304a9c80">addIntraIndirectVFEdge</a>(srcId, dstId, intersection);</div><div class="line"><a name="l00558"></a><span class="lineno"> 558</span>&#160; }</div><div class="line"><a name="l00559"></a><span class="lineno"> 559</span>&#160;</div><div class="line"><a name="l00560"></a><span class="lineno"> 560</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00561"></a><span class="lineno"> 561</span>&#160;}</div><div class="ttc" id="classSVF_1_1RetIndSVFGEdge_html"><div class="ttname"><a href="classSVF_1_1RetIndSVFGEdge.html">SVF::RetIndSVFGEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFGEdge_8h_source.html#l00165">SVFGEdge.h:165</a></div></div>
1313
1313
  <div class="ttc" id="classSVF_1_1CallIndSVFGEdge_html"><div class="ttname"><a href="classSVF_1_1CallIndSVFGEdge.html">SVF::CallIndSVFGEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFGEdge_8h_source.html#l00126">SVFGEdge.h:126</a></div></div>
1314
1314
  <div class="ttc" id="classSVF_1_1SVFGOPT_html_a11dc712bf74ba61160fed7a5c3efaeee"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#a11dc712bf74ba61160fed7a5c3efaeee">SVF::SVFGOPT::addCallIndirectSVFGEdge</a></div><div class="ttdeci">SVFGEdge * addCallIndirectSVFGEdge(NodeID srcId, NodeID dstId, CallSiteID csid, const NodeBS &amp;cpts)</div><div class="ttdoc">Add inter-procedural value flow edge. </div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8cpp_source.html#l00068">SVFGOPT.cpp:68</a></div></div>
1315
- <div class="ttc" id="classSVF_1_1SparseBitVector_html"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html">SVF::SparseBitVector</a></div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00462">SparseBitVector.h:462</a></div></div>
1315
+ <div class="ttc" id="classSVF_1_1SparseBitVector_html"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html">SVF::SparseBitVector</a></div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00454">SparseBitVector.h:454</a></div></div>
1316
1316
  <div class="ttc" id="classSVF_1_1SVFGOPT_html_afa99da68ef756d968d39a85f0fac3649"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#afa99da68ef756d968d39a85f0fac3649">SVF::SVFGOPT::addRetIndirectSVFGEdge</a></div><div class="ttdeci">SVFGEdge * addRetIndirectSVFGEdge(NodeID srcId, NodeID dstId, CallSiteID csid, const NodeBS &amp;cpts)</div><div class="ttdoc">Add indirect ret edge from src to dst with one call site ID. </div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8cpp_source.html#l00079">SVFGOPT.cpp:79</a></div></div>
1317
1317
  <div class="ttc" id="classSVF_1_1SVFG_html_ad03f0064d3a1ff397b35a606304a9c80"><div class="ttname"><a href="classSVF_1_1SVFG.html#ad03f0064d3a1ff397b35a606304a9c80">SVF::SVFG::addIntraIndirectVFEdge</a></div><div class="ttdeci">SVFGEdge * addIntraIndirectVFEdge(NodeID srcId, NodeID dstId, const NodeBS &amp;cpts)</div><div class="ttdoc">Add indirect def-use edges of a memory region between two statements,. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8cpp_source.html#l00461">SVFG.cpp:461</a></div></div>
1318
1318
  <div class="ttc" id="classSVF_1_1SVFGOPT_html_a6d5cdb3b78e4ed482b0da4c64323b463"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#a6d5cdb3b78e4ed482b0da4c64323b463">SVF::SVFGOPT::bothInterEdges</a></div><div class="ttdeci">bool bothInterEdges(const SVFGEdge *edge1, const SVFGEdge *edge2) const</div><div class="ttdoc">Return TRUE if both edges are indirect call/ret edges. </div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8h_source.html#l00231">SVFGOPT.h:231</a></div></div>
@@ -1416,8 +1416,8 @@ Additional Inherited Members</h2></td></tr>
1416
1416
  <div class="fragment"><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; {</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; <span class="keywordtype">bool</span> inter1 = SVFUtil::isa&lt;CallIndSVFGEdge, RetIndSVFGEdge&gt;(edge1);</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; <span class="keywordtype">bool</span> inter2 = SVFUtil::isa&lt;CallIndSVFGEdge, RetIndSVFGEdge&gt;(edge2);</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; <span class="keywordflow">return</span> (inter1 &amp;&amp; inter2);</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; }</div></div><!-- fragment -->
1417
1417
  </div>
1418
1418
  </div>
1419
- <a id="af4d2c6d2e3b316b256f860801fe3b178"></a>
1420
- <h2 class="memtitle"><span class="permalink"><a href="#af4d2c6d2e3b316b256f860801fe3b178">&#9670;&nbsp;</a></span>buildSVFG()</h2>
1419
+ <a id="a788fded648d6d037dc7be4b7796a3e7a"></a>
1420
+ <h2 class="memtitle"><span class="permalink"><a href="#a788fded648d6d037dc7be4b7796a3e7a">&#9670;&nbsp;</a></span>buildSVFG()</h2>
1421
1421
 
1422
1422
  <div class="memitem">
1423
1423
  <div class="memproto">
@@ -1434,7 +1434,7 @@ Additional Inherited Members</h2></td></tr>
1434
1434
  </table>
1435
1435
  </td>
1436
1436
  <td class="mlabels-right">
1437
- <span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">virtual</span></span> </td>
1437
+ <span class="mlabels"><span class="mlabel">override</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></span> </td>
1438
1438
  </tr>
1439
1439
  </table>
1440
1440
  </div><div class="memdoc">
@@ -1448,7 +1448,7 @@ Additional Inherited Members</h2></td></tr>
1448
1448
  <div class="fragment"><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;{</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <a class="code" href="classSVF_1_1SVFG.html#a0920e9f9896531959d74ae61013d96d6">SVFG::buildSVFG</a>();</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1Options.html#a3061c75f7491dd737222b1b877721070">Options::DumpVFG</a>)</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <a class="code" href="classSVF_1_1SVFG.html#a5fdaddc52e7342b834d76d64c1a1e498">dump</a>(<span class="stringliteral">&quot;SVFG_before_opt&quot;</span>);</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <a class="code" href="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFType_8h.html#a2c64190a065f342897573a3ef4973adb">DGENERAL</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a609eea630a8f88fe9eaba15ce7e48738">SVFUtil::pasMsg</a>(<span class="stringliteral">&quot;\tSVFG Optimisation\n&quot;</span>));</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <a class="code" href="classSVF_1_1SVFGOPT.html#a7e57ca56a587a5b59543b5bab7fe794d">keepActualOutFormalIn</a> = <a class="code" href="classSVF_1_1Options.html#acd687c31bb6662940ab8a1c3d17dc1ef">Options::KeepAOFI</a>;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <a class="code" href="classSVF_1_1SVFG.html#ad5c1415f488ec4412d5457262269eff3">stat</a>-&gt;<a class="code" href="classSVF_1_1SVFGStat.html#acb80953b39ce247679242df4f042ab79">sfvgOptStart</a>();</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <a class="code" href="classSVF_1_1SVFGOPT.html#a4c698184cc23730fb44904d4048958da">handleInterValueFlow</a>();</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <a class="code" href="classSVF_1_1SVFGOPT.html#a21429d8c3fba209d9cdc22e3623c5573">handleIntraValueFlow</a>();</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <a class="code" href="classSVF_1_1SVFG.html#ad5c1415f488ec4412d5457262269eff3">stat</a>-&gt;<a class="code" href="classSVF_1_1SVFGStat.html#aaec3a7f29b3ded0c971d57376d2779ff">sfvgOptEnd</a>();</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_1SVFG_html_a5fdaddc52e7342b834d76d64c1a1e498"><div class="ttname"><a href="classSVF_1_1SVFG.html#a5fdaddc52e7342b834d76d64c1a1e498">SVF::SVFG::dump</a></div><div class="ttdeci">void dump(const std::string &amp;file, bool simple=false)</div><div class="ttdoc">Dump graph into dot file. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8cpp_source.html#l00574">SVFG.cpp:574</a></div></div>
1449
1449
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a609eea630a8f88fe9eaba15ce7e48738"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a609eea630a8f88fe9eaba15ce7e48738">SVF::SVFUtil::pasMsg</a></div><div class="ttdeci">std::string pasMsg(std::string msg)</div><div class="ttdoc">Print each pass/phase message by converting a string into blue string output. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8cpp_source.html#l00098">SVFUtil.cpp:98</a></div></div>
1450
1450
  <div class="ttc" id="classSVF_1_1SVFGOPT_html_a7e57ca56a587a5b59543b5bab7fe794d"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#a7e57ca56a587a5b59543b5bab7fe794d">SVF::SVFGOPT::keepActualOutFormalIn</a></div><div class="ttdeci">bool keepActualOutFormalIn</div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8h_source.html#l00355">SVFGOPT.h:355</a></div></div>
1451
- <div class="ttc" id="SVFType_8h_html_a2c64190a065f342897573a3ef4973adb"><div class="ttname"><a href="SVFType_8h.html#a2c64190a065f342897573a3ef4973adb">DGENERAL</a></div><div class="ttdeci">#define DGENERAL</div><div class="ttdoc">General debug flag is for each phase of a pass, it is often in a colorful output format. </div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00424">SVFType.h:424</a></div></div>
1451
+ <div class="ttc" id="SVFType_8h_html_a2c64190a065f342897573a3ef4973adb"><div class="ttname"><a href="SVFType_8h.html#a2c64190a065f342897573a3ef4973adb">DGENERAL</a></div><div class="ttdeci">#define DGENERAL</div><div class="ttdoc">General debug flag is for each phase of a pass, it is often in a colorful output format. </div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00422">SVFType.h:422</a></div></div>
1452
1452
  <div class="ttc" id="classSVF_1_1SVFGOPT_html_a21429d8c3fba209d9cdc22e3623c5573"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#a21429d8c3fba209d9cdc22e3623c5573">SVF::SVFGOPT::handleIntraValueFlow</a></div><div class="ttdeci">void handleIntraValueFlow()</div><div class="ttdoc">Remove MSSAPHI SVFG nodes. </div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8cpp_source.html#l00391">SVFGOPT.cpp:391</a></div></div>
1453
1453
  <div class="ttc" id="classSVF_1_1SVFG_html_a0920e9f9896531959d74ae61013d96d6"><div class="ttname"><a href="classSVF_1_1SVFG.html#a0920e9f9896531959d74ae61013d96d6">SVF::SVFG::buildSVFG</a></div><div class="ttdeci">virtual void buildSVFG()</div><div class="ttdoc">Start building SVFG. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8cpp_source.html#l00224">SVFG.cpp:224</a></div></div>
1454
1454
  <div class="ttc" id="classSVF_1_1Options_html_a3061c75f7491dd737222b1b877721070"><div class="ttname"><a href="classSVF_1_1Options.html#a3061c75f7491dd737222b1b877721070">SVF::Options::DumpVFG</a></div><div class="ttdeci">static const llvm::cl::opt&lt; bool &gt; DumpVFG</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00122">Options.h:122</a></div></div>
@@ -1457,7 +1457,7 @@ Additional Inherited Members</h2></td></tr>
1457
1457
  <div class="ttc" id="classSVF_1_1SVFGStat_html_aaec3a7f29b3ded0c971d57376d2779ff"><div class="ttname"><a href="classSVF_1_1SVFGStat.html#aaec3a7f29b3ded0c971d57376d2779ff">SVF::SVFGStat::sfvgOptEnd</a></div><div class="ttdeci">void sfvgOptEnd()</div><div class="ttdef"><b>Definition:</b> <a href="SVFGStat_8h_source.html#l00154">SVFGStat.h:154</a></div></div>
1458
1458
  <div class="ttc" id="classSVF_1_1Options_html_acd687c31bb6662940ab8a1c3d17dc1ef"><div class="ttname"><a href="classSVF_1_1Options.html#acd687c31bb6662940ab8a1c3d17dc1ef">SVF::Options::KeepAOFI</a></div><div class="ttdeci">static const llvm::cl::opt&lt; bool &gt; KeepAOFI</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00118">Options.h:118</a></div></div>
1459
1459
  <div class="ttc" id="classSVF_1_1SVFGStat_html_acb80953b39ce247679242df4f042ab79"><div class="ttname"><a href="classSVF_1_1SVFGStat.html#acb80953b39ce247679242df4f042ab79">SVF::SVFGStat::sfvgOptStart</a></div><div class="ttdeci">void sfvgOptStart()</div><div class="ttdef"><b>Definition:</b> <a href="SVFGStat_8h_source.html#l00149">SVFGStat.h:149</a></div></div>
1460
- <div class="ttc" id="SVFType_8h_html_a173ce1b9b505fdadf5613b663749d3b0"><div class="ttname"><a href="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a></div><div class="ttdeci">#define DBOUT(TYPE, X)</div><div class="ttdoc">LLVM debug macros, define type of your DEBUG model of each pass. </div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00419">SVFType.h:419</a></div></div>
1460
+ <div class="ttc" id="SVFType_8h_html_a173ce1b9b505fdadf5613b663749d3b0"><div class="ttname"><a href="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a></div><div class="ttdeci">#define DBOUT(TYPE, X)</div><div class="ttdoc">LLVM debug macros, define type of your DEBUG model of each pass. </div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00417">SVFType.h:417</a></div></div>
1461
1461
  <div class="ttc" id="classSVF_1_1SVFGOPT_html_a4c698184cc23730fb44904d4048958da"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#a4c698184cc23730fb44904d4048958da">SVF::SVFGOPT::handleInterValueFlow</a></div><div class="ttdeci">void handleInterValueFlow()</div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8cpp_source.html#l00090">SVFGOPT.cpp:90</a></div></div>
1462
1462
  </div><!-- fragment -->
1463
1463
  </div>
@@ -1594,7 +1594,7 @@ Additional Inherited Members</h2></td></tr>
1594
1594
  <p>Continue checking and remove other self cycle which are NOT context-related </p>
1595
1595
 
1596
1596
  <p class="definition">Definition at line <a class="el" href="SVFGOPT_8cpp_source.html#l00442">442</a> of file <a class="el" href="SVFGOPT_8cpp_source.html">SVFGOPT.cpp</a>.</p>
1597
- <div class="fragment"><div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160;{</div><div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160; <span class="keywordtype">bool</span> hasSelfCycle = <span class="keyword">false</span>;</div><div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160;</div><div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160; <a class="code" href="classSVF_1_1VFGEdge.html#a557334ef75bb5479b045f68c27b38701">SVFGEdge::SVFGEdgeSetTy</a> inEdges = node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#afc8b5f86d7795b6a0dfc0687d942d79b">getInEdges</a>();</div><div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160; <a class="code" href="classSVF_1_1VFGNode.html#a3c558955f60c237c558d8faafed781e8">SVFGNode::const_iterator</a> inEdgeIt = inEdges.begin();</div><div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160; <a class="code" href="classSVF_1_1VFGNode.html#a3c558955f60c237c558d8faafed781e8">SVFGNode::const_iterator</a> inEdgeEit = inEdges.end();</div><div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160; <span class="keywordflow">for</span> (; inEdgeIt != inEdgeEit; ++inEdgeIt)</div><div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160; {</div><div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160; <a class="code" href="classSVF_1_1VFGEdge.html">SVFGEdge</a>* preEdge = *inEdgeIt;</div><div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160;</div><div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160; <span class="keywordflow">if</span> (preEdge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#ae6792506a0150a9400d635eceab7f9e7">getSrcID</a>() == preEdge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#ad9edb45e74ae675d9da82f5acf02d56e">getDstID</a>())</div><div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160; {</div><div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SVFGOPT.html#a65bba62d9b62bf2bdbbda69540eeb38d">keepAllSelfCycle</a>)</div><div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160; {</div><div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160; hasSelfCycle = <span class="keyword">true</span>;</div><div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160; <span class="keywordflow">break</span>; </div><div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160; }</div><div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SVFGOPT.html#ac68a53c567929ba8b69c00e3e8d9d30f">keepContextSelfCycle</a> &amp;&amp;</div><div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160; SVFUtil::isa&lt;CallIndSVFGEdge, RetIndSVFGEdge&gt;(preEdge))</div><div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160; {</div><div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160; hasSelfCycle = <span class="keyword">true</span>;</div><div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160; <span class="keywordflow">continue</span>; </div><div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160; }</div><div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160; {</div><div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160; assert(SVFUtil::isa&lt;IndirectSVFGEdge&gt;(preEdge) &amp;&amp; <span class="stringliteral">&quot;can only remove indirect SVFG edge&quot;</span>);</div><div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160; <a class="code" href="classSVF_1_1SVFG.html#a931d8b82e10a54d68c68cf6bd80264be">removeSVFGEdge</a>(preEdge);</div><div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160; }</div><div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160; }</div><div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160; }</div><div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160;</div><div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160; <span class="keywordflow">return</span> hasSelfCycle;</div><div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160;}</div><div class="ttc" id="classSVF_1_1SVFG_html_a931d8b82e10a54d68c68cf6bd80264be"><div class="ttname"><a href="classSVF_1_1SVFG.html#a931d8b82e10a54d68c68cf6bd80264be">SVF::SVFG::removeSVFGEdge</a></div><div class="ttdeci">void removeSVFGEdge(SVFGEdge *edge)</div><div class="ttdoc">Remove a SVFG edge. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00232">SVFG.h:232</a></div></div>
1597
+ <div class="fragment"><div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160;{</div><div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160; <span class="keywordtype">bool</span> hasSelfCycle = <span class="keyword">false</span>;</div><div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160;</div><div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160; <a class="code" href="classSVF_1_1VFGEdge.html#a557334ef75bb5479b045f68c27b38701">SVFGEdge::SVFGEdgeSetTy</a> inEdges = node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#afc8b5f86d7795b6a0dfc0687d942d79b">getInEdges</a>();</div><div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160; <a class="code" href="classSVF_1_1VFGNode.html#a3c558955f60c237c558d8faafed781e8">SVFGNode::const_iterator</a> inEdgeIt = inEdges.begin();</div><div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160; <a class="code" href="classSVF_1_1VFGNode.html#a3c558955f60c237c558d8faafed781e8">SVFGNode::const_iterator</a> inEdgeEit = inEdges.end();</div><div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160; <span class="keywordflow">for</span> (; inEdgeIt != inEdgeEit; ++inEdgeIt)</div><div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160; {</div><div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160; <a class="code" href="classSVF_1_1VFGEdge.html">SVFGEdge</a>* preEdge = *inEdgeIt;</div><div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160;</div><div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160; <span class="keywordflow">if</span> (preEdge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#ae6792506a0150a9400d635eceab7f9e7">getSrcID</a>() == preEdge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#ad9edb45e74ae675d9da82f5acf02d56e">getDstID</a>())</div><div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160; {</div><div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SVFGOPT.html#a65bba62d9b62bf2bdbbda69540eeb38d">keepAllSelfCycle</a>)</div><div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160; {</div><div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160; hasSelfCycle = <span class="keyword">true</span>;</div><div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160; <span class="keywordflow">break</span>; </div><div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160; }</div><div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SVFGOPT.html#ac68a53c567929ba8b69c00e3e8d9d30f">keepContextSelfCycle</a> &amp;&amp;</div><div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160; SVFUtil::isa&lt;CallIndSVFGEdge, RetIndSVFGEdge&gt;(preEdge))</div><div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160; {</div><div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160; hasSelfCycle = <span class="keyword">true</span>;</div><div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160; <span class="keywordflow">continue</span>; </div><div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160; }</div><div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160; {</div><div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160; assert(SVFUtil::isa&lt;IndirectSVFGEdge&gt;(preEdge) &amp;&amp; <span class="stringliteral">&quot;can only remove indirect SVFG edge&quot;</span>);</div><div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160; <a class="code" href="classSVF_1_1SVFG.html#a931d8b82e10a54d68c68cf6bd80264be">removeSVFGEdge</a>(preEdge);</div><div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160; }</div><div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160; }</div><div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160; }</div><div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160;</div><div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160; <span class="keywordflow">return</span> hasSelfCycle;</div><div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160;}</div><div class="ttc" id="classSVF_1_1SVFG_html_a931d8b82e10a54d68c68cf6bd80264be"><div class="ttname"><a href="classSVF_1_1SVFG.html#a931d8b82e10a54d68c68cf6bd80264be">SVF::SVFG::removeSVFGEdge</a></div><div class="ttdeci">void removeSVFGEdge(SVFGEdge *edge)</div><div class="ttdoc">Remove a SVFG edge. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00231">SVFG.h:231</a></div></div>
1598
1598
  <div class="ttc" id="classSVF_1_1GenericNode_html_afc8b5f86d7795b6a0dfc0687d942d79b"><div class="ttname"><a href="classSVF_1_1GenericNode.html#afc8b5f86d7795b6a0dfc0687d942d79b">SVF::GenericNode::getInEdges</a></div><div class="ttdeci">const GEdgeSetTy &amp; getInEdges() const</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00188">GenericGraph.h:188</a></div></div>
1599
1599
  <div class="ttc" id="classSVF_1_1GenericEdge_html_ad9edb45e74ae675d9da82f5acf02d56e"><div class="ttname"><a href="classSVF_1_1GenericEdge.html#ad9edb45e74ae675d9da82f5acf02d56e">SVF::GenericEdge::getDstID</a></div><div class="ttdeci">NodeID getDstID() const</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00079">GenericGraph.h:79</a></div></div>
1600
1600
  <div class="ttc" id="classSVF_1_1SVFGOPT_html_a65bba62d9b62bf2bdbbda69540eeb38d"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#a65bba62d9b62bf2bdbbda69540eeb38d">SVF::SVFGOPT::keepAllSelfCycle</a></div><div class="ttdeci">bool keepAllSelfCycle</div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8h_source.html#l00356">SVFGOPT.h:356</a></div></div>
@@ -1606,8 +1606,8 @@ Additional Inherited Members</h2></td></tr>
1606
1606
  </div><!-- fragment -->
1607
1607
  </div>
1608
1608
  </div>
1609
- <a id="aa39900e11f5689f8bd70f3ec45865225"></a>
1610
- <h2 class="memtitle"><span class="permalink"><a href="#aa39900e11f5689f8bd70f3ec45865225">&#9670;&nbsp;</a></span>connectAInAndFIn()</h2>
1609
+ <a id="a624c36b40fd301d67a71952adf206e47"></a>
1610
+ <h2 class="memtitle"><span class="permalink"><a href="#a624c36b40fd301d67a71952adf206e47">&#9670;&nbsp;</a></span>connectAInAndFIn()</h2>
1611
1611
 
1612
1612
  <div class="memitem">
1613
1613
  <div class="memproto">
@@ -1616,7 +1616,7 @@ Additional Inherited Members</h2></td></tr>
1616
1616
  <td class="mlabels-left">
1617
1617
  <table class="memname">
1618
1618
  <tr>
1619
- <td class="memname">virtual void SVF::SVFGOPT::connectAInAndFIn </td>
1619
+ <td class="memname">void SVF::SVFGOPT::connectAInAndFIn </td>
1620
1620
  <td>(</td>
1621
1621
  <td class="paramtype">const <a class="el" href="classSVF_1_1ActualINSVFGNode.html">ActualINSVFGNode</a> *&#160;</td>
1622
1622
  <td class="paramname"><em>actualIn</em>, </td>
@@ -1647,7 +1647,7 @@ Additional Inherited Members</h2></td></tr>
1647
1647
  </table>
1648
1648
  </td>
1649
1649
  <td class="mlabels-right">
1650
- <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></span> </td>
1650
+ <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">override</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></span> </td>
1651
1651
  </tr>
1652
1652
  </table>
1653
1653
  </div><div class="memdoc">
@@ -1665,8 +1665,8 @@ Additional Inherited Members</h2></td></tr>
1665
1665
  </div><!-- fragment -->
1666
1666
  </div>
1667
1667
  </div>
1668
- <a id="a5e65ac95b96fb87a11a765c51f366ec1"></a>
1669
- <h2 class="memtitle"><span class="permalink"><a href="#a5e65ac95b96fb87a11a765c51f366ec1">&#9670;&nbsp;</a></span>connectAParamAndFParam()</h2>
1668
+ <a id="a82c28afbba24b90ef0394c9dcd0aae57"></a>
1669
+ <h2 class="memtitle"><span class="permalink"><a href="#a82c28afbba24b90ef0394c9dcd0aae57">&#9670;&nbsp;</a></span>connectAParamAndFParam()</h2>
1670
1670
 
1671
1671
  <div class="memitem">
1672
1672
  <div class="memproto">
@@ -1675,7 +1675,7 @@ Additional Inherited Members</h2></td></tr>
1675
1675
  <td class="mlabels-left">
1676
1676
  <table class="memname">
1677
1677
  <tr>
1678
- <td class="memname">virtual void SVF::SVFGOPT::connectAParamAndFParam </td>
1678
+ <td class="memname">void SVF::SVFGOPT::connectAParamAndFParam </td>
1679
1679
  <td>(</td>
1680
1680
  <td class="paramtype">const <a class="el" href="namespaceSVF.html#a733b44f64a95e6e13e7379120d7a3eea">PAGNode</a> *&#160;</td>
1681
1681
  <td class="paramname"><em>cs_arg</em>, </td>
@@ -1712,7 +1712,7 @@ Additional Inherited Members</h2></td></tr>
1712
1712
  </table>
1713
1713
  </td>
1714
1714
  <td class="mlabels-right">
1715
- <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></span> </td>
1715
+ <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">override</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></span> </td>
1716
1716
  </tr>
1717
1717
  </table>
1718
1718
  </div><div class="memdoc">
@@ -1723,17 +1723,17 @@ Additional Inherited Members</h2></td></tr>
1723
1723
 
1724
1724
  <p class="definition">Definition at line <a class="el" href="SVFGOPT_8h_source.html#l00089">89</a> of file <a class="el" href="SVFGOPT_8h_source.html">SVFGOPT.h</a>.</p>
1725
1725
  <div class="fragment"><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; {</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> phiId = <a class="code" href="classSVF_1_1SVFG.html#abd917826bf50ed409a307ce00562c97d">getDef</a>(fun_arg);</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <a class="code" href="namespaceSVF.html#aa4745cf70b26e17d59752356f0b19dd9">SVFGEdge</a>* edge = <a class="code" href="classSVF_1_1VFG.html#aa01f63b17acdd52122a7f1ade329ccea">addCallEdge</a>(<a class="code" href="classSVF_1_1SVFG.html#abd917826bf50ed409a307ce00562c97d">getDef</a>(cs_arg), phiId, csId);</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="keywordflow">if</span> (edge != <span class="keyword">nullptr</span>)</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; {</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <a class="code" href="namespaceSVF.html#a71d4e214e049f02bf26537cba6328673">PHISVFGNode</a>* phi = SVFUtil::cast&lt;PHISVFGNode&gt;(<a class="code" href="classSVF_1_1SVFG.html#a7ace06b6c893b31f7dec2abe54e33e11">getSVFGNode</a>(phiId));</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <a class="code" href="classSVF_1_1SVFGOPT.html#a30a4165300d0b7ac9b31d9f9c496d943">addInterPHIOperands</a>(phi, cs_arg);</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; edges.insert(edge);</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; }</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; }</div><div class="ttc" id="namespaceSVF_html_a350ae9bf8606bdfe23c8679681b969dc"><div class="ttname"><a href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">SVF::NodeID</a></div><div class="ttdeci">unsigned NodeID</div><div class="ttdef"><b>Definition:</b> <a href="include_2MTA_2MTAResultValidator_8h_source.html#l00020">MTAResultValidator.h:20</a></div></div>
1726
- <div class="ttc" id="classSVF_1_1SVFG_html_a7ace06b6c893b31f7dec2abe54e33e11"><div class="ttname"><a href="classSVF_1_1SVFG.html#a7ace06b6c893b31f7dec2abe54e33e11">SVF::SVFG::getSVFGNode</a></div><div class="ttdeci">SVFGNode * getSVFGNode(NodeID id) const</div><div class="ttdoc">Get a SVFG node. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00150">SVFG.h:150</a></div></div>
1726
+ <div class="ttc" id="classSVF_1_1SVFG_html_a7ace06b6c893b31f7dec2abe54e33e11"><div class="ttname"><a href="classSVF_1_1SVFG.html#a7ace06b6c893b31f7dec2abe54e33e11">SVF::SVFG::getSVFGNode</a></div><div class="ttdeci">SVFGNode * getSVFGNode(NodeID id) const</div><div class="ttdoc">Get a SVFG node. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00149">SVFG.h:149</a></div></div>
1727
1727
  <div class="ttc" id="namespaceSVF_html_a71d4e214e049f02bf26537cba6328673"><div class="ttname"><a href="namespaceSVF.html#a71d4e214e049f02bf26537cba6328673">SVF::PHISVFGNode</a></div><div class="ttdeci">PHIVFGNode PHISVFGNode</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00056">SVFG.h:56</a></div></div>
1728
- <div class="ttc" id="classSVF_1_1SVFG_html_abd917826bf50ed409a307ce00562c97d"><div class="ttname"><a href="classSVF_1_1SVFG.html#abd917826bf50ed409a307ce00562c97d">SVF::SVFG::getDef</a></div><div class="ttdeci">NodeID getDef(const PAGNode *pagNode) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00350">SVFG.h:350</a></div></div>
1728
+ <div class="ttc" id="classSVF_1_1SVFG_html_abd917826bf50ed409a307ce00562c97d"><div class="ttname"><a href="classSVF_1_1SVFG.html#abd917826bf50ed409a307ce00562c97d">SVF::SVFG::getDef</a></div><div class="ttdeci">NodeID getDef(const PAGNode *pagNode) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00349">SVFG.h:349</a></div></div>
1729
1729
  <div class="ttc" id="classSVF_1_1SVFGOPT_html_a30a4165300d0b7ac9b31d9f9c496d943"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#a30a4165300d0b7ac9b31d9f9c496d943">SVF::SVFGOPT::addInterPHIOperands</a></div><div class="ttdeci">void addInterPHIOperands(PHISVFGNode *phi, const PAGNode *operand)</div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8h_source.html#l00238">SVFGOPT.h:238</a></div></div>
1730
1730
  <div class="ttc" id="classSVF_1_1VFG_html_aa01f63b17acdd52122a7f1ade329ccea"><div class="ttname"><a href="classSVF_1_1VFG.html#aa01f63b17acdd52122a7f1ade329ccea">SVF::VFG::addCallEdge</a></div><div class="ttdeci">VFGEdge * addCallEdge(NodeID srcId, NodeID dstId, CallSiteID csId)</div><div class="ttdef"><b>Definition:</b> <a href="VFG_8cpp_source.html#l00701">VFG.cpp:701</a></div></div>
1731
1731
  <div class="ttc" id="namespaceSVF_html_aa4745cf70b26e17d59752356f0b19dd9"><div class="ttname"><a href="namespaceSVF.html#aa4745cf70b26e17d59752356f0b19dd9">SVF::SVFGEdge</a></div><div class="ttdeci">VFGEdge SVFGEdge</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00040">SVFG.h:40</a></div></div>
1732
1732
  </div><!-- fragment -->
1733
1733
  </div>
1734
1734
  </div>
1735
- <a id="a79ace9bac7f2e075c27209ea56fc6032"></a>
1736
- <h2 class="memtitle"><span class="permalink"><a href="#a79ace9bac7f2e075c27209ea56fc6032">&#9670;&nbsp;</a></span>connectFOutAndAOut()</h2>
1735
+ <a id="ad88f85a4d5c397b3b6896608ba035bd3"></a>
1736
+ <h2 class="memtitle"><span class="permalink"><a href="#ad88f85a4d5c397b3b6896608ba035bd3">&#9670;&nbsp;</a></span>connectFOutAndAOut()</h2>
1737
1737
 
1738
1738
  <div class="memitem">
1739
1739
  <div class="memproto">
@@ -1742,7 +1742,7 @@ Additional Inherited Members</h2></td></tr>
1742
1742
  <td class="mlabels-left">
1743
1743
  <table class="memname">
1744
1744
  <tr>
1745
- <td class="memname">virtual void SVF::SVFGOPT::connectFOutAndAOut </td>
1745
+ <td class="memname">void SVF::SVFGOPT::connectFOutAndAOut </td>
1746
1746
  <td>(</td>
1747
1747
  <td class="paramtype">const <a class="el" href="classSVF_1_1FormalOUTSVFGNode.html">FormalOUTSVFGNode</a> *&#160;</td>
1748
1748
  <td class="paramname"><em>formalOut</em>, </td>
@@ -1773,7 +1773,7 @@ Additional Inherited Members</h2></td></tr>
1773
1773
  </table>
1774
1774
  </td>
1775
1775
  <td class="mlabels-right">
1776
- <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></span> </td>
1776
+ <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">override</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></span> </td>
1777
1777
  </tr>
1778
1778
  </table>
1779
1779
  </div><div class="memdoc">
@@ -1791,8 +1791,8 @@ Additional Inherited Members</h2></td></tr>
1791
1791
  </div><!-- fragment -->
1792
1792
  </div>
1793
1793
  </div>
1794
- <a id="aad3217fa932738ab8ba09e1e9f48ac56"></a>
1795
- <h2 class="memtitle"><span class="permalink"><a href="#aad3217fa932738ab8ba09e1e9f48ac56">&#9670;&nbsp;</a></span>connectFRetAndARet()</h2>
1794
+ <a id="ae5648d1248af4e4ce755ee5d32f84a06"></a>
1795
+ <h2 class="memtitle"><span class="permalink"><a href="#ae5648d1248af4e4ce755ee5d32f84a06">&#9670;&nbsp;</a></span>connectFRetAndARet()</h2>
1796
1796
 
1797
1797
  <div class="memitem">
1798
1798
  <div class="memproto">
@@ -1801,7 +1801,7 @@ Additional Inherited Members</h2></td></tr>
1801
1801
  <td class="mlabels-left">
1802
1802
  <table class="memname">
1803
1803
  <tr>
1804
- <td class="memname">virtual void SVF::SVFGOPT::connectFRetAndARet </td>
1804
+ <td class="memname">void SVF::SVFGOPT::connectFRetAndARet </td>
1805
1805
  <td>(</td>
1806
1806
  <td class="paramtype">const <a class="el" href="namespaceSVF.html#a733b44f64a95e6e13e7379120d7a3eea">PAGNode</a> *&#160;</td>
1807
1807
  <td class="paramname"><em>fun_ret</em>, </td>
@@ -1832,7 +1832,7 @@ Additional Inherited Members</h2></td></tr>
1832
1832
  </table>
1833
1833
  </td>
1834
1834
  <td class="mlabels-right">
1835
- <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></span> </td>
1835
+ <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">override</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></span> </td>
1836
1836
  </tr>
1837
1837
  </table>
1838
1838
  </div><div class="memdoc">
@@ -1845,11 +1845,11 @@ Additional Inherited Members</h2></td></tr>
1845
1845
  <p class="definition">Definition at line <a class="el" href="SVFGOPT_8h_source.html#l00101">101</a> of file <a class="el" href="SVFGOPT_8h_source.html">SVFGOPT.h</a>.</p>
1846
1846
  <div class="fragment"><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; {</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> phiId = <a class="code" href="classSVF_1_1SVFG.html#abd917826bf50ed409a307ce00562c97d">getDef</a>(cs_ret);</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> retdef = <a class="code" href="classSVF_1_1SVFG.html#abd917826bf50ed409a307ce00562c97d">getDef</a>(fun_ret);</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1VFG.html#a25c2bbbc2e966e2aaa59a5b83363557a">pag</a>-&gt;<a class="code" href="classSVF_1_1SVFIR.html#a5de67390d38bfacd5b63b776a0ecbfff">isPhiNode</a>(fun_ret)==<span class="keyword">false</span>)</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="keywordflow">return</span>;</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <a class="code" href="namespaceSVF.html#aa4745cf70b26e17d59752356f0b19dd9">SVFGEdge</a>* edge = <a class="code" href="classSVF_1_1VFG.html#a27ac8d60de7be75e831b4a28f8f8f1d2">addRetEdge</a>(retdef, phiId, csId);</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="keywordflow">if</span> (edge != <span class="keyword">nullptr</span>)</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; {</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <a class="code" href="namespaceSVF.html#a71d4e214e049f02bf26537cba6328673">PHISVFGNode</a>* phi = SVFUtil::cast&lt;PHISVFGNode&gt;(<a class="code" href="classSVF_1_1SVFG.html#a7ace06b6c893b31f7dec2abe54e33e11">getSVFGNode</a>(phiId));</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <a class="code" href="classSVF_1_1SVFGOPT.html#a30a4165300d0b7ac9b31d9f9c496d943">addInterPHIOperands</a>(phi, fun_ret);</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; edges.insert(edge);</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; }</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; }</div><div class="ttc" id="namespaceSVF_html_a350ae9bf8606bdfe23c8679681b969dc"><div class="ttname"><a href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">SVF::NodeID</a></div><div class="ttdeci">unsigned NodeID</div><div class="ttdef"><b>Definition:</b> <a href="include_2MTA_2MTAResultValidator_8h_source.html#l00020">MTAResultValidator.h:20</a></div></div>
1847
1847
  <div class="ttc" id="classSVF_1_1VFG_html_a27ac8d60de7be75e831b4a28f8f8f1d2"><div class="ttname"><a href="classSVF_1_1VFG.html#a27ac8d60de7be75e831b4a28f8f8f1d2">SVF::VFG::addRetEdge</a></div><div class="ttdeci">VFGEdge * addRetEdge(NodeID srcId, NodeID dstId, CallSiteID csId)</div><div class="ttdef"><b>Definition:</b> <a href="VFG_8cpp_source.html#l00721">VFG.cpp:721</a></div></div>
1848
- <div class="ttc" id="classSVF_1_1SVFG_html_a7ace06b6c893b31f7dec2abe54e33e11"><div class="ttname"><a href="classSVF_1_1SVFG.html#a7ace06b6c893b31f7dec2abe54e33e11">SVF::SVFG::getSVFGNode</a></div><div class="ttdeci">SVFGNode * getSVFGNode(NodeID id) const</div><div class="ttdoc">Get a SVFG node. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00150">SVFG.h:150</a></div></div>
1848
+ <div class="ttc" id="classSVF_1_1SVFG_html_a7ace06b6c893b31f7dec2abe54e33e11"><div class="ttname"><a href="classSVF_1_1SVFG.html#a7ace06b6c893b31f7dec2abe54e33e11">SVF::SVFG::getSVFGNode</a></div><div class="ttdeci">SVFGNode * getSVFGNode(NodeID id) const</div><div class="ttdoc">Get a SVFG node. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00149">SVFG.h:149</a></div></div>
1849
1849
  <div class="ttc" id="namespaceSVF_html_a71d4e214e049f02bf26537cba6328673"><div class="ttname"><a href="namespaceSVF.html#a71d4e214e049f02bf26537cba6328673">SVF::PHISVFGNode</a></div><div class="ttdeci">PHIVFGNode PHISVFGNode</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00056">SVFG.h:56</a></div></div>
1850
- <div class="ttc" id="classSVF_1_1SVFIR_html_a5de67390d38bfacd5b63b776a0ecbfff"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a5de67390d38bfacd5b63b776a0ecbfff">SVF::SVFIR::isPhiNode</a></div><div class="ttdeci">bool isPhiNode(const SVFVar *node) const</div><div class="ttdoc">Whether this SVFVar is a result operand a of phi node. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00230">SVFIR.h:230</a></div></div>
1850
+ <div class="ttc" id="classSVF_1_1SVFIR_html_a5de67390d38bfacd5b63b776a0ecbfff"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a5de67390d38bfacd5b63b776a0ecbfff">SVF::SVFIR::isPhiNode</a></div><div class="ttdeci">bool isPhiNode(const SVFVar *node) const</div><div class="ttdoc">Whether this SVFVar is a result operand a of phi node. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00228">SVFIR.h:228</a></div></div>
1851
1851
  <div class="ttc" id="classSVF_1_1VFG_html_a25c2bbbc2e966e2aaa59a5b83363557a"><div class="ttname"><a href="classSVF_1_1VFG.html#a25c2bbbc2e966e2aaa59a5b83363557a">SVF::VFG::pag</a></div><div class="ttdeci">SVFIR * pag</div><div class="ttdef"><b>Definition:</b> <a href="VFG_8h_source.html#l00104">VFG.h:104</a></div></div>
1852
- <div class="ttc" id="classSVF_1_1SVFG_html_abd917826bf50ed409a307ce00562c97d"><div class="ttname"><a href="classSVF_1_1SVFG.html#abd917826bf50ed409a307ce00562c97d">SVF::SVFG::getDef</a></div><div class="ttdeci">NodeID getDef(const PAGNode *pagNode) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00350">SVFG.h:350</a></div></div>
1852
+ <div class="ttc" id="classSVF_1_1SVFG_html_abd917826bf50ed409a307ce00562c97d"><div class="ttname"><a href="classSVF_1_1SVFG.html#abd917826bf50ed409a307ce00562c97d">SVF::SVFG::getDef</a></div><div class="ttdeci">NodeID getDef(const PAGNode *pagNode) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00349">SVFG.h:349</a></div></div>
1853
1853
  <div class="ttc" id="classSVF_1_1SVFGOPT_html_a30a4165300d0b7ac9b31d9f9c496d943"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#a30a4165300d0b7ac9b31d9f9c496d943">SVF::SVFGOPT::addInterPHIOperands</a></div><div class="ttdeci">void addInterPHIOperands(PHISVFGNode *phi, const PAGNode *operand)</div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8h_source.html#l00238">SVFGOPT.h:238</a></div></div>
1854
1854
  <div class="ttc" id="namespaceSVF_html_aa4745cf70b26e17d59752356f0b19dd9"><div class="ttname"><a href="namespaceSVF.html#aa4745cf70b26e17d59752356f0b19dd9">SVF::SVFGEdge</a></div><div class="ttdeci">VFGEdge SVFGEdge</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00040">SVFG.h:40</a></div></div>
1855
1855
  </div><!-- fragment -->
@@ -2026,7 +2026,7 @@ Additional Inherited Members</h2></td></tr>
2026
2026
  <div class="ttc" id="classSVF_1_1FormalRetVFGNode_html"><div class="ttname"><a href="classSVF_1_1FormalRetVFGNode.html">SVF::FormalRetVFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l01025">VFGNode.h:1025</a></div></div>
2027
2027
  <div class="ttc" id="classSVF_1_1FormalINSVFGNode_html"><div class="ttname"><a href="classSVF_1_1FormalINSVFGNode.html">SVF::FormalINSVFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFGNode_8h_source.html#l00093">SVFGNode.h:93</a></div></div>
2028
2028
  <div class="ttc" id="classSVF_1_1VFGNode_html"><div class="ttname"><a href="classSVF_1_1VFGNode.html">SVF::VFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00046">VFGNode.h:46</a></div></div>
2029
- <div class="ttc" id="classSVF_1_1SVFG_html_a700c5fc6c1cb4136e55196fe3d393b8b"><div class="ttname"><a href="classSVF_1_1SVFG.html#a700c5fc6c1cb4136e55196fe3d393b8b">SVF::SVFG::removeSVFGNode</a></div><div class="ttdeci">void removeSVFGNode(SVFGNode *node)</div><div class="ttdoc">Remove a SVFGNode. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00237">SVFG.h:237</a></div></div>
2029
+ <div class="ttc" id="classSVF_1_1SVFG_html_a700c5fc6c1cb4136e55196fe3d393b8b"><div class="ttname"><a href="classSVF_1_1SVFG.html#a700c5fc6c1cb4136e55196fe3d393b8b">SVF::SVFG::removeSVFGNode</a></div><div class="ttdeci">void removeSVFGNode(SVFGNode *node)</div><div class="ttdoc">Remove a SVFGNode. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00236">SVFG.h:236</a></div></div>
2030
2030
  </div><!-- fragment -->
2031
2031
  </div>
2032
2032
  </div>
@@ -2080,7 +2080,7 @@ Additional Inherited Members</h2></td></tr>
2080
2080
  <div class="ttc" id="classSVF_1_1GenericNode_html_a19a3366fd8a58290d0c740c46c3dcb3d"><div class="ttname"><a href="classSVF_1_1GenericNode.html#a19a3366fd8a58290d0c740c46c3dcb3d">SVF::GenericNode::OutEdgeEnd</a></div><div class="ttdeci">iterator OutEdgeEnd()</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00212">GenericGraph.h:212</a></div></div>
2081
2081
  <div class="ttc" id="classSVF_1_1FIFOWorkList_html_a8fa72918fce7e9c0b2dc34b683a797c6"><div class="ttname"><a href="classSVF_1_1FIFOWorkList.html#a8fa72918fce7e9c0b2dc34b683a797c6">SVF::FIFOWorkList::pop</a></div><div class="ttdeci">Data pop()</div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#l00200">WorkList.h:200</a></div></div>
2082
2082
  <div class="ttc" id="classSVF_1_1SVFGOPT_html_ac3b14bf191cadb832e3a34affd7e569d"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#ac3b14bf191cadb832e3a34affd7e569d">SVF::SVFGOPT::parseSelfCycleHandleOption</a></div><div class="ttdeci">void parseSelfCycleHandleOption()</div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8cpp_source.html#l00372">SVFGOPT.cpp:372</a></div></div>
2083
- <div class="ttc" id="classSVF_1_1SVFG_html_a700c5fc6c1cb4136e55196fe3d393b8b"><div class="ttname"><a href="classSVF_1_1SVFG.html#a700c5fc6c1cb4136e55196fe3d393b8b">SVF::SVFG::removeSVFGNode</a></div><div class="ttdeci">void removeSVFGNode(SVFGNode *node)</div><div class="ttdoc">Remove a SVFGNode. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00237">SVFG.h:237</a></div></div>
2083
+ <div class="ttc" id="classSVF_1_1SVFG_html_a700c5fc6c1cb4136e55196fe3d393b8b"><div class="ttname"><a href="classSVF_1_1SVFG.html#a700c5fc6c1cb4136e55196fe3d393b8b">SVF::SVFG::removeSVFGNode</a></div><div class="ttdeci">void removeSVFGNode(SVFGNode *node)</div><div class="ttdoc">Remove a SVFGNode. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00236">SVFG.h:236</a></div></div>
2084
2084
  </div><!-- fragment -->
2085
2085
  </div>
2086
2086
  </div>
@@ -2177,7 +2177,7 @@ Additional Inherited Members</h2></td></tr>
2177
2177
  </div><div class="memdoc">
2178
2178
 
2179
2179
  <p class="definition">Definition at line <a class="el" href="SVFGOPT_8h_source.html#l00285">285</a> of file <a class="el" href="SVFGOPT_8h_source.html">SVFGOPT.h</a>.</p>
2180
- <div class="fragment"><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; {</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFGOPT.html#abd524dca72261bbcc7ebb1103b693a2b">defNodes</a>.<a class="code" href="classSVF_1_1SparseBitVector.html#a112f2ede1240c95f9fe810f2882fab80">test</a>(node-&gt;getId());</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; }</div><div class="ttc" id="classSVF_1_1SparseBitVector_html_a112f2ede1240c95f9fe810f2882fab80"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#a112f2ede1240c95f9fe810f2882fab80">SVF::SparseBitVector::test</a></div><div class="ttdeci">bool test(unsigned Idx) const</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00708">SparseBitVector.h:708</a></div></div>
2180
+ <div class="fragment"><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; {</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFGOPT.html#abd524dca72261bbcc7ebb1103b693a2b">defNodes</a>.<a class="code" href="classSVF_1_1SparseBitVector.html#a112f2ede1240c95f9fe810f2882fab80">test</a>(node-&gt;getId());</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; }</div><div class="ttc" id="classSVF_1_1SparseBitVector_html_a112f2ede1240c95f9fe810f2882fab80"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#a112f2ede1240c95f9fe810f2882fab80">SVF::SparseBitVector::test</a></div><div class="ttdeci">bool test(unsigned Idx) const</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00700">SparseBitVector.h:700</a></div></div>
2181
2181
  <div class="ttc" id="classSVF_1_1SVFGOPT_html_abd524dca72261bbcc7ebb1103b693a2b"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#abd524dca72261bbcc7ebb1103b693a2b">SVF::SVFGOPT::defNodes</a></div><div class="ttdeci">NodeBS defNodes</div><div class="ttdoc">preserved def nodes of formal-in/actual-out </div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8h_source.html#l00351">SVFGOPT.h:351</a></div></div>
2182
2182
  </div><!-- fragment -->
2183
2183
  </div>
@@ -2275,7 +2275,7 @@ Additional Inherited Members</h2></td></tr>
2275
2275
  <p>remove incoming edges </p>
2276
2276
 
2277
2277
  <p class="definition">Definition at line <a class="el" href="SVFGOPT_8h_source.html#l00335">335</a> of file <a class="el" href="SVFGOPT_8h_source.html">SVFGOPT.h</a>.</p>
2278
- <div class="fragment"><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; {</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; <span class="keywordflow">while</span> (node-&gt;hasIncomingEdge())</div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; <a class="code" href="classSVF_1_1SVFG.html#a931d8b82e10a54d68c68cf6bd80264be">removeSVFGEdge</a>(*(node-&gt;InEdgeBegin()));</div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; }</div><div class="ttc" id="classSVF_1_1SVFG_html_a931d8b82e10a54d68c68cf6bd80264be"><div class="ttname"><a href="classSVF_1_1SVFG.html#a931d8b82e10a54d68c68cf6bd80264be">SVF::SVFG::removeSVFGEdge</a></div><div class="ttdeci">void removeSVFGEdge(SVFGEdge *edge)</div><div class="ttdoc">Remove a SVFG edge. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00232">SVFG.h:232</a></div></div>
2278
+ <div class="fragment"><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; {</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; <span class="keywordflow">while</span> (node-&gt;hasIncomingEdge())</div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; <a class="code" href="classSVF_1_1SVFG.html#a931d8b82e10a54d68c68cf6bd80264be">removeSVFGEdge</a>(*(node-&gt;InEdgeBegin()));</div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; }</div><div class="ttc" id="classSVF_1_1SVFG_html_a931d8b82e10a54d68c68cf6bd80264be"><div class="ttname"><a href="classSVF_1_1SVFG.html#a931d8b82e10a54d68c68cf6bd80264be">SVF::SVFG::removeSVFGEdge</a></div><div class="ttdeci">void removeSVFGEdge(SVFGEdge *edge)</div><div class="ttdoc">Remove a SVFG edge. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00231">SVFG.h:231</a></div></div>
2279
2279
  </div><!-- fragment -->
2280
2280
  </div>
2281
2281
  </div>
@@ -2304,7 +2304,7 @@ Additional Inherited Members</h2></td></tr>
2304
2304
  </div><div class="memdoc">
2305
2305
 
2306
2306
  <p class="definition">Definition at line <a class="el" href="SVFGOPT_8h_source.html#l00341">341</a> of file <a class="el" href="SVFGOPT_8h_source.html">SVFGOPT.h</a>.</p>
2307
- <div class="fragment"><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160; {</div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160; <span class="keywordflow">while</span> (node-&gt;hasOutgoingEdge())</div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; <a class="code" href="classSVF_1_1SVFG.html#a931d8b82e10a54d68c68cf6bd80264be">removeSVFGEdge</a>(*(node-&gt;OutEdgeBegin()));</div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; }</div><div class="ttc" id="classSVF_1_1SVFG_html_a931d8b82e10a54d68c68cf6bd80264be"><div class="ttname"><a href="classSVF_1_1SVFG.html#a931d8b82e10a54d68c68cf6bd80264be">SVF::SVFG::removeSVFGEdge</a></div><div class="ttdeci">void removeSVFGEdge(SVFGEdge *edge)</div><div class="ttdoc">Remove a SVFG edge. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00232">SVFG.h:232</a></div></div>
2307
+ <div class="fragment"><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160; {</div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160; <span class="keywordflow">while</span> (node-&gt;hasOutgoingEdge())</div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; <a class="code" href="classSVF_1_1SVFG.html#a931d8b82e10a54d68c68cf6bd80264be">removeSVFGEdge</a>(*(node-&gt;OutEdgeBegin()));</div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; }</div><div class="ttc" id="classSVF_1_1SVFG_html_a931d8b82e10a54d68c68cf6bd80264be"><div class="ttname"><a href="classSVF_1_1SVFG.html#a931d8b82e10a54d68c68cf6bd80264be">SVF::SVFG::removeSVFGEdge</a></div><div class="ttdeci">void removeSVFGEdge(SVFGEdge *edge)</div><div class="ttdoc">Remove a SVFG edge. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00231">SVFG.h:231</a></div></div>
2308
2308
  </div><!-- fragment -->
2309
2309
  </div>
2310
2310
  </div>
@@ -2365,7 +2365,7 @@ Additional Inherited Members</h2></td></tr>
2365
2365
  <div class="ttc" id="classSVF_1_1FormalRetVFGNode_html_a62a894e71fcf7a3db19c0488d96a7262"><div class="ttname"><a href="classSVF_1_1FormalRetVFGNode.html#a62a894e71fcf7a3db19c0488d96a7262">SVF::FormalRetVFGNode::getRet</a></div><div class="ttdeci">const PAGNode * getRet() const</div><div class="ttdoc">Return value at callee. </div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l01040">VFGNode.h:1040</a></div></div>
2366
2366
  <div class="ttc" id="classSVF_1_1SVFGOPT_html_ac15b3c2cb127b17ebad3a30fc04b6f40"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#ac15b3c2cb127b17ebad3a30fc04b6f40">SVF::SVFGOPT::removeAllEdges</a></div><div class="ttdeci">void removeAllEdges(const SVFGNode *node)</div><div class="ttdoc">Remove edges of a SVFG node. </div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8h_source.html#l00330">SVFGOPT.h:330</a></div></div>
2367
2367
  <div class="ttc" id="classSVF_1_1ActualRetVFGNode_html"><div class="ttname"><a href="classSVF_1_1ActualRetVFGNode.html">SVF::ActualRetVFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00967">VFGNode.h:967</a></div></div>
2368
- <div class="ttc" id="classSVF_1_1SVFG_html_abd917826bf50ed409a307ce00562c97d"><div class="ttname"><a href="classSVF_1_1SVFG.html#abd917826bf50ed409a307ce00562c97d">SVF::SVFG::getDef</a></div><div class="ttdeci">NodeID getDef(const PAGNode *pagNode) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00350">SVFG.h:350</a></div></div>
2368
+ <div class="ttc" id="classSVF_1_1SVFG_html_abd917826bf50ed409a307ce00562c97d"><div class="ttname"><a href="classSVF_1_1SVFG.html#abd917826bf50ed409a307ce00562c97d">SVF::SVFG::getDef</a></div><div class="ttdeci">NodeID getDef(const PAGNode *pagNode) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00349">SVFG.h:349</a></div></div>
2369
2369
  <div class="ttc" id="classSVF_1_1VFGNode_html_a3c558955f60c237c558d8faafed781e8"><div class="ttname"><a href="classSVF_1_1VFGNode.html#a3c558955f60c237c558d8faafed781e8">SVF::VFGNode::const_iterator</a></div><div class="ttdeci">VFGEdge::VFGEdgeSetTy::const_iterator const_iterator</div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00060">VFGNode.h:60</a></div></div>
2370
2370
  <div class="ttc" id="classSVF_1_1ActualParmVFGNode_html_ab153944a366488c5f7e91d61561e9c0e"><div class="ttname"><a href="classSVF_1_1ActualParmVFGNode.html#ab153944a366488c5f7e91d61561e9c0e">SVF::ActualParmVFGNode::getCallSite</a></div><div class="ttdeci">const CallICFGNode * getCallSite() const</div><div class="ttdoc">Return callsite. </div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00858">VFGNode.h:858</a></div></div>
2371
2371
  <div class="ttc" id="classSVF_1_1SVFGOPT_html_a30a4165300d0b7ac9b31d9f9c496d943"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#a30a4165300d0b7ac9b31d9f9c496d943">SVF::SVFGOPT::addInterPHIOperands</a></div><div class="ttdeci">void addInterPHIOperands(PHISVFGNode *phi, const PAGNode *operand)</div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8h_source.html#l00238">SVFGOPT.h:238</a></div></div>
@@ -2460,12 +2460,12 @@ Additional Inherited Members</h2></td></tr>
2460
2460
  <div class="ttc" id="classSVF_1_1SVFGOPT_html_a490695ab536cd455c531fbdc57499cac"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#a490695ab536cd455c531fbdc57499cac">SVF::SVFGOPT::setActualINDef</a></div><div class="ttdeci">void setActualINDef(NodeID ai, NodeID def)</div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8h_source.html#l00269">SVFGOPT.h:269</a></div></div>
2461
2461
  <div class="ttc" id="classSVF_1_1VFGNode_html_a3c558955f60c237c558d8faafed781e8"><div class="ttname"><a href="classSVF_1_1VFGNode.html#a3c558955f60c237c558d8faafed781e8">SVF::VFGNode::const_iterator</a></div><div class="ttdeci">VFGEdge::VFGEdgeSetTy::const_iterator const_iterator</div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00060">VFGNode.h:60</a></div></div>
2462
2462
  <div class="ttc" id="classSVF_1_1SVFGOPT_html_a3e2b811dd939c93bcf9fb94e91d553b1"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#a3e2b811dd939c93bcf9fb94e91d553b1">SVF::SVFGOPT::setFormalOUTDef</a></div><div class="ttdeci">void setFormalOUTDef(NodeID fo, NodeID def)</div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8h_source.html#l00276">SVFGOPT.h:276</a></div></div>
2463
- <div class="ttc" id="classSVF_1_1SparseBitVector_html"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html">SVF::SparseBitVector</a></div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00462">SparseBitVector.h:462</a></div></div>
2463
+ <div class="ttc" id="classSVF_1_1SparseBitVector_html"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html">SVF::SparseBitVector</a></div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00454">SparseBitVector.h:454</a></div></div>
2464
2464
  <div class="ttc" id="classSVF_1_1GenericNode_html_ac3e55ef37aefb411ea4c87b1aa3b1895"><div class="ttname"><a href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">SVF::GenericNode::getId</a></div><div class="ttdeci">NodeID getId() const</div><div class="ttdoc">Get ID. </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00171">GenericGraph.h:171</a></div></div>
2465
2465
  <div class="ttc" id="classSVF_1_1SVFGOPT_html_afa99da68ef756d968d39a85f0fac3649"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#afa99da68ef756d968d39a85f0fac3649">SVF::SVFGOPT::addRetIndirectSVFGEdge</a></div><div class="ttdeci">SVFGEdge * addRetIndirectSVFGEdge(NodeID srcId, NodeID dstId, CallSiteID csid, const NodeBS &amp;cpts)</div><div class="ttdoc">Add indirect ret edge from src to dst with one call site ID. </div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8cpp_source.html#l00079">SVFGOPT.cpp:79</a></div></div>
2466
2466
  <div class="ttc" id="classSVF_1_1IndirectSVFGEdge_html"><div class="ttname"><a href="classSVF_1_1IndirectSVFGEdge.html">SVF::IndirectSVFGEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFGEdge_8h_source.html#l00042">SVFGEdge.h:42</a></div></div>
2467
2467
  <div class="ttc" id="classSVF_1_1GenericNode_html_a19a3366fd8a58290d0c740c46c3dcb3d"><div class="ttname"><a href="classSVF_1_1GenericNode.html#a19a3366fd8a58290d0c740c46c3dcb3d">SVF::GenericNode::OutEdgeEnd</a></div><div class="ttdeci">iterator OutEdgeEnd()</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00212">GenericGraph.h:212</a></div></div>
2468
- <div class="ttc" id="classSVF_1_1SparseBitVector_html_aea5389ad7e5fe4c8bef686940a1a6056"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#aea5389ad7e5fe4c8bef686940a1a6056">SVF::SparseBitVector::empty</a></div><div class="ttdeci">bool empty() const</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l01099">SparseBitVector.h:1099</a></div></div>
2468
+ <div class="ttc" id="classSVF_1_1SparseBitVector_html_aea5389ad7e5fe4c8bef686940a1a6056"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#aea5389ad7e5fe4c8bef686940a1a6056">SVF::SparseBitVector::empty</a></div><div class="ttdeci">bool empty() const</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l01091">SparseBitVector.h:1091</a></div></div>
2469
2469
  <div class="ttc" id="classSVF_1_1IndirectSVFGEdge_html_a30aca718d25924f1babdf348bb0ace71"><div class="ttname"><a href="classSVF_1_1IndirectSVFGEdge.html#a30aca718d25924f1babdf348bb0ace71">SVF::IndirectSVFGEdge::getPointsTo</a></div><div class="ttdeci">const NodeBS &amp; getPointsTo() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFGEdge_8h_source.html#l00060">SVFGEdge.h:60</a></div></div>
2470
2470
  <div class="ttc" id="classSVF_1_1VFGNode_html"><div class="ttname"><a href="classSVF_1_1VFGNode.html">SVF::VFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00046">VFGNode.h:46</a></div></div>
2471
2471
  </div><!-- fragment -->
@@ -2509,12 +2509,12 @@ Additional Inherited Members</h2></td></tr>
2509
2509
  <div class="ttc" id="classSVF_1_1GenericNode_html_afe6a7b286d9af4992f41b59612fd2900"><div class="ttname"><a href="classSVF_1_1GenericNode.html#afe6a7b286d9af4992f41b59612fd2900">SVF::GenericNode::InEdgeEnd</a></div><div class="ttdeci">iterator InEdgeEnd()</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00220">GenericGraph.h:220</a></div></div>
2510
2510
  <div class="ttc" id="classSVF_1_1SVFGOPT_html_ac15b3c2cb127b17ebad3a30fc04b6f40"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#ac15b3c2cb127b17ebad3a30fc04b6f40">SVF::SVFGOPT::removeAllEdges</a></div><div class="ttdeci">void removeAllEdges(const SVFGNode *node)</div><div class="ttdoc">Remove edges of a SVFG node. </div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8h_source.html#l00330">SVFGOPT.h:330</a></div></div>
2511
2511
  <div class="ttc" id="classSVF_1_1VFGNode_html_a3c558955f60c237c558d8faafed781e8"><div class="ttname"><a href="classSVF_1_1VFGNode.html#a3c558955f60c237c558d8faafed781e8">SVF::VFGNode::const_iterator</a></div><div class="ttdeci">VFGEdge::VFGEdgeSetTy::const_iterator const_iterator</div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00060">VFGNode.h:60</a></div></div>
2512
- <div class="ttc" id="classSVF_1_1SparseBitVector_html"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html">SVF::SparseBitVector</a></div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00462">SparseBitVector.h:462</a></div></div>
2512
+ <div class="ttc" id="classSVF_1_1SparseBitVector_html"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html">SVF::SparseBitVector</a></div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00454">SparseBitVector.h:454</a></div></div>
2513
2513
  <div class="ttc" id="classSVF_1_1SVFGOPT_html_afa99da68ef756d968d39a85f0fac3649"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#afa99da68ef756d968d39a85f0fac3649">SVF::SVFGOPT::addRetIndirectSVFGEdge</a></div><div class="ttdeci">SVFGEdge * addRetIndirectSVFGEdge(NodeID srcId, NodeID dstId, CallSiteID csid, const NodeBS &amp;cpts)</div><div class="ttdoc">Add indirect ret edge from src to dst with one call site ID. </div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8cpp_source.html#l00079">SVFGOPT.cpp:79</a></div></div>
2514
2514
  <div class="ttc" id="classSVF_1_1SVFG_html_ad03f0064d3a1ff397b35a606304a9c80"><div class="ttname"><a href="classSVF_1_1SVFG.html#ad03f0064d3a1ff397b35a606304a9c80">SVF::SVFG::addIntraIndirectVFEdge</a></div><div class="ttdeci">SVFGEdge * addIntraIndirectVFEdge(NodeID srcId, NodeID dstId, const NodeBS &amp;cpts)</div><div class="ttdoc">Add indirect def-use edges of a memory region between two statements,. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8cpp_source.html#l00461">SVFG.cpp:461</a></div></div>
2515
2515
  <div class="ttc" id="classSVF_1_1IndirectSVFGEdge_html"><div class="ttname"><a href="classSVF_1_1IndirectSVFGEdge.html">SVF::IndirectSVFGEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFGEdge_8h_source.html#l00042">SVFGEdge.h:42</a></div></div>
2516
2516
  <div class="ttc" id="classSVF_1_1GenericNode_html_a19a3366fd8a58290d0c740c46c3dcb3d"><div class="ttname"><a href="classSVF_1_1GenericNode.html#a19a3366fd8a58290d0c740c46c3dcb3d">SVF::GenericNode::OutEdgeEnd</a></div><div class="ttdeci">iterator OutEdgeEnd()</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00212">GenericGraph.h:212</a></div></div>
2517
- <div class="ttc" id="classSVF_1_1SparseBitVector_html_aea5389ad7e5fe4c8bef686940a1a6056"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#aea5389ad7e5fe4c8bef686940a1a6056">SVF::SparseBitVector::empty</a></div><div class="ttdeci">bool empty() const</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l01099">SparseBitVector.h:1099</a></div></div>
2517
+ <div class="ttc" id="classSVF_1_1SparseBitVector_html_aea5389ad7e5fe4c8bef686940a1a6056"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#aea5389ad7e5fe4c8bef686940a1a6056">SVF::SparseBitVector::empty</a></div><div class="ttdeci">bool empty() const</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l01091">SparseBitVector.h:1091</a></div></div>
2518
2518
  <div class="ttc" id="classSVF_1_1IndirectSVFGEdge_html_a30aca718d25924f1babdf348bb0ace71"><div class="ttname"><a href="classSVF_1_1IndirectSVFGEdge.html#a30aca718d25924f1babdf348bb0ace71">SVF::IndirectSVFGEdge::getPointsTo</a></div><div class="ttdeci">const NodeBS &amp; getPointsTo() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFGEdge_8h_source.html#l00060">SVFGEdge.h:60</a></div></div>
2519
2519
  </div><!-- fragment -->
2520
2520
  </div>
@@ -2556,7 +2556,7 @@ Additional Inherited Members</h2></td></tr>
2556
2556
 
2557
2557
  <p class="definition">Definition at line <a class="el" href="SVFGOPT_8h_source.html#l00269">269</a> of file <a class="el" href="SVFGOPT_8h_source.html">SVFGOPT.h</a>.</p>
2558
2558
  <div class="fragment"><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; {</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; <span class="keywordtype">bool</span> inserted = <a class="code" href="classSVF_1_1SVFGOPT.html#a9741514d915bf7f14787cc346b9d7c98">actualInToDefMap</a>.emplace(ai, def).second;</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; (void)inserted; <span class="comment">// Suppress warning of unused variable under release build</span></div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; assert(inserted &amp;&amp; <span class="stringliteral">&quot;can not set actual-in&#39;s def twice&quot;</span>);</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; <a class="code" href="classSVF_1_1SVFGOPT.html#abd524dca72261bbcc7ebb1103b693a2b">defNodes</a>.<a class="code" href="classSVF_1_1SparseBitVector.html#a61bd86909a141f9de873d92c0f904832">set</a>(def);</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; }</div><div class="ttc" id="classSVF_1_1SVFGOPT_html_abd524dca72261bbcc7ebb1103b693a2b"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#abd524dca72261bbcc7ebb1103b693a2b">SVF::SVFGOPT::defNodes</a></div><div class="ttdeci">NodeBS defNodes</div><div class="ttdoc">preserved def nodes of formal-in/actual-out </div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8h_source.html#l00351">SVFGOPT.h:351</a></div></div>
2559
- <div class="ttc" id="classSVF_1_1SparseBitVector_html_a61bd86909a141f9de873d92c0f904832"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#a61bd86909a141f9de873d92c0f904832">SVF::SparseBitVector::set</a></div><div class="ttdeci">void set(unsigned Idx)</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00747">SparseBitVector.h:747</a></div></div>
2559
+ <div class="ttc" id="classSVF_1_1SparseBitVector_html_a61bd86909a141f9de873d92c0f904832"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#a61bd86909a141f9de873d92c0f904832">SVF::SparseBitVector::set</a></div><div class="ttdeci">void set(unsigned Idx)</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00739">SparseBitVector.h:739</a></div></div>
2560
2560
  <div class="ttc" id="classSVF_1_1SVFGOPT_html_a9741514d915bf7f14787cc346b9d7c98"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#a9741514d915bf7f14787cc346b9d7c98">SVF::SVFGOPT::actualInToDefMap</a></div><div class="ttdeci">NodeIDToNodeIDMap actualInToDefMap</div><div class="ttdoc">map actual-in to its def-site node </div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8h_source.html#l00349">SVFGOPT.h:349</a></div></div>
2561
2561
  </div><!-- fragment -->
2562
2562
  </div>
@@ -2598,7 +2598,7 @@ Additional Inherited Members</h2></td></tr>
2598
2598
  <p class="definition">Definition at line <a class="el" href="SVFGOPT_8h_source.html#l00276">276</a> of file <a class="el" href="SVFGOPT_8h_source.html">SVFGOPT.h</a>.</p>
2599
2599
  <div class="fragment"><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; {</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; <span class="keywordtype">bool</span> inserted = <a class="code" href="classSVF_1_1SVFGOPT.html#abbd6ac28826b9cc4c4981271393c8b19">formalOutToDefMap</a>.emplace(fo, def).second;</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; (void) inserted;</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; assert(inserted &amp;&amp; <span class="stringliteral">&quot;can not set formal-out&#39;s def twice&quot;</span>);</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; <a class="code" href="classSVF_1_1SVFGOPT.html#abd524dca72261bbcc7ebb1103b693a2b">defNodes</a>.<a class="code" href="classSVF_1_1SparseBitVector.html#a61bd86909a141f9de873d92c0f904832">set</a>(def);</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; }</div><div class="ttc" id="classSVF_1_1SVFGOPT_html_abbd6ac28826b9cc4c4981271393c8b19"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#abbd6ac28826b9cc4c4981271393c8b19">SVF::SVFGOPT::formalOutToDefMap</a></div><div class="ttdeci">NodeIDToNodeIDMap formalOutToDefMap</div><div class="ttdoc">map formal-out to its def-site node </div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8h_source.html#l00350">SVFGOPT.h:350</a></div></div>
2600
2600
  <div class="ttc" id="classSVF_1_1SVFGOPT_html_abd524dca72261bbcc7ebb1103b693a2b"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#abd524dca72261bbcc7ebb1103b693a2b">SVF::SVFGOPT::defNodes</a></div><div class="ttdeci">NodeBS defNodes</div><div class="ttdoc">preserved def nodes of formal-in/actual-out </div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8h_source.html#l00351">SVFGOPT.h:351</a></div></div>
2601
- <div class="ttc" id="classSVF_1_1SparseBitVector_html_a61bd86909a141f9de873d92c0f904832"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#a61bd86909a141f9de873d92c0f904832">SVF::SparseBitVector::set</a></div><div class="ttdeci">void set(unsigned Idx)</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00747">SparseBitVector.h:747</a></div></div>
2601
+ <div class="ttc" id="classSVF_1_1SparseBitVector_html_a61bd86909a141f9de873d92c0f904832"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#a61bd86909a141f9de873d92c0f904832">SVF::SparseBitVector::set</a></div><div class="ttdeci">void set(unsigned Idx)</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00739">SparseBitVector.h:739</a></div></div>
2602
2602
  </div><!-- fragment -->
2603
2603
  </div>
2604
2604
  </div>