svf-tools 1.0.845 → 1.0.847

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 (221) hide show
  1. package/.config.cmake.in +24 -0
  2. package/.config.in +26 -0
  3. package/.gitignore +2 -0
  4. package/CMakeLists.txt +138 -47
  5. package/SVF-doxygen/html/CMakeLists_8txt.html +1 -24
  6. package/SVF-doxygen/html/extapi_8c.html +16 -42
  7. package/SVF-doxygen/html/extapi_8c_source.html +1 -1
  8. package/SVF-doxygen/html/globals.html +3 -3
  9. package/SVF-doxygen/html/globals_func.html +1 -1
  10. package/SVF-doxygen/html/globals_func_i.html +0 -3
  11. package/SVF-doxygen/html/globals_i.html +2 -5
  12. package/SVF-doxygen/html/search/all_0.js +1 -1
  13. package/SVF-doxygen/html/search/all_10.js +325 -325
  14. package/SVF-doxygen/html/search/all_11.js +224 -224
  15. package/SVF-doxygen/html/search/all_12.js +552 -552
  16. package/SVF-doxygen/html/search/all_13.js +190 -190
  17. package/SVF-doxygen/html/search/all_14.js +67 -67
  18. package/SVF-doxygen/html/search/all_15.js +168 -168
  19. package/SVF-doxygen/html/search/all_16.js +63 -63
  20. package/SVF-doxygen/html/search/all_17.js +1 -1
  21. package/SVF-doxygen/html/search/all_18.js +1 -1
  22. package/SVF-doxygen/html/search/all_19.js +11 -11
  23. package/SVF-doxygen/html/search/all_1a.js +173 -173
  24. package/SVF-doxygen/html/search/all_9.js +540 -541
  25. package/SVF-doxygen/html/search/all_a.js +46 -46
  26. package/SVF-doxygen/html/search/all_b.js +26 -26
  27. package/SVF-doxygen/html/search/all_c.js +115 -115
  28. package/SVF-doxygen/html/search/all_d.js +197 -197
  29. package/SVF-doxygen/html/search/all_e.js +207 -207
  30. package/SVF-doxygen/html/search/all_f.js +116 -116
  31. package/SVF-doxygen/html/search/classes_0.js +26 -26
  32. package/SVF-doxygen/html/search/classes_1.js +9 -9
  33. package/SVF-doxygen/html/search/classes_10.js +73 -73
  34. package/SVF-doxygen/html/search/classes_11.js +15 -15
  35. package/SVF-doxygen/html/search/classes_12.js +2 -2
  36. package/SVF-doxygen/html/search/classes_13.js +10 -10
  37. package/SVF-doxygen/html/search/classes_14.js +14 -14
  38. package/SVF-doxygen/html/search/classes_15.js +1 -1
  39. package/SVF-doxygen/html/search/classes_2.js +81 -81
  40. package/SVF-doxygen/html/search/classes_3.js +37 -37
  41. package/SVF-doxygen/html/search/classes_4.js +9 -9
  42. package/SVF-doxygen/html/search/classes_5.js +28 -28
  43. package/SVF-doxygen/html/search/classes_6.js +104 -104
  44. package/SVF-doxygen/html/search/classes_7.js +34 -34
  45. package/SVF-doxygen/html/search/classes_8.js +56 -56
  46. package/SVF-doxygen/html/search/classes_9.js +1 -1
  47. package/SVF-doxygen/html/search/classes_a.js +12 -12
  48. package/SVF-doxygen/html/search/classes_b.js +29 -29
  49. package/SVF-doxygen/html/search/classes_c.js +6 -6
  50. package/SVF-doxygen/html/search/classes_d.js +18 -18
  51. package/SVF-doxygen/html/search/classes_e.js +36 -36
  52. package/SVF-doxygen/html/search/classes_f.js +25 -25
  53. package/SVF-doxygen/html/search/defines_0.js +3 -3
  54. package/SVF-doxygen/html/search/defines_1.js +2 -2
  55. package/SVF-doxygen/html/search/defines_2.js +30 -30
  56. package/SVF-doxygen/html/search/defines_3.js +20 -20
  57. package/SVF-doxygen/html/search/defines_4.js +2 -2
  58. package/SVF-doxygen/html/search/defines_5.js +4 -4
  59. package/SVF-doxygen/html/search/defines_6.js +2 -2
  60. package/SVF-doxygen/html/search/defines_7.js +5 -5
  61. package/SVF-doxygen/html/search/defines_8.js +11 -11
  62. package/SVF-doxygen/html/search/defines_9.js +9 -9
  63. package/SVF-doxygen/html/search/defines_a.js +2 -2
  64. package/SVF-doxygen/html/search/defines_b.js +1 -1
  65. package/SVF-doxygen/html/search/defines_c.js +3 -3
  66. package/SVF-doxygen/html/search/defines_d.js +2 -2
  67. package/SVF-doxygen/html/search/defines_e.js +7 -7
  68. package/SVF-doxygen/html/search/defines_f.js +3 -3
  69. package/SVF-doxygen/html/search/enums_0.js +3 -3
  70. package/SVF-doxygen/html/search/enums_1.js +2 -2
  71. package/SVF-doxygen/html/search/enums_10.js +1 -1
  72. package/SVF-doxygen/html/search/enums_11.js +1 -1
  73. package/SVF-doxygen/html/search/enums_2.js +8 -8
  74. package/SVF-doxygen/html/search/enums_3.js +1 -1
  75. package/SVF-doxygen/html/search/enums_4.js +3 -3
  76. package/SVF-doxygen/html/search/enums_5.js +1 -1
  77. package/SVF-doxygen/html/search/enums_6.js +2 -2
  78. package/SVF-doxygen/html/search/enums_7.js +2 -2
  79. package/SVF-doxygen/html/search/enums_8.js +4 -4
  80. package/SVF-doxygen/html/search/enums_9.js +1 -1
  81. package/SVF-doxygen/html/search/enums_a.js +1 -1
  82. package/SVF-doxygen/html/search/enums_b.js +7 -7
  83. package/SVF-doxygen/html/search/enums_c.js +1 -1
  84. package/SVF-doxygen/html/search/enums_d.js +4 -4
  85. package/SVF-doxygen/html/search/enums_e.js +2 -2
  86. package/SVF-doxygen/html/search/enums_f.js +4 -4
  87. package/SVF-doxygen/html/search/enumvalues_0.js +14 -14
  88. package/SVF-doxygen/html/search/enumvalues_1.js +14 -14
  89. package/SVF-doxygen/html/search/enumvalues_10.js +35 -35
  90. package/SVF-doxygen/html/search/enumvalues_11.js +3 -3
  91. package/SVF-doxygen/html/search/enumvalues_12.js +10 -10
  92. package/SVF-doxygen/html/search/enumvalues_13.js +1 -1
  93. package/SVF-doxygen/html/search/enumvalues_14.js +1 -1
  94. package/SVF-doxygen/html/search/enumvalues_15.js +3 -3
  95. package/SVF-doxygen/html/search/enumvalues_2.js +36 -36
  96. package/SVF-doxygen/html/search/enumvalues_3.js +13 -13
  97. package/SVF-doxygen/html/search/enumvalues_4.js +2 -2
  98. package/SVF-doxygen/html/search/enumvalues_5.js +47 -47
  99. package/SVF-doxygen/html/search/enumvalues_6.js +6 -6
  100. package/SVF-doxygen/html/search/enumvalues_7.js +8 -8
  101. package/SVF-doxygen/html/search/enumvalues_8.js +23 -23
  102. package/SVF-doxygen/html/search/enumvalues_9.js +6 -6
  103. package/SVF-doxygen/html/search/enumvalues_a.js +15 -15
  104. package/SVF-doxygen/html/search/enumvalues_b.js +11 -11
  105. package/SVF-doxygen/html/search/enumvalues_c.js +5 -5
  106. package/SVF-doxygen/html/search/enumvalues_d.js +18 -18
  107. package/SVF-doxygen/html/search/enumvalues_e.js +9 -9
  108. package/SVF-doxygen/html/search/enumvalues_f.js +45 -45
  109. package/SVF-doxygen/html/search/files_0.js +13 -13
  110. package/SVF-doxygen/html/search/files_1.js +7 -7
  111. package/SVF-doxygen/html/search/files_10.js +8 -8
  112. package/SVF-doxygen/html/search/files_11.js +8 -8
  113. package/SVF-doxygen/html/search/files_12.js +2 -2
  114. package/SVF-doxygen/html/search/files_2.js +57 -57
  115. package/SVF-doxygen/html/search/files_3.js +14 -14
  116. package/SVF-doxygen/html/search/files_4.js +5 -5
  117. package/SVF-doxygen/html/search/files_5.js +13 -13
  118. package/SVF-doxygen/html/search/files_6.js +9 -9
  119. package/SVF-doxygen/html/search/files_7.js +14 -14
  120. package/SVF-doxygen/html/search/files_8.js +13 -13
  121. package/SVF-doxygen/html/search/files_9.js +18 -18
  122. package/SVF-doxygen/html/search/files_a.js +3 -3
  123. package/SVF-doxygen/html/search/files_b.js +2 -2
  124. package/SVF-doxygen/html/search/files_c.js +20 -20
  125. package/SVF-doxygen/html/search/files_d.js +4 -4
  126. package/SVF-doxygen/html/search/files_e.js +62 -62
  127. package/SVF-doxygen/html/search/files_f.js +8 -8
  128. package/SVF-doxygen/html/search/functions_0.js +13 -13
  129. package/SVF-doxygen/html/search/functions_1.js +362 -362
  130. package/SVF-doxygen/html/search/functions_10.js +140 -140
  131. package/SVF-doxygen/html/search/functions_11.js +139 -139
  132. package/SVF-doxygen/html/search/functions_12.js +288 -288
  133. package/SVF-doxygen/html/search/functions_13.js +59 -59
  134. package/SVF-doxygen/html/search/functions_14.js +39 -39
  135. package/SVF-doxygen/html/search/functions_15.js +71 -71
  136. package/SVF-doxygen/html/search/functions_16.js +32 -32
  137. package/SVF-doxygen/html/search/functions_17.js +3 -3
  138. package/SVF-doxygen/html/search/functions_18.js +173 -173
  139. package/SVF-doxygen/html/search/functions_2.js +89 -89
  140. package/SVF-doxygen/html/search/functions_3.js +261 -261
  141. package/SVF-doxygen/html/search/functions_4.js +78 -78
  142. package/SVF-doxygen/html/search/functions_5.js +53 -53
  143. package/SVF-doxygen/html/search/functions_6.js +60 -60
  144. package/SVF-doxygen/html/search/functions_7.js +855 -855
  145. package/SVF-doxygen/html/search/functions_8.js +148 -148
  146. package/SVF-doxygen/html/search/functions_9.js +420 -421
  147. package/SVF-doxygen/html/search/functions_a.js +30 -30
  148. package/SVF-doxygen/html/search/functions_b.js +2 -2
  149. package/SVF-doxygen/html/search/functions_c.js +25 -25
  150. package/SVF-doxygen/html/search/functions_d.js +79 -79
  151. package/SVF-doxygen/html/search/functions_e.js +35 -35
  152. package/SVF-doxygen/html/search/functions_f.js +56 -56
  153. package/SVF-doxygen/html/search/namespaces_0.js +1 -1
  154. package/SVF-doxygen/html/search/namespaces_1.js +7 -7
  155. package/SVF-doxygen/html/search/related_0.js +2 -2
  156. package/SVF-doxygen/html/search/related_1.js +2 -2
  157. package/SVF-doxygen/html/search/related_2.js +3 -3
  158. package/SVF-doxygen/html/search/related_3.js +2 -2
  159. package/SVF-doxygen/html/search/related_4.js +2 -2
  160. package/SVF-doxygen/html/search/related_5.js +1 -1
  161. package/SVF-doxygen/html/search/related_6.js +2 -2
  162. package/SVF-doxygen/html/search/related_7.js +4 -4
  163. package/SVF-doxygen/html/search/related_8.js +2 -2
  164. package/SVF-doxygen/html/search/related_9.js +4 -4
  165. package/SVF-doxygen/html/search/related_a.js +19 -19
  166. package/SVF-doxygen/html/search/related_b.js +4 -4
  167. package/SVF-doxygen/html/search/related_c.js +2 -2
  168. package/SVF-doxygen/html/search/related_d.js +12 -12
  169. package/SVF-doxygen/html/search/related_e.js +2 -2
  170. package/SVF-doxygen/html/search/related_f.js +2 -2
  171. package/SVF-doxygen/html/search/typedefs_0.js +19 -19
  172. package/SVF-doxygen/html/search/typedefs_1.js +26 -26
  173. package/SVF-doxygen/html/search/typedefs_10.js +62 -62
  174. package/SVF-doxygen/html/search/typedefs_11.js +13 -13
  175. package/SVF-doxygen/html/search/typedefs_12.js +11 -11
  176. package/SVF-doxygen/html/search/typedefs_13.js +33 -33
  177. package/SVF-doxygen/html/search/typedefs_14.js +8 -8
  178. package/SVF-doxygen/html/search/typedefs_2.js +129 -129
  179. package/SVF-doxygen/html/search/typedefs_3.js +39 -39
  180. package/SVF-doxygen/html/search/typedefs_4.js +17 -17
  181. package/SVF-doxygen/html/search/typedefs_5.js +41 -41
  182. package/SVF-doxygen/html/search/typedefs_6.js +56 -56
  183. package/SVF-doxygen/html/search/typedefs_7.js +44 -44
  184. package/SVF-doxygen/html/search/typedefs_8.js +1 -1
  185. package/SVF-doxygen/html/search/typedefs_9.js +6 -6
  186. package/SVF-doxygen/html/search/typedefs_a.js +29 -29
  187. package/SVF-doxygen/html/search/typedefs_b.js +29 -29
  188. package/SVF-doxygen/html/search/typedefs_c.js +41 -41
  189. package/SVF-doxygen/html/search/typedefs_d.js +14 -14
  190. package/SVF-doxygen/html/search/typedefs_e.js +52 -52
  191. package/SVF-doxygen/html/search/typedefs_f.js +14 -14
  192. package/SVF-doxygen/html/search/variables_0.js +151 -151
  193. package/SVF-doxygen/html/search/variables_1.js +75 -75
  194. package/SVF-doxygen/html/search/variables_10.js +98 -98
  195. package/SVF-doxygen/html/search/variables_11.js +45 -45
  196. package/SVF-doxygen/html/search/variables_12.js +90 -90
  197. package/SVF-doxygen/html/search/variables_13.js +74 -74
  198. package/SVF-doxygen/html/search/variables_14.js +14 -14
  199. package/SVF-doxygen/html/search/variables_15.js +49 -49
  200. package/SVF-doxygen/html/search/variables_16.js +9 -9
  201. package/SVF-doxygen/html/search/variables_17.js +1 -1
  202. package/SVF-doxygen/html/search/variables_18.js +2 -2
  203. package/SVF-doxygen/html/search/variables_2.js +38 -38
  204. package/SVF-doxygen/html/search/variables_3.js +142 -142
  205. package/SVF-doxygen/html/search/variables_4.js +50 -50
  206. package/SVF-doxygen/html/search/variables_5.js +37 -37
  207. package/SVF-doxygen/html/search/variables_6.js +66 -66
  208. package/SVF-doxygen/html/search/variables_7.js +34 -34
  209. package/SVF-doxygen/html/search/variables_8.js +7 -7
  210. package/SVF-doxygen/html/search/variables_9.js +78 -78
  211. package/SVF-doxygen/html/search/variables_a.js +4 -4
  212. package/SVF-doxygen/html/search/variables_b.js +10 -10
  213. package/SVF-doxygen/html/search/variables_c.js +45 -45
  214. package/SVF-doxygen/html/search/variables_d.js +55 -55
  215. package/SVF-doxygen/html/search/variables_e.js +123 -123
  216. package/SVF-doxygen/html/search/variables_f.js +30 -30
  217. package/package.json +1 -1
  218. package/svf/CMakeLists.txt +25 -30
  219. package/svf-llvm/CMakeLists.txt +60 -45
  220. package/svf-llvm/lib/extapi.c +2 -2
  221. package/svf-llvm/tools/CMakeLists.txt +1 -2
