svf-tools 1.0.779 → 1.0.781

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 (253) hide show
  1. package/SVF-doxygen/html/html/ExtAPI_8cpp.html +51 -49
  2. package/SVF-doxygen/html/html/ExtAPI_8cpp_source.html +216 -184
  3. package/SVF-doxygen/html/html/ExtAPI_8h.html +6 -6
  4. package/SVF-doxygen/html/html/ExtAPI_8h_source.html +55 -47
  5. package/SVF-doxygen/html/html/LLVMModule_8cpp_source.html +6 -5
  6. package/SVF-doxygen/html/html/LLVMModule_8h_source.html +3 -2
  7. package/SVF-doxygen/html/html/LLVMUtil_8cpp_source.html +3 -2
  8. package/SVF-doxygen/html/html/Options_8cpp_source.html +122 -122
  9. package/SVF-doxygen/html/html/Options_8h_source.html +2 -2
  10. package/SVF-doxygen/html/html/SVFModule_8cpp_source.html +1 -1
  11. package/SVF-doxygen/html/html/SVFUtil_8h_source.html +16 -16
  12. package/SVF-doxygen/html/html/classSVF_1_1ExtAPI-members.html +15 -13
  13. package/SVF-doxygen/html/html/classSVF_1_1ExtAPI.html +185 -106
  14. package/SVF-doxygen/html/html/classSVF_1_1LLVMModuleSet.html +7 -6
  15. package/SVF-doxygen/html/html/classSVF_1_1Options-members.html +1 -1
  16. package/SVF-doxygen/html/html/classSVF_1_1Options.html +5 -5
  17. package/SVF-doxygen/html/html/classSVF_1_1SVFModule.html +1 -1
  18. package/SVF-doxygen/html/html/functions_e.html +5 -2
  19. package/SVF-doxygen/html/html/functions_f.html +3 -3
  20. package/SVF-doxygen/html/html/functions_func_g.html +1 -1
  21. package/SVF-doxygen/html/html/functions_func_p.html +1 -1
  22. package/SVF-doxygen/html/html/functions_func_s.html +19 -16
  23. package/SVF-doxygen/html/html/functions_g.html +1 -1
  24. package/SVF-doxygen/html/html/functions_i.html +3 -3
  25. package/SVF-doxygen/html/html/functions_n.html +3 -3
  26. package/SVF-doxygen/html/html/functions_o.html +16 -16
  27. package/SVF-doxygen/html/html/functions_p.html +23 -19
  28. package/SVF-doxygen/html/html/functions_s.html +20 -17
  29. package/SVF-doxygen/html/html/functions_t.html +8 -8
  30. package/SVF-doxygen/html/html/functions_v.html +3 -3
  31. package/SVF-doxygen/html/html/functions_vars_e.html +5 -2
  32. package/SVF-doxygen/html/html/functions_w.html +1 -1
  33. package/SVF-doxygen/html/html/globals_d.html +3 -0
  34. package/SVF-doxygen/html/html/globals_defs.html +3 -3
  35. package/SVF-doxygen/html/html/globals_e.html +0 -3
  36. package/SVF-doxygen/html/html/namespaceSVF_1_1LLVMUtil.html +1 -1
  37. package/SVF-doxygen/html/html/search/all_10.js +324 -324
  38. package/SVF-doxygen/html/html/search/all_11.js +224 -224
  39. package/SVF-doxygen/html/html/search/all_12.js +546 -545
  40. package/SVF-doxygen/html/html/search/all_13.js +190 -190
  41. package/SVF-doxygen/html/html/search/all_14.js +67 -67
  42. package/SVF-doxygen/html/html/search/all_15.js +170 -170
  43. package/SVF-doxygen/html/html/search/all_16.js +63 -63
  44. package/SVF-doxygen/html/html/search/all_17.js +1 -1
  45. package/SVF-doxygen/html/html/search/all_18.js +1 -1
  46. package/SVF-doxygen/html/html/search/all_19.js +11 -11
  47. package/SVF-doxygen/html/html/search/all_1a.js +176 -176
  48. package/SVF-doxygen/html/html/search/all_4.js +184 -183
  49. package/SVF-doxygen/html/html/search/all_5.js +120 -120
  50. package/SVF-doxygen/html/html/search/all_6.js +225 -225
  51. package/SVF-doxygen/html/html/search/all_7.js +1056 -1056
  52. package/SVF-doxygen/html/html/search/all_8.js +195 -195
  53. package/SVF-doxygen/html/html/search/all_9.js +617 -617
  54. package/SVF-doxygen/html/html/search/all_a.js +46 -46
  55. package/SVF-doxygen/html/html/search/all_b.js +26 -26
  56. package/SVF-doxygen/html/html/search/all_c.js +116 -116
  57. package/SVF-doxygen/html/html/search/all_d.js +196 -196
  58. package/SVF-doxygen/html/html/search/all_e.js +207 -207
  59. package/SVF-doxygen/html/html/search/all_f.js +116 -116
  60. package/SVF-doxygen/html/html/search/classes_0.js +26 -26
  61. package/SVF-doxygen/html/html/search/classes_1.js +9 -9
  62. package/SVF-doxygen/html/html/search/classes_10.js +73 -73
  63. package/SVF-doxygen/html/html/search/classes_11.js +15 -15
  64. package/SVF-doxygen/html/html/search/classes_12.js +2 -2
  65. package/SVF-doxygen/html/html/search/classes_13.js +10 -10
  66. package/SVF-doxygen/html/html/search/classes_14.js +14 -14
  67. package/SVF-doxygen/html/html/search/classes_15.js +1 -1
  68. package/SVF-doxygen/html/html/search/classes_2.js +80 -80
  69. package/SVF-doxygen/html/html/search/classes_3.js +38 -38
  70. package/SVF-doxygen/html/html/search/classes_4.js +9 -9
  71. package/SVF-doxygen/html/html/search/classes_5.js +28 -28
  72. package/SVF-doxygen/html/html/search/classes_6.js +110 -110
  73. package/SVF-doxygen/html/html/search/classes_7.js +33 -33
  74. package/SVF-doxygen/html/html/search/classes_8.js +60 -60
  75. package/SVF-doxygen/html/html/search/classes_9.js +1 -1
  76. package/SVF-doxygen/html/html/search/classes_a.js +12 -12
  77. package/SVF-doxygen/html/html/search/classes_b.js +29 -29
  78. package/SVF-doxygen/html/html/search/classes_c.js +6 -6
  79. package/SVF-doxygen/html/html/search/classes_d.js +18 -18
  80. package/SVF-doxygen/html/html/search/classes_e.js +36 -36
  81. package/SVF-doxygen/html/html/search/classes_f.js +25 -25
  82. package/SVF-doxygen/html/html/search/defines_0.js +3 -3
  83. package/SVF-doxygen/html/html/search/defines_1.js +2 -2
  84. package/SVF-doxygen/html/html/search/defines_2.js +30 -30
  85. package/SVF-doxygen/html/html/search/defines_3.js +21 -20
  86. package/SVF-doxygen/html/html/search/defines_4.js +2 -3
  87. package/SVF-doxygen/html/html/search/defines_5.js +4 -4
  88. package/SVF-doxygen/html/html/search/defines_6.js +2 -2
  89. package/SVF-doxygen/html/html/search/defines_7.js +5 -5
  90. package/SVF-doxygen/html/html/search/defines_8.js +11 -11
  91. package/SVF-doxygen/html/html/search/defines_9.js +9 -9
  92. package/SVF-doxygen/html/html/search/defines_a.js +2 -2
  93. package/SVF-doxygen/html/html/search/defines_b.js +1 -1
  94. package/SVF-doxygen/html/html/search/defines_c.js +3 -3
  95. package/SVF-doxygen/html/html/search/defines_d.js +2 -2
  96. package/SVF-doxygen/html/html/search/defines_e.js +7 -7
  97. package/SVF-doxygen/html/html/search/defines_f.js +3 -3
  98. package/SVF-doxygen/html/html/search/enums_0.js +3 -3
  99. package/SVF-doxygen/html/html/search/enums_1.js +2 -2
  100. package/SVF-doxygen/html/html/search/enums_10.js +1 -1
  101. package/SVF-doxygen/html/html/search/enums_11.js +1 -1
  102. package/SVF-doxygen/html/html/search/enums_2.js +8 -8
  103. package/SVF-doxygen/html/html/search/enums_3.js +1 -1
  104. package/SVF-doxygen/html/html/search/enums_4.js +3 -3
  105. package/SVF-doxygen/html/html/search/enums_5.js +1 -1
  106. package/SVF-doxygen/html/html/search/enums_6.js +2 -2
  107. package/SVF-doxygen/html/html/search/enums_7.js +2 -2
  108. package/SVF-doxygen/html/html/search/enums_8.js +4 -4
  109. package/SVF-doxygen/html/html/search/enums_9.js +1 -1
  110. package/SVF-doxygen/html/html/search/enums_a.js +1 -1
  111. package/SVF-doxygen/html/html/search/enums_b.js +7 -7
  112. package/SVF-doxygen/html/html/search/enums_c.js +1 -1
  113. package/SVF-doxygen/html/html/search/enums_d.js +4 -4
  114. package/SVF-doxygen/html/html/search/enums_e.js +2 -2
  115. package/SVF-doxygen/html/html/search/enums_f.js +4 -4
  116. package/SVF-doxygen/html/html/search/enumvalues_0.js +14 -14
  117. package/SVF-doxygen/html/html/search/enumvalues_1.js +14 -14
  118. package/SVF-doxygen/html/html/search/enumvalues_10.js +35 -35
  119. package/SVF-doxygen/html/html/search/enumvalues_11.js +3 -3
  120. package/SVF-doxygen/html/html/search/enumvalues_12.js +10 -10
  121. package/SVF-doxygen/html/html/search/enumvalues_13.js +1 -1
  122. package/SVF-doxygen/html/html/search/enumvalues_14.js +1 -1
  123. package/SVF-doxygen/html/html/search/enumvalues_15.js +3 -3
  124. package/SVF-doxygen/html/html/search/enumvalues_2.js +36 -36
  125. package/SVF-doxygen/html/html/search/enumvalues_3.js +13 -13
  126. package/SVF-doxygen/html/html/search/enumvalues_4.js +2 -2
  127. package/SVF-doxygen/html/html/search/enumvalues_5.js +47 -47
  128. package/SVF-doxygen/html/html/search/enumvalues_6.js +6 -6
  129. package/SVF-doxygen/html/html/search/enumvalues_7.js +9 -9
  130. package/SVF-doxygen/html/html/search/enumvalues_8.js +23 -23
  131. package/SVF-doxygen/html/html/search/enumvalues_9.js +6 -6
  132. package/SVF-doxygen/html/html/search/enumvalues_a.js +15 -15
  133. package/SVF-doxygen/html/html/search/enumvalues_b.js +11 -11
  134. package/SVF-doxygen/html/html/search/enumvalues_c.js +5 -5
  135. package/SVF-doxygen/html/html/search/enumvalues_d.js +18 -18
  136. package/SVF-doxygen/html/html/search/enumvalues_e.js +9 -9
  137. package/SVF-doxygen/html/html/search/enumvalues_f.js +45 -45
  138. package/SVF-doxygen/html/html/search/files_0.js +13 -13
  139. package/SVF-doxygen/html/html/search/files_1.js +7 -7
  140. package/SVF-doxygen/html/html/search/files_10.js +8 -8
  141. package/SVF-doxygen/html/html/search/files_11.js +8 -8
  142. package/SVF-doxygen/html/html/search/files_12.js +2 -2
  143. package/SVF-doxygen/html/html/search/files_2.js +53 -53
  144. package/SVF-doxygen/html/html/search/files_3.js +14 -14
  145. package/SVF-doxygen/html/html/search/files_4.js +5 -5
  146. package/SVF-doxygen/html/html/search/files_5.js +13 -13
  147. package/SVF-doxygen/html/html/search/files_6.js +9 -9
  148. package/SVF-doxygen/html/html/search/files_7.js +16 -16
  149. package/SVF-doxygen/html/html/search/files_8.js +13 -13
  150. package/SVF-doxygen/html/html/search/files_9.js +18 -18
  151. package/SVF-doxygen/html/html/search/files_a.js +3 -3
  152. package/SVF-doxygen/html/html/search/files_b.js +2 -2
  153. package/SVF-doxygen/html/html/search/files_c.js +20 -20
  154. package/SVF-doxygen/html/html/search/files_d.js +4 -4
  155. package/SVF-doxygen/html/html/search/files_e.js +62 -62
  156. package/SVF-doxygen/html/html/search/files_f.js +8 -8
  157. package/SVF-doxygen/html/html/search/functions_0.js +12 -12
  158. package/SVF-doxygen/html/html/search/functions_1.js +357 -357
  159. package/SVF-doxygen/html/html/search/functions_10.js +140 -140
  160. package/SVF-doxygen/html/html/search/functions_11.js +138 -138
  161. package/SVF-doxygen/html/html/search/functions_12.js +279 -278
  162. package/SVF-doxygen/html/html/search/functions_13.js +58 -58
  163. package/SVF-doxygen/html/html/search/functions_14.js +39 -39
  164. package/SVF-doxygen/html/html/search/functions_15.js +71 -71
  165. package/SVF-doxygen/html/html/search/functions_16.js +32 -32
  166. package/SVF-doxygen/html/html/search/functions_17.js +3 -3
  167. package/SVF-doxygen/html/html/search/functions_18.js +176 -176
  168. package/SVF-doxygen/html/html/search/functions_2.js +86 -86
  169. package/SVF-doxygen/html/html/search/functions_3.js +257 -257
  170. package/SVF-doxygen/html/html/search/functions_4.js +75 -75
  171. package/SVF-doxygen/html/html/search/functions_5.js +53 -53
  172. package/SVF-doxygen/html/html/search/functions_6.js +59 -59
  173. package/SVF-doxygen/html/html/search/functions_7.js +858 -858
  174. package/SVF-doxygen/html/html/search/functions_8.js +147 -147
  175. package/SVF-doxygen/html/html/search/functions_9.js +429 -429
  176. package/SVF-doxygen/html/html/search/functions_a.js +30 -30
  177. package/SVF-doxygen/html/html/search/functions_b.js +2 -2
  178. package/SVF-doxygen/html/html/search/functions_c.js +26 -26
  179. package/SVF-doxygen/html/html/search/functions_d.js +77 -77
  180. package/SVF-doxygen/html/html/search/functions_e.js +35 -35
  181. package/SVF-doxygen/html/html/search/functions_f.js +56 -56
  182. package/SVF-doxygen/html/html/search/namespaces_0.js +1 -1
  183. package/SVF-doxygen/html/html/search/namespaces_1.js +7 -7
  184. package/SVF-doxygen/html/html/search/related_0.js +2 -2
  185. package/SVF-doxygen/html/html/search/related_1.js +2 -2
  186. package/SVF-doxygen/html/html/search/related_2.js +2 -2
  187. package/SVF-doxygen/html/html/search/related_3.js +2 -2
  188. package/SVF-doxygen/html/html/search/related_4.js +2 -2
  189. package/SVF-doxygen/html/html/search/related_5.js +1 -1
  190. package/SVF-doxygen/html/html/search/related_6.js +2 -2
  191. package/SVF-doxygen/html/html/search/related_7.js +4 -4
  192. package/SVF-doxygen/html/html/search/related_8.js +2 -2
  193. package/SVF-doxygen/html/html/search/related_9.js +4 -4
  194. package/SVF-doxygen/html/html/search/related_a.js +19 -19
  195. package/SVF-doxygen/html/html/search/related_b.js +4 -4
  196. package/SVF-doxygen/html/html/search/related_c.js +1 -1
  197. package/SVF-doxygen/html/html/search/related_d.js +11 -11
  198. package/SVF-doxygen/html/html/search/related_e.js +2 -2
  199. package/SVF-doxygen/html/html/search/related_f.js +2 -2
  200. package/SVF-doxygen/html/html/search/typedefs_0.js +18 -18
  201. package/SVF-doxygen/html/html/search/typedefs_1.js +26 -26
  202. package/SVF-doxygen/html/html/search/typedefs_10.js +63 -63
  203. package/SVF-doxygen/html/html/search/typedefs_11.js +13 -13
  204. package/SVF-doxygen/html/html/search/typedefs_12.js +11 -11
  205. package/SVF-doxygen/html/html/search/typedefs_13.js +35 -35
  206. package/SVF-doxygen/html/html/search/typedefs_14.js +8 -8
  207. package/SVF-doxygen/html/html/search/typedefs_2.js +128 -128
  208. package/SVF-doxygen/html/html/search/typedefs_3.js +39 -39
  209. package/SVF-doxygen/html/html/search/typedefs_4.js +17 -17
  210. package/SVF-doxygen/html/html/search/typedefs_5.js +41 -41
  211. package/SVF-doxygen/html/html/search/typedefs_6.js +58 -58
  212. package/SVF-doxygen/html/html/search/typedefs_7.js +46 -46
  213. package/SVF-doxygen/html/html/search/typedefs_8.js +1 -1
  214. package/SVF-doxygen/html/html/search/typedefs_9.js +6 -6
  215. package/SVF-doxygen/html/html/search/typedefs_a.js +29 -29
  216. package/SVF-doxygen/html/html/search/typedefs_b.js +29 -29
  217. package/SVF-doxygen/html/html/search/typedefs_c.js +41 -41
  218. package/SVF-doxygen/html/html/search/typedefs_d.js +15 -15
  219. package/SVF-doxygen/html/html/search/typedefs_e.js +52 -52
  220. package/SVF-doxygen/html/html/search/typedefs_f.js +14 -14
  221. package/SVF-doxygen/html/html/search/variables_0.js +162 -162
  222. package/SVF-doxygen/html/html/search/variables_1.js +75 -75
  223. package/SVF-doxygen/html/html/search/variables_10.js +97 -97
  224. package/SVF-doxygen/html/html/search/variables_11.js +46 -46
  225. package/SVF-doxygen/html/html/search/variables_12.js +92 -92
  226. package/SVF-doxygen/html/html/search/variables_13.js +75 -75
  227. package/SVF-doxygen/html/html/search/variables_14.js +14 -14
  228. package/SVF-doxygen/html/html/search/variables_15.js +48 -48
  229. package/SVF-doxygen/html/html/search/variables_16.js +9 -9
  230. package/SVF-doxygen/html/html/search/variables_17.js +1 -1
  231. package/SVF-doxygen/html/html/search/variables_18.js +2 -2
  232. package/SVF-doxygen/html/html/search/variables_2.js +37 -37
  233. package/SVF-doxygen/html/html/search/variables_3.js +142 -142
  234. package/SVF-doxygen/html/html/search/variables_4.js +55 -55
  235. package/SVF-doxygen/html/html/search/variables_5.js +39 -38
  236. package/SVF-doxygen/html/html/search/variables_6.js +66 -66
  237. package/SVF-doxygen/html/html/search/variables_7.js +33 -33
  238. package/SVF-doxygen/html/html/search/variables_8.js +7 -7
  239. package/SVF-doxygen/html/html/search/variables_9.js +77 -77
  240. package/SVF-doxygen/html/html/search/variables_a.js +4 -4
  241. package/SVF-doxygen/html/html/search/variables_b.js +10 -10
  242. package/SVF-doxygen/html/html/search/variables_c.js +45 -45
  243. package/SVF-doxygen/html/html/search/variables_d.js +56 -56
  244. package/SVF-doxygen/html/html/search/variables_e.js +123 -123
  245. package/SVF-doxygen/html/html/search/variables_f.js +30 -30
  246. package/package.json +1 -1
  247. package/svf/include/Util/ExtAPI.h +8 -2
  248. package/svf/include/Util/Options.h +1 -1
  249. package/svf/lib/Util/ExtAPI.cpp +59 -31
  250. package/svf/lib/Util/Options.cpp +4 -3
  251. package/svf-llvm/include/SVF-LLVM/LLVMModule.h +1 -1
  252. package/svf-llvm/lib/LLVMModule.cpp +4 -4
  253. package/svf-llvm/lib/LLVMUtil.cpp +1 -1
