svf-tools 1.0.351 → 1.0.352

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 (280) hide show
  1. package/SVF-doxygen/html/html/AndersenSFR_8cpp_source.html +2 -2
  2. package/SVF-doxygen/html/html/AndersenStat_8cpp_source.html +3 -3
  3. package/SVF-doxygen/html/html/Andersen_8cpp_source.html +2 -2
  4. package/SVF-doxygen/html/html/Andersen_8h_source.html +1 -1
  5. package/SVF-doxygen/html/html/CSC_8cpp_source.html +2 -2
  6. package/SVF-doxygen/html/html/ConsGEdge_8h_source.html +2 -2
  7. package/SVF-doxygen/html/html/ConsGNode_8h_source.html +5 -5
  8. package/SVF-doxygen/html/html/ConsG_8cpp_source.html +44 -45
  9. package/SVF-doxygen/html/html/ConsG_8h_source.html +21 -21
  10. package/SVF-doxygen/html/html/ContextDDA_8cpp_source.html +10 -8
  11. package/SVF-doxygen/html/html/ContextDDA_8h_source.html +5 -5
  12. package/SVF-doxygen/html/html/DCHG_8cpp_source.html +1 -1
  13. package/SVF-doxygen/html/html/DCHG_8h_source.html +2 -2
  14. package/SVF-doxygen/html/html/DDAClient_8cpp_source.html +4 -4
  15. package/SVF-doxygen/html/html/DDAClient_8h_source.html +1 -1
  16. package/SVF-doxygen/html/html/DDAPass_8cpp_source.html +1 -1
  17. package/SVF-doxygen/html/html/DDAStat_8cpp_source.html +1 -1
  18. package/SVF-doxygen/html/html/DDAVFSolver_8h_source.html +1 -1
  19. package/SVF-doxygen/html/html/FlowDDA_8cpp_source.html +4 -2
  20. package/SVF-doxygen/html/html/FlowDDA_8h_source.html +1 -1
  21. package/SVF-doxygen/html/html/FlowSensitiveStat_8cpp_source.html +2 -2
  22. package/SVF-doxygen/html/html/FlowSensitiveTBHC_8cpp.html +2 -2
  23. package/SVF-doxygen/html/html/FlowSensitiveTBHC_8cpp_source.html +24 -22
  24. package/SVF-doxygen/html/html/FlowSensitiveTBHC_8h_source.html +17 -17
  25. package/SVF-doxygen/html/html/FlowSensitive_8cpp_source.html +15 -14
  26. package/SVF-doxygen/html/html/FlowSensitive_8h_source.html +11 -11
  27. package/SVF-doxygen/html/html/Graph2Json_8cpp_source.html +3 -3
  28. package/SVF-doxygen/html/html/IRAnnotator_8h_source.html +4 -4
  29. package/SVF-doxygen/html/html/IRGraph_8cpp_source.html +4 -4
  30. package/SVF-doxygen/html/html/IRGraph_8h_source.html +1 -1
  31. package/SVF-doxygen/html/html/MSSAMuChi_8h_source.html +2 -2
  32. package/SVF-doxygen/html/html/MTAAnnotator_8cpp_source.html +2 -2
  33. package/SVF-doxygen/html/html/MemRegion_8cpp_source.html +4 -4
  34. package/SVF-doxygen/html/html/MemRegion_8h_source.html +2 -2
  35. package/SVF-doxygen/html/html/MemSSA_8cpp_source.html +2 -2
  36. package/SVF-doxygen/html/html/MemSSA_8h_source.html +2 -2
  37. package/SVF-doxygen/html/html/PAGBuilderFromFile_8cpp_source.html +2 -2
  38. package/SVF-doxygen/html/html/PTAStat_8cpp_source.html +3 -4
  39. package/SVF-doxygen/html/html/PointerAnalysisImpl_8cpp_source.html +3 -3
  40. package/SVF-doxygen/html/html/PointerAnalysis_8cpp_source.html +1 -1
  41. package/SVF-doxygen/html/html/SVFGOPT_8h_source.html +2 -2
  42. package/SVF-doxygen/html/html/SVFG_8cpp_source.html +8 -8
  43. package/SVF-doxygen/html/html/SVFG_8h_source.html +1 -1
  44. package/SVF-doxygen/html/html/SVFIRBuilder_8cpp_source.html +6 -6
  45. package/SVF-doxygen/html/html/SVFIRBuilder_8h_source.html +19 -21
  46. package/SVF-doxygen/html/html/SVFIR_8cpp_source.html +38 -40
  47. package/SVF-doxygen/html/html/SVFIR_8h_source.html +35 -37
  48. package/SVF-doxygen/html/html/SVFStatements_8cpp_source.html +21 -23
  49. package/SVF-doxygen/html/html/SVFStatements_8h.html +0 -4
  50. package/SVF-doxygen/html/html/SVFStatements_8h_source.html +146 -156
  51. package/SVF-doxygen/html/html/SVFVariables_8cpp_source.html +1 -1
  52. package/SVF-doxygen/html/html/SVFVariables_8h_source.html +98 -98
  53. package/SVF-doxygen/html/html/SaberSVFGBuilder_8cpp_source.html +1 -1
  54. package/SVF-doxygen/html/html/SymbolTableInfo_8cpp_source.html +1 -1
  55. package/SVF-doxygen/html/html/ThreadCallGraph_8cpp_source.html +1 -1
  56. package/SVF-doxygen/html/html/TypeBasedHeapCloning_8cpp_source.html +10 -10
  57. package/SVF-doxygen/html/html/VFGNode_8h_source.html +13 -13
  58. package/SVF-doxygen/html/html/VFG_8cpp_source.html +50 -51
  59. package/SVF-doxygen/html/html/VFG_8h_source.html +35 -35
  60. package/SVF-doxygen/html/html/VersionedFlowSensitive_8cpp_source.html +1 -1
  61. package/SVF-doxygen/html/html/annotated.html +100 -102
  62. package/SVF-doxygen/html/html/classSVF_1_1AddrCGEdge.html +2 -2
  63. package/SVF-doxygen/html/html/classSVF_1_1AddrStmt-members.html +24 -25
  64. package/SVF-doxygen/html/html/classSVF_1_1AddrStmt.html +17 -18
  65. package/SVF-doxygen/html/html/classSVF_1_1AliasDDAClient.html +3 -3
  66. package/SVF-doxygen/html/html/classSVF_1_1Andersen.html +1 -1
  67. package/SVF-doxygen/html/html/classSVF_1_1AndersenBase.html +5 -5
  68. package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR.html +3 -3
  69. package/SVF-doxygen/html/html/classSVF_1_1AndersenStat.html +4 -4
  70. package/SVF-doxygen/html/html/classSVF_1_1ArgumentVFGNode.html +2 -2
  71. package/SVF-doxygen/html/html/classSVF_1_1AssignStmt-members.html +28 -29
  72. package/SVF-doxygen/html/html/classSVF_1_1AssignStmt.html +25 -30
  73. package/SVF-doxygen/html/html/classSVF_1_1AssignStmt.png +0 -0
  74. package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl.html +4 -4
  75. package/SVF-doxygen/html/html/classSVF_1_1BinaryOPStmt-members.html +28 -29
  76. package/SVF-doxygen/html/html/classSVF_1_1BinaryOPStmt.html +23 -24
  77. package/SVF-doxygen/html/html/classSVF_1_1BinaryOPVFGNode.html +2 -2
  78. package/SVF-doxygen/html/html/classSVF_1_1BranchStmt-members.html +31 -32
  79. package/SVF-doxygen/html/html/classSVF_1_1BranchStmt.html +38 -39
  80. package/SVF-doxygen/html/html/classSVF_1_1BranchVFGNode.html +3 -3
  81. package/SVF-doxygen/html/html/classSVF_1_1CSC.html +2 -2
  82. package/SVF-doxygen/html/html/classSVF_1_1CallPE-members.html +27 -28
  83. package/SVF-doxygen/html/html/classSVF_1_1CallPE.html +24 -25
  84. package/SVF-doxygen/html/html/classSVF_1_1CloneDummyObjVar.html +11 -11
  85. package/SVF-doxygen/html/html/classSVF_1_1CloneFIObjVar.html +12 -12
  86. package/SVF-doxygen/html/html/classSVF_1_1CloneGepObjVar-members.html +1 -1
  87. package/SVF-doxygen/html/html/classSVF_1_1CloneGepObjVar.html +15 -15
  88. package/SVF-doxygen/html/html/classSVF_1_1CmpStmt-members.html +30 -31
  89. package/SVF-doxygen/html/html/classSVF_1_1CmpStmt.html +24 -25
  90. package/SVF-doxygen/html/html/classSVF_1_1CmpVFGNode.html +2 -2
  91. package/SVF-doxygen/html/html/classSVF_1_1ConstraintGraph-members.html +1 -1
  92. package/SVF-doxygen/html/html/classSVF_1_1ConstraintGraph.html +95 -96
  93. package/SVF-doxygen/html/html/classSVF_1_1ConstraintNode-members.html +26 -26
  94. package/SVF-doxygen/html/html/classSVF_1_1ConstraintNode.html +43 -43
  95. package/SVF-doxygen/html/html/classSVF_1_1ContextDDA.html +17 -16
  96. package/SVF-doxygen/html/html/classSVF_1_1CopyStmt-members.html +24 -25
  97. package/SVF-doxygen/html/html/classSVF_1_1CopyStmt.html +17 -18
  98. package/SVF-doxygen/html/html/classSVF_1_1DCHEdge-members.html +4 -4
  99. package/SVF-doxygen/html/html/classSVF_1_1DCHEdge.html +5 -5
  100. package/SVF-doxygen/html/html/classSVF_1_1DCHGraph.html +1 -1
  101. package/SVF-doxygen/html/html/classSVF_1_1DDAClient.html +2 -2
  102. package/SVF-doxygen/html/html/classSVF_1_1DDAPass.html +2 -2
  103. package/SVF-doxygen/html/html/classSVF_1_1DDAStat.html +2 -2
  104. package/SVF-doxygen/html/html/classSVF_1_1DDAVFSolver.html +3 -3
  105. package/SVF-doxygen/html/html/classSVF_1_1DummyObjVar.html +13 -13
  106. package/SVF-doxygen/html/html/classSVF_1_1DummyValVar.html +13 -13
  107. package/SVF-doxygen/html/html/classSVF_1_1FIObjVar.html +14 -14
  108. package/SVF-doxygen/html/html/classSVF_1_1FlowDDA.html +6 -5
  109. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive.html +36 -36
  110. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveStat.html +4 -4
  111. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveTBHC.html +56 -55
  112. package/SVF-doxygen/html/html/classSVF_1_1GenericNode.html +21 -20
  113. package/SVF-doxygen/html/html/classSVF_1_1GenericNode.png +0 -0
  114. package/SVF-doxygen/html/html/classSVF_1_1GepObjVar-members.html +1 -1
  115. package/SVF-doxygen/html/html/classSVF_1_1GepObjVar.html +39 -39
  116. package/SVF-doxygen/html/html/classSVF_1_1GepStmt-members.html +16 -14
  117. package/SVF-doxygen/html/html/classSVF_1_1GepStmt.html +139 -50
  118. package/SVF-doxygen/html/html/classSVF_1_1GepStmt.png +0 -0
  119. package/SVF-doxygen/html/html/classSVF_1_1GepValVar-members.html +2 -2
  120. package/SVF-doxygen/html/html/classSVF_1_1GepValVar.html +39 -39
  121. package/SVF-doxygen/html/html/classSVF_1_1ICFGPrinter.html +7 -8
  122. package/SVF-doxygen/html/html/classSVF_1_1ICFGStat.html +1 -1
  123. package/SVF-doxygen/html/html/classSVF_1_1IRAnnotator.html +1 -1
  124. package/SVF-doxygen/html/html/classSVF_1_1IRGraph.html +2 -2
  125. package/SVF-doxygen/html/html/classSVF_1_1LoadStmt-members.html +27 -28
  126. package/SVF-doxygen/html/html/classSVF_1_1LoadStmt.html +17 -18
  127. package/SVF-doxygen/html/html/classSVF_1_1MRGenerator.html +6 -6
  128. package/SVF-doxygen/html/html/classSVF_1_1MTAAnnotator.html +2 -2
  129. package/SVF-doxygen/html/html/classSVF_1_1MTASVFGBuilder.html +1 -1
  130. package/SVF-doxygen/html/html/classSVF_1_1MTAStat.html +1 -1
  131. package/SVF-doxygen/html/html/classSVF_1_1MemSSA.html +6 -6
  132. package/SVF-doxygen/html/html/classSVF_1_1MemSSAStat.html +1 -1
  133. package/SVF-doxygen/html/html/classSVF_1_1MultiOpndStmt-members.html +33 -34
  134. package/SVF-doxygen/html/html/classSVF_1_1MultiOpndStmt.html +32 -33
  135. package/SVF-doxygen/html/html/classSVF_1_1NormalGepCGEdge-members.html +5 -5
  136. package/SVF-doxygen/html/html/classSVF_1_1NormalGepCGEdge.html +6 -6
  137. package/SVF-doxygen/html/html/classSVF_1_1ObjTypeInfo.html +1 -1
  138. package/SVF-doxygen/html/html/classSVF_1_1ObjVar.html +18 -18
  139. package/SVF-doxygen/html/html/classSVF_1_1OfflineConsG-members.html +1 -1
  140. package/SVF-doxygen/html/html/classSVF_1_1OfflineConsG.html +6 -6
  141. package/SVF-doxygen/html/html/classSVF_1_1PAGBuilderFromFile.html +4 -4
  142. package/SVF-doxygen/html/html/classSVF_1_1PHIVFGNode.html +2 -2
  143. package/SVF-doxygen/html/html/classSVF_1_1PTAStat.html +5 -6
  144. package/SVF-doxygen/html/html/classSVF_1_1PhiStmt-members.html +30 -31
  145. package/SVF-doxygen/html/html/classSVF_1_1PhiStmt.html +23 -24
  146. package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.html +2 -2
  147. package/SVF-doxygen/html/html/classSVF_1_1RetPE-members.html +27 -28
  148. package/SVF-doxygen/html/html/classSVF_1_1RetPE.html +24 -25
  149. package/SVF-doxygen/html/html/classSVF_1_1RetPN.html +13 -13
  150. package/SVF-doxygen/html/html/classSVF_1_1SVFG-members.html +2 -2
  151. package/SVF-doxygen/html/html/classSVF_1_1SVFG.html +16 -16
  152. package/SVF-doxygen/html/html/classSVF_1_1SVFGBuilder.html +1 -1
  153. package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT-members.html +2 -2
  154. package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT.html +10 -10
  155. package/SVF-doxygen/html/html/classSVF_1_1SVFGStat.html +1 -1
  156. package/SVF-doxygen/html/html/classSVF_1_1SVFIR-members.html +2 -2
  157. package/SVF-doxygen/html/html/classSVF_1_1SVFIR.html +77 -78
  158. package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder-members.html +3 -3
  159. package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder.html +29 -29
  160. package/SVF-doxygen/html/html/classSVF_1_1SVFStmt-members.html +24 -25
  161. package/SVF-doxygen/html/html/classSVF_1_1SVFStmt.html +49 -53
  162. package/SVF-doxygen/html/html/classSVF_1_1SVFStmt.png +0 -0
  163. package/SVF-doxygen/html/html/classSVF_1_1SVFVar.html +3 -3
  164. package/SVF-doxygen/html/html/classSVF_1_1SaberSVFGBuilder.html +3 -3
  165. package/SVF-doxygen/html/html/classSVF_1_1StmtVFGNode.html +3 -3
  166. package/SVF-doxygen/html/html/classSVF_1_1StoreStmt-members.html +24 -25
  167. package/SVF-doxygen/html/html/classSVF_1_1StoreStmt.html +18 -19
  168. package/SVF-doxygen/html/html/classSVF_1_1TDForkPE-members.html +26 -27
  169. package/SVF-doxygen/html/html/classSVF_1_1TDForkPE.html +18 -19
  170. package/SVF-doxygen/html/html/classSVF_1_1TDJoinPE-members.html +26 -27
  171. package/SVF-doxygen/html/html/classSVF_1_1TDJoinPE.html +18 -19
  172. package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraph.html +1 -1
  173. package/SVF-doxygen/html/html/classSVF_1_1TypeBasedHeapCloning.html +17 -17
  174. package/SVF-doxygen/html/html/classSVF_1_1UnaryOPStmt-members.html +29 -30
  175. package/SVF-doxygen/html/html/classSVF_1_1UnaryOPStmt.html +30 -31
  176. package/SVF-doxygen/html/html/classSVF_1_1VFG-members.html +2 -2
  177. package/SVF-doxygen/html/html/classSVF_1_1VFG.html +79 -80
  178. package/SVF-doxygen/html/html/classSVF_1_1ValVar.html +11 -11
  179. package/SVF-doxygen/html/html/classSVF_1_1VarArgPN.html +13 -13
  180. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive.html +1 -1
  181. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitiveStat.html +2 -2
  182. package/SVF-doxygen/html/html/classes.html +95 -93
  183. package/SVF-doxygen/html/html/functions_a.html +5 -5
  184. package/SVF-doxygen/html/html/functions_c.html +22 -22
  185. package/SVF-doxygen/html/html/functions_eval_g.html +2 -1
  186. package/SVF-doxygen/html/html/functions_eval_n.html +0 -1
  187. package/SVF-doxygen/html/html/functions_eval_v.html +0 -1
  188. package/SVF-doxygen/html/html/functions_func.html +5 -5
  189. package/SVF-doxygen/html/html/functions_func_c.html +20 -22
  190. package/SVF-doxygen/html/html/functions_func_g.html +13 -13
  191. package/SVF-doxygen/html/html/functions_func_i.html +7 -4
  192. package/SVF-doxygen/html/html/functions_func_n.html +0 -3
  193. package/SVF-doxygen/html/html/functions_func_o.html +3 -5
  194. package/SVF-doxygen/html/html/functions_func_t.html +0 -2
  195. package/SVF-doxygen/html/html/functions_func_v.html +0 -3
  196. package/SVF-doxygen/html/html/functions_g.html +17 -16
  197. package/SVF-doxygen/html/html/functions_i.html +9 -6
  198. package/SVF-doxygen/html/html/functions_l.html +3 -3
  199. package/SVF-doxygen/html/html/functions_m.html +1 -1
  200. package/SVF-doxygen/html/html/functions_n.html +0 -4
  201. package/SVF-doxygen/html/html/functions_o.html +3 -5
  202. package/SVF-doxygen/html/html/functions_p.html +10 -10
  203. package/SVF-doxygen/html/html/functions_r.html +8 -4
  204. package/SVF-doxygen/html/html/functions_s.html +12 -10
  205. package/SVF-doxygen/html/html/functions_t.html +7 -9
  206. package/SVF-doxygen/html/html/functions_v.html +4 -5
  207. package/SVF-doxygen/html/html/functions_vars_v.html +3 -0
  208. package/SVF-doxygen/html/html/functions_w.html +5 -9
  209. package/SVF-doxygen/html/html/hierarchy.html +55 -57
  210. package/SVF-doxygen/html/html/namespaceSVF.html +0 -4
  211. package/SVF-doxygen/html/html/search/all_1.js +5 -5
  212. package/SVF-doxygen/html/html/search/all_10.js +8 -8
  213. package/SVF-doxygen/html/html/search/all_12.js +2 -2
  214. package/SVF-doxygen/html/html/search/all_13.js +9 -9
  215. package/SVF-doxygen/html/html/search/all_14.js +5 -5
  216. package/SVF-doxygen/html/html/search/all_15.js +1 -1
  217. package/SVF-doxygen/html/html/search/all_16.js +3 -3
  218. package/SVF-doxygen/html/html/search/all_17.js +1 -1
  219. package/SVF-doxygen/html/html/search/all_3.js +1 -1
  220. package/SVF-doxygen/html/html/search/all_7.js +4 -4
  221. package/SVF-doxygen/html/html/search/all_9.js +2 -1
  222. package/SVF-doxygen/html/html/search/all_c.js +2 -2
  223. package/SVF-doxygen/html/html/search/all_d.js +3 -3
  224. package/SVF-doxygen/html/html/search/all_e.js +3 -4
  225. package/SVF-doxygen/html/html/search/all_f.js +1 -1
  226. package/SVF-doxygen/html/html/search/classes_12.js +0 -1
  227. package/SVF-doxygen/html/html/search/classes_b.js +0 -1
  228. package/SVF-doxygen/html/html/search/enumvalues_12.js +1 -1
  229. package/SVF-doxygen/html/html/search/enumvalues_6.js +1 -1
  230. package/SVF-doxygen/html/html/search/enumvalues_b.js +1 -1
  231. package/SVF-doxygen/html/html/search/functions_0.js +5 -5
  232. package/SVF-doxygen/html/html/search/functions_10.js +1 -1
  233. package/SVF-doxygen/html/html/search/functions_11.js +1 -1
  234. package/SVF-doxygen/html/html/search/functions_13.js +0 -1
  235. package/SVF-doxygen/html/html/search/functions_2.js +1 -1
  236. package/SVF-doxygen/html/html/search/functions_6.js +3 -3
  237. package/SVF-doxygen/html/html/search/functions_8.js +2 -1
  238. package/SVF-doxygen/html/html/search/functions_c.js +0 -1
  239. package/SVF-doxygen/html/html/search/functions_d.js +1 -1
  240. package/SVF-doxygen/html/html/search/functions_e.js +1 -1
  241. package/SVF-doxygen/html/html/search/variables_14.js +2 -2
  242. package/SVF-doxygen/html/html/search/variables_15.js +1 -1
  243. package/SVF-doxygen/html/html/search/variables_16.js +1 -0
  244. package/SVF-doxygen/html/html/search/variables_e.js +1 -1
  245. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01ConstraintGraph_01_5_01_4.html +16 -16
  246. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01IRGraph_01_5_01_4.html +2 -2
  247. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01VFG_01_5_01_4.html +18 -18
  248. package/include/Graphs/ConsG.h +2 -2
  249. package/include/Graphs/ConsGEdge.h +1 -1
  250. package/include/Graphs/VFG.h +2 -2
  251. package/include/MemoryModel/SVFIR.h +2 -2
  252. package/include/MemoryModel/SVFStatements.h +17 -94
  253. package/include/MemoryModel/SVFVariables.h +9 -6
  254. package/include/SVF-FE/DCHG.h +1 -1
  255. package/include/SVF-FE/SVFIRBuilder.h +5 -5
  256. package/include/Util/IRAnnotator.h +1 -1
  257. package/lib/DDA/ContextDDA.cpp +4 -5
  258. package/lib/DDA/DDAClient.cpp +6 -6
  259. package/lib/DDA/DDAStat.cpp +1 -1
  260. package/lib/DDA/FlowDDA.cpp +4 -5
  261. package/lib/Graphs/ConsG.cpp +26 -31
  262. package/lib/Graphs/SVFG.cpp +2 -2
  263. package/lib/Graphs/VFG.cpp +36 -43
  264. package/lib/MTA/MTAAnnotator.cpp +3 -3
  265. package/lib/MemoryModel/PointerAnalysisImpl.cpp +1 -1
  266. package/lib/MemoryModel/SVFIR.cpp +26 -34
  267. package/lib/MemoryModel/SVFStatements.cpp +0 -22
  268. package/lib/MemoryModel/SVFVariables.cpp +1 -1
  269. package/lib/MemoryModel/SymbolTableInfo.cpp +1 -1
  270. package/lib/SVF-FE/DCHG.cpp +1 -1
  271. package/lib/SVF-FE/Graph2Json.cpp +24 -27
  272. package/lib/Util/PTAStat.cpp +9 -9
  273. package/lib/Util/TypeBasedHeapCloning.cpp +5 -5
  274. package/lib/WPA/AndersenSFR.cpp +2 -2
  275. package/lib/WPA/AndersenStat.cpp +2 -2
  276. package/lib/WPA/CSC.cpp +2 -2
  277. package/lib/WPA/FlowSensitive.cpp +4 -7
  278. package/lib/WPA/FlowSensitiveStat.cpp +2 -2
  279. package/lib/WPA/FlowSensitiveTBHC.cpp +6 -9
  280. package/package.json +1 -1
