svf-tools 1.0.853 → 1.0.855

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 (325) hide show
  1. package/SVF-doxygen/html/AE_2CMakeLists_8txt.html +106 -0
  2. package/SVF-doxygen/html/AndersenStat_8cpp_source.html +19 -12
  3. package/SVF-doxygen/html/Andersen_8cpp_source.html +3 -3
  4. package/SVF-doxygen/html/Andersen_8h_source.html +4 -4
  5. package/SVF-doxygen/html/CFLStat_8cpp_source.html +1 -1
  6. package/SVF-doxygen/html/CMakeLists_8txt.html +5 -5
  7. package/SVF-doxygen/html/CSC_8cpp_source.html +2 -2
  8. package/SVF-doxygen/html/ConsGNode_8h_source.html +4 -4
  9. package/SVF-doxygen/html/ConsG_8cpp_source.html +663 -644
  10. package/SVF-doxygen/html/ConsG_8h_source.html +335 -332
  11. package/SVF-doxygen/html/DDAClient_8cpp_source.html +4 -4
  12. package/SVF-doxygen/html/DDAStat_8cpp_source.html +249 -252
  13. package/SVF-doxygen/html/DDAStat_8h_source.html +70 -93
  14. package/SVF-doxygen/html/FlowSensitiveStat_8cpp_source.html +1 -1
  15. package/SVF-doxygen/html/PTAStat_8cpp_source.html +107 -83
  16. package/SVF-doxygen/html/PTAStat_8h_source.html +38 -13
  17. package/SVF-doxygen/html/PointerAnalysis_8cpp_source.html +1 -1
  18. package/SVF-doxygen/html/Steensgaard_8h_source.html +1 -1
  19. package/SVF-doxygen/html/VersionedFlowSensitiveStat_8cpp_source.html +1 -1
  20. package/SVF-doxygen/html/WPAStat_8h_source.html +1 -1
  21. package/SVF-doxygen/html/ae_8cpp.html +179 -0
  22. package/SVF-doxygen/html/ae_8cpp_source.html +738 -0
  23. package/SVF-doxygen/html/annotated.html +1 -0
  24. package/SVF-doxygen/html/classSVF_1_1AddrCGEdge.html +11 -11
  25. package/SVF-doxygen/html/classSVF_1_1Andersen.html +20 -20
  26. package/SVF-doxygen/html/classSVF_1_1AndersenBase.html +10 -10
  27. package/SVF-doxygen/html/classSVF_1_1AndersenSCD.html +1 -1
  28. package/SVF-doxygen/html/classSVF_1_1AndersenSFR.html +3 -3
  29. package/SVF-doxygen/html/classSVF_1_1AndersenStat-members.html +8 -2
  30. package/SVF-doxygen/html/classSVF_1_1AndersenStat.html +34 -12
  31. package/SVF-doxygen/html/classSVF_1_1AndersenWaveDiff.html +1 -1
  32. package/SVF-doxygen/html/classSVF_1_1CFLStat-members.html +8 -2
  33. package/SVF-doxygen/html/classSVF_1_1CFLStat.html +16 -1
  34. package/SVF-doxygen/html/classSVF_1_1CSC.html +5 -5
  35. package/SVF-doxygen/html/classSVF_1_1ConstraintGraph-members.html +81 -80
  36. package/SVF-doxygen/html/classSVF_1_1ConstraintGraph.html +672 -623
  37. package/SVF-doxygen/html/classSVF_1_1ConstraintNode.html +28 -28
  38. package/SVF-doxygen/html/classSVF_1_1DDAClient.html +4 -4
  39. package/SVF-doxygen/html/classSVF_1_1DDAStat-members.html +7 -7
  40. package/SVF-doxygen/html/classSVF_1_1DDAStat.html +283 -463
  41. package/SVF-doxygen/html/classSVF_1_1FlowSensitiveStat-members.html +9 -3
  42. package/SVF-doxygen/html/classSVF_1_1FlowSensitiveStat.html +17 -2
  43. package/SVF-doxygen/html/classSVF_1_1ICFGStat-members.html +9 -3
  44. package/SVF-doxygen/html/classSVF_1_1ICFGStat.html +15 -0
  45. package/SVF-doxygen/html/classSVF_1_1MTAStat-members.html +7 -1
  46. package/SVF-doxygen/html/classSVF_1_1MTAStat.html +15 -0
  47. package/SVF-doxygen/html/classSVF_1_1MemSSAStat-members.html +9 -3
  48. package/SVF-doxygen/html/classSVF_1_1MemSSAStat.html +15 -0
  49. package/SVF-doxygen/html/classSVF_1_1PTAStat-members.html +7 -1
  50. package/SVF-doxygen/html/classSVF_1_1PTAStat.html +300 -84
  51. package/SVF-doxygen/html/classSVF_1_1PointerAnalysis.html +1 -1
  52. package/SVF-doxygen/html/classSVF_1_1SVFGStat-members.html +7 -1
  53. package/SVF-doxygen/html/classSVF_1_1SVFGStat.html +15 -0
  54. package/SVF-doxygen/html/classSVF_1_1Steensgaard.html +3 -3
  55. package/SVF-doxygen/html/classSVF_1_1TypeAnalysis.html +1 -1
  56. package/SVF-doxygen/html/classSVF_1_1VersionedFlowSensitiveStat-members.html +9 -3
  57. package/SVF-doxygen/html/classSVF_1_1VersionedFlowSensitiveStat.html +17 -2
  58. package/SVF-doxygen/html/classSymblicAbstractionTest-members.html +99 -0
  59. package/SVF-doxygen/html/classSymblicAbstractionTest.html +1282 -0
  60. package/SVF-doxygen/html/classes.html +56 -55
  61. package/SVF-doxygen/html/dir_454f632bef84d62ecd1cf13bd508acc9.html +86 -0
  62. package/SVF-doxygen/html/dir_e5d21102e3a998263c6c7812ac857e9d.html +2 -0
  63. package/SVF-doxygen/html/files.html +22 -20
  64. package/SVF-doxygen/html/functions.html +4 -4
  65. package/SVF-doxygen/html/functions_b.html +16 -10
  66. package/SVF-doxygen/html/functions_c.html +27 -24
  67. package/SVF-doxygen/html/functions_f.html +3 -3
  68. package/SVF-doxygen/html/functions_func_b.html +9 -3
  69. package/SVF-doxygen/html/functions_func_c.html +22 -19
  70. package/SVF-doxygen/html/functions_func_g.html +17 -16
  71. package/SVF-doxygen/html/functions_func_n.html +1 -1
  72. package/SVF-doxygen/html/functions_func_r.html +5 -2
  73. package/SVF-doxygen/html/functions_func_s.html +18 -15
  74. package/SVF-doxygen/html/functions_func_t.html +41 -1
  75. package/SVF-doxygen/html/functions_func_~.html +3 -0
  76. package/SVF-doxygen/html/functions_g.html +16 -15
  77. package/SVF-doxygen/html/functions_i.html +3 -3
  78. package/SVF-doxygen/html/functions_l.html +3 -3
  79. package/SVF-doxygen/html/functions_n.html +6 -6
  80. package/SVF-doxygen/html/functions_o.html +3 -3
  81. package/SVF-doxygen/html/functions_p.html +12 -12
  82. package/SVF-doxygen/html/functions_r.html +9 -6
  83. package/SVF-doxygen/html/functions_s.html +22 -19
  84. package/SVF-doxygen/html/functions_t.html +47 -7
  85. package/SVF-doxygen/html/functions_v.html +3 -3
  86. package/SVF-doxygen/html/functions_vars.html +4 -4
  87. package/SVF-doxygen/html/functions_w.html +9 -7
  88. package/SVF-doxygen/html/functions_~.html +3 -0
  89. package/SVF-doxygen/html/globals_a.html +2 -2
  90. package/SVF-doxygen/html/globals_func_a.html +2 -2
  91. package/SVF-doxygen/html/globals_func_m.html +5 -4
  92. package/SVF-doxygen/html/globals_m.html +5 -4
  93. package/SVF-doxygen/html/globals_s.html +3 -0
  94. package/SVF-doxygen/html/globals_vars.html +3 -0
  95. package/SVF-doxygen/html/hierarchy.html +40 -39
  96. package/SVF-doxygen/html/search/all_0.js +4 -4
  97. package/SVF-doxygen/html/search/all_1.js +133 -132
  98. package/SVF-doxygen/html/search/all_10.js +325 -325
  99. package/SVF-doxygen/html/search/all_11.js +225 -224
  100. package/SVF-doxygen/html/search/all_12.js +554 -552
  101. package/SVF-doxygen/html/search/all_13.js +203 -190
  102. package/SVF-doxygen/html/search/all_14.js +67 -67
  103. package/SVF-doxygen/html/search/all_15.js +168 -168
  104. package/SVF-doxygen/html/search/all_16.js +63 -63
  105. package/SVF-doxygen/html/search/all_17.js +1 -1
  106. package/SVF-doxygen/html/search/all_18.js +1 -1
  107. package/SVF-doxygen/html/search/all_19.js +11 -11
  108. package/SVF-doxygen/html/search/all_1a.js +175 -174
  109. package/SVF-doxygen/html/search/all_2.js +173 -171
  110. package/SVF-doxygen/html/search/all_3.js +649 -648
  111. package/SVF-doxygen/html/search/all_4.js +230 -230
  112. package/SVF-doxygen/html/search/all_5.js +119 -119
  113. package/SVF-doxygen/html/search/all_6.js +226 -226
  114. package/SVF-doxygen/html/search/all_7.js +1048 -1048
  115. package/SVF-doxygen/html/search/all_8.js +196 -196
  116. package/SVF-doxygen/html/search/all_9.js +605 -605
  117. package/SVF-doxygen/html/search/all_a.js +46 -46
  118. package/SVF-doxygen/html/search/all_b.js +26 -26
  119. package/SVF-doxygen/html/search/all_c.js +115 -115
  120. package/SVF-doxygen/html/search/all_d.js +197 -197
  121. package/SVF-doxygen/html/search/all_e.js +207 -207
  122. package/SVF-doxygen/html/search/all_f.js +116 -116
  123. package/SVF-doxygen/html/search/classes_0.js +26 -26
  124. package/SVF-doxygen/html/search/classes_1.js +9 -9
  125. package/SVF-doxygen/html/search/classes_10.js +74 -73
  126. package/SVF-doxygen/html/search/classes_11.js +15 -15
  127. package/SVF-doxygen/html/search/classes_12.js +2 -2
  128. package/SVF-doxygen/html/search/classes_13.js +10 -10
  129. package/SVF-doxygen/html/search/classes_14.js +14 -14
  130. package/SVF-doxygen/html/search/classes_15.js +1 -1
  131. package/SVF-doxygen/html/search/classes_2.js +81 -81
  132. package/SVF-doxygen/html/search/classes_3.js +37 -37
  133. package/SVF-doxygen/html/search/classes_4.js +9 -9
  134. package/SVF-doxygen/html/search/classes_5.js +28 -28
  135. package/SVF-doxygen/html/search/classes_6.js +104 -104
  136. package/SVF-doxygen/html/search/classes_7.js +34 -34
  137. package/SVF-doxygen/html/search/classes_8.js +57 -57
  138. package/SVF-doxygen/html/search/classes_9.js +1 -1
  139. package/SVF-doxygen/html/search/classes_a.js +12 -12
  140. package/SVF-doxygen/html/search/classes_b.js +29 -29
  141. package/SVF-doxygen/html/search/classes_c.js +6 -6
  142. package/SVF-doxygen/html/search/classes_d.js +18 -18
  143. package/SVF-doxygen/html/search/classes_e.js +36 -36
  144. package/SVF-doxygen/html/search/classes_f.js +25 -25
  145. package/SVF-doxygen/html/search/defines_0.js +3 -3
  146. package/SVF-doxygen/html/search/defines_1.js +2 -2
  147. package/SVF-doxygen/html/search/defines_2.js +30 -30
  148. package/SVF-doxygen/html/search/defines_3.js +20 -20
  149. package/SVF-doxygen/html/search/defines_4.js +2 -2
  150. package/SVF-doxygen/html/search/defines_5.js +4 -4
  151. package/SVF-doxygen/html/search/defines_6.js +2 -2
  152. package/SVF-doxygen/html/search/defines_7.js +5 -5
  153. package/SVF-doxygen/html/search/defines_8.js +11 -11
  154. package/SVF-doxygen/html/search/defines_9.js +9 -9
  155. package/SVF-doxygen/html/search/defines_a.js +2 -2
  156. package/SVF-doxygen/html/search/defines_b.js +1 -1
  157. package/SVF-doxygen/html/search/defines_c.js +3 -3
  158. package/SVF-doxygen/html/search/defines_d.js +2 -2
  159. package/SVF-doxygen/html/search/defines_e.js +7 -7
  160. package/SVF-doxygen/html/search/defines_f.js +3 -3
  161. package/SVF-doxygen/html/search/enums_0.js +3 -3
  162. package/SVF-doxygen/html/search/enums_1.js +2 -2
  163. package/SVF-doxygen/html/search/enums_10.js +1 -1
  164. package/SVF-doxygen/html/search/enums_11.js +1 -1
  165. package/SVF-doxygen/html/search/enums_2.js +8 -8
  166. package/SVF-doxygen/html/search/enums_3.js +1 -1
  167. package/SVF-doxygen/html/search/enums_4.js +3 -3
  168. package/SVF-doxygen/html/search/enums_5.js +1 -1
  169. package/SVF-doxygen/html/search/enums_6.js +2 -2
  170. package/SVF-doxygen/html/search/enums_7.js +2 -2
  171. package/SVF-doxygen/html/search/enums_8.js +4 -4
  172. package/SVF-doxygen/html/search/enums_9.js +1 -1
  173. package/SVF-doxygen/html/search/enums_a.js +1 -1
  174. package/SVF-doxygen/html/search/enums_b.js +7 -7
  175. package/SVF-doxygen/html/search/enums_c.js +1 -1
  176. package/SVF-doxygen/html/search/enums_d.js +4 -4
  177. package/SVF-doxygen/html/search/enums_e.js +2 -2
  178. package/SVF-doxygen/html/search/enums_f.js +4 -4
  179. package/SVF-doxygen/html/search/enumvalues_0.js +14 -14
  180. package/SVF-doxygen/html/search/enumvalues_1.js +14 -14
  181. package/SVF-doxygen/html/search/enumvalues_10.js +35 -35
  182. package/SVF-doxygen/html/search/enumvalues_11.js +3 -3
  183. package/SVF-doxygen/html/search/enumvalues_12.js +10 -10
  184. package/SVF-doxygen/html/search/enumvalues_13.js +1 -1
  185. package/SVF-doxygen/html/search/enumvalues_14.js +1 -1
  186. package/SVF-doxygen/html/search/enumvalues_15.js +3 -3
  187. package/SVF-doxygen/html/search/enumvalues_2.js +36 -36
  188. package/SVF-doxygen/html/search/enumvalues_3.js +13 -13
  189. package/SVF-doxygen/html/search/enumvalues_4.js +2 -2
  190. package/SVF-doxygen/html/search/enumvalues_5.js +47 -47
  191. package/SVF-doxygen/html/search/enumvalues_6.js +6 -6
  192. package/SVF-doxygen/html/search/enumvalues_7.js +8 -8
  193. package/SVF-doxygen/html/search/enumvalues_8.js +23 -23
  194. package/SVF-doxygen/html/search/enumvalues_9.js +6 -6
  195. package/SVF-doxygen/html/search/enumvalues_a.js +15 -15
  196. package/SVF-doxygen/html/search/enumvalues_b.js +11 -11
  197. package/SVF-doxygen/html/search/enumvalues_c.js +5 -5
  198. package/SVF-doxygen/html/search/enumvalues_d.js +18 -18
  199. package/SVF-doxygen/html/search/enumvalues_e.js +9 -9
  200. package/SVF-doxygen/html/search/enumvalues_f.js +45 -45
  201. package/SVF-doxygen/html/search/files_0.js +14 -13
  202. package/SVF-doxygen/html/search/files_1.js +7 -7
  203. package/SVF-doxygen/html/search/files_10.js +8 -8
  204. package/SVF-doxygen/html/search/files_11.js +8 -8
  205. package/SVF-doxygen/html/search/files_12.js +2 -2
  206. package/SVF-doxygen/html/search/files_2.js +57 -57
  207. package/SVF-doxygen/html/search/files_3.js +14 -14
  208. package/SVF-doxygen/html/search/files_4.js +5 -5
  209. package/SVF-doxygen/html/search/files_5.js +13 -13
  210. package/SVF-doxygen/html/search/files_6.js +9 -9
  211. package/SVF-doxygen/html/search/files_7.js +14 -14
  212. package/SVF-doxygen/html/search/files_8.js +13 -13
  213. package/SVF-doxygen/html/search/files_9.js +18 -18
  214. package/SVF-doxygen/html/search/files_a.js +3 -3
  215. package/SVF-doxygen/html/search/files_b.js +2 -2
  216. package/SVF-doxygen/html/search/files_c.js +20 -20
  217. package/SVF-doxygen/html/search/files_d.js +4 -4
  218. package/SVF-doxygen/html/search/files_e.js +62 -62
  219. package/SVF-doxygen/html/search/files_f.js +8 -8
  220. package/SVF-doxygen/html/search/functions_0.js +13 -13
  221. package/SVF-doxygen/html/search/functions_1.js +364 -364
  222. package/SVF-doxygen/html/search/functions_10.js +140 -140
  223. package/SVF-doxygen/html/search/functions_11.js +140 -139
  224. package/SVF-doxygen/html/search/functions_12.js +289 -288
  225. package/SVF-doxygen/html/search/functions_13.js +72 -59
  226. package/SVF-doxygen/html/search/functions_14.js +39 -39
  227. package/SVF-doxygen/html/search/functions_15.js +71 -71
  228. package/SVF-doxygen/html/search/functions_16.js +32 -32
  229. package/SVF-doxygen/html/search/functions_17.js +3 -3
  230. package/SVF-doxygen/html/search/functions_18.js +175 -174
  231. package/SVF-doxygen/html/search/functions_2.js +91 -89
  232. package/SVF-doxygen/html/search/functions_3.js +262 -261
  233. package/SVF-doxygen/html/search/functions_4.js +78 -78
  234. package/SVF-doxygen/html/search/functions_5.js +53 -53
  235. package/SVF-doxygen/html/search/functions_6.js +60 -60
  236. package/SVF-doxygen/html/search/functions_7.js +857 -857
  237. package/SVF-doxygen/html/search/functions_8.js +148 -148
  238. package/SVF-doxygen/html/search/functions_9.js +421 -421
  239. package/SVF-doxygen/html/search/functions_a.js +30 -30
  240. package/SVF-doxygen/html/search/functions_b.js +2 -2
  241. package/SVF-doxygen/html/search/functions_c.js +25 -25
  242. package/SVF-doxygen/html/search/functions_d.js +79 -79
  243. package/SVF-doxygen/html/search/functions_e.js +35 -35
  244. package/SVF-doxygen/html/search/functions_f.js +56 -56
  245. package/SVF-doxygen/html/search/namespaces_0.js +1 -1
  246. package/SVF-doxygen/html/search/namespaces_1.js +7 -7
  247. package/SVF-doxygen/html/search/related_0.js +2 -2
  248. package/SVF-doxygen/html/search/related_1.js +2 -2
  249. package/SVF-doxygen/html/search/related_2.js +3 -3
  250. package/SVF-doxygen/html/search/related_3.js +2 -2
  251. package/SVF-doxygen/html/search/related_4.js +2 -2
  252. package/SVF-doxygen/html/search/related_5.js +1 -1
  253. package/SVF-doxygen/html/search/related_6.js +2 -2
  254. package/SVF-doxygen/html/search/related_7.js +4 -4
  255. package/SVF-doxygen/html/search/related_8.js +2 -2
  256. package/SVF-doxygen/html/search/related_9.js +4 -4
  257. package/SVF-doxygen/html/search/related_a.js +19 -19
  258. package/SVF-doxygen/html/search/related_b.js +4 -4
  259. package/SVF-doxygen/html/search/related_c.js +2 -2
  260. package/SVF-doxygen/html/search/related_d.js +12 -12
  261. package/SVF-doxygen/html/search/related_e.js +2 -2
  262. package/SVF-doxygen/html/search/related_f.js +2 -2
  263. package/SVF-doxygen/html/search/typedefs_0.js +19 -19
  264. package/SVF-doxygen/html/search/typedefs_1.js +26 -26
  265. package/SVF-doxygen/html/search/typedefs_10.js +62 -62
  266. package/SVF-doxygen/html/search/typedefs_11.js +13 -13
  267. package/SVF-doxygen/html/search/typedefs_12.js +11 -11
  268. package/SVF-doxygen/html/search/typedefs_13.js +33 -33
  269. package/SVF-doxygen/html/search/typedefs_14.js +8 -8
  270. package/SVF-doxygen/html/search/typedefs_2.js +129 -129
  271. package/SVF-doxygen/html/search/typedefs_3.js +39 -39
  272. package/SVF-doxygen/html/search/typedefs_4.js +17 -17
  273. package/SVF-doxygen/html/search/typedefs_5.js +41 -41
  274. package/SVF-doxygen/html/search/typedefs_6.js +56 -56
  275. package/SVF-doxygen/html/search/typedefs_7.js +44 -44
  276. package/SVF-doxygen/html/search/typedefs_8.js +1 -1
  277. package/SVF-doxygen/html/search/typedefs_9.js +6 -6
  278. package/SVF-doxygen/html/search/typedefs_a.js +29 -29
  279. package/SVF-doxygen/html/search/typedefs_b.js +29 -29
  280. package/SVF-doxygen/html/search/typedefs_c.js +41 -41
  281. package/SVF-doxygen/html/search/typedefs_d.js +14 -14
  282. package/SVF-doxygen/html/search/typedefs_e.js +52 -52
  283. package/SVF-doxygen/html/search/typedefs_f.js +14 -14
  284. package/SVF-doxygen/html/search/variables_0.js +151 -151
  285. package/SVF-doxygen/html/search/variables_1.js +76 -76
  286. package/SVF-doxygen/html/search/variables_10.js +98 -98
  287. package/SVF-doxygen/html/search/variables_11.js +45 -45
  288. package/SVF-doxygen/html/search/variables_12.js +91 -90
  289. package/SVF-doxygen/html/search/variables_13.js +74 -74
  290. package/SVF-doxygen/html/search/variables_14.js +14 -14
  291. package/SVF-doxygen/html/search/variables_15.js +49 -49
  292. package/SVF-doxygen/html/search/variables_16.js +9 -9
  293. package/SVF-doxygen/html/search/variables_17.js +1 -1
  294. package/SVF-doxygen/html/search/variables_18.js +2 -2
  295. package/SVF-doxygen/html/search/variables_2.js +38 -38
  296. package/SVF-doxygen/html/search/variables_3.js +142 -142
  297. package/SVF-doxygen/html/search/variables_4.js +50 -50
  298. package/SVF-doxygen/html/search/variables_5.js +37 -37
  299. package/SVF-doxygen/html/search/variables_6.js +66 -66
  300. package/SVF-doxygen/html/search/variables_7.js +34 -34
  301. package/SVF-doxygen/html/search/variables_8.js +7 -7
  302. package/SVF-doxygen/html/search/variables_9.js +78 -78
  303. package/SVF-doxygen/html/search/variables_a.js +4 -4
  304. package/SVF-doxygen/html/search/variables_b.js +10 -10
  305. package/SVF-doxygen/html/search/variables_c.js +45 -45
  306. package/SVF-doxygen/html/search/variables_d.js +55 -55
  307. package/SVF-doxygen/html/search/variables_e.js +123 -123
  308. package/SVF-doxygen/html/search/variables_f.js +30 -30
  309. package/SVF-doxygen/html/structSVF_1_1DOTGraphTraits_3_01ConstraintGraph_01_5_01_4.html +118 -118
  310. package/SVF-doxygen/html/structSVF_1_1GenericGraphTraits_3_01Inverse_3_01SVF_1_1ConstraintNode_01_5_01_4_01_4.html +1 -1
  311. package/SVF-doxygen/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1ConstraintGraph_01_5_01_4.html +2 -2
  312. package/SVF-doxygen/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1ConstraintNode_01_5_01_4.html +1 -1
  313. package/build.sh +1 -1
  314. package/package.json +1 -1
  315. package/svf/include/DDA/DDAStat.h +0 -17
  316. package/svf/include/Graphs/ConsG.h +2 -0
  317. package/svf/include/Util/PTAStat.h +19 -1
  318. package/svf/lib/DDA/DDAStat.cpp +0 -3
  319. package/svf/lib/Graphs/ConsG.cpp +20 -0
  320. package/svf/lib/Util/PTAStat.cpp +17 -1
  321. package/svf/lib/WPA/Andersen.cpp +2 -2
  322. package/svf/lib/WPA/AndersenStat.cpp +3 -0
  323. package/svf-llvm/tools/AE/CMakeLists.txt +2 -0
  324. package/svf-llvm/tools/AE/ae.cpp +607 -0
  325. package/svf-llvm/tools/CMakeLists.txt +3 -2
