svf-tools 1.0.784 → 1.0.786

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 (249) hide show
  1. package/SVF-doxygen/html/CFBasicBlockG_8cpp_source.html +56 -43
  2. package/SVF-doxygen/html/CFBasicBlockG_8h_source.html +505 -494
  3. package/SVF-doxygen/html/WTO_8h_source.html +3 -3
  4. package/SVF-doxygen/html/classSVF_1_1CFBasicBlockEdge-members.html +27 -26
  5. package/SVF-doxygen/html/classSVF_1_1CFBasicBlockEdge.html +62 -19
  6. package/SVF-doxygen/html/classSVF_1_1CFBasicBlockGBuilder.html +53 -41
  7. package/SVF-doxygen/html/classSVF_1_1CFBasicBlockGWTOCycle.html +1 -1
  8. package/SVF-doxygen/html/classSVF_1_1CFBasicBlockGWTONode.html +1 -1
  9. package/SVF-doxygen/html/classSVF_1_1CFBasicBlockGraph-members.html +6 -5
  10. package/SVF-doxygen/html/classSVF_1_1CFBasicBlockGraph.html +169 -136
  11. package/SVF-doxygen/html/classSVF_1_1CFBasicBlockNode.html +177 -177
  12. package/SVF-doxygen/html/functions.html +3 -3
  13. package/SVF-doxygen/html/functions_b.html +3 -3
  14. package/SVF-doxygen/html/functions_c.html +29 -29
  15. package/SVF-doxygen/html/functions_f.html +3 -3
  16. package/SVF-doxygen/html/functions_func_c.html +21 -21
  17. package/SVF-doxygen/html/functions_func_g.html +11 -8
  18. package/SVF-doxygen/html/functions_func_h.html +4 -1
  19. package/SVF-doxygen/html/functions_func_s.html +25 -22
  20. package/SVF-doxygen/html/functions_g.html +7 -4
  21. package/SVF-doxygen/html/functions_h.html +3 -0
  22. package/SVF-doxygen/html/functions_i.html +6 -6
  23. package/SVF-doxygen/html/functions_l.html +3 -3
  24. package/SVF-doxygen/html/functions_n.html +4 -4
  25. package/SVF-doxygen/html/functions_o.html +18 -18
  26. package/SVF-doxygen/html/functions_p.html +12 -12
  27. package/SVF-doxygen/html/functions_r.html +5 -3
  28. package/SVF-doxygen/html/functions_s.html +21 -18
  29. package/SVF-doxygen/html/functions_t.html +10 -10
  30. package/SVF-doxygen/html/functions_v.html +3 -3
  31. package/SVF-doxygen/html/functions_vars.html +3 -3
  32. package/SVF-doxygen/html/namespaceSVF.html +2 -2
  33. package/SVF-doxygen/html/search/all_0.js +18 -18
  34. package/SVF-doxygen/html/search/all_10.js +324 -324
  35. package/SVF-doxygen/html/search/all_11.js +224 -224
  36. package/SVF-doxygen/html/search/all_12.js +542 -541
  37. package/SVF-doxygen/html/search/all_13.js +190 -190
  38. package/SVF-doxygen/html/search/all_14.js +67 -67
  39. package/SVF-doxygen/html/search/all_15.js +170 -170
  40. package/SVF-doxygen/html/search/all_16.js +63 -63
  41. package/SVF-doxygen/html/search/all_17.js +1 -1
  42. package/SVF-doxygen/html/search/all_18.js +1 -1
  43. package/SVF-doxygen/html/search/all_19.js +11 -11
  44. package/SVF-doxygen/html/search/all_1a.js +172 -172
  45. package/SVF-doxygen/html/search/all_2.js +1 -1
  46. package/SVF-doxygen/html/search/all_3.js +1 -1
  47. package/SVF-doxygen/html/search/all_6.js +1 -1
  48. package/SVF-doxygen/html/search/all_7.js +592 -591
  49. package/SVF-doxygen/html/search/all_8.js +195 -194
  50. package/SVF-doxygen/html/search/all_9.js +607 -607
  51. package/SVF-doxygen/html/search/all_a.js +46 -46
  52. package/SVF-doxygen/html/search/all_b.js +26 -26
  53. package/SVF-doxygen/html/search/all_c.js +116 -116
  54. package/SVF-doxygen/html/search/all_d.js +196 -196
  55. package/SVF-doxygen/html/search/all_e.js +207 -207
  56. package/SVF-doxygen/html/search/all_f.js +116 -116
  57. package/SVF-doxygen/html/search/classes_0.js +26 -26
  58. package/SVF-doxygen/html/search/classes_1.js +9 -9
  59. package/SVF-doxygen/html/search/classes_10.js +73 -73
  60. package/SVF-doxygen/html/search/classes_11.js +15 -15
  61. package/SVF-doxygen/html/search/classes_12.js +2 -2
  62. package/SVF-doxygen/html/search/classes_13.js +10 -10
  63. package/SVF-doxygen/html/search/classes_14.js +14 -14
  64. package/SVF-doxygen/html/search/classes_15.js +1 -1
  65. package/SVF-doxygen/html/search/classes_2.js +80 -80
  66. package/SVF-doxygen/html/search/classes_3.js +37 -37
  67. package/SVF-doxygen/html/search/classes_4.js +9 -9
  68. package/SVF-doxygen/html/search/classes_5.js +28 -28
  69. package/SVF-doxygen/html/search/classes_6.js +104 -104
  70. package/SVF-doxygen/html/search/classes_7.js +33 -33
  71. package/SVF-doxygen/html/search/classes_8.js +56 -56
  72. package/SVF-doxygen/html/search/classes_9.js +1 -1
  73. package/SVF-doxygen/html/search/classes_a.js +12 -12
  74. package/SVF-doxygen/html/search/classes_b.js +29 -29
  75. package/SVF-doxygen/html/search/classes_c.js +6 -6
  76. package/SVF-doxygen/html/search/classes_d.js +18 -18
  77. package/SVF-doxygen/html/search/classes_e.js +36 -36
  78. package/SVF-doxygen/html/search/classes_f.js +25 -25
  79. package/SVF-doxygen/html/search/defines_0.js +3 -3
  80. package/SVF-doxygen/html/search/defines_1.js +2 -2
  81. package/SVF-doxygen/html/search/defines_2.js +30 -30
  82. package/SVF-doxygen/html/search/defines_3.js +21 -21
  83. package/SVF-doxygen/html/search/defines_4.js +2 -2
  84. package/SVF-doxygen/html/search/defines_5.js +4 -4
  85. package/SVF-doxygen/html/search/defines_6.js +2 -2
  86. package/SVF-doxygen/html/search/defines_7.js +5 -5
  87. package/SVF-doxygen/html/search/defines_8.js +11 -11
  88. package/SVF-doxygen/html/search/defines_9.js +9 -9
  89. package/SVF-doxygen/html/search/defines_a.js +2 -2
  90. package/SVF-doxygen/html/search/defines_b.js +1 -1
  91. package/SVF-doxygen/html/search/defines_c.js +3 -3
  92. package/SVF-doxygen/html/search/defines_d.js +2 -2
  93. package/SVF-doxygen/html/search/defines_e.js +7 -7
  94. package/SVF-doxygen/html/search/defines_f.js +3 -3
  95. package/SVF-doxygen/html/search/enums_0.js +3 -3
  96. package/SVF-doxygen/html/search/enums_1.js +2 -2
  97. package/SVF-doxygen/html/search/enums_10.js +1 -1
  98. package/SVF-doxygen/html/search/enums_11.js +1 -1
  99. package/SVF-doxygen/html/search/enums_2.js +8 -8
  100. package/SVF-doxygen/html/search/enums_3.js +1 -1
  101. package/SVF-doxygen/html/search/enums_4.js +3 -3
  102. package/SVF-doxygen/html/search/enums_5.js +1 -1
  103. package/SVF-doxygen/html/search/enums_6.js +2 -2
  104. package/SVF-doxygen/html/search/enums_7.js +2 -2
  105. package/SVF-doxygen/html/search/enums_8.js +4 -4
  106. package/SVF-doxygen/html/search/enums_9.js +1 -1
  107. package/SVF-doxygen/html/search/enums_a.js +1 -1
  108. package/SVF-doxygen/html/search/enums_b.js +7 -7
  109. package/SVF-doxygen/html/search/enums_c.js +1 -1
  110. package/SVF-doxygen/html/search/enums_d.js +4 -4
  111. package/SVF-doxygen/html/search/enums_e.js +2 -2
  112. package/SVF-doxygen/html/search/enums_f.js +4 -4
  113. package/SVF-doxygen/html/search/enumvalues_0.js +14 -14
  114. package/SVF-doxygen/html/search/enumvalues_1.js +14 -14
  115. package/SVF-doxygen/html/search/enumvalues_10.js +35 -35
  116. package/SVF-doxygen/html/search/enumvalues_11.js +3 -3
  117. package/SVF-doxygen/html/search/enumvalues_12.js +10 -10
  118. package/SVF-doxygen/html/search/enumvalues_13.js +1 -1
  119. package/SVF-doxygen/html/search/enumvalues_14.js +1 -1
  120. package/SVF-doxygen/html/search/enumvalues_15.js +3 -3
  121. package/SVF-doxygen/html/search/enumvalues_2.js +36 -36
  122. package/SVF-doxygen/html/search/enumvalues_3.js +13 -13
  123. package/SVF-doxygen/html/search/enumvalues_4.js +2 -2
  124. package/SVF-doxygen/html/search/enumvalues_5.js +47 -47
  125. package/SVF-doxygen/html/search/enumvalues_6.js +6 -6
  126. package/SVF-doxygen/html/search/enumvalues_7.js +9 -9
  127. package/SVF-doxygen/html/search/enumvalues_8.js +23 -23
  128. package/SVF-doxygen/html/search/enumvalues_9.js +6 -6
  129. package/SVF-doxygen/html/search/enumvalues_a.js +15 -15
  130. package/SVF-doxygen/html/search/enumvalues_b.js +11 -11
  131. package/SVF-doxygen/html/search/enumvalues_c.js +5 -5
  132. package/SVF-doxygen/html/search/enumvalues_d.js +18 -18
  133. package/SVF-doxygen/html/search/enumvalues_e.js +9 -9
  134. package/SVF-doxygen/html/search/enumvalues_f.js +45 -45
  135. package/SVF-doxygen/html/search/files_0.js +13 -13
  136. package/SVF-doxygen/html/search/files_1.js +7 -7
  137. package/SVF-doxygen/html/search/files_10.js +8 -8
  138. package/SVF-doxygen/html/search/files_11.js +8 -8
  139. package/SVF-doxygen/html/search/files_12.js +2 -2
  140. package/SVF-doxygen/html/search/files_2.js +53 -53
  141. package/SVF-doxygen/html/search/files_3.js +14 -14
  142. package/SVF-doxygen/html/search/files_4.js +5 -5
  143. package/SVF-doxygen/html/search/files_5.js +13 -13
  144. package/SVF-doxygen/html/search/files_6.js +9 -9
  145. package/SVF-doxygen/html/search/files_7.js +14 -14
  146. package/SVF-doxygen/html/search/files_8.js +13 -13
  147. package/SVF-doxygen/html/search/files_9.js +18 -18
  148. package/SVF-doxygen/html/search/files_a.js +3 -3
  149. package/SVF-doxygen/html/search/files_b.js +2 -2
  150. package/SVF-doxygen/html/search/files_c.js +20 -20
  151. package/SVF-doxygen/html/search/files_d.js +4 -4
  152. package/SVF-doxygen/html/search/files_e.js +62 -62
  153. package/SVF-doxygen/html/search/files_f.js +8 -8
  154. package/SVF-doxygen/html/search/functions_0.js +12 -12
  155. package/SVF-doxygen/html/search/functions_1.js +356 -356
  156. package/SVF-doxygen/html/search/functions_10.js +140 -140
  157. package/SVF-doxygen/html/search/functions_11.js +138 -138
  158. package/SVF-doxygen/html/search/functions_12.js +277 -276
  159. package/SVF-doxygen/html/search/functions_13.js +58 -58
  160. package/SVF-doxygen/html/search/functions_14.js +39 -39
  161. package/SVF-doxygen/html/search/functions_15.js +71 -71
  162. package/SVF-doxygen/html/search/functions_16.js +32 -32
  163. package/SVF-doxygen/html/search/functions_17.js +3 -3
  164. package/SVF-doxygen/html/search/functions_18.js +172 -172
  165. package/SVF-doxygen/html/search/functions_2.js +86 -86
  166. package/SVF-doxygen/html/search/functions_3.js +257 -257
  167. package/SVF-doxygen/html/search/functions_4.js +75 -75
  168. package/SVF-doxygen/html/search/functions_5.js +53 -53
  169. package/SVF-doxygen/html/search/functions_6.js +59 -59
  170. package/SVF-doxygen/html/search/functions_7.js +849 -848
  171. package/SVF-doxygen/html/search/functions_8.js +147 -146
  172. package/SVF-doxygen/html/search/functions_9.js +425 -425
  173. package/SVF-doxygen/html/search/functions_a.js +30 -30
  174. package/SVF-doxygen/html/search/functions_b.js +2 -2
  175. package/SVF-doxygen/html/search/functions_c.js +26 -26
  176. package/SVF-doxygen/html/search/functions_d.js +77 -77
  177. package/SVF-doxygen/html/search/functions_e.js +35 -35
  178. package/SVF-doxygen/html/search/functions_f.js +56 -56
  179. package/SVF-doxygen/html/search/namespaces_0.js +1 -1
  180. package/SVF-doxygen/html/search/namespaces_1.js +7 -7
  181. package/SVF-doxygen/html/search/related_0.js +2 -2
  182. package/SVF-doxygen/html/search/related_1.js +2 -2
  183. package/SVF-doxygen/html/search/related_2.js +2 -2
  184. package/SVF-doxygen/html/search/related_3.js +2 -2
  185. package/SVF-doxygen/html/search/related_4.js +2 -2
  186. package/SVF-doxygen/html/search/related_5.js +1 -1
  187. package/SVF-doxygen/html/search/related_6.js +2 -2
  188. package/SVF-doxygen/html/search/related_7.js +4 -4
  189. package/SVF-doxygen/html/search/related_8.js +2 -2
  190. package/SVF-doxygen/html/search/related_9.js +4 -4
  191. package/SVF-doxygen/html/search/related_a.js +19 -19
  192. package/SVF-doxygen/html/search/related_b.js +4 -4
  193. package/SVF-doxygen/html/search/related_c.js +1 -1
  194. package/SVF-doxygen/html/search/related_d.js +11 -11
  195. package/SVF-doxygen/html/search/related_e.js +2 -2
  196. package/SVF-doxygen/html/search/related_f.js +2 -2
  197. package/SVF-doxygen/html/search/typedefs_0.js +18 -18
  198. package/SVF-doxygen/html/search/typedefs_1.js +26 -26
  199. package/SVF-doxygen/html/search/typedefs_10.js +61 -61
  200. package/SVF-doxygen/html/search/typedefs_11.js +13 -13
  201. package/SVF-doxygen/html/search/typedefs_12.js +11 -11
  202. package/SVF-doxygen/html/search/typedefs_13.js +35 -35
  203. package/SVF-doxygen/html/search/typedefs_14.js +8 -8
  204. package/SVF-doxygen/html/search/typedefs_2.js +129 -129
  205. package/SVF-doxygen/html/search/typedefs_3.js +39 -39
  206. package/SVF-doxygen/html/search/typedefs_4.js +17 -17
  207. package/SVF-doxygen/html/search/typedefs_5.js +41 -41
  208. package/SVF-doxygen/html/search/typedefs_6.js +55 -55
  209. package/SVF-doxygen/html/search/typedefs_7.js +42 -42
  210. package/SVF-doxygen/html/search/typedefs_8.js +1 -1
  211. package/SVF-doxygen/html/search/typedefs_9.js +6 -6
  212. package/SVF-doxygen/html/search/typedefs_a.js +29 -29
  213. package/SVF-doxygen/html/search/typedefs_b.js +29 -29
  214. package/SVF-doxygen/html/search/typedefs_c.js +41 -41
  215. package/SVF-doxygen/html/search/typedefs_d.js +15 -15
  216. package/SVF-doxygen/html/search/typedefs_e.js +52 -52
  217. package/SVF-doxygen/html/search/typedefs_f.js +14 -14
  218. package/SVF-doxygen/html/search/variables_0.js +152 -152
  219. package/SVF-doxygen/html/search/variables_1.js +75 -75
  220. package/SVF-doxygen/html/search/variables_10.js +97 -97
  221. package/SVF-doxygen/html/search/variables_11.js +46 -46
  222. package/SVF-doxygen/html/search/variables_12.js +92 -92
  223. package/SVF-doxygen/html/search/variables_13.js +75 -75
  224. package/SVF-doxygen/html/search/variables_14.js +14 -14
  225. package/SVF-doxygen/html/search/variables_15.js +48 -48
  226. package/SVF-doxygen/html/search/variables_16.js +9 -9
  227. package/SVF-doxygen/html/search/variables_17.js +1 -1
  228. package/SVF-doxygen/html/search/variables_18.js +2 -2
  229. package/SVF-doxygen/html/search/variables_2.js +37 -37
  230. package/SVF-doxygen/html/search/variables_3.js +142 -142
  231. package/SVF-doxygen/html/search/variables_4.js +55 -55
  232. package/SVF-doxygen/html/search/variables_5.js +39 -39
  233. package/SVF-doxygen/html/search/variables_6.js +66 -66
  234. package/SVF-doxygen/html/search/variables_7.js +33 -33
  235. package/SVF-doxygen/html/search/variables_8.js +7 -7
  236. package/SVF-doxygen/html/search/variables_9.js +77 -77
  237. package/SVF-doxygen/html/search/variables_a.js +4 -4
  238. package/SVF-doxygen/html/search/variables_b.js +10 -10
  239. package/SVF-doxygen/html/search/variables_c.js +45 -45
  240. package/SVF-doxygen/html/search/variables_d.js +56 -56
  241. package/SVF-doxygen/html/search/variables_e.js +123 -123
  242. package/SVF-doxygen/html/search/variables_f.js +30 -30
  243. package/SVF-doxygen/html/structSVF_1_1DOTGraphTraits_3_01SVF_1_1CFBasicBlockGraph_01_5_01_4.html +40 -40
  244. package/SVF-doxygen/html/structSVF_1_1GenericGraphTraits_3_01Inverse_3_01SVF_1_1CFBasicBlockNode_01_5_01_4_01_4.html +1 -1
  245. package/SVF-doxygen/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1CFBasicBlockGraph_01_5_01_4.html +2 -2
  246. package/SVF-doxygen/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1CFBasicBlockNode_01_5_01_4.html +1 -1
  247. package/package.json +1 -1
  248. package/svf/include/Graphs/CFBasicBlockG.h +16 -7
  249. package/svf/lib/Graphs/CFBasicBlockG.cpp +14 -2