@@ -117,7 +117,7 @@ Static Public Member Functions</h2></td></tr>
117
117
  struct llvm::DOTGraphTraits&lt; VFG * &gt;</h3>
118
118
 
119
119
 
120
- <p class="definition">Definition at line <a class="el" href="VFG_8cpp_source.html#l00946">946</a> of file <a class="el" href="VFG_8cpp_source.html">VFG.cpp</a>.</p>
120
+ <p class="definition">Definition at line <a class="el" href="VFG_8cpp_source.html#l00939">939</a> of file <a class="el" href="VFG_8cpp_source.html">VFG.cpp</a>.</p>
121
121
  </div><h2 class="groupheader">Member Typedef Documentation</h2>
122
122
  <a id="afd7d2c80916a68b53814e6de593bf520"></a>
123
123
  <h2 class="memtitle"><span class="permalink"><a href="#afd7d2c80916a68b53814e6de593bf520">&#9670;&nbsp;</a></span>NodeType</h2>
@@ -131,7 +131,7 @@ struct llvm::DOTGraphTraits&lt; VFG * &gt;</h3>
131
131
  </table>
132
132
  </div><div class="memdoc">
133
133
 
134
- <p class="definition">Definition at line <a class="el" href="VFG_8cpp_source.html#l00949">949</a> of file <a class="el" href="VFG_8cpp_source.html">VFG.cpp</a>.</p>
134
+ <p class="definition">Definition at line <a class="el" href="VFG_8cpp_source.html#l00942">942</a> of file <a class="el" href="VFG_8cpp_source.html">VFG.cpp</a>.</p>
135
135
 