@@ -172,7 +172,7 @@ Additional Inherited Members</h2></td></tr>
172
172
  </table>
173
173
  <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
174
174
  <div class="textblock">
175
- <p class="definition">Definition at line <a class="el" href="ConsG_8cpp_source.html#l00705">705</a> of file <a class="el" href="ConsG_8cpp_source.html">ConsG.cpp</a>.</p>
175
+ <p class="definition">Definition at line <a class="el" href="ConsG_8cpp_source.html#l00725">725</a> of file <a class="el" href="ConsG_8cpp_source.html">ConsG.cpp</a>.</p>
176
176
  </div><h2 class="groupheader">Member Typedef Documentation</h2>
177
177
  <a id="a94e74890f433758f3a38238f59400a3f"></a>
178
178
  <h2 class="memtitle"><span class="permalink"><a href="#a94e74890f433758f3a38238f59400a3f">&#9670;&nbsp;</a></span>NodeType</h2>
@@ -186,7 +186,7 @@ Additional Inherited Members</h2></td></tr>
186
186
  </table>
187
187
  </div><div class="memdoc">
188
188
 
189
- <p class="definition">Definition at line <a class="el" href="ConsG_8cpp_source.html#l00708">708</a> of file <a class="el" href="ConsG_8cpp_source.html">ConsG.cpp</a>.</p>
189
+ <p class="definition">Definition at line <a class="el" href="ConsG_8cpp_source.html#l00728">728</a> of file <a class="el" href="ConsG_8cpp_source.html">ConsG.cpp</a>.</p>
190
190
 