@@ -105,10 +105,12 @@ Public Member Functions</h2></td></tr>
105
105
  </table><table class="memberdecls">
106
106
  <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
107
107
  Static Public Member Functions</h2></td></tr>
108
- <tr class="memitem:a02380d22fd6021ebce1e54723d695c99"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classSVF_1_1ExtAPI.html">ExtAPI</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1ExtAPI.html#a02380d22fd6021ebce1e54723d695c99">getExtAPI</a> (const <a class="el" href="cJSON_8cpp.html#ae1adbce218e7a9d09164012443191d24">std::string</a> &amp;=&quot;&quot;)</td></tr>
109
- <tr class="separator:a02380d22fd6021ebce1e54723d695c99"><td class="memSeparator" colspan="2">&#160;</td></tr>
108
+ <tr class="memitem:a58a764c27354d5f9b70995d30de65f1d"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classSVF_1_1ExtAPI.html">ExtAPI</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1ExtAPI.html#a58a764c27354d5f9b70995d30de65f1d">getExtAPI</a> ()</td></tr>
109
+ <tr class="separator:a58a764c27354d5f9b70995d30de65f1d"><td class="memSeparator" colspan="2">&#160;</td></tr>
110
110
  <tr class="memitem:abe3e0e2500532acfc01cee7e2ce1cd90"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1ExtAPI.html#abe3e0e2500532acfc01cee7e2ce1cd90">destory</a> ()</td></tr>
