svf-tools 1.0.813 → 1.0.815

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 (270) hide show
  1. package/SVF-doxygen/html/AccessPath_8cpp_source.html +124 -121
  2. package/SVF-doxygen/html/AccessPath_8h_source.html +97 -88
  3. package/SVF-doxygen/html/Andersen_8cpp_source.html +1 -1
  4. package/SVF-doxygen/html/ConsGEdge_8h_source.html +2 -2
  5. package/SVF-doxygen/html/ContextDDA_8cpp_source.html +184 -183
  6. package/SVF-doxygen/html/ContextDDA_8h_source.html +5 -5
  7. package/SVF-doxygen/html/FlowDDA_8cpp_source.html +2 -2
  8. package/SVF-doxygen/html/FlowSensitive_8cpp_source.html +2 -2
  9. package/SVF-doxygen/html/SVFIR2ConsExeState_8cpp_source.html +191 -190
  10. package/SVF-doxygen/html/SVFIR2ConsExeState_8h_source.html +4 -4
  11. package/SVF-doxygen/html/SVFIR2ItvExeState_8cpp_source.html +695 -688
  12. package/SVF-doxygen/html/SVFIR2ItvExeState_8h_source.html +15 -15
  13. package/SVF-doxygen/html/SVFIRBuilder_8cpp_source.html +883 -881
  14. package/SVF-doxygen/html/SVFIRBuilder_8h_source.html +32 -32
  15. package/SVF-doxygen/html/SVFIRExtAPI_8cpp_source.html +120 -118
  16. package/SVF-doxygen/html/SVFIR_8cpp_source.html +2 -2
  17. package/SVF-doxygen/html/SVFStatements_8h_source.html +5 -5
  18. package/SVF-doxygen/html/SVFVariables_8h_source.html +2 -2
  19. package/SVF-doxygen/html/classSVF_1_1AccessPath-members.html +7 -5
  20. package/SVF-doxygen/html/classSVF_1_1AccessPath.html +237 -162
  21. package/SVF-doxygen/html/classSVF_1_1Andersen.html +1 -1
  22. package/SVF-doxygen/html/classSVF_1_1ContextDDA.html +176 -175
  23. package/SVF-doxygen/html/classSVF_1_1FlowDDA.html +2 -2
  24. package/SVF-doxygen/html/classSVF_1_1FlowSensitive.html +2 -2
  25. package/SVF-doxygen/html/classSVF_1_1GepStmt-members.html +1 -1
  26. package/SVF-doxygen/html/classSVF_1_1GepStmt.html +9 -9
  27. package/SVF-doxygen/html/classSVF_1_1GepValVar.html +2 -2
  28. package/SVF-doxygen/html/classSVF_1_1NormalGepCGEdge.html +2 -2
  29. package/SVF-doxygen/html/classSVF_1_1SVFIR.html +2 -2
  30. package/SVF-doxygen/html/classSVF_1_1SVFIR2ConsExeState.html +186 -185
  31. package/SVF-doxygen/html/classSVF_1_1SVFIR2ItvExeState.html +667 -660
  32. package/SVF-doxygen/html/classSVF_1_1SVFIRBuilder.html +942 -938
  33. package/SVF-doxygen/html/functions_a.html +1 -1
  34. package/SVF-doxygen/html/functions_func.html +1 -1
  35. package/SVF-doxygen/html/functions_func_g.html +22 -17
  36. package/SVF-doxygen/html/functions_func_p.html +1 -1
  37. package/SVF-doxygen/html/functions_g.html +20 -12
  38. package/SVF-doxygen/html/functions_i.html +1 -1
  39. package/SVF-doxygen/html/functions_o.html +7 -7
  40. package/SVF-doxygen/html/functions_p.html +11 -11
  41. package/SVF-doxygen/html/functions_r.html +2 -2
  42. package/SVF-doxygen/html/functions_s.html +17 -17
  43. package/SVF-doxygen/html/functions_v.html +7 -9
  44. package/SVF-doxygen/html/functions_vars_g.html +3 -0
  45. package/SVF-doxygen/html/functions_w.html +1 -1
  46. package/SVF-doxygen/html/search/all_1.js +1 -1
  47. package/SVF-doxygen/html/search/all_10.js +324 -324
  48. package/SVF-doxygen/html/search/all_11.js +222 -222
  49. package/SVF-doxygen/html/search/all_12.js +544 -544
  50. package/SVF-doxygen/html/search/all_13.js +191 -191
  51. package/SVF-doxygen/html/search/all_14.js +67 -67
  52. package/SVF-doxygen/html/search/all_15.js +167 -167
  53. package/SVF-doxygen/html/search/all_16.js +63 -63
  54. package/SVF-doxygen/html/search/all_17.js +1 -1
  55. package/SVF-doxygen/html/search/all_18.js +1 -1
  56. package/SVF-doxygen/html/search/all_19.js +11 -11
  57. package/SVF-doxygen/html/search/all_1a.js +172 -172
  58. package/SVF-doxygen/html/search/all_7.js +891 -888
  59. package/SVF-doxygen/html/search/all_8.js +197 -197
  60. package/SVF-doxygen/html/search/all_9.js +607 -607
  61. package/SVF-doxygen/html/search/all_a.js +46 -46
  62. package/SVF-doxygen/html/search/all_b.js +26 -26
  63. package/SVF-doxygen/html/search/all_c.js +116 -116
  64. package/SVF-doxygen/html/search/all_d.js +196 -196
  65. package/SVF-doxygen/html/search/all_e.js +207 -207
  66. package/SVF-doxygen/html/search/all_f.js +115 -115
  67. package/SVF-doxygen/html/search/classes_0.js +26 -26
  68. package/SVF-doxygen/html/search/classes_1.js +9 -9
  69. package/SVF-doxygen/html/search/classes_10.js +73 -73
  70. package/SVF-doxygen/html/search/classes_11.js +15 -15
  71. package/SVF-doxygen/html/search/classes_12.js +2 -2
  72. package/SVF-doxygen/html/search/classes_13.js +10 -10
  73. package/SVF-doxygen/html/search/classes_14.js +14 -14
  74. package/SVF-doxygen/html/search/classes_15.js +1 -1
  75. package/SVF-doxygen/html/search/classes_2.js +80 -80
  76. package/SVF-doxygen/html/search/classes_3.js +37 -37
  77. package/SVF-doxygen/html/search/classes_4.js +9 -9
  78. package/SVF-doxygen/html/search/classes_5.js +28 -28
  79. package/SVF-doxygen/html/search/classes_6.js +104 -104
  80. package/SVF-doxygen/html/search/classes_7.js +33 -33
  81. package/SVF-doxygen/html/search/classes_8.js +56 -56
  82. package/SVF-doxygen/html/search/classes_9.js +1 -1
  83. package/SVF-doxygen/html/search/classes_a.js +12 -12
  84. package/SVF-doxygen/html/search/classes_b.js +29 -29
  85. package/SVF-doxygen/html/search/classes_c.js +6 -6
  86. package/SVF-doxygen/html/search/classes_d.js +18 -18
  87. package/SVF-doxygen/html/search/classes_e.js +36 -36
  88. package/SVF-doxygen/html/search/classes_f.js +25 -25
  89. package/SVF-doxygen/html/search/defines_0.js +3 -3
  90. package/SVF-doxygen/html/search/defines_1.js +2 -2
  91. package/SVF-doxygen/html/search/defines_2.js +30 -30
  92. package/SVF-doxygen/html/search/defines_3.js +21 -21
  93. package/SVF-doxygen/html/search/defines_4.js +2 -2
  94. package/SVF-doxygen/html/search/defines_5.js +4 -4
  95. package/SVF-doxygen/html/search/defines_6.js +2 -2
  96. package/SVF-doxygen/html/search/defines_7.js +5 -5
  97. package/SVF-doxygen/html/search/defines_8.js +11 -11
  98. package/SVF-doxygen/html/search/defines_9.js +9 -9
  99. package/SVF-doxygen/html/search/defines_a.js +2 -2
  100. package/SVF-doxygen/html/search/defines_b.js +1 -1
  101. package/SVF-doxygen/html/search/defines_c.js +3 -3
  102. package/SVF-doxygen/html/search/defines_d.js +2 -2
  103. package/SVF-doxygen/html/search/defines_e.js +7 -7
  104. package/SVF-doxygen/html/search/defines_f.js +3 -3
  105. package/SVF-doxygen/html/search/enums_0.js +3 -3
  106. package/SVF-doxygen/html/search/enums_1.js +2 -2
  107. package/SVF-doxygen/html/search/enums_10.js +1 -1
  108. package/SVF-doxygen/html/search/enums_11.js +1 -1
  109. package/SVF-doxygen/html/search/enums_2.js +8 -8
  110. package/SVF-doxygen/html/search/enums_3.js +1 -1
  111. package/SVF-doxygen/html/search/enums_4.js +3 -3
  112. package/SVF-doxygen/html/search/enums_5.js +1 -1
  113. package/SVF-doxygen/html/search/enums_6.js +2 -2
  114. package/SVF-doxygen/html/search/enums_7.js +2 -2
  115. package/SVF-doxygen/html/search/enums_8.js +4 -4
  116. package/SVF-doxygen/html/search/enums_9.js +1 -1
  117. package/SVF-doxygen/html/search/enums_a.js +1 -1
  118. package/SVF-doxygen/html/search/enums_b.js +7 -7
  119. package/SVF-doxygen/html/search/enums_c.js +1 -1
  120. package/SVF-doxygen/html/search/enums_d.js +4 -4
  121. package/SVF-doxygen/html/search/enums_e.js +2 -2
  122. package/SVF-doxygen/html/search/enums_f.js +4 -4
  123. package/SVF-doxygen/html/search/enumvalues_0.js +14 -14
  124. package/SVF-doxygen/html/search/enumvalues_1.js +14 -14
  125. package/SVF-doxygen/html/search/enumvalues_10.js +35 -35
  126. package/SVF-doxygen/html/search/enumvalues_11.js +3 -3
  127. package/SVF-doxygen/html/search/enumvalues_12.js +10 -10
  128. package/SVF-doxygen/html/search/enumvalues_13.js +1 -1
  129. package/SVF-doxygen/html/search/enumvalues_14.js +1 -1
  130. package/SVF-doxygen/html/search/enumvalues_15.js +3 -3
  131. package/SVF-doxygen/html/search/enumvalues_2.js +36 -36
  132. package/SVF-doxygen/html/search/enumvalues_3.js +13 -13
  133. package/SVF-doxygen/html/search/enumvalues_4.js +2 -2
  134. package/SVF-doxygen/html/search/enumvalues_5.js +47 -47
  135. package/SVF-doxygen/html/search/enumvalues_6.js +6 -6
  136. package/SVF-doxygen/html/search/enumvalues_7.js +9 -9
  137. package/SVF-doxygen/html/search/enumvalues_8.js +23 -23
  138. package/SVF-doxygen/html/search/enumvalues_9.js +6 -6
  139. package/SVF-doxygen/html/search/enumvalues_a.js +15 -15
  140. package/SVF-doxygen/html/search/enumvalues_b.js +11 -11
  141. package/SVF-doxygen/html/search/enumvalues_c.js +5 -5
  142. package/SVF-doxygen/html/search/enumvalues_d.js +18 -18
  143. package/SVF-doxygen/html/search/enumvalues_e.js +9 -9
  144. package/SVF-doxygen/html/search/enumvalues_f.js +45 -45
  145. package/SVF-doxygen/html/search/files_0.js +13 -13
  146. package/SVF-doxygen/html/search/files_1.js +7 -7
  147. package/SVF-doxygen/html/search/files_10.js +8 -8
  148. package/SVF-doxygen/html/search/files_11.js +8 -8
  149. package/SVF-doxygen/html/search/files_12.js +2 -2
  150. package/SVF-doxygen/html/search/files_2.js +55 -55
  151. package/SVF-doxygen/html/search/files_3.js +14 -14
  152. package/SVF-doxygen/html/search/files_4.js +5 -5
  153. package/SVF-doxygen/html/search/files_5.js +13 -13
  154. package/SVF-doxygen/html/search/files_6.js +9 -9
  155. package/SVF-doxygen/html/search/files_7.js +14 -14
  156. package/SVF-doxygen/html/search/files_8.js +13 -13
  157. package/SVF-doxygen/html/search/files_9.js +18 -18
  158. package/SVF-doxygen/html/search/files_a.js +3 -3
  159. package/SVF-doxygen/html/search/files_b.js +2 -2
  160. package/SVF-doxygen/html/search/files_c.js +20 -20
  161. package/SVF-doxygen/html/search/files_d.js +4 -4
  162. package/SVF-doxygen/html/search/files_e.js +62 -62
  163. package/SVF-doxygen/html/search/files_f.js +8 -8
  164. package/SVF-doxygen/html/search/functions_0.js +12 -12
  165. package/SVF-doxygen/html/search/functions_1.js +360 -360
  166. package/SVF-doxygen/html/search/functions_10.js +140 -140
  167. package/SVF-doxygen/html/search/functions_11.js +138 -138
  168. package/SVF-doxygen/html/search/functions_12.js +279 -279
  169. package/SVF-doxygen/html/search/functions_13.js +59 -59
  170. package/SVF-doxygen/html/search/functions_14.js +39 -39
  171. package/SVF-doxygen/html/search/functions_15.js +71 -71
  172. package/SVF-doxygen/html/search/functions_16.js +32 -32
  173. package/SVF-doxygen/html/search/functions_17.js +3 -3
  174. package/SVF-doxygen/html/search/functions_18.js +172 -172
  175. package/SVF-doxygen/html/search/functions_2.js +87 -87
  176. package/SVF-doxygen/html/search/functions_3.js +257 -257
  177. package/SVF-doxygen/html/search/functions_4.js +75 -75
  178. package/SVF-doxygen/html/search/functions_5.js +53 -53
  179. package/SVF-doxygen/html/search/functions_6.js +59 -59
  180. package/SVF-doxygen/html/search/functions_7.js +854 -852
  181. package/SVF-doxygen/html/search/functions_8.js +149 -149
  182. package/SVF-doxygen/html/search/functions_9.js +423 -423
  183. package/SVF-doxygen/html/search/functions_a.js +30 -30
  184. package/SVF-doxygen/html/search/functions_b.js +2 -2
  185. package/SVF-doxygen/html/search/functions_c.js +26 -26
  186. package/SVF-doxygen/html/search/functions_d.js +77 -77
  187. package/SVF-doxygen/html/search/functions_e.js +35 -35
  188. package/SVF-doxygen/html/search/functions_f.js +56 -56
  189. package/SVF-doxygen/html/search/namespaces_0.js +1 -1
  190. package/SVF-doxygen/html/search/namespaces_1.js +7 -7
  191. package/SVF-doxygen/html/search/related_0.js +2 -2
  192. package/SVF-doxygen/html/search/related_1.js +2 -2
  193. package/SVF-doxygen/html/search/related_2.js +2 -2
  194. package/SVF-doxygen/html/search/related_3.js +2 -2
  195. package/SVF-doxygen/html/search/related_4.js +2 -2
  196. package/SVF-doxygen/html/search/related_5.js +1 -1
  197. package/SVF-doxygen/html/search/related_6.js +2 -2
  198. package/SVF-doxygen/html/search/related_7.js +4 -4
  199. package/SVF-doxygen/html/search/related_8.js +2 -2
  200. package/SVF-doxygen/html/search/related_9.js +4 -4
  201. package/SVF-doxygen/html/search/related_a.js +19 -19
  202. package/SVF-doxygen/html/search/related_b.js +4 -4
  203. package/SVF-doxygen/html/search/related_c.js +1 -1
  204. package/SVF-doxygen/html/search/related_d.js +12 -12
  205. package/SVF-doxygen/html/search/related_e.js +2 -2
  206. package/SVF-doxygen/html/search/related_f.js +2 -2
  207. package/SVF-doxygen/html/search/typedefs_0.js +19 -19
  208. package/SVF-doxygen/html/search/typedefs_1.js +26 -26
  209. package/SVF-doxygen/html/search/typedefs_10.js +61 -61
  210. package/SVF-doxygen/html/search/typedefs_11.js +13 -13
  211. package/SVF-doxygen/html/search/typedefs_12.js +11 -11
  212. package/SVF-doxygen/html/search/typedefs_13.js +33 -33
  213. package/SVF-doxygen/html/search/typedefs_14.js +8 -8
  214. package/SVF-doxygen/html/search/typedefs_2.js +129 -129
  215. package/SVF-doxygen/html/search/typedefs_3.js +39 -39
  216. package/SVF-doxygen/html/search/typedefs_4.js +17 -17
  217. package/SVF-doxygen/html/search/typedefs_5.js +41 -41
  218. package/SVF-doxygen/html/search/typedefs_6.js +55 -55
  219. package/SVF-doxygen/html/search/typedefs_7.js +44 -44
  220. package/SVF-doxygen/html/search/typedefs_8.js +1 -1
  221. package/SVF-doxygen/html/search/typedefs_9.js +6 -6
  222. package/SVF-doxygen/html/search/typedefs_a.js +29 -29
  223. package/SVF-doxygen/html/search/typedefs_b.js +29 -29
  224. package/SVF-doxygen/html/search/typedefs_c.js +41 -41
  225. package/SVF-doxygen/html/search/typedefs_d.js +14 -14
  226. package/SVF-doxygen/html/search/typedefs_e.js +52 -52
  227. package/SVF-doxygen/html/search/typedefs_f.js +14 -14
  228. package/SVF-doxygen/html/search/variables_0.js +151 -151
  229. package/SVF-doxygen/html/search/variables_1.js +75 -75
  230. package/SVF-doxygen/html/search/variables_10.js +97 -97
  231. package/SVF-doxygen/html/search/variables_11.js +44 -44
  232. package/SVF-doxygen/html/search/variables_12.js +92 -92
  233. package/SVF-doxygen/html/search/variables_13.js +75 -75
  234. package/SVF-doxygen/html/search/variables_14.js +14 -14
  235. package/SVF-doxygen/html/search/variables_15.js +48 -48
  236. package/SVF-doxygen/html/search/variables_16.js +9 -9
  237. package/SVF-doxygen/html/search/variables_17.js +1 -1
  238. package/SVF-doxygen/html/search/variables_18.js +2 -2
  239. package/SVF-doxygen/html/search/variables_2.js +38 -38
  240. package/SVF-doxygen/html/search/variables_3.js +142 -142
  241. package/SVF-doxygen/html/search/variables_4.js +55 -55
  242. package/SVF-doxygen/html/search/variables_5.js +37 -37
  243. package/SVF-doxygen/html/search/variables_6.js +66 -66
  244. package/SVF-doxygen/html/search/variables_7.js +34 -33
  245. package/SVF-doxygen/html/search/variables_8.js +7 -7
  246. package/SVF-doxygen/html/search/variables_9.js +78 -78
  247. package/SVF-doxygen/html/search/variables_a.js +4 -4
  248. package/SVF-doxygen/html/search/variables_b.js +10 -10
  249. package/SVF-doxygen/html/search/variables_c.js +45 -45
  250. package/SVF-doxygen/html/search/variables_d.js +56 -56
  251. package/SVF-doxygen/html/search/variables_e.js +123 -123
  252. package/SVF-doxygen/html/search/variables_f.js +29 -29
  253. package/SVF-doxygen/html/structstd_1_1hash_3_01SVF_1_1AccessPath_01_4.html +10 -10
  254. package/SVF-doxygen/html/svf-ex_8cpp.html +11 -11
  255. package/SVF-doxygen/html/svf-ex_8cpp_source.html +11 -11
  256. package/package.json +1 -1
  257. package/svf/include/Graphs/ConsGEdge.h +1 -1
  258. package/svf/include/MemoryModel/AccessPath.h +14 -5
  259. package/svf/include/SVFIR/SVFStatements.h +2 -2
  260. package/svf/include/SVFIR/SVFVariables.h +1 -1
  261. package/svf/lib/AbstractExecution/SVFIR2ConsExeState.cpp +2 -1
  262. package/svf/lib/AbstractExecution/SVFIR2ItvExeState.cpp +4 -0
  263. package/svf/lib/DDA/ContextDDA.cpp +2 -1
  264. package/svf/lib/DDA/FlowDDA.cpp +1 -1
  265. package/svf/lib/MemoryModel/AccessPath.cpp +7 -5
  266. package/svf/lib/SVFIR/SVFIR.cpp +1 -1
  267. package/svf/lib/WPA/Andersen.cpp +1 -1
  268. package/svf/lib/WPA/FlowSensitive.cpp +1 -1
  269. package/svf-llvm/lib/SVFIRBuilder.cpp +6 -4
  270. package/svf-llvm/lib/SVFIRExtAPI.cpp +7 -5