191
191
  </div>
192
192
  </div>
@@ -215,11 +215,11 @@ Additional Inherited Members</h2></td></tr>
215
215
  </table>
216
216
  </div><div class="memdoc">
217
217
 
218
- <p class="definition">Definition at line <a class="el" href="ConsG_8cpp_source.html#l00709">709</a> of file <a class="el" href="ConsG_8cpp_source.html">ConsG.cpp</a>.</p>
219
- <div class="fragment"><div class="line"><a name="l00709"></a><span class="lineno"> 709</span>&#160; :</div>
220
- <div class="line"><a name="l00710"></a><span class="lineno"> 710</span>&#160; <a class="code" href="structSVF_1_1DOTGraphTraits.html">DOTGraphTraits&lt;SVFIR*&gt;</a>(<a class="code" href="structSVF_1_1DefaultDOTGraphTraits.html#acc82bc6228128e5bb98a6b00d6dc5f77">isSimple</a>)</div>
221
- <div class="line"><a name="l00711"></a><span class="lineno"> 711</span>&#160; {</div>
222
- <div class="line"><a name="l00712"></a><span class="lineno"> 712</span>&#160; }</div>
218
+ <p class="definition">Definition at line <a class="el" href="ConsG_8cpp_source.html#l00729">729</a> of file <a class="el" href="ConsG_8cpp_source.html">ConsG.cpp</a>.</p>
219
+ <div class="fragment"><div class="line"><a name="l00729"></a><span class="lineno"> 729</span>&#160; :</div>
220
+ <div class="line"><a name="l00730"></a><span class="lineno"> 730</span>&#160; <a class="code" href="structSVF_1_1DOTGraphTraits.html">DOTGraphTraits&lt;SVFIR*&gt;</a>(<a class="code" href="structSVF_1_1DefaultDOTGraphTraits.html#acc82bc6228128e5bb98a6b00d6dc5f77">isSimple</a>)</div>
221
+ <div class="line"><a name="l00731"></a><span class="lineno"> 731</span>&#160; {</div>
222
+ <div class="line"><a name="l00732"></a><span class="lineno"> 732</span>&#160; }</div>
223
223
  </div><!-- fragment -->