111
111
  <tr class="separator:abe3e0e2500532acfc01cee7e2ce1cd90"><td class="memSeparator" colspan="2">&#160;</td></tr>
112
+ <tr class="memitem:af458eeda610804c8cb5bbe5afd956a65"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1ExtAPI.html#af458eeda610804c8cb5bbe5afd956a65">setExtBcPath</a> (const <a class="el" href="cJSON_8cpp.html#ae1adbce218e7a9d09164012443191d24">std::string</a> &amp;path)</td></tr>
113
+ <tr class="separator:af458eeda610804c8cb5bbe5afd956a65"><td class="memSeparator" colspan="2">&#160;</td></tr>
112
114
  </table><table class="memberdecls">
113
115
  <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-methods"></a>
114
116
  Private Member Functions</h2></td></tr>
@@ -119,6 +121,8 @@ Private Member Functions</h2></td></tr>
119
121
  Static Private Attributes</h2></td></tr>
120
122
  <tr class="memitem:a552feab663622681db231d5b48f00d75"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classSVF_1_1ExtAPI.html">ExtAPI</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1ExtAPI.html#a552feab663622681db231d5b48f00d75">extOp</a> = nullptr</td></tr>
121
123
  <tr class="separator:a552feab663622681db231d5b48f00d75"><td class="memSeparator" colspan="2">&#160;</td></tr>
124
+ <tr class="memitem:a3ce3e67c96a65484d8077d9e3a9efa7d"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="cJSON_8cpp.html#ae1adbce218e7a9d09164012443191d24">std::string</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1ExtAPI.html#a3ce3e67c96a65484d8077d9e3a9efa7d">extBcPath</a> = &quot;&quot;</td></tr>
125
+ <tr class="separator:a3ce3e67c96a65484d8077d9e3a9efa7d"><td class="memSeparator" colspan="2">&#160;</td></tr>
122
126
  </table>
123
127
  <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
124
128
  <div class="textblock">
@@ -173,14 +177,14 @@ Static Private Attributes</h2></td></tr>
173
177
  </table>
174
178
  </div><div class="memdoc">
175
179
 
176
- <p class="definition">Definition at line <a class="el" href="ExtAPI_8cpp_source.html#l00047">47</a> of file <a class="el" href="ExtAPI_8cpp_source.html">ExtAPI.cpp</a>.</p>
177
- <div class="fragment"><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;{</div>
178
- <div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1ExtAPI.html#a552feab663622681db231d5b48f00d75">extOp</a> != <span class="keyword">nullptr</span>)</div>
179
- <div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; {</div>
180
- <div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keyword">delete</span> <a class="code" href="classSVF_1_1ExtAPI.html#a552feab663622681db231d5b48f00d75">extOp</a>;</div>
181
- <div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <a class="code" href="classSVF_1_1ExtAPI.html#a552feab663622681db231d5b48f00d75">extOp</a> = <span class="keyword">nullptr</span>;</div>
182
- <div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; }</div>
183
- <div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;}</div>
180
+ <p class="definition">Definition at line <a class="el" href="ExtAPI_8cpp_source.html#l00049">49</a> of file <a class="el" href="ExtAPI_8cpp_source.html">ExtAPI.cpp</a>.</p>
181
+ <div class="fragment"><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;{</div>
182
+ <div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1ExtAPI.html#a552feab663622681db231d5b48f00d75">extOp</a> != <span class="keyword">nullptr</span>)</div>
183
+ <div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; {</div>
184
+ <div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="keyword">delete</span> <a class="code" href="classSVF_1_1ExtAPI.html#a552feab663622681db231d5b48f00d75">extOp</a>;</div>
185
+ <div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <a class="code" href="classSVF_1_1ExtAPI.html#a552feab663622681db231d5b48f00d75">extOp</a> = <span class="keyword">nullptr</span>;</div>
186
+ <div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; }</div>
187
+ <div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;}</div>
184
188
  </div><!-- fragment -->
