svf-tools 1.0.834 → 1.0.835

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 (264) hide show
  1. package/CMakeLists.txt +24 -28
  2. package/SVF-doxygen/html/CFL_2CMakeLists_8txt.html +8 -8
  3. package/SVF-doxygen/html/CHGBuilder_8cpp_source.html +2 -2
  4. package/SVF-doxygen/html/CMakeLists_8txt.html +53 -0
  5. package/SVF-doxygen/html/DDA_2CMakeLists_8txt.html +8 -8
  6. package/SVF-doxygen/html/Example_2CMakeLists_8txt.html +8 -8
  7. package/SVF-doxygen/html/ExtAPI_8cpp.html +53 -52
  8. package/SVF-doxygen/html/ExtAPI_8cpp_source.html +231 -219
  9. package/SVF-doxygen/html/ExtAPI_8h.html +1 -27
  10. package/SVF-doxygen/html/ExtAPI_8h_source.html +71 -73
  11. package/SVF-doxygen/html/LLVM2SVF_2CMakeLists_8txt.html +8 -8
  12. package/SVF-doxygen/html/LLVMModule_8cpp_source.html +2 -2
  13. package/SVF-doxygen/html/LLVMModule_8h_source.html +2 -2
  14. package/SVF-doxygen/html/LLVMUtil_8cpp_source.html +2 -2
  15. package/SVF-doxygen/html/MTA_2CMakeLists_8txt.html +8 -8
  16. package/SVF-doxygen/html/SABER_2CMakeLists_8txt.html +8 -8
  17. package/SVF-doxygen/html/SVFFileSystem_8h.html +2 -2
  18. package/SVF-doxygen/html/SVFFileSystem_8h_source.html +6 -6
  19. package/SVF-doxygen/html/SVFModule_8cpp_source.html +1 -1
  20. package/SVF-doxygen/html/SVFType_8h.html +1 -1
  21. package/SVF-doxygen/html/SVFUtil_8h_source.html +10 -10
  22. package/SVF-doxygen/html/WPA_2CMakeLists_8txt.html +5 -5
  23. package/SVF-doxygen/html/classSVF_1_1CHGBuilder.html +2 -2
  24. package/SVF-doxygen/html/classSVF_1_1ExtAPI.html +141 -130
  25. package/SVF-doxygen/html/classSVF_1_1LLVMModuleSet.html +2 -2
  26. package/SVF-doxygen/html/classSVF_1_1ReaderPtrPool.html +3 -3
  27. package/SVF-doxygen/html/classSVF_1_1SVFIRReader.html +4 -4
  28. package/SVF-doxygen/html/classSVF_1_1SVFModule.html +1 -1
  29. package/SVF-doxygen/html/globals_a.html +6 -0
  30. package/SVF-doxygen/html/globals_d.html +0 -3
  31. package/SVF-doxygen/html/globals_defs.html +0 -3
  32. package/SVF-doxygen/html/globals_func_a.html +6 -0
  33. package/SVF-doxygen/html/globals_func_i.html +4 -8
  34. package/SVF-doxygen/html/globals_func_s.html +1 -1
  35. package/SVF-doxygen/html/globals_i.html +9 -11
  36. package/SVF-doxygen/html/globals_s.html +1 -1
  37. package/SVF-doxygen/html/namespaceSVF.html +3 -2
  38. package/SVF-doxygen/html/search/all_1.js +453 -451
  39. package/SVF-doxygen/html/search/all_10.js +324 -324
  40. package/SVF-doxygen/html/search/all_11.js +223 -223
  41. package/SVF-doxygen/html/search/all_12.js +553 -553
  42. package/SVF-doxygen/html/search/all_13.js +192 -192
  43. package/SVF-doxygen/html/search/all_14.js +67 -67
  44. package/SVF-doxygen/html/search/all_15.js +167 -167
  45. package/SVF-doxygen/html/search/all_16.js +63 -63
  46. package/SVF-doxygen/html/search/all_17.js +1 -1
  47. package/SVF-doxygen/html/search/all_18.js +1 -1
  48. package/SVF-doxygen/html/search/all_19.js +11 -11
  49. package/SVF-doxygen/html/search/all_1a.js +172 -172
  50. package/SVF-doxygen/html/search/all_2.js +171 -171
  51. package/SVF-doxygen/html/search/all_3.js +643 -643
  52. package/SVF-doxygen/html/search/all_4.js +235 -236
  53. package/SVF-doxygen/html/search/all_5.js +119 -119
  54. package/SVF-doxygen/html/search/all_6.js +226 -226
  55. package/SVF-doxygen/html/search/all_7.js +1046 -1046
  56. package/SVF-doxygen/html/search/all_8.js +198 -198
  57. package/SVF-doxygen/html/search/all_9.js +608 -607
  58. package/SVF-doxygen/html/search/all_a.js +46 -46
  59. package/SVF-doxygen/html/search/all_b.js +26 -26
  60. package/SVF-doxygen/html/search/all_c.js +115 -115
  61. package/SVF-doxygen/html/search/all_d.js +198 -198
  62. package/SVF-doxygen/html/search/all_e.js +207 -207
  63. package/SVF-doxygen/html/search/all_f.js +116 -116
  64. package/SVF-doxygen/html/search/classes_0.js +26 -26
  65. package/SVF-doxygen/html/search/classes_1.js +9 -9
  66. package/SVF-doxygen/html/search/classes_10.js +73 -73
  67. package/SVF-doxygen/html/search/classes_11.js +15 -15
  68. package/SVF-doxygen/html/search/classes_12.js +2 -2
  69. package/SVF-doxygen/html/search/classes_13.js +10 -10
  70. package/SVF-doxygen/html/search/classes_14.js +14 -14
  71. package/SVF-doxygen/html/search/classes_15.js +1 -1
  72. package/SVF-doxygen/html/search/classes_2.js +80 -80
  73. package/SVF-doxygen/html/search/classes_3.js +37 -37
  74. package/SVF-doxygen/html/search/classes_4.js +9 -9
  75. package/SVF-doxygen/html/search/classes_5.js +28 -28
  76. package/SVF-doxygen/html/search/classes_6.js +104 -104
  77. package/SVF-doxygen/html/search/classes_7.js +34 -34
  78. package/SVF-doxygen/html/search/classes_8.js +56 -56
  79. package/SVF-doxygen/html/search/classes_9.js +1 -1
  80. package/SVF-doxygen/html/search/classes_a.js +12 -12
  81. package/SVF-doxygen/html/search/classes_b.js +29 -29
  82. package/SVF-doxygen/html/search/classes_c.js +6 -6
  83. package/SVF-doxygen/html/search/classes_d.js +18 -18
  84. package/SVF-doxygen/html/search/classes_e.js +36 -36
  85. package/SVF-doxygen/html/search/classes_f.js +25 -25
  86. package/SVF-doxygen/html/search/defines_0.js +3 -3
  87. package/SVF-doxygen/html/search/defines_1.js +2 -2
  88. package/SVF-doxygen/html/search/defines_2.js +30 -30
  89. package/SVF-doxygen/html/search/defines_3.js +20 -21
  90. package/SVF-doxygen/html/search/defines_4.js +2 -2
  91. package/SVF-doxygen/html/search/defines_5.js +4 -4
  92. package/SVF-doxygen/html/search/defines_6.js +2 -2
  93. package/SVF-doxygen/html/search/defines_7.js +5 -5
  94. package/SVF-doxygen/html/search/defines_8.js +11 -11
  95. package/SVF-doxygen/html/search/defines_9.js +9 -9
  96. package/SVF-doxygen/html/search/defines_a.js +2 -2
  97. package/SVF-doxygen/html/search/defines_b.js +1 -1
  98. package/SVF-doxygen/html/search/defines_c.js +3 -3
  99. package/SVF-doxygen/html/search/defines_d.js +2 -2
  100. package/SVF-doxygen/html/search/defines_e.js +7 -7
  101. package/SVF-doxygen/html/search/defines_f.js +3 -3
  102. package/SVF-doxygen/html/search/enums_0.js +3 -3
  103. package/SVF-doxygen/html/search/enums_1.js +2 -2
  104. package/SVF-doxygen/html/search/enums_10.js +1 -1
  105. package/SVF-doxygen/html/search/enums_11.js +1 -1
  106. package/SVF-doxygen/html/search/enums_2.js +8 -8
  107. package/SVF-doxygen/html/search/enums_3.js +1 -1
  108. package/SVF-doxygen/html/search/enums_4.js +3 -3
  109. package/SVF-doxygen/html/search/enums_5.js +1 -1
  110. package/SVF-doxygen/html/search/enums_6.js +2 -2
  111. package/SVF-doxygen/html/search/enums_7.js +2 -2
  112. package/SVF-doxygen/html/search/enums_8.js +4 -4
  113. package/SVF-doxygen/html/search/enums_9.js +1 -1
  114. package/SVF-doxygen/html/search/enums_a.js +1 -1
  115. package/SVF-doxygen/html/search/enums_b.js +7 -7
  116. package/SVF-doxygen/html/search/enums_c.js +1 -1
  117. package/SVF-doxygen/html/search/enums_d.js +4 -4
  118. package/SVF-doxygen/html/search/enums_e.js +2 -2
  119. package/SVF-doxygen/html/search/enums_f.js +4 -4
  120. package/SVF-doxygen/html/search/enumvalues_0.js +14 -14
  121. package/SVF-doxygen/html/search/enumvalues_1.js +14 -14
  122. package/SVF-doxygen/html/search/enumvalues_10.js +35 -35
  123. package/SVF-doxygen/html/search/enumvalues_11.js +3 -3
  124. package/SVF-doxygen/html/search/enumvalues_12.js +10 -10
  125. package/SVF-doxygen/html/search/enumvalues_13.js +1 -1
  126. package/SVF-doxygen/html/search/enumvalues_14.js +1 -1
  127. package/SVF-doxygen/html/search/enumvalues_15.js +3 -3
  128. package/SVF-doxygen/html/search/enumvalues_2.js +36 -36
  129. package/SVF-doxygen/html/search/enumvalues_3.js +13 -13
  130. package/SVF-doxygen/html/search/enumvalues_4.js +2 -2
  131. package/SVF-doxygen/html/search/enumvalues_5.js +47 -47
  132. package/SVF-doxygen/html/search/enumvalues_6.js +6 -6
  133. package/SVF-doxygen/html/search/enumvalues_7.js +9 -9
  134. package/SVF-doxygen/html/search/enumvalues_8.js +23 -23
  135. package/SVF-doxygen/html/search/enumvalues_9.js +6 -6
  136. package/SVF-doxygen/html/search/enumvalues_a.js +15 -15
  137. package/SVF-doxygen/html/search/enumvalues_b.js +11 -11
  138. package/SVF-doxygen/html/search/enumvalues_c.js +5 -5
  139. package/SVF-doxygen/html/search/enumvalues_d.js +18 -18
  140. package/SVF-doxygen/html/search/enumvalues_e.js +9 -9
  141. package/SVF-doxygen/html/search/enumvalues_f.js +45 -45
  142. package/SVF-doxygen/html/search/files_0.js +13 -13
  143. package/SVF-doxygen/html/search/files_1.js +7 -7
  144. package/SVF-doxygen/html/search/files_10.js +8 -8
  145. package/SVF-doxygen/html/search/files_11.js +8 -8
  146. package/SVF-doxygen/html/search/files_12.js +2 -2
  147. package/SVF-doxygen/html/search/files_2.js +55 -55
  148. package/SVF-doxygen/html/search/files_3.js +14 -14
  149. package/SVF-doxygen/html/search/files_4.js +5 -5
  150. package/SVF-doxygen/html/search/files_5.js +13 -13
  151. package/SVF-doxygen/html/search/files_6.js +9 -9
  152. package/SVF-doxygen/html/search/files_7.js +14 -14
  153. package/SVF-doxygen/html/search/files_8.js +13 -13
  154. package/SVF-doxygen/html/search/files_9.js +18 -18
  155. package/SVF-doxygen/html/search/files_a.js +3 -3
  156. package/SVF-doxygen/html/search/files_b.js +2 -2
  157. package/SVF-doxygen/html/search/files_c.js +20 -20
  158. package/SVF-doxygen/html/search/files_d.js +4 -4
  159. package/SVF-doxygen/html/search/files_e.js +62 -62
  160. package/SVF-doxygen/html/search/files_f.js +8 -8
  161. package/SVF-doxygen/html/search/functions_0.js +13 -13
  162. package/SVF-doxygen/html/search/functions_1.js +362 -360
  163. package/SVF-doxygen/html/search/functions_10.js +140 -140
  164. package/SVF-doxygen/html/search/functions_11.js +139 -139
  165. package/SVF-doxygen/html/search/functions_12.js +288 -288
  166. package/SVF-doxygen/html/search/functions_13.js +59 -59
  167. package/SVF-doxygen/html/search/functions_14.js +39 -39
  168. package/SVF-doxygen/html/search/functions_15.js +71 -71
  169. package/SVF-doxygen/html/search/functions_16.js +32 -32
  170. package/SVF-doxygen/html/search/functions_17.js +3 -3
  171. package/SVF-doxygen/html/search/functions_18.js +172 -172
  172. package/SVF-doxygen/html/search/functions_2.js +89 -89
  173. package/SVF-doxygen/html/search/functions_3.js +258 -258
  174. package/SVF-doxygen/html/search/functions_4.js +78 -78
  175. package/SVF-doxygen/html/search/functions_5.js +53 -53
  176. package/SVF-doxygen/html/search/functions_6.js +60 -60
  177. package/SVF-doxygen/html/search/functions_7.js +855 -855
  178. package/SVF-doxygen/html/search/functions_8.js +149 -149
  179. package/SVF-doxygen/html/search/functions_9.js +424 -423
  180. package/SVF-doxygen/html/search/functions_a.js +30 -30
  181. package/SVF-doxygen/html/search/functions_b.js +2 -2
  182. package/SVF-doxygen/html/search/functions_c.js +25 -25
  183. package/SVF-doxygen/html/search/functions_d.js +79 -79
  184. package/SVF-doxygen/html/search/functions_e.js +35 -35
  185. package/SVF-doxygen/html/search/functions_f.js +56 -56
  186. package/SVF-doxygen/html/search/namespaces_0.js +1 -1
  187. package/SVF-doxygen/html/search/namespaces_1.js +7 -7
  188. package/SVF-doxygen/html/search/related_0.js +2 -2
  189. package/SVF-doxygen/html/search/related_1.js +2 -2
  190. package/SVF-doxygen/html/search/related_2.js +2 -2
  191. package/SVF-doxygen/html/search/related_3.js +2 -2
  192. package/SVF-doxygen/html/search/related_4.js +2 -2
  193. package/SVF-doxygen/html/search/related_5.js +1 -1
  194. package/SVF-doxygen/html/search/related_6.js +2 -2
  195. package/SVF-doxygen/html/search/related_7.js +4 -4
  196. package/SVF-doxygen/html/search/related_8.js +2 -2
  197. package/SVF-doxygen/html/search/related_9.js +4 -4
  198. package/SVF-doxygen/html/search/related_a.js +19 -19
  199. package/SVF-doxygen/html/search/related_b.js +4 -4
  200. package/SVF-doxygen/html/search/related_c.js +2 -2
  201. package/SVF-doxygen/html/search/related_d.js +12 -12
  202. package/SVF-doxygen/html/search/related_e.js +2 -2
  203. package/SVF-doxygen/html/search/related_f.js +2 -2
  204. package/SVF-doxygen/html/search/typedefs_0.js +19 -19
  205. package/SVF-doxygen/html/search/typedefs_1.js +26 -26
  206. package/SVF-doxygen/html/search/typedefs_10.js +61 -61
  207. package/SVF-doxygen/html/search/typedefs_11.js +13 -13
  208. package/SVF-doxygen/html/search/typedefs_12.js +11 -11
  209. package/SVF-doxygen/html/search/typedefs_13.js +33 -33
  210. package/SVF-doxygen/html/search/typedefs_14.js +8 -8
  211. package/SVF-doxygen/html/search/typedefs_2.js +129 -129
  212. package/SVF-doxygen/html/search/typedefs_3.js +39 -39
  213. package/SVF-doxygen/html/search/typedefs_4.js +17 -17
  214. package/SVF-doxygen/html/search/typedefs_5.js +41 -41
  215. package/SVF-doxygen/html/search/typedefs_6.js +56 -56
  216. package/SVF-doxygen/html/search/typedefs_7.js +44 -44
  217. package/SVF-doxygen/html/search/typedefs_8.js +1 -1
  218. package/SVF-doxygen/html/search/typedefs_9.js +6 -6
  219. package/SVF-doxygen/html/search/typedefs_a.js +29 -29
  220. package/SVF-doxygen/html/search/typedefs_b.js +29 -29
  221. package/SVF-doxygen/html/search/typedefs_c.js +41 -41
  222. package/SVF-doxygen/html/search/typedefs_d.js +14 -14
  223. package/SVF-doxygen/html/search/typedefs_e.js +52 -52
  224. package/SVF-doxygen/html/search/typedefs_f.js +14 -14
  225. package/SVF-doxygen/html/search/variables_0.js +151 -151
  226. package/SVF-doxygen/html/search/variables_1.js +75 -75
  227. package/SVF-doxygen/html/search/variables_10.js +97 -97
  228. package/SVF-doxygen/html/search/variables_11.js +44 -44
  229. package/SVF-doxygen/html/search/variables_12.js +92 -92
  230. package/SVF-doxygen/html/search/variables_13.js +76 -76
  231. package/SVF-doxygen/html/search/variables_14.js +14 -14
  232. package/SVF-doxygen/html/search/variables_15.js +48 -48
  233. package/SVF-doxygen/html/search/variables_16.js +9 -9
  234. package/SVF-doxygen/html/search/variables_17.js +1 -1
  235. package/SVF-doxygen/html/search/variables_18.js +2 -2
  236. package/SVF-doxygen/html/search/variables_2.js +38 -38
  237. package/SVF-doxygen/html/search/variables_3.js +142 -142
  238. package/SVF-doxygen/html/search/variables_4.js +55 -55
  239. package/SVF-doxygen/html/search/variables_5.js +37 -37
  240. package/SVF-doxygen/html/search/variables_6.js +66 -66
  241. package/SVF-doxygen/html/search/variables_7.js +34 -34
  242. package/SVF-doxygen/html/search/variables_8.js +7 -7
  243. package/SVF-doxygen/html/search/variables_9.js +78 -78
  244. package/SVF-doxygen/html/search/variables_a.js +4 -4
  245. package/SVF-doxygen/html/search/variables_b.js +10 -10
  246. package/SVF-doxygen/html/search/variables_c.js +45 -45
  247. package/SVF-doxygen/html/search/variables_d.js +56 -56
  248. package/SVF-doxygen/html/search/variables_e.js +123 -123
  249. package/SVF-doxygen/html/search/variables_f.js +30 -30
  250. package/build.sh +4 -1
  251. package/package.json +1 -1
  252. package/setup.sh +9 -3
  253. package/svf/CMakeLists.txt +16 -2
  254. package/svf/include/Util/ExtAPI.h +0 -2
  255. package/svf/lib/Util/ExtAPI.cpp +29 -16
  256. package/svf-llvm/CMakeLists.txt +106 -43
  257. package/svf-llvm/tools/CFL/CMakeLists.txt +2 -10
  258. package/svf-llvm/tools/CMakeLists.txt +15 -16
  259. package/svf-llvm/tools/DDA/CMakeLists.txt +2 -10
  260. package/svf-llvm/tools/Example/CMakeLists.txt +2 -10
  261. package/svf-llvm/tools/LLVM2SVF/CMakeLists.txt +2 -10
  262. package/svf-llvm/tools/MTA/CMakeLists.txt +2 -12
  263. package/svf-llvm/tools/SABER/CMakeLists.txt +2 -10
  264. package/svf-llvm/tools/WPA/CMakeLists.txt +2 -10