224
224
  </div>
225
225
  </div>
@@ -266,37 +266,37 @@ template&lt;class EdgeIter &gt; </div>
266
266
  </table>
267
267
  </div><div class="memdoc">
268
268
 
269
- <p class="definition">Definition at line <a class="el" href="ConsG_8cpp_source.html#l00800">800</a> of file <a class="el" href="ConsG_8cpp_source.html">ConsG.cpp</a>.</p>
270
- <div class="fragment"><div class="line"><a name="l00801"></a><span class="lineno"> 801</span>&#160; {</div>
271
- <div class="line"><a name="l00802"></a><span class="lineno"> 802</span>&#160; <a class="code" href="classSVF_1_1ConstraintEdge.html">ConstraintEdge</a>* edge = *(EI.getCurrent());</div>
272
- <div class="line"><a name="l00803"></a><span class="lineno"> 803</span>&#160; assert(edge &amp;&amp; <span class="stringliteral">&quot;No edge found!!&quot;</span>);</div>
273
- <div class="line"><a name="l00804"></a><span class="lineno"> 804</span>&#160; <span class="keywordflow">if</span> (edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1ConstraintEdge.html#a663af27955ba0c545f34fa1f076b7375aed68bc43e8aae49e8590e140eb0ffaf3">ConstraintEdge::Addr</a>)</div>
274
- <div class="line"><a name="l00805"></a><span class="lineno"> 805</span>&#160; {</div>
275
- <div class="line"><a name="l00806"></a><span class="lineno"> 806</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;color=green&quot;</span>;</div>
276
- <div class="line"><a name="l00807"></a><span class="lineno"> 807</span>&#160; }</div>
277
- <div class="line"><a name="l00808"></a><span class="lineno"> 808</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1ConstraintEdge.html#a663af27955ba0c545f34fa1f076b7375a29b0aa3353f866ef1655ab6d4716feb9">ConstraintEdge::Copy</a>)</div>
278
- <div class="line"><a name="l00809"></a><span class="lineno"> 809</span>&#160; {</div>
279
- <div class="line"><a name="l00810"></a><span class="lineno"> 810</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;color=black&quot;</span>;</div>
280
- <div class="line"><a name="l00811"></a><span class="lineno"> 811</span>&#160; }</div>
281
- <div class="line"><a name="l00812"></a><span class="lineno"> 812</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1ConstraintEdge.html#a663af27955ba0c545f34fa1f076b7375acfd0a194af0da66162545f0089eb4baa">ConstraintEdge::NormalGep</a></div>
282
- <div class="line"><a name="l00813"></a><span class="lineno"> 813</span>&#160; || edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1ConstraintEdge.html#a663af27955ba0c545f34fa1f076b7375ae5df3ce07dd670b48916f7b8ab33ae5a">ConstraintEdge::VariantGep</a>)</div>
283
- <div class="line"><a name="l00814"></a><span class="lineno"> 814</span>&#160; {</div>
284
- <div class="line"><a name="l00815"></a><span class="lineno"> 815</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;color=purple&quot;</span>;</div>
285
- <div class="line"><a name="l00816"></a><span class="lineno"> 816</span>&#160; }</div>
286
- <div class="line"><a name="l00817"></a><span class="lineno"> 817</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1ConstraintEdge.html#a663af27955ba0c545f34fa1f076b7375a20d6a102ddc06257a822ffffcc5a3b47">ConstraintEdge::Store</a>)</div>
287
- <div class="line"><a name="l00818"></a><span class="lineno"> 818</span>&#160; {</div>
288
- <div class="line"><a name="l00819"></a><span class="lineno"> 819</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;color=blue&quot;</span>;</div>
289
- <div class="line"><a name="l00820"></a><span class="lineno"> 820</span>&#160; }</div>
290
- <div class="line"><a name="l00821"></a><span class="lineno"> 821</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1ConstraintEdge.html#a663af27955ba0c545f34fa1f076b7375a1bdeb9a06641d16b43391120812b40b2">ConstraintEdge::Load</a>)</div>
291
- <div class="line"><a name="l00822"></a><span class="lineno"> 822</span>&#160; {</div>
292
- <div class="line"><a name="l00823"></a><span class="lineno"> 823</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;color=red&quot;</span>;</div>
293
- <div class="line"><a name="l00824"></a><span class="lineno"> 824</span>&#160; }</div>
294
- <div class="line"><a name="l00825"></a><span class="lineno"> 825</span>&#160; <span class="keywordflow">else</span></div>
295
- <div class="line"><a name="l00826"></a><span class="lineno"> 826</span>&#160; {</div>
296
- <div class="line"><a name="l00827"></a><span class="lineno"> 827</span>&#160; assert(0 &amp;&amp; <span class="stringliteral">&quot;No such kind edge!!&quot;</span>);</div>
297
- <div class="line"><a name="l00828"></a><span class="lineno"> 828</span>&#160; }</div>
298
- <div class="line"><a name="l00829"></a><span class="lineno"> 829</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;&quot;</span>;</div>
299
- <div class="line"><a name="l00830"></a><span class="lineno"> 830</span>&#160; }</div>
269
+ <p class="definition">Definition at line <a class="el" href="ConsG_8cpp_source.html#l00820">820</a> of file <a class="el" href="ConsG_8cpp_source.html">ConsG.cpp</a>.</p>
270
+ <div class="fragment"><div class="line"><a name="l00821"></a><span class="lineno"> 821</span>&#160; {</div>
271
+ <div class="line"><a name="l00822"></a><span class="lineno"> 822</span>&#160; <a class="code" href="classSVF_1_1ConstraintEdge.html">ConstraintEdge</a>* edge = *(EI.getCurrent());</div>
272
+ <div class="line"><a name="l00823"></a><span class="lineno"> 823</span>&#160; assert(edge &amp;&amp; <span class="stringliteral">&quot;No edge found!!&quot;</span>);</div>
273
+ <div class="line"><a name="l00824"></a><span class="lineno"> 824</span>&#160; <span class="keywordflow">if</span> (edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1ConstraintEdge.html#a663af27955ba0c545f34fa1f076b7375aed68bc43e8aae49e8590e140eb0ffaf3">ConstraintEdge::Addr</a>)</div>
274
+ <div class="line"><a name="l00825"></a><span class="lineno"> 825</span>&#160; {</div>
275
+ <div class="line"><a name="l00826"></a><span class="lineno"> 826</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;color=green&quot;</span>;</div>
276
+ <div class="line"><a name="l00827"></a><span class="lineno"> 827</span>&#160; }</div>
277
+ <div class="line"><a name="l00828"></a><span class="lineno"> 828</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1ConstraintEdge.html#a663af27955ba0c545f34fa1f076b7375a29b0aa3353f866ef1655ab6d4716feb9">ConstraintEdge::Copy</a>)</div>
278
+ <div class="line"><a name="l00829"></a><span class="lineno"> 829</span>&#160; {</div>
279
+ <div class="line"><a name="l00830"></a><span class="lineno"> 830</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;color=black&quot;</span>;</div>
280
+ <div class="line"><a name="l00831"></a><span class="lineno"> 831</span>&#160; }</div>
281
+ <div class="line"><a name="l00832"></a><span class="lineno"> 832</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1ConstraintEdge.html#a663af27955ba0c545f34fa1f076b7375acfd0a194af0da66162545f0089eb4baa">ConstraintEdge::NormalGep</a></div>
282
+ <div class="line"><a name="l00833"></a><span class="lineno"> 833</span>&#160; || edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1ConstraintEdge.html#a663af27955ba0c545f34fa1f076b7375ae5df3ce07dd670b48916f7b8ab33ae5a">ConstraintEdge::VariantGep</a>)</div>
283
+ <div class="line"><a name="l00834"></a><span class="lineno"> 834</span>&#160; {</div>
284
+ <div class="line"><a name="l00835"></a><span class="lineno"> 835</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;color=purple&quot;</span>;</div>
285
+ <div class="line"><a name="l00836"></a><span class="lineno"> 836</span>&#160; }</div>
286
+ <div class="line"><a name="l00837"></a><span class="lineno"> 837</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1ConstraintEdge.html#a663af27955ba0c545f34fa1f076b7375a20d6a102ddc06257a822ffffcc5a3b47">ConstraintEdge::Store</a>)</div>
287
+ <div class="line"><a name="l00838"></a><span class="lineno"> 838</span>&#160; {</div>
288
+ <div class="line"><a name="l00839"></a><span class="lineno"> 839</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;color=blue&quot;</span>;</div>
289
+ <div class="line"><a name="l00840"></a><span class="lineno"> 840</span>&#160; }</div>
290
+ <div class="line"><a name="l00841"></a><span class="lineno"> 841</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1ConstraintEdge.html#a663af27955ba0c545f34fa1f076b7375a1bdeb9a06641d16b43391120812b40b2">ConstraintEdge::Load</a>)</div>
291
+ <div class="line"><a name="l00842"></a><span class="lineno"> 842</span>&#160; {</div>
292
+ <div class="line"><a name="l00843"></a><span class="lineno"> 843</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;color=red&quot;</span>;</div>
293
+ <div class="line"><a name="l00844"></a><span class="lineno"> 844</span>&#160; }</div>
294
+ <div class="line"><a name="l00845"></a><span class="lineno"> 845</span>&#160; <span class="keywordflow">else</span></div>
295
+ <div class="line"><a name="l00846"></a><span class="lineno"> 846</span>&#160; {</div>
296
+ <div class="line"><a name="l00847"></a><span class="lineno"> 847</span>&#160; assert(0 &amp;&amp; <span class="stringliteral">&quot;No such kind edge!!&quot;</span>);</div>
297
+ <div class="line"><a name="l00848"></a><span class="lineno"> 848</span>&#160; }</div>
298
+ <div class="line"><a name="l00849"></a><span class="lineno"> 849</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;&quot;</span>;</div>
299
+ <div class="line"><a name="l00850"></a><span class="lineno"> 850</span>&#160; }</div>
300
300
  </div><!-- fragment -->