@@ -307,7 +307,7 @@ $(function() {
307
307
  <div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; </div>
308
308
  </div><!-- fragment --></div><!-- contents -->
309
309
  <div class="ttc" id="aclassSVF_1_1FIFOWorkList_html_a0df409a67428e528321869d201f2a474"><div class="ttname"><a href="classSVF_1_1FIFOWorkList.html#a0df409a67428e528321869d201f2a474">SVF::FIFOWorkList::push</a></div><div class="ttdeci">bool push(const Data &amp;data)</div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#l00165">WorkList.h:165</a></div></div>
310
- <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_adb82778157e0f5e7a2ea4d803bcd07ad"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#adb82778157e0f5e7a2ea4d803bcd07ad">SVF::SVFIR2ItvExeState::translateCall</a></div><div class="ttdeci">void translateCall(const CallPE *callPE)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00959">SVFIR2ItvExeState.cpp:959</a></div></div>
310
+ <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_adb82778157e0f5e7a2ea4d803bcd07ad"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#adb82778157e0f5e7a2ea4d803bcd07ad">SVF::SVFIR2ItvExeState::translateCall</a></div><div class="ttdeci">void translateCall(const CallPE *callPE)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00963">SVFIR2ItvExeState.cpp:963</a></div></div>
311
311
  <div class="ttc" id="aclassSVF_1_1CopyStmt_html"><div class="ttname"><a href="classSVF_1_1CopyStmt.html">SVF::CopyStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00351">SVFStatements.h:351</a></div></div>
312
312
  <div class="ttc" id="asvf-ex_8cpp_html_a3c04138a5bfe5d72780bb7e82a18e627"><div class="ttname"><a href="svf-ex_8cpp.html#a3c04138a5bfe5d72780bb7e82a18e627">main</a></div><div class="ttdeci">int main(int argc, char **argv)</div><div class="ttdef"><b>Definition:</b> <a href="svf-ex_8cpp_source.html#l00205">svf-ex.cpp:205</a></div></div>
313
313
  <div class="ttc" id="aclassSVF_1_1FIFOWorkList_html_a8fa72918fce7e9c0b2dc34b683a797c6"><div class="ttname"><a href="classSVF_1_1FIFOWorkList.html#a8fa72918fce7e9c0b2dc34b683a797c6">SVF::FIFOWorkList::pop</a></div><div class="ttdeci">Data pop()</div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#l00200">WorkList.h:200</a></div></div>
@@ -318,14 +318,14 @@ $(function() {
318
318
  <div class="ttc" id="aclassSVF_1_1ICFGEdge_html"><div class="ttname"><a href="classSVF_1_1ICFGEdge.html">SVF::ICFGEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGEdge_8h_source.html#l00044">ICFGEdge.h:44</a></div></div>
319
319
  <div class="ttc" id="aclassSVF_1_1PhiStmt_html"><div class="ttname"><a href="classSVF_1_1PhiStmt.html">SVF::PhiStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00748">SVFStatements.h:748</a></div></div>
320
320
  <div class="ttc" id="aclassSVF_1_1SVFG_html_a8e7a945f4266e8dc7dcfff2ad6494bfb"><div class="ttname"><a href="classSVF_1_1SVFG.html#a8e7a945f4266e8dc7dcfff2ad6494bfb">SVF::SVFG::getDefSVFGNode</a></div><div class="ttdeci">const SVFGNode * getDefSVFGNode(const PAGNode *pagNode) const</div><div class="ttdoc">Given a pagNode, return its definition site.</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00170">SVFG.h:170</a></div></div>
321
- <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_a604126e59364cb56b44a88cae5afbfb8"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#a604126e59364cb56b44a88cae5afbfb8">SVF::SVFIR2ItvExeState::translateSelect</a></div><div class="ttdeci">void translateSelect(const SelectStmt *select)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00897">SVFIR2ItvExeState.cpp:897</a></div></div>
321
+ <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_a604126e59364cb56b44a88cae5afbfb8"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#a604126e59364cb56b44a88cae5afbfb8">SVF::SVFIR2ItvExeState::translateSelect</a></div><div class="ttdeci">void translateSelect(const SelectStmt *select)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00901">SVFIR2ItvExeState.cpp:901</a></div></div>
322
322
  <div class="ttc" id="aclassSVF_1_1IRGraph_html_a43514023a4f4d0c32f536f51443b0efc"><div class="ttname"><a href="classSVF_1_1IRGraph.html#a43514023a4f4d0c32f536f51443b0efc">SVF::IRGraph::getValueNode</a></div><div class="ttdeci">NodeID getValueNode(const SVFValue *V)</div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#l00138">IRGraph.h:138</a></div></div>
323
323
  <div class="ttc" id="aLLVMUtil_8h_html"><div class="ttname"><a href="LLVMUtil_8h.html">LLVMUtil.h</a></div></div>
324
324
  <div class="ttc" id="anamespaceSVF_html_af739db846e47ba6b2fd15eaad31ab7fb"><div class="ttname"><a href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">SVF::Set</a></div><div class="ttdeci">std::unordered_set&lt; Key, Hash, KeyEqual, Allocator &gt; Set</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00097">SVFType.h:97</a></div></div>
325
325
  <div class="ttc" id="anamespaceSVF_html"><div class="ttname"><a href="namespaceSVF.html">SVF</a></div><div class="ttdoc">for isBitcode</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00065">BasicTypes.h:65</a></div></div>
326
326
  <div class="ttc" id="aSVFIR2ItvExeState_8h_html"><div class="ttname"><a href="SVFIR2ItvExeState_8h.html">SVFIR2ItvExeState.h</a></div></div>
327
327
  <div class="ttc" id="aclassSVF_1_1ICFGNode_html_a6c68f52dd90728073fb79141df9b0661"><div class="ttname"><a href="classSVF_1_1ICFGNode.html#a6c68f52dd90728073fb79141df9b0661">SVF::ICFGNode::getSVFStmts</a></div><div class="ttdeci">const SVFStmtList &amp; getSVFStmts() const</div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00127">ICFGNode.h:127</a></div></div>
328
- <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_af7f42ee51b03b1aaaee18f10eec0c2b9"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#af7f42ee51b03b1aaaee18f10eec0c2b9">SVF::SVFIR2ItvExeState::translateAddr</a></div><div class="ttdeci">void translateAddr(const AddrStmt *addr)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00498">SVFIR2ItvExeState.cpp:498</a></div></div>
328
+ <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_af7f42ee51b03b1aaaee18f10eec0c2b9"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#af7f42ee51b03b1aaaee18f10eec0c2b9">SVF::SVFIR2ItvExeState::translateAddr</a></div><div class="ttdeci">void translateAddr(const AddrStmt *addr)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00502">SVFIR2ItvExeState.cpp:502</a></div></div>
329
329
  <div class="ttc" id="aclassSVF_1_1SelectStmt_html"><div class="ttname"><a href="classSVF_1_1SelectStmt.html">SVF::SelectStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00816">SVFStatements.h:816</a></div></div>
330
330
  <div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_a2f8e91c075d90be66412a079fe73e936"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a2f8e91c075d90be66412a079fe73e936">SVF::LLVMModuleSet::releaseLLVMModuleSet</a></div><div class="ttdeci">static void releaseLLVMModuleSet()</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00108">LLVMModule.h:108</a></div></div>
331
331
  <div class="ttc" id="aclassSVF_1_1PointerAnalysis_html_a7c9b7e5fe37ae31ba84d167945ca57df"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a7c9b7e5fe37ae31ba84d167945ca57df">SVF::PointerAnalysis::getPTACallGraph</a></div><div class="ttdeci">PTACallGraph * getPTACallGraph() const</div><div class="ttdoc">Return call graph.</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00174">PointerAnalysis.h:174</a></div></div>
@@ -334,16 +334,16 @@ $(function() {
334
334
  <div class="ttc" id="asvf-ex_8cpp_html_a19f3fe331a1e7050a513672a91743b96"><div class="ttname"><a href="svf-ex_8cpp.html#a19f3fe331a1e7050a513672a91743b96">traverseOnICFG</a></div><div class="ttdeci">void traverseOnICFG(ICFG *icfg, const ICFGNode *iNode)</div><div class="ttdef"><b>Definition:</b> <a href="svf-ex_8cpp_source.html#l00141">svf-ex.cpp:141</a></div></div>
335
335
  <div class="ttc" id="aclassSVF_1_1CmpStmt_html"><div class="ttname"><a href="classSVF_1_1CmpStmt.html">SVF::CmpStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00871">SVFStatements.h:871</a></div></div>
336
336
  <div class="ttc" id="aclassSVF_1_1VFG_html"><div class="ttname"><a href="classSVF_1_1VFG.html">SVF::VFG</a></div><div class="ttdef"><b>Definition:</b> <a href="VFG_8h_source.html#l00050">VFG.h:50</a></div></div>
337
- <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_aac5cc8767eb750bf121f1897788dee24"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#aac5cc8767eb750bf121f1897788dee24">SVF::SVFIR2ItvExeState::translateCmp</a></div><div class="ttdeci">void translateCmp(const CmpStmt *cmp)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00586">SVFIR2ItvExeState.cpp:586</a></div></div>
338
- <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_aa274b5b4e18c28ec8035ca1b073aacfc"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#aa274b5b4e18c28ec8035ca1b073aacfc">SVF::SVFIR2ItvExeState::translateGep</a></div><div class="ttdeci">void translateGep(const GepStmt *gep)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00871">SVFIR2ItvExeState.cpp:871</a></div></div>
337
+ <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_aac5cc8767eb750bf121f1897788dee24"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#aac5cc8767eb750bf121f1897788dee24">SVF::SVFIR2ItvExeState::translateCmp</a></div><div class="ttdeci">void translateCmp(const CmpStmt *cmp)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00590">SVFIR2ItvExeState.cpp:590</a></div></div>
338
+ <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_aa274b5b4e18c28ec8035ca1b073aacfc"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#aa274b5b4e18c28ec8035ca1b073aacfc">SVF::SVFIR2ItvExeState::translateGep</a></div><div class="ttdeci">void translateGep(const GepStmt *gep)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00875">SVFIR2ItvExeState.cpp:875</a></div></div>
339
339
  <div class="ttc" id="aclassSVF_1_1FIFOWorkList_html_a7056704c224dfb4b57287fe90c004aa8"><div class="ttname"><a href="classSVF_1_1FIFOWorkList.html#a7056704c224dfb4b57287fe90c004aa8">SVF::FIFOWorkList::empty</a></div><div class="ttdeci">bool empty() const</div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#l00146">WorkList.h:146</a></div></div>
340
340
  <div class="ttc" id="aclassSVF_1_1SVFVar_html_ac2db6304ea5526fb446ae882983beeb0"><div class="ttname"><a href="classSVF_1_1SVFVar.html#ac2db6304ea5526fb446ae882983beeb0">SVF::SVFVar::getValue</a></div><div class="ttdeci">const SVFValue * getValue() const</div><div class="ttdoc">Get/has methods of the components.</div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00094">SVFVariables.h:94</a></div></div>
341
341
  <div class="ttc" id="asvf-ex_8cpp_html_a8fa9e6583c354b1883a32b8abf98779f"><div class="ttname"><a href="svf-ex_8cpp.html#a8fa9e6583c354b1883a32b8abf98779f">traverseOnSVFStmt</a></div><div class="ttdeci">void traverseOnSVFStmt(const ICFGNode *node)</div><div class="ttdef"><b>Definition:</b> <a href="svf-ex_8cpp_source.html#l00077">svf-ex.cpp:77</a></div></div>
342
342
  <div class="ttc" id="aclassSVF_1_1ICFGNode_html"><div class="ttname"><a href="classSVF_1_1ICFGNode.html">SVF::ICFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00054">ICFGNode.h:54</a></div></div>
343
- <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_ae00e5398cbeb9aa1cfc464da4250a91e"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#ae00e5398cbeb9aa1cfc464da4250a91e">SVF::SVFIR2ItvExeState::translatePhi</a></div><div class="ttdeci">void translatePhi(const PhiStmt *phi)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00925">SVFIR2ItvExeState.cpp:925</a></div></div>
343
+ <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_ae00e5398cbeb9aa1cfc464da4250a91e"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#ae00e5398cbeb9aa1cfc464da4250a91e">SVF::SVFIR2ItvExeState::translatePhi</a></div><div class="ttdeci">void translatePhi(const PhiStmt *phi)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00929">SVFIR2ItvExeState.cpp:929</a></div></div>
344
344
  <div class="ttc" id="aCommandLine_8h_html"><div class="ttname"><a href="CommandLine_8h.html">CommandLine.h</a></div></div>
345
345
  <div class="ttc" id="aclassSVF_1_1CallPE_html"><div class="ttname"><a href="classSVF_1_1CallPE.html">SVF::CallPE</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00545">SVFStatements.h:545</a></div></div>
346
- <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_a8f2a564370d9b9fb05e139c45eeaba68"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#a8f2a564370d9b9fb05e139c45eeaba68">SVF::SVFIR2ItvExeState::translateLoad</a></div><div class="ttdeci">void translateLoad(const LoadStmt *load)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00770">SVFIR2ItvExeState.cpp:770</a></div></div>
346
+ <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_a8f2a564370d9b9fb05e139c45eeaba68"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#a8f2a564370d9b9fb05e139c45eeaba68">SVF::SVFIR2ItvExeState::translateLoad</a></div><div class="ttdeci">void translateLoad(const LoadStmt *load)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00774">SVFIR2ItvExeState.cpp:774</a></div></div>
347
347
  <div class="ttc" id="asvf-ex_8cpp_html_ad58149e5445ad22ce478339e103ab42b"><div class="ttname"><a href="svf-ex_8cpp.html#ad58149e5445ad22ce478339e103ab42b">traverseOnVFG</a></div><div class="ttdeci">void traverseOnVFG(const SVFG *vfg, SVFValue *val)</div><div class="ttdef"><b>Definition:</b> <a href="svf-ex_8cpp_source.html#l00168">svf-ex.cpp:168</a></div></div>
348
348
  <div class="ttc" id="aOptions_8h_html"><div class="ttname"><a href="Options_8h.html">Options.h</a></div></div>
349
349
  <div class="ttc" id="aclassOptionBase_html_a4fb6c6e4a1754d702c6c1730f54457e5"><div class="ttname"><a href="classOptionBase.html#a4fb6c6e4a1754d702c6c1730f54457e5">OptionBase::parseOptions</a></div><div class="ttdeci">static std::vector&lt; std::string &gt; parseOptions(int argc, char *argv[], std::string description, std::string callFormat)</div><div class="ttdef"><b>Definition:</b> <a href="CommandLine_8h_source.html#l00075">CommandLine.h:75</a></div></div>
@@ -351,13 +351,13 @@ $(function() {
351
351
  <div class="ttc" id="aclassSVF_1_1BinaryOPStmt_html"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html">SVF::BinaryOPStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00957">SVFStatements.h:957</a></div></div>
352
352
  <div class="ttc" id="aclassSVF_1_1StoreStmt_html"><div class="ttname"><a href="classSVF_1_1StoreStmt.html">SVF::StoreStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00387">SVFStatements.h:387</a></div></div>
353
353
  <div class="ttc" id="aclassSVF_1_1SVFValue_html"><div class="ttname"><a href="classSVF_1_1SVFValue.html">SVF::SVFValue</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00177">SVFValue.h:177</a></div></div>
354
- <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_a31e299f91eed29d1a8db3b884d57d1dc"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#a31e299f91eed29d1a8db3b884d57d1dc">SVF::SVFIR2ItvExeState::translateRet</a></div><div class="ttdeci">void translateRet(const RetPE *retPE)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00974">SVFIR2ItvExeState.cpp:974</a></div></div>
354
+ <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_a31e299f91eed29d1a8db3b884d57d1dc"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#a31e299f91eed29d1a8db3b884d57d1dc">SVF::SVFIR2ItvExeState::translateRet</a></div><div class="ttdeci">void translateRet(const RetPE *retPE)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00978">SVFIR2ItvExeState.cpp:978</a></div></div>
355
355
  <div class="ttc" id="acJSON_8h_html_ad4c68ea99a26b0a98ad9a79982960458"><div class="ttname"><a href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">string</a></div><div class="ttdeci">const char *const string</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8h_source.html#l00172">cJSON.h:172</a></div></div>
356
- <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_a449ee8f244120866037c7f6d2ee5fc13"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#a449ee8f244120866037c7f6d2ee5fc13">SVF::SVFIR2ItvExeState::translateBinary</a></div><div class="ttdeci">void translateBinary(const BinaryOPStmt *binary)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00524">SVFIR2ItvExeState.cpp:524</a></div></div>
356
+ <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_a449ee8f244120866037c7f6d2ee5fc13"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#a449ee8f244120866037c7f6d2ee5fc13">SVF::SVFIR2ItvExeState::translateBinary</a></div><div class="ttdeci">void translateBinary(const BinaryOPStmt *binary)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00528">SVFIR2ItvExeState.cpp:528</a></div></div>
357
357
  <div class="ttc" id="aclassSVF_1_1GenericNode_html_a19a3366fd8a58290d0c740c46c3dcb3d"><div class="ttname"><a href="classSVF_1_1GenericNode.html#a19a3366fd8a58290d0c740c46c3dcb3d">SVF::GenericNode::OutEdgeEnd</a></div><div class="ttdeci">iterator OutEdgeEnd()</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00221">GenericGraph.h:221</a></div></div>
358
358
  <div class="ttc" id="aclassSVF_1_1PointerAnalysis_html_a4dfb43679e9fa794ebad99b6584c32ec"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a4dfb43679e9fa794ebad99b6584c32ec">SVF::PointerAnalysis::getPts</a></div><div class="ttdeci">virtual const PointsTo &amp; getPts(NodeID ptr)=0</div><div class="ttdoc">Get points-to targets of a pointer. It needs to be implemented in child class.</div></div>
359
359
  <div class="ttc" id="aclassSVF_1_1SVFIRBuilder_html"><div class="ttname"><a href="classSVF_1_1SVFIRBuilder.html">SVF::SVFIRBuilder</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFIRBuilder_8h_source.html#l00046">SVFIRBuilder.h:46</a></div></div>
360
- <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_aed2e41879bae8389c49e69356b7aaac5"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#aed2e41879bae8389c49e69356b7aaac5">SVF::SVFIR2ItvExeState::translateStore</a></div><div class="ttdeci">void translateStore(const StoreStmt *store)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00812">SVFIR2ItvExeState.cpp:812</a></div></div>
360
+ <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_aed2e41879bae8389c49e69356b7aaac5"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#aed2e41879bae8389c49e69356b7aaac5">SVF::SVFIR2ItvExeState::translateStore</a></div><div class="ttdeci">void translateStore(const StoreStmt *store)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00816">SVFIR2ItvExeState.cpp:816</a></div></div>
361
361
  <div class="ttc" id="anamespaceSVF_html_a61c01e2e687ab3a001fb806737583943"><div class="ttname"><a href="namespaceSVF.html#a61c01e2e687ab3a001fb806737583943">SVF::AliasResult</a></div><div class="ttdeci">AliasResult</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00618">SVFType.h:618</a></div></div>
362
362
  <div class="ttc" id="aclassSVF_1_1SVFStmt_html"><div class="ttname"><a href="classSVF_1_1SVFStmt.html">SVF::SVFStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00051">SVFStatements.h:51</a></div></div>
363
363
  <div class="ttc" id="aclassSVF_1_1VFGNode_html"><div class="ttname"><a href="classSVF_1_1VFGNode.html">SVF::VFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00046">VFGNode.h:46</a></div></div>
@@ -367,7 +367,7 @@ $(function() {
367
367
  <div class="ttc" id="aclassSVF_1_1LoadStmt_html"><div class="ttname"><a href="classSVF_1_1LoadStmt.html">SVF::LoadStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00424">SVFStatements.h:424</a></div></div>
368
368
  <div class="ttc" id="aSVFG_8h_html"><div class="ttname"><a href="SVFG_8h.html">SVFG.h</a></div></div>
369
369
  <div class="ttc" id="aclassSVF_1_1GenericGraph_html_a43c9c773bfa17abf481c33073e30d01b"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">SVF::GenericGraph::getGNode</a></div><div class="ttdeci">NodeType * getGNode(NodeID id) const</div><div class="ttdoc">Get a node.</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00406">GenericGraph.h:406</a></div></div>
370
- <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_afcf2f81101f1b9580d82b5c2efb83999"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#afcf2f81101f1b9580d82b5c2efb83999">SVF::SVFIR2ItvExeState::translateCopy</a></div><div class="ttdeci">void translateCopy(const CopyStmt *copy)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00841">SVFIR2ItvExeState.cpp:841</a></div></div>
370
+ <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_afcf2f81101f1b9580d82b5c2efb83999"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#afcf2f81101f1b9580d82b5c2efb83999">SVF::SVFIR2ItvExeState::translateCopy</a></div><div class="ttdeci">void translateCopy(const CopyStmt *copy)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00845">SVFIR2ItvExeState.cpp:845</a></div></div>
371
371
  <div class="ttc" id="aclassSVF_1_1GepStmt_html"><div class="ttname"><a href="classSVF_1_1GepStmt.html">SVF::GepStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00461">SVFStatements.h:461</a></div></div>
372
372
  <div class="ttc" id="aclassSVF_1_1GenericNode_html_aa4f103330118c8976bf95e4bf53416eb"><div class="ttname"><a href="classSVF_1_1GenericNode.html#aa4f103330118c8976bf95e4bf53416eb">SVF::GenericNode::OutEdgeBegin</a></div><div class="ttdeci">iterator OutEdgeBegin()</div><div class="ttdoc">iterators</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00217">GenericGraph.h:217</a></div></div>
373
373
  <div class="ttc" id="aclassSVF_1_1SVFGBuilder_html_a54a713e3989597b11cee70864d0197bd"><div class="ttname"><a href="classSVF_1_1SVFGBuilder.html#a54a713e3989597b11cee70864d0197bd">SVF::SVFGBuilder::buildFullSVFG</a></div><div class="ttdeci">SVFG * buildFullSVFG(BVDataPTAImpl *pta)</div><div class="ttdef"><b>Definition:</b> <a href="SVFGBuilder_8cpp_source.html#l00049">SVFGBuilder.cpp:49</a></div></div>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "svf-tools",
3
- "version": "1.0.813",
3
+ "version": "1.0.815",
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": {
@@ -308,7 +308,7 @@ public:
308
308
  /// Get location set of the gep edge
309
309
  inline APOffset getConstantFieldIdx() const
310
310
  {
311
- return ap.getConstantFieldIdx();
311
+ return ap.getConstantStructFldIdx();
312
312
  }
313
313
 
314
314
  };
@@ -65,12 +65,13 @@ public:
65
65
  typedef std::vector<IdxOperandPair> IdxOperandPairs;
66
66
 
67
67
  /// Constructor
68
- AccessPath(APOffset o = 0) : fldIdx(o) {}
68
+ AccessPath(APOffset o = 0, const SVFType* srcTy = nullptr) : fldIdx(o), gepSourceElementType(srcTy) {}
69
69
 
70
70
  /// Copy Constructor
71
71
  AccessPath(const AccessPath& ap)
72
72
  : fldIdx(ap.fldIdx),
73
- idxOperandPairs(ap.getIdxOperandPairVec())
73
+ idxOperandPairs(ap.getIdxOperandPairVec()),
74
+ gepSourceElementType(ap.getGepSourceElementType())
74
75
  {
75
76
  }
76
77
 
@@ -84,18 +85,19 @@ public:
84
85
  {
85
86
  fldIdx = rhs.fldIdx;
86
87
  idxOperandPairs = rhs.getIdxOperandPairVec();
88
+ gepSourceElementType = rhs.gepSourceElementType;
87
89
  return *this;
88
90
  }
89
91
  inline bool operator==(const AccessPath& rhs) const
90
92
  {
91
93
  return this->fldIdx == rhs.fldIdx &&
92
- this->idxOperandPairs == rhs.idxOperandPairs;
94
+ this->idxOperandPairs == rhs.idxOperandPairs && this->gepSourceElementType == rhs.gepSourceElementType;
93
95
  }
94
96
  //@}
95
97
 
96
98
  /// Get methods
97
99
  //@{
98
- inline APOffset getConstantFieldIdx() const
100
+ inline APOffset getConstantStructFldIdx() const
99
101
  {
100
102
  return fldIdx;
101
103
  }
@@ -107,6 +109,10 @@ public:
107
109
  {
108
110
  return idxOperandPairs;
109
111
  }
112
+ inline const SVFType* getGepSourceElementType() const
113
+ {
114
+ return gepSourceElementType;
115
+ }
110
116
  //@}
111
117
 
112
118
  /**
@@ -167,6 +173,9 @@ private:
167
173
 
168
174
  APOffset fldIdx; ///< Accumulated Constant Offsets
169
175
  IdxOperandPairs idxOperandPairs; ///< a vector of actual offset in the form of <SVF Var, iterator type>
176
+ const SVFType* gepSourceElementType; /// source element type in gep instruction,
177
+ /// e.g., %f1 = getelementptr inbounds %struct.MyStruct, %struct.MyStruct* %arrayidx, i32 0, i32 0
178
+ /// the source element type is %struct.MyStruct
170
179
  };
171
180
 
172
181
  } // End namespace SVF
@@ -177,7 +186,7 @@ template <> struct std::hash<SVF::AccessPath>
177
186
  {
178
187
  SVF::Hash<std::pair<SVF::NodeID, SVF::NodeID>> h;
179
188
  std::hash<SVF::AccessPath::IdxOperandPairs> v;
180
- return h(std::make_pair(ap.getConstantFieldIdx(),
189
+ return h(std::make_pair(ap.getConstantStructFldIdx(),
181
190
  v(ap.getIdxOperandPairVec())));
182
191
  }
183
192
  };
@@ -517,10 +517,10 @@ public:
517
517
  return getAccessPath().computeConstantOffset();
518
518
  }
519
519
  /// Field index of the gep statement if it access the field of a struct
520
- inline APOffset getConstantFieldIdx() const
520
+ inline APOffset getConstantStructFldIdx() const
521
521
  {
522
522
  assert(isVariantFieldGep()==false && "Can't retrieve the AccessPath if using a variable field index (pointer arithmetic) for struct field access ");
523
- return getAccessPath().getConstantFieldIdx();
523
+ return getAccessPath().getConstantStructFldIdx();
524
524
  }
525
525
  /// Gep statement with a variant field index (pointer arithmetic) for struct field access
526
526
  inline bool isVariantFieldGep() const
@@ -420,7 +420,7 @@ public:
420
420
  /// offset of the base value variable
421
421
  inline APOffset getConstantFieldIdx() const
422
422
  {
423
- return ap.getConstantFieldIdx();
423
+ return ap.getConstantStructFldIdx();
424
424
  }
425
425
 
426
426
  /// Return name of a LLVM value
@@ -609,7 +609,8 @@ std::pair<s32_t, s32_t> SVFIR2ConsExeState::getGepOffset(const SVF::GepStmt *gep
609
609
  {
610
610
  /// for instant constant index, e.g. gep arr, 1
611
611
  if (gep->getOffsetVarAndGepTypePairVec().empty())
612
- return std::make_pair(gep->getConstantFieldIdx(), gep->getConstantFieldIdx());
612
+ return std::make_pair(gep->getConstantStructFldIdx(),
613
+ gep->getConstantStructFldIdx());
613
614
 
614
615
  s32_t totalOffset = 0;
615
616
  /// default value of MaxFieldLimit is 512
@@ -266,6 +266,8 @@ SVFIR2ItvExeState::Addrs SVFIR2ItvExeState::getGepObjAddress(u32_t pointer, APOf
266
266
  */
267
267
  IntervalValue SVFIR2ItvExeState::getByteOffset(const GepStmt *gep)
268
268
  {
269
+ if (gep->isConstantOffset())
270
+ return IntervalValue((s64_t)gep->accumulateConstantByteOffset());
269
271
  IntervalValue res(0); // Initialize the result interval 'res' to 0.
270
272
  // Loop through the offsetVarAndGepTypePairVec in reverse order.
271
273
  for (int i = gep->getOffsetVarAndGepTypePairVec().size() - 1; i >= 0; i--)
@@ -337,6 +339,8 @@ IntervalValue SVFIR2ItvExeState::getByteOffset(const GepStmt *gep)
337
339
  */
338
340
  IntervalValue SVFIR2ItvExeState::getItvOfFlattenedElemIndex(const GepStmt *gep)
339
341
  {
342
+ if (gep->isConstantOffset())
343
+ return IntervalValue((s64_t)gep->accumulateConstantOffset());
340
344
  IntervalValue res(0);
341
345
  for (int i = gep->getOffsetVarAndGepTypePairVec().size() - 1; i >= 0; i--)
342
346
  {
@@ -171,7 +171,8 @@ CxtPtSet ContextDDA::processGepPts(const GepSVFGNode* gep, const CxtPtSet& srcPt
171
171
  }
172
172
  else
173
173
  {
174
- CxtVar var(ptd.get_cond(),getGepObjVar(ptd.get_id(),gepStmt->getAccessPath().getConstantFieldIdx()));
174
+ CxtVar var(ptd.get_cond(),getGepObjVar(ptd.get_id(),
175
+ gepStmt->getAccessPath().getConstantStructFldIdx()));
175
176
  tmpDstPts.set(var);
176
177
  }
177
178
  }
@@ -156,7 +156,7 @@ PointsTo FlowDDA::processGepPts(const GepSVFGNode* gep, const PointsTo& srcPts)
156
156
  }
157
157
  else
158
158
  {
159
- NodeID fieldSrcPtdNode = getGepObjVar(ptd, gepStmt->getAccessPath().getConstantFieldIdx());
159
+ NodeID fieldSrcPtdNode = getGepObjVar(ptd, gepStmt->getAccessPath().getConstantStructFldIdx());
160
160
  tmpDstPts.set(fieldSrcPtdNode);
161
161
  }
162
162
  }
@@ -209,8 +209,9 @@ APOffset AccessPath::computeConstantOffset() const
209
209
 
210
210
  assert(isConstantOffset() && "not a constant offset");
211
211
 
212
- if(idxOperandPairs.empty())
213
- return getConstantFieldIdx();
212
+ // source element type is struct
213
+ if(gepSourceElementType && gepSourceElementType->isStructTy())
214
+ return getConstantStructFldIdx();
214
215
 
215
216
  APOffset totalConstOffset = 0;
216
217
  for(int i = idxOperandPairs.size() - 1; i >= 0; i--)
@@ -249,14 +250,15 @@ APOffset AccessPath::computeConstantOffset() const
249
250
  NodeBS AccessPath::computeAllLocations() const
250
251
  {
251
252
  NodeBS result;
252
- result.set(getConstantFieldIdx());
253
+ result.set(getConstantStructFldIdx());
253
254
  return result;
254
255
  }
255
256
 
256
257
  AccessPath AccessPath::operator+(const AccessPath& rhs) const
257
258
  {
259
+ assert(gepSourceElementType == rhs.getGepSourceElementType() && "source element type not match");
258
260
  AccessPath ap(rhs);
259
- ap.fldIdx += getConstantFieldIdx();
261
+ ap.fldIdx += getConstantStructFldIdx();
260
262
  for (auto &p : ap.getIdxOperandPairVec())
261
263
  ap.addOffsetVarAndGepTypePair(p.first, p.second);
262
264
 
@@ -314,7 +316,7 @@ std::string AccessPath::dump() const
314
316
  std::string str;
315
317
  std::stringstream rawstr(str);
316
318
 
317
- rawstr << "AccessPath\tField_Index: " << getConstantFieldIdx();
319
+ rawstr << "AccessPath\tField_Index: " << getConstantStructFldIdx();
318
320
  rawstr << ",\tNum-Stride: {";
319
321
  const IdxOperandPairs& vec = getIdxOperandPairVec();
320
322
  IdxOperandPairs::const_iterator it = vec.begin();
@@ -633,7 +633,7 @@ void SVFIR::print()
633
633
  outs() << (*iter)->getSrcID() << " -- VariantGep --> "
634
634
  << (*iter)->getDstID() << "\n";
635
635
  else
636
- outs() << gep->getRHSVarID() << " -- Gep (" << gep->getConstantFieldIdx()
636
+ outs() << gep->getRHSVarID() << " -- Gep (" << gep->getConstantStructFldIdx()
637
637
  << ") --> " << gep->getLHSVarID() << "\n";
638
638
  }
639
639
 
@@ -457,7 +457,7 @@ bool Andersen::processGepPts(const PointsTo& pts, const GepCGEdge* edge)
457
457
  continue;
458
458
  }
459
459
 
460
- NodeID fieldSrcPtdNode = consCG->getGepObjVar(o, normalGepEdge->getAccessPath().getConstantFieldIdx());
460
+ NodeID fieldSrcPtdNode = consCG->getGepObjVar(o, normalGepEdge->getAccessPath().getConstantStructFldIdx());
461
461
  tmpDstPts.set(fieldSrcPtdNode);
462
462
  }
463
463
  }
@@ -529,7 +529,7 @@ bool FlowSensitive::processGep(const GepSVFGNode* edge)
529
529
  continue;
530
530
  }
531
531
 
532
- NodeID fieldSrcPtdNode = getGepObjVar(o, gepStmt->getAccessPath().getConstantFieldIdx());
532
+ NodeID fieldSrcPtdNode = getGepObjVar(o, gepStmt->getAccessPath().getConstantStructFldIdx());
533
533
  tmpDstPts.set(fieldSrcPtdNode);
534
534
  }
535
535
  }
@@ -303,7 +303,7 @@ bool SVFIRBuilder::computeGepOffset(const User *V, AccessPath& ap)
303
303
  continue;
304
304
  APOffset idx = op->getSExtValue();
305
305
  u32_t offset = pag->getSymbolInfo()->getFlattenedElemIdx(LLVMModuleSet::getLLVMModuleSet()->getSVFType(arrTy), idx);
306
- ap.setFldIdx(ap.getConstantFieldIdx() + offset);
306
+ ap.setFldIdx(ap.getConstantStructFldIdx() + offset);
307
307
  }
308
308
  else if (const StructType *ST = SVFUtil::dyn_cast<StructType>(gepTy))
309
309
  {
@@ -311,7 +311,7 @@ bool SVFIRBuilder::computeGepOffset(const User *V, AccessPath& ap)
311
311
  //The actual index
312
312
  APOffset idx = op->getSExtValue();
313
313
  u32_t offset = pag->getSymbolInfo()->getFlattenedElemIdx(LLVMModuleSet::getLLVMModuleSet()->getSVFType(ST), idx);
314
- ap.setFldIdx(ap.getConstantFieldIdx() + offset);
314
+ ap.setFldIdx(ap.getConstantStructFldIdx() + offset);
315
315
  }
316
316
  else if (gepTy->isSingleValueType())
317
317
  {
@@ -345,7 +345,9 @@ void SVFIRBuilder::processCE(const Value* val)
345
345
  const Constant* opnd = gepce->getOperand(0);
346
346
  // handle recursive constant express case (gep (bitcast (gep X 1)) 1)
347
347
  processCE(opnd);
348
- AccessPath ap;
348
+ auto &GEPOp = llvm::cast<llvm::GEPOperator>(*gepce);
349
+ Type *pType = GEPOp.getSourceElementType();
350
+ AccessPath ap(0, LLVMModuleSet::getLLVMModuleSet()->getSVFType(pType));
349
351
  bool constGep = computeGepOffset(gepce, ap);
350
352
  // must invoke pag methods here, otherwise it will be a dead recursion cycle
351
353
  const SVFValue* cval = getCurrentValue();
@@ -710,7 +712,7 @@ void SVFIRBuilder::visitGetElementPtrInst(GetElementPtrInst &inst)
710
712
 
711
713
  NodeID src = getValueNode(inst.getPointerOperand());
712
714
 
713
- AccessPath ap;
715
+ AccessPath ap(0, LLVMModuleSet::getLLVMModuleSet()->getSVFType(inst.getSourceElementType()));
714
716
  bool constGep = computeGepOffset(&inst, ap);
715
717
  addGepEdge(src, dst, ap, constGep);
716
718
  }
@@ -112,9 +112,9 @@ void SVFIRBuilder::addComplexConsForExt(Value *D, Value *S, const Value* szValue
112
112
  {
113
113
  LLVMModuleSet* llvmmodule = LLVMModuleSet::getLLVMModuleSet();
114
114
  const SVFType* dElementType = pag->getSymbolInfo()->getFlatternedElemType(llvmmodule->getSVFType(dtype),
115
- fields[index].getConstantFieldIdx());
115
+ fields[index].getConstantStructFldIdx());
116
116
  const SVFType* sElementType = pag->getSymbolInfo()->getFlatternedElemType(llvmmodule->getSVFType(stype),
117
- fields[index].getConstantFieldIdx());
117
+ fields[index].getConstantStructFldIdx());
118
118
  NodeID dField = getGepValVar(D,fields[index],dElementType);
119
119
  NodeID sField = getGepValVar(S,fields[index],sElementType);
120
120
  NodeID dummy = pag->addDummyValNode();
@@ -180,7 +180,8 @@ void SVFIRBuilder::handleExtCall(const CallBase* cs, const SVFFunction* svfCalle
180
180
  for (u32_t index = 0; index < sz; index++)
181
181
  {
182
182
  LLVMModuleSet* llvmmodule = LLVMModuleSet::getLLVMModuleSet();
183
- const SVFType* dElementType = pag->getSymbolInfo()->getFlatternedElemType(llvmmodule->getSVFType(dtype), dstFields[index].getConstantFieldIdx());
183
+ const SVFType* dElementType = pag->getSymbolInfo()->getFlatternedElemType(llvmmodule->getSVFType(dtype),
184
+ dstFields[index].getConstantStructFldIdx());
184
185
  NodeID dField = getGepValVar(cs->getArgOperand(0), dstFields[index], dElementType);
185
186
  addStoreEdge(getValueNode(cs->getArgOperand(1)),dField);
186
187
  }
@@ -233,7 +234,8 @@ void SVFIRBuilder::handleExtCall(const CallBase* cs, const SVFFunction* svfCalle
233
234
  // We have vArg3 points to the entry of _Rb_tree_node_base { color; parent; left; right; }.
234
235
  // Now we calculate the offset from base to vArg3
235
236
  NodeID vnArg3 = pag->getValueNode(svfCall->getArgOperand(3));
236
- APOffset offset = getAccessPathFromBaseNode(vnArg3).getConstantFieldIdx();
237
+ APOffset offset =
238
+ getAccessPathFromBaseNode(vnArg3).getConstantStructFldIdx();
237
239
 
238
240
  // We get all flattened fields of base
239
241
  vector<AccessPath> fields = pag->getTypeLocSetsMap(vnArg3).second;
@@ -245,7 +247,7 @@ void SVFIRBuilder::handleExtCall(const CallBase* cs, const SVFFunction* svfCalle
245
247
  if((u32_t)i >= fields.size())
246
248
  break;
247
249
  const SVFType* elementType = pag->getSymbolInfo()->getFlatternedElemType(pag->getTypeLocSetsMap(vnArg3).first,
248
- fields[i].getConstantFieldIdx());
250
+ fields[i].getConstantStructFldIdx());
249
251
  NodeID vnD = getGepValVar(cs->getArgOperand(3), fields[i], elementType);
250
252
  NodeID vnS = pag->getValueNode(svfCall->getArgOperand(1));
251
253
  if(vnD && vnS)