136
136
  </div>
137
137
  </div>
@@ -160,8 +160,8 @@ struct llvm::DOTGraphTraits&lt; VFG * &gt;</h3>
160
160
  </table>
161
161
  </div><div class="memdoc">
162
162
 
163
- <p class="definition">Definition at line <a class="el" href="VFG_8cpp_source.html#l00950">950</a> of file <a class="el" href="VFG_8cpp_source.html">VFG.cpp</a>.</p>
164
- <div class="fragment"><div class="line"><a name="l00950"></a><span class="lineno"> 950</span>&#160; :</div><div class="line"><a name="l00951"></a><span class="lineno"> 951</span>&#160; DOTGraphTraits&lt;SVFIR*&gt;(isSimple)</div><div class="line"><a name="l00952"></a><span class="lineno"> 952</span>&#160; {</div><div class="line"><a name="l00953"></a><span class="lineno"> 953</span>&#160; }</div></div><!-- fragment -->
163
+ <p class="definition">Definition at line <a class="el" href="VFG_8cpp_source.html#l00943">943</a> of file <a class="el" href="VFG_8cpp_source.html">VFG.cpp</a>.</p>
164
+ <div class="fragment"><div class="line"><a name="l00943"></a><span class="lineno"> 943</span>&#160; :</div><div class="line"><a name="l00944"></a><span class="lineno"> 944</span>&#160; DOTGraphTraits&lt;SVFIR*&gt;(isSimple)</div><div class="line"><a name="l00945"></a><span class="lineno"> 945</span>&#160; {</div><div class="line"><a name="l00946"></a><span class="lineno"> 946</span>&#160; }</div></div><!-- fragment -->
165
165
  </div>
166
166
  </div>
167
167
  <h2 class="groupheader">Member Function Documentation</h2>
@@ -201,8 +201,8 @@ struct llvm::DOTGraphTraits&lt; VFG * &gt;</h3>
201
201
 
202
202
  <p>Return label of a VFG node with MemSSA information. </p>
203
203
 
204
- <p class="definition">Definition at line <a class="el" href="VFG_8cpp_source.html#l01021">1021</a> of file <a class="el" href="VFG_8cpp_source.html">VFG.cpp</a>.</p>
205
- <div class="fragment"><div class="line"><a name="l01022"></a><span class="lineno"> 1022</span>&#160; {</div><div class="line"><a name="l01023"></a><span class="lineno"> 1023</span>&#160;</div><div class="line"><a name="l01024"></a><span class="lineno"> 1024</span>&#160; std::string str;</div><div class="line"><a name="l01025"></a><span class="lineno"> 1025</span>&#160; <a class="code" href="namespaceSVF.html#a726981481ac082dcda3e4921416b65a0">raw_string_ostream</a> rawstr(str);</div><div class="line"><a name="l01026"></a><span class="lineno"> 1026</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1StmtVFGNode.html">StmtVFGNode</a>* stmtNode = SVFUtil::dyn_cast&lt;StmtVFGNode&gt;(node))</div><div class="line"><a name="l01027"></a><span class="lineno"> 1027</span>&#160; {</div><div class="line"><a name="l01028"></a><span class="lineno"> 1028</span>&#160; rawstr &lt;&lt; stmtNode-&gt;toString();</div><div class="line"><a name="l01029"></a><span class="lineno"> 1029</span>&#160; }</div><div class="line"><a name="l01030"></a><span class="lineno"> 1030</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1BinaryOPVFGNode.html">BinaryOPVFGNode</a>* bop = SVFUtil::dyn_cast&lt;BinaryOPVFGNode&gt;(node))</div><div class="line"><a name="l01031"></a><span class="lineno"> 1031</span>&#160; {</div><div class="line"><a name="l01032"></a><span class="lineno"> 1032</span>&#160; rawstr &lt;&lt; bop-&gt;toString();</div><div class="line"><a name="l01033"></a><span class="lineno"> 1033</span>&#160; }</div><div class="line"><a name="l01034"></a><span class="lineno"> 1034</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1UnaryOPVFGNode.html">UnaryOPVFGNode</a>* uop = SVFUtil::dyn_cast&lt;UnaryOPVFGNode&gt;(node))</div><div class="line"><a name="l01035"></a><span class="lineno"> 1035</span>&#160; {</div><div class="line"><a name="l01036"></a><span class="lineno"> 1036</span>&#160; rawstr &lt;&lt; uop-&gt;toString();</div><div class="line"><a name="l01037"></a><span class="lineno"> 1037</span>&#160; }</div><div class="line"><a name="l01038"></a><span class="lineno"> 1038</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1CmpVFGNode.html">CmpVFGNode</a>* cmp = SVFUtil::dyn_cast&lt;CmpVFGNode&gt;(node))</div><div class="line"><a name="l01039"></a><span class="lineno"> 1039</span>&#160; {</div><div class="line"><a name="l01040"></a><span class="lineno"> 1040</span>&#160; rawstr &lt;&lt; cmp-&gt;toString();</div><div class="line"><a name="l01041"></a><span class="lineno"> 1041</span>&#160; }</div><div class="line"><a name="l01042"></a><span class="lineno"> 1042</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1PHIVFGNode.html">PHIVFGNode</a>* phi = SVFUtil::dyn_cast&lt;PHIVFGNode&gt;(node))</div><div class="line"><a name="l01043"></a><span class="lineno"> 1043</span>&#160; {</div><div class="line"><a name="l01044"></a><span class="lineno"> 1044</span>&#160; rawstr &lt;&lt; phi-&gt;toString();</div><div class="line"><a name="l01045"></a><span class="lineno"> 1045</span>&#160; }</div><div class="line"><a name="l01046"></a><span class="lineno"> 1046</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1FormalParmVFGNode.html">FormalParmVFGNode</a>* fp = SVFUtil::dyn_cast&lt;FormalParmVFGNode&gt;(node))</div><div class="line"><a name="l01047"></a><span class="lineno"> 1047</span>&#160; {</div><div class="line"><a name="l01048"></a><span class="lineno"> 1048</span>&#160; rawstr &lt;&lt; fp-&gt;toString();</div><div class="line"><a name="l01049"></a><span class="lineno"> 1049</span>&#160; }</div><div class="line"><a name="l01050"></a><span class="lineno"> 1050</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1ActualParmVFGNode.html">ActualParmVFGNode</a>* ap = SVFUtil::dyn_cast&lt;ActualParmVFGNode&gt;(node))</div><div class="line"><a name="l01051"></a><span class="lineno"> 1051</span>&#160; {</div><div class="line"><a name="l01052"></a><span class="lineno"> 1052</span>&#160; rawstr &lt;&lt; ap-&gt;toString();</div><div class="line"><a name="l01053"></a><span class="lineno"> 1053</span>&#160; }</div><div class="line"><a name="l01054"></a><span class="lineno"> 1054</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1NullPtrVFGNode.html">NullPtrVFGNode</a>* nptr = SVFUtil::dyn_cast&lt;NullPtrVFGNode&gt;(node))</div><div class="line"><a name="l01055"></a><span class="lineno"> 1055</span>&#160; {</div><div class="line"><a name="l01056"></a><span class="lineno"> 1056</span>&#160; rawstr &lt;&lt; nptr-&gt;toString();</div><div class="line"><a name="l01057"></a><span class="lineno"> 1057</span>&#160; }</div><div class="line"><a name="l01058"></a><span class="lineno"> 1058</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1ActualRetVFGNode.html">ActualRetVFGNode</a>* ar = SVFUtil::dyn_cast&lt;ActualRetVFGNode&gt;(node))</div><div class="line"><a name="l01059"></a><span class="lineno"> 1059</span>&#160; {</div><div class="line"><a name="l01060"></a><span class="lineno"> 1060</span>&#160; rawstr &lt;&lt; ar-&gt;toString();</div><div class="line"><a name="l01061"></a><span class="lineno"> 1061</span>&#160; }</div><div class="line"><a name="l01062"></a><span class="lineno"> 1062</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1FormalRetVFGNode.html">FormalRetVFGNode</a>* fr = SVFUtil::dyn_cast&lt;FormalRetVFGNode&gt;(node))</div><div class="line"><a name="l01063"></a><span class="lineno"> 1063</span>&#160; {</div><div class="line"><a name="l01064"></a><span class="lineno"> 1064</span>&#160; rawstr &lt;&lt; fr-&gt;toString();</div><div class="line"><a name="l01065"></a><span class="lineno"> 1065</span>&#160; }</div><div class="line"><a name="l01066"></a><span class="lineno"> 1066</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1MRSVFGNode.html">MRSVFGNode</a>* mr = SVFUtil::dyn_cast&lt;MRSVFGNode&gt;(node))</div><div class="line"><a name="l01067"></a><span class="lineno"> 1067</span>&#160; {</div><div class="line"><a name="l01068"></a><span class="lineno"> 1068</span>&#160; rawstr &lt;&lt; mr-&gt;toString();</div><div class="line"><a name="l01069"></a><span class="lineno"> 1069</span>&#160; }</div><div class="line"><a name="l01070"></a><span class="lineno"> 1070</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l01071"></a><span class="lineno"> 1071</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<span class="keyword">false</span> &amp;&amp; <span class="stringliteral">&quot;what else kinds of nodes do we have??&quot;</span>);</div><div class="line"><a name="l01072"></a><span class="lineno"> 1072</span>&#160;</div><div class="line"><a name="l01073"></a><span class="lineno"> 1073</span>&#160; <span class="keywordflow">return</span> rawstr.str();</div><div class="line"><a name="l01074"></a><span class="lineno"> 1074</span>&#160; }</div><div class="ttc" id="classSVF_1_1BinaryOPVFGNode_html"><div class="ttname"><a href="classSVF_1_1BinaryOPVFGNode.html">SVF::BinaryOPVFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00387">VFGNode.h:387</a></div></div>
204
+ <p class="definition">Definition at line <a class="el" href="VFG_8cpp_source.html#l01014">1014</a> of file <a class="el" href="VFG_8cpp_source.html">VFG.cpp</a>.</p>
205
+ <div class="fragment"><div class="line"><a name="l01015"></a><span class="lineno"> 1015</span>&#160; {</div><div class="line"><a name="l01016"></a><span class="lineno"> 1016</span>&#160;</div><div class="line"><a name="l01017"></a><span class="lineno"> 1017</span>&#160; std::string str;</div><div class="line"><a name="l01018"></a><span class="lineno"> 1018</span>&#160; <a class="code" href="namespaceSVF.html#a726981481ac082dcda3e4921416b65a0">raw_string_ostream</a> rawstr(str);</div><div class="line"><a name="l01019"></a><span class="lineno"> 1019</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1StmtVFGNode.html">StmtVFGNode</a>* stmtNode = SVFUtil::dyn_cast&lt;StmtVFGNode&gt;(node))</div><div class="line"><a name="l01020"></a><span class="lineno"> 1020</span>&#160; {</div><div class="line"><a name="l01021"></a><span class="lineno"> 1021</span>&#160; rawstr &lt;&lt; stmtNode-&gt;toString();</div><div class="line"><a name="l01022"></a><span class="lineno"> 1022</span>&#160; }</div><div class="line"><a name="l01023"></a><span class="lineno"> 1023</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1BinaryOPVFGNode.html">BinaryOPVFGNode</a>* bop = SVFUtil::dyn_cast&lt;BinaryOPVFGNode&gt;(node))</div><div class="line"><a name="l01024"></a><span class="lineno"> 1024</span>&#160; {</div><div class="line"><a name="l01025"></a><span class="lineno"> 1025</span>&#160; rawstr &lt;&lt; bop-&gt;toString();</div><div class="line"><a name="l01026"></a><span class="lineno"> 1026</span>&#160; }</div><div class="line"><a name="l01027"></a><span class="lineno"> 1027</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1UnaryOPVFGNode.html">UnaryOPVFGNode</a>* uop = SVFUtil::dyn_cast&lt;UnaryOPVFGNode&gt;(node))</div><div class="line"><a name="l01028"></a><span class="lineno"> 1028</span>&#160; {</div><div class="line"><a name="l01029"></a><span class="lineno"> 1029</span>&#160; rawstr &lt;&lt; uop-&gt;toString();</div><div class="line"><a name="l01030"></a><span class="lineno"> 1030</span>&#160; }</div><div class="line"><a name="l01031"></a><span class="lineno"> 1031</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1CmpVFGNode.html">CmpVFGNode</a>* cmp = SVFUtil::dyn_cast&lt;CmpVFGNode&gt;(node))</div><div class="line"><a name="l01032"></a><span class="lineno"> 1032</span>&#160; {</div><div class="line"><a name="l01033"></a><span class="lineno"> 1033</span>&#160; rawstr &lt;&lt; cmp-&gt;toString();</div><div class="line"><a name="l01034"></a><span class="lineno"> 1034</span>&#160; }</div><div class="line"><a name="l01035"></a><span class="lineno"> 1035</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1PHIVFGNode.html">PHIVFGNode</a>* phi = SVFUtil::dyn_cast&lt;PHIVFGNode&gt;(node))</div><div class="line"><a name="l01036"></a><span class="lineno"> 1036</span>&#160; {</div><div class="line"><a name="l01037"></a><span class="lineno"> 1037</span>&#160; rawstr &lt;&lt; phi-&gt;toString();</div><div class="line"><a name="l01038"></a><span class="lineno"> 1038</span>&#160; }</div><div class="line"><a name="l01039"></a><span class="lineno"> 1039</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1FormalParmVFGNode.html">FormalParmVFGNode</a>* fp = SVFUtil::dyn_cast&lt;FormalParmVFGNode&gt;(node))</div><div class="line"><a name="l01040"></a><span class="lineno"> 1040</span>&#160; {</div><div class="line"><a name="l01041"></a><span class="lineno"> 1041</span>&#160; rawstr &lt;&lt; fp-&gt;toString();</div><div class="line"><a name="l01042"></a><span class="lineno"> 1042</span>&#160; }</div><div class="line"><a name="l01043"></a><span class="lineno"> 1043</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1ActualParmVFGNode.html">ActualParmVFGNode</a>* ap = SVFUtil::dyn_cast&lt;ActualParmVFGNode&gt;(node))</div><div class="line"><a name="l01044"></a><span class="lineno"> 1044</span>&#160; {</div><div class="line"><a name="l01045"></a><span class="lineno"> 1045</span>&#160; rawstr &lt;&lt; ap-&gt;toString();</div><div class="line"><a name="l01046"></a><span class="lineno"> 1046</span>&#160; }</div><div class="line"><a name="l01047"></a><span class="lineno"> 1047</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1NullPtrVFGNode.html">NullPtrVFGNode</a>* nptr = SVFUtil::dyn_cast&lt;NullPtrVFGNode&gt;(node))</div><div class="line"><a name="l01048"></a><span class="lineno"> 1048</span>&#160; {</div><div class="line"><a name="l01049"></a><span class="lineno"> 1049</span>&#160; rawstr &lt;&lt; nptr-&gt;toString();</div><div class="line"><a name="l01050"></a><span class="lineno"> 1050</span>&#160; }</div><div class="line"><a name="l01051"></a><span class="lineno"> 1051</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1ActualRetVFGNode.html">ActualRetVFGNode</a>* ar = SVFUtil::dyn_cast&lt;ActualRetVFGNode&gt;(node))</div><div class="line"><a name="l01052"></a><span class="lineno"> 1052</span>&#160; {</div><div class="line"><a name="l01053"></a><span class="lineno"> 1053</span>&#160; rawstr &lt;&lt; ar-&gt;toString();</div><div class="line"><a name="l01054"></a><span class="lineno"> 1054</span>&#160; }</div><div class="line"><a name="l01055"></a><span class="lineno"> 1055</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1FormalRetVFGNode.html">FormalRetVFGNode</a>* fr = SVFUtil::dyn_cast&lt;FormalRetVFGNode&gt;(node))</div><div class="line"><a name="l01056"></a><span class="lineno"> 1056</span>&#160; {</div><div class="line"><a name="l01057"></a><span class="lineno"> 1057</span>&#160; rawstr &lt;&lt; fr-&gt;toString();</div><div class="line"><a name="l01058"></a><span class="lineno"> 1058</span>&#160; }</div><div class="line"><a name="l01059"></a><span class="lineno"> 1059</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1MRSVFGNode.html">MRSVFGNode</a>* mr = SVFUtil::dyn_cast&lt;MRSVFGNode&gt;(node))</div><div class="line"><a name="l01060"></a><span class="lineno"> 1060</span>&#160; {</div><div class="line"><a name="l01061"></a><span class="lineno"> 1061</span>&#160; rawstr &lt;&lt; mr-&gt;toString();</div><div class="line"><a name="l01062"></a><span class="lineno"> 1062</span>&#160; }</div><div class="line"><a name="l01063"></a><span class="lineno"> 1063</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l01064"></a><span class="lineno"> 1064</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<span class="keyword">false</span> &amp;&amp; <span class="stringliteral">&quot;what else kinds of nodes do we have??&quot;</span>);</div><div class="line"><a name="l01065"></a><span class="lineno"> 1065</span>&#160;</div><div class="line"><a name="l01066"></a><span class="lineno"> 1066</span>&#160; <span class="keywordflow">return</span> rawstr.str();</div><div class="line"><a name="l01067"></a><span class="lineno"> 1067</span>&#160; }</div><div class="ttc" id="classSVF_1_1BinaryOPVFGNode_html"><div class="ttname"><a href="classSVF_1_1BinaryOPVFGNode.html">SVF::BinaryOPVFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00387">VFGNode.h:387</a></div></div>
206
206
  <div class="ttc" id="classSVF_1_1ActualParmVFGNode_html"><div class="ttname"><a href="classSVF_1_1ActualParmVFGNode.html">SVF::ActualParmVFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00831">VFGNode.h:831</a></div></div>