package/CMakeLists.txt CHANGED
@@ -2,21 +2,17 @@ cmake_minimum_required(VERSION 3.13.4)
2
2
 
3
3
  project("SVF")
4
4
 
5
- configure_file(${PROJECT_SOURCE_DIR}/.config.in
6
- ${PROJECT_BINARY_DIR}/include/Util/config.h)
5
+ message(STATUS "Using CMake with generator: ${CMAKE_GENERATOR}")
7
6
 
8
- # We need to match the build environment for LLVM: In particular, we need C++14
9
- # and the -fno-rtti flag
10
- set(CMAKE_CXX_STANDARD 14)
11
- set(CMAKE_CXX_STANDARD_REQUIRED ON)
12
- # add -std=gnu++14
13
- set(CMAKE_CXX_EXTENSIONS ON)
14
-
15
- add_compile_options("-fno-rtti")
16
- add_compile_options("-fno-exceptions")
7
+ configure_file(${PROJECT_SOURCE_DIR}/.config.in ${PROJECT_BINARY_DIR}/include/Util/config.h)
17
8
 
18
9
  # Treat compiler warnings as errors
19
- add_compile_options("-Werror" "-Wall")
10
+ add_compile_options("-Werror" "-Wall" "-Wno-deprecated-declarations")
11
+
12
+ # Build SVF with C++ standard C++17
13
+ set(CMAKE_CXX_STANDARD 17)
14
+ set(CMAKE_CXX_EXTENSIONS ON)
15
+ set(CMAKE_CXX_STANDARD_REQUIRED ON)
20
16
 
