svf-tools 1.0.780 → 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 (268) hide show
  1. package/SVF-doxygen/html/html/CFLAlias_8cpp_source.html +2 -2
  2. package/SVF-doxygen/html/html/CFLBase_8cpp_source.html +4 -4
  3. package/SVF-doxygen/html/html/CFLGraphBuilder_8cpp_source.html +1 -1
  4. package/SVF-doxygen/html/html/CFLVF_8cpp_source.html +4 -4
  5. package/SVF-doxygen/html/html/ConsG_8cpp_source.html +1 -1
  6. package/SVF-doxygen/html/html/ExtAPI_8cpp.html +51 -49
  7. package/SVF-doxygen/html/html/ExtAPI_8cpp_source.html +216 -184
  8. package/SVF-doxygen/html/html/ExtAPI_8h.html +6 -6
  9. package/SVF-doxygen/html/html/ExtAPI_8h_source.html +55 -47
  10. package/SVF-doxygen/html/html/IRGraph_8cpp_source.html +1 -1
  11. package/SVF-doxygen/html/html/LLVMLoopAnalysis_8cpp_source.html +1 -1
  12. package/SVF-doxygen/html/html/LLVMModule_8cpp_source.html +2 -2
  13. package/SVF-doxygen/html/html/LLVMModule_8h_source.html +2 -2
  14. package/SVF-doxygen/html/html/LLVMUtil_8cpp_source.html +2 -2
  15. package/SVF-doxygen/html/html/Options_8cpp_source.html +140 -132
  16. package/SVF-doxygen/html/html/Options_8h_source.html +46 -44
  17. package/SVF-doxygen/html/html/SVFG_8cpp_source.html +1 -1
  18. package/SVF-doxygen/html/html/SVFModule_8cpp_source.html +1 -1
  19. package/SVF-doxygen/html/html/SVFUtil_8h_source.html +8 -8
  20. package/SVF-doxygen/html/html/SrcSnkDDA_8cpp_source.html +1 -1
  21. package/SVF-doxygen/html/html/WPAPass_8cpp_source.html +4 -4
  22. package/SVF-doxygen/html/html/classSVF_1_1CFLAlias.html +2 -2
  23. package/SVF-doxygen/html/html/classSVF_1_1CFLBase.html +4 -4
  24. package/SVF-doxygen/html/html/classSVF_1_1CFLGraphBuilder.html +1 -1
  25. package/SVF-doxygen/html/html/classSVF_1_1CFLVF.html +4 -4
  26. package/SVF-doxygen/html/html/classSVF_1_1ExtAPI-members.html +15 -13
  27. package/SVF-doxygen/html/html/classSVF_1_1ExtAPI.html +180 -100
  28. package/SVF-doxygen/html/html/classSVF_1_1LLVMLoopAnalysis.html +1 -1
  29. package/SVF-doxygen/html/html/classSVF_1_1LLVMModuleSet.html +2 -2
  30. package/SVF-doxygen/html/html/classSVF_1_1Options-members.html +89 -88
  31. package/SVF-doxygen/html/html/classSVF_1_1Options.html +43 -17
  32. package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder.html +1 -1
  33. package/SVF-doxygen/html/html/classSVF_1_1SVFModule.html +1 -1
  34. package/SVF-doxygen/html/html/classSVF_1_1SrcSnkDDA.html +1 -1
  35. package/SVF-doxygen/html/html/classSVF_1_1WPAPass.html +4 -4
  36. package/SVF-doxygen/html/html/functions_e.html +7 -1
  37. package/SVF-doxygen/html/html/functions_f.html +3 -3
  38. package/SVF-doxygen/html/html/functions_func_s.html +19 -16
  39. package/SVF-doxygen/html/html/functions_l.html +5 -5
  40. package/SVF-doxygen/html/html/functions_n.html +3 -3
  41. package/SVF-doxygen/html/html/functions_o.html +17 -17
  42. package/SVF-doxygen/html/html/functions_p.html +15 -15
  43. package/SVF-doxygen/html/html/functions_r.html +1 -1
  44. package/SVF-doxygen/html/html/functions_s.html +26 -21
  45. package/SVF-doxygen/html/html/functions_t.html +3 -3
  46. package/SVF-doxygen/html/html/functions_v.html +6 -6
  47. package/SVF-doxygen/html/html/functions_vars_e.html +6 -0
  48. package/SVF-doxygen/html/html/functions_w.html +1 -1
  49. package/SVF-doxygen/html/html/globals_d.html +3 -0
  50. package/SVF-doxygen/html/html/globals_defs.html +3 -3
  51. package/SVF-doxygen/html/html/globals_e.html +0 -3
  52. package/SVF-doxygen/html/html/search/all_10.js +324 -324
  53. package/SVF-doxygen/html/html/search/all_11.js +224 -224
  54. package/SVF-doxygen/html/html/search/all_12.js +546 -545
  55. package/SVF-doxygen/html/html/search/all_13.js +190 -190
  56. package/SVF-doxygen/html/html/search/all_14.js +67 -67
  57. package/SVF-doxygen/html/html/search/all_15.js +170 -170
  58. package/SVF-doxygen/html/html/search/all_16.js +63 -63
  59. package/SVF-doxygen/html/html/search/all_17.js +1 -1
  60. package/SVF-doxygen/html/html/search/all_18.js +1 -1
  61. package/SVF-doxygen/html/html/search/all_19.js +11 -11
  62. package/SVF-doxygen/html/html/search/all_1a.js +176 -176
  63. package/SVF-doxygen/html/html/search/all_4.js +184 -183
  64. package/SVF-doxygen/html/html/search/all_5.js +120 -119
  65. package/SVF-doxygen/html/html/search/all_6.js +225 -225
  66. package/SVF-doxygen/html/html/search/all_7.js +1056 -1056
  67. package/SVF-doxygen/html/html/search/all_8.js +195 -195
  68. package/SVF-doxygen/html/html/search/all_9.js +617 -617
  69. package/SVF-doxygen/html/html/search/all_a.js +46 -46
  70. package/SVF-doxygen/html/html/search/all_b.js +26 -26
  71. package/SVF-doxygen/html/html/search/all_c.js +116 -116
  72. package/SVF-doxygen/html/html/search/all_d.js +196 -196
  73. package/SVF-doxygen/html/html/search/all_e.js +207 -207
  74. package/SVF-doxygen/html/html/search/all_f.js +116 -116
  75. package/SVF-doxygen/html/html/search/classes_0.js +26 -26
  76. package/SVF-doxygen/html/html/search/classes_1.js +9 -9
  77. package/SVF-doxygen/html/html/search/classes_10.js +73 -73
  78. package/SVF-doxygen/html/html/search/classes_11.js +15 -15
  79. package/SVF-doxygen/html/html/search/classes_12.js +2 -2
  80. package/SVF-doxygen/html/html/search/classes_13.js +10 -10
  81. package/SVF-doxygen/html/html/search/classes_14.js +14 -14
  82. package/SVF-doxygen/html/html/search/classes_15.js +1 -1
  83. package/SVF-doxygen/html/html/search/classes_2.js +80 -80
  84. package/SVF-doxygen/html/html/search/classes_3.js +38 -38
  85. package/SVF-doxygen/html/html/search/classes_4.js +9 -9
  86. package/SVF-doxygen/html/html/search/classes_5.js +28 -28
  87. package/SVF-doxygen/html/html/search/classes_6.js +110 -110
  88. package/SVF-doxygen/html/html/search/classes_7.js +33 -33
  89. package/SVF-doxygen/html/html/search/classes_8.js +60 -60
  90. package/SVF-doxygen/html/html/search/classes_9.js +1 -1
  91. package/SVF-doxygen/html/html/search/classes_a.js +12 -12
  92. package/SVF-doxygen/html/html/search/classes_b.js +29 -29
  93. package/SVF-doxygen/html/html/search/classes_c.js +6 -6
  94. package/SVF-doxygen/html/html/search/classes_d.js +18 -18
  95. package/SVF-doxygen/html/html/search/classes_e.js +36 -36
  96. package/SVF-doxygen/html/html/search/classes_f.js +25 -25
  97. package/SVF-doxygen/html/html/search/defines_0.js +3 -3
  98. package/SVF-doxygen/html/html/search/defines_1.js +2 -2
  99. package/SVF-doxygen/html/html/search/defines_2.js +30 -30
  100. package/SVF-doxygen/html/html/search/defines_3.js +21 -20
  101. package/SVF-doxygen/html/html/search/defines_4.js +2 -3
  102. package/SVF-doxygen/html/html/search/defines_5.js +4 -4
  103. package/SVF-doxygen/html/html/search/defines_6.js +2 -2
  104. package/SVF-doxygen/html/html/search/defines_7.js +5 -5
  105. package/SVF-doxygen/html/html/search/defines_8.js +11 -11
  106. package/SVF-doxygen/html/html/search/defines_9.js +9 -9
  107. package/SVF-doxygen/html/html/search/defines_a.js +2 -2
  108. package/SVF-doxygen/html/html/search/defines_b.js +1 -1
  109. package/SVF-doxygen/html/html/search/defines_c.js +3 -3
  110. package/SVF-doxygen/html/html/search/defines_d.js +2 -2
  111. package/SVF-doxygen/html/html/search/defines_e.js +7 -7
  112. package/SVF-doxygen/html/html/search/defines_f.js +3 -3
  113. package/SVF-doxygen/html/html/search/enums_0.js +3 -3
  114. package/SVF-doxygen/html/html/search/enums_1.js +2 -2
  115. package/SVF-doxygen/html/html/search/enums_10.js +1 -1
  116. package/SVF-doxygen/html/html/search/enums_11.js +1 -1
  117. package/SVF-doxygen/html/html/search/enums_2.js +8 -8
  118. package/SVF-doxygen/html/html/search/enums_3.js +1 -1
  119. package/SVF-doxygen/html/html/search/enums_4.js +3 -3
  120. package/SVF-doxygen/html/html/search/enums_5.js +1 -1
  121. package/SVF-doxygen/html/html/search/enums_6.js +2 -2
  122. package/SVF-doxygen/html/html/search/enums_7.js +2 -2
  123. package/SVF-doxygen/html/html/search/enums_8.js +4 -4
  124. package/SVF-doxygen/html/html/search/enums_9.js +1 -1
  125. package/SVF-doxygen/html/html/search/enums_a.js +1 -1
  126. package/SVF-doxygen/html/html/search/enums_b.js +7 -7
  127. package/SVF-doxygen/html/html/search/enums_c.js +1 -1
  128. package/SVF-doxygen/html/html/search/enums_d.js +4 -4
  129. package/SVF-doxygen/html/html/search/enums_e.js +2 -2
  130. package/SVF-doxygen/html/html/search/enums_f.js +4 -4
  131. package/SVF-doxygen/html/html/search/enumvalues_0.js +14 -14
  132. package/SVF-doxygen/html/html/search/enumvalues_1.js +14 -14
  133. package/SVF-doxygen/html/html/search/enumvalues_10.js +35 -35
  134. package/SVF-doxygen/html/html/search/enumvalues_11.js +3 -3
  135. package/SVF-doxygen/html/html/search/enumvalues_12.js +10 -10
  136. package/SVF-doxygen/html/html/search/enumvalues_13.js +1 -1
  137. package/SVF-doxygen/html/html/search/enumvalues_14.js +1 -1
  138. package/SVF-doxygen/html/html/search/enumvalues_15.js +3 -3
  139. package/SVF-doxygen/html/html/search/enumvalues_2.js +36 -36
  140. package/SVF-doxygen/html/html/search/enumvalues_3.js +13 -13
  141. package/SVF-doxygen/html/html/search/enumvalues_4.js +2 -2
  142. package/SVF-doxygen/html/html/search/enumvalues_5.js +47 -47
  143. package/SVF-doxygen/html/html/search/enumvalues_6.js +6 -6
  144. package/SVF-doxygen/html/html/search/enumvalues_7.js +9 -9
  145. package/SVF-doxygen/html/html/search/enumvalues_8.js +23 -23
  146. package/SVF-doxygen/html/html/search/enumvalues_9.js +6 -6
  147. package/SVF-doxygen/html/html/search/enumvalues_a.js +15 -15
  148. package/SVF-doxygen/html/html/search/enumvalues_b.js +11 -11
  149. package/SVF-doxygen/html/html/search/enumvalues_c.js +5 -5
  150. package/SVF-doxygen/html/html/search/enumvalues_d.js +18 -18
  151. package/SVF-doxygen/html/html/search/enumvalues_e.js +9 -9
  152. package/SVF-doxygen/html/html/search/enumvalues_f.js +45 -45
  153. package/SVF-doxygen/html/html/search/files_0.js +13 -13
  154. package/SVF-doxygen/html/html/search/files_1.js +7 -7
  155. package/SVF-doxygen/html/html/search/files_10.js +8 -8
  156. package/SVF-doxygen/html/html/search/files_11.js +8 -8
  157. package/SVF-doxygen/html/html/search/files_12.js +2 -2
  158. package/SVF-doxygen/html/html/search/files_2.js +53 -53
  159. package/SVF-doxygen/html/html/search/files_3.js +14 -14
  160. package/SVF-doxygen/html/html/search/files_4.js +5 -5
  161. package/SVF-doxygen/html/html/search/files_5.js +13 -13
  162. package/SVF-doxygen/html/html/search/files_6.js +9 -9
  163. package/SVF-doxygen/html/html/search/files_7.js +16 -16
  164. package/SVF-doxygen/html/html/search/files_8.js +13 -13
  165. package/SVF-doxygen/html/html/search/files_9.js +18 -18
  166. package/SVF-doxygen/html/html/search/files_a.js +3 -3
  167. package/SVF-doxygen/html/html/search/files_b.js +2 -2
  168. package/SVF-doxygen/html/html/search/files_c.js +20 -20
  169. package/SVF-doxygen/html/html/search/files_d.js +4 -4
  170. package/SVF-doxygen/html/html/search/files_e.js +62 -62
  171. package/SVF-doxygen/html/html/search/files_f.js +8 -8
  172. package/SVF-doxygen/html/html/search/functions_0.js +12 -12
  173. package/SVF-doxygen/html/html/search/functions_1.js +357 -357
  174. package/SVF-doxygen/html/html/search/functions_10.js +140 -140
  175. package/SVF-doxygen/html/html/search/functions_11.js +138 -138
  176. package/SVF-doxygen/html/html/search/functions_12.js +279 -278
  177. package/SVF-doxygen/html/html/search/functions_13.js +58 -58
  178. package/SVF-doxygen/html/html/search/functions_14.js +39 -39
  179. package/SVF-doxygen/html/html/search/functions_15.js +71 -71
  180. package/SVF-doxygen/html/html/search/functions_16.js +32 -32
  181. package/SVF-doxygen/html/html/search/functions_17.js +3 -3
  182. package/SVF-doxygen/html/html/search/functions_18.js +176 -176
  183. package/SVF-doxygen/html/html/search/functions_2.js +86 -86
  184. package/SVF-doxygen/html/html/search/functions_3.js +257 -257
  185. package/SVF-doxygen/html/html/search/functions_4.js +75 -75
  186. package/SVF-doxygen/html/html/search/functions_5.js +53 -53
  187. package/SVF-doxygen/html/html/search/functions_6.js +59 -59
  188. package/SVF-doxygen/html/html/search/functions_7.js +858 -858
  189. package/SVF-doxygen/html/html/search/functions_8.js +147 -147
  190. package/SVF-doxygen/html/html/search/functions_9.js +429 -429
  191. package/SVF-doxygen/html/html/search/functions_a.js +30 -30
  192. package/SVF-doxygen/html/html/search/functions_b.js +2 -2
  193. package/SVF-doxygen/html/html/search/functions_c.js +26 -26
  194. package/SVF-doxygen/html/html/search/functions_d.js +77 -77
  195. package/SVF-doxygen/html/html/search/functions_e.js +35 -35
  196. package/SVF-doxygen/html/html/search/functions_f.js +56 -56
  197. package/SVF-doxygen/html/html/search/namespaces_0.js +1 -1
  198. package/SVF-doxygen/html/html/search/namespaces_1.js +7 -7
  199. package/SVF-doxygen/html/html/search/related_0.js +2 -2
  200. package/SVF-doxygen/html/html/search/related_1.js +2 -2
  201. package/SVF-doxygen/html/html/search/related_2.js +2 -2
  202. package/SVF-doxygen/html/html/search/related_3.js +2 -2
  203. package/SVF-doxygen/html/html/search/related_4.js +2 -2
  204. package/SVF-doxygen/html/html/search/related_5.js +1 -1
  205. package/SVF-doxygen/html/html/search/related_6.js +2 -2
  206. package/SVF-doxygen/html/html/search/related_7.js +4 -4
  207. package/SVF-doxygen/html/html/search/related_8.js +2 -2
  208. package/SVF-doxygen/html/html/search/related_9.js +4 -4
  209. package/SVF-doxygen/html/html/search/related_a.js +19 -19
  210. package/SVF-doxygen/html/html/search/related_b.js +4 -4
  211. package/SVF-doxygen/html/html/search/related_c.js +1 -1
  212. package/SVF-doxygen/html/html/search/related_d.js +11 -11
  213. package/SVF-doxygen/html/html/search/related_e.js +2 -2
  214. package/SVF-doxygen/html/html/search/related_f.js +2 -2
  215. package/SVF-doxygen/html/html/search/typedefs_0.js +18 -18
  216. package/SVF-doxygen/html/html/search/typedefs_1.js +26 -26
  217. package/SVF-doxygen/html/html/search/typedefs_10.js +63 -63
  218. package/SVF-doxygen/html/html/search/typedefs_11.js +13 -13
  219. package/SVF-doxygen/html/html/search/typedefs_12.js +11 -11
  220. package/SVF-doxygen/html/html/search/typedefs_13.js +35 -35
  221. package/SVF-doxygen/html/html/search/typedefs_14.js +8 -8
  222. package/SVF-doxygen/html/html/search/typedefs_2.js +128 -128
  223. package/SVF-doxygen/html/html/search/typedefs_3.js +39 -39
  224. package/SVF-doxygen/html/html/search/typedefs_4.js +17 -17
  225. package/SVF-doxygen/html/html/search/typedefs_5.js +41 -41
  226. package/SVF-doxygen/html/html/search/typedefs_6.js +58 -58
  227. package/SVF-doxygen/html/html/search/typedefs_7.js +46 -46
  228. package/SVF-doxygen/html/html/search/typedefs_8.js +1 -1
  229. package/SVF-doxygen/html/html/search/typedefs_9.js +6 -6
  230. package/SVF-doxygen/html/html/search/typedefs_a.js +29 -29
  231. package/SVF-doxygen/html/html/search/typedefs_b.js +29 -29
  232. package/SVF-doxygen/html/html/search/typedefs_c.js +41 -41
  233. package/SVF-doxygen/html/html/search/typedefs_d.js +15 -15
  234. package/SVF-doxygen/html/html/search/typedefs_e.js +52 -52
  235. package/SVF-doxygen/html/html/search/typedefs_f.js +14 -14
  236. package/SVF-doxygen/html/html/search/variables_0.js +162 -162
  237. package/SVF-doxygen/html/html/search/variables_1.js +75 -75
  238. package/SVF-doxygen/html/html/search/variables_10.js +97 -97
  239. package/SVF-doxygen/html/html/search/variables_11.js +46 -46
  240. package/SVF-doxygen/html/html/search/variables_12.js +92 -92
  241. package/SVF-doxygen/html/html/search/variables_13.js +75 -75
  242. package/SVF-doxygen/html/html/search/variables_14.js +14 -14
  243. package/SVF-doxygen/html/html/search/variables_15.js +48 -48
  244. package/SVF-doxygen/html/html/search/variables_16.js +9 -9
  245. package/SVF-doxygen/html/html/search/variables_17.js +1 -1
  246. package/SVF-doxygen/html/html/search/variables_18.js +2 -2
  247. package/SVF-doxygen/html/html/search/variables_2.js +37 -37
  248. package/SVF-doxygen/html/html/search/variables_3.js +142 -142
  249. package/SVF-doxygen/html/html/search/variables_4.js +55 -55
  250. package/SVF-doxygen/html/html/search/variables_5.js +39 -37
  251. package/SVF-doxygen/html/html/search/variables_6.js +66 -66
  252. package/SVF-doxygen/html/html/search/variables_7.js +33 -33
  253. package/SVF-doxygen/html/html/search/variables_8.js +7 -7
  254. package/SVF-doxygen/html/html/search/variables_9.js +77 -77
  255. package/SVF-doxygen/html/html/search/variables_a.js +4 -4
  256. package/SVF-doxygen/html/html/search/variables_b.js +10 -10
  257. package/SVF-doxygen/html/html/search/variables_c.js +45 -45
  258. package/SVF-doxygen/html/html/search/variables_d.js +56 -56
  259. package/SVF-doxygen/html/html/search/variables_e.js +123 -123
  260. package/SVF-doxygen/html/html/search/variables_f.js +30 -30
  261. package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01ConstraintGraph_01_5_01_4.html +1 -1
  262. package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01IRGraph_01_5_01_4.html +1 -1
  263. package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01SVFG_01_5_01_4.html +1 -1
  264. package/package.json +1 -1
  265. package/svf/include/Util/ExtAPI.h +7 -1
  266. package/svf/include/Util/Options.h +1 -0
  267. package/svf/lib/Util/ExtAPI.cpp +58 -30
  268. package/svf/lib/Util/Options.cpp +7 -0