207
207
  <div class="ttc" id="util_8h_html_a07d17d6d5d1074c0969bc5d3c3d1d84a"><div class="ttname"><a href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a></div><div class="ttdeci">#define assert(ex)</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00141">util.h:141</a></div></div>
208
208
  <div class="ttc" id="classSVF_1_1PHIVFGNode_html"><div class="ttname"><a href="classSVF_1_1PHIVFGNode.html">SVF::PHIVFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00624">VFGNode.h:624</a></div></div>
@@ -260,8 +260,8 @@ template&lt;class EdgeIter &gt; </div>
260
260
  </table>
261
261
  </div><div class="memdoc">
262
262
 
263
- <p class="definition">Definition at line <a class="el" href="VFG_8cpp_source.html#l01163">1163</a> of file <a class="el" href="VFG_8cpp_source.html">VFG.cpp</a>.</p>
264
- <div class="fragment"><div class="line"><a name="l01164"></a><span class="lineno"> 1164</span>&#160; {</div><div class="line"><a name="l01165"></a><span class="lineno"> 1165</span>&#160; <a class="code" href="classSVF_1_1VFGEdge.html">VFGEdge</a>* edge = *(EI.getCurrent());</div><div class="line"><a name="l01166"></a><span class="lineno"> 1166</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(edge &amp;&amp; <span class="stringliteral">&quot;No edge found!!&quot;</span>);</div><div class="line"><a name="l01167"></a><span class="lineno"> 1167</span>&#160; <span class="keywordflow">if</span> (SVFUtil::isa&lt;DirectSVFGEdge&gt;(edge))</div><div class="line"><a name="l01168"></a><span class="lineno"> 1168</span>&#160; {</div><div class="line"><a name="l01169"></a><span class="lineno"> 1169</span>&#160; <span class="keywordflow">if</span> (SVFUtil::isa&lt;CallDirSVFGEdge&gt;(edge))</div><div class="line"><a name="l01170"></a><span class="lineno"> 1170</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;style=solid,color=red&quot;</span>;</div><div class="line"><a name="l01171"></a><span class="lineno"> 1171</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa&lt;RetDirSVFGEdge&gt;(edge))</div><div class="line"><a name="l01172"></a><span class="lineno"> 1172</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;style=solid,color=blue&quot;</span>;</div><div class="line"><a name="l01173"></a><span class="lineno"> 1173</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l01174"></a><span class="lineno"> 1174</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;style=solid&quot;</span>;</div><div class="line"><a name="l01175"></a><span class="lineno"> 1175</span>&#160; }</div><div class="line"><a name="l01176"></a><span class="lineno"> 1176</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa&lt;IndirectSVFGEdge&gt;(edge))</div><div class="line"><a name="l01177"></a><span class="lineno"> 1177</span>&#160; {</div><div class="line"><a name="l01178"></a><span class="lineno"> 1178</span>&#160; <span class="keywordflow">if</span> (SVFUtil::isa&lt;CallIndSVFGEdge&gt;(edge))</div><div class="line"><a name="l01179"></a><span class="lineno"> 1179</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;style=dashed,color=red&quot;</span>;</div><div class="line"><a name="l01180"></a><span class="lineno"> 1180</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa&lt;RetIndSVFGEdge&gt;(edge))</div><div class="line"><a name="l01181"></a><span class="lineno"> 1181</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;style=dashed,color=blue&quot;</span>;</div><div class="line"><a name="l01182"></a><span class="lineno"> 1182</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l01183"></a><span class="lineno"> 1183</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;style=dashed&quot;</span>;</div><div class="line"><a name="l01184"></a><span class="lineno"> 1184</span>&#160; }</div><div class="line"><a name="l01185"></a><span class="lineno"> 1185</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l01186"></a><span class="lineno"> 1186</span>&#160; {</div><div class="line"><a name="l01187"></a><span class="lineno"> 1187</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<span class="keyword">false</span> &amp;&amp; <span class="stringliteral">&quot;what else edge we have?&quot;</span>);</div><div class="line"><a name="l01188"></a><span class="lineno"> 1188</span>&#160; }</div><div class="line"><a name="l01189"></a><span class="lineno"> 1189</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;&quot;</span>;</div><div class="line"><a name="l01190"></a><span class="lineno"> 1190</span>&#160; }</div><div class="ttc" id="util_8h_html_a07d17d6d5d1074c0969bc5d3c3d1d84a"><div class="ttname"><a href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a></div><div class="ttdeci">#define assert(ex)</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00141">util.h:141</a></div></div>
263
+ <p class="definition">Definition at line <a class="el" href="VFG_8cpp_source.html#l01156">1156</a> of file <a class="el" href="VFG_8cpp_source.html">VFG.cpp</a>.</p>
264
+ <div class="fragment"><div class="line"><a name="l01157"></a><span class="lineno"> 1157</span>&#160; {</div><div class="line"><a name="l01158"></a><span class="lineno"> 1158</span>&#160; <a class="code" href="classSVF_1_1VFGEdge.html">VFGEdge</a>* edge = *(EI.getCurrent());</div><div class="line"><a name="l01159"></a><span class="lineno"> 1159</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(edge &amp;&amp; <span class="stringliteral">&quot;No edge found!!&quot;</span>);</div><div class="line"><a name="l01160"></a><span class="lineno"> 1160</span>&#160; <span class="keywordflow">if</span> (SVFUtil::isa&lt;DirectSVFGEdge&gt;(edge))</div><div class="line"><a name="l01161"></a><span class="lineno"> 1161</span>&#160; {</div><div class="line"><a name="l01162"></a><span class="lineno"> 1162</span>&#160; <span class="keywordflow">if</span> (SVFUtil::isa&lt;CallDirSVFGEdge&gt;(edge))</div><div class="line"><a name="l01163"></a><span class="lineno"> 1163</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;style=solid,color=red&quot;</span>;</div><div class="line"><a name="l01164"></a><span class="lineno"> 1164</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa&lt;RetDirSVFGEdge&gt;(edge))</div><div class="line"><a name="l01165"></a><span class="lineno"> 1165</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;style=solid,color=blue&quot;</span>;</div><div class="line"><a name="l01166"></a><span class="lineno"> 1166</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l01167"></a><span class="lineno"> 1167</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;style=solid&quot;</span>;</div><div class="line"><a name="l01168"></a><span class="lineno"> 1168</span>&#160; }</div><div class="line"><a name="l01169"></a><span class="lineno"> 1169</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa&lt;IndirectSVFGEdge&gt;(edge))</div><div class="line"><a name="l01170"></a><span class="lineno"> 1170</span>&#160; {</div><div class="line"><a name="l01171"></a><span class="lineno"> 1171</span>&#160; <span class="keywordflow">if</span> (SVFUtil::isa&lt;CallIndSVFGEdge&gt;(edge))</div><div class="line"><a name="l01172"></a><span class="lineno"> 1172</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;style=dashed,color=red&quot;</span>;</div><div class="line"><a name="l01173"></a><span class="lineno"> 1173</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa&lt;RetIndSVFGEdge&gt;(edge))</div><div class="line"><a name="l01174"></a><span class="lineno"> 1174</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;style=dashed,color=blue&quot;</span>;</div><div class="line"><a name="l01175"></a><span class="lineno"> 1175</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l01176"></a><span class="lineno"> 1176</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;style=dashed&quot;</span>;</div><div class="line"><a name="l01177"></a><span class="lineno"> 1177</span>&#160; }</div><div class="line"><a name="l01178"></a><span class="lineno"> 1178</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l01179"></a><span class="lineno"> 1179</span>&#160; {</div><div class="line"><a name="l01180"></a><span class="lineno"> 1180</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<span class="keyword">false</span> &amp;&amp; <span class="stringliteral">&quot;what else edge we have?&quot;</span>);</div><div class="line"><a name="l01181"></a><span class="lineno"> 1181</span>&#160; }</div><div class="line"><a name="l01182"></a><span class="lineno"> 1182</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;&quot;</span>;</div><div class="line"><a name="l01183"></a><span class="lineno"> 1183</span>&#160; }</div><div class="ttc" id="util_8h_html_a07d17d6d5d1074c0969bc5d3c3d1d84a"><div class="ttname"><a href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a></div><div class="ttdeci">#define assert(ex)</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00141">util.h:141</a></div></div>
265
265
  <div class="ttc" id="classSVF_1_1VFGEdge_html"><div class="ttname"><a href="classSVF_1_1VFGEdge.html">SVF::VFGEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGEdge_8h_source.html#l00044">VFGEdge.h:44</a></div></div>