@@ -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 call graph node, it is used for inverse ICFGTraversal. </p>
97
97
 
98
- <p class="definition">Definition at line <a class="el" href="CFBasicBlockG_8h_source.html#l00519">519</a> of file <a class="el" href="CFBasicBlockG_8h_source.html">CFBasicBlockG.h</a>.</p>
98
+ <p class="definition">Definition at line <a class="el" href="CFBasicBlockG_8h_source.html#l00528">528</a> of file <a class="el" href="CFBasicBlockG_8h_source.html">CFBasicBlockG.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="CFBasicBlockG_8h_source.html">CFBasicBlockG.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="CFBasicBlockG_8h_source.html#l00525">525</a> of file <a class="el" href="CFBasicBlockG_8h_source.html">CFBasicBlockG.h</a>.</p>
97
+ <p class="definition">Definition at line <a class="el" href="CFBasicBlockG_8h_source.html#l00534">534</a> of file <a class="el" href="CFBasicBlockG_8h_source.html">CFBasicBlockG.h</a>.</p>
98
98
  </div><h2 class="groupheader">Member Typedef Documentation</h2>
99
99
  <a id="a0d7eb2f1c00f0499d99f5508ce5055f5"></a>
100
100
  <h2 class="memtitle"><span class="permalink"><a href="#a0d7eb2f1c00f0499d99f5508ce5055f5">&#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="CFBasicBlockG_8h_source.html#l00528">528</a> of file <a class="el" href="CFBasicBlockG_8h_source.html">CFBasicBlockG.h</a>.</p>