21
17
  # Keep assertions enabled if requested
22
18
  option(SVF_ENABLE_ASSERTIONS "Always enable assertions")
@@ -80,20 +76,20 @@ endif()
80
76
  add_subdirectory(svf)
81
77
  add_subdirectory(svf-llvm)
82
78
 
79
+ # Whether RTTI/Exceptions are enabled currently depends on whether the LLVM instance used to build
80
+ # SVF had them enabled; since the LLVM instance is found in the "svf-llvm" subdirectory, it sets the
81
+ # below variables in its parent directory (i.e. for this CMakeLists.txt) so check them here
82
+ if(SVF_NO_RTTI)
83
+ add_compile_options("-fno-rtti")
84
+ endif()
85
+
86
+ if(SVF_NO_EH)
87
+ add_compile_options("-fno-exceptions")
88
+ endif()
89
+
90
+ # Install generated configuration header (see `configure_file()`) to top-level include dir of SVF
91
+ include(GNUInstallDirs)
83
92
  install(
84
- DIRECTORY ${PROJECT_SOURCE_DIR}/svf/include/
85
- ${PROJECT_SOURCE_DIR}/svf-llvm/include/
86
- COMPONENT devel
87
- DESTINATION include/svf
88
- FILES_MATCHING
89
- PATTERN "**/*.h")
90
-
91
- # Compile extapi.c to extapi.bc
92
- find_path(LLVM_CLANG_DIR
93
- NAMES clang llvm
94
- HINTS ${LLVM_DIR} ENV LLVM_DIR
95
- PATH_SUFFIXES bin)
96
- add_custom_target(extapi_ir ALL
97
- COMMAND ${LLVM_CLANG_DIR}/clang -w -S -c -Xclang -disable-O0-optnone -fno-discard-value-names -emit-llvm ${PROJECT_SOURCE_DIR}/svf-llvm/lib/extapi.c -o ${PROJECT_BINARY_DIR}/svf-llvm/extapi.bc
98
- DEPENDS ${PROJECT_SOURCE_DIR}/svf-llvm/lib/extapi.c
99
- )
93
+ FILES ${PROJECT_BINARY_DIR}/include/Util/config.h
94
+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/svf/Util
95
+ )
@@ -70,28 +70,28 @@ $(function() {
70
70
  <table class="memberdecls">
71
71
  <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
72
72
  Functions</h2></td></tr>
73
- <tr class="memitem:af5e474e40792dbf4280f768705232f6c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="CFL_2CMakeLists_8txt.html#af5e474e40792dbf4280f768705232f6c">if</a> (DEFINED IN_SOURCE_BUILD) add_llvm_tool(cfl cfl.cpp) <a class="el" href="cJSON_8cpp.html#a0544c3fe466e421738dae463968b70ba">else</a>() add_executable(cfl cfl.cpp) target_link_libraries(cfl SvfLLVM $</td></tr>
74
- <tr class="separator:af5e474e40792dbf4280f768705232f6c"><td class="memSeparator" colspan="2">&#160;</td></tr>
73
+ <tr class="memitem:a2805f8077e1ba63166e6ed84c19be6dd"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="CFL_2CMakeLists_8txt.html#a2805f8077e1ba63166e6ed84c19be6dd">add_llvm_executable</a> (cfl cfl.cpp) target_link_libraries(cfl PUBLIC $</td></tr>
74
+ <tr class="separator:a2805f8077e1ba63166e6ed84c19be6dd"><td class="memSeparator" colspan="2">&#160;</td></tr>
75
75
  </table>
76
76
  <h2 class="groupheader">Function Documentation</h2>
77
- <a id="af5e474e40792dbf4280f768705232f6c"></a>
78
- <h2 class="memtitle"><span class="permalink"><a href="#af5e474e40792dbf4280f768705232f6c">&#9670;&nbsp;</a></span>if()</h2>
77
+ <a id="a2805f8077e1ba63166e6ed84c19be6dd"></a>
78
+ <h2 class="memtitle"><span class="permalink"><a href="#a2805f8077e1ba63166e6ed84c19be6dd">&#9670;&nbsp;</a></span>add_llvm_executable()</h2>
79
79
 
80
80
  <div class="memitem">
81
81
  <div class="memproto">
82
82
  <table class="memname">
83
83
  <tr>
84
- <td class="memname">if </td>
84
+ <td class="memname">add_llvm_executable </td>
85
85
  <td>(</td>
86
- <td class="paramtype">DEFINED&#160;</td>
87
- <td class="paramname"><em>IN_SOURCE_BUILD</em></td><td>)</td>
86
+ <td class="paramtype">cfl cfl.&#160;</td>
87
+ <td class="paramname"><em>cpp</em></td><td>)</td>
88
88
  <td></td>
89
89
  </tr>
90
90
  </table>
91
91
  </div><div class="memdoc">
92
92
 
93
93
  <p class="definition">Definition at line <a class="el" href="CFL_2CMakeLists_8txt_source.html#l00001">1</a> of file <a class="el" href="CFL_2CMakeLists_8txt_source.html">CMakeLists.txt</a>.</p>
94
- <div class="fragment"><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160; {llvm_libs})</div>
94
+ <div class="fragment"><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160; {llvm_libs} SvfLLVM)</div>
95
95
  </div><!-- fragment -->