266
266
  </div><!-- fragment -->
267
267
  </div>
@@ -302,8 +302,8 @@ template&lt;class EdgeIter &gt; </div>
302
302
  </table>
303
303
  </div><div class="memdoc">
304
304
 
305
- <p class="definition">Definition at line <a class="el" href="VFG_8cpp_source.html#l01193">1193</a> of file <a class="el" href="VFG_8cpp_source.html">VFG.cpp</a>.</p>
306
- <div class="fragment"><div class="line"><a name="l01194"></a><span class="lineno"> 1194</span>&#160; {</div><div class="line"><a name="l01195"></a><span class="lineno"> 1195</span>&#160; <a class="code" href="classSVF_1_1VFGEdge.html">VFGEdge</a>* edge = *(EI.getCurrent());</div><div class="line"><a name="l01196"></a><span class="lineno"> 1196</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(edge &amp;&amp; <span class="stringliteral">&quot;No edge found!!&quot;</span>);</div><div class="line"><a name="l01197"></a><span class="lineno"> 1197</span>&#160;</div><div class="line"><a name="l01198"></a><span class="lineno"> 1198</span>&#160; std::string str;</div><div class="line"><a name="l01199"></a><span class="lineno"> 1199</span>&#160; <a class="code" href="namespaceSVF.html#a726981481ac082dcda3e4921416b65a0">raw_string_ostream</a> rawstr(str);</div><div class="line"><a name="l01200"></a><span class="lineno"> 1200</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1CallDirSVFGEdge.html">CallDirSVFGEdge</a>* dirCall = SVFUtil::dyn_cast&lt;CallDirSVFGEdge&gt;(edge))</div><div class="line"><a name="l01201"></a><span class="lineno"> 1201</span>&#160; rawstr &lt;&lt; dirCall-&gt;getCallSiteId();</div><div class="line"><a name="l01202"></a><span class="lineno"> 1202</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1RetDirSVFGEdge.html">RetDirSVFGEdge</a>* dirRet = SVFUtil::dyn_cast&lt;RetDirSVFGEdge&gt;(edge))</div><div class="line"><a name="l01203"></a><span class="lineno"> 1203</span>&#160; rawstr &lt;&lt; dirRet-&gt;getCallSiteId();</div><div class="line"><a name="l01204"></a><span class="lineno"> 1204</span>&#160;</div><div class="line"><a name="l01205"></a><span class="lineno"> 1205</span>&#160; <span class="keywordflow">return</span> rawstr.str();</div><div class="line"><a name="l01206"></a><span class="lineno"> 1206</span>&#160; }</div><div class="ttc" id="util_8h_html_a07d17d6d5d1074c0969bc5d3c3d1d84a"><div class="ttname"><a href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a></div><div class="ttdeci">#define assert(ex)</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00141">util.h:141</a></div></div>
305
+ <p class="definition">Definition at line <a class="el" href="VFG_8cpp_source.html#l01186">1186</a> of file <a class="el" href="VFG_8cpp_source.html">VFG.cpp</a>.</p>
306
+ <div class="fragment"><div class="line"><a name="l01187"></a><span class="lineno"> 1187</span>&#160; {</div><div class="line"><a name="l01188"></a><span class="lineno"> 1188</span>&#160; <a class="code" href="classSVF_1_1VFGEdge.html">VFGEdge</a>* edge = *(EI.getCurrent());</div><div class="line"><a name="l01189"></a><span class="lineno"> 1189</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(edge &amp;&amp; <span class="stringliteral">&quot;No edge found!!&quot;</span>);</div><div class="line"><a name="l01190"></a><span class="lineno"> 1190</span>&#160;</div><div class="line"><a name="l01191"></a><span class="lineno"> 1191</span>&#160; std::string str;</div><div class="line"><a name="l01192"></a><span class="lineno"> 1192</span>&#160; <a class="code" href="namespaceSVF.html#a726981481ac082dcda3e4921416b65a0">raw_string_ostream</a> rawstr(str);</div><div class="line"><a name="l01193"></a><span class="lineno"> 1193</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1CallDirSVFGEdge.html">CallDirSVFGEdge</a>* dirCall = SVFUtil::dyn_cast&lt;CallDirSVFGEdge&gt;(edge))</div><div class="line"><a name="l01194"></a><span class="lineno"> 1194</span>&#160; rawstr &lt;&lt; dirCall-&gt;getCallSiteId();</div><div class="line"><a name="l01195"></a><span class="lineno"> 1195</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1RetDirSVFGEdge.html">RetDirSVFGEdge</a>* dirRet = SVFUtil::dyn_cast&lt;RetDirSVFGEdge&gt;(edge))</div><div class="line"><a name="l01196"></a><span class="lineno"> 1196</span>&#160; rawstr &lt;&lt; dirRet-&gt;getCallSiteId();</div><div class="line"><a name="l01197"></a><span class="lineno"> 1197</span>&#160;</div><div class="line"><a name="l01198"></a><span class="lineno"> 1198</span>&#160; <span class="keywordflow">return</span> rawstr.str();</div><div class="line"><a name="l01199"></a><span class="lineno"> 1199</span>&#160; }</div><div class="ttc" id="util_8h_html_a07d17d6d5d1074c0969bc5d3c3d1d84a"><div class="ttname"><a href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a></div><div class="ttdeci">#define assert(ex)</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00141">util.h:141</a></div></div>
307
307
  <div class="ttc" id="classSVF_1_1CallDirSVFGEdge_html"><div class="ttname"><a href="classSVF_1_1CallDirSVFGEdge.html">SVF::CallDirSVFGEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGEdge_8h_source.html#l00211">VFGEdge.h:211</a></div></div>
308
308
  <div class="ttc" id="classSVF_1_1VFGEdge_html"><div class="ttname"><a href="classSVF_1_1VFGEdge.html">SVF::VFGEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGEdge_8h_source.html#l00044">VFGEdge.h:44</a></div></div>
309
309
  <div class="ttc" id="namespaceSVF_html_a726981481ac082dcda3e4921416b65a0"><div class="ttname"><a href="namespaceSVF.html#a726981481ac082dcda3e4921416b65a0">SVF::raw_string_ostream</a></div><div class="ttdeci">llvm::raw_string_ostream raw_string_ostream</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00100">BasicTypes.h:100</a></div></div>
@@ -337,8 +337,8 @@ template&lt;class EdgeIter &gt; </div>
337
337
 
338
338
  <p>Return name of the graph. </p>
339
339
 
340
- <p class="definition">Definition at line <a class="el" href="VFG_8cpp_source.html#l00956">956</a> of file <a class="el" href="VFG_8cpp_source.html">VFG.cpp</a>.</p>
341
- <div class="fragment"><div class="line"><a name="l00957"></a><span class="lineno"> 957</span>&#160; {</div><div class="line"><a name="l00958"></a><span class="lineno"> 958</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;VFG&quot;</span>;</div><div class="line"><a name="l00959"></a><span class="lineno"> 959</span>&#160; }</div></div><!-- fragment -->
340
+ <p class="definition">Definition at line <a class="el" href="VFG_8cpp_source.html#l00949">949</a> of file <a class="el" href="VFG_8cpp_source.html">VFG.cpp</a>.</p>
341
+ <div class="fragment"><div class="line"><a name="l00950"></a><span class="lineno"> 950</span>&#160; {</div><div class="line"><a name="l00951"></a><span class="lineno"> 951</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;VFG&quot;</span>;</div><div class="line"><a name="l00952"></a><span class="lineno"> 952</span>&#160; }</div></div><!-- fragment -->
342
342
  </div>
343
343
  </div>
344
344
  <a id="a57d4a186a0319b73d69752564bf25b2a"></a>
@@ -375,8 +375,8 @@ template&lt;class EdgeIter &gt; </div>
375
375
  </table>
376
376
  </div><div class="memdoc">
377
377
 