@@ -0,0 +1,24 @@
1
+ @PACKAGE_INIT@
2
+
3
+ set_and_check(SVF_INSTALL_ROOT "@PACKAGE_SVF_INSTALL_ROOT@")
4
+ set_and_check(SVF_INSTALL_BIN_DIR "@PACKAGE_SVF_INSTALL_BIN_DIR@")
5
+ set_and_check(SVF_INSTALL_LIB_DIR "@PACKAGE_SVF_INSTALL_LIB_DIR@")
6
+ set_and_check(SVF_INSTALL_INCLUDE_DIR "@PACKAGE_SVF_INSTALL_INCLUDE_DIR@")
7
+
8
+ set_and_check(SVF_INSTALL_EXTAPI_DIR "@PACKAGE_SVF_INSTALL_EXTAPI_DIR@")
9
+ set_and_check(SVF_INSTALL_EXTAPI_FILE "@PACKAGE_SVF_INSTALL_EXTAPI_FILE@")
10
+
11
+ set(SVF_SANITIZE "@SVF_SANITIZE@")
12
+
13
+ set(SVF_COVERAGE "@SVF_COVERAGE@")
14
+ set(SVF_WARN_AS_ERROR "@SVF_WARN_AS_ERROR@")
15
+ set(SVF_EXPORT_DYNAMIC "@SVF_EXPORT_DYNAMIC@")
16
+ set(SVF_ENABLE_ASSERTIONS "@SVF_ENABLE_ASSERTIONS@")
17
+
18
+ set(SVF_BUILD_TYPE "@CMAKE_BUILD_TYPE@")
19
+ set(SVF_CXX_STANDARD "@CMAKE_CXX_STANDARD@")
20
+
21
+ set(SVF_ENABLE_RTTI "@SVF_ENABLE_RTTI@")
22
+ set(SVF_ENABLE_EXCEPTIONS "@SVF_ENABLE_EXCEPTIONS@")
23
+
24
+ include("${CMAKE_CURRENT_LIST_DIR}/SVFTargets.cmake")
package/.config.in ADDED
@@ -0,0 +1,26 @@
1
+ #ifndef CONFIG_H_IN
2
+ #define CONFIG_H_IN
3
+
4
+ // Directory structure of SVF build
5
+ #define SVF_ROOT "@CMAKE_CURRENT_SOURCE_DIR@"
6
+ #define SVF_BUILD_DIR "@CMAKE_CURRENT_BINARY_DIR@"
7
+ #define SVF_INSTALL_DIR "@SVF_INSTALL_ROOT@"
8
+ #define SVF_BIN_DIR "@SVF_INSTALL_BIN_DIR@"
9
+ #define SVF_LIB_DIR "@SVF_INSTALL_LIB_DIR@"
10
+ #define SVF_INCLUDE_DIR "@SVF_INSTALL_INCLUDE_DIR@"
11
+ #define SVF_EXTAPI_DIR "@SVF_INSTALL_EXTAPI_DIR@"
12
+ #define SVF_EXTAPI_BC "@SVF_INSTALL_EXTAPI_FILE@"
13
+
14
+ // Build mode used to build SVF
15
+ #define SVF_BUILD_TYPE "@CMAKE_BUILD_TYPE@"
16
+
17
+ // Sanitiser mode used for building SVF
18
+ #cmakedefine SVF_SANITIZE "@SVF_SANITIZE@"
19
+
20
+ // Build options used when building SVF
21
+ #cmakedefine SVF_COVERAGE
22
+ #cmakedefine SVF_WARN_AS_ERROR
23
+ #cmakedefine SVF_EXPORT_DYNAMIC
24
+ #cmakedefine SVF_ENABLE_ASSERTIONS
25
+
26
+ #endif // CONFIG_H_IN
package/.gitignore CHANGED
@@ -9,6 +9,8 @@ autoconf/
9
9
  tests/result/