185
189
  </div>
186
190
  </div>
@@ -200,26 +204,25 @@ Static Private Attributes</h2></td></tr>
200
204
  </table>
201
205
  </div><div class="memdoc">
202
206
 
203
- <p class="definition">Definition at line <a class="el" href="ExtAPI_8cpp_source.html#l00169">169</a> of file <a class="el" href="ExtAPI_8cpp_source.html">ExtAPI.cpp</a>.</p>
204
- <div class="fragment"><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160;{</div>
205
- <div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> s = <span class="stringliteral">&quot;ALLOC_ARG&quot;</span>;</div>
206
- <div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> allocArg = <a class="code" href="classSVF_1_1ExtAPI.html#a641c82ed1f1a86f0f8a6015ef1fdbfef">getExtFuncAnnotation</a>(<a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a>, s);</div>
207
- <div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; assert(!allocArg.empty() &amp;&amp; <span class="stringliteral">&quot;Not an alloc call via argument or incorrect extern function annotation!&quot;</span>);</div>
208
- <div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; </div>
209
- <div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="cJSON_8h.html#a6288dae99eabb0a393b1d4974e01cde7">number</a>;</div>
210
- <div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">char</span> c : allocArg)</div>
211
- <div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; {</div>
212
- <div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="extapi_8c.html#a3fa45b35c8abf67a950b6d3d4063dede">isdigit</a>(c))</div>
213
- <div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <a class="code" href="cJSON_8h.html#a6288dae99eabb0a393b1d4974e01cde7">number</a>.push_back(c);</div>
214
- <div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; }</div>
215
- <div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; assert(!<a class="code" href="cJSON_8h.html#a6288dae99eabb0a393b1d4974e01cde7">number</a>.empty() &amp;&amp; <span class="stringliteral">&quot;Incorrect naming convention for svf external functions(ALLOC_ARG + number)?&quot;</span>);</div>
216
- <div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <span class="keywordflow">return</span> std::stoi(<a class="code" href="cJSON_8h.html#a6288dae99eabb0a393b1d4974e01cde7">number</a>);</div>
217
- <div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;}</div>
207
+ <p class="definition">Definition at line <a class="el" href="ExtAPI_8cpp_source.html#l00198">198</a> of file <a class="el" href="ExtAPI_8cpp_source.html">ExtAPI.cpp</a>.</p>
208
+ <div class="fragment"><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160;{</div>
209
+ <div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> allocArg = <a class="code" href="classSVF_1_1ExtAPI.html#a641c82ed1f1a86f0f8a6015ef1fdbfef">getExtFuncAnnotation</a>(<a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a>, <span class="stringliteral">&quot;ALLOC_ARG&quot;</span>);</div>
210
+ <div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; assert(!allocArg.empty() &amp;&amp; <span class="stringliteral">&quot;Not an alloc call via argument or incorrect extern function annotation!&quot;</span>);</div>
211
+ <div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; </div>
212
+ <div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="cJSON_8h.html#a6288dae99eabb0a393b1d4974e01cde7">number</a>;</div>
213
+ <div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">char</span> c : allocArg)</div>
214
+ <div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; {</div>
215
+ <div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="extapi_8c.html#a3fa45b35c8abf67a950b6d3d4063dede">isdigit</a>(c))</div>
216
+ <div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <a class="code" href="cJSON_8h.html#a6288dae99eabb0a393b1d4974e01cde7">number</a>.push_back(c);</div>
217
+ <div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; }</div>
218
+ <div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; assert(!<a class="code" href="cJSON_8h.html#a6288dae99eabb0a393b1d4974e01cde7">number</a>.empty() &amp;&amp; <span class="stringliteral">&quot;Incorrect naming convention for svf external functions(ALLOC_ARG + number)?&quot;</span>);</div>
219
+ <div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; <span class="keywordflow">return</span> std::stoi(<a class="code" href="cJSON_8h.html#a6288dae99eabb0a393b1d4974e01cde7">number</a>);</div>
220
+ <div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;}</div>
218
221
  </div><!-- fragment -->
219
222
  </div>
220
223
  </div>
221
- <a id="a02380d22fd6021ebce1e54723d695c99"></a>
222
- <h2 class="memtitle"><span class="permalink"><a href="#a02380d22fd6021ebce1e54723d695c99">&#9670;&nbsp;</a></span>getExtAPI()</h2>
224
+ <a id="a58a764c27354d5f9b70995d30de65f1d"></a>
225
+ <h2 class="memtitle"><span class="permalink"><a href="#a58a764c27354d5f9b70995d30de65f1d">&#9670;&nbsp;</a></span>getExtAPI()</h2>
223
226
 
224
227
  <div class="memitem">
225
228
  <div class="memproto">
@@ -230,8 +233,7 @@ Static Private Attributes</h2></td></tr>
230
233
  <tr>
231
234
  <td class="memname"><a class="el" href="classSVF_1_1ExtAPI.html">ExtAPI</a> * ExtAPI::getExtAPI </td>
232
235
  <td>(</td>
233
- <td class="paramtype">const <a class="el" href="cJSON_8cpp.html#ae1adbce218e7a9d09164012443191d24">std::string</a> &amp;&#160;</td>
234
- <td class="paramname"><em>path</em> = <code>&quot;&quot;</code></td><td>)</td>
236
+ <td class="paramname"></td><td>)</td>
235
237
  <td></td>
236
238
  </tr>
237
239
  </table>
@@ -242,14 +244,14 @@ Static Private Attributes</h2></td></tr>
242
244
  </table>
243
245
  </div><div class="memdoc">
244
246
 
245
- <p class="definition">Definition at line <a class="el" href="ExtAPI_8cpp_source.html#l00038">38</a> of file <a class="el" href="ExtAPI_8cpp_source.html">ExtAPI.cpp</a>.</p>
246
- <div class="fragment"><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;{</div>
247
- <div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1ExtAPI.html#a552feab663622681db231d5b48f00d75">extOp</a> == <span class="keyword">nullptr</span>)</div>
248
- <div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; {</div>
249
- <div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <a class="code" href="classSVF_1_1ExtAPI.html#a552feab663622681db231d5b48f00d75">extOp</a> = <span class="keyword">new</span> <a class="code" href="classSVF_1_1ExtAPI.html#ab793be4b6f8f0a025599e76f5df2a4eb">ExtAPI</a>;</div>
250
- <div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; }</div>
251
- <div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ExtAPI.html#a552feab663622681db231d5b48f00d75">extOp</a>;</div>
252
- <div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;}</div>
247
+ <p class="definition">Definition at line <a class="el" href="ExtAPI_8cpp_source.html#l00040">40</a> of file <a class="el" href="ExtAPI_8cpp_source.html">ExtAPI.cpp</a>.</p>
248
+ <div class="fragment"><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;{</div>
249
+ <div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1ExtAPI.html#a552feab663622681db231d5b48f00d75">extOp</a> == <span class="keyword">nullptr</span>)</div>
250
+ <div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; {</div>
251
+ <div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <a class="code" href="classSVF_1_1ExtAPI.html#a552feab663622681db231d5b48f00d75">extOp</a> = <span class="keyword">new</span> <a class="code" href="classSVF_1_1ExtAPI.html#ab793be4b6f8f0a025599e76f5df2a4eb">ExtAPI</a>;</div>
252
+ <div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; }</div>
253
+ <div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ExtAPI.html#a552feab663622681db231d5b48f00d75">extOp</a>;</div>
254
+ <div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;}</div>
253
255
  </div><!-- fragment -->
254
256
  </div>
255
257
  </div>
@@ -268,24 +270,46 @@ Static Private Attributes</h2></td></tr>
268
270
  </table>
269
271
  </div><div class="memdoc">