378
- <p class="definition">Definition at line <a class="el" href="VFG_8cpp_source.html#l01076">1076</a> of file <a class="el" href="VFG_8cpp_source.html">VFG.cpp</a>.</p>
379
- <div class="fragment"><div class="line"><a name="l01077"></a><span class="lineno"> 1077</span>&#160; {</div><div class="line"><a name="l01078"></a><span class="lineno"> 1078</span>&#160; std::string str;</div><div class="line"><a name="l01079"></a><span class="lineno"> 1079</span>&#160; <a class="code" href="namespaceSVF.html#a726981481ac082dcda3e4921416b65a0">raw_string_ostream</a> rawstr(str);</div><div class="line"><a name="l01080"></a><span class="lineno"> 1080</span>&#160;</div><div class="line"><a name="l01081"></a><span class="lineno"> 1081</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1StmtVFGNode.html">StmtVFGNode</a>* stmtNode = SVFUtil::dyn_cast&lt;StmtVFGNode&gt;(node))</div><div class="line"><a name="l01082"></a><span class="lineno"> 1082</span>&#160; {</div><div class="line"><a name="l01083"></a><span class="lineno"> 1083</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">PAGEdge</a>* edge = stmtNode-&gt;getPAGEdge();</div><div class="line"><a name="l01084"></a><span class="lineno"> 1084</span>&#160; <span class="keywordflow">if</span> (SVFUtil::isa&lt;AddrStmt&gt;(edge))</div><div class="line"><a name="l01085"></a><span class="lineno"> 1085</span>&#160; {</div><div class="line"><a name="l01086"></a><span class="lineno"> 1086</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot;color=green&quot;</span>;</div><div class="line"><a name="l01087"></a><span class="lineno"> 1087</span>&#160; }</div><div class="line"><a name="l01088"></a><span class="lineno"> 1088</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa&lt;CopyStmt&gt;(edge))</div><div class="line"><a name="l01089"></a><span class="lineno"> 1089</span>&#160; {</div><div class="line"><a name="l01090"></a><span class="lineno"> 1090</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot;color=black&quot;</span>;</div><div class="line"><a name="l01091"></a><span class="lineno"> 1091</span>&#160; }</div><div class="line"><a name="l01092"></a><span class="lineno"> 1092</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa&lt;RetPE&gt;(edge))</div><div class="line"><a name="l01093"></a><span class="lineno"> 1093</span>&#160; {</div><div class="line"><a name="l01094"></a><span class="lineno"> 1094</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot;color=black,style=dotted&quot;</span>;</div><div class="line"><a name="l01095"></a><span class="lineno"> 1095</span>&#160; }</div><div class="line"><a name="l01096"></a><span class="lineno"> 1096</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa&lt;GepStmt&gt;(edge))</div><div class="line"><a name="l01097"></a><span class="lineno"> 1097</span>&#160; {</div><div class="line"><a name="l01098"></a><span class="lineno"> 1098</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot;color=purple&quot;</span>;</div><div class="line"><a name="l01099"></a><span class="lineno"> 1099</span>&#160; }</div><div class="line"><a name="l01100"></a><span class="lineno"> 1100</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa&lt;StoreStmt&gt;(edge))</div><div class="line"><a name="l01101"></a><span class="lineno"> 1101</span>&#160; {</div><div class="line"><a name="l01102"></a><span class="lineno"> 1102</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot;color=blue&quot;</span>;</div><div class="line"><a name="l01103"></a><span class="lineno"> 1103</span>&#160; }</div><div class="line"><a name="l01104"></a><span class="lineno"> 1104</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa&lt;LoadStmt&gt;(edge))</div><div class="line"><a name="l01105"></a><span class="lineno"> 1105</span>&#160; {</div><div class="line"><a name="l01106"></a><span class="lineno"> 1106</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot;color=red&quot;</span>;</div><div class="line"><a name="l01107"></a><span class="lineno"> 1107</span>&#160; }</div><div class="line"><a name="l01108"></a><span class="lineno"> 1108</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l01109"></a><span class="lineno"> 1109</span>&#160; {</div><div class="line"><a name="l01110"></a><span class="lineno"> 1110</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(0 &amp;&amp; <span class="stringliteral">&quot;No such kind edge!!&quot;</span>);</div><div class="line"><a name="l01111"></a><span class="lineno"> 1111</span>&#160; }</div><div class="line"><a name="l01112"></a><span class="lineno"> 1112</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot;&quot;</span>;</div><div class="line"><a name="l01113"></a><span class="lineno"> 1113</span>&#160; }</div><div class="line"><a name="l01114"></a><span class="lineno"> 1114</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa&lt;CmpVFGNode&gt;(node))</div><div class="line"><a name="l01115"></a><span class="lineno"> 1115</span>&#160; {</div><div class="line"><a name="l01116"></a><span class="lineno"> 1116</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot;color=grey&quot;</span>;</div><div class="line"><a name="l01117"></a><span class="lineno"> 1117</span>&#160; }</div><div class="line"><a name="l01118"></a><span class="lineno"> 1118</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa&lt;BinaryOPVFGNode&gt;(node))</div><div class="line"><a name="l01119"></a><span class="lineno"> 1119</span>&#160; {</div><div class="line"><a name="l01120"></a><span class="lineno"> 1120</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot;color=grey&quot;</span>;</div><div class="line"><a name="l01121"></a><span class="lineno"> 1121</span>&#160; }</div><div class="line"><a name="l01122"></a><span class="lineno"> 1122</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa&lt;UnaryOPVFGNode&gt;(node))</div><div class="line"><a name="l01123"></a><span class="lineno"> 1123</span>&#160; {</div><div class="line"><a name="l01124"></a><span class="lineno"> 1124</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot;color=grey&quot;</span>;</div><div class="line"><a name="l01125"></a><span class="lineno"> 1125</span>&#160; }</div><div class="line"><a name="l01126"></a><span class="lineno"> 1126</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(SVFUtil::isa&lt;PHIVFGNode&gt;(node))</div><div class="line"><a name="l01127"></a><span class="lineno"> 1127</span>&#160; {</div><div class="line"><a name="l01128"></a><span class="lineno"> 1128</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot;color=black&quot;</span>;</div><div class="line"><a name="l01129"></a><span class="lineno"> 1129</span>&#160; }</div><div class="line"><a name="l01130"></a><span class="lineno"> 1130</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(SVFUtil::isa&lt;NullPtrVFGNode&gt;(node))</div><div class="line"><a name="l01131"></a><span class="lineno"> 1131</span>&#160; {</div><div class="line"><a name="l01132"></a><span class="lineno"> 1132</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot;color=grey&quot;</span>;</div><div class="line"><a name="l01133"></a><span class="lineno"> 1133</span>&#160; }</div><div class="line"><a name="l01134"></a><span class="lineno"> 1134</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(SVFUtil::isa&lt;FormalParmVFGNode&gt;(node))</div><div class="line"><a name="l01135"></a><span class="lineno"> 1135</span>&#160; {</div><div class="line"><a name="l01136"></a><span class="lineno"> 1136</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot;color=yellow,penwidth=2&quot;</span>;</div><div class="line"><a name="l01137"></a><span class="lineno"> 1137</span>&#160; }</div><div class="line"><a name="l01138"></a><span class="lineno"> 1138</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(SVFUtil::isa&lt;ActualParmVFGNode&gt;(node))</div><div class="line"><a name="l01139"></a><span class="lineno"> 1139</span>&#160; {</div><div class="line"><a name="l01140"></a><span class="lineno"> 1140</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot;color=yellow,penwidth=2&quot;</span>;</div><div class="line"><a name="l01141"></a><span class="lineno"> 1141</span>&#160; }</div><div class="line"><a name="l01142"></a><span class="lineno"> 1142</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa&lt;ActualRetVFGNode&gt;(node))</div><div class="line"><a name="l01143"></a><span class="lineno"> 1143</span>&#160; {</div><div class="line"><a name="l01144"></a><span class="lineno"> 1144</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot;color=yellow,penwidth=2&quot;</span>;</div><div class="line"><a name="l01145"></a><span class="lineno"> 1145</span>&#160; }</div><div class="line"><a name="l01146"></a><span class="lineno"> 1146</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa&lt;FormalRetVFGNode&gt;(node))</div><div class="line"><a name="l01147"></a><span class="lineno"> 1147</span>&#160; {</div><div class="line"><a name="l01148"></a><span class="lineno"> 1148</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot;color=yellow,penwidth=2&quot;</span>;</div><div class="line"><a name="l01149"></a><span class="lineno"> 1149</span>&#160; }</div><div class="line"><a name="l01150"></a><span class="lineno"> 1150</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa&lt;MRSVFGNode&gt;(node))</div><div class="line"><a name="l01151"></a><span class="lineno"> 1151</span>&#160; {</div><div class="line"><a name="l01152"></a><span class="lineno"> 1152</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot;color=orange,penwidth=2&quot;</span>;</div><div class="line"><a name="l01153"></a><span class="lineno"> 1153</span>&#160; }</div><div class="line"><a name="l01154"></a><span class="lineno"> 1154</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l01155"></a><span class="lineno"> 1155</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<span class="keyword">false</span> &amp;&amp; <span class="stringliteral">&quot;no such kind of node!!&quot;</span>);</div><div class="line"><a name="l01156"></a><span class="lineno"> 1156</span>&#160;</div><div class="line"><a name="l01157"></a><span class="lineno"> 1157</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot;&quot;</span>;</div><div class="line"><a name="l01158"></a><span class="lineno"> 1158</span>&#160;</div><div class="line"><a name="l01159"></a><span class="lineno"> 1159</span>&#160; <span class="keywordflow">return</span> rawstr.str();</div><div class="line"><a name="l01160"></a><span class="lineno"> 1160</span>&#160; }</div><div class="ttc" id="util_8h_html_a07d17d6d5d1074c0969bc5d3c3d1d84a"><div class="ttname"><a href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a></div><div class="ttdeci">#define assert(ex)</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00141">util.h:141</a></div></div>
378
+ <p class="definition">Definition at line <a class="el" href="VFG_8cpp_source.html#l01069">1069</a> of file <a class="el" href="VFG_8cpp_source.html">VFG.cpp</a>.</p>
379
+ <div class="fragment"><div class="line"><a name="l01070"></a><span class="lineno"> 1070</span>&#160; {</div><div class="line"><a name="l01071"></a><span class="lineno"> 1071</span>&#160; std::string str;</div><div class="line"><a name="l01072"></a><span class="lineno"> 1072</span>&#160; <a class="code" href="namespaceSVF.html#a726981481ac082dcda3e4921416b65a0">raw_string_ostream</a> rawstr(str);</div><div class="line"><a name="l01073"></a><span class="lineno"> 1073</span>&#160;</div><div class="line"><a name="l01074"></a><span class="lineno"> 1074</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1StmtVFGNode.html">StmtVFGNode</a>* stmtNode = SVFUtil::dyn_cast&lt;StmtVFGNode&gt;(node))</div><div class="line"><a name="l01075"></a><span class="lineno"> 1075</span>&#160; {</div><div class="line"><a name="l01076"></a><span class="lineno"> 1076</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">PAGEdge</a>* edge = stmtNode-&gt;getPAGEdge();</div><div class="line"><a name="l01077"></a><span class="lineno"> 1077</span>&#160; <span class="keywordflow">if</span> (SVFUtil::isa&lt;AddrStmt&gt;(edge))</div><div class="line"><a name="l01078"></a><span class="lineno"> 1078</span>&#160; {</div><div class="line"><a name="l01079"></a><span class="lineno"> 1079</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot;color=green&quot;</span>;</div><div class="line"><a name="l01080"></a><span class="lineno"> 1080</span>&#160; }</div><div class="line"><a name="l01081"></a><span class="lineno"> 1081</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa&lt;CopyStmt&gt;(edge))</div><div class="line"><a name="l01082"></a><span class="lineno"> 1082</span>&#160; {</div><div class="line"><a name="l01083"></a><span class="lineno"> 1083</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot;color=black&quot;</span>;</div><div class="line"><a name="l01084"></a><span class="lineno"> 1084</span>&#160; }</div><div class="line"><a name="l01085"></a><span class="lineno"> 1085</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa&lt;RetPE&gt;(edge))</div><div class="line"><a name="l01086"></a><span class="lineno"> 1086</span>&#160; {</div><div class="line"><a name="l01087"></a><span class="lineno"> 1087</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot;color=black,style=dotted&quot;</span>;</div><div class="line"><a name="l01088"></a><span class="lineno"> 1088</span>&#160; }</div><div class="line"><a name="l01089"></a><span class="lineno"> 1089</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa&lt;GepStmt&gt;(edge))</div><div class="line"><a name="l01090"></a><span class="lineno"> 1090</span>&#160; {</div><div class="line"><a name="l01091"></a><span class="lineno"> 1091</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot;color=purple&quot;</span>;</div><div class="line"><a name="l01092"></a><span class="lineno"> 1092</span>&#160; }</div><div class="line"><a name="l01093"></a><span class="lineno"> 1093</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa&lt;StoreStmt&gt;(edge))</div><div class="line"><a name="l01094"></a><span class="lineno"> 1094</span>&#160; {</div><div class="line"><a name="l01095"></a><span class="lineno"> 1095</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot;color=blue&quot;</span>;</div><div class="line"><a name="l01096"></a><span class="lineno"> 1096</span>&#160; }</div><div class="line"><a name="l01097"></a><span class="lineno"> 1097</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa&lt;LoadStmt&gt;(edge))</div><div class="line"><a name="l01098"></a><span class="lineno"> 1098</span>&#160; {</div><div class="line"><a name="l01099"></a><span class="lineno"> 1099</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot;color=red&quot;</span>;</div><div class="line"><a name="l01100"></a><span class="lineno"> 1100</span>&#160; }</div><div class="line"><a name="l01101"></a><span class="lineno"> 1101</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l01102"></a><span class="lineno"> 1102</span>&#160; {</div><div class="line"><a name="l01103"></a><span class="lineno"> 1103</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(0 &amp;&amp; <span class="stringliteral">&quot;No such kind edge!!&quot;</span>);</div><div class="line"><a name="l01104"></a><span class="lineno"> 1104</span>&#160; }</div><div class="line"><a name="l01105"></a><span class="lineno"> 1105</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot;&quot;</span>;</div><div class="line"><a name="l01106"></a><span class="lineno"> 1106</span>&#160; }</div><div class="line"><a name="l01107"></a><span class="lineno"> 1107</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa&lt;CmpVFGNode&gt;(node))</div><div class="line"><a name="l01108"></a><span class="lineno"> 1108</span>&#160; {</div><div class="line"><a name="l01109"></a><span class="lineno"> 1109</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot;color=grey&quot;</span>;</div><div class="line"><a name="l01110"></a><span class="lineno"> 1110</span>&#160; }</div><div class="line"><a name="l01111"></a><span class="lineno"> 1111</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa&lt;BinaryOPVFGNode&gt;(node))</div><div class="line"><a name="l01112"></a><span class="lineno"> 1112</span>&#160; {</div><div class="line"><a name="l01113"></a><span class="lineno"> 1113</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot;color=grey&quot;</span>;</div><div class="line"><a name="l01114"></a><span class="lineno"> 1114</span>&#160; }</div><div class="line"><a name="l01115"></a><span class="lineno"> 1115</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa&lt;UnaryOPVFGNode&gt;(node))</div><div class="line"><a name="l01116"></a><span class="lineno"> 1116</span>&#160; {</div><div class="line"><a name="l01117"></a><span class="lineno"> 1117</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot;color=grey&quot;</span>;</div><div class="line"><a name="l01118"></a><span class="lineno"> 1118</span>&#160; }</div><div class="line"><a name="l01119"></a><span class="lineno"> 1119</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(SVFUtil::isa&lt;PHIVFGNode&gt;(node))</div><div class="line"><a name="l01120"></a><span class="lineno"> 1120</span>&#160; {</div><div class="line"><a name="l01121"></a><span class="lineno"> 1121</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot;color=black&quot;</span>;</div><div class="line"><a name="l01122"></a><span class="lineno"> 1122</span>&#160; }</div><div class="line"><a name="l01123"></a><span class="lineno"> 1123</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(SVFUtil::isa&lt;NullPtrVFGNode&gt;(node))</div><div class="line"><a name="l01124"></a><span class="lineno"> 1124</span>&#160; {</div><div class="line"><a name="l01125"></a><span class="lineno"> 1125</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot;color=grey&quot;</span>;</div><div class="line"><a name="l01126"></a><span class="lineno"> 1126</span>&#160; }</div><div class="line"><a name="l01127"></a><span class="lineno"> 1127</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(SVFUtil::isa&lt;FormalParmVFGNode&gt;(node))</div><div class="line"><a name="l01128"></a><span class="lineno"> 1128</span>&#160; {</div><div class="line"><a name="l01129"></a><span class="lineno"> 1129</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot;color=yellow,penwidth=2&quot;</span>;</div><div class="line"><a name="l01130"></a><span class="lineno"> 1130</span>&#160; }</div><div class="line"><a name="l01131"></a><span class="lineno"> 1131</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(SVFUtil::isa&lt;ActualParmVFGNode&gt;(node))</div><div class="line"><a name="l01132"></a><span class="lineno"> 1132</span>&#160; {</div><div class="line"><a name="l01133"></a><span class="lineno"> 1133</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot;color=yellow,penwidth=2&quot;</span>;</div><div class="line"><a name="l01134"></a><span class="lineno"> 1134</span>&#160; }</div><div class="line"><a name="l01135"></a><span class="lineno"> 1135</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa&lt;ActualRetVFGNode&gt;(node))</div><div class="line"><a name="l01136"></a><span class="lineno"> 1136</span>&#160; {</div><div class="line"><a name="l01137"></a><span class="lineno"> 1137</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot;color=yellow,penwidth=2&quot;</span>;</div><div class="line"><a name="l01138"></a><span class="lineno"> 1138</span>&#160; }</div><div class="line"><a name="l01139"></a><span class="lineno"> 1139</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa&lt;FormalRetVFGNode&gt;(node))</div><div class="line"><a name="l01140"></a><span class="lineno"> 1140</span>&#160; {</div><div class="line"><a name="l01141"></a><span class="lineno"> 1141</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot;color=yellow,penwidth=2&quot;</span>;</div><div class="line"><a name="l01142"></a><span class="lineno"> 1142</span>&#160; }</div><div class="line"><a name="l01143"></a><span class="lineno"> 1143</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa&lt;MRSVFGNode&gt;(node))</div><div class="line"><a name="l01144"></a><span class="lineno"> 1144</span>&#160; {</div><div class="line"><a name="l01145"></a><span class="lineno"> 1145</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot;color=orange,penwidth=2&quot;</span>;</div><div class="line"><a name="l01146"></a><span class="lineno"> 1146</span>&#160; }</div><div class="line"><a name="l01147"></a><span class="lineno"> 1147</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l01148"></a><span class="lineno"> 1148</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<span class="keyword">false</span> &amp;&amp; <span class="stringliteral">&quot;no such kind of node!!&quot;</span>);</div><div class="line"><a name="l01149"></a><span class="lineno"> 1149</span>&#160;</div><div class="line"><a name="l01150"></a><span class="lineno"> 1150</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot;&quot;</span>;</div><div class="line"><a name="l01151"></a><span class="lineno"> 1151</span>&#160;</div><div class="line"><a name="l01152"></a><span class="lineno"> 1152</span>&#160; <span class="keywordflow">return</span> rawstr.str();</div><div class="line"><a name="l01153"></a><span class="lineno"> 1153</span>&#160; }</div><div class="ttc" id="util_8h_html_a07d17d6d5d1074c0969bc5d3c3d1d84a"><div class="ttname"><a href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a></div><div class="ttdeci">#define assert(ex)</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00141">util.h:141</a></div></div>
380
380
  <div class="ttc" id="namespaceSVF_html_a726981481ac082dcda3e4921416b65a0"><div class="ttname"><a href="namespaceSVF.html#a726981481ac082dcda3e4921416b65a0">SVF::raw_string_ostream</a></div><div class="ttdeci">llvm::raw_string_ostream raw_string_ostream</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00100">BasicTypes.h:100</a></div></div>