10
10
  doxygen/
11
11
  .*
12
+ !.config.in
13
+ !.config.cmake.in
12
14
  !.gitignore
13
15
  *~
14
16
  *.o
package/CMakeLists.txt CHANGED
@@ -1,38 +1,95 @@
1
1
  cmake_minimum_required(VERSION 3.13.4)
2
2
 
3
- project("SVF")
3
+ project(SVF
4
+ VERSION 2.7.1
5
+ DESCRIPTION "SVF is a static value-flow analysis tool for LLVM-based languages"
6
+ HOMEPAGE_URL "https://github.com/SVF-tools/SVF"
7
+ LANGUAGES C CXX
8
+ )
9
+
10
+ # Ensure installation directories like ${CMAKE_INSTALL_LIBDIR} are available
11
+ include(GNUInstallDirs)
4
12
 
5
- message(STATUS "Using CMake with generator: ${CMAKE_GENERATOR}")
13
+ # Configurable (string) options for building SVF
14
+ set(SVF_SANITIZE "" CACHE STRING "Create sanitizer build (address)")
15
+
16
+ # Configurable (boolean) options for building SVF
17
+ option(SVF_COVERAGE "Create coverage build")
18
+ option(SVF_WARN_AS_ERROR "Treat warnings as errors when building SVF (default: on)" ON)
19
+ option(SVF_EXPORT_DYNAMIC "Export all (not only used) dynamic symbols to dynamic symbol table")
20
+ option(SVF_ENABLE_ASSERTIONS "Always enable assertions")
6
21
 
