svf-tools 1.0.619 → 1.0.621

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 (454) hide show
  1. package/SVF-doxygen/html/html/AndersenSCD_8cpp_source.html +2 -2
  2. package/SVF-doxygen/html/html/Andersen_8cpp_source.html +8 -8
  3. package/SVF-doxygen/html/html/Andersen_8h_source.html +4 -3
  4. package/SVF-doxygen/html/html/CFLAlias_8cpp_source.html +9 -4
  5. package/SVF-doxygen/html/html/CFLAlias_8h.html +4 -0
  6. package/SVF-doxygen/html/html/CFLAlias_8h_source.html +19 -10
  7. package/SVF-doxygen/html/html/CFLBase_8cpp_source.html +5 -5
  8. package/SVF-doxygen/html/html/CFLBase_8h_source.html +1 -1
  9. package/SVF-doxygen/html/html/CFLDataBuilder_8h.html +96 -0
  10. package/SVF-doxygen/html/html/CFLDataBuilder_8h_source.html +99 -0
  11. package/SVF-doxygen/html/html/CFLData_8h.html +106 -0
  12. package/SVF-doxygen/html/html/CFLData_8h_source.html +136 -0
  13. package/SVF-doxygen/html/html/CFLGraphBuilder_8cpp_source.html +2 -2
  14. package/SVF-doxygen/html/html/CFLSolver_8cpp_source.html +7 -7
  15. package/SVF-doxygen/html/html/CFLSolver_8h.html +4 -0
  16. package/SVF-doxygen/html/html/CFLSolver_8h_source.html +22 -16
  17. package/SVF-doxygen/html/html/CFLVF_8cpp_source.html +4 -4
  18. package/SVF-doxygen/html/html/CHGBuilder_8cpp_source.html +2 -2
  19. package/SVF-doxygen/html/html/CommandLine_8h.html +129 -0
  20. package/SVF-doxygen/html/html/CommandLine_8h_source.html +132 -0
  21. package/SVF-doxygen/html/html/ConsGNode_8h_source.html +5 -5
  22. package/SVF-doxygen/html/html/ConsG_8cpp_source.html +4 -4
  23. package/SVF-doxygen/html/html/ContextDDA_8cpp_source.html +2 -2
  24. package/SVF-doxygen/html/html/DCHG_8cpp_source.html +2 -2
  25. package/SVF-doxygen/html/html/DDAPass_8cpp_source.html +20 -19
  26. package/SVF-doxygen/html/html/DDAPass_8h_source.html +9 -9
  27. package/SVF-doxygen/html/html/DoubleFreeChecker_8cpp_source.html +2 -2
  28. package/SVF-doxygen/html/html/FSMPTA_8cpp_source.html +6 -6
  29. package/SVF-doxygen/html/html/FlowDDA_8cpp_source.html +1 -1
  30. package/SVF-doxygen/html/html/FlowSensitive_8cpp_source.html +7 -7
  31. package/SVF-doxygen/html/html/GraphWriter_8cpp_source.html +2 -1
  32. package/SVF-doxygen/html/html/GraphWriter_8h_source.html +2 -1
  33. package/SVF-doxygen/html/html/ICFGBuilder_8cpp_source.html +1 -1
  34. package/SVF-doxygen/html/html/ICFG_8cpp_source.html +2 -2
  35. package/SVF-doxygen/html/html/IRGraph_8cpp_source.html +2 -2
  36. package/SVF-doxygen/html/html/LLVMLoopAnalysis_8cpp_source.html +2 -2
  37. package/SVF-doxygen/html/html/LLVMModule_8cpp_source.html +21 -20
  38. package/SVF-doxygen/html/html/LLVMModule_8h_source.html +17 -17
  39. package/SVF-doxygen/html/html/LLVMUtil_8cpp_source.html +2 -2
  40. package/SVF-doxygen/html/html/LeakChecker_8cpp_source.html +2 -2
  41. package/SVF-doxygen/html/html/LockResultValidator_8cpp_source.html +2 -2
  42. package/SVF-doxygen/html/html/MHP_8cpp_source.html +2 -2
  43. package/SVF-doxygen/html/html/MTAAnnotator_8cpp_source.html +3 -3
  44. package/SVF-doxygen/html/html/MTAResultValidator_8cpp_source.html +2 -2
  45. package/SVF-doxygen/html/html/MTAStat_8cpp_source.html +2 -2
  46. package/SVF-doxygen/html/html/MTA_8cpp_source.html +1 -1
  47. package/SVF-doxygen/html/html/MemRegion_8cpp_source.html +2 -2
  48. package/SVF-doxygen/html/html/MemSSA_8cpp_source.html +3 -3
  49. package/SVF-doxygen/html/html/NodeIDAllocator_8cpp_source.html +6 -6
  50. package/SVF-doxygen/html/html/Options_8cpp.html +1 -0
  51. package/SVF-doxygen/html/html/Options_8cpp_source.html +124 -119
  52. package/SVF-doxygen/html/html/Options_8h.html +1 -1
  53. package/SVF-doxygen/html/html/Options_8h_source.html +125 -120
  54. package/SVF-doxygen/html/html/PCG_8cpp.html +2 -1
  55. package/SVF-doxygen/html/html/PCG_8cpp_source.html +13 -12
  56. package/SVF-doxygen/html/html/PCG_8h_source.html +12 -12
  57. package/SVF-doxygen/html/html/PointerAnalysisImpl_8cpp_source.html +4 -4
  58. package/SVF-doxygen/html/html/PointerAnalysis_8cpp_source.html +13 -13
  59. package/SVF-doxygen/html/html/PointsTo_8cpp_source.html +1 -1
  60. package/SVF-doxygen/html/html/SVFGBuilder_8cpp_source.html +5 -5
  61. package/SVF-doxygen/html/html/SVFGOPT_8cpp_source.html +5 -5
  62. package/SVF-doxygen/html/html/SVFG_8cpp_source.html +4 -4
  63. package/SVF-doxygen/html/html/SVFIR2ItvExeState_8cpp_source.html +2 -2
  64. package/SVF-doxygen/html/html/SVFIRBuilder_8cpp_source.html +4 -3
  65. package/SVF-doxygen/html/html/SVFIRBuilder_8h_source.html +1 -1
  66. package/SVF-doxygen/html/html/SVFIR_8cpp_source.html +5 -4
  67. package/SVF-doxygen/html/html/SVFStat_8cpp_source.html +3 -3
  68. package/SVF-doxygen/html/html/SVFStatements_8cpp_source.html +2 -2
  69. package/SVF-doxygen/html/html/SVFType_8h.html +2 -2
  70. package/SVF-doxygen/html/html/SVFUtil_8cpp_source.html +2 -2
  71. package/SVF-doxygen/html/html/SVFVariables_8cpp_source.html +2 -2
  72. package/SVF-doxygen/html/html/SaberCondAllocator_8cpp_source.html +2 -2
  73. package/SVF-doxygen/html/html/SrcSnkDDA_8cpp_source.html +5 -5
  74. package/SVF-doxygen/html/html/SymbolTableBuilder_8cpp_source.html +7 -7
  75. package/SVF-doxygen/html/html/SymbolTableInfo_8cpp_source.html +4 -4
  76. package/SVF-doxygen/html/html/TCT_8cpp_source.html +2 -2
  77. package/SVF-doxygen/html/html/TypeAnalysis_8cpp_source.html +2 -2
  78. package/SVF-doxygen/html/html/VFG_8cpp_source.html +2 -2
  79. package/SVF-doxygen/html/html/VersionedFlowSensitive_8cpp_source.html +4 -4
  80. package/SVF-doxygen/html/html/WPAPass_8cpp_source.html +10 -9
  81. package/SVF-doxygen/html/html/WPAPass_8h_source.html +4 -4
  82. package/SVF-doxygen/html/html/Z3Expr_8cpp_source.html +2 -2
  83. package/SVF-doxygen/html/html/annotated.html +363 -353
  84. package/SVF-doxygen/html/html/cfl_8cpp.html +3 -85
  85. package/SVF-doxygen/html/html/cfl_8cpp_source.html +3 -5
  86. package/SVF-doxygen/html/html/classOption-members.html +99 -0
  87. package/SVF-doxygen/html/html/classOption.html +567 -0
  88. package/SVF-doxygen/html/html/classOption.png +0 -0
  89. package/SVF-doxygen/html/html/classOptionBase-members.html +95 -0
  90. package/SVF-doxygen/html/html/classOptionBase.html +823 -0
  91. package/SVF-doxygen/html/html/classOptionBase.png +0 -0
  92. package/SVF-doxygen/html/html/classOptionMap-members.html +97 -0
  93. package/SVF-doxygen/html/html/classOptionMap.html +428 -0
  94. package/SVF-doxygen/html/html/classOptionMap.png +0 -0
  95. package/SVF-doxygen/html/html/classOptionMultiple-members.html +97 -0
  96. package/SVF-doxygen/html/html/classOptionMultiple.html +460 -0
  97. package/SVF-doxygen/html/html/classOptionMultiple.png +0 -0
  98. package/SVF-doxygen/html/html/classSVF_1_1AddrStmt.html +2 -2
  99. package/SVF-doxygen/html/html/classSVF_1_1Andersen.html +16 -15
  100. package/SVF-doxygen/html/html/classSVF_1_1AndersenBase.html +9 -9
  101. package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD.html +6 -6
  102. package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl.html +7 -6
  103. package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl.png +0 -0
  104. package/SVF-doxygen/html/html/classSVF_1_1BinaryOPStmt.html +2 -2
  105. package/SVF-doxygen/html/html/classSVF_1_1BranchStmt.html +2 -2
  106. package/SVF-doxygen/html/html/classSVF_1_1CFLAlias.html +33 -30
  107. package/SVF-doxygen/html/html/classSVF_1_1CFLAlias.png +0 -0
  108. package/SVF-doxygen/html/html/classSVF_1_1CFLBase.html +9 -8
  109. package/SVF-doxygen/html/html/classSVF_1_1CFLBase.png +0 -0
  110. package/SVF-doxygen/html/html/classSVF_1_1CFLData-members.html +110 -0
  111. package/SVF-doxygen/html/html/classSVF_1_1CFLData.html +1126 -0
  112. package/SVF-doxygen/html/html/classSVF_1_1CFLDataBuilder-members.html +88 -0
  113. package/SVF-doxygen/html/html/classSVF_1_1CFLDataBuilder.html +380 -0
  114. package/SVF-doxygen/html/html/classSVF_1_1CFLGraphBuilder.html +2 -2
  115. package/SVF-doxygen/html/html/classSVF_1_1CFLNode.html +4 -4
  116. package/SVF-doxygen/html/html/classSVF_1_1CFLSolver.html +48 -39
  117. package/SVF-doxygen/html/html/classSVF_1_1CFLSolver.png +0 -0
  118. package/SVF-doxygen/html/html/classSVF_1_1CFLVF.html +6 -6
  119. package/SVF-doxygen/html/html/classSVF_1_1CHGBuilder.html +2 -2
  120. package/SVF-doxygen/html/html/classSVF_1_1CallPE.html +2 -2
  121. package/SVF-doxygen/html/html/classSVF_1_1CmpStmt.html +2 -2
  122. package/SVF-doxygen/html/html/classSVF_1_1CondStdSet.html +2 -2
  123. package/SVF-doxygen/html/html/classSVF_1_1ConstraintNode-members.html +26 -26
  124. package/SVF-doxygen/html/html/classSVF_1_1ConstraintNode.html +72 -72
  125. package/SVF-doxygen/html/html/classSVF_1_1ContextDDA.html +2 -2
  126. package/SVF-doxygen/html/html/classSVF_1_1CopyStmt.html +2 -2
  127. package/SVF-doxygen/html/html/classSVF_1_1CoreBitVector.html +8 -8
  128. package/SVF-doxygen/html/html/classSVF_1_1DCHGraph.html +2 -2
  129. package/SVF-doxygen/html/html/classSVF_1_1DDAPass.html +36 -35
  130. package/SVF-doxygen/html/html/classSVF_1_1DoubleFreeChecker.html +2 -2
  131. package/SVF-doxygen/html/html/classSVF_1_1ExeState.html +4 -4
  132. package/SVF-doxygen/html/html/classSVF_1_1FIObjVar.html +2 -2
  133. package/SVF-doxygen/html/html/classSVF_1_1FlowDDA.html +2 -2
  134. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive.html +11 -11
  135. package/SVF-doxygen/html/html/classSVF_1_1GenericNode.html +22 -8
  136. package/SVF-doxygen/html/html/classSVF_1_1GenericNode.png +0 -0
  137. package/SVF-doxygen/html/html/classSVF_1_1GepObjVar.html +2 -2
  138. package/SVF-doxygen/html/html/classSVF_1_1GepStmt.html +2 -2
  139. package/SVF-doxygen/html/html/classSVF_1_1GepValVar.html +2 -2
  140. package/SVF-doxygen/html/html/classSVF_1_1GraphWriter.html +3 -2
  141. package/SVF-doxygen/html/html/classSVF_1_1HybridData-members.html +89 -0
  142. package/SVF-doxygen/html/html/classSVF_1_1HybridData.html +449 -0
  143. package/SVF-doxygen/html/html/classSVF_1_1ICFG.html +2 -2
  144. package/SVF-doxygen/html/html/classSVF_1_1ICFGBuilder.html +1 -1
  145. package/SVF-doxygen/html/html/classSVF_1_1IntervalExeState.html +8 -8
  146. package/SVF-doxygen/html/html/classSVF_1_1LLVMLoopAnalysis.html +2 -2
  147. package/SVF-doxygen/html/html/classSVF_1_1LLVMModuleSet.html +73 -72
  148. package/SVF-doxygen/html/html/classSVF_1_1LeakChecker.html +2 -2
  149. package/SVF-doxygen/html/html/classSVF_1_1LoadStmt.html +2 -2
  150. package/SVF-doxygen/html/html/classSVF_1_1LockResultValidator.html +2 -2
  151. package/SVF-doxygen/html/html/classSVF_1_1MHP.html +2 -2
  152. package/SVF-doxygen/html/html/classSVF_1_1MRGenerator.html +2 -2
  153. package/SVF-doxygen/html/html/classSVF_1_1MTA.html +1 -1
  154. package/SVF-doxygen/html/html/classSVF_1_1MTAAnnotator.html +10 -10
  155. package/SVF-doxygen/html/html/classSVF_1_1MTAResultValidator.html +6 -6
  156. package/SVF-doxygen/html/html/classSVF_1_1MTASVFGBuilder.html +12 -12
  157. package/SVF-doxygen/html/html/classSVF_1_1MTAStat.html +2 -2
  158. package/SVF-doxygen/html/html/classSVF_1_1MemSSA.html +4 -4
  159. package/SVF-doxygen/html/html/classSVF_1_1NodeIDAllocator.html +2 -2
  160. package/SVF-doxygen/html/html/classSVF_1_1NodeIDAllocator_1_1Clusterer.html +8 -8
  161. package/SVF-doxygen/html/html/classSVF_1_1ObjTypeInfo.html +2 -2
  162. package/SVF-doxygen/html/html/classSVF_1_1ObjVar.html +2 -2
  163. package/SVF-doxygen/html/html/classSVF_1_1Options-members.html +121 -120
  164. package/SVF-doxygen/html/html/classSVF_1_1Options.html +641 -615
  165. package/SVF-doxygen/html/html/classSVF_1_1PCG.html +28 -28
  166. package/SVF-doxygen/html/html/classSVF_1_1POCRAlias-members.html +281 -0
  167. package/SVF-doxygen/html/html/classSVF_1_1POCRAlias.html +828 -0
  168. package/SVF-doxygen/html/html/classSVF_1_1POCRAlias.png +0 -0
  169. package/SVF-doxygen/html/html/classSVF_1_1POCRSolver-members.html +98 -0
  170. package/SVF-doxygen/html/html/classSVF_1_1POCRSolver.html +245 -0
  171. package/SVF-doxygen/html/html/classSVF_1_1POCRSolver.png +0 -0
  172. package/SVF-doxygen/html/html/classSVF_1_1PhiStmt.html +2 -2
  173. package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.html +20 -19
  174. package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.png +0 -0
  175. package/SVF-doxygen/html/html/classSVF_1_1PointsTo.html +2 -2
  176. package/SVF-doxygen/html/html/classSVF_1_1RaceResultValidator.html +2 -2
  177. package/SVF-doxygen/html/html/classSVF_1_1RetPE.html +2 -2
  178. package/SVF-doxygen/html/html/classSVF_1_1SVFG.html +3 -3
  179. package/SVF-doxygen/html/html/classSVF_1_1SVFGBuilder.html +7 -7
  180. package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT.html +9 -9
  181. package/SVF-doxygen/html/html/classSVF_1_1SVFIR.html +9 -8
  182. package/SVF-doxygen/html/html/classSVF_1_1SVFIR2ItvExeState.html +2 -2
  183. package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder.html +18 -18
  184. package/SVF-doxygen/html/html/classSVF_1_1SVFStat.html +6 -6
  185. package/SVF-doxygen/html/html/classSVF_1_1SVFType.html +1 -1
  186. package/SVF-doxygen/html/html/classSVF_1_1SaberCondAllocator.html +3 -3
  187. package/SVF-doxygen/html/html/classSVF_1_1SelectStmt.html +2 -2
  188. package/SVF-doxygen/html/html/classSVF_1_1SrcSnkDDA.html +9 -9
  189. package/SVF-doxygen/html/html/classSVF_1_1StoreStmt.html +2 -2
  190. package/SVF-doxygen/html/html/classSVF_1_1SymbolTableBuilder.html +11 -11
  191. package/SVF-doxygen/html/html/classSVF_1_1SymbolTableInfo.html +10 -10
  192. package/SVF-doxygen/html/html/classSVF_1_1TCT.html +4 -4
  193. package/SVF-doxygen/html/html/classSVF_1_1TDForkPE.html +2 -2
  194. package/SVF-doxygen/html/html/classSVF_1_1TDJoinPE.html +2 -2
  195. package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis.html +2 -2
  196. package/SVF-doxygen/html/html/classSVF_1_1UnaryOPStmt.html +2 -2
  197. package/SVF-doxygen/html/html/classSVF_1_1VFG.html +8 -8
  198. package/SVF-doxygen/html/html/classSVF_1_1ValVar.html +2 -2
  199. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive.html +6 -6
  200. package/SVF-doxygen/html/html/classSVF_1_1WPAPass.html +27 -26
  201. package/SVF-doxygen/html/html/classSVF_1_1Z3Expr.html +6 -6
  202. package/SVF-doxygen/html/html/classes.html +110 -108
  203. package/SVF-doxygen/html/html/dda_8cpp.html +51 -248
  204. package/SVF-doxygen/html/html/dda_8cpp_source.html +9 -10
  205. package/SVF-doxygen/html/html/dir_95e22971b5dbae2382075a3453e365b4.html +2 -0
  206. package/SVF-doxygen/html/html/dir_ae8aa099e368efaa962140c6624142bc.html +4 -0
  207. package/SVF-doxygen/html/html/files.html +27 -24
  208. package/SVF-doxygen/html/html/functions.html +7 -1
  209. package/SVF-doxygen/html/html/functions_0x7e.html +18 -0
  210. package/SVF-doxygen/html/html/functions_a.html +45 -21
  211. package/SVF-doxygen/html/html/functions_b.html +15 -7
  212. package/SVF-doxygen/html/html/functions_c.html +72 -49
  213. package/SVF-doxygen/html/html/functions_d.html +25 -16
  214. package/SVF-doxygen/html/html/functions_e.html +11 -4
  215. package/SVF-doxygen/html/html/functions_f.html +19 -16
  216. package/SVF-doxygen/html/html/functions_func.html +35 -11
  217. package/SVF-doxygen/html/html/functions_func_0x7e.html +18 -0
  218. package/SVF-doxygen/html/html/functions_func_b.html +11 -3
  219. package/SVF-doxygen/html/html/functions_func_c.html +55 -34
  220. package/SVF-doxygen/html/html/functions_func_e.html +5 -1
  221. package/SVF-doxygen/html/html/functions_func_f.html +4 -1
  222. package/SVF-doxygen/html/html/functions_func_g.html +26 -7
  223. package/SVF-doxygen/html/html/functions_func_h.html +10 -3
  224. package/SVF-doxygen/html/html/functions_func_i.html +25 -10
  225. package/SVF-doxygen/html/html/functions_func_m.html +3 -2
  226. package/SVF-doxygen/html/html/functions_func_n.html +4 -1
  227. package/SVF-doxygen/html/html/functions_func_o.html +23 -6
  228. package/SVF-doxygen/html/html/functions_func_p.html +15 -3
  229. package/SVF-doxygen/html/html/functions_func_s.html +20 -19
  230. package/SVF-doxygen/html/html/functions_func_t.html +3 -0
  231. package/SVF-doxygen/html/html/functions_func_u.html +3 -0
  232. package/SVF-doxygen/html/html/functions_g.html +28 -9
  233. package/SVF-doxygen/html/html/functions_h.html +13 -6
  234. package/SVF-doxygen/html/html/functions_i.html +44 -20
  235. package/SVF-doxygen/html/html/functions_k.html +1 -1
  236. package/SVF-doxygen/html/html/functions_l.html +4 -4
  237. package/SVF-doxygen/html/html/functions_m.html +14 -13
  238. package/SVF-doxygen/html/html/functions_n.html +9 -5
  239. package/SVF-doxygen/html/html/functions_o.html +48 -25
  240. package/SVF-doxygen/html/html/functions_p.html +65 -34
  241. package/SVF-doxygen/html/html/functions_r.html +7 -9
  242. package/SVF-doxygen/html/html/functions_s.html +34 -32
  243. package/SVF-doxygen/html/html/functions_t.html +17 -8
  244. package/SVF-doxygen/html/html/functions_type_c.html +2 -1
  245. package/SVF-doxygen/html/html/functions_type_d.html +3 -0
  246. package/SVF-doxygen/html/html/functions_type_i.html +2 -1
  247. package/SVF-doxygen/html/html/functions_type_o.html +7 -0
  248. package/SVF-doxygen/html/html/functions_type_p.html +6 -0
  249. package/SVF-doxygen/html/html/functions_type_t.html +3 -0
  250. package/SVF-doxygen/html/html/functions_u.html +6 -3
  251. package/SVF-doxygen/html/html/functions_v.html +7 -5
  252. package/SVF-doxygen/html/html/functions_vars.html +7 -1
  253. package/SVF-doxygen/html/html/functions_vars_a.html +7 -7
  254. package/SVF-doxygen/html/html/functions_vars_b.html +1 -1
  255. package/SVF-doxygen/html/html/functions_vars_c.html +15 -12
  256. package/SVF-doxygen/html/html/functions_vars_d.html +21 -15
  257. package/SVF-doxygen/html/html/functions_vars_e.html +5 -2
  258. package/SVF-doxygen/html/html/functions_vars_f.html +6 -6
  259. package/SVF-doxygen/html/html/functions_vars_g.html +2 -2
  260. package/SVF-doxygen/html/html/functions_vars_h.html +1 -1
  261. package/SVF-doxygen/html/html/functions_vars_i.html +14 -6
  262. package/SVF-doxygen/html/html/functions_vars_k.html +1 -1
  263. package/SVF-doxygen/html/html/functions_vars_l.html +4 -4
  264. package/SVF-doxygen/html/html/functions_vars_m.html +11 -11
  265. package/SVF-doxygen/html/html/functions_vars_n.html +3 -2
  266. package/SVF-doxygen/html/html/functions_vars_o.html +5 -2
  267. package/SVF-doxygen/html/html/functions_vars_p.html +34 -21
  268. package/SVF-doxygen/html/html/functions_vars_r.html +5 -5
  269. package/SVF-doxygen/html/html/functions_vars_s.html +13 -10
  270. package/SVF-doxygen/html/html/functions_vars_t.html +7 -4
  271. package/SVF-doxygen/html/html/functions_vars_u.html +3 -3
  272. package/SVF-doxygen/html/html/functions_vars_v.html +6 -4
  273. package/SVF-doxygen/html/html/functions_vars_w.html +3 -3
  274. package/SVF-doxygen/html/html/functions_w.html +11 -7
  275. package/SVF-doxygen/html/html/globals_d.html +4 -4
  276. package/SVF-doxygen/html/html/globals_e.html +6 -6
  277. package/SVF-doxygen/html/html/globals_f.html +2 -2
  278. package/SVF-doxygen/html/html/globals_func.html +6 -58
  279. package/SVF-doxygen/html/html/globals_i.html +4 -12
  280. package/SVF-doxygen/html/html/globals_l.html +2 -2
  281. package/SVF-doxygen/html/html/globals_r.html +4 -4
  282. package/SVF-doxygen/html/html/globals_s.html +0 -4
  283. package/SVF-doxygen/html/html/globals_type.html +3 -0
  284. package/SVF-doxygen/html/html/globals_u.html +3 -0
  285. package/SVF-doxygen/html/html/globals_vars.html +43 -12
  286. package/SVF-doxygen/html/html/hierarchy.html +517 -496
  287. package/SVF-doxygen/html/html/include_2MTA_2MTAResultValidator_8h_source.html +1 -1
  288. package/SVF-doxygen/html/html/menudata.js +1 -2
  289. package/SVF-doxygen/html/html/mta_8cpp.html +4 -47
  290. package/SVF-doxygen/html/html/mta_8cpp_source.html +4 -4
  291. package/SVF-doxygen/html/html/namespaceSVF.html +29 -0
  292. package/SVF-doxygen/html/html/namespaceSVF_1_1DOT.html +3 -2
  293. package/SVF-doxygen/html/html/namespaceSVF_1_1SVFUtil.html +1 -1
  294. package/SVF-doxygen/html/html/namespacemembers_l.html +3 -0
  295. package/SVF-doxygen/html/html/namespacemembers_type_l.html +3 -0
  296. package/SVF-doxygen/html/html/saber_8cpp.html +38 -136
  297. package/SVF-doxygen/html/html/saber_8cpp_source.html +8 -7
  298. package/SVF-doxygen/html/html/search/all_0.js +2 -1
  299. package/SVF-doxygen/html/html/search/all_1.js +15 -8
  300. package/SVF-doxygen/html/html/search/all_10.js +33 -25
  301. package/SVF-doxygen/html/html/search/all_11.js +9 -9
  302. package/SVF-doxygen/html/html/search/all_12.js +22 -22
  303. package/SVF-doxygen/html/html/search/all_13.js +14 -11
  304. package/SVF-doxygen/html/html/search/all_14.js +5 -4
  305. package/SVF-doxygen/html/html/search/all_15.js +5 -5
  306. package/SVF-doxygen/html/html/search/all_16.js +4 -4
  307. package/SVF-doxygen/html/html/search/all_19.js +6 -0
  308. package/SVF-doxygen/html/html/search/all_2.js +5 -3
  309. package/SVF-doxygen/html/html/search/all_3.js +25 -18
  310. package/SVF-doxygen/html/html/search/all_4.js +20 -18
  311. package/SVF-doxygen/html/html/search/all_5.js +8 -6
  312. package/SVF-doxygen/html/html/search/all_6.js +9 -8
  313. package/SVF-doxygen/html/html/search/all_7.js +9 -3
  314. package/SVF-doxygen/html/html/search/all_8.js +5 -3
  315. package/SVF-doxygen/html/html/search/all_9.js +16 -11
  316. package/SVF-doxygen/html/html/search/all_b.js +2 -2
  317. package/SVF-doxygen/html/html/search/all_c.js +7 -6
  318. package/SVF-doxygen/html/html/search/all_d.js +13 -13
  319. package/SVF-doxygen/html/html/search/all_e.js +4 -3
  320. package/SVF-doxygen/html/html/search/all_f.js +24 -6
  321. package/SVF-doxygen/html/html/search/classes_10.js +1 -0
  322. package/SVF-doxygen/html/html/search/classes_2.js +2 -0
  323. package/SVF-doxygen/html/html/search/classes_7.js +2 -1
  324. package/SVF-doxygen/html/html/search/classes_c.js +15 -0
  325. package/SVF-doxygen/html/html/search/classes_d.js +2 -0
  326. package/SVF-doxygen/html/html/search/files_2.js +3 -0
  327. package/SVF-doxygen/html/html/search/functions_0.js +8 -1
  328. package/SVF-doxygen/html/html/search/functions_1.js +4 -2
  329. package/SVF-doxygen/html/html/search/functions_10.js +0 -2
  330. package/SVF-doxygen/html/html/search/functions_11.js +2 -3
  331. package/SVF-doxygen/html/html/search/functions_12.js +1 -0
  332. package/SVF-doxygen/html/html/search/functions_13.js +1 -0
  333. package/SVF-doxygen/html/html/search/functions_17.js +6 -0
  334. package/SVF-doxygen/html/html/search/functions_2.js +5 -1
  335. package/SVF-doxygen/html/html/search/functions_3.js +0 -2
  336. package/SVF-doxygen/html/html/search/functions_4.js +2 -4
  337. package/SVF-doxygen/html/html/search/functions_5.js +2 -1
  338. package/SVF-doxygen/html/html/search/functions_6.js +7 -1
  339. package/SVF-doxygen/html/html/search/functions_7.js +4 -2
  340. package/SVF-doxygen/html/html/search/functions_8.js +6 -3
  341. package/SVF-doxygen/html/html/search/functions_b.js +1 -1
  342. package/SVF-doxygen/html/html/search/functions_c.js +1 -1
  343. package/SVF-doxygen/html/html/search/functions_d.js +1 -0
  344. package/SVF-doxygen/html/html/search/functions_e.js +7 -3
  345. package/SVF-doxygen/html/html/search/functions_f.js +3 -0
  346. package/SVF-doxygen/html/html/search/typedefs_11.js +2 -1
  347. package/SVF-doxygen/html/html/search/typedefs_12.js +1 -1
  348. package/SVF-doxygen/html/html/search/typedefs_2.js +1 -1
  349. package/SVF-doxygen/html/html/search/typedefs_3.js +1 -0
  350. package/SVF-doxygen/html/html/search/typedefs_7.js +1 -1
  351. package/SVF-doxygen/html/html/search/typedefs_a.js +1 -0
  352. package/SVF-doxygen/html/html/search/typedefs_d.js +2 -0
  353. package/SVF-doxygen/html/html/search/typedefs_e.js +2 -0
  354. package/SVF-doxygen/html/html/search/variables_0.js +2 -1
  355. package/SVF-doxygen/html/html/search/variables_1.js +7 -7
  356. package/SVF-doxygen/html/html/search/variables_10.js +25 -21
  357. package/SVF-doxygen/html/html/search/variables_11.js +7 -5
  358. package/SVF-doxygen/html/html/search/variables_12.js +11 -10
  359. package/SVF-doxygen/html/html/search/variables_13.js +9 -8
  360. package/SVF-doxygen/html/html/search/variables_14.js +3 -3
  361. package/SVF-doxygen/html/html/search/variables_15.js +4 -4
  362. package/SVF-doxygen/html/html/search/variables_16.js +3 -3
  363. package/SVF-doxygen/html/html/search/variables_2.js +1 -1
  364. package/SVF-doxygen/html/html/search/variables_3.js +13 -12
  365. package/SVF-doxygen/html/html/search/variables_4.js +19 -15
  366. package/SVF-doxygen/html/html/search/variables_5.js +6 -2
  367. package/SVF-doxygen/html/html/search/variables_6.js +7 -6
  368. package/SVF-doxygen/html/html/search/variables_7.js +2 -2
  369. package/SVF-doxygen/html/html/search/variables_8.js +1 -1
  370. package/SVF-doxygen/html/html/search/variables_9.js +9 -7
  371. package/SVF-doxygen/html/html/search/variables_b.js +1 -1
  372. package/SVF-doxygen/html/html/search/variables_c.js +5 -4
  373. package/SVF-doxygen/html/html/search/variables_d.js +11 -11
  374. package/SVF-doxygen/html/html/search/variables_e.js +2 -2
  375. package/SVF-doxygen/html/html/search/variables_f.js +3 -2
  376. package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01ConstraintGraph_01_5_01_4.html +4 -4
  377. package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01IRGraph_01_5_01_4.html +1 -1
  378. package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01SVFG_01_5_01_4.html +2 -2
  379. package/SVF-doxygen/html/html/structSVF_1_1GrammarBase_1_1Symbol.html +4 -4
  380. package/SVF-doxygen/html/html/structSVF_1_1HybridData_1_1TreeNode-members.html +86 -0
  381. package/SVF-doxygen/html/html/structSVF_1_1HybridData_1_1TreeNode.html +255 -0
  382. package/SVF-doxygen/html/html/svf-ex_8cpp.html +12 -55
  383. package/SVF-doxygen/html/html/svf-ex_8cpp_source.html +8 -8
  384. package/SVF-doxygen/html/html/tools_2MTA_2MTAResultValidator_8h_source.html +1 -1
  385. package/SVF-doxygen/html/html/wpa_8cpp.html +4 -47
  386. package/SVF-doxygen/html/html/wpa_8cpp_source.html +4 -4
  387. package/include/CFL/CFLAlias.h +34 -0
  388. package/include/CFL/CFLData.h +316 -0
  389. package/include/CFL/CFLDataBuilder.h +91 -0
  390. package/include/CFL/CFLSolver.h +21 -0
  391. package/include/Util/CommandLine.h +527 -0
  392. package/include/Util/Options.h +125 -124
  393. package/include/WPA/Andersen.h +5 -5
  394. package/lib/AbstractExecution/SVFIR2ItvExeState.cpp +2 -2
  395. package/lib/CFL/CFLAlias.cpp +40 -4
  396. package/lib/CFL/CFLBase.cpp +4 -4
  397. package/lib/CFL/CFLGraphBuilder.cpp +2 -2
  398. package/lib/CFL/CFLVF.cpp +5 -5
  399. package/lib/DDA/ContextDDA.cpp +1 -1
  400. package/lib/DDA/DDAPass.cpp +14 -13
  401. package/lib/DDA/FlowDDA.cpp +1 -1
  402. package/lib/Graphs/ConsG.cpp +10 -10
  403. package/lib/Graphs/ICFG.cpp +1 -1
  404. package/lib/Graphs/IRGraph.cpp +2 -2
  405. package/lib/Graphs/SVFG.cpp +5 -5
  406. package/lib/Graphs/SVFGOPT.cpp +5 -5
  407. package/lib/Graphs/VFG.cpp +1 -1
  408. package/lib/MSSA/MemRegion.cpp +2 -2
  409. package/lib/MSSA/MemSSA.cpp +4 -4
  410. package/lib/MSSA/SVFGBuilder.cpp +4 -4
  411. package/lib/MTA/FSMPTA.cpp +13 -13
  412. package/lib/MTA/MHP.cpp +1 -1
  413. package/lib/MTA/MTA.cpp +2 -2
  414. package/lib/MTA/MTAStat.cpp +1 -1
  415. package/lib/MTA/PCG.cpp +8 -2
  416. package/lib/MTA/TCT.cpp +2 -2
  417. package/lib/MemoryModel/PointerAnalysis.cpp +13 -13
  418. package/lib/MemoryModel/PointerAnalysisImpl.cpp +13 -13
  419. package/lib/MemoryModel/PointsTo.cpp +1 -1
  420. package/lib/SABER/DoubleFreeChecker.cpp +1 -1
  421. package/lib/SABER/LeakChecker.cpp +1 -1
  422. package/lib/SABER/SaberCondAllocator.cpp +1 -1
  423. package/lib/SABER/SrcSnkDDA.cpp +5 -5
  424. package/lib/SVF-LLVM/CHGBuilder.cpp +1 -1
  425. package/lib/SVF-LLVM/DCHG.cpp +1 -1
  426. package/lib/SVF-LLVM/LLVMLoopAnalysis.cpp +2 -2
  427. package/lib/SVF-LLVM/LLVMModule.cpp +10 -4
  428. package/lib/SVF-LLVM/SVFIRBuilder.cpp +8 -8
  429. package/lib/SVF-LLVM/SymbolTableBuilder.cpp +5 -5
  430. package/lib/SVFIR/SVFIR.cpp +4 -4
  431. package/lib/SVFIR/SVFStatements.cpp +16 -16
  432. package/lib/SVFIR/SVFVariables.cpp +5 -5
  433. package/lib/SVFIR/SymbolTableInfo.cpp +6 -6
  434. package/lib/Util/NodeIDAllocator.cpp +9 -9
  435. package/lib/Util/Options.cpp +431 -412
  436. package/lib/Util/SVFStat.cpp +5 -5
  437. package/lib/Util/SVFUtil.cpp +1 -1
  438. package/lib/Util/Z3Expr.cpp +2 -2
  439. package/lib/WPA/Andersen.cpp +13 -13
  440. package/lib/WPA/AndersenSCD.cpp +3 -3
  441. package/lib/WPA/FlowSensitive.cpp +8 -8
  442. package/lib/WPA/TypeAnalysis.cpp +1 -1
  443. package/lib/WPA/VersionedFlowSensitive.cpp +4 -4
  444. package/lib/WPA/WPAPass.cpp +10 -9
  445. package/package.json +1 -1
  446. package/tools/CFL/cfl.cpp +8 -14
  447. package/tools/DDA/dda.cpp +39 -29
  448. package/tools/Example/svf-ex.cpp +5 -8
  449. package/tools/MTA/LockResultValidator.cpp +2 -2
  450. package/tools/MTA/MTAAnnotator.cpp +5 -5
  451. package/tools/MTA/MTAResultValidator.cpp +8 -8
  452. package/tools/MTA/mta.cpp +5 -8
  453. package/tools/SABER/saber.cpp +23 -17
  454. package/tools/WPA/wpa.cpp +6 -9
