svf-tools 1.0.774 → 1.0.776

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 (313) hide show
  1. package/SVF-doxygen/html/html/Andersen_8cpp_source.html +1 -1
  2. package/SVF-doxygen/html/html/CFLAlias_8cpp_source.html +1 -1
  3. package/SVF-doxygen/html/html/CHGBuilder_8cpp_source.html +9 -9
  4. package/SVF-doxygen/html/html/ConsG_8cpp_source.html +1 -1
  5. package/SVF-doxygen/html/html/CxtStmt_8h_source.html +1 -1
  6. package/SVF-doxygen/html/html/DCHG_8cpp_source.html +2 -2
  7. package/SVF-doxygen/html/html/DDAClient_8cpp_source.html +1 -1
  8. package/SVF-doxygen/html/html/ICFGBuilder_8cpp_source.html +1 -1
  9. package/SVF-doxygen/html/html/ICFG_8cpp_source.html +1 -1
  10. package/SVF-doxygen/html/html/LLVMModule_8cpp_source.html +585 -576
  11. package/SVF-doxygen/html/html/LLVMModule_8h_source.html +147 -164
  12. package/SVF-doxygen/html/html/LLVMUtil_8cpp_source.html +706 -633
  13. package/SVF-doxygen/html/html/LLVMUtil_8h.html +7 -2
  14. package/SVF-doxygen/html/html/LLVMUtil_8h_source.html +172 -174
  15. package/SVF-doxygen/html/html/LockResultValidator_8cpp_source.html +1 -1
  16. package/SVF-doxygen/html/html/MHP_8cpp_source.html +1 -1
  17. package/SVF-doxygen/html/html/MTAAnnotator_8cpp_source.html +1 -1
  18. package/SVF-doxygen/html/html/MemSSA_8cpp_source.html +1 -1
  19. package/SVF-doxygen/html/html/PointerAnalysis_8cpp_source.html +1 -1
  20. package/SVF-doxygen/html/html/SVFIR2ConsExeState_8cpp_source.html +1 -1
  21. package/SVF-doxygen/html/html/SVFIR2ItvExeState_8cpp_source.html +1 -1
  22. package/SVF-doxygen/html/html/SVFIRBuilder_8cpp_source.html +6 -6
  23. package/SVF-doxygen/html/html/SVFIRBuilder_8h_source.html +2 -2
  24. package/SVF-doxygen/html/html/SVFIRExtAPI_8cpp_source.html +2 -2
  25. package/SVF-doxygen/html/html/SVFLoop_8h_source.html +3 -3
  26. package/SVF-doxygen/html/html/SVFStatements_8cpp_source.html +1 -1
  27. package/SVF-doxygen/html/html/SVFValue_8h_source.html +1 -1
  28. package/SVF-doxygen/html/html/SVFVariables_8cpp_source.html +1 -1
  29. package/SVF-doxygen/html/html/Steensgaard_8cpp_source.html +1 -1
  30. package/SVF-doxygen/html/html/SymbolTableBuilder_8cpp_source.html +7 -7
  31. package/SVF-doxygen/html/html/SymbolTableInfo_8cpp_source.html +1 -1
  32. package/SVF-doxygen/html/html/classSVF_1_1ActualINSVFGNode.html +1 -1
  33. package/SVF-doxygen/html/html/classSVF_1_1ActualOUTSVFGNode.html +1 -1
  34. package/SVF-doxygen/html/html/classSVF_1_1AddrStmt.html +1 -1
  35. package/SVF-doxygen/html/html/classSVF_1_1AliasDDAClient.html +1 -1
  36. package/SVF-doxygen/html/html/classSVF_1_1Andersen.html +1 -1
  37. package/SVF-doxygen/html/html/classSVF_1_1BinaryOPStmt.html +1 -1
  38. package/SVF-doxygen/html/html/classSVF_1_1BinaryOPVFGNode.html +1 -1
  39. package/SVF-doxygen/html/html/classSVF_1_1BranchStmt.html +1 -1
  40. package/SVF-doxygen/html/html/classSVF_1_1CFLAlias.html +1 -1
  41. package/SVF-doxygen/html/html/classSVF_1_1CHGBuilder.html +9 -9
  42. package/SVF-doxygen/html/html/classSVF_1_1CallCFGEdge.html +1 -1
  43. package/SVF-doxygen/html/html/classSVF_1_1CallPE.html +1 -1
  44. package/SVF-doxygen/html/html/classSVF_1_1CmpStmt.html +1 -1
  45. package/SVF-doxygen/html/html/classSVF_1_1CmpVFGNode.html +1 -1
  46. package/SVF-doxygen/html/html/classSVF_1_1CopyStmt.html +1 -1
  47. package/SVF-doxygen/html/html/classSVF_1_1CxtStmt.html +1 -1
  48. package/SVF-doxygen/html/html/classSVF_1_1CxtThread.html +1 -1
  49. package/SVF-doxygen/html/html/classSVF_1_1CxtThreadStmt.html +1 -1
  50. package/SVF-doxygen/html/html/classSVF_1_1DCHGraph.html +2 -2
  51. package/SVF-doxygen/html/html/classSVF_1_1DoubleFreeChecker.html +1 -1
  52. package/SVF-doxygen/html/html/classSVF_1_1FIObjVar.html +1 -1
  53. package/SVF-doxygen/html/html/classSVF_1_1ForkJoinAnalysis.html +1 -1
  54. package/SVF-doxygen/html/html/classSVF_1_1GepObjVar.html +1 -1
  55. package/SVF-doxygen/html/html/classSVF_1_1GepStmt.html +1 -1
  56. package/SVF-doxygen/html/html/classSVF_1_1GepValVar.html +1 -1
  57. package/SVF-doxygen/html/html/classSVF_1_1ICFG.html +1 -1
  58. package/SVF-doxygen/html/html/classSVF_1_1ICFGBuilder.html +1 -1
  59. package/SVF-doxygen/html/html/classSVF_1_1InterMSSAPHISVFGNode.html +1 -1
  60. package/SVF-doxygen/html/html/classSVF_1_1InterPHIVFGNode.html +1 -1
  61. package/SVF-doxygen/html/html/classSVF_1_1IntraCFGEdge.html +1 -1
  62. package/SVF-doxygen/html/html/classSVF_1_1IntraICFGNode.html +1 -1
  63. package/SVF-doxygen/html/html/classSVF_1_1IntraPHIVFGNode.html +1 -1
  64. package/SVF-doxygen/html/html/classSVF_1_1LLVMModuleSet.html +658 -665
  65. package/SVF-doxygen/html/html/classSVF_1_1LeakChecker.html +1 -1
  66. package/SVF-doxygen/html/html/classSVF_1_1LoadStmt.html +1 -1
  67. package/SVF-doxygen/html/html/classSVF_1_1LockResultValidator.html +1 -1
  68. package/SVF-doxygen/html/html/classSVF_1_1MHP.html +1 -1
  69. package/SVF-doxygen/html/html/classSVF_1_1MTAAnnotator.html +1 -1
  70. package/SVF-doxygen/html/html/classSVF_1_1MTAResultValidator.html +1 -1
  71. package/SVF-doxygen/html/html/classSVF_1_1MemObj.html +1 -1
  72. package/SVF-doxygen/html/html/classSVF_1_1MemSSA.html +1 -1
  73. package/SVF-doxygen/html/html/classSVF_1_1ObjVar.html +1 -1
  74. package/SVF-doxygen/html/html/classSVF_1_1PHIVFGNode.html +1 -1
  75. package/SVF-doxygen/html/html/classSVF_1_1PhiStmt.html +1 -1
  76. package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.html +1 -1
  77. package/SVF-doxygen/html/html/classSVF_1_1RaceResultValidator.html +1 -1
  78. package/SVF-doxygen/html/html/classSVF_1_1RetCFGEdge.html +1 -1
  79. package/SVF-doxygen/html/html/classSVF_1_1RetPE.html +1 -1
  80. package/SVF-doxygen/html/html/classSVF_1_1SVFIR2ItvExeState.html +1 -1
  81. package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder.html +9 -9
  82. package/SVF-doxygen/html/html/classSVF_1_1SVFLoop.html +3 -3
  83. package/SVF-doxygen/html/html/classSVF_1_1SVFValue.html +23 -23
  84. package/SVF-doxygen/html/html/classSVF_1_1SelectStmt.html +1 -1
  85. package/SVF-doxygen/html/html/classSVF_1_1Steensgaard.html +1 -1
  86. package/SVF-doxygen/html/html/classSVF_1_1StoreStmt.html +1 -1
  87. package/SVF-doxygen/html/html/classSVF_1_1SymbolTableBuilder.html +7 -7
  88. package/SVF-doxygen/html/html/classSVF_1_1TCT.html +1 -1
  89. package/SVF-doxygen/html/html/classSVF_1_1TDForkPE.html +1 -1
  90. package/SVF-doxygen/html/html/classSVF_1_1TDJoinPE.html +1 -1
  91. package/SVF-doxygen/html/html/classSVF_1_1UnaryOPStmt.html +1 -1
  92. package/SVF-doxygen/html/html/classSVF_1_1UnaryOPVFGNode.html +1 -1
  93. package/SVF-doxygen/html/html/classSVF_1_1ValVar.html +1 -1
  94. package/SVF-doxygen/html/html/namespaceSVF_1_1LLVMUtil.html +717 -617
  95. package/SVF-doxygen/html/html/namespacemembers_func_i.html +4 -1
  96. package/SVF-doxygen/html/html/namespacemembers_func_r.html +6 -3
  97. package/SVF-doxygen/html/html/namespacemembers_i.html +6 -3
  98. package/SVF-doxygen/html/html/namespacemembers_r.html +5 -2
  99. package/SVF-doxygen/html/html/search/all_10.js +324 -324
  100. package/SVF-doxygen/html/html/search/all_11.js +218 -217
  101. package/SVF-doxygen/html/html/search/all_12.js +541 -541
  102. package/SVF-doxygen/html/html/search/all_13.js +190 -190
  103. package/SVF-doxygen/html/html/search/all_14.js +66 -66
  104. package/SVF-doxygen/html/html/search/all_15.js +170 -170
  105. package/SVF-doxygen/html/html/search/all_16.js +63 -63
  106. package/SVF-doxygen/html/html/search/all_17.js +1 -1
  107. package/SVF-doxygen/html/html/search/all_18.js +1 -1
  108. package/SVF-doxygen/html/html/search/all_19.js +11 -11
  109. package/SVF-doxygen/html/html/search/all_1a.js +169 -169
  110. package/SVF-doxygen/html/html/search/all_9.js +34 -33
  111. package/SVF-doxygen/html/html/search/all_a.js +46 -46
  112. package/SVF-doxygen/html/html/search/all_b.js +26 -26
  113. package/SVF-doxygen/html/html/search/all_c.js +116 -116
  114. package/SVF-doxygen/html/html/search/all_d.js +196 -196
  115. package/SVF-doxygen/html/html/search/all_e.js +206 -206
  116. package/SVF-doxygen/html/html/search/all_f.js +116 -116
  117. package/SVF-doxygen/html/html/search/classes_0.js +26 -26
  118. package/SVF-doxygen/html/html/search/classes_1.js +9 -9
  119. package/SVF-doxygen/html/html/search/classes_10.js +73 -73
  120. package/SVF-doxygen/html/html/search/classes_11.js +15 -15
  121. package/SVF-doxygen/html/html/search/classes_12.js +2 -2
  122. package/SVF-doxygen/html/html/search/classes_13.js +10 -10
  123. package/SVF-doxygen/html/html/search/classes_14.js +14 -14
  124. package/SVF-doxygen/html/html/search/classes_15.js +1 -1
  125. package/SVF-doxygen/html/html/search/classes_2.js +76 -76
  126. package/SVF-doxygen/html/html/search/classes_3.js +35 -35
  127. package/SVF-doxygen/html/html/search/classes_4.js +8 -8
  128. package/SVF-doxygen/html/html/search/classes_5.js +28 -28
  129. package/SVF-doxygen/html/html/search/classes_6.js +98 -98
  130. package/SVF-doxygen/html/html/search/classes_7.js +33 -33
  131. package/SVF-doxygen/html/html/search/classes_8.js +56 -56
  132. package/SVF-doxygen/html/html/search/classes_9.js +1 -1
  133. package/SVF-doxygen/html/html/search/classes_a.js +12 -12
  134. package/SVF-doxygen/html/html/search/classes_b.js +29 -29
  135. package/SVF-doxygen/html/html/search/classes_c.js +6 -6
  136. package/SVF-doxygen/html/html/search/classes_d.js +18 -18
  137. package/SVF-doxygen/html/html/search/classes_e.js +36 -36
  138. package/SVF-doxygen/html/html/search/classes_f.js +25 -25
  139. package/SVF-doxygen/html/html/search/defines_0.js +3 -3
  140. package/SVF-doxygen/html/html/search/defines_1.js +2 -2
  141. package/SVF-doxygen/html/html/search/defines_2.js +30 -30
  142. package/SVF-doxygen/html/html/search/defines_3.js +20 -20
  143. package/SVF-doxygen/html/html/search/defines_4.js +3 -3
  144. package/SVF-doxygen/html/html/search/defines_5.js +4 -4
  145. package/SVF-doxygen/html/html/search/defines_6.js +2 -2
  146. package/SVF-doxygen/html/html/search/defines_7.js +5 -5
  147. package/SVF-doxygen/html/html/search/defines_8.js +11 -11
  148. package/SVF-doxygen/html/html/search/defines_9.js +9 -9
  149. package/SVF-doxygen/html/html/search/defines_a.js +2 -2
  150. package/SVF-doxygen/html/html/search/defines_b.js +1 -1
  151. package/SVF-doxygen/html/html/search/defines_c.js +3 -3
  152. package/SVF-doxygen/html/html/search/defines_d.js +2 -2
  153. package/SVF-doxygen/html/html/search/defines_e.js +7 -7
  154. package/SVF-doxygen/html/html/search/defines_f.js +3 -3
  155. package/SVF-doxygen/html/html/search/enums_0.js +3 -3
  156. package/SVF-doxygen/html/html/search/enums_1.js +2 -2
  157. package/SVF-doxygen/html/html/search/enums_10.js +1 -1
  158. package/SVF-doxygen/html/html/search/enums_11.js +1 -1
  159. package/SVF-doxygen/html/html/search/enums_2.js +8 -8
  160. package/SVF-doxygen/html/html/search/enums_3.js +1 -1
  161. package/SVF-doxygen/html/html/search/enums_4.js +3 -3
  162. package/SVF-doxygen/html/html/search/enums_5.js +1 -1
  163. package/SVF-doxygen/html/html/search/enums_6.js +2 -2
  164. package/SVF-doxygen/html/html/search/enums_7.js +2 -2
  165. package/SVF-doxygen/html/html/search/enums_8.js +4 -4
  166. package/SVF-doxygen/html/html/search/enums_9.js +1 -1
  167. package/SVF-doxygen/html/html/search/enums_a.js +1 -1
  168. package/SVF-doxygen/html/html/search/enums_b.js +7 -7
  169. package/SVF-doxygen/html/html/search/enums_c.js +1 -1
  170. package/SVF-doxygen/html/html/search/enums_d.js +4 -4
  171. package/SVF-doxygen/html/html/search/enums_e.js +2 -2
  172. package/SVF-doxygen/html/html/search/enums_f.js +4 -4
  173. package/SVF-doxygen/html/html/search/enumvalues_0.js +14 -14
  174. package/SVF-doxygen/html/html/search/enumvalues_1.js +14 -14
  175. package/SVF-doxygen/html/html/search/enumvalues_10.js +35 -35
  176. package/SVF-doxygen/html/html/search/enumvalues_11.js +3 -3
  177. package/SVF-doxygen/html/html/search/enumvalues_12.js +10 -10
  178. package/SVF-doxygen/html/html/search/enumvalues_13.js +1 -1
  179. package/SVF-doxygen/html/html/search/enumvalues_14.js +1 -1
  180. package/SVF-doxygen/html/html/search/enumvalues_15.js +3 -3
  181. package/SVF-doxygen/html/html/search/enumvalues_2.js +36 -36
  182. package/SVF-doxygen/html/html/search/enumvalues_3.js +13 -13
  183. package/SVF-doxygen/html/html/search/enumvalues_4.js +2 -2
  184. package/SVF-doxygen/html/html/search/enumvalues_5.js +47 -47
  185. package/SVF-doxygen/html/html/search/enumvalues_6.js +6 -6
  186. package/SVF-doxygen/html/html/search/enumvalues_7.js +9 -9
  187. package/SVF-doxygen/html/html/search/enumvalues_8.js +23 -23
  188. package/SVF-doxygen/html/html/search/enumvalues_9.js +6 -6
  189. package/SVF-doxygen/html/html/search/enumvalues_a.js +15 -15
  190. package/SVF-doxygen/html/html/search/enumvalues_b.js +11 -11
  191. package/SVF-doxygen/html/html/search/enumvalues_c.js +5 -5
  192. package/SVF-doxygen/html/html/search/enumvalues_d.js +18 -18
  193. package/SVF-doxygen/html/html/search/enumvalues_e.js +9 -9
  194. package/SVF-doxygen/html/html/search/enumvalues_f.js +45 -45
  195. package/SVF-doxygen/html/html/search/files_0.js +13 -13
  196. package/SVF-doxygen/html/html/search/files_1.js +7 -7
  197. package/SVF-doxygen/html/html/search/files_10.js +8 -8
  198. package/SVF-doxygen/html/html/search/files_11.js +8 -8
  199. package/SVF-doxygen/html/html/search/files_12.js +2 -2
  200. package/SVF-doxygen/html/html/search/files_2.js +49 -49
  201. package/SVF-doxygen/html/html/search/files_3.js +14 -14
  202. package/SVF-doxygen/html/html/search/files_4.js +5 -5
  203. package/SVF-doxygen/html/html/search/files_5.js +13 -13
  204. package/SVF-doxygen/html/html/search/files_6.js +9 -9
  205. package/SVF-doxygen/html/html/search/files_7.js +14 -14
  206. package/SVF-doxygen/html/html/search/files_8.js +13 -13
  207. package/SVF-doxygen/html/html/search/files_9.js +18 -18
  208. package/SVF-doxygen/html/html/search/files_a.js +3 -3
  209. package/SVF-doxygen/html/html/search/files_b.js +2 -2
  210. package/SVF-doxygen/html/html/search/files_c.js +20 -20
  211. package/SVF-doxygen/html/html/search/files_d.js +4 -4
  212. package/SVF-doxygen/html/html/search/files_e.js +62 -62
  213. package/SVF-doxygen/html/html/search/files_f.js +8 -8
  214. package/SVF-doxygen/html/html/search/functions_0.js +12 -12
  215. package/SVF-doxygen/html/html/search/functions_1.js +350 -350
  216. package/SVF-doxygen/html/html/search/functions_10.js +140 -140
  217. package/SVF-doxygen/html/html/search/functions_11.js +132 -131
  218. package/SVF-doxygen/html/html/search/functions_12.js +275 -275
  219. package/SVF-doxygen/html/html/search/functions_13.js +58 -58
  220. package/SVF-doxygen/html/html/search/functions_14.js +38 -38
  221. package/SVF-doxygen/html/html/search/functions_15.js +71 -71
  222. package/SVF-doxygen/html/html/search/functions_16.js +32 -32
  223. package/SVF-doxygen/html/html/search/functions_17.js +3 -3
  224. package/SVF-doxygen/html/html/search/functions_18.js +169 -169
  225. package/SVF-doxygen/html/html/search/functions_2.js +84 -84
  226. package/SVF-doxygen/html/html/search/functions_3.js +253 -253
  227. package/SVF-doxygen/html/html/search/functions_4.js +74 -74
  228. package/SVF-doxygen/html/html/search/functions_5.js +51 -51
  229. package/SVF-doxygen/html/html/search/functions_6.js +58 -58
  230. package/SVF-doxygen/html/html/search/functions_7.js +842 -842
  231. package/SVF-doxygen/html/html/search/functions_8.js +143 -143
  232. package/SVF-doxygen/html/html/search/functions_9.js +424 -423
  233. package/SVF-doxygen/html/html/search/functions_a.js +30 -30
  234. package/SVF-doxygen/html/html/search/functions_b.js +2 -2
  235. package/SVF-doxygen/html/html/search/functions_c.js +26 -26
  236. package/SVF-doxygen/html/html/search/functions_d.js +77 -77
  237. package/SVF-doxygen/html/html/search/functions_e.js +35 -35
  238. package/SVF-doxygen/html/html/search/functions_f.js +56 -56
  239. package/SVF-doxygen/html/html/search/namespaces_0.js +1 -1
  240. package/SVF-doxygen/html/html/search/namespaces_1.js +7 -7
  241. package/SVF-doxygen/html/html/search/related_0.js +2 -2
  242. package/SVF-doxygen/html/html/search/related_1.js +2 -2
  243. package/SVF-doxygen/html/html/search/related_2.js +2 -2
  244. package/SVF-doxygen/html/html/search/related_3.js +2 -2
  245. package/SVF-doxygen/html/html/search/related_4.js +2 -2
  246. package/SVF-doxygen/html/html/search/related_5.js +1 -1
  247. package/SVF-doxygen/html/html/search/related_6.js +2 -2
  248. package/SVF-doxygen/html/html/search/related_7.js +4 -4
  249. package/SVF-doxygen/html/html/search/related_8.js +2 -2
  250. package/SVF-doxygen/html/html/search/related_9.js +4 -4
  251. package/SVF-doxygen/html/html/search/related_a.js +19 -19
  252. package/SVF-doxygen/html/html/search/related_b.js +4 -4
  253. package/SVF-doxygen/html/html/search/related_c.js +1 -1
  254. package/SVF-doxygen/html/html/search/related_d.js +11 -11
  255. package/SVF-doxygen/html/html/search/related_e.js +2 -2
  256. package/SVF-doxygen/html/html/search/related_f.js +2 -2
  257. package/SVF-doxygen/html/html/search/typedefs_0.js +18 -18
  258. package/SVF-doxygen/html/html/search/typedefs_1.js +25 -25
  259. package/SVF-doxygen/html/html/search/typedefs_10.js +62 -62
  260. package/SVF-doxygen/html/html/search/typedefs_11.js +13 -13
  261. package/SVF-doxygen/html/html/search/typedefs_12.js +11 -11
  262. package/SVF-doxygen/html/html/search/typedefs_13.js +35 -35
  263. package/SVF-doxygen/html/html/search/typedefs_14.js +8 -8
  264. package/SVF-doxygen/html/html/search/typedefs_2.js +126 -126
  265. package/SVF-doxygen/html/html/search/typedefs_3.js +39 -39
  266. package/SVF-doxygen/html/html/search/typedefs_4.js +16 -16
  267. package/SVF-doxygen/html/html/search/typedefs_5.js +41 -41
  268. package/SVF-doxygen/html/html/search/typedefs_6.js +52 -52
  269. package/SVF-doxygen/html/html/search/typedefs_7.js +40 -40
  270. package/SVF-doxygen/html/html/search/typedefs_8.js +1 -1
  271. package/SVF-doxygen/html/html/search/typedefs_9.js +6 -6
  272. package/SVF-doxygen/html/html/search/typedefs_a.js +29 -29
  273. package/SVF-doxygen/html/html/search/typedefs_b.js +29 -29
  274. package/SVF-doxygen/html/html/search/typedefs_c.js +40 -40
  275. package/SVF-doxygen/html/html/search/typedefs_d.js +15 -15
  276. package/SVF-doxygen/html/html/search/typedefs_e.js +52 -52
  277. package/SVF-doxygen/html/html/search/typedefs_f.js +14 -14
  278. package/SVF-doxygen/html/html/search/variables_0.js +147 -147
  279. package/SVF-doxygen/html/html/search/variables_1.js +75 -75
  280. package/SVF-doxygen/html/html/search/variables_10.js +97 -97
  281. package/SVF-doxygen/html/html/search/variables_11.js +46 -46
  282. package/SVF-doxygen/html/html/search/variables_12.js +92 -92
  283. package/SVF-doxygen/html/html/search/variables_13.js +75 -75
  284. package/SVF-doxygen/html/html/search/variables_14.js +14 -14
  285. package/SVF-doxygen/html/html/search/variables_15.js +48 -48
  286. package/SVF-doxygen/html/html/search/variables_16.js +9 -9
  287. package/SVF-doxygen/html/html/search/variables_17.js +1 -1
  288. package/SVF-doxygen/html/html/search/variables_18.js +2 -2
  289. package/SVF-doxygen/html/html/search/variables_2.js +34 -34
  290. package/SVF-doxygen/html/html/search/variables_3.js +141 -141
  291. package/SVF-doxygen/html/html/search/variables_4.js +55 -55
  292. package/SVF-doxygen/html/html/search/variables_5.js +38 -38
  293. package/SVF-doxygen/html/html/search/variables_6.js +66 -66
  294. package/SVF-doxygen/html/html/search/variables_7.js +33 -33
  295. package/SVF-doxygen/html/html/search/variables_8.js +7 -7
  296. package/SVF-doxygen/html/html/search/variables_9.js +77 -77
  297. package/SVF-doxygen/html/html/search/variables_a.js +4 -4
  298. package/SVF-doxygen/html/html/search/variables_b.js +10 -10
  299. package/SVF-doxygen/html/html/search/variables_c.js +45 -45
  300. package/SVF-doxygen/html/html/search/variables_d.js +56 -56
  301. package/SVF-doxygen/html/html/search/variables_e.js +123 -123
  302. package/SVF-doxygen/html/html/search/variables_f.js +30 -30
  303. package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01ConstraintGraph_01_5_01_4.html +1 -1
  304. package/SVF-doxygen/html/html/svf-ex_8cpp.html +1 -1
  305. package/SVF-doxygen/html/html/svf-ex_8cpp_source.html +1 -1
  306. package/SVF-doxygen/html/html/svf-llvm_2tools_2MTA_2MTAResultValidator_8h_source.html +1 -1
  307. package/SVF-doxygen/html/html/svf_2include_2MTA_2MTAResultValidator_8h_source.html +1 -1
  308. package/package.json +1 -1
  309. package/svf/include/MemoryModel/SVFLoop.h +3 -3
  310. package/svf-llvm/include/SVF-LLVM/LLVMModule.h +0 -16
  311. package/svf-llvm/include/SVF-LLVM/LLVMUtil.h +4 -9
  312. package/svf-llvm/lib/LLVMModule.cpp +14 -4
  313. package/svf-llvm/lib/LLVMUtil.cpp +78 -1