270
272
 
271
- <p class="definition">Definition at line <a class="el" href="ExtAPI_8cpp_source.html#l00108">108</a> of file <a class="el" href="ExtAPI_8cpp_source.html">ExtAPI.cpp</a>.</p>
272
- <div class="fragment"><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;{</div>
273
- <div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <span class="keyword">struct </span>stat statbuf;</div>
274
- <div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> bcFilePath = <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a>(EXTAPI_PATH) + <span class="stringliteral">&quot;/extapi.bc&quot;</span>;</div>
275
- <div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="keywordflow">if</span> (!stat(bcFilePath.c_str(), &amp;statbuf))</div>
276
- <div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <span class="keywordflow">return</span> bcFilePath;</div>
277
- <div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; </div>
278
- <div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; bcFilePath = <a class="code" href="ExtAPI_8cpp.html#a7d2ff3727892c4ee0eff596174eb5b84">getFilePath</a>(<span class="stringliteral">&quot;echo $SVF_DIR&quot;</span>);</div>
279
- <div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="keywordflow">if</span> (!stat(bcFilePath.c_str(), &amp;statbuf))</div>
280
- <div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="keywordflow">return</span> bcFilePath;</div>
281
- <div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; </div>
282
- <div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; bcFilePath = <a class="code" href="ExtAPI_8cpp.html#a7d2ff3727892c4ee0eff596174eb5b84">getFilePath</a>(<span class="stringliteral">&quot;npm root&quot;</span>);</div>
283
- <div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <span class="keywordflow">if</span> (!stat(bcFilePath.c_str(), &amp;statbuf))</div>
284
- <div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="keywordflow">return</span> bcFilePath;</div>
285
- <div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; </div>
286
- <div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">SVFUtil::errs</a>() &lt;&lt; <span class="stringliteral">&quot;No extpai.bc found at &quot;</span> &lt;&lt; bcFilePath &lt;&lt; <span class="stringliteral">&quot; for getExtAPI(); set $SVF_DIR first!\n&quot;</span>;</div>
287
- <div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; abort();</div>
288
- <div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;}</div>
273
+ <p class="definition">Definition at line <a class="el" href="ExtAPI_8cpp_source.html#l00117">117</a> of file <a class="el" href="ExtAPI_8cpp_source.html">ExtAPI.cpp</a>.</p>
274
+ <div class="fragment"><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;{</div>
275
+ <div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <span class="comment">// Five default ways to get extapi.bc path</span></div>
276
+ <div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <span class="comment">// 1. Set extapi.bc path through setExtBcPath() method</span></div>
277
+ <div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="comment">// 2. Set extapi.bc path through the &quot;-extapi = PATH_TO_EXTAPIFILE&quot; option</span></div>
278
+ <div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="comment">// 3. Default path: &quot;SVF_IR_PATH/CMAKE_BUILD_TYPE-build/svf-llvm/extapi.bc&quot;</span></div>
279
+ <div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="comment">// 4. From $SVF_DIR</span></div>
280
+ <div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <span class="comment">// 5. From &quot;npm root&quot;(If SVF is installed via npm)</span></div>
281
+ <div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; </div>
282
+ <div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <span class="keyword">struct </span>stat statbuf;</div>
283
+ <div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="comment">// 1. Set extapi.bc path through setExtBcPath() method</span></div>
284
+ <div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <span class="keywordflow">if</span> (!<a class="code" href="classSVF_1_1ExtAPI.html#a3ce3e67c96a65484d8077d9e3a9efa7d">extBcPath</a>.empty() &amp;&amp; !stat(<a class="code" href="classSVF_1_1ExtAPI.html#a3ce3e67c96a65484d8077d9e3a9efa7d">extBcPath</a>.c_str(), &amp;statbuf))</div>
285
+ <div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ExtAPI.html#a3ce3e67c96a65484d8077d9e3a9efa7d">extBcPath</a>;</div>
286
+ <div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; </div>
287
+ <div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <span class="comment">// 2. Set extapi.bc path through the &quot;-extapi = PATH_TO_EXTAPIFILE&quot; option</span></div>
288
+ <div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <a class="code" href="classSVF_1_1ExtAPI.html#a3ce3e67c96a65484d8077d9e3a9efa7d">extBcPath</a> = <a class="code" href="classSVF_1_1Options.html#a2dffc9d885fa53340a1cdbc028d7f24a">Options::ExtAPIPath</a>();</div>
289
+ <div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="keywordflow">if</span> (!<a class="code" href="classSVF_1_1ExtAPI.html#a3ce3e67c96a65484d8077d9e3a9efa7d">extBcPath</a>.empty() &amp;&amp; !stat(<a class="code" href="classSVF_1_1ExtAPI.html#a3ce3e67c96a65484d8077d9e3a9efa7d">extBcPath</a>.c_str(), &amp;statbuf))</div>
290
+ <div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ExtAPI.html#a3ce3e67c96a65484d8077d9e3a9efa7d">extBcPath</a>;</div>
291
+ <div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; </div>
292
+ <div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="comment">// 3. Default path: &quot;SVF_IR_PATH/CMAKE_BUILD_TYPE-build/svf-llvm/extapi.bc&quot;</span></div>
293
+ <div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <a class="code" href="classSVF_1_1ExtAPI.html#a3ce3e67c96a65484d8077d9e3a9efa7d">extBcPath</a> = <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a>(EXTAPI_DIR) + <span class="stringliteral">&quot;/extapi.bc&quot;</span>;</div>
294
+ <div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <span class="keywordflow">if</span> (!stat(<a class="code" href="classSVF_1_1ExtAPI.html#a3ce3e67c96a65484d8077d9e3a9efa7d">extBcPath</a>.c_str(), &amp;statbuf))</div>
295
+ <div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ExtAPI.html#a3ce3e67c96a65484d8077d9e3a9efa7d">extBcPath</a>;</div>
296
+ <div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; </div>
297
+ <div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <span class="comment">// 4. From $SVF_DIR</span></div>
298
+ <div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <a class="code" href="classSVF_1_1ExtAPI.html#a3ce3e67c96a65484d8077d9e3a9efa7d">extBcPath</a> = <a class="code" href="ExtAPI_8cpp.html#a7d2ff3727892c4ee0eff596174eb5b84">getFilePath</a>(<span class="stringliteral">&quot;SVF_DIR&quot;</span>);</div>
299
+ <div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <span class="keywordflow">if</span> (!stat(<a class="code" href="classSVF_1_1ExtAPI.html#a3ce3e67c96a65484d8077d9e3a9efa7d">extBcPath</a>.c_str(), &amp;statbuf))</div>
300
+ <div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ExtAPI.html#a3ce3e67c96a65484d8077d9e3a9efa7d">extBcPath</a>;</div>
301
+ <div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; </div>
302
+ <div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <span class="comment">// 5. From &quot;npm root&quot;(If SVF is installed via npm)</span></div>
303
+ <div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; <a class="code" href="classSVF_1_1ExtAPI.html#a3ce3e67c96a65484d8077d9e3a9efa7d">extBcPath</a> = <a class="code" href="ExtAPI_8cpp.html#a7d2ff3727892c4ee0eff596174eb5b84">getFilePath</a>(<span class="stringliteral">&quot;npm root&quot;</span>);</div>
304
+ <div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <span class="keywordflow">if</span> (!stat(<a class="code" href="classSVF_1_1ExtAPI.html#a3ce3e67c96a65484d8077d9e3a9efa7d">extBcPath</a>.c_str(), &amp;statbuf))</div>
305
+ <div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ExtAPI.html#a3ce3e67c96a65484d8077d9e3a9efa7d">extBcPath</a>;</div>
306
+ <div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; </div>
307
+ <div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">SVFUtil::errs</a>() &lt;&lt; <span class="stringliteral">&quot;No extapi.bc found at &quot;</span> &lt;&lt; <a class="code" href="classSVF_1_1ExtAPI.html#a3ce3e67c96a65484d8077d9e3a9efa7d">extBcPath</a> &lt;&lt; <span class="stringliteral">&quot; in getExtBcPath() !!!&quot;</span> &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span></div>
308
+ <div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; &lt;&lt; <span class="stringliteral">&quot;You can specify extapi.bc path in two ways:&quot;</span> &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span></div>
309
+ <div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; &lt;&lt; <span class="stringliteral">&quot;1. Set it via the command line using -extapi=/path_to_extapi;&quot;</span> &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span></div>
310
+ <div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; &lt;&lt; <span class="stringliteral">&quot;2. Use the API setExtBcPath(). Please note that setExtBcPath() should be used before buildSVFModule().\n&quot;</span>;</div>
311
+ <div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; abort();</div>
312
+ <div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;}</div>
289
313
  </div><!-- fragment -->