@@ -0,0 +1,449 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2
+ <html xmlns="http://www.w3.org/1999/xhtml">
3
+ <head>
4
+ <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
5
+ <meta http-equiv="X-UA-Compatible" content="IE=9"/>
6
+ <meta name="generator" content="Doxygen 1.8.13"/>
7
+ <meta name="viewport" content="width=device-width, initial-scale=1"/>
8
+ <title>Static Value-Flow Analysis: SVF::HybridData Class Reference</title>
9
+ <link href="tabs.css" rel="stylesheet" type="text/css"/>
10
+ <script type="text/javascript" src="jquery.js"></script>
11
+ <script type="text/javascript" src="dynsections.js"></script>
12
+ <link href="search/search.css" rel="stylesheet" type="text/css"/>
13
+ <script type="text/javascript" src="search/searchdata.js"></script>
14
+ <script type="text/javascript" src="search/search.js"></script>
15
+ <link href="doxygen.css" rel="stylesheet" type="text/css" />
16
+ </head>
17
+ <body>
18
+ <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
19
+ <div id="titlearea">
20
+ <table cellspacing="0" cellpadding="0">
21
+ <tbody>
22
+ <tr style="height: 56px;">
23
+ <td id="projectalign" style="padding-left: 0.5em;">
24
+ <div id="projectname">Static Value-Flow Analysis
25
+ </div>
26
+ </td>
27
+ </tr>
28
+ </tbody>
29
+ </table>
30
+ </div>
31
+ <!-- end header part -->
32
+ <!-- Generated by Doxygen 1.8.13 -->
33
+ <script type="text/javascript">
34
+ var searchBox = new SearchBox("searchBox", "search",false,'Search');
35
+ </script>
36
+ <script type="text/javascript" src="menudata.js"></script>
37
+ <script type="text/javascript" src="menu.js"></script>
38
+ <script type="text/javascript">
39
+ $(function() {
40
+ initMenu('',true,false,'search.php','Search');
41
+ $(document).ready(function() { init_search(); });
42
+ });
43
+ </script>
44
+ <div id="main-nav"></div>
45
+ <!-- window showing the filter options -->
46
+ <div id="MSearchSelectWindow"
47
+ onmouseover="return searchBox.OnSearchSelectShow()"
48
+ onmouseout="return searchBox.OnSearchSelectHide()"
49
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
50
+ </div>
51
+
52
+ <!-- iframe showing the search results (closed by default) -->
53
+ <div id="MSearchResultsWindow">
54
+ <iframe src="javascript:void(0)" frameborder="0"
55
+ name="MSearchResults" id="MSearchResults">
56
+ </iframe>
57
+ </div>
58
+
59
+ <div id="nav-path" class="navpath">
60
+ <ul>
61
+ <li class="navelem"><a class="el" href="namespaceSVF.html">SVF</a></li><li class="navelem"><a class="el" href="classSVF_1_1HybridData.html">HybridData</a></li> </ul>
62
+ </div>
63
+ </div><!-- top -->
64
+ <div class="header">
65
+ <div class="summary">
66
+ <a href="#nested-classes">Classes</a> &#124;
67
+ <a href="#pub-methods">Public Member Functions</a> &#124;
68
+ <a href="#pub-attribs">Public Attributes</a> &#124;
69
+ <a href="classSVF_1_1HybridData-members.html">List of all members</a> </div>
70
+ <div class="headertitle">
71
+ <div class="title">SVF::HybridData Class Reference</div> </div>
72
+ </div><!--header-->
73
+ <div class="contents">
74
+
75
+ <p><code>#include &lt;<a class="el" href="CFLData_8h_source.html">CFLData.h</a>&gt;</code></p>
76
+ <table class="memberdecls">
77
+ <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
78
+ Classes</h2></td></tr>
79
+ <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structSVF_1_1HybridData_1_1TreeNode.html">TreeNode</a></td></tr>
80
+ <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
81
+ </table><table class="memberdecls">
82
+ <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
83
+ Public Member Functions</h2></td></tr>
84
+ <tr class="memitem:a6300911be9cebefba2248afd9dce59ce"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1HybridData.html#a6300911be9cebefba2248afd9dce59ce">HybridData</a> ()</td></tr>
85
+ <tr class="separator:a6300911be9cebefba2248afd9dce59ce"><td class="memSeparator" colspan="2">&#160;</td></tr>
86
+ <tr class="memitem:a06a0f79963a5d9a330f030d3c93096f6"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1HybridData.html#a06a0f79963a5d9a330f030d3c93096f6">~HybridData</a> ()</td></tr>
87
+ <tr class="separator:a06a0f79963a5d9a330f030d3c93096f6"><td class="memSeparator" colspan="2">&#160;</td></tr>
88
+ <tr class="memitem:aa07399d09863d01ea05a0418846eeb7b"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1HybridData.html#aa07399d09863d01ea05a0418846eeb7b">hasInd</a> (<a class="el" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> src, <a class="el" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> dst)</td></tr>
89
+ <tr class="separator:aa07399d09863d01ea05a0418846eeb7b"><td class="memSeparator" colspan="2">&#160;</td></tr>
90
+ <tr class="memitem:a7ef9213832546a850c968d075db6264b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structSVF_1_1HybridData_1_1TreeNode.html">TreeNode</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1HybridData.html#a7ef9213832546a850c968d075db6264b">addInd</a> (<a class="el" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> src, <a class="el" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> dst)</td></tr>
91
+ <tr class="memdesc:a7ef9213832546a850c968d075db6264b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add a node dst to tree(src) <a href="#a7ef9213832546a850c968d075db6264b">More...</a><br /></td></tr>
92
+ <tr class="separator:a7ef9213832546a850c968d075db6264b"><td class="memSeparator" colspan="2">&#160;</td></tr>
93
+ <tr class="memitem:ab27e0428efc2db15a97238f2e17e9e73"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structSVF_1_1HybridData_1_1TreeNode.html">TreeNode</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1HybridData.html#ab27e0428efc2db15a97238f2e17e9e73">getNode</a> (<a class="el" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> src, <a class="el" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> dst)</td></tr>
94
+ <tr class="memdesc:ab27e0428efc2db15a97238f2e17e9e73"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the node dst in tree(src) <a href="#ab27e0428efc2db15a97238f2e17e9e73">More...</a><br /></td></tr>
95
+ <tr class="separator:ab27e0428efc2db15a97238f2e17e9e73"><td class="memSeparator" colspan="2">&#160;</td></tr>
96
+ <tr class="memitem:a6b88524881456cfa725a818bb6e227aa"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1HybridData.html#a6b88524881456cfa725a818bb6e227aa">insertEdge</a> (<a class="el" href="structSVF_1_1HybridData_1_1TreeNode.html">TreeNode</a> *u, <a class="el" href="structSVF_1_1HybridData_1_1TreeNode.html">TreeNode</a> *v)</td></tr>
97
+ <tr class="memdesc:a6b88524881456cfa725a818bb6e227aa"><td class="mdescLeft">&#160;</td><td class="mdescRight">add v into desc(x) as a child of u <a href="#a6b88524881456cfa725a818bb6e227aa">More...</a><br /></td></tr>
98
+ <tr class="separator:a6b88524881456cfa725a818bb6e227aa"><td class="memSeparator" colspan="2">&#160;</td></tr>
99
+ <tr class="memitem:aa77cded07aeb17c600c5d864694dd922"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1HybridData.html#aa77cded07aeb17c600c5d864694dd922">addArc</a> (<a class="el" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> src, <a class="el" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> dst)</td></tr>
100
+ <tr class="separator:aa77cded07aeb17c600c5d864694dd922"><td class="memSeparator" colspan="2">&#160;</td></tr>
101
+ <tr class="memitem:acb745344dc5018078823119856308cdb"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1HybridData.html#acb745344dc5018078823119856308cdb">meld</a> (<a class="el" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> x, <a class="el" href="structSVF_1_1HybridData_1_1TreeNode.html">TreeNode</a> *uNode, <a class="el" href="structSVF_1_1HybridData_1_1TreeNode.html">TreeNode</a> *vNode)</td></tr>
102
+ <tr class="separator:acb745344dc5018078823119856308cdb"><td class="memSeparator" colspan="2">&#160;</td></tr>
103
+ </table><table class="memberdecls">
104
+ <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
105
+ Public Attributes</h2></td></tr>
106
+ <tr class="memitem:abec2faddf70b046941f146976c8d05df"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map</a>&lt; <a class="el" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a>, std::unordered_map&lt; <a class="el" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a>, <a class="el" href="structSVF_1_1HybridData_1_1TreeNode.html">TreeNode</a> * &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1HybridData.html#abec2faddf70b046941f146976c8d05df">indMap</a></td></tr>
107
+ <tr class="separator:abec2faddf70b046941f146976c8d05df"><td class="memSeparator" colspan="2">&#160;</td></tr>
108
+ </table>
109
+ <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
110
+ <div class="textblock"><p>Hybrid graph representation for transitive relations </p>
111
+
112
+ <p class="definition">Definition at line <a class="el" href="CFLData_8h_source.html#l00214">214</a> of file <a class="el" href="CFLData_8h_source.html">CFLData.h</a>.</p>
113
+ </div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
114
+ <a id="a6300911be9cebefba2248afd9dce59ce"></a>
115
+ <h2 class="memtitle"><span class="permalink"><a href="#a6300911be9cebefba2248afd9dce59ce">&#9670;&nbsp;</a></span>HybridData()</h2>
116
+
117
+ <div class="memitem">
118
+ <div class="memproto">
119
+ <table class="mlabels">
120
+ <tr>
121
+ <td class="mlabels-left">
122
+ <table class="memname">
123
+ <tr>
124
+ <td class="memname">SVF::HybridData::HybridData </td>
125
+ <td>(</td>
126
+ <td class="paramname"></td><td>)</td>
127
+ <td></td>
128
+ </tr>
129
+ </table>
130
+ </td>
131
+ <td class="mlabels-right">
132
+ <span class="mlabels"><span class="mlabel">inline</span></span> </td>
133
+ </tr>
134
+ </table>
135
+ </div><div class="memdoc">
136
+
137
+ <p class="definition">Definition at line <a class="el" href="CFLData_8h_source.html#l00244">244</a> of file <a class="el" href="CFLData_8h_source.html">CFLData.h</a>.</p>
138
+ <div class="fragment"><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; {}</div></div><!-- fragment -->
139
+ </div>
140
+ </div>
141
+ <a id="a06a0f79963a5d9a330f030d3c93096f6"></a>
142
+ <h2 class="memtitle"><span class="permalink"><a href="#a06a0f79963a5d9a330f030d3c93096f6">&#9670;&nbsp;</a></span>~HybridData()</h2>
143
+
144
+ <div class="memitem">
145
+ <div class="memproto">
146
+ <table class="mlabels">
147
+ <tr>
148
+ <td class="mlabels-left">
149
+ <table class="memname">
150
+ <tr>
151
+ <td class="memname">SVF::HybridData::~HybridData </td>
152
+ <td>(</td>
153
+ <td class="paramname"></td><td>)</td>
154
+ <td></td>
155
+ </tr>
156
+ </table>
157
+ </td>
158
+ <td class="mlabels-right">
159
+ <span class="mlabels"><span class="mlabel">inline</span></span> </td>
160
+ </tr>
161
+ </table>
162
+ </div><div class="memdoc">
163
+
164
+ <p class="definition">Definition at line <a class="el" href="CFLData_8h_source.html#l00247">247</a> of file <a class="el" href="CFLData_8h_source.html">CFLData.h</a>.</p>
165
+ <div class="fragment"><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; {</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">auto</span> iter1: <a class="code" href="classSVF_1_1HybridData.html#abec2faddf70b046941f146976c8d05df">indMap</a>)</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; {</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">auto</span> iter2: iter1.second)</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; {</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; <span class="keyword">delete</span> iter2.second;</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; iter2.second = <a class="code" href="cJSON_8cpp.html#a1a05ede2ad100bf5de5dfa7ccdfa4397">NULL</a>;</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; }</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; }</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; }</div><div class="ttc" id="classSVF_1_1HybridData_html_abec2faddf70b046941f146976c8d05df"><div class="ttname"><a href="classSVF_1_1HybridData.html#abec2faddf70b046941f146976c8d05df">SVF::HybridData::indMap</a></div><div class="ttdeci">Map&lt; NodeID, std::unordered_map&lt; NodeID, TreeNode * &gt; &gt; indMap</div><div class="ttdef"><b>Definition:</b> <a href="CFLData_8h_source.html#l00242">CFLData.h:242</a></div></div>
166
+ <div class="ttc" id="cJSON_8cpp_html_a1a05ede2ad100bf5de5dfa7ccdfa4397"><div class="ttname"><a href="cJSON_8cpp.html#a1a05ede2ad100bf5de5dfa7ccdfa4397">NULL</a></div><div class="ttdeci">return NULL</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8cpp_source.html#l01173">cJSON.cpp:1173</a></div></div>
167
+ </div><!-- fragment -->
168
+ </div>
169
+ </div>
170
+ <h2 class="groupheader">Member Function Documentation</h2>
171
+ <a id="aa77cded07aeb17c600c5d864694dd922"></a>
172
+ <h2 class="memtitle"><span class="permalink"><a href="#aa77cded07aeb17c600c5d864694dd922">&#9670;&nbsp;</a></span>addArc()</h2>
173
+
174
+ <div class="memitem">
175
+ <div class="memproto">
176
+ <table class="mlabels">
177
+ <tr>
178
+ <td class="mlabels-left">
179
+ <table class="memname">
180
+ <tr>
181
+ <td class="memname">void SVF::HybridData::addArc </td>
182
+ <td>(</td>
183
+ <td class="paramtype"><a class="el" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a>&#160;</td>
184
+ <td class="paramname"><em>src</em>, </td>
185
+ </tr>
186
+ <tr>
187
+ <td class="paramkey"></td>
188
+ <td></td>
189
+ <td class="paramtype"><a class="el" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a>&#160;</td>
190
+ <td class="paramname"><em>dst</em>&#160;</td>
191
+ </tr>
192
+ <tr>
193
+ <td></td>
194
+ <td>)</td>
195
+ <td></td><td></td>
196
+ </tr>
197
+ </table>
198
+ </td>
199
+ <td class="mlabels-right">
200
+ <span class="mlabels"><span class="mlabel">inline</span></span> </td>
201
+ </tr>
202
+ </table>
203
+ </div><div class="memdoc">
204
+
205
+ <p class="definition">Definition at line <a class="el" href="CFLData_8h_source.html#l00288">288</a> of file <a class="el" href="CFLData_8h_source.html">CFLData.h</a>.</p>
206
+ <div class="fragment"><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; {</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; <span class="keywordflow">if</span> (!<a class="code" href="classSVF_1_1HybridData.html#aa07399d09863d01ea05a0418846eeb7b">hasInd</a>(src, dst))</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; {</div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">auto</span> iter: <a class="code" href="classSVF_1_1HybridData.html#abec2faddf70b046941f146976c8d05df">indMap</a>[src])</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; {</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; <a class="code" href="classSVF_1_1HybridData.html#acb745344dc5018078823119856308cdb">meld</a>(iter.first, <a class="code" href="classSVF_1_1HybridData.html#ab27e0428efc2db15a97238f2e17e9e73">getNode</a>(iter.first, src), <a class="code" href="classSVF_1_1HybridData.html#ab27e0428efc2db15a97238f2e17e9e73">getNode</a>(dst, dst));</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; }</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; }</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; }</div><div class="ttc" id="classSVF_1_1HybridData_html_acb745344dc5018078823119856308cdb"><div class="ttname"><a href="classSVF_1_1HybridData.html#acb745344dc5018078823119856308cdb">SVF::HybridData::meld</a></div><div class="ttdeci">void meld(NodeID x, TreeNode *uNode, TreeNode *vNode)</div><div class="ttdef"><b>Definition:</b> <a href="CFLData_8h_source.html#l00299">CFLData.h:299</a></div></div>
207
+ <div class="ttc" id="classSVF_1_1HybridData_html_abec2faddf70b046941f146976c8d05df"><div class="ttname"><a href="classSVF_1_1HybridData.html#abec2faddf70b046941f146976c8d05df">SVF::HybridData::indMap</a></div><div class="ttdeci">Map&lt; NodeID, std::unordered_map&lt; NodeID, TreeNode * &gt; &gt; indMap</div><div class="ttdef"><b>Definition:</b> <a href="CFLData_8h_source.html#l00242">CFLData.h:242</a></div></div>
208
+ <div class="ttc" id="classSVF_1_1HybridData_html_ab27e0428efc2db15a97238f2e17e9e73"><div class="ttname"><a href="classSVF_1_1HybridData.html#ab27e0428efc2db15a97238f2e17e9e73">SVF::HybridData::getNode</a></div><div class="ttdeci">TreeNode * getNode(NodeID src, NodeID dst)</div><div class="ttdoc">Get the node dst in tree(src) </div><div class="ttdef"><b>Definition:</b> <a href="CFLData_8h_source.html#l00277">CFLData.h:277</a></div></div>
209
+ <div class="ttc" id="classSVF_1_1HybridData_html_aa07399d09863d01ea05a0418846eeb7b"><div class="ttname"><a href="classSVF_1_1HybridData.html#aa07399d09863d01ea05a0418846eeb7b">SVF::HybridData::hasInd</a></div><div class="ttdeci">bool hasInd(NodeID src, NodeID dst)</div><div class="ttdef"><b>Definition:</b> <a href="CFLData_8h_source.html#l00259">CFLData.h:259</a></div></div>
210
+ </div><!-- fragment -->
211
+ </div>
212
+ </div>
213
+ <a id="a7ef9213832546a850c968d075db6264b"></a>
214
+ <h2 class="memtitle"><span class="permalink"><a href="#a7ef9213832546a850c968d075db6264b">&#9670;&nbsp;</a></span>addInd()</h2>
215
+
216
+ <div class="memitem">
217
+ <div class="memproto">
218
+ <table class="mlabels">
219
+ <tr>
220
+ <td class="mlabels-left">
221
+ <table class="memname">
222
+ <tr>
223
+ <td class="memname"><a class="el" href="structSVF_1_1HybridData_1_1TreeNode.html">TreeNode</a>* SVF::HybridData::addInd </td>
224
+ <td>(</td>
225
+ <td class="paramtype"><a class="el" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a>&#160;</td>
226
+ <td class="paramname"><em>src</em>, </td>
227
+ </tr>
228
+ <tr>
229
+ <td class="paramkey"></td>
230
+ <td></td>
231
+ <td class="paramtype"><a class="el" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a>&#160;</td>
232
+ <td class="paramname"><em>dst</em>&#160;</td>
233
+ </tr>
234
+ <tr>
235
+ <td></td>
236
+ <td>)</td>
237
+ <td></td><td></td>
238
+ </tr>
239
+ </table>
240
+ </td>
241
+ <td class="mlabels-right">
242
+ <span class="mlabels"><span class="mlabel">inline</span></span> </td>
243
+ </tr>
244
+ </table>
245
+ </div><div class="memdoc">
246
+
247
+ <p>Add a node dst to tree(src) </p>
248
+
249
+ <p class="definition">Definition at line <a class="el" href="CFLData_8h_source.html#l00268">268</a> of file <a class="el" href="CFLData_8h_source.html">CFLData.h</a>.</p>
250
+ <div class="fragment"><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; {</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; <span class="keyword">auto</span> resIns = <a class="code" href="classSVF_1_1HybridData.html#abec2faddf70b046941f146976c8d05df">indMap</a>[dst].insert(std::make_pair(src, <span class="keyword">new</span> TreeNode(dst)));</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; <span class="keywordflow">if</span> (resIns.second)</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; <span class="keywordflow">return</span> resIns.first-&gt;second;</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; }</div><div class="ttc" id="classSVF_1_1HybridData_html_abec2faddf70b046941f146976c8d05df"><div class="ttname"><a href="classSVF_1_1HybridData.html#abec2faddf70b046941f146976c8d05df">SVF::HybridData::indMap</a></div><div class="ttdeci">Map&lt; NodeID, std::unordered_map&lt; NodeID, TreeNode * &gt; &gt; indMap</div><div class="ttdef"><b>Definition:</b> <a href="CFLData_8h_source.html#l00242">CFLData.h:242</a></div></div>
251
+ </div><!-- fragment -->
252
+ </div>
253
+ </div>
254
+ <a id="ab27e0428efc2db15a97238f2e17e9e73"></a>
255
+ <h2 class="memtitle"><span class="permalink"><a href="#ab27e0428efc2db15a97238f2e17e9e73">&#9670;&nbsp;</a></span>getNode()</h2>
256
+
257
+ <div class="memitem">
258
+ <div class="memproto">
259
+ <table class="mlabels">
260
+ <tr>
261
+ <td class="mlabels-left">
262
+ <table class="memname">
263
+ <tr>
264
+ <td class="memname"><a class="el" href="structSVF_1_1HybridData_1_1TreeNode.html">TreeNode</a>* SVF::HybridData::getNode </td>
265
+ <td>(</td>
266
+ <td class="paramtype"><a class="el" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a>&#160;</td>
267
+ <td class="paramname"><em>src</em>, </td>
268
+ </tr>
269
+ <tr>
270
+ <td class="paramkey"></td>
271
+ <td></td>
272
+ <td class="paramtype"><a class="el" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a>&#160;</td>
273
+ <td class="paramname"><em>dst</em>&#160;</td>
274
+ </tr>
275
+ <tr>
276
+ <td></td>
277
+ <td>)</td>
278
+ <td></td><td></td>
279
+ </tr>
280
+ </table>
281
+ </td>
282
+ <td class="mlabels-right">
283
+ <span class="mlabels"><span class="mlabel">inline</span></span> </td>
284
+ </tr>
285
+ </table>
286
+ </div><div class="memdoc">
287
+
288
+ <p>Get the node dst in tree(src) </p>
289
+
290
+ <p class="definition">Definition at line <a class="el" href="CFLData_8h_source.html#l00277">277</a> of file <a class="el" href="CFLData_8h_source.html">CFLData.h</a>.</p>
291
+ <div class="fragment"><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; {</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1HybridData.html#abec2faddf70b046941f146976c8d05df">indMap</a>[dst][src];</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; }</div><div class="ttc" id="classSVF_1_1HybridData_html_abec2faddf70b046941f146976c8d05df"><div class="ttname"><a href="classSVF_1_1HybridData.html#abec2faddf70b046941f146976c8d05df">SVF::HybridData::indMap</a></div><div class="ttdeci">Map&lt; NodeID, std::unordered_map&lt; NodeID, TreeNode * &gt; &gt; indMap</div><div class="ttdef"><b>Definition:</b> <a href="CFLData_8h_source.html#l00242">CFLData.h:242</a></div></div>
292
+ </div><!-- fragment -->
293
+ </div>
294
+ </div>
295
+ <a id="aa07399d09863d01ea05a0418846eeb7b"></a>
296
+ <h2 class="memtitle"><span class="permalink"><a href="#aa07399d09863d01ea05a0418846eeb7b">&#9670;&nbsp;</a></span>hasInd()</h2>
297
+
298
+ <div class="memitem">
299
+ <div class="memproto">
300
+ <table class="mlabels">
301
+ <tr>
302
+ <td class="mlabels-left">
303
+ <table class="memname">
304
+ <tr>
305
+ <td class="memname">bool SVF::HybridData::hasInd </td>
306
+ <td>(</td>
307
+ <td class="paramtype"><a class="el" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a>&#160;</td>
308
+ <td class="paramname"><em>src</em>, </td>
309
+ </tr>
310
+ <tr>
311
+ <td class="paramkey"></td>
312
+ <td></td>
313
+ <td class="paramtype"><a class="el" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a>&#160;</td>
314
+ <td class="paramname"><em>dst</em>&#160;</td>
315
+ </tr>
316
+ <tr>
317
+ <td></td>
318
+ <td>)</td>
319
+ <td></td><td></td>
320
+ </tr>
321
+ </table>
322
+ </td>
323
+ <td class="mlabels-right">
324
+ <span class="mlabels"><span class="mlabel">inline</span></span> </td>
325
+ </tr>
326
+ </table>
327
+ </div><div class="memdoc">
328
+
329
+ <p class="definition">Definition at line <a class="el" href="CFLData_8h_source.html#l00259">259</a> of file <a class="el" href="CFLData_8h_source.html">CFLData.h</a>.</p>
330
+ <div class="fragment"><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; {</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; <span class="keyword">auto</span> it = <a class="code" href="classSVF_1_1HybridData.html#abec2faddf70b046941f146976c8d05df">indMap</a>.find(dst);</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; <span class="keywordflow">if</span> (it == <a class="code" href="classSVF_1_1HybridData.html#abec2faddf70b046941f146976c8d05df">indMap</a>.end())</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; <span class="keywordflow">return</span> (it-&gt;second.find(src) != it-&gt;second.end());</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; }</div><div class="ttc" id="classSVF_1_1HybridData_html_abec2faddf70b046941f146976c8d05df"><div class="ttname"><a href="classSVF_1_1HybridData.html#abec2faddf70b046941f146976c8d05df">SVF::HybridData::indMap</a></div><div class="ttdeci">Map&lt; NodeID, std::unordered_map&lt; NodeID, TreeNode * &gt; &gt; indMap</div><div class="ttdef"><b>Definition:</b> <a href="CFLData_8h_source.html#l00242">CFLData.h:242</a></div></div>
331
+ </div><!-- fragment -->
332
+ </div>
333
+ </div>
334
+ <a id="a6b88524881456cfa725a818bb6e227aa"></a>
335
+ <h2 class="memtitle"><span class="permalink"><a href="#a6b88524881456cfa725a818bb6e227aa">&#9670;&nbsp;</a></span>insertEdge()</h2>
336
+
337
+ <div class="memitem">
338
+ <div class="memproto">
339
+ <table class="mlabels">
340
+ <tr>
341
+ <td class="mlabels-left">
342
+ <table class="memname">
343
+ <tr>
344
+ <td class="memname">void SVF::HybridData::insertEdge </td>
345
+ <td>(</td>
346
+ <td class="paramtype"><a class="el" href="structSVF_1_1HybridData_1_1TreeNode.html">TreeNode</a> *&#160;</td>
347
+ <td class="paramname"><em>u</em>, </td>
348
+ </tr>
349
+ <tr>
350
+ <td class="paramkey"></td>
351
+ <td></td>
352
+ <td class="paramtype"><a class="el" href="structSVF_1_1HybridData_1_1TreeNode.html">TreeNode</a> *&#160;</td>
353
+ <td class="paramname"><em>v</em>&#160;</td>
354
+ </tr>
355
+ <tr>
356
+ <td></td>
357
+ <td>)</td>
358
+ <td></td><td></td>
359
+ </tr>
360
+ </table>
361
+ </td>
362
+ <td class="mlabels-right">
363
+ <span class="mlabels"><span class="mlabel">inline</span></span> </td>
364
+ </tr>
365
+ </table>
366
+ </div><div class="memdoc">
367
+
368
+ <p>add v into desc(x) as a child of u </p>
369
+
370
+ <p class="definition">Definition at line <a class="el" href="CFLData_8h_source.html#l00283">283</a> of file <a class="el" href="CFLData_8h_source.html">CFLData.h</a>.</p>
371
+ <div class="fragment"><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; {</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; u-&gt;children.insert(v);</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; }</div></div><!-- fragment -->
372
+ </div>
373
+ </div>
374
+ <a id="acb745344dc5018078823119856308cdb"></a>
375
+ <h2 class="memtitle"><span class="permalink"><a href="#acb745344dc5018078823119856308cdb">&#9670;&nbsp;</a></span>meld()</h2>
376
+
377
+ <div class="memitem">
378
+ <div class="memproto">
379
+ <table class="mlabels">
380
+ <tr>
381
+ <td class="mlabels-left">
382
+ <table class="memname">
383
+ <tr>
384
+ <td class="memname">void SVF::HybridData::meld </td>
385
+ <td>(</td>
386
+ <td class="paramtype"><a class="el" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a>&#160;</td>
387
+ <td class="paramname"><em>x</em>, </td>
388
+ </tr>
389
+ <tr>
390
+ <td class="paramkey"></td>
391
+ <td></td>
392
+ <td class="paramtype"><a class="el" href="structSVF_1_1HybridData_1_1TreeNode.html">TreeNode</a> *&#160;</td>
393
+ <td class="paramname"><em>uNode</em>, </td>
394
+ </tr>
395
+ <tr>
396
+ <td class="paramkey"></td>
397
+ <td></td>
398
+ <td class="paramtype"><a class="el" href="structSVF_1_1HybridData_1_1TreeNode.html">TreeNode</a> *&#160;</td>
399
+ <td class="paramname"><em>vNode</em>&#160;</td>
400
+ </tr>
401
+ <tr>
402
+ <td></td>
403
+ <td>)</td>
404
+ <td></td><td></td>
405
+ </tr>
406
+ </table>
407
+ </td>
408
+ <td class="mlabels-right">
409
+ <span class="mlabels"><span class="mlabel">inline</span></span> </td>
410
+ </tr>
411
+ </table>
412
+ </div><div class="memdoc">
413
+
414
+ <p class="definition">Definition at line <a class="el" href="CFLData_8h_source.html#l00299">299</a> of file <a class="el" href="CFLData_8h_source.html">CFLData.h</a>.</p>
415
+ <div class="fragment"><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; {</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; TreeNode* newVNode = <a class="code" href="classSVF_1_1HybridData.html#a7ef9213832546a850c968d075db6264b">addInd</a>(x, vNode-&gt;id);</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; <span class="keywordflow">if</span> (!newVNode)</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; <span class="keywordflow">return</span>;</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160;</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; <a class="code" href="classSVF_1_1HybridData.html#a6b88524881456cfa725a818bb6e227aa">insertEdge</a>(uNode, newVNode);</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; <span class="keywordflow">for</span> (TreeNode* vChild: vNode-&gt;children)</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; {</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; <a class="code" href="classSVF_1_1HybridData.html#acb745344dc5018078823119856308cdb">meld</a>(x, newVNode, vChild);</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; }</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; }</div><div class="ttc" id="classSVF_1_1HybridData_html_a7ef9213832546a850c968d075db6264b"><div class="ttname"><a href="classSVF_1_1HybridData.html#a7ef9213832546a850c968d075db6264b">SVF::HybridData::addInd</a></div><div class="ttdeci">TreeNode * addInd(NodeID src, NodeID dst)</div><div class="ttdoc">Add a node dst to tree(src) </div><div class="ttdef"><b>Definition:</b> <a href="CFLData_8h_source.html#l00268">CFLData.h:268</a></div></div>
416
+ <div class="ttc" id="classSVF_1_1HybridData_html_a6b88524881456cfa725a818bb6e227aa"><div class="ttname"><a href="classSVF_1_1HybridData.html#a6b88524881456cfa725a818bb6e227aa">SVF::HybridData::insertEdge</a></div><div class="ttdeci">void insertEdge(TreeNode *u, TreeNode *v)</div><div class="ttdoc">add v into desc(x) as a child of u </div><div class="ttdef"><b>Definition:</b> <a href="CFLData_8h_source.html#l00283">CFLData.h:283</a></div></div>
417
+ <div class="ttc" id="classSVF_1_1HybridData_html_acb745344dc5018078823119856308cdb"><div class="ttname"><a href="classSVF_1_1HybridData.html#acb745344dc5018078823119856308cdb">SVF::HybridData::meld</a></div><div class="ttdeci">void meld(NodeID x, TreeNode *uNode, TreeNode *vNode)</div><div class="ttdef"><b>Definition:</b> <a href="CFLData_8h_source.html#l00299">CFLData.h:299</a></div></div>
418
+ </div><!-- fragment -->
419
+ </div>
420
+ </div>
421
+ <h2 class="groupheader">Member Data Documentation</h2>
422
+ <a id="abec2faddf70b046941f146976c8d05df"></a>
423
+ <h2 class="memtitle"><span class="permalink"><a href="#abec2faddf70b046941f146976c8d05df">&#9670;&nbsp;</a></span>indMap</h2>
424
+
425
+ <div class="memitem">
426
+ <div class="memproto">
427
+ <table class="memname">
428
+ <tr>
429
+ <td class="memname"><a class="el" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map</a>&lt;<a class="el" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a>, std::unordered_map&lt;<a class="el" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a>, <a class="el" href="structSVF_1_1HybridData_1_1TreeNode.html">TreeNode</a>*&gt; &gt; SVF::HybridData::indMap</td>
430
+ </tr>
431
+ </table>
432
+ </div><div class="memdoc">
433
+
434
+ <p class="definition">Definition at line <a class="el" href="CFLData_8h_source.html#l00242">242</a> of file <a class="el" href="CFLData_8h_source.html">CFLData.h</a>.</p>
435
+
436
+ </div>
437
+ </div>
438
+ <hr/>The documentation for this class was generated from the following file:<ul>
439
+ <li>/home/runner/work/SVF/SVF/include/CFL/<a class="el" href="CFLData_8h_source.html">CFLData.h</a></li>
440
+ </ul>
441
+ </div><!-- contents -->
442
+ <!-- start footer part -->
443
+ <hr class="footer"/><address class="footer"><small>
444
+ Generated by &#160;<a href="http://www.doxygen.org/index.html">
445
+ <img class="footer" src="doxygen.png" alt="doxygen"/>
446
+ </a> 1.8.13
447
+ </small></address>
448
+ </body>
449
+ </html>
@@ -1890,7 +1890,7 @@ Additional Inherited Members</h2></td></tr>
1890
1890
  <p>Remove callBlockNode to retBlockNode intraICFGEdge since we found at least one inter procedural edge </p>
1891
1891
 
1892
1892
  <p class="definition">Definition at line <a class="el" href="ICFG_8cpp_source.html#l00458">458</a> of file <a class="el" href="ICFG_8cpp_source.html">ICFG.cpp</a>.</p>
1893
- <div class="fragment"><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; PTACallGraph::CallEdgeMap::const_iterator iter = callgraph-&gt;<a class="code" href="classSVF_1_1PTACallGraph.html#ad49fa2a288945f6910deb11acdf6a42d">getIndCallMap</a>().begin();</div><div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160; PTACallGraph::CallEdgeMap::const_iterator eiter = callgraph-&gt;<a class="code" href="classSVF_1_1PTACallGraph.html#ad49fa2a288945f6910deb11acdf6a42d">getIndCallMap</a>().end();</div><div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160; <span class="keywordflow">for</span> (; iter != eiter; iter++)</div><div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160; {</div><div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* callBlock = iter-&gt;first;</div><div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFInstruction.html">SVFInstruction</a>* cs = callBlock-&gt;<a class="code" href="classSVF_1_1CallICFGNode.html#a90fd0b8e44fba1a7eb76d15bce085d66">getCallSite</a>();</div><div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160; assert(callBlock-&gt;<a class="code" href="classSVF_1_1CallICFGNode.html#aa11226a2e4fa6a7b1d78006cc8ca0518">isIndirectCall</a>() &amp;&amp; <span class="stringliteral">&quot;this is not an indirect call?&quot;</span>);</div><div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1PTACallGraph.html#a5f5a5ec7e707a21994d301cc07d32a5a">PTACallGraph::FunctionSet</a> &amp; functions = iter-&gt;second;</div><div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160; <span class="keywordflow">for</span> (PTACallGraph::FunctionSet::const_iterator func_iter = functions.begin(); func_iter != functions.end(); func_iter++)</div><div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160; {</div><div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* callee = *func_iter;</div><div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160; <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* callBlockNode = <a class="code" href="classSVF_1_1ICFG.html#aa41516cdd2be5066adf22798a4fe2213">getCallICFGNode</a>(cs);</div><div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160; <a class="code" href="classSVF_1_1RetICFGNode.html">RetICFGNode</a>* retBlockNode = <a class="code" href="classSVF_1_1ICFG.html#a881fe977f3a6fde223bd786121e35fcf">getRetICFGNode</a>(cs);</div><div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF_1_1SVFUtil.html#a22ef185e767ff76c098e75126c885400">isExtCall</a>(callee))</div><div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160; <a class="code" href="classSVF_1_1ICFG.html#adafd8bbb91507a9a78a3f16305812afc">addIntraEdge</a>(callBlockNode, retBlockNode);</div><div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160; {</div><div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160; <a class="code" href="classSVF_1_1FunEntryICFGNode.html">FunEntryICFGNode</a>* calleeEntryNode = <a class="code" href="classSVF_1_1ICFG.html#acc261924103bd0c357acd3acfa6cf38a">getFunEntryBlock</a>(callee);</div><div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160; <a class="code" href="classSVF_1_1FunExitICFGNode.html">FunExitICFGNode</a>* calleeExitNode = <a class="code" href="classSVF_1_1ICFG.html#a22d7f37a0cb2df90f73c1f2e3eaa71c6">getFunExitBlock</a>(callee);</div><div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1ICFGEdge.html">ICFGEdge</a>* callEdge = <a class="code" href="classSVF_1_1ICFG.html#a2ad6c1e49cc847df18342cbbe6224863">addCallEdge</a>(callBlockNode, calleeEntryNode, cs))</div><div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160; {</div><div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a> *stmt : callBlockNode-&gt;<a class="code" href="classSVF_1_1ICFGNode.html#a6c68f52dd90728073fb79141df9b0661">getSVFStmts</a>())</div><div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160; {</div><div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160; <span class="keywordflow">if</span>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallPE.html">CallPE</a> *callPE = SVFUtil::dyn_cast&lt;CallPE&gt;(stmt))</div><div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160; {</div><div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160; <span class="keywordflow">if</span>(callPE-&gt;getFunEntryICFGNode() == calleeEntryNode)</div><div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160; SVFUtil::cast&lt;CallCFGEdge&gt;(callEdge)-&gt;addCallPE(callPE);</div><div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160; }</div><div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160; }</div><div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160; }</div><div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1ICFGEdge.html">ICFGEdge</a>* retEdge = <a class="code" href="classSVF_1_1ICFG.html#a8a5e7571e804702a2d0af7d420f21b33">addRetEdge</a>(calleeExitNode, retBlockNode, cs))</div><div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160; {</div><div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a> *stmt : retBlockNode-&gt;<a class="code" href="classSVF_1_1ICFGNode.html#a6c68f52dd90728073fb79141df9b0661">getSVFStmts</a>())</div><div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160; {</div><div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160; <span class="keywordflow">if</span>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1RetPE.html">RetPE</a> *retPE = SVFUtil::dyn_cast&lt;RetPE&gt;(stmt))</div><div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160; {</div><div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160; <span class="keywordflow">if</span>(retPE-&gt;getFunExitICFGNode() == calleeExitNode)</div><div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160; SVFUtil::cast&lt;RetCFGEdge&gt;(retEdge)-&gt;addRetPE(retPE);</div><div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160; }</div><div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160; }</div><div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160; }</div><div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160;</div><div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1ICFGEdge.html">ICFGEdge</a>* edge = <a class="code" href="classSVF_1_1ICFG.html#aa662baae5682ef6ec5084fa4147c9709">hasIntraICFGEdge</a>(callBlockNode,retBlockNode, <a class="code" href="classSVF_1_1ICFGEdge.html#a395c34788e98950bc43e8cb44313e429acb8fba7c61b08ec952f1b65643d7a84b">ICFGEdge::IntraCF</a>))</div><div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160; <a class="code" href="classSVF_1_1ICFG.html#a534625b10673efe5b0f344bfebf9b3cf">removeICFGEdge</a>(edge);</div><div class="line"><a name="l00506"></a><span class="lineno"> 506</span>&#160; }</div><div class="line"><a name="l00507"></a><span class="lineno"> 507</span>&#160;</div><div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160; }</div><div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160; }</div><div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160; <span class="comment">// dump ICFG</span></div><div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Options.html#aea29a835c54fab800117e57de00e0b1e">Options::DumpICFG</a>)</div><div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160; {</div><div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160; <a class="code" href="classSVF_1_1ICFG.html#a999956500bbd605326531480546db9ba">dump</a>(<span class="stringliteral">&quot;icfg_final&quot;</span>);</div><div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160; }</div><div class="line"><a name="l00515"></a><span class="lineno"> 515</span>&#160;}</div><div class="ttc" id="classSVF_1_1ICFGEdge_html"><div class="ttname"><a href="classSVF_1_1ICFGEdge.html">SVF::ICFGEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGEdge_8h_source.html#l00044">ICFGEdge.h:44</a></div></div>
1893
+ <div class="fragment"><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; PTACallGraph::CallEdgeMap::const_iterator iter = callgraph-&gt;<a class="code" href="classSVF_1_1PTACallGraph.html#ad49fa2a288945f6910deb11acdf6a42d">getIndCallMap</a>().begin();</div><div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160; PTACallGraph::CallEdgeMap::const_iterator eiter = callgraph-&gt;<a class="code" href="classSVF_1_1PTACallGraph.html#ad49fa2a288945f6910deb11acdf6a42d">getIndCallMap</a>().end();</div><div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160; <span class="keywordflow">for</span> (; iter != eiter; iter++)</div><div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160; {</div><div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* callBlock = iter-&gt;first;</div><div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFInstruction.html">SVFInstruction</a>* cs = callBlock-&gt;<a class="code" href="classSVF_1_1CallICFGNode.html#a90fd0b8e44fba1a7eb76d15bce085d66">getCallSite</a>();</div><div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160; assert(callBlock-&gt;<a class="code" href="classSVF_1_1CallICFGNode.html#aa11226a2e4fa6a7b1d78006cc8ca0518">isIndirectCall</a>() &amp;&amp; <span class="stringliteral">&quot;this is not an indirect call?&quot;</span>);</div><div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1PTACallGraph.html#a5f5a5ec7e707a21994d301cc07d32a5a">PTACallGraph::FunctionSet</a> &amp; functions = iter-&gt;second;</div><div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160; <span class="keywordflow">for</span> (PTACallGraph::FunctionSet::const_iterator func_iter = functions.begin(); func_iter != functions.end(); func_iter++)</div><div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160; {</div><div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* callee = *func_iter;</div><div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160; <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* callBlockNode = <a class="code" href="classSVF_1_1ICFG.html#aa41516cdd2be5066adf22798a4fe2213">getCallICFGNode</a>(cs);</div><div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160; <a class="code" href="classSVF_1_1RetICFGNode.html">RetICFGNode</a>* retBlockNode = <a class="code" href="classSVF_1_1ICFG.html#a881fe977f3a6fde223bd786121e35fcf">getRetICFGNode</a>(cs);</div><div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF_1_1SVFUtil.html#a22ef185e767ff76c098e75126c885400">isExtCall</a>(callee))</div><div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160; <a class="code" href="classSVF_1_1ICFG.html#adafd8bbb91507a9a78a3f16305812afc">addIntraEdge</a>(callBlockNode, retBlockNode);</div><div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160; {</div><div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160; <a class="code" href="classSVF_1_1FunEntryICFGNode.html">FunEntryICFGNode</a>* calleeEntryNode = <a class="code" href="classSVF_1_1ICFG.html#acc261924103bd0c357acd3acfa6cf38a">getFunEntryBlock</a>(callee);</div><div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160; <a class="code" href="classSVF_1_1FunExitICFGNode.html">FunExitICFGNode</a>* calleeExitNode = <a class="code" href="classSVF_1_1ICFG.html#a22d7f37a0cb2df90f73c1f2e3eaa71c6">getFunExitBlock</a>(callee);</div><div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1ICFGEdge.html">ICFGEdge</a>* callEdge = <a class="code" href="classSVF_1_1ICFG.html#a2ad6c1e49cc847df18342cbbe6224863">addCallEdge</a>(callBlockNode, calleeEntryNode, cs))</div><div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160; {</div><div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a> *stmt : callBlockNode-&gt;<a class="code" href="classSVF_1_1ICFGNode.html#a6c68f52dd90728073fb79141df9b0661">getSVFStmts</a>())</div><div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160; {</div><div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160; <span class="keywordflow">if</span>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallPE.html">CallPE</a> *callPE = SVFUtil::dyn_cast&lt;CallPE&gt;(stmt))</div><div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160; {</div><div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160; <span class="keywordflow">if</span>(callPE-&gt;getFunEntryICFGNode() == calleeEntryNode)</div><div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160; SVFUtil::cast&lt;CallCFGEdge&gt;(callEdge)-&gt;addCallPE(callPE);</div><div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160; }</div><div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160; }</div><div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160; }</div><div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1ICFGEdge.html">ICFGEdge</a>* retEdge = <a class="code" href="classSVF_1_1ICFG.html#a8a5e7571e804702a2d0af7d420f21b33">addRetEdge</a>(calleeExitNode, retBlockNode, cs))</div><div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160; {</div><div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a> *stmt : retBlockNode-&gt;<a class="code" href="classSVF_1_1ICFGNode.html#a6c68f52dd90728073fb79141df9b0661">getSVFStmts</a>())</div><div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160; {</div><div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160; <span class="keywordflow">if</span>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1RetPE.html">RetPE</a> *retPE = SVFUtil::dyn_cast&lt;RetPE&gt;(stmt))</div><div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160; {</div><div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160; <span class="keywordflow">if</span>(retPE-&gt;getFunExitICFGNode() == calleeExitNode)</div><div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160; SVFUtil::cast&lt;RetCFGEdge&gt;(retEdge)-&gt;addRetPE(retPE);</div><div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160; }</div><div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160; }</div><div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160; }</div><div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160;</div><div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1ICFGEdge.html">ICFGEdge</a>* edge = <a class="code" href="classSVF_1_1ICFG.html#aa662baae5682ef6ec5084fa4147c9709">hasIntraICFGEdge</a>(callBlockNode,retBlockNode, <a class="code" href="classSVF_1_1ICFGEdge.html#a395c34788e98950bc43e8cb44313e429acb8fba7c61b08ec952f1b65643d7a84b">ICFGEdge::IntraCF</a>))</div><div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160; <a class="code" href="classSVF_1_1ICFG.html#a534625b10673efe5b0f344bfebf9b3cf">removeICFGEdge</a>(edge);</div><div class="line"><a name="l00506"></a><span class="lineno"> 506</span>&#160; }</div><div class="line"><a name="l00507"></a><span class="lineno"> 507</span>&#160;</div><div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160; }</div><div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160; }</div><div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160; <span class="comment">// dump ICFG</span></div><div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Options.html#ae7ccfb3d1308e205e5014849dcc43d9a">Options::DumpICFG</a>())</div><div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160; {</div><div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160; <a class="code" href="classSVF_1_1ICFG.html#a999956500bbd605326531480546db9ba">dump</a>(<span class="stringliteral">&quot;icfg_final&quot;</span>);</div><div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160; }</div><div class="line"><a name="l00515"></a><span class="lineno"> 515</span>&#160;}</div><div class="ttc" id="classSVF_1_1ICFGEdge_html"><div class="ttname"><a href="classSVF_1_1ICFGEdge.html">SVF::ICFGEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGEdge_8h_source.html#l00044">ICFGEdge.h:44</a></div></div>
1894
1894
  <div class="ttc" id="classSVF_1_1SVFInstruction_html"><div class="ttname"><a href="classSVF_1_1SVFInstruction.html">SVF::SVFInstruction</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00570">SVFValue.h:570</a></div></div>
1895
1895
  <div class="ttc" id="classSVF_1_1RetPE_html"><div class="ttname"><a href="classSVF_1_1RetPE.html">SVF::RetPE</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00545">SVFStatements.h:545</a></div></div>
1896
1896
  <div class="ttc" id="classSVF_1_1PTACallGraph_html_ad49fa2a288945f6910deb11acdf6a42d"><div class="ttname"><a href="classSVF_1_1PTACallGraph.html#ad49fa2a288945f6910deb11acdf6a42d">SVF::PTACallGraph::getIndCallMap</a></div><div class="ttdeci">CallEdgeMap &amp; getIndCallMap()</div><div class="ttdoc">Get callees from an indirect callsite. </div><div class="ttdef"><b>Definition:</b> <a href="PTACallGraph_8h_source.html#l00280">PTACallGraph.h:280</a></div></div>
@@ -1907,11 +1907,11 @@ Additional Inherited Members</h2></td></tr>
1907
1907
  <div class="ttc" id="classSVF_1_1ICFG_html_a534625b10673efe5b0f344bfebf9b3cf"><div class="ttname"><a href="classSVF_1_1ICFG.html#a534625b10673efe5b0f344bfebf9b3cf">SVF::ICFG::removeICFGEdge</a></div><div class="ttdeci">void removeICFGEdge(ICFGEdge *edge)</div><div class="ttdoc">Remove a SVFG edge. </div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00146">ICFG.h:146</a></div></div>
1908
1908
  <div class="ttc" id="classSVF_1_1CallICFGNode_html_aa11226a2e4fa6a7b1d78006cc8ca0518"><div class="ttname"><a href="classSVF_1_1CallICFGNode.html#aa11226a2e4fa6a7b1d78006cc8ca0518">SVF::CallICFGNode::isIndirectCall</a></div><div class="ttdeci">bool isIndirectCall() const</div><div class="ttdoc">Return true if this is an indirect call. </div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00411">ICFGNode.h:411</a></div></div>
1909
1909
  <div class="ttc" id="classSVF_1_1ICFGEdge_html_a395c34788e98950bc43e8cb44313e429acb8fba7c61b08ec952f1b65643d7a84b"><div class="ttname"><a href="classSVF_1_1ICFGEdge.html#a395c34788e98950bc43e8cb44313e429acb8fba7c61b08ec952f1b65643d7a84b">SVF::ICFGEdge::IntraCF</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGEdge_8h_source.html#l00053">ICFGEdge.h:53</a></div></div>
1910
+ <div class="ttc" id="classSVF_1_1Options_html_ae7ccfb3d1308e205e5014849dcc43d9a"><div class="ttname"><a href="classSVF_1_1Options.html#ae7ccfb3d1308e205e5014849dcc43d9a">SVF::Options::DumpICFG</a></div><div class="ttdeci">static const Option&lt; bool &gt; DumpICFG</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00136">Options.h:136</a></div></div>
1910
1911
  <div class="ttc" id="classSVF_1_1ICFG_html_a22d7f37a0cb2df90f73c1f2e3eaa71c6"><div class="ttname"><a href="classSVF_1_1ICFG.html#a22d7f37a0cb2df90f73c1f2e3eaa71c6">SVF::ICFG::getFunExitBlock</a></div><div class="ttdeci">FunExitICFGNode * getFunExitBlock(const SVFFunction *fun)</div><div class="ttdoc">Get/Add a function exit node. </div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00255">ICFG.h:255</a></div></div>
1911
1912
  <div class="ttc" id="classSVF_1_1ICFG_html_a999956500bbd605326531480546db9ba"><div class="ttname"><a href="classSVF_1_1ICFG.html#a999956500bbd605326531480546db9ba">SVF::ICFG::dump</a></div><div class="ttdeci">void dump(const std::string &amp;file, bool simple=false)</div><div class="ttdoc">Dump graph into dot file. </div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#l00442">ICFG.cpp:442</a></div></div>
1912
1913
  <div class="ttc" id="classSVF_1_1ICFG_html_a8a5e7571e804702a2d0af7d420f21b33"><div class="ttname"><a href="classSVF_1_1ICFG.html#a8a5e7571e804702a2d0af7d420f21b33">SVF::ICFG::addRetEdge</a></div><div class="ttdeci">ICFGEdge * addRetEdge(ICFGNode *srcNode, ICFGNode *dstNode, const SVFInstruction *cs)</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#l00423">ICFG.cpp:423</a></div></div>
1913
1914
  <div class="ttc" id="classSVF_1_1CallICFGNode_html"><div class="ttname"><a href="classSVF_1_1CallICFGNode.html">SVF::CallICFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00363">ICFGNode.h:363</a></div></div>
1914
- <div class="ttc" id="classSVF_1_1Options_html_aea29a835c54fab800117e57de00e0b1e"><div class="ttname"><a href="classSVF_1_1Options.html#aea29a835c54fab800117e57de00e0b1e">SVF::Options::DumpICFG</a></div><div class="ttdeci">static const llvm::cl::opt&lt; bool &gt; DumpICFG</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00136">Options.h:136</a></div></div>
1915
1915
  <div class="ttc" id="classSVF_1_1ICFG_html_aa662baae5682ef6ec5084fa4147c9709"><div class="ttname"><a href="classSVF_1_1ICFG.html#aa662baae5682ef6ec5084fa4147c9709">SVF::ICFG::hasIntraICFGEdge</a></div><div class="ttdeci">ICFGEdge * hasIntraICFGEdge(ICFGNode *src, ICFGNode *dst, ICFGEdge::ICFGEdgeK kind)</div><div class="ttdoc">Whether we has a SVFG edge. </div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#l00290">ICFG.cpp:290</a></div></div>
1916
1916
  <div class="ttc" id="classSVF_1_1FunExitICFGNode_html"><div class="ttname"><a href="classSVF_1_1FunExitICFGNode.html">SVF::FunExitICFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00308">ICFGNode.h:308</a></div></div>
1917
1917
  <div class="ttc" id="classSVF_1_1ICFGNode_html_a6c68f52dd90728073fb79141df9b0661"><div class="ttname"><a href="classSVF_1_1ICFGNode.html#a6c68f52dd90728073fb79141df9b0661">SVF::ICFGNode::getSVFStmts</a></div><div class="ttdeci">const SVFStmtList &amp; getSVFStmts() const</div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00121">ICFGNode.h:121</a></div></div>