7
- configure_file(${PROJECT_SOURCE_DIR}/.config.in ${PROJECT_BINARY_DIR}/include/Util/config.h)
22
+ # Configure top-level SVF variables (used by CMake for configuring installed SVF package)
23
+ set(SVF_INSTALL_ROOT ${CMAKE_INSTALL_PREFIX})
24
+ set(SVF_INSTALL_BIN_DIR ${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_BINDIR})
25
+ set(SVF_INSTALL_LIB_DIR ${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR})
26
+ set(SVF_INSTALL_INCLUDE_DIR ${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_INCLUDEDIR}/svf)
27
+
28
+ # Set where extapi.bc is exported to in the installed CMake package
29
+ set(SVF_INSTALL_EXTAPI_DIR ${SVF_INSTALL_INCLUDE_DIR}/SVF-LLVM)
30
+ set(SVF_INSTALL_EXTAPI_FILE ${SVF_INSTALL_EXTAPI_DIR}/extapi.bc)
31
+
32
+ message(STATUS "Building ${PROJECT_NAME} with configuration:
33
+ SVF version: ${SVF_VERSION}
34
+ SVF root directory: ${SVF_SOURCE_DIR}
35
+ SVF binary directory: ${SVF_BINARY_DIR}
36
+ SVF option - create sanitiser build (str): ${SVF_SANITIZE}
37
+ SVF option - coverage build: ${SVF_COVERAGE}
38
+ SVF option - warnings as errors: ${SVF_WARN_AS_ERROR}
39
+ SVF option - unused dynamic symbols: ${SVF_EXPORT_DYNAMIC}
40
+ SVF option - enable build assertions: ${SVF_ENABLE_ASSERTIONS}")
41
+
42
+ message(STATUS "Using CMake build configuration:
43
+ CMake generator: ${CMAKE_GENERATOR}
44
+ CMake C compiler: ${CMAKE_C_COMPILER_ID}
45
+ CMake C++ compiler: ${CMAKE_CXX_COMPILER_ID}
46
+ CMake current list directory: ${CMAKE_CURRENT_LIST_DIR}
47
+ CMake current source directory: ${CMAKE_CURRENT_SOURCE_DIR}
48
+ CMake current binary directory: ${CMAKE_CURRENT_BINARY_DIR}")
49
+
50
+ # Create config.h based on config.in
51
+ configure_file(${SVF_SOURCE_DIR}/.config.in ${SVF_BINARY_DIR}/include/Util/config.h)
52
+
53
+ # Include the directory where the configuration header is exported for all targets
54
+ include_directories(${SVF_BINARY_DIR}/include)
8
55
 
9
- # Treat compiler warnings as errors
10
- add_compile_options("-Werror" "-Wall" "-Wno-deprecated-declarations")
56
+ # Install generated configuration header (see `configure_file()`) to top-level include dir of SVF
57
+ install(
58
+ FILES ${SVF_BINARY_DIR}/include/Util/config.h
59
+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/svf/Util
60
+ )
11
61
 
12
62
  # Build SVF with C++ standard C++17
13
63
  set(CMAKE_CXX_STANDARD 17)
14
64
  set(CMAKE_CXX_EXTENSIONS ON)
15
65
  set(CMAKE_CXX_STANDARD_REQUIRED ON)
66
+ set(CMAKE_POSITION_INDEPENDENT_CODE ON)
67
+ set(CMAKE_INTERPROCEDURAL_OPTIMIZATION ON)
68
+
69
+ # By default, build SVF and its targets treating all compiler warnings as errors (except deprecations)
70
+ add_compile_options(
71
+ "$<$<BOOL:${SVF_WARN_AS_ERROR}>:-Wall>"
72
+ "$<$<BOOL:${SVF_WARN_AS_ERROR}>:-Werror>"
73
+ "$<$<BOOL:${SVF_WARN_AS_ERROR}>:-Wno-deprecated-declarations>"
74
+ )
16
75
 
17
76
  # Keep assertions enabled if requested
18
- option(SVF_ENABLE_ASSERTIONS "Always enable assertions")
19
- if(SVF_ENABLE_ASSERTIONS)
20
- add_compile_options("-UNDEBUG")
21
- endif()
77
+ add_compile_options("$<$<BOOL:${SVF_ENABLE_ASSERTIONS}>:-UNDEBUG>")
22
78
 
23
- # Turn this on if you need symbols (e.g., use them for backtrace debugging)
24
- # add_link_options("-rdynamic")
79
+ # Export dynamic symbols if requested (adds "-export-dynamic" to linkers that support it to enable backtraces)
80
+ add_compile_options("$<$<BOOL:${SVF_EXPORT_DYNAMIC}>:-rdynamic>")
25
81
 
26
- option(SVF_COVERAGE "Create coverage build")
27
- if(SVF_COVERAGE OR DEFINED ENV{SVF_COVERAGE})
28
- add_compile_options("-fprofile-arcs" "-ftest-coverage")
29
- add_link_options("-fprofile-arcs" "-ftest-coverage")
30
- message(STATUS "Enable coverage")
31
- endif()
82
+ # Configure whether a coverage build should be created for SVF (i.e. add runtime instrumentation)
83
+ add_compile_options(
84
+ "$<$<OR:$<BOOL:${SVF_COVERAGE}>,$<BOOL:$ENV{SVF_COVERAGE}>>:-fprofile-arcs>"
85
+ "$<$<OR:$<BOOL:${SVF_COVERAGE}>,$<BOOL:$ENV{SVF_COVERAGE}>>:-ftest-coverage>"
86
+ )
87
+ add_link_options(
88
+ "$<$<OR:$<BOOL:${SVF_COVERAGE}>,$<BOOL:$ENV{SVF_COVERAGE}>>:-fprofile-arcs>"
89
+ "$<$<OR:$<BOOL:${SVF_COVERAGE}>,$<BOOL:$ENV{SVF_COVERAGE}>>:-ftest-coverage>"
90
+ )
32
91
 
33
- set(SVF_SANITIZE
34
- ""
35
- CACHE STRING "Create sanitizer build (address)")
92
+ # If building with sanitiser, load the given sanitiser mode
36
93
  if(SVF_SANITIZE STREQUAL "address")
37
94
  add_compile_options("-fno-omit-frame-pointer" "-fsanitize=address")
38
95
  add_link_options("-fsanitize=address")
@@ -42,54 +99,88 @@ elseif(SVF_SANITIZE STREQUAL "thread")
42
99
  add_link_options("-fsanitize=thread")
43
100
  message(STATUS "Sanitizer build: ${SVF_SANITIZE}")
44
101
  elseif(NOT SVF_SANITIZE STREQUAL "")
45
- message(ERROR "Unknown sanitizer type: ${SVF_SANITIZE}")
102
+ message(FATAL_ERROR "Unknown sanitizer type: ${SVF_SANITIZE}")
46
103
  endif()
47
104
 
105
+ # Check if the test-suite is present, if it is then build bc files and add testing to cmake build
106
+ if(EXISTS "${PROJECT_SOURCE_DIR}/Test-Suite")
107
+ include_directories(${PROJECT_SOURCE_DIR}/Test-Suite)
108
+ enable_testing()
109
+ add_subdirectory(Test-Suite)
110
+ include(CTest)
111
+ endif()
112
+
113
+ # Find Z3 and its include directory from the top-level include file
48
114
  find_library(
49
115
  Z3_LIBRARIES
116
+ REQUIRED
50
117
  NAMES z3
51
118
  HINTS ${Z3_DIR} ENV Z3_DIR
52
119
  PATH_SUFFIXES bin lib)
53
120
  find_path(
54
121
  Z3_INCLUDES
122
+ REQUIRED
55
123
  NAMES z3++.h
56
124
  HINTS ${Z3_DIR} ENV Z3_DIR
57
125
  PATH_SUFFIXES include z3)
58
- if(NOT Z3_LIBRARIES OR NOT Z3_INCLUDES)
59
- message(FATAL_ERROR "Z3 not found!")
60
- endif()
61
- message(STATUS "Found Z3: ${Z3_LIBRARIES}")
62
- message(STATUS "Z3 include dir: ${Z3_INCLUDES}")
126
+ message(STATUS "Z3 STATUS:
127
+ Z3 library file: ${Z3_LIBRARIES}
128
+ Z3 include directory: ${Z3_INCLUDES}")
63
129
 
64
- include_directories(${PROJECT_SOURCE_DIR}/svf/include
65
- ${PROJECT_BINARY_DIR}/include ${Z3_INCLUDES})
66
-
67
- # checks if the test-suite is present, if it is then build bc files and add
68
- # testing to cmake build
69
- if(EXISTS "${PROJECT_SOURCE_DIR}/Test-Suite")
70
- include_directories(${PROJECT_SOURCE_DIR}/Test-Suite)
71
- enable_testing()
72
- add_subdirectory(Test-Suite)
73
- include(CTest)
74
- endif()
130
+ # Add the Z3 include directory and link the Z3 library to all targets of SVF
131
+ link_libraries(${Z3_LIBRARIES})
132
+ include_directories(SYSTEM ${Z3_INCLUDES})
75
133
 
134
+ # Add the actual SVF and SVF-LLVM targets
76
135
  add_subdirectory(svf)
77
136
  add_subdirectory(svf-llvm)
78
137
 
79
138
  # Whether RTTI/Exceptions are enabled currently depends on whether the LLVM instance used to build
80
139
  # SVF had them enabled; since the LLVM instance is found in the "svf-llvm" subdirectory, it sets the
81
140
  # 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()
141
+ add_compile_definitions(
142
+ $<IF:$<BOOL:${SVF_ENABLE_RTTI}>,,-fno-rtti>
143
+ $<IF:$<BOOL:${SVF_ENABLE_EXCEPTIONS}>,,-fno-exceptions>
144
+ )
85
145
 
86
- if(SVF_NO_EH)
87
- add_compile_options("-fno-exceptions")
88
- endif()
146
+ # Export the SVF target for including SVF from CMake using find_package(SVF)
147
+ include(CMakePackageConfigHelpers)
148
+
149
+ # Generate SVFConfig.cmake
150
+ configure_package_config_file(
151
+ .config.cmake.in
152
+ ${CMAKE_CURRENT_BINARY_DIR}/SVFConfig.cmake
153
+ INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/SVF
154
+ PATH_VARS
155
+ SVF_INSTALL_ROOT
156
+ SVF_INSTALL_BIN_DIR
157
+ SVF_INSTALL_LIB_DIR
158
+ SVF_INSTALL_INCLUDE_DIR
159
+ SVF_INSTALL_EXTAPI_DIR
160
+ SVF_INSTALL_EXTAPI_FILE
161
+ )
89
162
 
90
- # Install generated configuration header (see `configure_file()`) to top-level include dir of SVF
91
- include(GNUInstallDirs)
163
+ # Generate SVFConfigVersion.cmake
164
+ write_basic_package_version_file(
165
+ "${CMAKE_CURRENT_BINARY_DIR}/SVFConfigVersion.cmake"
166
+ VERSION "${SVF_VERSION_MAJOR}.${SVF_VERSION_MINOR}"
167
+ COMPATIBILITY AnyNewerVersion
168
+ )
169
+
170
+ # Install above CMake files as part of installation
92
171
  install(
93
- FILES ${PROJECT_BINARY_DIR}/include/Util/config.h
94
- DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/svf/Util
172
+ FILES
173
+ ${CMAKE_CURRENT_BINARY_DIR}/SVFConfig.cmake
174
+ ${CMAKE_CURRENT_BINARY_DIR}/SVFConfigVersion.cmake
175
+ DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/SVF
95
176
  )
177
+
178
+ # Install CMake targets from different SVF subprojects so they can be found by find_package(SVF)
179
+ install(
180
+ EXPORT SVFTargets
181
+ FILE SVFTargets.cmake
182
+ DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/SVF
183
+ )
184
+
185
+ # Export targets added to SVFTargets (set by install() command)
186
+ export(EXPORT SVFTargets FILE "${CMAKE_CURRENT_BINARY_DIR}/SVFTargets.cmake")
@@ -72,8 +72,6 @@ $(function() {
72
72
  Functions</h2></td></tr>
73
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
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
75
  </table>
78
76
  <h2 class="groupheader">Function Documentation</h2>
79
77
  <a id="ab0c0fec5e777861a934894bc00fc585c"></a>
@@ -93,28 +91,7 @@ Functions</h2></td></tr>
93
91
  </div><div class="memdoc">
94
92
 
95
93
  <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>
94
+ <div class="fragment"><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160; {CMAKE_BINARY_DIR}/bin</div>
118
95
  </div><!-- fragment -->
119
96
  </div>
120
97
  </div>
@@ -117,8 +117,6 @@ Functions</h2></td></tr>
117
117
  <tr class="separator:a559e62edd847a597c92f3acd9b8b6ba4"><td class="memSeparator" colspan="2">&#160;</td></tr>
118
118
  <tr class="memitem:adcb0d3ff88a32d766b60a847f84871ec"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="extapi_8c.html#adcb0d3ff88a32d766b60a847f84871ec">__attribute__</a> ((annotate(&quot;MEMSET&quot;)))</td></tr>
119
119
  <tr class="separator:adcb0d3ff88a32d766b60a847f84871ec"><td class="memSeparator" colspan="2">&#160;</td></tr>
120
- <tr class="memitem:a09f0eaec0f51d66148f8b81ea44e9f2a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="extapi_8c.html#a09f0eaec0f51d66148f8b81ea44e9f2a">__attribute__</a> ((annotate(&quot;MEMSET&quot;), annotate(&quot;BUF_CHECK:Arg0, Arg2&quot;)))</td></tr>
121
- <tr class="separator:a09f0eaec0f51d66148f8b81ea44e9f2a"><td class="memSeparator" colspan="2">&#160;</td></tr>
122
120
  <tr class="memitem:ac8de243be63b5a590e4921642fd4bf4e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="extapi_8c.html#ac8de243be63b5a590e4921642fd4bf4e">__attribute__</a> ((annotate(&quot;STRCPY&quot;)))</td></tr>
123
121
  <tr class="separator:ac8de243be63b5a590e4921642fd4bf4e"><td class="memSeparator" colspan="2">&#160;</td></tr>
124
122
  <tr class="memitem:a3510ee3eaec8acfcf3ae0f084bb098c3"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="extapi_8c.html#a3510ee3eaec8acfcf3ae0f084bb098c3">__attribute__</a> ((annotate(&quot;STRCAT&quot;)))</td></tr>
@@ -361,7 +359,7 @@ Functions</h2></td></tr>
361
359
  </div>
362
360
  <h2 class="groupheader">Function Documentation</h2>
363
361
  <a id="acdc4a948c527401ff9433498a9757f03"></a>
364
- <h2 class="memtitle"><span class="permalink"><a href="#acdc4a948c527401ff9433498a9757f03">&#9670;&nbsp;</a></span>__attribute__() <span class="overload">[1/17]</span></h2>
362
+ <h2 class="memtitle"><span class="permalink"><a href="#acdc4a948c527401ff9433498a9757f03">&#9670;&nbsp;</a></span>__attribute__() <span class="overload">[1/16]</span></h2>
365
363
 
366
364
  <div class="memitem">
367
365
  <div class="memproto">
@@ -386,7 +384,7 @@ Functions</h2></td></tr>
386
384
  </div>
387
385
  </div>
388
386
  <a id="a1a9dbf9c1aae63329912afd2c7e2cf4c"></a>
389
- <h2 class="memtitle"><span class="permalink"><a href="#a1a9dbf9c1aae63329912afd2c7e2cf4c">&#9670;&nbsp;</a></span>__attribute__() <span class="overload">[2/17]</span></h2>
387
+ <h2 class="memtitle"><span class="permalink"><a href="#a1a9dbf9c1aae63329912afd2c7e2cf4c">&#9670;&nbsp;</a></span>__attribute__() <span class="overload">[2/16]</span></h2>
390
388
 
391
389
  <div class="memitem">
392
390
  <div class="memproto">
@@ -411,7 +409,7 @@ Functions</h2></td></tr>
411
409
  </div>
412
410
  </div>
413
411
  <a id="a06951362ddd7447558e892464d726187"></a>
414
- <h2 class="memtitle"><span class="permalink"><a href="#a06951362ddd7447558e892464d726187">&#9670;&nbsp;</a></span>__attribute__() <span class="overload">[3/17]</span></h2>
412
+ <h2 class="memtitle"><span class="permalink"><a href="#a06951362ddd7447558e892464d726187">&#9670;&nbsp;</a></span>__attribute__() <span class="overload">[3/16]</span></h2>
415
413
 
416
414
  <div class="memitem">
417
415
  <div class="memproto">
@@ -436,7 +434,7 @@ Functions</h2></td></tr>
436
434
  </div>
437
435
  </div>
438
436
  <a id="a4a246cca542ae318b758081d5e0b41fe"></a>
439
- <h2 class="memtitle"><span class="permalink"><a href="#a4a246cca542ae318b758081d5e0b41fe">&#9670;&nbsp;</a></span>__attribute__() <span class="overload">[4/17]</span></h2>
437
+ <h2 class="memtitle"><span class="permalink"><a href="#a4a246cca542ae318b758081d5e0b41fe">&#9670;&nbsp;</a></span>__attribute__() <span class="overload">[4/16]</span></h2>
440
438
 
441
439
  <div class="memitem">
442
440
  <div class="memproto">
@@ -461,7 +459,7 @@ Functions</h2></td></tr>
461
459
  </div>
462
460
  </div>
463
461
  <a id="a3a547ecc92598d2d029246dab1630428"></a>
464
- <h2 class="memtitle"><span class="permalink"><a href="#a3a547ecc92598d2d029246dab1630428">&#9670;&nbsp;</a></span>__attribute__() <span class="overload">[5/17]</span></h2>
462
+ <h2 class="memtitle"><span class="permalink"><a href="#a3a547ecc92598d2d029246dab1630428">&#9670;&nbsp;</a></span>__attribute__() <span class="overload">[5/16]</span></h2>
465
463
 
466
464
  <div class="memitem">
467
465
  <div class="memproto">
@@ -486,7 +484,7 @@ Functions</h2></td></tr>
486
484
  </div>
487
485
  </div>
488
486
  <a id="afdab9dcd0a3e6185c17c11ab0d5fc968"></a>
489
- <h2 class="memtitle"><span class="permalink"><a href="#afdab9dcd0a3e6185c17c11ab0d5fc968">&#9670;&nbsp;</a></span>__attribute__() <span class="overload">[6/17]</span></h2>
487
+ <h2 class="memtitle"><span class="permalink"><a href="#afdab9dcd0a3e6185c17c11ab0d5fc968">&#9670;&nbsp;</a></span>__attribute__() <span class="overload">[6/16]</span></h2>
490
488
 
491
489
  <div class="memitem">
492
490
  <div class="memproto">
@@ -511,7 +509,7 @@ Functions</h2></td></tr>
511
509
  </div>
512
510
  </div>
513
511
  <a id="afc1cad7cb40c599988237bf687c00929"></a>
514
- <h2 class="memtitle"><span class="permalink"><a href="#afc1cad7cb40c599988237bf687c00929">&#9670;&nbsp;</a></span>__attribute__() <span class="overload">[7/17]</span></h2>
512
+ <h2 class="memtitle"><span class="permalink"><a href="#afc1cad7cb40c599988237bf687c00929">&#9670;&nbsp;</a></span>__attribute__() <span class="overload">[7/16]</span></h2>
515
513
 
516
514
  <div class="memitem">
517
515
  <div class="memproto">
@@ -536,7 +534,7 @@ Functions</h2></td></tr>
536
534
  </div>
537
535
  </div>
538
536
  <a id="a0d2d52b60870b500c2b4844a0ee2c90d"></a>
539
- <h2 class="memtitle"><span class="permalink"><a href="#a0d2d52b60870b500c2b4844a0ee2c90d">&#9670;&nbsp;</a></span>__attribute__() <span class="overload">[8/17]</span></h2>
537
+ <h2 class="memtitle"><span class="permalink"><a href="#a0d2d52b60870b500c2b4844a0ee2c90d">&#9670;&nbsp;</a></span>__attribute__() <span class="overload">[8/16]</span></h2>
540
538
 
541
539
  <div class="memitem">
542
540
  <div class="memproto">
@@ -561,7 +559,7 @@ Functions</h2></td></tr>
561
559
  </div>
562
560
  </div>
563
561
  <a id="a559e62edd847a597c92f3acd9b8b6ba4"></a>
564
- <h2 class="memtitle"><span class="permalink"><a href="#a559e62edd847a597c92f3acd9b8b6ba4">&#9670;&nbsp;</a></span>__attribute__() <span class="overload">[9/17]</span></h2>
562
+ <h2 class="memtitle"><span class="permalink"><a href="#a559e62edd847a597c92f3acd9b8b6ba4">&#9670;&nbsp;</a></span>__attribute__() <span class="overload">[9/16]</span></h2>
565
563
 
566
564
  <div class="memitem">
567
565
  <div class="memproto">
@@ -582,7 +580,7 @@ Functions</h2></td></tr>
582
580
  </div>
583
581
  </div>
584
582
  <a id="adcb0d3ff88a32d766b60a847f84871ec"></a>
585
- <h2 class="memtitle"><span class="permalink"><a href="#adcb0d3ff88a32d766b60a847f84871ec">&#9670;&nbsp;</a></span>__attribute__() <span class="overload">[10/17]</span></h2>
583
+ <h2 class="memtitle"><span class="permalink"><a href="#adcb0d3ff88a32d766b60a847f84871ec">&#9670;&nbsp;</a></span>__attribute__() <span class="overload">[10/16]</span></h2>
586
584
 
587
585
  <div class="memitem">
588
586
  <div class="memproto">
@@ -602,32 +600,8 @@ Functions</h2></td></tr>
602
600
  </div><!-- fragment -->
603
601
  </div>
604
602
  </div>
605
- <a id="a09f0eaec0f51d66148f8b81ea44e9f2a"></a>
606
- <h2 class="memtitle"><span class="permalink"><a href="#a09f0eaec0f51d66148f8b81ea44e9f2a">&#9670;&nbsp;</a></span>__attribute__() <span class="overload">[11/17]</span></h2>
607
-
608
- <div class="memitem">
609
- <div class="memproto">
610
- <table class="memname">
611
- <tr>
612
- <td class="memname">__attribute__ </td>
613
- <td>(</td>
614
- <td class="paramtype">(annotate(&quot;MEMSET&quot;), annotate(&quot;BUF_CHECK:Arg0, Arg2&quot;))&#160;</td>
615
- <td class="paramname"></td><td>)</td>
616
- <td></td>
617
- </tr>
618
- </table>
619
- </div><div class="memdoc">
620
-
621
- <p class="definition">Definition at line <a class="el" href="extapi_8c_source.html#l00616">616</a> of file <a class="el" href="extapi_8c_source.html">extapi.c</a>.</p>
622
- <div class="fragment"><div class="line"><a name="l00616"></a><span class="lineno"> 616</span>&#160; :Arg0, Arg2<span class="stringliteral">&quot;)))</span></div>
623
- <div class="line"><a name="l00617"></a><span class="lineno"> 617</span>&#160;<span class="stringliteral">char *wmemset(wchar_t * dst, wchar_t elem, int sz, int flag) {</span></div>
624
- <div class="line"><a name="l00618"></a><span class="lineno"> 618</span>&#160;<span class="stringliteral"> return NULL;</span></div>
625
- <div class="line"><a name="l00619"></a><span class="lineno"> 619</span>&#160;<span class="stringliteral">}</span></div>
626
- </div><!-- fragment -->
627
- </div>
628
- </div>
629
603
  <a id="ad32a60532b1ae70c19221d180ade9b74"></a>
630
- <h2 class="memtitle"><span class="permalink"><a href="#ad32a60532b1ae70c19221d180ade9b74">&#9670;&nbsp;</a></span>__attribute__() <span class="overload">[12/17]</span></h2>
604
+ <h2 class="memtitle"><span class="permalink"><a href="#ad32a60532b1ae70c19221d180ade9b74">&#9670;&nbsp;</a></span>__attribute__() <span class="overload">[11/16]</span></h2>
631
605
 
632
606
  <div class="memitem">
633
607
  <div class="memproto">
@@ -652,7 +626,7 @@ Functions</h2></td></tr>
652
626
  </div>
653
627
  </div>
654
628
  <a id="a1e7f01f19313d2c4c4f9b18a02574c93"></a>
655
- <h2 class="memtitle"><span class="permalink"><a href="#a1e7f01f19313d2c4c4f9b18a02574c93">&#9670;&nbsp;</a></span>__attribute__() <span class="overload">[13/17]</span></h2>
629
+ <h2 class="memtitle"><span class="permalink"><a href="#a1e7f01f19313d2c4c4f9b18a02574c93">&#9670;&nbsp;</a></span>__attribute__() <span class="overload">[12/16]</span></h2>
656
630
 
657
631
  <div class="memitem">
658
632
  <div class="memproto">
@@ -677,7 +651,7 @@ Functions</h2></td></tr>
677
651
  </div>
678
652
  </div>
679
653
  <a id="a2053c6691b7c7b2e199d342ac2cbdc54"></a>
680
- <h2 class="memtitle"><span class="permalink"><a href="#a2053c6691b7c7b2e199d342ac2cbdc54">&#9670;&nbsp;</a></span>__attribute__() <span class="overload">[14/17]</span></h2>
654
+ <h2 class="memtitle"><span class="permalink"><a href="#a2053c6691b7c7b2e199d342ac2cbdc54">&#9670;&nbsp;</a></span>__attribute__() <span class="overload">[13/16]</span></h2>
681
655
 
682
656
  <div class="memitem">
683
657
  <div class="memproto">
@@ -702,7 +676,7 @@ Functions</h2></td></tr>
702
676
  </div>
703
677
  </div>
704
678
  <a id="a71fa8bd2eab45f458251611d08c1db7c"></a>
705
- <h2 class="memtitle"><span class="permalink"><a href="#a71fa8bd2eab45f458251611d08c1db7c">&#9670;&nbsp;</a></span>__attribute__() <span class="overload">[15/17]</span></h2>
679
+ <h2 class="memtitle"><span class="permalink"><a href="#a71fa8bd2eab45f458251611d08c1db7c">&#9670;&nbsp;</a></span>__attribute__() <span class="overload">[14/16]</span></h2>
706
680
 
707
681
  <div class="memitem">
708
682
  <div class="memproto">
@@ -727,7 +701,7 @@ Functions</h2></td></tr>
727
701
  </div>
728
702
  </div>
729
703
  <a id="a3510ee3eaec8acfcf3ae0f084bb098c3"></a>
730
- <h2 class="memtitle"><span class="permalink"><a href="#a3510ee3eaec8acfcf3ae0f084bb098c3">&#9670;&nbsp;</a></span>__attribute__() <span class="overload">[16/17]</span></h2>
704
+ <h2 class="memtitle"><span class="permalink"><a href="#a3510ee3eaec8acfcf3ae0f084bb098c3">&#9670;&nbsp;</a></span>__attribute__() <span class="overload">[15/16]</span></h2>
731
705
 
732
706
  <div class="memitem">
733
707
  <div class="memproto">
@@ -750,7 +724,7 @@ Functions</h2></td></tr>
750
724
  </div>
751
725
  </div>
752
726
  <a id="ac8de243be63b5a590e4921642fd4bf4e"></a>
753
- <h2 class="memtitle"><span class="permalink"><a href="#ac8de243be63b5a590e4921642fd4bf4e">&#9670;&nbsp;</a></span>__attribute__() <span class="overload">[17/17]</span></h2>
727
+ <h2 class="memtitle"><span class="permalink"><a href="#ac8de243be63b5a590e4921642fd4bf4e">&#9670;&nbsp;</a></span>__attribute__() <span class="overload">[16/16]</span></h2>
754
728
 
755
729
  <div class="memitem">
756
730
  <div class="memproto">
@@ -684,7 +684,7 @@ $(function() {
684
684
  <div class="line"><a name="l00613"></a><span class="lineno"> 613</span>&#160; <span class="keywordflow">return</span> <a class="code" href="extapi_8c.html#a1a05ede2ad100bf5de5dfa7ccdfa4397">NULL</a>;</div>
685
685
  <div class="line"><a name="l00614"></a><span class="lineno"> 614</span>&#160;}</div>
686
686
  <div class="line"><a name="l00615"></a><span class="lineno"> 615</span>&#160; </div>
687
- <div class="line"><a name="l00616"></a><span class="lineno"><a class="line" href="extapi_8c.html#a09f0eaec0f51d66148f8b81ea44e9f2a"> 616</a></span>&#160;<a class="code" href="extapi_8c.html#a3a547ecc92598d2d029246dab1630428">__attribute__</a>((annotate(<span class="stringliteral">&quot;MEMSET&quot;</span>), annotate(<span class="stringliteral">&quot;BUF_CHECK:Arg0, Arg2&quot;</span>)))</div>
687
+ <div class="line"><a name="l00616"></a><span class="lineno"> 616</span>&#160;<a class="code" href="extapi_8c.html#a3a547ecc92598d2d029246dab1630428">__attribute__</a>((annotate(<span class="stringliteral">&quot;MEMSET&quot;</span>)))</div>
688
688
  <div class="line"><a name="l00617"></a><span class="lineno"> 617</span>&#160;char *wmemset(<span class="keywordtype">wchar_t</span> * dst, <span class="keywordtype">wchar_t</span> elem, <span class="keywordtype">int</span> sz, <span class="keywordtype">int</span> flag) {</div>
689
689
  <div class="line"><a name="l00618"></a><span class="lineno"> 618</span>&#160; <span class="keywordflow">return</span> <a class="code" href="extapi_8c.html#a1a05ede2ad100bf5de5dfa7ccdfa4397">NULL</a>;</div>
690
690
  <div class="line"><a name="l00619"></a><span class="lineno"> 619</span>&#160;}</div>
@@ -67,7 +67,7 @@ $(function() {
67
67
  <li>__attribute__()
68
68
  : <a class="el" href="extapi_8c.html#a3a547ecc92598d2d029246dab1630428">extapi.c</a>
69
69
  , <a class="el" href="SVFValue_8cpp.html#a81025d840e81f5c9a9c6b70a5377ac6f">SVFValue.cpp</a>
70
- , <a class="el" href="extapi_8c.html#a71fa8bd2eab45f458251611d08c1db7c">extapi.c</a>
70
+ , <a class="el" href="extapi_8c.html#acdc4a948c527401ff9433498a9757f03">extapi.c</a>
71
71
  </li>
72
72
  <li>__ctype_b_loc()
73
73
  : <a class="el" href="extapi_8c.html#ab9defe9717c79e55af6a95e6ce7addb2">extapi.c</a>
@@ -88,8 +88,8 @@ $(function() {
88
88
  : <a class="el" href="extapi_8c.html#a78579ef16de38e7c4d6b6c31662f7741">extapi.c</a>
89
89
  </li>
90
90
  <li>__pad0__
91
- : <a class="el" href="cJSON_8cpp.html#a063ce73c04d527a0f7ee43fe3ddebdd3">cJSON.cpp</a>
92
- , <a class="el" href="PAGGrammar_8txt.html#ad8c410068267cc7ccd0765a7bd51a2bf">PAGGrammar.txt</a>
91
+ : <a class="el" href="PAGGrammar_8txt.html#ad8c410068267cc7ccd0765a7bd51a2bf">PAGGrammar.txt</a>
92
+ , <a class="el" href="cJSON_8cpp.html#a063ce73c04d527a0f7ee43fe3ddebdd3">cJSON.cpp</a>
93
93
  </li>
94
94
  <li>__pad1__
95
95
  : <a class="el" href="PEGGrammar_8txt.html#a13f26ce59806bd1663350be4f8888464">PEGGrammar.txt</a>
@@ -67,7 +67,7 @@ $(function() {
67
67
  <li>__attribute__()
68
68
  : <a class="el" href="extapi_8c.html#a3a547ecc92598d2d029246dab1630428">extapi.c</a>
69
69
  , <a class="el" href="SVFValue_8cpp.html#a81025d840e81f5c9a9c6b70a5377ac6f">SVFValue.cpp</a>
70
- , <a class="el" href="extapi_8c.html#a71fa8bd2eab45f458251611d08c1db7c">extapi.c</a>
70
+ , <a class="el" href="extapi_8c.html#acdc4a948c527401ff9433498a9757f03">extapi.c</a>
71
71
  </li>
72
72
  <li>__ctype_b_loc()
73
73
  : <a class="el" href="extapi_8c.html#ab9defe9717c79e55af6a95e6ce7addb2">extapi.c</a>
@@ -67,9 +67,6 @@ $(function() {
67
67
  <li>if()
68
68
  : <a class="el" href="cJSON_8cpp.html#a90e6101bee79e6d18c535254695e91e3">cJSON.cpp</a>
69
69
  </li>
70
- <li>include()
71
- : <a class="el" href="CMakeLists_8txt.html#a9f6d70f6197845162ae5fd12f33f094a">CMakeLists.txt</a>
72
- </li>
73
70
  <li>indent()
74
71
  : <a class="el" href="DCHG_8cpp.html#a6673217180d3b6fb73c7c6387777f269">DCHG.cpp</a>
75
72
  </li>
@@ -67,9 +67,6 @@ $(function() {
67
67
  <li>if()
68
68
  : <a class="el" href="cJSON_8cpp.html#a90e6101bee79e6d18c535254695e91e3">cJSON.cpp</a>
69
69
  </li>
70
- <li>include()
71
- : <a class="el" href="CMakeLists_8txt.html#a9f6d70f6197845162ae5fd12f33f094a">CMakeLists.txt</a>
72
- </li>
73
70
  <li>indent()
74
71
  : <a class="el" href="DCHG_8cpp.html#a6673217180d3b6fb73c7c6387777f269">DCHG.cpp</a>
75
72
  </li>
@@ -139,8 +136,8 @@ $(function() {
139
136
  : <a class="el" href="extapi_8c.html#adaf3aadefe3fc4fb07b6be0d7b880f53">extapi.c</a>
140
137
  </li>
141
138
  <li>item
142
- : <a class="el" href="cJSON_8cpp.html#ac011de571ff16ba220d2e0d757e4e8b0">cJSON.cpp</a>
143
- , <a class="el" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">cJSON.h</a>
139
+ : <a class="el" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">cJSON.h</a>
140
+ , <a class="el" href="cJSON_8cpp.html#ac011de571ff16ba220d2e0d757e4e8b0">cJSON.cpp</a>
144
141
  </li>
145
142
  </ul>
146
143
  </div><!-- contents -->
@@ -1,6 +1,6 @@
1
1
  var searchData=
2
2
  [
3
- ['_5f_5fattribute_5f_5f_0',['__attribute__',['../extapi_8c.html#a3a547ecc92598d2d029246dab1630428',1,'__attribute__((annotate(&quot;ALLOC_RET&quot;), annotate(&quot;AllocSize:Arg0&quot;))):&#160;extapi.c'],['../extapi_8c.html#a0d2d52b60870b500c2b4844a0ee2c90d',1,'__attribute__((annotate(&quot;ALLOC_RET&quot;), annotate(&quot;AllocSize:UNKNOWN&quot;))):&#160;extapi.c'],['../extapi_8c.html#afdab9dcd0a3e6185c17c11ab0d5fc968',1,'__attribute__((annotate(&quot;ALLOC_RET&quot;), annotate(&quot;AllocSize:Arg0*Arg1&quot;))):&#160;extapi.c'],['../extapi_8c.html#afc1cad7cb40c599988237bf687c00929',1,'__attribute__((annotate(&quot;ALLOC_RET&quot;), annotate(&quot;AllocSize:Arg1&quot;))):&#160;extapi.c'],['../extapi_8c.html#a71fa8bd2eab45f458251611d08c1db7c',1,'__attribute__((annotate(&quot;REALLOC_RET&quot;), annotate(&quot;AllocSize:UNKNOWN&quot;))):&#160;extapi.c'],['../extapi_8c.html#a1e7f01f19313d2c4c4f9b18a02574c93',1,'__attribute__((annotate(&quot;REALLOC_RET&quot;), annotate(&quot;AllocSize:Arg1&quot;))):&#160;extapi.c'],['../extapi_8c.html#a2053c6691b7c7b2e199d342ac2cbdc54',1,'__attribute__((annotate(&quot;REALLOC_RET&quot;), annotate(&quot;AllocSize:Arg1*Arg2&quot;))):&#160;extapi.c'],['../extapi_8c.html#a1a9dbf9c1aae63329912afd2c7e2cf4c',1,'__attribute__((annotate(&quot;ALLOC_ARG0&quot;), annotate(&quot;AllocSize:UNKNOWN&quot;))):&#160;extapi.c'],['../extapi_8c.html#acdc4a948c527401ff9433498a9757f03',1,'__attribute__((annotate(&quot;ALLOC_ARG0&quot;), annotate(&quot;AllocSize:Arg2&quot;))):&#160;extapi.c'],['../extapi_8c.html#a06951362ddd7447558e892464d726187',1,'__attribute__((annotate(&quot;ALLOC_ARG1&quot;), annotate(&quot;AllocSize:UNKNOWN&quot;))):&#160;extapi.c'],['../extapi_8c.html#a4a246cca542ae318b758081d5e0b41fe',1,'__attribute__((annotate(&quot;ALLOC_ARG2&quot;), annotate(&quot;AllocSize:UNKNOWN&quot;))):&#160;extapi.c'],['../extapi_8c.html#a559e62edd847a597c92f3acd9b8b6ba4',1,'__attribute__((annotate(&quot;MEMCPY&quot;))):&#160;extapi.c'],['../extapi_8c.html#adcb0d3ff88a32d766b60a847f84871ec',1,'__attribute__((annotate(&quot;MEMSET&quot;))):&#160;extapi.c'],['../extapi_8c.html#a09f0eaec0f51d66148f8b81ea44e9f2a',1,'__attribute__((annotate(&quot;MEMSET&quot;), annotate(&quot;BUF_CHECK:Arg0, Arg2&quot;))):&#160;extapi.c'],['../extapi_8c.html#ac8de243be63b5a590e4921642fd4bf4e',1,'__attribute__((annotate(&quot;STRCPY&quot;))):&#160;extapi.c'],['../extapi_8c.html#a3510ee3eaec8acfcf3ae0f084bb098c3',1,'__attribute__((annotate(&quot;STRCAT&quot;))):&#160;extapi.c'],['../extapi_8c.html#ad32a60532b1ae70c19221d180ade9b74',1,'__attribute__((annotate(&quot;OVERWRITE&quot;))):&#160;extapi.c'],['../namespaceSVF.html#a49a1be0ba69daf3b4f695f41ad812825',1,'SVF::__attribute__()'],['../SVFValue_8cpp.html#a81025d840e81f5c9a9c6b70a5377ac6f',1,'__attribute__():&#160;SVFValue.cpp']]],
3
+ ['_5f_5fattribute_5f_5f_0',['__attribute__',['../extapi_8c.html#a3a547ecc92598d2d029246dab1630428',1,'__attribute__((annotate(&quot;ALLOC_RET&quot;), annotate(&quot;AllocSize:Arg0&quot;))):&#160;extapi.c'],['../extapi_8c.html#a0d2d52b60870b500c2b4844a0ee2c90d',1,'__attribute__((annotate(&quot;ALLOC_RET&quot;), annotate(&quot;AllocSize:UNKNOWN&quot;))):&#160;extapi.c'],['../extapi_8c.html#afdab9dcd0a3e6185c17c11ab0d5fc968',1,'__attribute__((annotate(&quot;ALLOC_RET&quot;), annotate(&quot;AllocSize:Arg0*Arg1&quot;))):&#160;extapi.c'],['../extapi_8c.html#afc1cad7cb40c599988237bf687c00929',1,'__attribute__((annotate(&quot;ALLOC_RET&quot;), annotate(&quot;AllocSize:Arg1&quot;))):&#160;extapi.c'],['../extapi_8c.html#a71fa8bd2eab45f458251611d08c1db7c',1,'__attribute__((annotate(&quot;REALLOC_RET&quot;), annotate(&quot;AllocSize:UNKNOWN&quot;))):&#160;extapi.c'],['../extapi_8c.html#a1e7f01f19313d2c4c4f9b18a02574c93',1,'__attribute__((annotate(&quot;REALLOC_RET&quot;), annotate(&quot;AllocSize:Arg1&quot;))):&#160;extapi.c'],['../extapi_8c.html#a2053c6691b7c7b2e199d342ac2cbdc54',1,'__attribute__((annotate(&quot;REALLOC_RET&quot;), annotate(&quot;AllocSize:Arg1*Arg2&quot;))):&#160;extapi.c'],['../extapi_8c.html#a1a9dbf9c1aae63329912afd2c7e2cf4c',1,'__attribute__((annotate(&quot;ALLOC_ARG0&quot;), annotate(&quot;AllocSize:UNKNOWN&quot;))):&#160;extapi.c'],['../extapi_8c.html#acdc4a948c527401ff9433498a9757f03',1,'__attribute__((annotate(&quot;ALLOC_ARG0&quot;), annotate(&quot;AllocSize:Arg2&quot;))):&#160;extapi.c'],['../extapi_8c.html#a06951362ddd7447558e892464d726187',1,'__attribute__((annotate(&quot;ALLOC_ARG1&quot;), annotate(&quot;AllocSize:UNKNOWN&quot;))):&#160;extapi.c'],['../extapi_8c.html#a4a246cca542ae318b758081d5e0b41fe',1,'__attribute__((annotate(&quot;ALLOC_ARG2&quot;), annotate(&quot;AllocSize:UNKNOWN&quot;))):&#160;extapi.c'],['../extapi_8c.html#a559e62edd847a597c92f3acd9b8b6ba4',1,'__attribute__((annotate(&quot;MEMCPY&quot;))):&#160;extapi.c'],['../extapi_8c.html#adcb0d3ff88a32d766b60a847f84871ec',1,'__attribute__((annotate(&quot;MEMSET&quot;))):&#160;extapi.c'],['../extapi_8c.html#ac8de243be63b5a590e4921642fd4bf4e',1,'__attribute__((annotate(&quot;STRCPY&quot;))):&#160;extapi.c'],['../extapi_8c.html#a3510ee3eaec8acfcf3ae0f084bb098c3',1,'__attribute__((annotate(&quot;STRCAT&quot;))):&#160;extapi.c'],['../extapi_8c.html#ad32a60532b1ae70c19221d180ade9b74',1,'__attribute__((annotate(&quot;OVERWRITE&quot;))):&#160;extapi.c'],['../namespaceSVF.html#a49a1be0ba69daf3b4f695f41ad812825',1,'SVF::__attribute__()'],['../SVFValue_8cpp.html#a81025d840e81f5c9a9c6b70a5377ac6f',1,'__attribute__():&#160;SVFValue.cpp']]],
4
4
  ['_5f_5fctype_5fb_5floc_1',['__ctype_b_loc',['../extapi_8c.html#ab9defe9717c79e55af6a95e6ce7addb2',1,'extapi.c']]],
5
5
  ['_5f_5fctype_5ftolower_5floc_2',['__ctype_tolower_loc',['../extapi_8c.html#ab80118dda05e64167867c0a7ee84bec7',1,'extapi.c']]],
6
6
  ['_5f_5fctype_5ftoupper_5floc_3',['__ctype_toupper_loc',['../extapi_8c.html#a45737a9e57d118eb6f6298e4411e3d3d',1,'extapi.c']]],