111
+ <p class="definition">Definition at line <a class="el" href="CFBasicBlockG_8h_source.html#l00537">537</a> of file <a class="el" href="CFBasicBlockG_8h_source.html">CFBasicBlockG.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="CFBasicBlockG_8h_source.html#l00512">512</a> of file <a class="el" href="CFBasicBlockG_8h_source.html">CFBasicBlockG.h</a>.</p>
94
+ <p class="definition">Definition at line <a class="el" href="CFBasicBlockG_8h_source.html#l00521">521</a> of file <a class="el" href="CFBasicBlockG_8h_source.html">CFBasicBlockG.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="CFBasicBlockG_8h_source.html">CFBasicBlockG.h</a></li>
97
97
  </ul>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "svf-tools",
3
- "version": "1.0.784",
3
+ "version": "1.0.786",
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": {
@@ -71,6 +71,11 @@ public:
71
71
  {
72
72
  }
73
73
 
74
+ CFBasicBlockEdge(CFBasicBlockNode* src, CFBasicBlockNode* dst)
75
+ : GenericCFBasicBlockEdgeTy(src, dst, 0), _icfgEdge(nullptr)
76
+ {
77
+ }
78
+
74
79
  friend std::ostream &operator<<(std::ostream &o, const CFBasicBlockEdge &edge)