301
301
  </div>
302
302
  </div>
@@ -336,10 +336,10 @@ template&lt;class EdgeIter &gt; </div>
336
336
  </table>
337
337
  </div><div class="memdoc">
338
338
 
339
- <p class="definition">Definition at line <a class="el" href="ConsG_8cpp_source.html#l00833">833</a> of file <a class="el" href="ConsG_8cpp_source.html">ConsG.cpp</a>.</p>
340
- <div class="fragment"><div class="line"><a name="l00834"></a><span class="lineno"> 834</span>&#160; {</div>
341
- <div class="line"><a name="l00835"></a><span class="lineno"> 835</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;&quot;</span>;</div>
342
- <div class="line"><a name="l00836"></a><span class="lineno"> 836</span>&#160; }</div>
339
+ <p class="definition">Definition at line <a class="el" href="ConsG_8cpp_source.html#l00853">853</a> of file <a class="el" href="ConsG_8cpp_source.html">ConsG.cpp</a>.</p>
340
+ <div class="fragment"><div class="line"><a name="l00854"></a><span class="lineno"> 854</span>&#160; {</div>
341
+ <div class="line"><a name="l00855"></a><span class="lineno"> 855</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;&quot;</span>;</div>
342
+ <div class="line"><a name="l00856"></a><span class="lineno"> 856</span>&#160; }</div>
343
343
  </div><!-- fragment -->
344
344
  </div>
345
345
  </div>
@@ -369,10 +369,10 @@ template&lt;class EdgeIter &gt; </div>
369
369
 
370
370
  <p>Return name of the graph. </p>
371
371
 
372
- <p class="definition">Definition at line <a class="el" href="ConsG_8cpp_source.html#l00715">715</a> of file <a class="el" href="ConsG_8cpp_source.html">ConsG.cpp</a>.</p>
373
- <div class="fragment"><div class="line"><a name="l00716"></a><span class="lineno"> 716</span>&#160; {</div>
374
- <div class="line"><a name="l00717"></a><span class="lineno"> 717</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;ConstraintG&quot;</span>;</div>
375
- <div class="line"><a name="l00718"></a><span class="lineno"> 718</span>&#160; }</div>
372
+ <p class="definition">Definition at line <a class="el" href="ConsG_8cpp_source.html#l00735">735</a> of file <a class="el" href="ConsG_8cpp_source.html">ConsG.cpp</a>.</p>
373
+ <div class="fragment"><div class="line"><a name="l00736"></a><span class="lineno"> 736</span>&#160; {</div>
374
+ <div class="line"><a name="l00737"></a><span class="lineno"> 737</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;ConstraintG&quot;</span>;</div>
375
+ <div class="line"><a name="l00738"></a><span class="lineno"> 738</span>&#160; }</div>
376
376
  </div><!-- fragment -->
377
377
  </div>
378
378
  </div>
@@ -410,43 +410,43 @@ template&lt;class EdgeIter &gt; </div>
410
410
  </table>
411
411
  </div><div class="memdoc">
412
412
 
413
- <p class="definition">Definition at line <a class="el" href="ConsG_8cpp_source.html#l00761">761</a> of file <a class="el" href="ConsG_8cpp_source.html">ConsG.cpp</a>.</p>
414
- <div class="fragment"><div class="line"><a name="l00762"></a><span class="lineno"> 762</span>&#160; {</div>
415
- <div class="line"><a name="l00763"></a><span class="lineno"> 763</span>&#160; <a class="code" href="classSVF_1_1SVFVar.html">PAGNode</a>* node = <a class="code" href="classSVF_1_1SVFIR.html#a37cfa2aa4e7b98ef9dc8179f581a2362">SVFIR::getPAG</a>()-&gt;<a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(<a class="code" href="cJSON_8cpp.html#ab6e2ea6dc7bd57d1483413449998230a">n</a>-&gt;getId());</div>
416
- <div class="line"><a name="l00764"></a><span class="lineno"> 764</span>&#160; <span class="keywordflow">if</span> (SVFUtil::isa&lt;ValVar&gt;(node))</div>
417
- <div class="line"><a name="l00765"></a><span class="lineno"> 765</span>&#160; {</div>
418
- <div class="line"><a name="l00766"></a><span class="lineno"> 766</span>&#160; <span class="keywordflow">if</span>(SVFUtil::isa&lt;GepValVar&gt;(node))</div>
419
- <div class="line"><a name="l00767"></a><span class="lineno"> 767</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;shape=hexagon&quot;</span>;</div>
420
- <div class="line"><a name="l00768"></a><span class="lineno"> 768</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa&lt;DummyValVar&gt;(node))</div>
421
- <div class="line"><a name="l00769"></a><span class="lineno"> 769</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;shape=diamond&quot;</span>;</div>
422
- <div class="line"><a name="l00770"></a><span class="lineno"> 770</span>&#160; <span class="keywordflow">else</span></div>
423
- <div class="line"><a name="l00771"></a><span class="lineno"> 771</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;shape=box&quot;</span>;</div>
424
- <div class="line"><a name="l00772"></a><span class="lineno"> 772</span>&#160; }</div>
425
- <div class="line"><a name="l00773"></a><span class="lineno"> 773</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa&lt;ObjVar&gt;(node))</div>
426
- <div class="line"><a name="l00774"></a><span class="lineno"> 774</span>&#160; {</div>
427
- <div class="line"><a name="l00775"></a><span class="lineno"> 775</span>&#160; <span class="keywordflow">if</span>(SVFUtil::isa&lt;GepObjVar&gt;(node))</div>
428
- <div class="line"><a name="l00776"></a><span class="lineno"> 776</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;shape=doubleoctagon&quot;</span>;</div>
429
- <div class="line"><a name="l00777"></a><span class="lineno"> 777</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(SVFUtil::isa&lt;FIObjVar&gt;(node))</div>
430
- <div class="line"><a name="l00778"></a><span class="lineno"> 778</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;shape=box3d&quot;</span>;</div>
431
- <div class="line"><a name="l00779"></a><span class="lineno"> 779</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa&lt;DummyObjVar&gt;(node))</div>
432
- <div class="line"><a name="l00780"></a><span class="lineno"> 780</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;shape=tab&quot;</span>;</div>
433
- <div class="line"><a name="l00781"></a><span class="lineno"> 781</span>&#160; <span class="keywordflow">else</span></div>
434
- <div class="line"><a name="l00782"></a><span class="lineno"> 782</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;shape=component&quot;</span>;</div>
435
- <div class="line"><a name="l00783"></a><span class="lineno"> 783</span>&#160; }</div>
436
- <div class="line"><a name="l00784"></a><span class="lineno"> 784</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa&lt;RetPN&gt;(node))</div>
413
+ <p class="definition">Definition at line <a class="el" href="ConsG_8cpp_source.html#l00781">781</a> of file <a class="el" href="ConsG_8cpp_source.html">ConsG.cpp</a>.</p>
414
+ <div class="fragment"><div class="line"><a name="l00782"></a><span class="lineno"> 782</span>&#160; {</div>
415
+ <div class="line"><a name="l00783"></a><span class="lineno"> 783</span>&#160; <a class="code" href="classSVF_1_1SVFVar.html">PAGNode</a>* node = <a class="code" href="classSVF_1_1SVFIR.html#a37cfa2aa4e7b98ef9dc8179f581a2362">SVFIR::getPAG</a>()-&gt;<a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(<a class="code" href="cJSON_8cpp.html#ab6e2ea6dc7bd57d1483413449998230a">n</a>-&gt;getId());</div>
416
+ <div class="line"><a name="l00784"></a><span class="lineno"> 784</span>&#160; <span class="keywordflow">if</span> (SVFUtil::isa&lt;ValVar&gt;(node))</div>
437
417
  <div class="line"><a name="l00785"></a><span class="lineno"> 785</span>&#160; {</div>