290
314
  </div>
291
315
  </div>
@@ -315,15 +339,14 @@ Static Private Attributes</h2></td></tr>
315
339
  </table>
316
340
  </div><div class="memdoc">
317
341
 
318
- <p class="definition">Definition at line <a class="el" href="ExtAPI_8cpp_source.html#l00127">127</a> of file <a class="el" href="ExtAPI_8cpp_source.html">ExtAPI.cpp</a>.</p>
319
- <div class="fragment"><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;{</div>
320
- <div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; assert(fun &amp;&amp; <span class="stringliteral">&quot;Null SVFFunction* pointer&quot;</span>);</div>
321
- <div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <span class="keyword">const</span> std::vector&lt;std::string&gt;&amp; annotations = fun-&gt;<a class="code" href="classSVF_1_1SVFFunction.html#a067bd6dbaf74a028d546fa56b095791b">getAnnotations</a>();</div>
322
- <div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a>&amp; annotation : annotations)</div>
323
- <div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <span class="keywordflow">if</span> (annotation.find(funcAnnotation) != std::string::npos)</div>
324
- <div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="keywordflow">return</span> annotation;</div>
325
- <div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;&quot;</span>;</div>
326
- <div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;}</div>
342
+ <p class="definition">Definition at line <a class="el" href="ExtAPI_8cpp_source.html#l00158">158</a> of file <a class="el" href="ExtAPI_8cpp_source.html">ExtAPI.cpp</a>.</p>
343
+ <div class="fragment"><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;{</div>
344
+ <div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; assert(fun &amp;&amp; <span class="stringliteral">&quot;Null SVFFunction* pointer&quot;</span>);</div>
345
+ <div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a>&amp; annotation : fun-&gt;<a class="code" href="classSVF_1_1SVFFunction.html#a067bd6dbaf74a028d546fa56b095791b">getAnnotations</a>())</div>
346
+ <div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <span class="keywordflow">if</span> (annotation.find(funcAnnotation) != std::string::npos)</div>
347
+ <div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="keywordflow">return</span> annotation;</div>
348
+ <div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;&quot;</span>;</div>
349
+ <div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;}</div>
327
350
  </div><!-- fragment -->
328
351
  </div>
329
352
  </div>
@@ -371,15 +394,14 @@ Static Private Attributes</h2></td></tr>
371
394
  </table>
372
395
  </div><div class="memdoc">
373
396
 
374
- <p class="definition">Definition at line <a class="el" href="ExtAPI_8cpp_source.html#l00137">137</a> of file <a class="el" href="ExtAPI_8cpp_source.html">ExtAPI.cpp</a>.</p>
375
- <div class="fragment"><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;{</div>
376
- <div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; assert(fun &amp;&amp; <span class="stringliteral">&quot;Null SVFFunction* pointer&quot;</span>);</div>
377
- <div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <span class="keyword">const</span> std::vector&lt;std::string&gt;&amp; annotations = fun-&gt;<a class="code" href="classSVF_1_1SVFFunction.html#a067bd6dbaf74a028d546fa56b095791b">getAnnotations</a>();</div>
378
- <div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a>&amp; annotation : annotations)</div>
379
- <div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <span class="keywordflow">if</span> (annotation.find(funcAnnotation) != std::string::npos)</div>
380
- <div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
381
- <div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
382
- <div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;}</div>
397
+ <p class="definition">Definition at line <a class="el" href="ExtAPI_8cpp_source.html#l00167">167</a> of file <a class="el" href="ExtAPI_8cpp_source.html">ExtAPI.cpp</a>.</p>
398
+ <div class="fragment"><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;{</div>
399
+ <div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; assert(fun &amp;&amp; <span class="stringliteral">&quot;Null SVFFunction* pointer&quot;</span>);</div>
400
+ <div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a>&amp; annotation : fun-&gt;<a class="code" href="classSVF_1_1SVFFunction.html#a067bd6dbaf74a028d546fa56b095791b">getAnnotations</a>())</div>
401
+ <div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <span class="keywordflow">if</span> (annotation.find(funcAnnotation) != std::string::npos)</div>
402
+ <div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
403
+ <div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
404
+ <div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;}</div>
383
405
  </div><!-- fragment -->
384
406
  </div>
385
407
  </div>
@@ -399,10 +421,10 @@ Static Private Attributes</h2></td></tr>
399
421
  </table>
400
422
  </div><div class="memdoc">
401
423
 
402
- <p class="definition">Definition at line <a class="el" href="ExtAPI_8cpp_source.html#l00157">157</a> of file <a class="el" href="ExtAPI_8cpp_source.html">ExtAPI.cpp</a>.</p>
403
- <div class="fragment"><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;{</div>
404
- <div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <span class="keywordflow">return</span> <a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a> &amp;&amp; <a class="code" href="classSVF_1_1ExtAPI.html#a1d7778db3b31f732f06129b49ec6dacd">hasExtFuncAnnotation</a>(<a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a>, <span class="stringliteral">&quot;ALLOC_RET&quot;</span>);</div>
405
- <div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;}</div>
424
+ <p class="definition">Definition at line <a class="el" href="ExtAPI_8cpp_source.html#l00186">186</a> of file <a class="el" href="ExtAPI_8cpp_source.html">ExtAPI.cpp</a>.</p>
425
+ <div class="fragment"><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;{</div>
426
+ <div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <span class="keywordflow">return</span> <a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a> &amp;&amp; <a class="code" href="classSVF_1_1ExtAPI.html#a1d7778db3b31f732f06129b49ec6dacd">hasExtFuncAnnotation</a>(<a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a>, <span class="stringliteral">&quot;ALLOC_RET&quot;</span>);</div>
427
+ <div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160;}</div>
406
428
  </div><!-- fragment -->
407
429
  </div>
408
430
  </div>
@@ -422,10 +444,10 @@ Static Private Attributes</h2></td></tr>
422
444
  </table>
423
445
  </div><div class="memdoc">
424
446
 
425
- <p class="definition">Definition at line <a class="el" href="ExtAPI_8cpp_source.html#l00163">163</a> of file <a class="el" href="ExtAPI_8cpp_source.html">ExtAPI.cpp</a>.</p>
426
- <div class="fragment"><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;{</div>
427
- <div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; <span class="keywordflow">return</span> <a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a> &amp;&amp; <a class="code" href="classSVF_1_1ExtAPI.html#a1d7778db3b31f732f06129b49ec6dacd">hasExtFuncAnnotation</a>(<a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a>, <span class="stringliteral">&quot;ALLOC_ARG&quot;</span>);</div>
428
- <div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;}</div>
447
+ <p class="definition">Definition at line <a class="el" href="ExtAPI_8cpp_source.html#l00192">192</a> of file <a class="el" href="ExtAPI_8cpp_source.html">ExtAPI.cpp</a>.</p>
448
+ <div class="fragment"><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160;{</div>
449
+ <div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; <span class="keywordflow">return</span> <a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a> &amp;&amp; <a class="code" href="classSVF_1_1ExtAPI.html#a1d7778db3b31f732f06129b49ec6dacd">hasExtFuncAnnotation</a>(<a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a>, <span class="stringliteral">&quot;ALLOC_ARG&quot;</span>);</div>
450
+ <div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;}</div>
429
451
  </div><!-- fragment -->
430
452
  </div>
431
453
  </div>
@@ -445,16 +467,16 @@ Static Private Attributes</h2></td></tr>
445
467
  </table>
446
468
  </div><div class="memdoc">
447
469
 