75
80
  {
76
81
  o << edge.toString();
@@ -350,8 +355,7 @@ class CFBasicBlockGraph : public GenericCFBasicBlockGTy
350
355
  private:
351
356
  u32_t _totalCFBasicBlockNode{0};
352
357
  u32_t _totalCFBasicBlockEdge{0};
353
- Map<const SVFBasicBlock*, CFBasicBlockNode*> _bbToNode;
354
-
358
+ Map<const SVFFunction*, CFBasicBlockNode*> _funToFirstNode;
355
359
  public:
356
360
 
357
361
  CFBasicBlockGraph() = default;
@@ -375,23 +379,28 @@ public:
375
379
  return hasGNode(id);
376
380
  }
377
381
 
378
- inline CFBasicBlockNode* getCFBasicBlockNode(const SVFBasicBlock* bb) const
382
+ inline CFBasicBlockNode* getFirstCFBasicBlockNode(const SVFFunction* fun) const
379
383
  {
380
- if (bb && _bbToNode.find(bb) != _bbToNode.end())
384
+ if (fun && _funToFirstNode.find(fun) != _funToFirstNode.end())
381
385
  {
382
- return _bbToNode.at(bb);
386
+ return _funToFirstNode.at(fun);
383
387
  }
384
388
  else
385
389
  {
386
390
  return nullptr;
387
391
  }
388
392
  }