@@ -326,7 +326,7 @@ $(function() {
326
326
  <div class="ttc" id="aclassSVF_1_1CFLAlias_html_a40841c2b47cf690af5c13ba7662d0863"><div class="ttname"><a href="classSVF_1_1CFLAlias.html#a40841c2b47cf690af5c13ba7662d0863">SVF::CFLAlias::heapAllocatorViaIndCall</a></div><div class="ttdeci">void heapAllocatorViaIndCall(CallSite cs)</div><div class="ttdef"><b>Definition:</b> <a href="CFLAlias_8cpp_source.html#l00146">CFLAlias.cpp:146</a></div></div>
327
327
  <div class="ttc" id="aSVFType_8h_html_a7a295e02c56a93cf9206dd9d3b18dd17"><div class="ttname"><a href="SVFType_8h.html#a7a295e02c56a93cf9206dd9d3b18dd17">DPAGBuild</a></div><div class="ttdeci">#define DPAGBuild</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00551">SVFType.h:551</a></div></div>
328
328
  <div class="ttc" id="aSVFType_8h_html_a1aeda3370621dc00e9a0fe8e7aabc736"><div class="ttname"><a href="SVFType_8h.html#a1aeda3370621dc00e9a0fe8e7aabc736">TIMEINTERVAL</a></div><div class="ttdeci">#define TIMEINTERVAL</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00571">SVFType.h:571</a></div></div>
329
- <div class="ttc" id="aclassSVF_1_1Options_html_a81dbd12b5141c4a2758d6f2d3321f1ac"><div class="ttname"><a href="classSVF_1_1Options.html#a81dbd12b5141c4a2758d6f2d3321f1ac">SVF::Options::CFLGraph</a></div><div class="ttdeci">static const Option&lt; std::string &gt; CFLGraph</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00262">Options.h:262</a></div></div>
329
+ <div class="ttc" id="aclassSVF_1_1Options_html_a81dbd12b5141c4a2758d6f2d3321f1ac"><div class="ttname"><a href="classSVF_1_1Options.html#a81dbd12b5141c4a2758d6f2d3321f1ac">SVF::Options::CFLGraph</a></div><div class="ttdeci">static const Option&lt; std::string &gt; CFLGraph</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00263">Options.h:263</a></div></div>
330
330
  <div class="ttc" id="aclassSVF_1_1CFLAlias_html_a25b38896aef06dad19532f7678291b37"><div class="ttname"><a href="classSVF_1_1CFLAlias.html#a25b38896aef06dad19532f7678291b37">SVF::CFLAlias::onTheFlyCallGraphSolve</a></div><div class="ttdeci">virtual void onTheFlyCallGraphSolve(const CallSiteToFunPtrMap &amp;callsites, CallEdgeMap &amp;newEdges)</div><div class="ttdoc">On the fly call graph construction.</div><div class="ttdef"><b>Definition:</b> <a href="CFLAlias_8cpp_source.html#l00041">CFLAlias.cpp:41</a></div></div>
331
331
  <div class="ttc" id="anamespaceSVF_1_1SVFUtil_html_a19b96a872d9096037f20e25122e469ea"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a19b96a872d9096037f20e25122e469ea">SVF::SVFUtil::isHeapAllocExtFunViaRet</a></div><div class="ttdeci">bool isHeapAllocExtFunViaRet(const SVFFunction *fun)</div><div class="ttdoc">Return true if the call is a heap allocator/reallocator.</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00327">SVFUtil.h:327</a></div></div>
332
332
  <div class="ttc" id="aclassSVF_1_1PointerAnalysis_html_a118dabc50024b5cd91095814ade47166"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a118dabc50024b5cd91095814ade47166">SVF::PointerAnalysis::finalize</a></div><div class="ttdeci">virtual void finalize()</div><div class="ttdoc">Finalization of a pointer analysis, including checking alias correctness.</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8cpp_source.html#l00180">PointerAnalysis.cpp:180</a></div></div>
@@ -349,7 +349,7 @@ $(function() {
349
349
  <div class="ttc" id="aclassSVF_1_1CFLAlias_html_abfab36c0d5edbdfb94e617bed61ba875"><div class="ttname"><a href="classSVF_1_1CFLAlias.html#abfab36c0d5edbdfb94e617bed61ba875">SVF::CFLAlias::connectCaller2CalleeParams</a></div><div class="ttdeci">void connectCaller2CalleeParams(CallSite cs, const SVFFunction *F)</div><div class="ttdoc">Connect formal and actual parameters for indirect callsites.</div><div class="ttdef"><b>Definition:</b> <a href="CFLAlias_8cpp_source.html#l00063">CFLAlias.cpp:63</a></div></div>
350
350
  <div class="ttc" id="aclassSVF_1_1SVFVar_html"><div class="ttname"><a href="classSVF_1_1SVFVar.html">SVF::SVFVar</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00045">SVFVariables.h:45</a></div></div>
351
351
  <div class="ttc" id="aclassSVF_1_1CallSite_html_a427a38e580db4bf04c9d716762243c89"><div class="ttname"><a href="classSVF_1_1CallSite.html#a427a38e580db4bf04c9d716762243c89">SVF::CallSite::isVirtualCall</a></div><div class="ttdeci">bool isVirtualCall() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l01161">SVFValue.h:1161</a></div></div>
352
- <div class="ttc" id="aclassSVF_1_1Options_html_a9ff12bf51a475c90c35e3351c5501f0f"><div class="ttname"><a href="classSVF_1_1Options.html#a9ff12bf51a475c90c35e3351c5501f0f">SVF::Options::PrintCFL</a></div><div class="ttdeci">static const Option&lt; bool &gt; PrintCFL</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00263">Options.h:263</a></div></div>
352
+ <div class="ttc" id="aclassSVF_1_1Options_html_a9ff12bf51a475c90c35e3351c5501f0f"><div class="ttname"><a href="classSVF_1_1Options.html#a9ff12bf51a475c90c35e3351c5501f0f">SVF::Options::PrintCFL</a></div><div class="ttdeci">static const Option&lt; bool &gt; PrintCFL</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00264">Options.h:264</a></div></div>
353
353
  <div class="ttc" id="aclassSVF_1_1POCRHybridSolver_html"><div class="ttname"><a href="classSVF_1_1POCRHybridSolver.html">SVF::POCRHybridSolver</a></div><div class="ttdoc">Solver Utilize Hybrid Representation of Graph.</div><div class="ttdef"><b>Definition:</b> <a href="CFLSolver_8h_source.html#l00294">CFLSolver.h:294</a></div></div>
354
354
  <div class="ttc" id="anamespaceSVF_1_1SVFUtil_html_aed0b0b9f035057552a6a82154fd88e61"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVF::SVFUtil::outs</a></div><div class="ttdeci">std::ostream &amp; outs()</div><div class="ttdoc">Overwrite llvm::outs()</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00050">SVFUtil.h:50</a></div></div>
355
355
  <div class="ttc" id="aclassSVF_1_1CallSite_html"><div class="ttname"><a href="classSVF_1_1CallSite.html">SVF::CallSite</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l01102">SVFValue.h:1102</a></div></div>
@@ -240,11 +240,11 @@ $(function() {
240
240
  <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>
241
241
  <div class="ttc" id="aclassSVF_1_1CFLBase_html_a8dd040c7078b7f1a61da76849c89a640"><div class="ttname"><a href="classSVF_1_1CFLBase.html#a8dd040c7078b7f1a61da76849c89a640">SVF::CFLBase::grammar</a></div><div class="ttdeci">CFGrammar * grammar</div><div class="ttdef"><b>Definition:</b> <a href="CFLBase_8h_source.html#l00112">CFLBase.h:112</a></div></div>
242
242
  <div class="ttc" id="aclassSVF_1_1CFLSolver_html_a46ded0b18821a2ade0ee151ac2b2d520"><div class="ttname"><a href="classSVF_1_1CFLSolver.html#a46ded0b18821a2ade0ee151ac2b2d520">SVF::CFLSolver::numOfChecks</a></div><div class="ttdeci">static double numOfChecks</div><div class="ttdef"><b>Definition:</b> <a href="CFLSolver_8h_source.html#l00052">CFLSolver.h:52</a></div></div>
243
- <div class="ttc" id="aclassSVF_1_1Options_html_a15a9c1086e1bbd6a76d56ad1bdd6b994"><div class="ttname"><a href="classSVF_1_1Options.html#a15a9c1086e1bbd6a76d56ad1bdd6b994">SVF::Options::Customized</a></div><div class="ttdeci">static const Option&lt; bool &gt; Customized</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00269">Options.h:269</a></div></div>
243
+ <div class="ttc" id="aclassSVF_1_1Options_html_a15a9c1086e1bbd6a76d56ad1bdd6b994"><div class="ttname"><a href="classSVF_1_1Options.html#a15a9c1086e1bbd6a76d56ad1bdd6b994">SVF::Options::Customized</a></div><div class="ttdeci">static const Option&lt; bool &gt; Customized</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00270">Options.h:270</a></div></div>
244
244
  <div class="ttc" id="aSVFType_8h_html_a1aeda3370621dc00e9a0fe8e7aabc736"><div class="ttname"><a href="SVFType_8h.html#a1aeda3370621dc00e9a0fe8e7aabc736">TIMEINTERVAL</a></div><div class="ttdeci">#define TIMEINTERVAL</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00571">SVFType.h:571</a></div></div>
245
245
  <div class="ttc" id="aclassSVF_1_1CFLGraphBuilder_html_a27b247b46ce0b467459fcc2d53f50383"><div class="ttname"><a href="classSVF_1_1CFLGraphBuilder.html#a27b247b46ce0b467459fcc2d53f50383">SVF::CFLGraphBuilder::build</a></div><div class="ttdeci">CFLGraph * build(GenericGraph&lt; N, E &gt; *graph, GrammarBase *grammar, BuildDirection direction=BuildDirection::plain)</div><div class="ttdef"><b>Definition:</b> <a href="CFLGraphBuilder_8cpp_source.html#l00101">CFLGraphBuilder.cpp:101</a></div></div>
246
246
  <div class="ttc" id="aclassSVF_1_1CFLBase_html_aa807cf1b8605a463d6d68d5096f3e0e8"><div class="ttname"><a href="classSVF_1_1CFLBase.html#aa807cf1b8605a463d6d68d5096f3e0e8">SVF::CFLBase::numOfIteration</a></div><div class="ttdeci">static double numOfIteration</div><div class="ttdef"><b>Definition:</b> <a href="CFLBase_8h_source.html#l00103">CFLBase.h:103</a></div></div>
247
- <div class="ttc" id="aclassSVF_1_1Options_html_a81dbd12b5141c4a2758d6f2d3321f1ac"><div class="ttname"><a href="classSVF_1_1Options.html#a81dbd12b5141c4a2758d6f2d3321f1ac">SVF::Options::CFLGraph</a></div><div class="ttdeci">static const Option&lt; std::string &gt; CFLGraph</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00262">Options.h:262</a></div></div>
247
+ <div class="ttc" id="aclassSVF_1_1Options_html_a81dbd12b5141c4a2758d6f2d3321f1ac"><div class="ttname"><a href="classSVF_1_1Options.html#a81dbd12b5141c4a2758d6f2d3321f1ac">SVF::Options::CFLGraph</a></div><div class="ttdeci">static const Option&lt; std::string &gt; CFLGraph</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00263">Options.h:263</a></div></div>
248
248
  <div class="ttc" id="aclassSVF_1_1CFLGraph_html"><div class="ttname"><a href="classSVF_1_1CFLGraph.html">SVF::CFLGraph</a></div><div class="ttdef"><b>Definition:</b> <a href="CFLGraph_8h_source.html#l00155">CFLGraph.h:155</a></div></div>
249
249
  <div class="ttc" id="aclassSVF_1_1CFLBase_html_a77bc3b0260fe02cdcf41fdb6b80caa09"><div class="ttname"><a href="classSVF_1_1CFLBase.html#a77bc3b0260fe02cdcf41fdb6b80caa09">SVF::CFLBase::buildCFLGrammar</a></div><div class="ttdeci">virtual void buildCFLGrammar()</div><div class="ttdoc">Build Grammar from text file.</div><div class="ttdef"><b>Definition:</b> <a href="CFLBase_8cpp_source.html#l00065">CFLBase.cpp:65</a></div></div>
250
250
  <div class="ttc" id="aclassSVF_1_1CFGNormalizer_html"><div class="ttname"><a href="classSVF_1_1CFGNormalizer.html">SVF::CFGNormalizer</a></div><div class="ttdef"><b>Definition:</b> <a href="CFGNormalizer_8h_source.html#l00047">CFGNormalizer.h:47</a></div></div>
@@ -268,12 +268,12 @@ $(function() {
268
268
  <div class="ttc" id="aclassSVF_1_1AliasCFLGraphBuilder_html_ab19243c4aceffce7b257f3d8cb3050fd"><div class="ttname"><a href="classSVF_1_1AliasCFLGraphBuilder.html#ab19243c4aceffce7b257f3d8cb3050fd">SVF::AliasCFLGraphBuilder::buildBigraph</a></div><div class="ttdeci">CFLGraph * buildBigraph(ConstraintGraph *graph, Kind startKind, GrammarBase *grammar)</div><div class="ttdoc">Builds a bidirectional CFL graph by copying nodes and edges from a const graph that inherits from Gen...</div><div class="ttdef"><b>Definition:</b> <a href="CFLGraphBuilder_8cpp_source.html#l00251">CFLGraphBuilder.cpp:251</a></div></div>
269
269
  <div class="ttc" id="aclassSVF_1_1CFLSolver_html_a2ee3436c26ebdb2aaf790c25b1d8b5a6"><div class="ttname"><a href="classSVF_1_1CFLSolver.html#a2ee3436c26ebdb2aaf790c25b1d8b5a6">SVF::CFLSolver::solve</a></div><div class="ttdeci">virtual void solve()</div><div class="ttdoc">Start solving.</div><div class="ttdef"><b>Definition:</b> <a href="CFLSolver_8cpp_source.html#l00119">CFLSolver.cpp:119</a></div></div>
270
270
  <div class="ttc" id="aclassSVF_1_1CFLBase_html_a88e40af43705550a78837b8589bbf3f8"><div class="ttname"><a href="classSVF_1_1CFLBase.html#a88e40af43705550a78837b8589bbf3f8">SVF::CFLBase::timeOfSolving</a></div><div class="ttdeci">static double timeOfSolving</div><div class="ttdef"><b>Definition:</b> <a href="CFLBase_8h_source.html#l00105">CFLBase.h:105</a></div></div>
271
- <div class="ttc" id="aclassSVF_1_1Options_html_a4854dd8b167e468e698606254b31bf26"><div class="ttname"><a href="classSVF_1_1Options.html#a4854dd8b167e468e698606254b31bf26">SVF::Options::PEGTransfer</a></div><div class="ttdeci">static const Option&lt; bool &gt; PEGTransfer</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00265">Options.h:265</a></div></div>
271
+ <div class="ttc" id="aclassSVF_1_1Options_html_a4854dd8b167e468e698606254b31bf26"><div class="ttname"><a href="classSVF_1_1Options.html#a4854dd8b167e468e698606254b31bf26">SVF::Options::PEGTransfer</a></div><div class="ttdeci">static const Option&lt; bool &gt; PEGTransfer</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00266">Options.h:266</a></div></div>
272
272
  <div class="ttc" id="aclassSVF_1_1CFLBase_html_aef3da4ce970597586757cafd2a435c1f"><div class="ttname"><a href="classSVF_1_1CFLBase.html#aef3da4ce970597586757cafd2a435c1f">SVF::CFLBase::grammarBase</a></div><div class="ttdeci">GrammarBase * grammarBase</div><div class="ttdef"><b>Definition:</b> <a href="CFLBase_8h_source.html#l00111">CFLBase.h:111</a></div></div>
273
273
  <div class="ttc" id="aCFLBase_8h_html"><div class="ttname"><a href="CFLBase_8h.html">CFLBase.h</a></div></div>
274
274
  <div class="ttc" id="aclassSVF_1_1CFLGraph_html_afcf910a94a3b081067f5a55599475a16"><div class="ttname"><a href="classSVF_1_1CFLGraph.html#afcf910a94a3b081067f5a55599475a16">SVF::CFLGraph::getCFLEdges</a></div><div class="ttdeci">const CFLEdgeSet &amp; getCFLEdges() const</div><div class="ttdef"><b>Definition:</b> <a href="CFLGraph_8h_source.html#l00181">CFLGraph.h:181</a></div></div>
275
275
  <div class="ttc" id="aclassSVF_1_1CFLBase_html_a8101683062b9a71c0b2309cbdfb7b26f"><div class="ttname"><a href="classSVF_1_1CFLBase.html#a8101683062b9a71c0b2309cbdfb7b26f">SVF::CFLBase::graph</a></div><div class="ttdeci">CFLGraph * graph</div><div class="ttdef"><b>Definition:</b> <a href="CFLBase_8h_source.html#l00110">CFLBase.h:110</a></div></div>
276
- <div class="ttc" id="aclassSVF_1_1Options_html_ad09017ae2e1010fbba5c086a4772750f"><div class="ttname"><a href="classSVF_1_1Options.html#ad09017ae2e1010fbba5c086a4772750f">SVF::Options::GrammarFilename</a></div><div class="ttdeci">static const Option&lt; std::string &gt; GrammarFilename</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00261">Options.h:261</a></div></div>
276
+ <div class="ttc" id="aclassSVF_1_1Options_html_ad09017ae2e1010fbba5c086a4772750f"><div class="ttname"><a href="classSVF_1_1Options.html#ad09017ae2e1010fbba5c086a4772750f">SVF::Options::GrammarFilename</a></div><div class="ttdeci">static const Option&lt; std::string &gt; GrammarFilename</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00262">Options.h:262</a></div></div>
277
277
  <div class="ttc" id="aclassSVF_1_1CFLBase_html_a462de3facd2a9365d32397d250414ee9"><div class="ttname"><a href="classSVF_1_1CFLBase.html#a462de3facd2a9365d32397d250414ee9">SVF::CFLBase::normalizeCFLGrammar</a></div><div class="ttdeci">virtual void normalizeCFLGrammar()</div><div class="ttdoc">Normalize grammar.</div><div class="ttdef"><b>Definition:</b> <a href="CFLBase_8cpp_source.html#l00105">CFLBase.cpp:105</a></div></div>
278
278
  <div class="ttc" id="aclassSVF_1_1CFGNormalizer_html_a937b65bca67692e4c6507d2b6d5fb567"><div class="ttname"><a href="classSVF_1_1CFGNormalizer.html#a937b65bca67692e4c6507d2b6d5fb567">SVF::CFGNormalizer::normalize</a></div><div class="ttdeci">CFGrammar * normalize(GrammarBase *generalGrammar)</div><div class="ttdoc">Binary Normal Form(BNF) normalization with variable attribute expanded.</div><div class="ttdef"><b>Definition:</b> <a href="CFGNormalizer_8cpp_source.html#l00042">CFGNormalizer.cpp:42</a></div></div>
279
279
  <div class="ttc" id="aclassSVF_1_1CFLBase_html_a0d3217f4c3796b58a98add5c92298ad2"><div class="ttname"><a href="classSVF_1_1CFLBase.html#a0d3217f4c3796b58a98add5c92298ad2">SVF::CFLBase::timeOfBuildCFLGrammar</a></div><div class="ttdeci">static double timeOfBuildCFLGrammar</div><div class="ttdoc">Statistics.</div><div class="ttdef"><b>Definition:</b> <a href="CFLBase_8h_source.html#l00094">CFLBase.h:94</a></div></div>
@@ -598,7 +598,7 @@ $(function() {
598
598
  <div class="line"><a name="l00546"></a><span class="lineno"> 546</span>&#160;} <span class="comment">// end of SVF namespace</span></div>
599
599
  </div><!-- fragment --></div><!-- contents -->
600
600
  <div class="ttc" id="anamespaceSVF_html_a165cd8904ba9f1ae6e0fa1752ba78caa"><div class="ttname"><a href="namespaceSVF.html#a165cd8904ba9f1ae6e0fa1752ba78caa">SVF::BuildDirection</a></div><div class="ttdeci">BuildDirection</div><div class="ttdef"><b>Definition:</b> <a href="CFLGraphBuilder_8h_source.html#l00040">CFLGraphBuilder.h:40</a></div></div>
601
- <div class="ttc" id="aclassSVF_1_1Options_html_a8e22c3bca5ee0e4e7d90e857a5ea8031"><div class="ttname"><a href="classSVF_1_1Options.html#a8e22c3bca5ee0e4e7d90e857a5ea8031">SVF::Options::FlexSymMap</a></div><div class="ttdeci">static const Option&lt; bool &gt; FlexSymMap</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00264">Options.h:264</a></div></div>
601
+ <div class="ttc" id="aclassSVF_1_1Options_html_a8e22c3bca5ee0e4e7d90e857a5ea8031"><div class="ttname"><a href="classSVF_1_1Options.html#a8e22c3bca5ee0e4e7d90e857a5ea8031">SVF::Options::FlexSymMap</a></div><div class="ttdeci">static const Option&lt; bool &gt; FlexSymMap</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00265">Options.h:265</a></div></div>
602
602
  <div class="ttc" id="aclassSVF_1_1RetDirSVFGEdge_html"><div class="ttname"><a href="classSVF_1_1RetDirSVFGEdge.html">SVF::RetDirSVFGEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGEdge_8h_source.html#l00254">VFGEdge.h:254</a></div></div>
603
603
  <div class="ttc" id="aclassSVF_1_1CFLGraphBuilder_html_aad408d6ecb776fd763c9b9221a1bed18"><div class="ttname"><a href="classSVF_1_1CFLGraphBuilder.html#aad408d6ecb776fd763c9b9221a1bed18">SVF::CFLGraphBuilder::current</a></div><div class="ttdeci">Kind current</div><div class="ttdef"><b>Definition:</b> <a href="CFLGraphBuilder_8h_source.html#l00065">CFLGraphBuilder.h:65</a></div></div>
604
604
  <div class="ttc" id="anamespaceSVF_1_1SVFUtil_html_a7655b13bbfe720ca2b8a25e0a72528e6"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a7655b13bbfe720ca2b8a25e0a72528e6">SVF::SVFUtil::errMsg</a></div><div class="ttdeci">std::string errMsg(const std::string &amp;msg)</div><div class="ttdoc">Print error message by converting a string into red string output.</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8cpp_source.html#l00076">SVFUtil.cpp:76</a></div></div>
@@ -173,14 +173,14 @@ $(function() {
173
173
  <div class="ttc" id="aclassSVF_1_1CFLVF_html_aa20f8d27da439c831f36b31312daf047"><div class="ttname"><a href="classSVF_1_1CFLVF.html#aa20f8d27da439c831f36b31312daf047">SVF::CFLVF::buildCFLGraph</a></div><div class="ttdeci">void buildCFLGraph()</div><div class="ttdoc">Build CFLGraph via VFG.</div><div class="ttdef"><b>Definition:</b> <a href="CFLVF_8cpp_source.html#l00037">CFLVF.cpp:37</a></div></div>
174
174
  <div class="ttc" id="aclassSVF_1_1VFCFLGraphBuilder_html"><div class="ttname"><a href="classSVF_1_1VFCFLGraphBuilder.html">SVF::VFCFLGraphBuilder</a></div><div class="ttdoc">VFCFLGraphBuilder: a CFLGraphBuilder specialized for handling value-flow.</div><div class="ttdef"><b>Definition:</b> <a href="CFLGraphBuilder_8h_source.html#l00142">CFLGraphBuilder.h:142</a></div></div>
175
175
  <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>
176
- <div class="ttc" id="aclassSVF_1_1Options_html_a15a9c1086e1bbd6a76d56ad1bdd6b994"><div class="ttname"><a href="classSVF_1_1Options.html#a15a9c1086e1bbd6a76d56ad1bdd6b994">SVF::Options::Customized</a></div><div class="ttdeci">static const Option&lt; bool &gt; Customized</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00269">Options.h:269</a></div></div>
176
+ <div class="ttc" id="aclassSVF_1_1Options_html_a15a9c1086e1bbd6a76d56ad1bdd6b994"><div class="ttname"><a href="classSVF_1_1Options.html#a15a9c1086e1bbd6a76d56ad1bdd6b994">SVF::Options::Customized</a></div><div class="ttdeci">static const Option&lt; bool &gt; Customized</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00270">Options.h:270</a></div></div>
177
177
  <div class="ttc" id="aclassSVF_1_1CFLGraphBuilder_html_a27b247b46ce0b467459fcc2d53f50383"><div class="ttname"><a href="classSVF_1_1CFLGraphBuilder.html#a27b247b46ce0b467459fcc2d53f50383">SVF::CFLGraphBuilder::build</a></div><div class="ttdeci">CFLGraph * build(GenericGraph&lt; N, E &gt; *graph, GrammarBase *grammar, BuildDirection direction=BuildDirection::plain)</div><div class="ttdef"><b>Definition:</b> <a href="CFLGraphBuilder_8cpp_source.html#l00101">CFLGraphBuilder.cpp:101</a></div></div>
178
- <div class="ttc" id="aclassSVF_1_1Options_html_a81dbd12b5141c4a2758d6f2d3321f1ac"><div class="ttname"><a href="classSVF_1_1Options.html#a81dbd12b5141c4a2758d6f2d3321f1ac">SVF::Options::CFLGraph</a></div><div class="ttdeci">static const Option&lt; std::string &gt; CFLGraph</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00262">Options.h:262</a></div></div>
178
+ <div class="ttc" id="aclassSVF_1_1Options_html_a81dbd12b5141c4a2758d6f2d3321f1ac"><div class="ttname"><a href="classSVF_1_1Options.html#a81dbd12b5141c4a2758d6f2d3321f1ac">SVF::Options::CFLGraph</a></div><div class="ttdeci">static const Option&lt; std::string &gt; CFLGraph</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00263">Options.h:263</a></div></div>
179
179
  <div class="ttc" id="aCppUtil_8h_html"><div class="ttname"><a href="CppUtil_8h.html">CppUtil.h</a></div></div>
180
180
  <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>
181
181
  <div class="ttc" id="aclassSVF_1_1VFCFLGraphBuilder_html_acd5ade19c0e058bfb41a1a8dd84748e1"><div class="ttname"><a href="classSVF_1_1VFCFLGraphBuilder.html#acd5ade19c0e058bfb41a1a8dd84748e1">SVF::VFCFLGraphBuilder::buildBigraph</a></div><div class="ttdeci">CFLGraph * buildBigraph(SVFG *graph, Kind startKind, GrammarBase *grammar)</div><div class="ttdoc">Builds a bidirectional CFL graph by copying nodes and edges from a const graph that inherits from SVF...</div><div class="ttdef"><b>Definition:</b> <a href="CFLGraphBuilder_8cpp_source.html#l00452">CFLGraphBuilder.cpp:452</a></div></div>
182
182
  <div class="ttc" id="aclassSVF_1_1CFLSolver_html"><div class="ttname"><a href="classSVF_1_1CFLSolver.html">SVF::CFLSolver</a></div><div class="ttdef"><b>Definition:</b> <a href="CFLSolver_8h_source.html#l00043">CFLSolver.h:43</a></div></div>
183
- <div class="ttc" id="aclassSVF_1_1Options_html_a9ff12bf51a475c90c35e3351c5501f0f"><div class="ttname"><a href="classSVF_1_1Options.html#a9ff12bf51a475c90c35e3351c5501f0f">SVF::Options::PrintCFL</a></div><div class="ttdeci">static const Option&lt; bool &gt; PrintCFL</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00263">Options.h:263</a></div></div>
183
+ <div class="ttc" id="aclassSVF_1_1Options_html_a9ff12bf51a475c90c35e3351c5501f0f"><div class="ttname"><a href="classSVF_1_1Options.html#a9ff12bf51a475c90c35e3351c5501f0f">SVF::Options::PrintCFL</a></div><div class="ttdeci">static const Option&lt; bool &gt; PrintCFL</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00264">Options.h:264</a></div></div>
184
184
  <div class="ttc" id="aclassSVF_1_1CFLGramGraphChecker_html"><div class="ttname"><a href="classSVF_1_1CFLGramGraphChecker.html">SVF::CFLGramGraphChecker</a></div><div class="ttdef"><b>Definition:</b> <a href="CFLGramGraphChecker_8h_source.html#l00037">CFLGramGraphChecker.h:37</a></div></div>
185
185
  <div class="ttc" id="aclassSVF_1_1AndersenWaveDiff_html"><div class="ttname"><a href="classSVF_1_1AndersenWaveDiff.html">SVF::AndersenWaveDiff</a></div><div class="ttdef"><b>Definition:</b> <a href="Andersen_8h_source.html#l00384">Andersen.h:384</a></div></div>
186
186
  <div class="ttc" id="aclassSVF_1_1CFLVF_html_a6047084ea0cfe2827130facdd54e4806"><div class="ttname"><a href="classSVF_1_1CFLVF.html#a6047084ea0cfe2827130facdd54e4806">SVF::CFLVF::finalize</a></div><div class="ttdeci">virtual void finalize()</div><div class="ttdoc">Print grammar and graph.</div><div class="ttdef"><b>Definition:</b> <a href="CFLVF_8cpp_source.html#l00089">CFLVF.cpp:89</a></div></div>
@@ -188,7 +188,7 @@ $(function() {
188
188
  <div class="ttc" id="aCFLVF_8h_html"><div class="ttname"><a href="CFLVF_8h.html">CFLVF.h</a></div></div>
189
189
  <div class="ttc" id="aclassSVF_1_1CFLVF_html_a20c6a97e620239c72f402ddf470852bf"><div class="ttname"><a href="classSVF_1_1CFLVF.html#a20c6a97e620239c72f402ddf470852bf">SVF::CFLVF::checkParameter</a></div><div class="ttdeci">virtual void checkParameter()</div><div class="ttdoc">Parameter Checking.</div><div class="ttdef"><b>Definition:</b> <a href="CFLVF_8cpp_source.html#l00074">CFLVF.cpp:74</a></div></div>
190
190
  <div class="ttc" id="aclassSVF_1_1AndersenWaveDiff_html_a48ff6fc4badc79ad3204ae9bd95cc540"><div class="ttname"><a href="classSVF_1_1AndersenWaveDiff.html#a48ff6fc4badc79ad3204ae9bd95cc540">SVF::AndersenWaveDiff::createAndersenWaveDiff</a></div><div class="ttdeci">static AndersenWaveDiff * createAndersenWaveDiff(SVFIR *_pag)</div><div class="ttdoc">Create an singleton instance directly instead of invoking llvm pass manager.</div><div class="ttdef"><b>Definition:</b> <a href="Andersen_8h_source.html#l00395">Andersen.h:395</a></div></div>
191
- <div class="ttc" id="aclassSVF_1_1Options_html_ad09017ae2e1010fbba5c086a4772750f"><div class="ttname"><a href="classSVF_1_1Options.html#ad09017ae2e1010fbba5c086a4772750f">SVF::Options::GrammarFilename</a></div><div class="ttdeci">static const Option&lt; std::string &gt; GrammarFilename</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00261">Options.h:261</a></div></div>
191
+ <div class="ttc" id="aclassSVF_1_1Options_html_ad09017ae2e1010fbba5c086a4772750f"><div class="ttname"><a href="classSVF_1_1Options.html#ad09017ae2e1010fbba5c086a4772750f">SVF::Options::GrammarFilename</a></div><div class="ttdeci">static const Option&lt; std::string &gt; GrammarFilename</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00262">Options.h:262</a></div></div>
192
192
  <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>
193
193
  <!-- start footer part -->
194
194
  <hr class="footer"/><address class="footer"><small>
@@ -942,7 +942,7 @@ $(function() {
942
942
  <div class="ttc" id="aclassSVF_1_1ConstraintGraph_html_a1e5a23fbd08cf4186775baffbd6a7934"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a1e5a23fbd08cf4186775baffbd6a7934">SVF::ConstraintGraph::addLoadCGEdge</a></div><div class="ttdeci">LoadCGEdge * addLoadCGEdge(NodeID src, NodeID dst)</div><div class="ttdoc">Add Load edge.</div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8cpp_source.html#l00256">ConsG.cpp:256</a></div></div>
943
943
  <div class="ttc" id="aclassSVF_1_1SVFValue_html_a4a0cfe3a8f37d33ffcdca3d66026dcc3"><div class="ttname"><a href="classSVF_1_1SVFValue.html#a4a0cfe3a8f37d33ffcdca3d66026dcc3">SVF::SVFValue::toString</a></div><div class="ttdeci">std::string toString() const</div><div class="ttdoc">Needs to be implemented by a SVF front end.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l01271">LLVMUtil.cpp:1271</a></div></div>
944
944
  <div class="ttc" id="astructSVF_1_1DOTGraphTraits_3_01ConstraintGraph_01_5_01_4_html_ad816997d240e758f7a2f1f6508048ef3"><div class="ttname"><a href="structSVF_1_1DOTGraphTraits_3_01ConstraintGraph_01_5_01_4.html#ad816997d240e758f7a2f1f6508048ef3">SVF::DOTGraphTraits&lt; ConstraintGraph * &gt;::DOTGraphTraits</a></div><div class="ttdeci">DOTGraphTraits(bool isSimple=false)</div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8cpp_source.html#l00709">ConsG.cpp:709</a></div></div>
945
- <div class="ttc" id="aclassSVF_1_1Options_html_adee65a3773fbb98532538c938230e1d3"><div class="ttname"><a href="classSVF_1_1Options.html#adee65a3773fbb98532538c938230e1d3">SVF::Options::ShowHiddenNode</a></div><div class="ttdeci">static const Option&lt; bool &gt; ShowHiddenNode</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00258">Options.h:258</a></div></div>
945
+ <div class="ttc" id="aclassSVF_1_1Options_html_adee65a3773fbb98532538c938230e1d3"><div class="ttname"><a href="classSVF_1_1Options.html#adee65a3773fbb98532538c938230e1d3">SVF::Options::ShowHiddenNode</a></div><div class="ttdeci">static const Option&lt; bool &gt; ShowHiddenNode</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00259">Options.h:259</a></div></div>
946
946
  <div class="ttc" id="aclassSVF_1_1GenericGraph_html_ac213302cf5c7cdf3b66f7b18649d0fbc"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#ac213302cf5c7cdf3b66f7b18649d0fbc">SVF::GenericGraph&lt; SVFVar, SVFStmt &gt;::iterator</a></div><div class="ttdeci">IDToNodeMapTy::iterator iterator</div><div class="ttdoc">Node Iterators.</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00359">GenericGraph.h:359</a></div></div>
947
947
  <div class="ttc" id="aclassSVF_1_1AddrCGEdge_html"><div class="ttname"><a href="classSVF_1_1AddrCGEdge.html">SVF::AddrCGEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="ConsGEdge_8h_source.html#l00093">ConsGEdge.h:93</a></div></div>
948
948
  <div class="ttc" id="aclassSVF_1_1Options_html_a25a3db9daa81a127a8dad86888adea6c"><div class="ttname"><a href="classSVF_1_1Options.html#a25a3db9daa81a127a8dad86888adea6c">SVF::Options::BriefConsCGDotGraph</a></div><div class="ttdeci">static const Option&lt; bool &gt; BriefConsCGDotGraph</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00240">Options.h:240</a></div></div>
@@ -73,6 +73,7 @@ $(function() {
73
73
  <div class="contents">
74
74
  <div class="textblock"><code>#include &quot;<a class="el" href="ExtAPI_8h_source.html">Util/ExtAPI.h</a>&quot;</code><br />
75
75
  <code>#include &quot;<a class="el" href="SVFUtil_8h_source.html">Util/SVFUtil.h</a>&quot;</code><br />
76
+ <code>#include &quot;<a class="el" href="Options_8h_source.html">Util/Options.h</a>&quot;</code><br />
76
77
  <code>#include &lt;sys/stat.h&gt;</code><br />
77
78
  </div>
78
79
  <p><a href="ExtAPI_8cpp_source.html">Go to the source code of this file.</a></p>
@@ -109,31 +110,32 @@ Functions</h2></td></tr>
109
110
  </table>
110
111
  </div><div class="memdoc">
111
112
 
112
- <p class="definition">Definition at line <a class="el" href="ExtAPI_8cpp_source.html#l00081">81</a> of file <a class="el" href="ExtAPI_8cpp_source.html">ExtAPI.cpp</a>.</p>
113
- <div class="fragment"><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;{</div>
114
- <div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> bcFilePath = <a class="code" href="ExtAPI_8cpp.html#a424940f91f234b23bcc633f12269f935">GetStdoutFromCommand</a>(path);</div>
115
- <div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="keywordflow">if</span> (path.compare(<span class="stringliteral">&quot;npm root&quot;</span>) == 0)</div>
116
- <div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; {</div>
117
- <div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="keywordtype">int</span> os_flag = 1;</div>
118
- <div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="comment">// SVF installed via npm needs to determine the type of operating</span></div>
119
- <div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="comment">// system, otherwise the extapi.bc path may not be found.</span></div>
120
- <div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;<span class="preprocessor">#ifdef linux</span></div>
121
- <div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="comment">// Linux os</span></div>
122
- <div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; os_flag = 0;</div>
123
- <div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; bcFilePath.append(<span class="stringliteral">&quot;/svf-lib/SVF-linux&quot;</span>);</div>
124
- <div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;<span class="preprocessor">#endif</span></div>
125
- <div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="comment">// Mac os</span></div>
126
- <div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <span class="keywordflow">if</span> (os_flag == 1)</div>
127
- <div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; {</div>
128
- <div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; bcFilePath.append(<span class="stringliteral">&quot;/svf-lib/SVF-osx&quot;</span>);</div>
129
- <div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; }</div>
130
- <div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; }</div>
131
- <div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; </div>
132
- <div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keywordflow">if</span> (bcFilePath.back() != <span class="charliteral">&#39;/&#39;</span>)</div>
133
- <div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; bcFilePath.push_back(<span class="charliteral">&#39;/&#39;</span>);</div>
134
- <div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; bcFilePath.append(<a class="code" href="ExtAPI_8h.html#a02f944ad8948fa28a15d67ab1252573b">EXTAPI_BC_PATH</a>);</div>
135
- <div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <span class="keywordflow">return</span> bcFilePath;</div>
136
- <div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;}</div>
113
+ <p class="definition">Definition at line <a class="el" href="ExtAPI_8cpp_source.html#l00089">89</a> of file <a class="el" href="ExtAPI_8cpp_source.html">ExtAPI.cpp</a>.</p>
114
+ <div class="fragment"><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;{</div>
115
+ <div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> bcFilePath = <span class="stringliteral">&quot;&quot;</span>;</div>
116
+ <div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <span class="keywordflow">if</span> (path.compare(<span class="stringliteral">&quot;SVF_DIR&quot;</span>) == 0)</div>
117
+ <div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; {</div>
118
+ <div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; bcFilePath = getenv(<span class="stringliteral">&quot;SVF_DIR&quot;</span>);</div>
119
+ <div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; }</div>
120
+ <div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (path.compare(<span class="stringliteral">&quot;npm root&quot;</span>) == 0)</div>
121
+ <div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; {</div>
122
+ <div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; bcFilePath = <a class="code" href="ExtAPI_8cpp.html#a424940f91f234b23bcc633f12269f935">GetStdoutFromCommand</a>(path);</div>
123
+ <div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <span class="comment">// SVF installed via npm needs to determine the type of operating</span></div>
124
+ <div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <span class="comment">// system, otherwise the extapi.bc path may not be found.</span></div>
125
+ <div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;<span class="preprocessor">#ifdef linux</span></div>
126
+ <div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <span class="comment">// Linux os</span></div>
127
+ <div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; bcFilePath.append(<span class="stringliteral">&quot;/svf-lib/SVF-linux&quot;</span>);</div>
128
+ <div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;<span class="preprocessor">#else</span></div>
129
+ <div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <span class="comment">// Mac os</span></div>
130
+ <div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; bcFilePath.append(<span class="stringliteral">&quot;/svf-lib/SVF-osx&quot;</span>);</div>
131
+ <div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;<span class="preprocessor">#endif</span></div>
132
+ <div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; }</div>
133
+ <div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; </div>
134
+ <div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <span class="keywordflow">if</span> (!bcFilePath.empty() &amp;&amp; bcFilePath.back() != <span class="charliteral">&#39;/&#39;</span>)</div>
135
+ <div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; bcFilePath.push_back(<span class="charliteral">&#39;/&#39;</span>);</div>
136
+ <div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; bcFilePath.append(BUILD_TYPE).append(<a class="code" href="ExtAPI_8h.html#a8983f9a86a5284dc50950222a06f1a11">DEFUALT_EXTAPI_BC_PATH</a>);</div>
137
+ <div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <span class="keywordflow">return</span> bcFilePath;</div>
138
+ <div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;}</div>
137
139
  </div><!-- fragment -->
138
140
  </div>
139
141
  </div>
@@ -161,37 +163,37 @@ Functions</h2></td></tr>
161
163
  </table>
162
164
  </div><div class="memdoc">
163
165
 
164
- <p class="definition">Definition at line <a class="el" href="ExtAPI_8cpp_source.html#l00057">57</a> of file <a class="el" href="ExtAPI_8cpp_source.html">ExtAPI.cpp</a>.</p>
165
- <div class="fragment"><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;{</div>
166
- <div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keywordtype">char</span> <a class="code" href="cJSON_8h.html#a503753140aa27b00f99a3501280b2746">buffer</a>[128];</div>
167
- <div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> result = <span class="stringliteral">&quot;&quot;</span>;</div>
168
- <div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="comment">// Open pipe to file</span></div>
169
- <div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; FILE* pipe = popen(command.c_str(), <span class="stringliteral">&quot;r&quot;</span>);</div>
170
- <div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="keywordflow">if</span> (!pipe)</div>
171
- <div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; {</div>
172
- <div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;popen failed!&quot;</span>;</div>
173
- <div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; }</div>
174
- <div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="comment">// read till end of process:</span></div>
175
- <div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keywordflow">while</span> (!feof(pipe))</div>
176
- <div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; {</div>
177
- <div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="comment">// use buffer to read and add to result</span></div>
178
- <div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="extapi_8c.html#a55c10fd7c7152a709388daa21827771c">fgets</a>(<a class="code" href="cJSON_8h.html#a503753140aa27b00f99a3501280b2746">buffer</a>, 128, pipe) != <a class="code" href="cJSON_8cpp.html#a1a05ede2ad100bf5de5dfa7ccdfa4397">NULL</a>)</div>
179
- <div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; result += <a class="code" href="cJSON_8h.html#a503753140aa27b00f99a3501280b2746">buffer</a>;</div>
180
- <div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; }</div>
181
- <div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; pclose(pipe);</div>
182
- <div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="comment">// remove &quot;\n&quot;</span></div>
183
- <div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; result.erase(remove(result.begin(), result.end(), <span class="charliteral">&#39;\n&#39;</span>), result.end());</div>
184
- <div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="keywordflow">return</span> result;</div>
185
- <div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;}</div>
166
+ <p class="definition">Definition at line <a class="el" href="ExtAPI_8cpp_source.html#l00065">65</a> of file <a class="el" href="ExtAPI_8cpp_source.html">ExtAPI.cpp</a>.</p>
167
+ <div class="fragment"><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;{</div>
168
+ <div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="keywordtype">char</span> <a class="code" href="cJSON_8h.html#a503753140aa27b00f99a3501280b2746">buffer</a>[128];</div>
169
+ <div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> result = <span class="stringliteral">&quot;&quot;</span>;</div>
170
+ <div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="comment">// Open pipe to file</span></div>
171
+ <div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; FILE* pipe = popen(command.c_str(), <span class="stringliteral">&quot;r&quot;</span>);</div>
172
+ <div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="keywordflow">if</span> (!pipe)</div>
173
+ <div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; {</div>
174
+ <div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;popen failed!&quot;</span>;</div>
175
+ <div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; }</div>
176
+ <div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="comment">// read till end of process:</span></div>
177
+ <div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="keywordflow">while</span> (!feof(pipe))</div>
178
+ <div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; {</div>
179
+ <div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="comment">// use buffer to read and add to result</span></div>
180
+ <div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="extapi_8c.html#a55c10fd7c7152a709388daa21827771c">fgets</a>(<a class="code" href="cJSON_8h.html#a503753140aa27b00f99a3501280b2746">buffer</a>, 128, pipe) != <a class="code" href="cJSON_8cpp.html#a1a05ede2ad100bf5de5dfa7ccdfa4397">NULL</a>)</div>
181
+ <div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; result += <a class="code" href="cJSON_8h.html#a503753140aa27b00f99a3501280b2746">buffer</a>;</div>
182
+ <div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; }</div>
183
+ <div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; pclose(pipe);</div>
184
+ <div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <span class="comment">// remove &quot;\n&quot;</span></div>
185
+ <div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; result.erase(remove(result.begin(), result.end(), <span class="charliteral">&#39;\n&#39;</span>), result.end());</div>
186
+ <div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <span class="keywordflow">return</span> result;</div>
187
+ <div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;}</div>
186
188
  </div><!-- fragment -->
187
189
  </div>
188
190
  </div>
189
191
  </div><!-- contents -->
190
192
  <div class="ttc" id="aextapi_8c_html_a55c10fd7c7152a709388daa21827771c"><div class="ttname"><a href="extapi_8c.html#a55c10fd7c7152a709388daa21827771c">fgets</a></div><div class="ttdeci">char * fgets(char *str, int n, void *stream)</div><div class="ttdef"><b>Definition:</b> <a href="extapi_8c_source.html#l00684">extapi.c:684</a></div></div>
191
- <div class="ttc" id="aExtAPI_8cpp_html_a424940f91f234b23bcc633f12269f935"><div class="ttname"><a href="ExtAPI_8cpp.html#a424940f91f234b23bcc633f12269f935">GetStdoutFromCommand</a></div><div class="ttdeci">static std::string GetStdoutFromCommand(const std::string &amp;command)</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8cpp_source.html#l00057">ExtAPI.cpp:57</a></div></div>
192
- <div class="ttc" id="aExtAPI_8h_html_a02f944ad8948fa28a15d67ab1252573b"><div class="ttname"><a href="ExtAPI_8h.html#a02f944ad8948fa28a15d67ab1252573b">EXTAPI_BC_PATH</a></div><div class="ttdeci">#define EXTAPI_BC_PATH</div><div class="ttdoc">For a more detailed explanation of how External APIs are handled in SVF, please refer to the SVF Wiki...</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8h_source.html#l00041">ExtAPI.h:41</a></div></div>
193
+ <div class="ttc" id="aExtAPI_8cpp_html_a424940f91f234b23bcc633f12269f935"><div class="ttname"><a href="ExtAPI_8cpp.html#a424940f91f234b23bcc633f12269f935">GetStdoutFromCommand</a></div><div class="ttdeci">static std::string GetStdoutFromCommand(const std::string &amp;command)</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8cpp_source.html#l00065">ExtAPI.cpp:65</a></div></div>
193
194
  <div class="ttc" id="acJSON_8h_html_a503753140aa27b00f99a3501280b2746"><div class="ttname"><a href="cJSON_8h.html#a503753140aa27b00f99a3501280b2746">buffer</a></div><div class="ttdeci">char * buffer</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8h_source.html#l00163">cJSON.h:163</a></div></div>
194
195
  <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>
196
+ <div class="ttc" id="aExtAPI_8h_html_a8983f9a86a5284dc50950222a06f1a11"><div class="ttname"><a href="ExtAPI_8h.html#a8983f9a86a5284dc50950222a06f1a11">DEFUALT_EXTAPI_BC_PATH</a></div><div class="ttdeci">#define DEFUALT_EXTAPI_BC_PATH</div><div class="ttdoc">For a more detailed explanation of how External APIs are handled in SVF, please refer to the SVF Wiki...</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8h_source.html#l00041">ExtAPI.h:41</a></div></div>
195
197
  <div class="ttc" id="acJSON_8cpp_html_a1a05ede2ad100bf5de5dfa7ccdfa4397"><div class="ttname"><a href="cJSON_8cpp.html#a1a05ede2ad100bf5de5dfa7ccdfa4397">NULL</a></div><div class="ttdeci">return NULL</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8cpp_source.html#l01173">cJSON.cpp:1173</a></div></div>
196
198
  <!-- start footer part -->
197
199
  <hr class="footer"/><address class="footer"><small>