448
- <p class="definition">Definition at line <a class="el" href="ExtAPI_8cpp_source.html#l00194">194</a> of file <a class="el" href="ExtAPI_8cpp_source.html">ExtAPI.cpp</a>.</p>
449
- <div class="fragment"><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;{</div>
450
- <div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; assert(<a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a> &amp;&amp; <span class="stringliteral">&quot;Null SVFFunction* pointer&quot;</span>);</div>
451
- <div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a>-&gt;isDeclaration() || <a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a>-&gt;isIntrinsic())</div>
452
- <div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
453
- <div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1ExtAPI.html#a1d7778db3b31f732f06129b49ec6dacd">hasExtFuncAnnotation</a>(<a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a>, <span class="stringliteral">&quot;OVERWRITE&quot;</span>) &amp;&amp; <a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a>-&gt;getAnnotations().size() == 1)</div>
454
- <div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
455
- <div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <span class="keywordflow">else</span></div>
456
- <div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <span class="keywordflow">return</span> !<a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a>-&gt;getAnnotations().empty();</div>
457
- <div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;}</div>
470
+ <p class="definition">Definition at line <a class="el" href="ExtAPI_8cpp_source.html#l00222">222</a> of file <a class="el" href="ExtAPI_8cpp_source.html">ExtAPI.cpp</a>.</p>
471
+ <div class="fragment"><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160;{</div>
472
+ <div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; assert(<a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a> &amp;&amp; <span class="stringliteral">&quot;Null SVFFunction* pointer&quot;</span>);</div>
473
+ <div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a>-&gt;isDeclaration() || <a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a>-&gt;isIntrinsic())</div>
474
+ <div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
475
+ <div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1ExtAPI.html#a1d7778db3b31f732f06129b49ec6dacd">hasExtFuncAnnotation</a>(<a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a>, <span class="stringliteral">&quot;OVERWRITE&quot;</span>) &amp;&amp; <a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a>-&gt;getAnnotations().size() == 1)</div>
476
+ <div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
477
+ <div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; <span class="keywordflow">else</span></div>
478
+ <div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; <span class="keywordflow">return</span> !<a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a>-&gt;getAnnotations().empty();</div>
479
+ <div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160;}</div>
458
480
  </div><!-- fragment -->
459
481
  </div>
460
482
  </div>
@@ -474,10 +496,10 @@ Static Private Attributes</h2></td></tr>
474
496
  </table>
475
497
  </div><div class="memdoc">
476
498
 
477
- <p class="definition">Definition at line <a class="el" href="ExtAPI_8cpp_source.html#l00147">147</a> of file <a class="el" href="ExtAPI_8cpp_source.html">ExtAPI.cpp</a>.</p>
478
- <div class="fragment"><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;{</div>
479
- <div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <span class="keywordflow">return</span> <a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a> &amp;&amp; <a class="code" href="classSVF_1_1ExtAPI.html#a1d7778db3b31f732f06129b49ec6dacd">hasExtFuncAnnotation</a>(<a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a>, <span class="stringliteral">&quot;MEMCPY&quot;</span>);</div>
480
- <div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;}</div>
499
+ <p class="definition">Definition at line <a class="el" href="ExtAPI_8cpp_source.html#l00176">176</a> of file <a class="el" href="ExtAPI_8cpp_source.html">ExtAPI.cpp</a>.</p>
500
+ <div class="fragment"><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160;{</div>
501
+ <div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; <span class="keywordflow">return</span> <a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a> &amp;&amp; <a class="code" href="classSVF_1_1ExtAPI.html#a1d7778db3b31f732f06129b49ec6dacd">hasExtFuncAnnotation</a>(<a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a>, <span class="stringliteral">&quot;MEMCPY&quot;</span>);</div>
502
+ <div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;}</div>
481
503
  </div><!-- fragment -->
482
504
  </div>
483
505
  </div>
@@ -497,10 +519,10 @@ Static Private Attributes</h2></td></tr>
497
519
  </table>
498
520
  </div><div class="memdoc">
499
521
 
500
- <p class="definition">Definition at line <a class="el" href="ExtAPI_8cpp_source.html#l00152">152</a> of file <a class="el" href="ExtAPI_8cpp_source.html">ExtAPI.cpp</a>.</p>
501
- <div class="fragment"><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;{</div>
502
- <div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <span class="keywordflow">return</span> <a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a> &amp;&amp; <a class="code" href="classSVF_1_1ExtAPI.html#a1d7778db3b31f732f06129b49ec6dacd">hasExtFuncAnnotation</a>(<a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a>, <span class="stringliteral">&quot;MEMSET&quot;</span>);</div>
503
- <div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;}</div>
522
+ <p class="definition">Definition at line <a class="el" href="ExtAPI_8cpp_source.html#l00181">181</a> of file <a class="el" href="ExtAPI_8cpp_source.html">ExtAPI.cpp</a>.</p>
523
+ <div class="fragment"><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;{</div>
524
+ <div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <span class="keywordflow">return</span> <a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a> &amp;&amp; <a class="code" href="classSVF_1_1ExtAPI.html#a1d7778db3b31f732f06129b49ec6dacd">hasExtFuncAnnotation</a>(<a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a>, <span class="stringliteral">&quot;MEMSET&quot;</span>);</div>
525
+ <div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;}</div>
504
526
  </div><!-- fragment -->
505
527
  </div>
506
528
  </div>
@@ -520,14 +542,69 @@ Static Private Attributes</h2></td></tr>
520
542
  </table>
521
543
  </div><div class="memdoc">
522
544
 
523
- <p class="definition">Definition at line <a class="el" href="ExtAPI_8cpp_source.html#l00186">186</a> of file <a class="el" href="ExtAPI_8cpp_source.html">ExtAPI.cpp</a>.</p>
524
- <div class="fragment"><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;{</div>
525
- <div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <span class="keywordflow">return</span> <a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a> &amp;&amp; <a class="code" href="classSVF_1_1ExtAPI.html#a1d7778db3b31f732f06129b49ec6dacd">hasExtFuncAnnotation</a>(<a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a>, <span class="stringliteral">&quot;REALLOC_RET&quot;</span>);</div>
526
- <div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160;}</div>
545
+ <p class="definition">Definition at line <a class="el" href="ExtAPI_8cpp_source.html#l00214">214</a> of file <a class="el" href="ExtAPI_8cpp_source.html">ExtAPI.cpp</a>.</p>
546
+ <div class="fragment"><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160;{</div>
547
+ <div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; <span class="keywordflow">return</span> <a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a> &amp;&amp; <a class="code" href="classSVF_1_1ExtAPI.html#a1d7778db3b31f732f06129b49ec6dacd">hasExtFuncAnnotation</a>(<a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a>, <span class="stringliteral">&quot;REALLOC_RET&quot;</span>);</div>
548
+ <div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160;}</div>
549
+ </div><!-- fragment -->
550
+ </div>
551
+ </div>
552
+ <a id="af458eeda610804c8cb5bbe5afd956a65"></a>
553
+ <h2 class="memtitle"><span class="permalink"><a href="#af458eeda610804c8cb5bbe5afd956a65">&#9670;&nbsp;</a></span>setExtBcPath()</h2>
554
+
555
+ <div class="memitem">
556
+ <div class="memproto">
557
+ <table class="mlabels">
558
+ <tr>
559
+ <td class="mlabels-left">
560
+ <table class="memname">
561
+ <tr>
562
+ <td class="memname">void ExtAPI::setExtBcPath </td>
563
+ <td>(</td>
564
+ <td class="paramtype">const <a class="el" href="cJSON_8cpp.html#ae1adbce218e7a9d09164012443191d24">std::string</a> &amp;&#160;</td>
565
+ <td class="paramname"><em>path</em></td><td>)</td>
566
+ <td></td>
567
+ </tr>
568
+ </table>
569
+ </td>
570
+ <td class="mlabels-right">
571
+ <span class="mlabels"><span class="mlabel">static</span></span> </td>
572
+ </tr>
573
+ </table>
574
+ </div><div class="memdoc">
575
+
576
+ <p class="definition">Definition at line <a class="el" href="ExtAPI_8cpp_source.html#l00059">59</a> of file <a class="el" href="ExtAPI_8cpp_source.html">ExtAPI.cpp</a>.</p>
577
+ <div class="fragment"><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;{</div>
578
+ <div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <a class="code" href="classSVF_1_1ExtAPI.html#a3ce3e67c96a65484d8077d9e3a9efa7d">extBcPath</a> = path;</div>
579
+ <div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;}</div>
527
580
  </div><!-- fragment -->
528
581
  </div>
529
582
  </div>
530
583
  <h2 class="groupheader">Member Data Documentation</h2>