438
- <div class="line"><a name="l00786"></a><span class="lineno"> 786</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;shape=Mrecord&quot;</span>;</div>
439
- <div class="line"><a name="l00787"></a><span class="lineno"> 787</span>&#160; }</div>
440
- <div class="line"><a name="l00788"></a><span class="lineno"> 788</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa&lt;VarArgPN&gt;(node))</div>
441
- <div class="line"><a name="l00789"></a><span class="lineno"> 789</span>&#160; {</div>
442
- <div class="line"><a name="l00790"></a><span class="lineno"> 790</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;shape=octagon&quot;</span>;</div>
443
- <div class="line"><a name="l00791"></a><span class="lineno"> 791</span>&#160; }</div>
444
- <div class="line"><a name="l00792"></a><span class="lineno"> 792</span>&#160; <span class="keywordflow">else</span></div>
445
- <div class="line"><a name="l00793"></a><span class="lineno"> 793</span>&#160; {</div>
446
- <div class="line"><a name="l00794"></a><span class="lineno"> 794</span>&#160; assert(0 &amp;&amp; <span class="stringliteral">&quot;no such kind!!&quot;</span>);</div>
447
- <div class="line"><a name="l00795"></a><span class="lineno"> 795</span>&#160; }</div>
448
- <div class="line"><a name="l00796"></a><span class="lineno"> 796</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;&quot;</span>;</div>
449
- <div class="line"><a name="l00797"></a><span class="lineno"> 797</span>&#160; }</div>
418
+ <div class="line"><a name="l00786"></a><span class="lineno"> 786</span>&#160; <span class="keywordflow">if</span>(SVFUtil::isa&lt;GepValVar&gt;(node))</div>
419
+ <div class="line"><a name="l00787"></a><span class="lineno"> 787</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;shape=hexagon&quot;</span>;</div>
420
+ <div class="line"><a name="l00788"></a><span class="lineno"> 788</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa&lt;DummyValVar&gt;(node))</div>
421
+ <div class="line"><a name="l00789"></a><span class="lineno"> 789</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;shape=diamond&quot;</span>;</div>
422
+ <div class="line"><a name="l00790"></a><span class="lineno"> 790</span>&#160; <span class="keywordflow">else</span></div>
423
+ <div class="line"><a name="l00791"></a><span class="lineno"> 791</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;shape=box&quot;</span>;</div>
424
+ <div class="line"><a name="l00792"></a><span class="lineno"> 792</span>&#160; }</div>
425
+ <div class="line"><a name="l00793"></a><span class="lineno"> 793</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa&lt;ObjVar&gt;(node))</div>
426
+ <div class="line"><a name="l00794"></a><span class="lineno"> 794</span>&#160; {</div>
427
+ <div class="line"><a name="l00795"></a><span class="lineno"> 795</span>&#160; <span class="keywordflow">if</span>(SVFUtil::isa&lt;GepObjVar&gt;(node))</div>
428
+ <div class="line"><a name="l00796"></a><span class="lineno"> 796</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;shape=doubleoctagon&quot;</span>;</div>
429
+ <div class="line"><a name="l00797"></a><span class="lineno"> 797</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(SVFUtil::isa&lt;FIObjVar&gt;(node))</div>
430
+ <div class="line"><a name="l00798"></a><span class="lineno"> 798</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;shape=box3d&quot;</span>;</div>
431
+ <div class="line"><a name="l00799"></a><span class="lineno"> 799</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa&lt;DummyObjVar&gt;(node))</div>
432
+ <div class="line"><a name="l00800"></a><span class="lineno"> 800</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;shape=tab&quot;</span>;</div>
433
+ <div class="line"><a name="l00801"></a><span class="lineno"> 801</span>&#160; <span class="keywordflow">else</span></div>
434
+ <div class="line"><a name="l00802"></a><span class="lineno"> 802</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;shape=component&quot;</span>;</div>
435
+ <div class="line"><a name="l00803"></a><span class="lineno"> 803</span>&#160; }</div>
436
+ <div class="line"><a name="l00804"></a><span class="lineno"> 804</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa&lt;RetPN&gt;(node))</div>
437
+ <div class="line"><a name="l00805"></a><span class="lineno"> 805</span>&#160; {</div>
438
+ <div class="line"><a name="l00806"></a><span class="lineno"> 806</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;shape=Mrecord&quot;</span>;</div>
439
+ <div class="line"><a name="l00807"></a><span class="lineno"> 807</span>&#160; }</div>
440
+ <div class="line"><a name="l00808"></a><span class="lineno"> 808</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa&lt;VarArgPN&gt;(node))</div>
441
+ <div class="line"><a name="l00809"></a><span class="lineno"> 809</span>&#160; {</div>
442
+ <div class="line"><a name="l00810"></a><span class="lineno"> 810</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;shape=octagon&quot;</span>;</div>
443
+ <div class="line"><a name="l00811"></a><span class="lineno"> 811</span>&#160; }</div>
444
+ <div class="line"><a name="l00812"></a><span class="lineno"> 812</span>&#160; <span class="keywordflow">else</span></div>
445
+ <div class="line"><a name="l00813"></a><span class="lineno"> 813</span>&#160; {</div>
446
+ <div class="line"><a name="l00814"></a><span class="lineno"> 814</span>&#160; assert(0 &amp;&amp; <span class="stringliteral">&quot;no such kind!!&quot;</span>);</div>
447
+ <div class="line"><a name="l00815"></a><span class="lineno"> 815</span>&#160; }</div>
448
+ <div class="line"><a name="l00816"></a><span class="lineno"> 816</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;&quot;</span>;</div>
449
+ <div class="line"><a name="l00817"></a><span class="lineno"> 817</span>&#160; }</div>
450
450
  </div><!-- fragment -->
451
451
  </div>
452
452
  </div>
@@ -485,38 +485,38 @@ template&lt;class EdgeIter &gt; </div>
485
485
  </div><div class="memdoc">
486
486
  <p>Return label of a <a class="el" href="classSVF_1_1VFG.html">VFG</a> node with two display mode Either you can choose to display the name of the value or the whole instruction </p>
487
487
 
488
- <p class="definition">Definition at line <a class="el" href="ConsG_8cpp_source.html#l00728">728</a> of file <a class="el" href="ConsG_8cpp_source.html">ConsG.cpp</a>.</p>
489
- <div class="fragment"><div class="line"><a name="l00729"></a><span class="lineno"> 729</span>&#160; {</div>
490
- <div class="line"><a name="l00730"></a><span class="lineno"> 730</span>&#160; <a class="code" href="classSVF_1_1SVFVar.html">PAGNode</a>* node = <a class="code" href="classSVF_1_1SVFIR.html#a37cfa2aa4e7b98ef9dc8179f581a2362">SVFIR::getPAG</a>()-&gt;<a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(<a class="code" href="cJSON_8cpp.html#ab6e2ea6dc7bd57d1483413449998230a">n</a>-&gt;getId());</div>
491
- <div class="line"><a name="l00731"></a><span class="lineno"> 731</span>&#160; <span class="keywordtype">bool</span> briefDisplay = <a class="code" href="classSVF_1_1Options.html#a25a3db9daa81a127a8dad86888adea6c">Options::BriefConsCGDotGraph</a>();</div>
492
- <div class="line"><a name="l00732"></a><span class="lineno"> 732</span>&#160; <span class="keywordtype">bool</span> nameDisplay = <span class="keyword">true</span>;</div>
493
- <div class="line"><a name="l00733"></a><span class="lineno"> 733</span>&#160; <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> str;</div>
494
- <div class="line"><a name="l00734"></a><span class="lineno"> 734</span>&#160; std::stringstream rawstr(str);</div>
495
- <div class="line"><a name="l00735"></a><span class="lineno"> 735</span>&#160; </div>
496
- <div class="line"><a name="l00736"></a><span class="lineno"> 736</span>&#160; <span class="keywordflow">if</span> (briefDisplay)</div>
497
- <div class="line"><a name="l00737"></a><span class="lineno"> 737</span>&#160; {</div>
498
- <div class="line"><a name="l00738"></a><span class="lineno"> 738</span>&#160; <span class="keywordflow">if</span> (SVFUtil::isa&lt;ValVar&gt;(node))</div>
499
- <div class="line"><a name="l00739"></a><span class="lineno"> 739</span>&#160; {</div>
500
- <div class="line"><a name="l00740"></a><span class="lineno"> 740</span>&#160; <span class="keywordflow">if</span> (nameDisplay)</div>
501
- <div class="line"><a name="l00741"></a><span class="lineno"> 741</span>&#160; rawstr &lt;&lt; node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>() &lt;&lt; <span class="stringliteral">&quot;:&quot;</span> &lt;&lt; node-&gt;<a class="code" href="classSVF_1_1SVFVar.html#a54b2a5ed3ed21e54eaf04182f0338333">getValueName</a>();</div>
502
- <div class="line"><a name="l00742"></a><span class="lineno"> 742</span>&#160; <span class="keywordflow">else</span></div>
503
- <div class="line"><a name="l00743"></a><span class="lineno"> 743</span>&#160; rawstr &lt;&lt; node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>();</div>
504
- <div class="line"><a name="l00744"></a><span class="lineno"> 744</span>&#160; }</div>
505
- <div class="line"><a name="l00745"></a><span class="lineno"> 745</span>&#160; <span class="keywordflow">else</span></div>
506
- <div class="line"><a name="l00746"></a><span class="lineno"> 746</span>&#160; rawstr &lt;&lt; node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>();</div>
507
- <div class="line"><a name="l00747"></a><span class="lineno"> 747</span>&#160; }</div>
508
- <div class="line"><a name="l00748"></a><span class="lineno"> 748</span>&#160; <span class="keywordflow">else</span></div>
509
- <div class="line"><a name="l00749"></a><span class="lineno"> 749</span>&#160; {</div>
510
- <div class="line"><a name="l00750"></a><span class="lineno"> 750</span>&#160; <span class="comment">// print the whole value</span></div>
511
- <div class="line"><a name="l00751"></a><span class="lineno"> 751</span>&#160; <span class="keywordflow">if</span> (!SVFUtil::isa&lt;DummyValVar&gt;(node) &amp;&amp; !SVFUtil::isa&lt;DummyObjVar&gt;(node))</div>
512
- <div class="line"><a name="l00752"></a><span class="lineno"> 752</span>&#160; rawstr &lt;&lt; node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>() &lt;&lt; <span class="stringliteral">&quot;:&quot;</span> &lt;&lt; node-&gt;<a class="code" href="classSVF_1_1SVFVar.html#ac2db6304ea5526fb446ae882983beeb0">getValue</a>()-&gt;<a class="code" href="classSVF_1_1SVFValue.html#a4a0cfe3a8f37d33ffcdca3d66026dcc3">toString</a>();</div>
513
- <div class="line"><a name="l00753"></a><span class="lineno"> 753</span>&#160; <span class="keywordflow">else</span></div>
514
- <div class="line"><a name="l00754"></a><span class="lineno"> 754</span>&#160; rawstr &lt;&lt; node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>() &lt;&lt; <span class="stringliteral">&quot;:&quot;</span>;</div>
488
+ <p class="definition">Definition at line <a class="el" href="ConsG_8cpp_source.html#l00748">748</a> of file <a class="el" href="ConsG_8cpp_source.html">ConsG.cpp</a>.</p>
489
+ <div class="fragment"><div class="line"><a name="l00749"></a><span class="lineno"> 749</span>&#160; {</div>
490
+ <div class="line"><a name="l00750"></a><span class="lineno"> 750</span>&#160; <a class="code" href="classSVF_1_1SVFVar.html">PAGNode</a>* node = <a class="code" href="classSVF_1_1SVFIR.html#a37cfa2aa4e7b98ef9dc8179f581a2362">SVFIR::getPAG</a>()-&gt;<a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(<a class="code" href="cJSON_8cpp.html#ab6e2ea6dc7bd57d1483413449998230a">n</a>-&gt;getId());</div>
491
+ <div class="line"><a name="l00751"></a><span class="lineno"> 751</span>&#160; <span class="keywordtype">bool</span> briefDisplay = <a class="code" href="classSVF_1_1Options.html#a25a3db9daa81a127a8dad86888adea6c">Options::BriefConsCGDotGraph</a>();</div>
492
+ <div class="line"><a name="l00752"></a><span class="lineno"> 752</span>&#160; <span class="keywordtype">bool</span> nameDisplay = <span class="keyword">true</span>;</div>
493
+ <div class="line"><a name="l00753"></a><span class="lineno"> 753</span>&#160; <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> str;</div>
494
+ <div class="line"><a name="l00754"></a><span class="lineno"> 754</span>&#160; std::stringstream rawstr(str);</div>
515
495
  <div class="line"><a name="l00755"></a><span class="lineno"> 755</span>&#160; </div>