96
96
  </div>
97
97
  </div>
@@ -688,7 +688,7 @@ $(function() {
688
688
  <div class="line"><a name="l00617"></a><span class="lineno"> 617</span>&#160; <span class="keyword">struct </span>DemangledName dname = <a class="code" href="namespaceSVF_1_1cppUtil.html#a745a2addadc136075d45c7fb8437af3e">demangle</a>(f-&gt;<a class="code" href="classSVF_1_1SVFValue.html#a2401b022638769f59f86ab424a189b6e">getName</a>());</div>
689
689
  <div class="line"><a name="l00618"></a><span class="lineno"> 618</span>&#160; fNameSet.insert(pair&lt;string, const SVFFunction*&gt;(dname.funcName, f));</div>
690
690
  <div class="line"><a name="l00619"></a><span class="lineno"> 619</span>&#160; }</div>
691
- <div class="line"><a name="l00620"></a><span class="lineno"> 620</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="WPA_2CMakeLists_8txt.html#acb857077b5bb0b1d50ed7b3864b3b6cf">set</a>&lt;pair&lt;string, const SVFFunction*&gt;&gt;::iterator it = fNameSet.begin(),</div>
691
+ <div class="line"><a name="l00620"></a><span class="lineno"> 620</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="WPA_2CMakeLists_8txt.html#a5b660868031b6dee85d01fea51ef09a5">set</a>&lt;pair&lt;string, const SVFFunction*&gt;&gt;::iterator it = fNameSet.begin(),</div>
692
692
  <div class="line"><a name="l00621"></a><span class="lineno"> 621</span>&#160; eit = fNameSet.end(); it != eit; ++it)</div>
693
693
  <div class="line"><a name="l00622"></a><span class="lineno"> 622</span>&#160; {</div>
694
694
  <div class="line"><a name="l00623"></a><span class="lineno"> 623</span>&#160; chg-&gt;virtualFunctionToIDMap[it-&gt;second] = chg-&gt;vfID++;</div>
@@ -799,6 +799,7 @@ $(function() {
799
799
  <div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a4f803756f0a73e8564d9544ce27be1c9"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a4f803756f0a73e8564d9544ce27be1c9">SVF::LLVMUtil::getVtblStruct</a></div><div class="ttdeci">const ConstantStruct * getVtblStruct(const GlobalValue *vtbl)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00963">LLVMUtil.cpp:963</a></div></div>
800
800
  <div class="ttc" id="anamespaceSVF_html_a1f4624771922dc8c2447ad7433588c73"><div class="ttname"><a href="namespaceSVF.html#a1f4624771922dc8c2447ad7433588c73">SVF::CallBase</a></div><div class="ttdeci">llvm::CallBase CallBase</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00144">BasicTypes.h:144</a></div></div>
801
801
  <div class="ttc" id="aclassSVF_1_1CHNode_html_aa72c4509da3bfd2a3c656da38fe36c81"><div class="ttname"><a href="classSVF_1_1CHNode.html#aa72c4509da3bfd2a3c656da38fe36c81">SVF::CHNode::setVTable</a></div><div class="ttdeci">void setVTable(const SVFGlobalValue *vtbl)</div><div class="ttdef"><b>Definition:</b> <a href="CHG_8h_source.html#l00189">CHG.h:189</a></div></div>
802
+ <div class="ttc" id="aWPA_2CMakeLists_8txt_html_a5b660868031b6dee85d01fea51ef09a5"><div class="ttname"><a href="WPA_2CMakeLists_8txt.html#a5b660868031b6dee85d01fea51ef09a5">set</a></div><div class="ttdeci">set(THREADS_PREFER_PTHREAD_FLAG ON) find_package(Threads REQUIRED) add_llvm_executable(wpa wpa.cpp) target_link_libraries(wpa PUBLIC $</div><div class="ttdef"><b>Definition:</b> <a href="WPA_2CMakeLists_8txt_source.html#l00001">CMakeLists.txt:1</a></div></div>
802
803
  <div class="ttc" id="anamespaceSVF_html_a5ae718cba37d8e34d2946530dc098c8e"><div class="ttname"><a href="namespaceSVF.html#a5ae718cba37d8e34d2946530dc098c8e">SVF::ConstantArray</a></div><div class="ttdeci">llvm::ConstantArray ConstantArray</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00121">BasicTypes.h:121</a></div></div>
803
804
  <div class="ttc" id="aclassSVF_1_1CHGBuilder_html_a65112fa6d1b2bc1c7e9c956ec9b91919"><div class="ttname"><a href="classSVF_1_1CHGBuilder.html#a65112fa6d1b2bc1c7e9c956ec9b91919">SVF::CHGBuilder::getInstancesAndDescendants</a></div><div class="ttdeci">const CHGraph::CHNodeSetTy &amp; getInstancesAndDescendants(const std::string &amp;className)</div><div class="ttdef"><b>Definition:</b> <a href="CHGBuilder_8cpp_source.html#l00295">CHGBuilder.cpp:295</a></div></div>
804
805
  <div class="ttc" id="aclassSVF_1_1CHNode_html_aa4af6538c9994ec54a7b82691f846a31"><div class="ttname"><a href="classSVF_1_1CHNode.html#aa4af6538c9994ec54a7b82691f846a31">SVF::CHNode::FuncVector</a></div><div class="ttdeci">std::vector&lt; const SVFFunction * &gt; FuncVector</div><div class="ttdef"><b>Definition:</b> <a href="CHG_8h_source.html#l00121">CHG.h:121</a></div></div>
@@ -839,7 +840,6 @@ $(function() {
839
840
  <div class="ttc" id="aclassSVF_1_1CHNode_html_a00343177422c8d84d707432d0c483438"><div class="ttname"><a href="classSVF_1_1CHNode.html#a00343177422c8d84d707432d0c483438">SVF::CHNode::setTemplate</a></div><div class="ttdeci">void setTemplate()</div><div class="ttdef"><b>Definition:</b> <a href="CHG_8h_source.html#l00156">CHG.h:156</a></div></div>
840
841
  <div class="ttc" id="aclassSVF_1_1CHGBuilder_html_a87170f2cf98c6094491b8fbafdebec14"><div class="ttname"><a href="classSVF_1_1CHGBuilder.html#a87170f2cf98c6094491b8fbafdebec14">SVF::CHGBuilder::addFuncToFuncVector</a></div><div class="ttdeci">void addFuncToFuncVector(CHNode::FuncVector &amp;v, const Function *f)</div><div class="ttdef"><b>Definition:</b> <a href="CHGBuilder_8cpp_source.html#l00693">CHGBuilder.cpp:693</a></div></div>
841
842
  <div class="ttc" id="anamespaceSVF_html_a7e230c0cba2e3a7c2e5a5f2ee7d88af9"><div class="ttname"><a href="namespaceSVF.html#a7e230c0cba2e3a7c2e5a5f2ee7d88af9">SVF::Constant</a></div><div class="ttdeci">llvm::Constant Constant</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00122">BasicTypes.h:122</a></div></div>
842
- <div class="ttc" id="aWPA_2CMakeLists_8txt_html_acb857077b5bb0b1d50ed7b3864b3b6cf"><div class="ttname"><a href="WPA_2CMakeLists_8txt.html#acb857077b5bb0b1d50ed7b3864b3b6cf">set</a></div><div class="ttdeci">set(THREADS_PREFER_PTHREAD_FLAG ON) find_package(Threads REQUIRED) if(DEFINED IN_SOURCE_BUILD) add_llvm_tool(wpa wpa.cpp) else() add_executable(wpa wpa.cpp) target_link_libraries(wpa SvfLLVM $</div><div class="ttdef"><b>Definition:</b> <a href="WPA_2CMakeLists_8txt_source.html#l00001">CMakeLists.txt:1</a></div></div>
843
843
  <div class="ttc" id="anamespaceSVF_1_1cppUtil_html_ae0f374d110eefcfcf4c196c85db6c0d2"><div class="ttname"><a href="namespaceSVF_1_1cppUtil.html#ae0f374d110eefcfcf4c196c85db6c0d2">SVF::cppUtil::getClassNameFromVtblObj</a></div><div class="ttdeci">std::string getClassNameFromVtblObj(const std::string &amp;vtblName)</div><div class="ttdef"><b>Definition:</b> <a href="CppUtil_8cpp_source.html#l00197">CppUtil.cpp:197</a></div></div>
844
844
  <div class="ttc" id="aclassSVF_1_1GenericNode_html_afc8b5f86d7795b6a0dfc0687d942d79b"><div class="ttname"><a href="classSVF_1_1GenericNode.html#afc8b5f86d7795b6a0dfc0687d942d79b">SVF::GenericNode::getInEdges</a></div><div class="ttdeci">const GEdgeSetTy &amp; getInEdges() const</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00197">GenericGraph.h:197</a></div></div>
845
845
  <div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_aa841a295ec803b6a1f2bd248f63f863f"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#aa841a295ec803b6a1f2bd248f63f863f">SVF::LLVMUtil::getClassNameOfThisPtr</a></div><div class="ttdeci">std::string getClassNameOfThisPtr(const CallBase *cs)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l01227">LLVMUtil.cpp:1227</a></div></div>
@@ -61,10 +61,63 @@ $(function() {
61
61
 
62
62
  </div><!-- top -->
63
63
  <div class="header">
64
+ <div class="summary">
65
+ <a href="#func-members">Functions</a> </div>
64
66
  <div class="headertitle">
65
67
  <div class="title">/home/runner/work/SVF/SVF/svf-llvm/tools/CMakeLists.txt File Reference</div> </div>
66
68
  </div><!--header-->
67
69
  <div class="contents">
70
+ <table class="memberdecls">
71
+ <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
72
+ Functions</h2></td></tr>
73
+ <tr class="memitem:ab0c0fec5e777861a934894bc00fc585c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="CMakeLists_8txt.html#ab0c0fec5e777861a934894bc00fc585c">add_subdirectory</a> (SABER) add_subdirectory(WPA) add_subdirectory(Example) add_subdirectory(DDA) add_subdirectory(MTA) add_subdirectory(CFL) add_subdirectory(LLVM2SVF) set_target_properties(cfl dvf svf-ex llvm2svf mta saber wpa PROPERTIES RUNTIME_OUTPUT_DIRECTORY $</td></tr>
74
+ <tr class="separator:ab0c0fec5e777861a934894bc00fc585c"><td class="memSeparator" colspan="2">&#160;</td></tr>
75
+ <tr class="memitem:a9f6d70f6197845162ae5fd12f33f094a"><td class="memItemLeft" align="right" valign="top">bin&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="CMakeLists_8txt.html#a9f6d70f6197845162ae5fd12f33f094a">include</a> (GNUInstallDirs) install(TARGETS cfl dvf svf-ex llvm2svf mta saber wpa RUNTIME DESTINATION $</td></tr>
76
+ <tr class="separator:a9f6d70f6197845162ae5fd12f33f094a"><td class="memSeparator" colspan="2">&#160;</td></tr>
77
+ </table>
78
+ <h2 class="groupheader">Function Documentation</h2>
79
+ <a id="ab0c0fec5e777861a934894bc00fc585c"></a>
80
+ <h2 class="memtitle"><span class="permalink"><a href="#ab0c0fec5e777861a934894bc00fc585c">&#9670;&nbsp;</a></span>add_subdirectory()</h2>
81
+
82
+ <div class="memitem">
83
+ <div class="memproto">
84
+ <table class="memname">
85
+ <tr>
86
+ <td class="memname">add_subdirectory </td>
87
+ <td>(</td>
88
+ <td class="paramtype">SABER&#160;</td>
89
+ <td class="paramname"></td><td>)</td>
90
+ <td></td>
91
+ </tr>
92
+ </table>
93
+ </div><div class="memdoc">
94
+
95
+ <p class="definition">Definition at line <a class="el" href="CMakeLists_8txt_source.html#l00001">1</a> of file <a class="el" href="CMakeLists_8txt_source.html">CMakeLists.txt</a>.</p>
96
+ <div class="fragment"><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160; {CMAKE_BINARY_DIR}/bin</div>
97
+ </div><!-- fragment -->
98
+ </div>
99
+ </div>
100
+ <a id="a9f6d70f6197845162ae5fd12f33f094a"></a>
101
+ <h2 class="memtitle"><span class="permalink"><a href="#a9f6d70f6197845162ae5fd12f33f094a">&#9670;&nbsp;</a></span>include()</h2>
102
+
103
+ <div class="memitem">
104
+ <div class="memproto">
105
+ <table class="memname">
106
+ <tr>
107
+ <td class="memname">bin include </td>
108
+ <td>(</td>
109
+ <td class="paramtype">GNUInstallDirs&#160;</td>
110
+ <td class="paramname"></td><td>)</td>
111
+ <td></td>
112
+ </tr>
113
+ </table>
114
+ </div><div class="memdoc">
115
+
116
+ <p class="definition">Definition at line <a class="el" href="CMakeLists_8txt_source.html#l00016">16</a> of file <a class="el" href="CMakeLists_8txt_source.html">CMakeLists.txt</a>.</p>
117
+ <div class="fragment"><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; {CMAKE_INSTALL_BINDIR}</div>
118
+ </div><!-- fragment -->
119
+ </div>
120
+ </div>
68
121
  </div><!-- contents -->
69
122
  <!-- start footer part -->
70
123
  <hr class="footer"/><address class="footer"><small>
@@ -70,28 +70,28 @@ $(function() {
70
70
  <table class="memberdecls">
71
71
  <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
72
72
  Functions</h2></td></tr>
73
- <tr class="memitem:af5e0025e6881a606ace3e42d5e4455fe"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="DDA_2CMakeLists_8txt.html#af5e0025e6881a606ace3e42d5e4455fe">if</a> (DEFINED IN_SOURCE_BUILD) add_llvm_tool(dvf dda.cpp) <a class="el" href="cJSON_8cpp.html#a0544c3fe466e421738dae463968b70ba">else</a>() add_executable(dvf dda.cpp) target_link_libraries(dvf SvfLLVM $</td></tr>
74
- <tr class="separator:af5e0025e6881a606ace3e42d5e4455fe"><td class="memSeparator" colspan="2">&#160;</td></tr>
73
+ <tr class="memitem:a94c6e5ccd94f696989f0410032b427c2"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="DDA_2CMakeLists_8txt.html#a94c6e5ccd94f696989f0410032b427c2">add_llvm_executable</a> (dvf dda.cpp) target_link_libraries(dvf PUBLIC $</td></tr>
74
+ <tr class="separator:a94c6e5ccd94f696989f0410032b427c2"><td class="memSeparator" colspan="2">&#160;</td></tr>
75
75
  </table>
76
76
  <h2 class="groupheader">Function Documentation</h2>
77
- <a id="af5e0025e6881a606ace3e42d5e4455fe"></a>
78
- <h2 class="memtitle"><span class="permalink"><a href="#af5e0025e6881a606ace3e42d5e4455fe">&#9670;&nbsp;</a></span>if()</h2>
77
+ <a id="a94c6e5ccd94f696989f0410032b427c2"></a>
78
+ <h2 class="memtitle"><span class="permalink"><a href="#a94c6e5ccd94f696989f0410032b427c2">&#9670;&nbsp;</a></span>add_llvm_executable()</h2>
79
79
 
80
80
  <div class="memitem">
81
81
  <div class="memproto">
82
82
  <table class="memname">
83
83
  <tr>
84
- <td class="memname">if </td>
84
+ <td class="memname">add_llvm_executable </td>
85
85
  <td>(</td>
86
- <td class="paramtype">DEFINED&#160;</td>
87
- <td class="paramname"><em>IN_SOURCE_BUILD</em></td><td>)</td>
86
+ <td class="paramtype">dvf dda.&#160;</td>
87
+ <td class="paramname"><em>cpp</em></td><td>)</td>
88
88
  <td></td>
89
89
  </tr>
90
90
  </table>
91
91
  </div><div class="memdoc">
92
92
 
93
93
  <p class="definition">Definition at line <a class="el" href="DDA_2CMakeLists_8txt_source.html#l00001">1</a> of file <a class="el" href="DDA_2CMakeLists_8txt_source.html">CMakeLists.txt</a>.</p>
94
- <div class="fragment"><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160; {llvm_libs})</div>
94
+ <div class="fragment"><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160; {llvm_libs} SvfLLVM)</div>
95
95
  </div><!-- fragment -->
96
96
  </div>
97
97
  </div>
@@ -70,28 +70,28 @@ $(function() {
70
70
  <table class="memberdecls">
71
71
  <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
72
72
  Functions</h2></td></tr>
73
- <tr class="memitem:ac929bf2e3f9688be1b4f278d128b1b6e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="Example_2CMakeLists_8txt.html#ac929bf2e3f9688be1b4f278d128b1b6e">if</a> (DEFINED IN_SOURCE_BUILD) add_llvm_tool(svf-ex svf-ex.cpp) <a class="el" href="cJSON_8cpp.html#a0544c3fe466e421738dae463968b70ba">else</a>() add_executable(svf-ex svf-ex.cpp) target_link_libraries(svf-ex SvfLLVM $</td></tr>
74
- <tr class="separator:ac929bf2e3f9688be1b4f278d128b1b6e"><td class="memSeparator" colspan="2">&#160;</td></tr>
73
+ <tr class="memitem:a3bd7bd92c11dfa913ca78850d67eb983"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="Example_2CMakeLists_8txt.html#a3bd7bd92c11dfa913ca78850d67eb983">add_llvm_executable</a> (svf-ex svf-ex.cpp) target_link_libraries(svf-ex PUBLIC $</td></tr>
74
+ <tr class="separator:a3bd7bd92c11dfa913ca78850d67eb983"><td class="memSeparator" colspan="2">&#160;</td></tr>
75
75
  </table>
76
76
  <h2 class="groupheader">Function Documentation</h2>
77
- <a id="ac929bf2e3f9688be1b4f278d128b1b6e"></a>
78
- <h2 class="memtitle"><span class="permalink"><a href="#ac929bf2e3f9688be1b4f278d128b1b6e">&#9670;&nbsp;</a></span>if()</h2>
77
+ <a id="a3bd7bd92c11dfa913ca78850d67eb983"></a>
78
+ <h2 class="memtitle"><span class="permalink"><a href="#a3bd7bd92c11dfa913ca78850d67eb983">&#9670;&nbsp;</a></span>add_llvm_executable()</h2>
79
79
 
80
80
  <div class="memitem">
81
81
  <div class="memproto">
82
82
  <table class="memname">
83
83
  <tr>
84
- <td class="memname">if </td>
84
+ <td class="memname">add_llvm_executable </td>
85
85
  <td>(</td>
86
- <td class="paramtype">DEFINED&#160;</td>
87
- <td class="paramname"><em>IN_SOURCE_BUILD</em></td><td>)</td>
86
+ <td class="paramtype">svf-ex svf-ex.&#160;</td>
87
+ <td class="paramname"><em>cpp</em></td><td>)</td>
88
88
  <td></td>
89
89
  </tr>
90
90
  </table>
91
91
  </div><div class="memdoc">
92
92
 
93
93
  <p class="definition">Definition at line <a class="el" href="Example_2CMakeLists_8txt_source.html#l00001">1</a> of file <a class="el" href="Example_2CMakeLists_8txt_source.html">CMakeLists.txt</a>.</p>
94
- <div class="fragment"><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160; {llvm_libs})</div>
94
+ <div class="fragment"><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160; {llvm_libs} SvfLLVM)</div>
95
95
  </div><!-- fragment -->
96
96
  </div>
97
97
  </div>
@@ -74,6 +74,8 @@ $(function() {
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
76
  <code>#include &quot;<a class="el" href="Options_8h_source.html">Util/Options.h</a>&quot;</code><br />
77
+ <code>#include &quot;Util/config.h&quot;</code><br />
78
+ <code>#include &lt;ostream&gt;</code><br />
77
79
  <code>#include &lt;sys/stat.h&gt;</code><br />
78
80
  </div>
79
81
  <p><a href="ExtAPI_8cpp_source.html">Go to the source code of this file.</a></p>
@@ -110,34 +112,34 @@ Functions</h2></td></tr>
110
112
  </table>
111
113
  </div><div class="memdoc">
112
114
 
113
- <p class="definition">Definition at line <a class="el" href="ExtAPI_8cpp_source.html#l00095">95</a> of file <a class="el" href="ExtAPI_8cpp_source.html">ExtAPI.cpp</a>.</p>
114
- <div class="fragment"><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;{</div>
115
- <div class="line"><a name="l00097"></a><span class="lineno"> 97</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="l00098"></a><span class="lineno"> 98</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="l00099"></a><span class="lineno"> 99</span>&#160; {</div>
118
- <div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <span class="keywordtype">char</span> <span class="keyword">const</span>* svfdir = getenv(<span class="stringliteral">&quot;SVF_DIR&quot;</span>);</div>
119
- <div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keywordflow">if</span> (svfdir)</div>
120
- <div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; bcFilePath = svfdir;</div>
121
- <div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; }</div>
122
- <div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (path.compare(<span class="stringliteral">&quot;npm root&quot;</span>) == 0)</div>
123
- <div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; {</div>
124
- <div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; bcFilePath = <a class="code" href="ExtAPI_8cpp.html#a424940f91f234b23bcc633f12269f935">GetStdoutFromCommand</a>(path);</div>
125
- <div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="comment">// SVF installed via npm needs to determine the type of operating</span></div>
126
- <div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <span class="comment">// system, otherwise the extapi.bc path may not be found.</span></div>
127
- <div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;<span class="preprocessor">#ifdef linux</span></div>
128
- <div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <span class="comment">// Linux os</span></div>
129
- <div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; bcFilePath.append(<span class="stringliteral">&quot;/svf-lib/SVF-linux&quot;</span>);</div>
130
- <div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;<span class="preprocessor">#else</span></div>
131
- <div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <span class="comment">// Mac os</span></div>
132
- <div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; bcFilePath.append(<span class="stringliteral">&quot;/svf-lib/SVF-osx&quot;</span>);</div>
133
- <div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;<span class="preprocessor">#endif</span></div>
134
- <div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; }</div>
135
- <div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; </div>
136
- <div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="keywordflow">if</span> (!bcFilePath.empty() &amp;&amp; bcFilePath.back() != <span class="charliteral">&#39;/&#39;</span>)</div>
137
- <div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; bcFilePath.push_back(<span class="charliteral">&#39;/&#39;</span>);</div>
138
- <div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; bcFilePath.append(BUILD_TYPE).append(<a class="code" href="ExtAPI_8h.html#a3be52a096fe407bb55141117f1cf4c75">DEFAULT_EXTAPI_BC_PATH</a>);</div>
139
- <div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="keywordflow">return</span> bcFilePath;</div>
140
- <div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;}</div>
115
+ <p class="definition">Definition at line <a class="el" href="ExtAPI_8cpp_source.html#l00097">97</a> of file <a class="el" href="ExtAPI_8cpp_source.html">ExtAPI.cpp</a>.</p>
116
+ <div class="fragment"><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;{</div>
117
+ <div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> bcFilePath = <span class="stringliteral">&quot;&quot;</span>;</div>
118
+ <div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <span class="keywordflow">if</span> (path.compare(<span class="stringliteral">&quot;SVF_DIR&quot;</span>) == 0)</div>
119
+ <div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; {</div>
120
+ <div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <span class="keywordtype">char</span> <span class="keyword">const</span>* svfdir = getenv(<span class="stringliteral">&quot;SVF_DIR&quot;</span>);</div>
121
+ <div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <span class="keywordflow">if</span> (svfdir)</div>
122
+ <div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; bcFilePath = svfdir;</div>
123
+ <div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; }</div>
124
+ <div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (path.compare(<span class="stringliteral">&quot;npm root&quot;</span>) == 0)</div>
125
+ <div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; {</div>
126
+ <div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; bcFilePath = <a class="code" href="ExtAPI_8cpp.html#a424940f91f234b23bcc633f12269f935">GetStdoutFromCommand</a>(path);</div>
127
+ <div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="comment">// SVF installed via npm needs to determine the type of operating</span></div>
128
+ <div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <span class="comment">// system, otherwise the extapi.bc path may not be found.</span></div>
129
+ <div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;<span class="preprocessor">#ifdef linux</span></div>
130
+ <div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="comment">// Linux os</span></div>
131
+ <div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; bcFilePath.append(<span class="stringliteral">&quot;/svf-lib/SVF-linux&quot;</span>);</div>
132
+ <div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;<span class="preprocessor">#else</span></div>
133
+ <div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <span class="comment">// Mac os</span></div>
134
+ <div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; bcFilePath.append(<span class="stringliteral">&quot;/svf-lib/SVF-osx&quot;</span>);</div>
135
+ <div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;<span class="preprocessor">#endif</span></div>
136
+ <div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; }</div>
137
+ <div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; </div>
138
+ <div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <span class="keywordflow">if</span> (!bcFilePath.empty() &amp;&amp; bcFilePath.back() != <span class="charliteral">&#39;/&#39;</span>)</div>
139
+ <div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; bcFilePath.push_back(<span class="charliteral">&#39;/&#39;</span>);</div>
140
+ <div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; bcFilePath.append(SVF_BUILD_TYPE <span class="stringliteral">&quot;-build&quot;</span>).append(<span class="stringliteral">&quot;/svf-llvm/extapi.bc&quot;</span>);</div>
141
+ <div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="keywordflow">return</span> bcFilePath;</div>
142
+ <div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;}</div>
141
143
  </div><!-- fragment -->
142
144
  </div>
143
145
  </div>
@@ -165,38 +167,37 @@ Functions</h2></td></tr>
165
167
  </table>
166
168
  </div><div class="memdoc">
167
169
 
168
- <p class="definition">Definition at line <a class="el" href="ExtAPI_8cpp_source.html#l00071">71</a> of file <a class="el" href="ExtAPI_8cpp_source.html">ExtAPI.cpp</a>.</p>
169
- <div class="fragment"><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;{</div>
170
- <div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keywordtype">char</span> <a class="code" href="cJSON_8h.html#a503753140aa27b00f99a3501280b2746">buffer</a>[128];</div>
171
- <div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> result = <span class="stringliteral">&quot;&quot;</span>;</div>
172
- <div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="comment">// Open pipe to file</span></div>
173
- <div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; FILE* pipe = popen(command.c_str(), <span class="stringliteral">&quot;r&quot;</span>);</div>
174
- <div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="keywordflow">if</span> (!pipe)</div>
175
- <div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; {</div>
176
- <div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;popen failed!&quot;</span>;</div>
177
- <div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; }</div>
178
- <div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="comment">// read till end of process:</span></div>
179
- <div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="keywordflow">while</span> (!feof(pipe))</div>
180
- <div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; {</div>
181
- <div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="comment">// use buffer to read and add to result</span></div>
182
- <div class="line"><a name="l00085"></a><span class="lineno"> 85</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>
183
- <div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; result += <a class="code" href="cJSON_8h.html#a503753140aa27b00f99a3501280b2746">buffer</a>;</div>
184
- <div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; }</div>
185
- <div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; pclose(pipe);</div>
186
- <div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <span class="comment">// remove &quot;\n&quot;</span></div>
187
- <div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; result.erase(remove(result.begin(), result.end(), <span class="charliteral">&#39;\n&#39;</span>), result.end());</div>
188
- <div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="keywordflow">return</span> result;</div>
189
- <div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;}</div>
170
+ <p class="definition">Definition at line <a class="el" href="ExtAPI_8cpp_source.html#l00073">73</a> of file <a class="el" href="ExtAPI_8cpp_source.html">ExtAPI.cpp</a>.</p>
171
+ <div class="fragment"><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;{</div>
172
+ <div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="keywordtype">char</span> <a class="code" href="cJSON_8h.html#a503753140aa27b00f99a3501280b2746">buffer</a>[128];</div>
173
+ <div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> result = <span class="stringliteral">&quot;&quot;</span>;</div>
174
+ <div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="comment">// Open pipe to file</span></div>
175
+ <div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; FILE* pipe = popen(command.c_str(), <span class="stringliteral">&quot;r&quot;</span>);</div>
176
+ <div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keywordflow">if</span> (!pipe)</div>
177
+ <div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; {</div>
178
+ <div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;popen failed!&quot;</span>;</div>
179
+ <div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; }</div>
180
+ <div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <span class="comment">// read till end of process:</span></div>
181
+ <div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="keywordflow">while</span> (!feof(pipe))</div>
182
+ <div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; {</div>
183
+ <div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="comment">// use buffer to read and add to result</span></div>
184
+ <div class="line"><a name="l00087"></a><span class="lineno"> 87</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>
185
+ <div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; result += <a class="code" href="cJSON_8h.html#a503753140aa27b00f99a3501280b2746">buffer</a>;</div>
186
+ <div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; }</div>
187
+ <div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; pclose(pipe);</div>
188
+ <div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="comment">// remove &quot;\n&quot;</span></div>
189
+ <div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; result.erase(remove(result.begin(), result.end(), <span class="charliteral">&#39;\n&#39;</span>), result.end());</div>
190
+ <div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="keywordflow">return</span> result;</div>
191
+ <div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;}</div>
190
192
  </div><!-- fragment -->
191
193
  </div>
192
194
  </div>
193
195
  </div><!-- contents -->
194
196
  <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#l00729">extapi.c:729</a></div></div>
195
- <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#l00071">ExtAPI.cpp:71</a></div></div>
197
+ <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#l00073">ExtAPI.cpp:73</a></div></div>
196
198
  <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>
197
199
  <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>
198
200
  <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>
199
- <div class="ttc" id="aExtAPI_8h_html_a3be52a096fe407bb55141117f1cf4c75"><div class="ttname"><a href="ExtAPI_8h.html#a3be52a096fe407bb55141117f1cf4c75">DEFAULT_EXTAPI_BC_PATH</a></div><div class="ttdeci">#define DEFAULT_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>
200
201
  <!-- start footer part -->
201
202
  <hr class="footer"/><address class="footer"><small>
202
203
  Generated by &#160;<a href="http://www.doxygen.org/index.html">