@@ -175,8 +175,8 @@ void LLVMModuleSet::createSVFDataStructure()
175
175
  candidateDefs.push_back(&func);
176
176
  }
177
177
  }
178
- /// Remove unused functions and annotations in extapi.bc
179
- LLVMUtil::removeUnusedFuncsAndAnnotations(removedFuncList);
178
+ /// Remove unused functions, annotations and global variables in extapi.bc
179
+ LLVMUtil::removeUnusedFuncsAndAnnotationsAndGlobalVariables(removedFuncList);
180
180
  }
181
181
  for (const Function* func: candidateDefs)
182
182
  {
@@ -814,6 +814,14 @@ void LLVMModuleSet::buildFunToFunMap()
814
814
  funDecls.insert(&fun);
815
815
  declNames.insert(fun.getName().str());
816
816
  }
817
+ /// Keep svf_main() function and all the functions called in svf_main()
818
+ else if (fun.getName().str() == "svf__main")
819
+ {
820
+ ExtFuncsVec.push_back(&fun);
821
+ // Get all called functions in svf_main()
822
+ std::vector<const Function*> calledFunctions = LLVMUtil::getCalledFunctions(&fun);
823
+ ExtFuncsVec.insert(ExtFuncsVec.end(), calledFunctions.begin(), calledFunctions.end());
824
+ }
817
825
  else