516
- <div class="line"><a name="l00756"></a><span class="lineno"> 756</span>&#160; }</div>
517
- <div class="line"><a name="l00757"></a><span class="lineno"> 757</span>&#160; </div>
518
- <div class="line"><a name="l00758"></a><span class="lineno"> 758</span>&#160; <span class="keywordflow">return</span> rawstr.str();</div>
519
- <div class="line"><a name="l00759"></a><span class="lineno"> 759</span>&#160; }</div>
496
+ <div class="line"><a name="l00756"></a><span class="lineno"> 756</span>&#160; <span class="keywordflow">if</span> (briefDisplay)</div>
497
+ <div class="line"><a name="l00757"></a><span class="lineno"> 757</span>&#160; {</div>
498
+ <div class="line"><a name="l00758"></a><span class="lineno"> 758</span>&#160; <span class="keywordflow">if</span> (SVFUtil::isa&lt;ValVar&gt;(node))</div>
499
+ <div class="line"><a name="l00759"></a><span class="lineno"> 759</span>&#160; {</div>
500
+ <div class="line"><a name="l00760"></a><span class="lineno"> 760</span>&#160; <span class="keywordflow">if</span> (nameDisplay)</div>
501
+ <div class="line"><a name="l00761"></a><span class="lineno"> 761</span>&#160; rawstr &lt;&lt; node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>() &lt;&lt; <span class="stringliteral">&quot;:&quot;</span> &lt;&lt; node-&gt;<a class="code" href="classSVF_1_1SVFVar.html#a54b2a5ed3ed21e54eaf04182f0338333">getValueName</a>();</div>
502
+ <div class="line"><a name="l00762"></a><span class="lineno"> 762</span>&#160; <span class="keywordflow">else</span></div>
503
+ <div class="line"><a name="l00763"></a><span class="lineno"> 763</span>&#160; rawstr &lt;&lt; node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>();</div>
504
+ <div class="line"><a name="l00764"></a><span class="lineno"> 764</span>&#160; }</div>
505
+ <div class="line"><a name="l00765"></a><span class="lineno"> 765</span>&#160; <span class="keywordflow">else</span></div>
506
+ <div class="line"><a name="l00766"></a><span class="lineno"> 766</span>&#160; rawstr &lt;&lt; node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>();</div>
507
+ <div class="line"><a name="l00767"></a><span class="lineno"> 767</span>&#160; }</div>
508
+ <div class="line"><a name="l00768"></a><span class="lineno"> 768</span>&#160; <span class="keywordflow">else</span></div>
509
+ <div class="line"><a name="l00769"></a><span class="lineno"> 769</span>&#160; {</div>
510
+ <div class="line"><a name="l00770"></a><span class="lineno"> 770</span>&#160; <span class="comment">// print the whole value</span></div>
511
+ <div class="line"><a name="l00771"></a><span class="lineno"> 771</span>&#160; <span class="keywordflow">if</span> (!SVFUtil::isa&lt;DummyValVar&gt;(node) &amp;&amp; !SVFUtil::isa&lt;DummyObjVar&gt;(node))</div>
512
+ <div class="line"><a name="l00772"></a><span class="lineno"> 772</span>&#160; rawstr &lt;&lt; node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>() &lt;&lt; <span class="stringliteral">&quot;:&quot;</span> &lt;&lt; node-&gt;<a class="code" href="classSVF_1_1SVFVar.html#ac2db6304ea5526fb446ae882983beeb0">getValue</a>()-&gt;<a class="code" href="classSVF_1_1SVFValue.html#a4a0cfe3a8f37d33ffcdca3d66026dcc3">toString</a>();</div>
513
+ <div class="line"><a name="l00773"></a><span class="lineno"> 773</span>&#160; <span class="keywordflow">else</span></div>
514
+ <div class="line"><a name="l00774"></a><span class="lineno"> 774</span>&#160; rawstr &lt;&lt; node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>() &lt;&lt; <span class="stringliteral">&quot;:&quot;</span>;</div>
515
+ <div class="line"><a name="l00775"></a><span class="lineno"> 775</span>&#160; </div>
516
+ <div class="line"><a name="l00776"></a><span class="lineno"> 776</span>&#160; }</div>
517
+ <div class="line"><a name="l00777"></a><span class="lineno"> 777</span>&#160; </div>
518
+ <div class="line"><a name="l00778"></a><span class="lineno"> 778</span>&#160; <span class="keywordflow">return</span> rawstr.str();</div>
519
+ <div class="line"><a name="l00779"></a><span class="lineno"> 779</span>&#160; }</div>
520
520
  </div><!-- fragment -->
521
521
  </div>
522
522
  </div>
@@ -554,11 +554,11 @@ template&lt;class EdgeIter &gt; </div>
554
554
  </table>
555
555
  </div><div class="memdoc">
556
556
 
557
- <p class="definition">Definition at line <a class="el" href="ConsG_8cpp_source.html#l00720">720</a> of file <a class="el" href="ConsG_8cpp_source.html">ConsG.cpp</a>.</p>
558
- <div class="fragment"><div class="line"><a name="l00721"></a><span class="lineno"> 721</span>&#160; {</div>
559
- <div class="line"><a name="l00722"></a><span class="lineno"> 722</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Options.html#adee65a3773fbb98532538c938230e1d3">Options::ShowHiddenNode</a>()) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
560
- <div class="line"><a name="l00723"></a><span class="lineno"> 723</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">return</span> (<a class="code" href="cJSON_8cpp.html#ab6e2ea6dc7bd57d1483413449998230a">n</a>-&gt;getInEdges().empty() &amp;&amp; <a class="code" href="cJSON_8cpp.html#ab6e2ea6dc7bd57d1483413449998230a">n</a>-&gt;getOutEdges().empty());</div>
561
- <div class="line"><a name="l00724"></a><span class="lineno"> 724</span>&#160; }</div>
557
+ <p class="definition">Definition at line <a class="el" href="ConsG_8cpp_source.html#l00740">740</a> of file <a class="el" href="ConsG_8cpp_source.html">ConsG.cpp</a>.</p>
558
+ <div class="fragment"><div class="line"><a name="l00741"></a><span class="lineno"> 741</span>&#160; {</div>
559
+ <div class="line"><a name="l00742"></a><span class="lineno"> 742</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Options.html#adee65a3773fbb98532538c938230e1d3">Options::ShowHiddenNode</a>()) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
560
+ <div class="line"><a name="l00743"></a><span class="lineno"> 743</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">return</span> (<a class="code" href="cJSON_8cpp.html#ab6e2ea6dc7bd57d1483413449998230a">n</a>-&gt;getInEdges().empty() &amp;&amp; <a class="code" href="cJSON_8cpp.html#ab6e2ea6dc7bd57d1483413449998230a">n</a>-&gt;getOutEdges().empty());</div>
561
+ <div class="line"><a name="l00744"></a><span class="lineno"> 744</span>&#160; }</div>
562
562
  </div><!-- fragment -->
563
563
  </div>
564
564
  </div>
@@ -95,7 +95,7 @@ Additional Inherited Members</h2></td></tr>
95
95
  <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
96
96
  <div class="textblock"><p><a class="el" href="structSVF_1_1Inverse.html">Inverse</a> <a class="el" href="structSVF_1_1GenericGraphTraits.html">GenericGraphTraits</a> specializations for Value flow node, it is used for inverse traversal. </p>
97
97
 
98
- <p class="definition">Definition at line <a class="el" href="ConsG_8h_source.html#l00397">397</a> of file <a class="el" href="ConsG_8h_source.html">ConsG.h</a>.</p>
98
+ <p class="definition">Definition at line <a class="el" href="ConsG_8h_source.html#l00399">399</a> of file <a class="el" href="ConsG_8h_source.html">ConsG.h</a>.</p>
99
99
  </div><hr/>The documentation for this struct was generated from the following file:<ul>