381
381
  <div class="ttc" id="classSVF_1_1StmtVFGNode_html"><div class="ttname"><a href="classSVF_1_1StmtVFGNode.html">SVF::StmtVFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00113">VFGNode.h:113</a></div></div>
382
382
  <div class="ttc" id="classSVF_1_1SVFStmt_html"><div class="ttname"><a href="classSVF_1_1SVFStmt.html">SVF::SVFStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00047">SVFStatements.h:47</a></div></div>
@@ -417,8 +417,8 @@ template&lt;class EdgeIter &gt; </div>
417
417
  </table>
418
418
  </div><div class="memdoc">
419
419
 
420
- <p class="definition">Definition at line <a class="el" href="VFG_8cpp_source.html#l00961">961</a> of file <a class="el" href="VFG_8cpp_source.html">VFG.cpp</a>.</p>
421
- <div class="fragment"><div class="line"><a name="l00962"></a><span class="lineno"> 962</span>&#160; {</div><div class="line"><a name="l00963"></a><span class="lineno"> 963</span>&#160; <span class="keywordflow">if</span> (isSimple())</div><div class="line"><a name="l00964"></a><span class="lineno"> 964</span>&#160; <span class="keywordflow">return</span> getSimpleNodeLabel(node, graph);</div><div class="line"><a name="l00965"></a><span class="lineno"> 965</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00966"></a><span class="lineno"> 966</span>&#160; <span class="keywordflow">return</span> getCompleteNodeLabel(node, graph);</div><div class="line"><a name="l00967"></a><span class="lineno"> 967</span>&#160; }</div></div><!-- fragment -->
420
+ <p class="definition">Definition at line <a class="el" href="VFG_8cpp_source.html#l00954">954</a> of file <a class="el" href="VFG_8cpp_source.html">VFG.cpp</a>.</p>
421
+ <div class="fragment"><div class="line"><a name="l00955"></a><span class="lineno"> 955</span>&#160; {</div><div class="line"><a name="l00956"></a><span class="lineno"> 956</span>&#160; <span class="keywordflow">if</span> (isSimple())</div><div class="line"><a name="l00957"></a><span class="lineno"> 957</span>&#160; <span class="keywordflow">return</span> getSimpleNodeLabel(node, graph);</div><div class="line"><a name="l00958"></a><span class="lineno"> 958</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00959"></a><span class="lineno"> 959</span>&#160; <span class="keywordflow">return</span> getCompleteNodeLabel(node, graph);</div><div class="line"><a name="l00960"></a><span class="lineno"> 960</span>&#160; }</div></div><!-- fragment -->
422
422
  </div>
423
423
  </div>
424
424
  <a id="a0159404d5c5a7816a4b679c0f35a546e"></a>
@@ -457,8 +457,8 @@ template&lt;class EdgeIter &gt; </div>
457
457
 
458
458
  <p>Return label of a VFG node without MemSSA information. </p>
459
459
 