818
826
  {
819
827
  extFuncs.insert(&fun);
@@ -931,7 +939,8 @@ void LLVMModuleSet::buildFunToFunMap()
931
939
  decls.push_back(fdecl);
932
940
  // Keep all called functions in extfun
933
941
  // ExtDecl -> ExtDecl in Table 1
934
- ExtFuncsVec = LLVMUtil::getCalledFunctions(extfun);
942
+ std::vector<const Function*> calledFunctions = LLVMUtil::getCalledFunctions(extfun);
943
+ ExtFuncsVec.insert(ExtFuncsVec.end(), calledFunctions.begin(), calledFunctions.end());
935
944
  }
936
945
  }
937
946
  }
@@ -960,7 +969,8 @@ void LLVMModuleSet::buildFunToFunMap()
960
969
  decls.push_back(declaration);
961
970
  // Keep all called functions in owfunc
962
971
  // ExtDecl -> ExtDecl in Table 1
963
- ExtFuncsVec = LLVMUtil::getCalledFunctions(owfunc);
972
+ std::vector<const Function*> calledFunctions = LLVMUtil::getCalledFunctions(owfunc);
973
+ ExtFuncsVec.insert(ExtFuncsVec.end(), calledFunctions.begin(), calledFunctions.end());
964
974
  }