100
100
  <li>/home/runner/work/SVF/SVF/svf/include/Graphs/<a class="el" href="ConsG_8h_source.html">ConsG.h</a></li>
101
101
  </ul>
@@ -94,7 +94,7 @@ Public Types</h2></td></tr>
94
94
  </table>
95
95
  <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
96
96
  <div class="textblock">
97
- <p class="definition">Definition at line <a class="el" href="ConsG_8h_source.html#l00401">401</a> of file <a class="el" href="ConsG_8h_source.html">ConsG.h</a>.</p>
97
+ <p class="definition">Definition at line <a class="el" href="ConsG_8h_source.html#l00403">403</a> of file <a class="el" href="ConsG_8h_source.html">ConsG.h</a>.</p>
98
98
  </div><h2 class="groupheader">Member Typedef Documentation</h2>
99
99
  <a id="a5cb946aa10005bc7605528bd09006090"></a>
100
100
  <h2 class="memtitle"><span class="permalink"><a href="#a5cb946aa10005bc7605528bd09006090">&#9670;&nbsp;</a></span>NodeRef</h2>
@@ -108,7 +108,7 @@ Public Types</h2></td></tr>
108
108
  </table>
109
109
  </div><div class="memdoc">
110
110
 
111
- <p class="definition">Definition at line <a class="el" href="ConsG_8h_source.html#l00403">403</a> of file <a class="el" href="ConsG_8h_source.html">ConsG.h</a>.</p>
111
+ <p class="definition">Definition at line <a class="el" href="ConsG_8h_source.html#l00405">405</a> of file <a class="el" href="ConsG_8h_source.html">ConsG.h</a>.</p>
112
112
 
113
113
  </div>
114
114
  </div>
@@ -91,7 +91,7 @@ Additional Inherited Members</h2></td></tr>
91
91
  </table>
92
92
  <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
93
93
  <div class="textblock">
94
- <p class="definition">Definition at line <a class="el" href="ConsG_8h_source.html#l00391">391</a> of file <a class="el" href="ConsG_8h_source.html">ConsG.h</a>.</p>
94
+ <p class="definition">Definition at line <a class="el" href="ConsG_8h_source.html#l00393">393</a> of file <a class="el" href="ConsG_8h_source.html">ConsG.h</a>.</p>
95
95
  </div><hr/>The documentation for this struct was generated from the following file:<ul>
96
96
  <li>/home/runner/work/SVF/SVF/svf/include/Graphs/<a class="el" href="ConsG_8h_source.html">ConsG.h</a></li>
97
97
  </ul>
package/build.sh CHANGED
@@ -6,7 +6,7 @@
6
6
  # Dependencies include: build-essential libncurses5 libncurses-dev cmake zlib1g-dev
7
7
  set -e # exit on first error
8
8
 
9
- jobs=4
9
+ jobs=8
10
10
 
11
11
  #########
12
12
  # VARs and Links
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "svf-tools",
3
- "version": "1.0.853",
3
+ "version": "1.0.855",
4
4
  "description": "* <b>[TypeClone](https://github.com/SVF-tools/SVF/wiki/TypeClone) published in our [ECOOP paper](https://yuleisui.github.io/publications/ecoop20.pdf) is now available in SVF </b> * <b>SVF now uses a single script for its build. Just type [`source ./build.sh`](https://github.com/SVF-tools/SVF/blob/master/build.sh) in your terminal, that's it!</b> * <b>SVF now supports LLVM-10.0.0! </b> * <b>We thank [bsauce](https://github.com/bsauce) for writing a user manual of SVF ([link1](https://www.jianshu.com/p/068a08ec749c) and [link2](https://www.jianshu.com/p/777c30d4240e)) in Chinese </b> * <b>SVF now supports LLVM-9.0.0 (Thank [Byoungyoung Lee](https://github.com/SVF-tools/SVF/issues/142) for his help!). </b> * <b>SVF now supports a set of [field-sensitive pointer analyses](https://yuleisui.github.io/publications/sas2019a.pdf). </b> * <b>[Use SVF as an external lib](https://github.com/SVF-tools/SVF/wiki/Using-SVF-as-a-lib-in-your-own-tool) for your own project (Contributed by [Hongxu Chen](https://github.com/HongxuChen)). </b> * <b>SVF now supports LLVM-7.0.0. </b> * <b>SVF now supports Docker. [Try SVF in Docker](https://github.com/SVF-tools/SVF/wiki/Try-SVF-in-Docker)! </b> * <b>SVF now supports [LLVM-6.0.0](https://github.com/svf-tools/SVF/pull/38) (Contributed by [Jack Anthony](https://github.com/jackanth)). </b> * <b>SVF now supports [LLVM-4.0.0](https://github.com/svf-tools/SVF/pull/23) (Contributed by Jared Carlson. Thank [Jared](https://github.com/jcarlson23) and [Will](https://github.com/dtzWill) for their in-depth [discussions](https://github.com/svf-tools/SVF/pull/18) about updating SVF!) </b> * <b>SVF now supports analysis for C++ programs.</b> <br />",
5
5
  "main": "index.js",
6
6
  "scripts": {
@@ -75,18 +75,6 @@ public:
75
75
 
76
76
  void getNumOfOOBQuery();
77
77
 
78
- inline void setMemUsageBefore(u32_t vmrss, u32_t vmsize)
79
- {
80
- _vmrssUsageBefore = vmrss;
81
- _vmsizeUsageBefore = vmsize;
82
- }
83
-
84
- inline void setMemUsageAfter(u32_t vmrss, u32_t vmsize)
85
- {
86
- _vmrssUsageAfter = vmrss;
87
- _vmsizeUsageAfter = vmsize;
88
- }
89
-
90
78
  private:
91
79
  FlowDDA* flowDDA;
92
80
  ContextDDA* contextDDA;
@@ -110,11 +98,6 @@ private:
110
98
  u32_t _NumOfConstantPtr;
111
99
  u32_t _NumOfBlackholePtr;
112
100
 
113
- u32_t _vmrssUsageBefore;
114
- u32_t _vmrssUsageAfter;
115
- u32_t _vmsizeUsageBefore;
116
- u32_t _vmsizeUsageAfter;
117
-
118
101
  double _AvgNumOfDPMAtSVFGNode;
119
102
  u32_t _MaxNumOfDPMAtSVFGNode;
120
103
 
@@ -67,6 +67,8 @@ protected:
67
67
 
68
68
  void destroy();
69
69
 
70
+ void clearSolitaries(); // remove nodes that are neither pointers nor connected with any edge
71
+
70
72
  SVFStmt::SVFStmtSetTy& getPAGEdgeSet(SVFStmt::PEDGEK kind)
71
73
  {
72
74
  return pag->getPTASVFStmtSet(kind);
@@ -53,11 +53,29 @@ public:
53
53
 
54
54
  NodeBS localVarInRecursion;
55
55
 
56
+ inline void setMemUsageBefore(u32_t vmrss, u32_t vmsize)
57
+ {
58
+ _vmrssUsageBefore = vmrss;
59
+ _vmsizeUsageBefore = vmsize;
60
+ }
61
+
62
+ inline void setMemUsageAfter(u32_t vmrss, u32_t vmsize)
63
+ {
64
+ _vmrssUsageAfter = vmrss;
65
+ _vmsizeUsageAfter = vmsize;
66
+ }
67
+
56
68
  void performStat() override;
57
69
 
58
70
  void callgraphStat() override;
59
- private:
71
+
72
+
73
+ protected:
60
74
  PointerAnalysis* pta;
75
+ u32_t _vmrssUsageBefore;
76
+ u32_t _vmrssUsageAfter;
77
+ u32_t _vmsizeUsageBefore;
78
+ u32_t _vmsizeUsageAfter;
61
79
  };
62
80
 
63
81
  } // End namespace SVF
@@ -82,9 +82,6 @@ void DDAStat::initDefault()
82
82
  _AnaTimePerQuery = 0;
83
83
  _AnaTimeCyclePerQuery = 0;
84
84
  _TotalTimeOfQueries = 0;
85
-
86
- _vmrssUsageBefore = _vmrssUsageAfter = 0;
87
- _vmsizeUsageBefore = _vmsizeUsageAfter = 0;
88
85
  }
89
86
 
90
87
  SVFG* DDAStat::getSVFG() const
@@ -139,8 +139,28 @@ void ConstraintGraph::buildCG()
139
139
  StoreStmt* edge = SVFUtil::cast<StoreStmt>(*iter);
140
140
  addStoreCGEdge(edge->getRHSVarID(),edge->getLHSVarID());
141
141
  }
142
+
143
+ clearSolitaries();
142
144
  }
143
145
 
146
+ /*!
147
+ * Remove nodes that are neither pointers nor connected with any edge
148
+ */
149
+ void ConstraintGraph::clearSolitaries()
150
+ {
151
+ Set<ConstraintNode*> nodesToRemove;
152
+ for (auto it = this->begin(); it != this->end(); ++it)
153
+ {
154
+ if (it->second->hasIncomingEdge() || it->second->hasOutgoingEdge())
155
+ continue;
156
+ if (pag->getGNode(it->first)->isPointer())
157
+ continue;
158
+ nodesToRemove.insert(it->second);
159
+ }
160
+
161
+ for (auto node : nodesToRemove)
162
+ removeConstraintNode(node);
163
+ }
144
164
 
145
165
  /*!
146
166
  * Memory has been cleaned up at GenericGraph