460
- <p class="definition">Definition at line <a class="el" href="VFG_8cpp_source.html#l00970">970</a> of file <a class="el" href="VFG_8cpp_source.html">VFG.cpp</a>.</p>
461
- <div class="fragment"><div class="line"><a name="l00971"></a><span class="lineno"> 971</span>&#160; {</div><div class="line"><a name="l00972"></a><span class="lineno"> 972</span>&#160; std::string str;</div><div class="line"><a name="l00973"></a><span class="lineno"> 973</span>&#160; <a class="code" href="namespaceSVF.html#a726981481ac082dcda3e4921416b65a0">raw_string_ostream</a> rawstr(str);</div><div class="line"><a name="l00974"></a><span class="lineno"> 974</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1StmtVFGNode.html">StmtVFGNode</a>* stmtNode = SVFUtil::dyn_cast&lt;StmtVFGNode&gt;(node))</div><div class="line"><a name="l00975"></a><span class="lineno"> 975</span>&#160; {</div><div class="line"><a name="l00976"></a><span class="lineno"> 976</span>&#160; rawstr &lt;&lt; stmtNode-&gt;toString();</div><div class="line"><a name="l00977"></a><span class="lineno"> 977</span>&#160; }</div><div class="line"><a name="l00978"></a><span class="lineno"> 978</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1PHIVFGNode.html">PHIVFGNode</a>* tphi = SVFUtil::dyn_cast&lt;PHIVFGNode&gt;(node))</div><div class="line"><a name="l00979"></a><span class="lineno"> 979</span>&#160; {</div><div class="line"><a name="l00980"></a><span class="lineno"> 980</span>&#160; rawstr &lt;&lt; tphi-&gt;toString();</div><div class="line"><a name="l00981"></a><span class="lineno"> 981</span>&#160; }</div><div class="line"><a name="l00982"></a><span class="lineno"> 982</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1FormalParmVFGNode.html">FormalParmVFGNode</a>* fp = SVFUtil::dyn_cast&lt;FormalParmVFGNode&gt;(node))</div><div class="line"><a name="l00983"></a><span class="lineno"> 983</span>&#160; {</div><div class="line"><a name="l00984"></a><span class="lineno"> 984</span>&#160; rawstr &lt;&lt; fp-&gt;toString();</div><div class="line"><a name="l00985"></a><span class="lineno"> 985</span>&#160; }</div><div class="line"><a name="l00986"></a><span class="lineno"> 986</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1ActualParmVFGNode.html">ActualParmVFGNode</a>* ap = SVFUtil::dyn_cast&lt;ActualParmVFGNode&gt;(node))</div><div class="line"><a name="l00987"></a><span class="lineno"> 987</span>&#160; {</div><div class="line"><a name="l00988"></a><span class="lineno"> 988</span>&#160; rawstr &lt;&lt; ap-&gt;toString();</div><div class="line"><a name="l00989"></a><span class="lineno"> 989</span>&#160; }</div><div class="line"><a name="l00990"></a><span class="lineno"> 990</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1ActualRetVFGNode.html">ActualRetVFGNode</a>* ar = SVFUtil::dyn_cast&lt;ActualRetVFGNode&gt;(node))</div><div class="line"><a name="l00991"></a><span class="lineno"> 991</span>&#160; {</div><div class="line"><a name="l00992"></a><span class="lineno"> 992</span>&#160; rawstr &lt;&lt; ar-&gt;toString();</div><div class="line"><a name="l00993"></a><span class="lineno"> 993</span>&#160; }</div><div class="line"><a name="l00994"></a><span class="lineno"> 994</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1FormalRetVFGNode.html">FormalRetVFGNode</a>* fr = SVFUtil::dyn_cast&lt;FormalRetVFGNode&gt;(node))</div><div class="line"><a name="l00995"></a><span class="lineno"> 995</span>&#160; {</div><div class="line"><a name="l00996"></a><span class="lineno"> 996</span>&#160; rawstr &lt;&lt; fr-&gt;toString();</div><div class="line"><a name="l00997"></a><span class="lineno"> 997</span>&#160; }</div><div class="line"><a name="l00998"></a><span class="lineno"> 998</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(SVFUtil::isa&lt;NullPtrVFGNode&gt;(node))</div><div class="line"><a name="l00999"></a><span class="lineno"> 999</span>&#160; {</div><div class="line"><a name="l01000"></a><span class="lineno"> 1000</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot;NullPtr&quot;</span>;</div><div class="line"><a name="l01001"></a><span class="lineno"> 1001</span>&#160; }</div><div class="line"><a name="l01002"></a><span class="lineno"> 1002</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1BinaryOPVFGNode.html">BinaryOPVFGNode</a>* bop = SVFUtil::dyn_cast&lt;BinaryOPVFGNode&gt;(node))</div><div class="line"><a name="l01003"></a><span class="lineno"> 1003</span>&#160; {</div><div class="line"><a name="l01004"></a><span class="lineno"> 1004</span>&#160; rawstr &lt;&lt; bop-&gt;toString();</div><div class="line"><a name="l01005"></a><span class="lineno"> 1005</span>&#160; }</div><div class="line"><a name="l01006"></a><span class="lineno"> 1006</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1UnaryOPVFGNode.html">UnaryOPVFGNode</a>* uop = SVFUtil::dyn_cast&lt;UnaryOPVFGNode&gt;(node))</div><div class="line"><a name="l01007"></a><span class="lineno"> 1007</span>&#160; {</div><div class="line"><a name="l01008"></a><span class="lineno"> 1008</span>&#160; rawstr &lt;&lt; uop-&gt;toString();</div><div class="line"><a name="l01009"></a><span class="lineno"> 1009</span>&#160; }</div><div class="line"><a name="l01010"></a><span class="lineno"> 1010</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1CmpVFGNode.html">CmpVFGNode</a>* cmp = SVFUtil::dyn_cast&lt;CmpVFGNode&gt;(node))</div><div class="line"><a name="l01011"></a><span class="lineno"> 1011</span>&#160; {</div><div class="line"><a name="l01012"></a><span class="lineno"> 1012</span>&#160; rawstr &lt;&lt; cmp-&gt;toString();;</div><div class="line"><a name="l01013"></a><span class="lineno"> 1013</span>&#160; }</div><div class="line"><a name="l01014"></a><span class="lineno"> 1014</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l01015"></a><span class="lineno"> 1015</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<span class="keyword">false</span> &amp;&amp; <span class="stringliteral">&quot;what else kinds of nodes do we have??&quot;</span>);</div><div class="line"><a name="l01016"></a><span class="lineno"> 1016</span>&#160;</div><div class="line"><a name="l01017"></a><span class="lineno"> 1017</span>&#160; <span class="keywordflow">return</span> rawstr.str();</div><div class="line"><a name="l01018"></a><span class="lineno"> 1018</span>&#160; }</div><div class="ttc" id="classSVF_1_1BinaryOPVFGNode_html"><div class="ttname"><a href="classSVF_1_1BinaryOPVFGNode.html">SVF::BinaryOPVFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00387">VFGNode.h:387</a></div></div>
460
+ <p class="definition">Definition at line <a class="el" href="VFG_8cpp_source.html#l00963">963</a> of file <a class="el" href="VFG_8cpp_source.html">VFG.cpp</a>.</p>
461
+ <div class="fragment"><div class="line"><a name="l00964"></a><span class="lineno"> 964</span>&#160; {</div><div class="line"><a name="l00965"></a><span class="lineno"> 965</span>&#160; std::string str;</div><div class="line"><a name="l00966"></a><span class="lineno"> 966</span>&#160; <a class="code" href="namespaceSVF.html#a726981481ac082dcda3e4921416b65a0">raw_string_ostream</a> rawstr(str);</div><div class="line"><a name="l00967"></a><span class="lineno"> 967</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1StmtVFGNode.html">StmtVFGNode</a>* stmtNode = SVFUtil::dyn_cast&lt;StmtVFGNode&gt;(node))</div><div class="line"><a name="l00968"></a><span class="lineno"> 968</span>&#160; {</div><div class="line"><a name="l00969"></a><span class="lineno"> 969</span>&#160; rawstr &lt;&lt; stmtNode-&gt;toString();</div><div class="line"><a name="l00970"></a><span class="lineno"> 970</span>&#160; }</div><div class="line"><a name="l00971"></a><span class="lineno"> 971</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1PHIVFGNode.html">PHIVFGNode</a>* tphi = SVFUtil::dyn_cast&lt;PHIVFGNode&gt;(node))</div><div class="line"><a name="l00972"></a><span class="lineno"> 972</span>&#160; {</div><div class="line"><a name="l00973"></a><span class="lineno"> 973</span>&#160; rawstr &lt;&lt; tphi-&gt;toString();</div><div class="line"><a name="l00974"></a><span class="lineno"> 974</span>&#160; }</div><div class="line"><a name="l00975"></a><span class="lineno"> 975</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1FormalParmVFGNode.html">FormalParmVFGNode</a>* fp = SVFUtil::dyn_cast&lt;FormalParmVFGNode&gt;(node))</div><div class="line"><a name="l00976"></a><span class="lineno"> 976</span>&#160; {</div><div class="line"><a name="l00977"></a><span class="lineno"> 977</span>&#160; rawstr &lt;&lt; fp-&gt;toString();</div><div class="line"><a name="l00978"></a><span class="lineno"> 978</span>&#160; }</div><div class="line"><a name="l00979"></a><span class="lineno"> 979</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1ActualParmVFGNode.html">ActualParmVFGNode</a>* ap = SVFUtil::dyn_cast&lt;ActualParmVFGNode&gt;(node))</div><div class="line"><a name="l00980"></a><span class="lineno"> 980</span>&#160; {</div><div class="line"><a name="l00981"></a><span class="lineno"> 981</span>&#160; rawstr &lt;&lt; ap-&gt;toString();</div><div class="line"><a name="l00982"></a><span class="lineno"> 982</span>&#160; }</div><div class="line"><a name="l00983"></a><span class="lineno"> 983</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1ActualRetVFGNode.html">ActualRetVFGNode</a>* ar = SVFUtil::dyn_cast&lt;ActualRetVFGNode&gt;(node))</div><div class="line"><a name="l00984"></a><span class="lineno"> 984</span>&#160; {</div><div class="line"><a name="l00985"></a><span class="lineno"> 985</span>&#160; rawstr &lt;&lt; ar-&gt;toString();</div><div class="line"><a name="l00986"></a><span class="lineno"> 986</span>&#160; }</div><div class="line"><a name="l00987"></a><span class="lineno"> 987</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1FormalRetVFGNode.html">FormalRetVFGNode</a>* fr = SVFUtil::dyn_cast&lt;FormalRetVFGNode&gt;(node))</div><div class="line"><a name="l00988"></a><span class="lineno"> 988</span>&#160; {</div><div class="line"><a name="l00989"></a><span class="lineno"> 989</span>&#160; rawstr &lt;&lt; fr-&gt;toString();</div><div class="line"><a name="l00990"></a><span class="lineno"> 990</span>&#160; }</div><div class="line"><a name="l00991"></a><span class="lineno"> 991</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(SVFUtil::isa&lt;NullPtrVFGNode&gt;(node))</div><div class="line"><a name="l00992"></a><span class="lineno"> 992</span>&#160; {</div><div class="line"><a name="l00993"></a><span class="lineno"> 993</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot;NullPtr&quot;</span>;</div><div class="line"><a name="l00994"></a><span class="lineno"> 994</span>&#160; }</div><div class="line"><a name="l00995"></a><span class="lineno"> 995</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1BinaryOPVFGNode.html">BinaryOPVFGNode</a>* bop = SVFUtil::dyn_cast&lt;BinaryOPVFGNode&gt;(node))</div><div class="line"><a name="l00996"></a><span class="lineno"> 996</span>&#160; {</div><div class="line"><a name="l00997"></a><span class="lineno"> 997</span>&#160; rawstr &lt;&lt; bop-&gt;toString();</div><div class="line"><a name="l00998"></a><span class="lineno"> 998</span>&#160; }</div><div class="line"><a name="l00999"></a><span class="lineno"> 999</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1UnaryOPVFGNode.html">UnaryOPVFGNode</a>* uop = SVFUtil::dyn_cast&lt;UnaryOPVFGNode&gt;(node))</div><div class="line"><a name="l01000"></a><span class="lineno"> 1000</span>&#160; {</div><div class="line"><a name="l01001"></a><span class="lineno"> 1001</span>&#160; rawstr &lt;&lt; uop-&gt;toString();</div><div class="line"><a name="l01002"></a><span class="lineno"> 1002</span>&#160; }</div><div class="line"><a name="l01003"></a><span class="lineno"> 1003</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1CmpVFGNode.html">CmpVFGNode</a>* cmp = SVFUtil::dyn_cast&lt;CmpVFGNode&gt;(node))</div><div class="line"><a name="l01004"></a><span class="lineno"> 1004</span>&#160; {</div><div class="line"><a name="l01005"></a><span class="lineno"> 1005</span>&#160; rawstr &lt;&lt; cmp-&gt;toString();;</div><div class="line"><a name="l01006"></a><span class="lineno"> 1006</span>&#160; }</div><div class="line"><a name="l01007"></a><span class="lineno"> 1007</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l01008"></a><span class="lineno"> 1008</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<span class="keyword">false</span> &amp;&amp; <span class="stringliteral">&quot;what else kinds of nodes do we have??&quot;</span>);</div><div class="line"><a name="l01009"></a><span class="lineno"> 1009</span>&#160;</div><div class="line"><a name="l01010"></a><span class="lineno"> 1010</span>&#160; <span class="keywordflow">return</span> rawstr.str();</div><div class="line"><a name="l01011"></a><span class="lineno"> 1011</span>&#160; }</div><div class="ttc" id="classSVF_1_1BinaryOPVFGNode_html"><div class="ttname"><a href="classSVF_1_1BinaryOPVFGNode.html">SVF::BinaryOPVFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00387">VFGNode.h:387</a></div></div>
462
462
  <div class="ttc" id="classSVF_1_1ActualParmVFGNode_html"><div class="ttname"><a href="classSVF_1_1ActualParmVFGNode.html">SVF::ActualParmVFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00831">VFGNode.h:831</a></div></div>
463
463
  <div class="ttc" id="util_8h_html_a07d17d6d5d1074c0969bc5d3c3d1d84a"><div class="ttname"><a href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a></div><div class="ttdeci">#define assert(ex)</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00141">util.h:141</a></div></div>
464
464
  <div class="ttc" id="classSVF_1_1PHIVFGNode_html"><div class="ttname"><a href="classSVF_1_1PHIVFGNode.html">SVF::PHIVFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00624">VFGNode.h:624</a></div></div>
@@ -67,7 +67,7 @@ protected:
67
67
 
68
68
  void destroy();
69
69
 
70
- PAGEdge::SVFStmtSetTy& getPAGEdgeSet(PAGEdge::PEDGEK kind)
70
+ SVFStmt::SVFStmtSetTy& getPAGEdgeSet(SVFStmt::PEDGEK kind)
71
71
  {
72
72
  return pag->getPTASVFStmtSet(kind);
73
73
  }
@@ -291,7 +291,7 @@ public:
291
291
  inline bool isZeroOffsettedGepCGEdge(ConstraintEdge *edge) const
292
292
  {
293
293
  if (NormalGepCGEdge *normalGepCGEdge = SVFUtil::dyn_cast<NormalGepCGEdge>(edge))
294
- if (0 == normalGepCGEdge->getFieldOffset())
294
+ if (0 == normalGepCGEdge->getConstantFieldIdx())
295
295
  return true;
296
296
  return false;
297
297
  }
@@ -304,7 +304,7 @@ public:
304
304
  }
305
305
 
306
306
  /// Get location set of the gep edge
307
- inline s64_t getFieldOffset() const
307
+ inline s64_t getConstantFieldIdx() const
308
308
  {
309
309
  return ls.accumulateConstantFieldIdx();
310
310
  }
@@ -427,7 +427,7 @@ protected:
427
427
  void addVFGNodes();
428
428
 
429
429
  /// Get PAGEdge set
430
- virtual inline PAGEdge::SVFStmtSetTy& getPAGEdgeSet(PAGEdge::PEDGEK kind)
430
+ virtual inline SVFStmt::SVFStmtSetTy& getPAGEdgeSet(SVFStmt::PEDGEK kind)
431
431
  {
432
432
  if (isPtrOnlySVFG())
433
433
  return pag->getPTASVFStmtSet(kind);
@@ -435,7 +435,7 @@ protected:
435
435
  return pag->getSVFStmtSet(kind);
436
436
  }
437
437
 
438
- virtual inline bool isInterestedPAGNode(const PAGNode* node) const
438
+ virtual inline bool isInterestedPAGNode(const SVFVar* node) const
439
439
  {
440
440
  if (isPtrOnlySVFG())
441
441
  return node->isPointer();
@@ -649,9 +649,9 @@ private:
649
649
  /// Add Gep edge
650
650
  GepStmt* addGepStmt(NodeID src, NodeID dst, const LocationSet& ls, bool constGep);
651
651
  /// Add Offset(Gep) edge
652
- NormalGepStmt* addNormalGepStmt(NodeID src, NodeID dst, const LocationSet& ls);
652
+ GepStmt* addNormalGepStmt(NodeID src, NodeID dst, const LocationSet& ls);
653
653
  /// Add Variant(Gep) edge
654
- VariantGepStmt* addVariantGepStmt(NodeID src, NodeID dst, const LocationSet& ls);
654
+ GepStmt* addVariantGepStmt(NodeID src, NodeID dst, const LocationSet& ls);
655
655
  /// Add Thread fork edge for parameter passing
656
656
  TDForkPE* addThreadForkPE(NodeID src, NodeID dst, const CallICFGNode* cs);
657
657
  /// Add Thread join edge for parameter passing