svf-tools 1.0.833 → 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 (267) hide show
  1. package/CMakeLists.txt +24 -28
  2. package/SVF-doxygen/html/AndersenPWC_8h_source.html +1 -1
  3. package/SVF-doxygen/html/CFL_2CMakeLists_8txt.html +8 -8
  4. package/SVF-doxygen/html/CHGBuilder_8cpp_source.html +2 -2
  5. package/SVF-doxygen/html/CMakeLists_8txt.html +53 -0
  6. package/SVF-doxygen/html/DDA_2CMakeLists_8txt.html +8 -8
  7. package/SVF-doxygen/html/Example_2CMakeLists_8txt.html +8 -8
  8. package/SVF-doxygen/html/ExtAPI_8cpp.html +53 -52
  9. package/SVF-doxygen/html/ExtAPI_8cpp_source.html +231 -219
  10. package/SVF-doxygen/html/ExtAPI_8h.html +1 -27
  11. package/SVF-doxygen/html/ExtAPI_8h_source.html +71 -73
  12. package/SVF-doxygen/html/LLVM2SVF_2CMakeLists_8txt.html +8 -8
  13. package/SVF-doxygen/html/LLVMModule_8cpp_source.html +2 -2
  14. package/SVF-doxygen/html/LLVMModule_8h_source.html +2 -2
  15. package/SVF-doxygen/html/LLVMUtil_8cpp_source.html +2 -2
  16. package/SVF-doxygen/html/MTA_2CMakeLists_8txt.html +8 -8
  17. package/SVF-doxygen/html/SABER_2CMakeLists_8txt.html +8 -8
  18. package/SVF-doxygen/html/SVFFileSystem_8h.html +2 -2
  19. package/SVF-doxygen/html/SVFFileSystem_8h_source.html +6 -6
  20. package/SVF-doxygen/html/SVFModule_8cpp_source.html +1 -1
  21. package/SVF-doxygen/html/SVFType_8h.html +1 -1
  22. package/SVF-doxygen/html/SVFUtil_8h_source.html +10 -10
  23. package/SVF-doxygen/html/WPA_2CMakeLists_8txt.html +5 -5
  24. package/SVF-doxygen/html/classSVF_1_1AndersenSFR.html +1 -1
  25. package/SVF-doxygen/html/classSVF_1_1CHGBuilder.html +2 -2
  26. package/SVF-doxygen/html/classSVF_1_1ExtAPI.html +141 -130
  27. package/SVF-doxygen/html/classSVF_1_1LLVMModuleSet.html +2 -2
  28. package/SVF-doxygen/html/classSVF_1_1ReaderPtrPool.html +3 -3
  29. package/SVF-doxygen/html/classSVF_1_1SVFIRReader.html +4 -4
  30. package/SVF-doxygen/html/classSVF_1_1SVFModule.html +1 -1
  31. package/SVF-doxygen/html/globals_a.html +6 -0
  32. package/SVF-doxygen/html/globals_d.html +0 -3
  33. package/SVF-doxygen/html/globals_defs.html +0 -3
  34. package/SVF-doxygen/html/globals_func_a.html +6 -0
  35. package/SVF-doxygen/html/globals_func_i.html +4 -8
  36. package/SVF-doxygen/html/globals_func_s.html +1 -1
  37. package/SVF-doxygen/html/globals_i.html +9 -11
  38. package/SVF-doxygen/html/globals_s.html +1 -1
  39. package/SVF-doxygen/html/namespaceSVF.html +3 -2
  40. package/SVF-doxygen/html/search/all_1.js +453 -451
  41. package/SVF-doxygen/html/search/all_10.js +324 -324
  42. package/SVF-doxygen/html/search/all_11.js +223 -223
  43. package/SVF-doxygen/html/search/all_12.js +553 -553
  44. package/SVF-doxygen/html/search/all_13.js +192 -192
  45. package/SVF-doxygen/html/search/all_14.js +67 -67
  46. package/SVF-doxygen/html/search/all_15.js +167 -167
  47. package/SVF-doxygen/html/search/all_16.js +63 -63
  48. package/SVF-doxygen/html/search/all_17.js +1 -1
  49. package/SVF-doxygen/html/search/all_18.js +1 -1
  50. package/SVF-doxygen/html/search/all_19.js +11 -11
  51. package/SVF-doxygen/html/search/all_1a.js +172 -172
  52. package/SVF-doxygen/html/search/all_2.js +171 -171
  53. package/SVF-doxygen/html/search/all_3.js +643 -643
  54. package/SVF-doxygen/html/search/all_4.js +235 -236
  55. package/SVF-doxygen/html/search/all_5.js +119 -119
  56. package/SVF-doxygen/html/search/all_6.js +226 -226
  57. package/SVF-doxygen/html/search/all_7.js +1046 -1046
  58. package/SVF-doxygen/html/search/all_8.js +198 -198
  59. package/SVF-doxygen/html/search/all_9.js +608 -607
  60. package/SVF-doxygen/html/search/all_a.js +46 -46
  61. package/SVF-doxygen/html/search/all_b.js +26 -26
  62. package/SVF-doxygen/html/search/all_c.js +115 -115
  63. package/SVF-doxygen/html/search/all_d.js +198 -198
  64. package/SVF-doxygen/html/search/all_e.js +207 -207
  65. package/SVF-doxygen/html/search/all_f.js +116 -116
  66. package/SVF-doxygen/html/search/classes_0.js +26 -26
  67. package/SVF-doxygen/html/search/classes_1.js +9 -9
  68. package/SVF-doxygen/html/search/classes_10.js +73 -73
  69. package/SVF-doxygen/html/search/classes_11.js +15 -15
  70. package/SVF-doxygen/html/search/classes_12.js +2 -2
  71. package/SVF-doxygen/html/search/classes_13.js +10 -10
  72. package/SVF-doxygen/html/search/classes_14.js +14 -14
  73. package/SVF-doxygen/html/search/classes_15.js +1 -1
  74. package/SVF-doxygen/html/search/classes_2.js +80 -80
  75. package/SVF-doxygen/html/search/classes_3.js +37 -37
  76. package/SVF-doxygen/html/search/classes_4.js +9 -9
  77. package/SVF-doxygen/html/search/classes_5.js +28 -28
  78. package/SVF-doxygen/html/search/classes_6.js +104 -104
  79. package/SVF-doxygen/html/search/classes_7.js +34 -34
  80. package/SVF-doxygen/html/search/classes_8.js +56 -56
  81. package/SVF-doxygen/html/search/classes_9.js +1 -1
  82. package/SVF-doxygen/html/search/classes_a.js +12 -12
  83. package/SVF-doxygen/html/search/classes_b.js +29 -29
  84. package/SVF-doxygen/html/search/classes_c.js +6 -6
  85. package/SVF-doxygen/html/search/classes_d.js +18 -18
  86. package/SVF-doxygen/html/search/classes_e.js +36 -36
  87. package/SVF-doxygen/html/search/classes_f.js +25 -25
  88. package/SVF-doxygen/html/search/defines_0.js +3 -3
  89. package/SVF-doxygen/html/search/defines_1.js +2 -2
  90. package/SVF-doxygen/html/search/defines_2.js +30 -30
  91. package/SVF-doxygen/html/search/defines_3.js +20 -21
  92. package/SVF-doxygen/html/search/defines_4.js +2 -2
  93. package/SVF-doxygen/html/search/defines_5.js +4 -4
  94. package/SVF-doxygen/html/search/defines_6.js +2 -2
  95. package/SVF-doxygen/html/search/defines_7.js +5 -5
  96. package/SVF-doxygen/html/search/defines_8.js +11 -11
  97. package/SVF-doxygen/html/search/defines_9.js +9 -9
  98. package/SVF-doxygen/html/search/defines_a.js +2 -2
  99. package/SVF-doxygen/html/search/defines_b.js +1 -1
  100. package/SVF-doxygen/html/search/defines_c.js +3 -3
  101. package/SVF-doxygen/html/search/defines_d.js +2 -2
  102. package/SVF-doxygen/html/search/defines_e.js +7 -7
  103. package/SVF-doxygen/html/search/defines_f.js +3 -3
  104. package/SVF-doxygen/html/search/enums_0.js +3 -3
  105. package/SVF-doxygen/html/search/enums_1.js +2 -2
  106. package/SVF-doxygen/html/search/enums_10.js +1 -1
  107. package/SVF-doxygen/html/search/enums_11.js +1 -1
  108. package/SVF-doxygen/html/search/enums_2.js +8 -8
  109. package/SVF-doxygen/html/search/enums_3.js +1 -1
  110. package/SVF-doxygen/html/search/enums_4.js +3 -3
  111. package/SVF-doxygen/html/search/enums_5.js +1 -1
  112. package/SVF-doxygen/html/search/enums_6.js +2 -2
  113. package/SVF-doxygen/html/search/enums_7.js +2 -2
  114. package/SVF-doxygen/html/search/enums_8.js +4 -4
  115. package/SVF-doxygen/html/search/enums_9.js +1 -1
  116. package/SVF-doxygen/html/search/enums_a.js +1 -1
  117. package/SVF-doxygen/html/search/enums_b.js +7 -7
  118. package/SVF-doxygen/html/search/enums_c.js +1 -1
  119. package/SVF-doxygen/html/search/enums_d.js +4 -4
  120. package/SVF-doxygen/html/search/enums_e.js +2 -2
  121. package/SVF-doxygen/html/search/enums_f.js +4 -4
  122. package/SVF-doxygen/html/search/enumvalues_0.js +14 -14
  123. package/SVF-doxygen/html/search/enumvalues_1.js +14 -14
  124. package/SVF-doxygen/html/search/enumvalues_10.js +35 -35
  125. package/SVF-doxygen/html/search/enumvalues_11.js +3 -3
  126. package/SVF-doxygen/html/search/enumvalues_12.js +10 -10
  127. package/SVF-doxygen/html/search/enumvalues_13.js +1 -1
  128. package/SVF-doxygen/html/search/enumvalues_14.js +1 -1
  129. package/SVF-doxygen/html/search/enumvalues_15.js +3 -3
  130. package/SVF-doxygen/html/search/enumvalues_2.js +36 -36
  131. package/SVF-doxygen/html/search/enumvalues_3.js +13 -13
  132. package/SVF-doxygen/html/search/enumvalues_4.js +2 -2
  133. package/SVF-doxygen/html/search/enumvalues_5.js +47 -47
  134. package/SVF-doxygen/html/search/enumvalues_6.js +6 -6
  135. package/SVF-doxygen/html/search/enumvalues_7.js +9 -9
  136. package/SVF-doxygen/html/search/enumvalues_8.js +23 -23
  137. package/SVF-doxygen/html/search/enumvalues_9.js +6 -6
  138. package/SVF-doxygen/html/search/enumvalues_a.js +15 -15
  139. package/SVF-doxygen/html/search/enumvalues_b.js +11 -11
  140. package/SVF-doxygen/html/search/enumvalues_c.js +5 -5
  141. package/SVF-doxygen/html/search/enumvalues_d.js +18 -18
  142. package/SVF-doxygen/html/search/enumvalues_e.js +9 -9
  143. package/SVF-doxygen/html/search/enumvalues_f.js +45 -45
  144. package/SVF-doxygen/html/search/files_0.js +13 -13
  145. package/SVF-doxygen/html/search/files_1.js +7 -7
  146. package/SVF-doxygen/html/search/files_10.js +8 -8
  147. package/SVF-doxygen/html/search/files_11.js +8 -8
  148. package/SVF-doxygen/html/search/files_12.js +2 -2
  149. package/SVF-doxygen/html/search/files_2.js +55 -55
  150. package/SVF-doxygen/html/search/files_3.js +14 -14
  151. package/SVF-doxygen/html/search/files_4.js +5 -5
  152. package/SVF-doxygen/html/search/files_5.js +13 -13
  153. package/SVF-doxygen/html/search/files_6.js +9 -9
  154. package/SVF-doxygen/html/search/files_7.js +14 -14
  155. package/SVF-doxygen/html/search/files_8.js +13 -13
  156. package/SVF-doxygen/html/search/files_9.js +18 -18
  157. package/SVF-doxygen/html/search/files_a.js +3 -3
  158. package/SVF-doxygen/html/search/files_b.js +2 -2
  159. package/SVF-doxygen/html/search/files_c.js +20 -20
  160. package/SVF-doxygen/html/search/files_d.js +4 -4
  161. package/SVF-doxygen/html/search/files_e.js +62 -62
  162. package/SVF-doxygen/html/search/files_f.js +8 -8
  163. package/SVF-doxygen/html/search/functions_0.js +13 -13
  164. package/SVF-doxygen/html/search/functions_1.js +362 -360
  165. package/SVF-doxygen/html/search/functions_10.js +140 -140
  166. package/SVF-doxygen/html/search/functions_11.js +139 -139
  167. package/SVF-doxygen/html/search/functions_12.js +288 -288
  168. package/SVF-doxygen/html/search/functions_13.js +59 -59
  169. package/SVF-doxygen/html/search/functions_14.js +39 -39
  170. package/SVF-doxygen/html/search/functions_15.js +71 -71
  171. package/SVF-doxygen/html/search/functions_16.js +32 -32
  172. package/SVF-doxygen/html/search/functions_17.js +3 -3
  173. package/SVF-doxygen/html/search/functions_18.js +172 -172
  174. package/SVF-doxygen/html/search/functions_2.js +89 -89
  175. package/SVF-doxygen/html/search/functions_3.js +258 -258
  176. package/SVF-doxygen/html/search/functions_4.js +78 -78
  177. package/SVF-doxygen/html/search/functions_5.js +53 -53
  178. package/SVF-doxygen/html/search/functions_6.js +60 -60
  179. package/SVF-doxygen/html/search/functions_7.js +855 -855
  180. package/SVF-doxygen/html/search/functions_8.js +149 -149
  181. package/SVF-doxygen/html/search/functions_9.js +424 -423
  182. package/SVF-doxygen/html/search/functions_a.js +30 -30
  183. package/SVF-doxygen/html/search/functions_b.js +2 -2
  184. package/SVF-doxygen/html/search/functions_c.js +25 -25
  185. package/SVF-doxygen/html/search/functions_d.js +79 -79
  186. package/SVF-doxygen/html/search/functions_e.js +35 -35
  187. package/SVF-doxygen/html/search/functions_f.js +56 -56
  188. package/SVF-doxygen/html/search/namespaces_0.js +1 -1
  189. package/SVF-doxygen/html/search/namespaces_1.js +7 -7
  190. package/SVF-doxygen/html/search/related_0.js +2 -2
  191. package/SVF-doxygen/html/search/related_1.js +2 -2
  192. package/SVF-doxygen/html/search/related_2.js +2 -2
  193. package/SVF-doxygen/html/search/related_3.js +2 -2
  194. package/SVF-doxygen/html/search/related_4.js +2 -2
  195. package/SVF-doxygen/html/search/related_5.js +1 -1
  196. package/SVF-doxygen/html/search/related_6.js +2 -2
  197. package/SVF-doxygen/html/search/related_7.js +4 -4
  198. package/SVF-doxygen/html/search/related_8.js +2 -2
  199. package/SVF-doxygen/html/search/related_9.js +4 -4
  200. package/SVF-doxygen/html/search/related_a.js +19 -19
  201. package/SVF-doxygen/html/search/related_b.js +4 -4
  202. package/SVF-doxygen/html/search/related_c.js +2 -2
  203. package/SVF-doxygen/html/search/related_d.js +12 -12
  204. package/SVF-doxygen/html/search/related_e.js +2 -2
  205. package/SVF-doxygen/html/search/related_f.js +2 -2
  206. package/SVF-doxygen/html/search/typedefs_0.js +19 -19
  207. package/SVF-doxygen/html/search/typedefs_1.js +26 -26
  208. package/SVF-doxygen/html/search/typedefs_10.js +61 -61
  209. package/SVF-doxygen/html/search/typedefs_11.js +13 -13
  210. package/SVF-doxygen/html/search/typedefs_12.js +11 -11
  211. package/SVF-doxygen/html/search/typedefs_13.js +33 -33
  212. package/SVF-doxygen/html/search/typedefs_14.js +8 -8
  213. package/SVF-doxygen/html/search/typedefs_2.js +129 -129
  214. package/SVF-doxygen/html/search/typedefs_3.js +39 -39
  215. package/SVF-doxygen/html/search/typedefs_4.js +17 -17
  216. package/SVF-doxygen/html/search/typedefs_5.js +41 -41
  217. package/SVF-doxygen/html/search/typedefs_6.js +56 -56
  218. package/SVF-doxygen/html/search/typedefs_7.js +44 -44
  219. package/SVF-doxygen/html/search/typedefs_8.js +1 -1
  220. package/SVF-doxygen/html/search/typedefs_9.js +6 -6
  221. package/SVF-doxygen/html/search/typedefs_a.js +29 -29
  222. package/SVF-doxygen/html/search/typedefs_b.js +29 -29
  223. package/SVF-doxygen/html/search/typedefs_c.js +41 -41
  224. package/SVF-doxygen/html/search/typedefs_d.js +14 -14
  225. package/SVF-doxygen/html/search/typedefs_e.js +52 -52
  226. package/SVF-doxygen/html/search/typedefs_f.js +14 -14
  227. package/SVF-doxygen/html/search/variables_0.js +151 -151
  228. package/SVF-doxygen/html/search/variables_1.js +75 -75
  229. package/SVF-doxygen/html/search/variables_10.js +97 -97
  230. package/SVF-doxygen/html/search/variables_11.js +44 -44
  231. package/SVF-doxygen/html/search/variables_12.js +92 -92
  232. package/SVF-doxygen/html/search/variables_13.js +76 -76
  233. package/SVF-doxygen/html/search/variables_14.js +14 -14
  234. package/SVF-doxygen/html/search/variables_15.js +48 -48
  235. package/SVF-doxygen/html/search/variables_16.js +9 -9
  236. package/SVF-doxygen/html/search/variables_17.js +1 -1
  237. package/SVF-doxygen/html/search/variables_18.js +2 -2
  238. package/SVF-doxygen/html/search/variables_2.js +38 -38
  239. package/SVF-doxygen/html/search/variables_3.js +142 -142
  240. package/SVF-doxygen/html/search/variables_4.js +55 -55
  241. package/SVF-doxygen/html/search/variables_5.js +37 -37
  242. package/SVF-doxygen/html/search/variables_6.js +66 -66
  243. package/SVF-doxygen/html/search/variables_7.js +34 -34
  244. package/SVF-doxygen/html/search/variables_8.js +7 -7
  245. package/SVF-doxygen/html/search/variables_9.js +78 -78
  246. package/SVF-doxygen/html/search/variables_a.js +4 -4
  247. package/SVF-doxygen/html/search/variables_b.js +10 -10
  248. package/SVF-doxygen/html/search/variables_c.js +45 -45
  249. package/SVF-doxygen/html/search/variables_d.js +56 -56
  250. package/SVF-doxygen/html/search/variables_e.js +123 -123
  251. package/SVF-doxygen/html/search/variables_f.js +30 -30
  252. package/build.sh +4 -1
  253. package/package.json +1 -1
  254. package/setup.sh +9 -3
  255. package/svf/CMakeLists.txt +16 -2
  256. package/svf/include/Util/ExtAPI.h +0 -2
  257. package/svf/include/WPA/AndersenPWC.h +1 -1
  258. package/svf/lib/Util/ExtAPI.cpp +29 -16
  259. package/svf-llvm/CMakeLists.txt +106 -43
  260. package/svf-llvm/tools/CFL/CMakeLists.txt +2 -10
  261. package/svf-llvm/tools/CMakeLists.txt +15 -16
  262. package/svf-llvm/tools/DDA/CMakeLists.txt +2 -10
  263. package/svf-llvm/tools/Example/CMakeLists.txt +2 -10
  264. package/svf-llvm/tools/LLVM2SVF/CMakeLists.txt +2 -10
  265. package/svf-llvm/tools/MTA/CMakeLists.txt +2 -12
  266. package/svf-llvm/tools/SABER/CMakeLists.txt +2 -10
  267. 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