584
+ <a id="a3ce3e67c96a65484d8077d9e3a9efa7d"></a>
585
+ <h2 class="memtitle"><span class="permalink"><a href="#a3ce3e67c96a65484d8077d9e3a9efa7d">&#9670;&nbsp;</a></span>extBcPath</h2>
586
+
587
+ <div class="memitem">
588
+ <div class="memproto">
589
+ <table class="mlabels">
590
+ <tr>
591
+ <td class="mlabels-left">
592
+ <table class="memname">
593
+ <tr>
594
+ <td class="memname"><a class="el" href="cJSON_8cpp.html#ae1adbce218e7a9d09164012443191d24">std::string</a> ExtAPI::extBcPath = &quot;&quot;</td>
595
+ </tr>
596
+ </table>
597
+ </td>
598
+ <td class="mlabels-right">
599
+ <span class="mlabels"><span class="mlabel">static</span><span class="mlabel">private</span></span> </td>
600
+ </tr>
601
+ </table>
602
+ </div><div class="memdoc">
603
+
604
+ <p class="definition">Definition at line <a class="el" href="ExtAPI_8h_source.html#l00053">53</a> of file <a class="el" href="ExtAPI_8h_source.html">ExtAPI.h</a>.</p>
605
+
606
+ </div>
607
+ </div>
531
608
  <a id="a552feab663622681db231d5b48f00d75"></a>
532
609
  <h2 class="memtitle"><span class="permalink"><a href="#a552feab663622681db231d5b48f00d75">&#9670;&nbsp;</a></span>extOp</h2>
533
610
 
@@ -558,15 +635,17 @@ Static Private Attributes</h2></td></tr>
558
635
  </ul>
559
636
  </div><!-- contents -->
560
637
  <div class="ttc" id="aclassSVF_1_1ExtAPI_html_a552feab663622681db231d5b48f00d75"><div class="ttname"><a href="classSVF_1_1ExtAPI.html#a552feab663622681db231d5b48f00d75">SVF::ExtAPI::extOp</a></div><div class="ttdeci">static ExtAPI * extOp</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8h_source.html#l00050">ExtAPI.h:50</a></div></div>
561
- <div class="ttc" id="aExtAPI_8cpp_html_a7d2ff3727892c4ee0eff596174eb5b84"><div class="ttname"><a href="ExtAPI_8cpp.html#a7d2ff3727892c4ee0eff596174eb5b84">getFilePath</a></div><div class="ttdeci">static std::string getFilePath(const std::string &amp;path)</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8cpp_source.html#l00081">ExtAPI.cpp:81</a></div></div>
638
+ <div class="ttc" id="aExtAPI_8cpp_html_a7d2ff3727892c4ee0eff596174eb5b84"><div class="ttname"><a href="ExtAPI_8cpp.html#a7d2ff3727892c4ee0eff596174eb5b84">getFilePath</a></div><div class="ttdeci">static std::string getFilePath(const std::string &amp;path)</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8cpp_source.html#l00089">ExtAPI.cpp:89</a></div></div>
562
639
  <div class="ttc" id="aclassSVF_1_1ExtAPI_html_ab793be4b6f8f0a025599e76f5df2a4eb"><div class="ttname"><a href="classSVF_1_1ExtAPI.html#ab793be4b6f8f0a025599e76f5df2a4eb">SVF::ExtAPI::ExtAPI</a></div><div class="ttdeci">ExtAPI()=default</div></div>
563
640
  <div class="ttc" id="acJSON_8h_html_a6288dae99eabb0a393b1d4974e01cde7"><div class="ttname"><a href="cJSON_8h.html#a6288dae99eabb0a393b1d4974e01cde7">number</a></div><div class="ttdeci">const char *const const double number</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8h_source.html#l00268">cJSON.h:268</a></div></div>
564
641
  <div class="ttc" id="aextapi_8c_html_a3fa45b35c8abf67a950b6d3d4063dede"><div class="ttname"><a href="extapi_8c.html#a3fa45b35c8abf67a950b6d3d4063dede">isdigit</a></div><div class="ttdeci">int isdigit(int c)</div><div class="ttdef"><b>Definition:</b> <a href="extapi_8c_source.html#l00754">extapi.c:754</a></div></div>
565
642
  <div class="ttc" id="aclassSVF_1_1SVFFunction_html_a067bd6dbaf74a028d546fa56b095791b"><div class="ttname"><a href="classSVF_1_1SVFFunction.html#a067bd6dbaf74a028d546fa56b095791b">SVF::SVFFunction::getAnnotations</a></div><div class="ttdeci">const std::vector&lt; std::string &gt; &amp; getAnnotations() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00461">SVFValue.h:461</a></div></div>
566
643
  <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>
567
- <div class="ttc" id="aclassSVF_1_1ExtAPI_html_a1d7778db3b31f732f06129b49ec6dacd"><div class="ttname"><a href="classSVF_1_1ExtAPI.html#a1d7778db3b31f732f06129b49ec6dacd">SVF::ExtAPI::hasExtFuncAnnotation</a></div><div class="ttdeci">bool hasExtFuncAnnotation(const SVFFunction *fun, const std::string &amp;funcAnnotation)</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8cpp_source.html#l00137">ExtAPI.cpp:137</a></div></div>
568
- <div class="ttc" id="aclassSVF_1_1ExtAPI_html_a641c82ed1f1a86f0f8a6015ef1fdbfef"><div class="ttname"><a href="classSVF_1_1ExtAPI.html#a641c82ed1f1a86f0f8a6015ef1fdbfef">SVF::ExtAPI::getExtFuncAnnotation</a></div><div class="ttdeci">std::string getExtFuncAnnotation(const SVFFunction *fun, const std::string &amp;funcAnnotation)</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8cpp_source.html#l00127">ExtAPI.cpp:127</a></div></div>
644
+ <div class="ttc" id="aclassSVF_1_1ExtAPI_html_a1d7778db3b31f732f06129b49ec6dacd"><div class="ttname"><a href="classSVF_1_1ExtAPI.html#a1d7778db3b31f732f06129b49ec6dacd">SVF::ExtAPI::hasExtFuncAnnotation</a></div><div class="ttdeci">bool hasExtFuncAnnotation(const SVFFunction *fun, const std::string &amp;funcAnnotation)</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8cpp_source.html#l00167">ExtAPI.cpp:167</a></div></div>
645
+ <div class="ttc" id="aclassSVF_1_1Options_html_a2dffc9d885fa53340a1cdbc028d7f24a"><div class="ttname"><a href="classSVF_1_1Options.html#a2dffc9d885fa53340a1cdbc028d7f24a">SVF::Options::ExtAPIPath</a></div><div class="ttdeci">static const Option&lt; std::string &gt; ExtAPIPath</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00251">Options.h:251</a></div></div>
646
+ <div class="ttc" id="aclassSVF_1_1ExtAPI_html_a641c82ed1f1a86f0f8a6015ef1fdbfef"><div class="ttname"><a href="classSVF_1_1ExtAPI.html#a641c82ed1f1a86f0f8a6015ef1fdbfef">SVF::ExtAPI::getExtFuncAnnotation</a></div><div class="ttdeci">std::string getExtFuncAnnotation(const SVFFunction *fun, const std::string &amp;funcAnnotation)</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8cpp_source.html#l00158">ExtAPI.cpp:158</a></div></div>
569
647
  <div class="ttc" id="aSVFFileSystem_8cpp_html_ab25baccb41e3b67ef0bfdaa1336c9649"><div class="ttname"><a href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a></div><div class="ttdeci">#define F(f)</div></div>
648
+ <div class="ttc" id="aclassSVF_1_1ExtAPI_html_a3ce3e67c96a65484d8077d9e3a9efa7d"><div class="ttname"><a href="classSVF_1_1ExtAPI.html#a3ce3e67c96a65484d8077d9e3a9efa7d">SVF::ExtAPI::extBcPath</a></div><div class="ttdeci">static std::string extBcPath</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8h_source.html#l00053">ExtAPI.h:53</a></div></div>
570
649
  <div class="ttc" id="anamespaceSVF_1_1SVFUtil_html_ab65033f068bfbeb0a1c52dcec3beb6bc"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">SVF::SVFUtil::errs</a></div><div class="ttdeci">std::ostream &amp; errs()</div><div class="ttdoc">Overwrite llvm::errs()</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00056">SVFUtil.h:56</a></div></div>
571
650
  <!-- start footer part -->
572
651
  <hr class="footer"/><address class="footer"><small>