393
+ inline bool hasFirstCFBasicBlockNode(const SVFFunction* fun) const
394
+ {
395
+ return fun && _funToFirstNode.find(fun) != _funToFirstNode.end();
396
+ }
389
397
 
390
- inline bool hasCFBasicBlockNode(const SVFBasicBlock* bb) const
398
+ inline void setFirstCFBasicBlockNode(const Map<const SVFFunction*, CFBasicBlockNode*>& svfNodeMap)
391
399
  {
392
- return bb && _bbToNode.find(bb) != _bbToNode.end();
400
+ _funToFirstNode = svfNodeMap;
393
401
  }
394
402
 
403
+
395
404
  bool hasCFBasicBlockEdge(CFBasicBlockNode *src, CFBasicBlockNode *dst, ICFGEdge *icfgEdge)
396
405
  {
397
406
  CFBasicBlockEdge edge(src, dst, icfgEdge);
@@ -130,13 +130,13 @@ void CFBasicBlockGBuilder::build(SVFModule* module)
130
130
  }
131
131
  }
132
132
  }
133
- _CFBasicBlockG->_bbToNode = bbToNode;
134
133
  }
135
134
 
136
135
  void CFBasicBlockGBuilder::build(ICFG* icfg)
137
136
  {
138
137
  _CFBasicBlockG = new CFBasicBlockGraph();
139
138
  Map<const SVFBasicBlock*, CFBasicBlockNode*> bbToNode;
139
+ Map<const SVFFunction*, CFBasicBlockNode*> funToFirstNode;
140
140
  for (const auto& node : *icfg)
141
141
  {
142
142
  CFBasicBlockNode* pNode = nullptr;
@@ -153,6 +153,11 @@ void CFBasicBlockGBuilder::build(ICFG* icfg)
153
153
  pNode = bbToNode[node.second->getBB()];
154
154
  pNode->addNode(node.second);
155
155
  }
156
+ const SVFFunction* fun = node.second->getFun();
157
+ if (funToFirstNode.find(fun) == funToFirstNode.end())
158
+ {
159
+ funToFirstNode[fun] = nullptr;
160
+ }
156
161
  }
157
162
  }
158
163
 
@@ -174,6 +179,13 @@ void CFBasicBlockGBuilder::build(ICFG* icfg)
174
179
  }
175
180
  }
176
181
  }
177
- _CFBasicBlockG->_bbToNode = bbToNode;
182
+
183
+ for (auto it = funToFirstNode.begin(); it != funToFirstNode.end(); ++it)
184
+ {
185
+ const SVFFunction* fun = it->first;
186
+ const SVFBasicBlock* bb = *fun->getBasicBlockList().begin();
187
+ funToFirstNode[fun] = bbToNode[bb];
188
+ }
189
+ _CFBasicBlockG->_funToFirstNode = funToFirstNode;
178
190
  }
179
191
  }