+ )
@@ -187,7 +187,7 @@ $(function() {
187
187
  <div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; {</div>
188
188
  <div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1AndersenSFR.html#abcf0f758174f224c5da066d0115beefb">sfrAndersen</a> == <span class="keyword">nullptr</span>)</div>
189
189
  <div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; {</div>
190
- <div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="keyword">new</span> <a class="code" href="classSVF_1_1AndersenSFR.html#a61967331f111832d2374524605591499">AndersenSFR</a>(_pag);</div>
190
+ <div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <a class="code" href="classSVF_1_1AndersenSFR.html#abcf0f758174f224c5da066d0115beefb">sfrAndersen</a> = <span class="keyword">new</span> <a class="code" href="classSVF_1_1AndersenSFR.html#a61967331f111832d2374524605591499">AndersenSFR</a>(_pag);</div>
191
191
  <div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <a class="code" href="classSVF_1_1AndersenSFR.html#abcf0f758174f224c5da066d0115beefb">sfrAndersen</a>-&gt;<a class="code" href="classSVF_1_1AndersenBase.html#a944966086ecb716184c8cdcc43db5751">analyze</a>();</div>
192
192
  <div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1AndersenSFR.html#abcf0f758174f224c5da066d0115beefb">sfrAndersen</a>;</div>
193
193
  <div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; }</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: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">