965
975
  }
966
976
  }
@@ -563,9 +563,86 @@ std::vector<const Function *> LLVMUtil::getCalledFunctions(const Function *F)
563
563
  return calledFunctions;
564
564
  }
565
565
 
566
- u32_t LLVMUtil::getTypeSizeInBytes(const Type* type)
566
+ bool LLVMUtil::isUnusedGlobalVariable(const GlobalVariable& global)
567
+ {
568
+ // Check if it is an empty global annotations
569
+ if (global.getName() == "llvm.global.annotations" && SVFUtil::isa<ConstantArray>(global.getInitializer()))
570
+ return false;
571
+ else
572
+ {
573
+ // Check if any global strings has at least one effective user
574
+ for (auto& use : global.uses())
575
+ if (use.getUser()->getNumUses() != 0)
576
+ return false;
577
+ }
578
+ return true;
579
+ }
580
+
581
+ void LLVMUtil::removeUnusedGlobalVariables(Module* module)
567
582
  {
583
+ assert(module && "Null module pointer!");
584
+ std::vector<GlobalVariable*> unusedGlobals;
585
+ for (GlobalVariable& global : module->globals())
586
+ if (isUnusedGlobalVariable(global))
587
+ // Record unused global variables
588
+ unusedGlobals.push_back(&global);
589
+
590
+ // Delete unused global variables
591
+ for (GlobalVariable* global : unusedGlobals)
592
+ global->eraseFromParent();
593
+ }
594
+
595
+ /// Delete unused functions, annotations and global variables in extapi.bc
596
+ void LLVMUtil::removeUnusedFuncsAndAnnotationsAndGlobalVariables(std::vector<Function*> removedFuncList)
597
+ {
598
+ if (removedFuncList.empty())
599
+ return;
600
+
601
+ Module* mod = removedFuncList[0]->getParent();
602
+ if (mod->getName().str() != Options::ExtAPIInput())
603
+ return;
604
+
605
+ /// Delete unused function annotations
606
+ LLVMUtil::removeFunAnnotations(removedFuncList);
607
+
608
+ /// Delete unused functions
609
+ /// The functions to be deleted from extapi.bc can be categorized into two types.
610
+ /// The first type includes functions do not contain any invocation statements,
611
+ /// The second type includes functions whose contain invocation statements.
612
+ /// It is necessary to delete functions of the second type first before deleting those of the first type;
613
+ /// Otherwise, errors may occur when calling eraseFromParent().
614
+ std::vector<Function*> funcsToKeep;
615
+ /// Check whether a function is called by other functions
616
+ auto isCalledFunction = [](llvm::Function* F)
617
+ {
618
+ assert(F && "Null function pointer!");
619
+ for (auto& use : F->uses())
620
+ {
621
+ llvm::User* user = use.getUser();
622
+ if (llvm::isa<llvm::CallBase>(user))
623
+ return true;
624
+ }
625
+ return false;
626
+ };
568
627
 
628
+ for (Function* func : removedFuncList)
629
+ {
630
+ if (isCalledFunction(func))
631
+ // Record first kind function(which does not contain any invocation statements)
632
+ funcsToKeep.push_back(func);
633
+ else
634
+ // Delete second kind function(which contains invocation statements)
635
+ func->eraseFromParent();
636
+ }
637
+ // Delete first kind functions
638
+ for (Function* func : funcsToKeep)
639
+ func->eraseFromParent();
640
+ // Delete unused global variables
641
+ removeUnusedGlobalVariables(mod);
642
+ }
643
+
644
+ u32_t LLVMUtil::getTypeSizeInBytes(const Type* type)
645
+ {
569
646
  // if the type has size then simply return it, otherwise just return 0
570
647
  if(type->isSized())
571
648
  return getDataLayout(LLVMModuleSet::getLLVMModuleSet()->getMainLLVMModule())->getTypeStoreSize(const_cast<Type*>(type));