svf-tools 1.0.769 → 1.0.771

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 (458) hide show
  1. package/SVF-doxygen/html/html/AddressValue_8h_source.html +1 -1
  2. package/SVF-doxygen/html/html/Andersen_8cpp_source.html +1 -1
  3. package/SVF-doxygen/html/html/BasicTypes_8h.html +4 -0
  4. package/SVF-doxygen/html/html/BasicTypes_8h_source.html +120 -114
  5. package/SVF-doxygen/html/html/CFGrammar_8cpp_source.html +3 -3
  6. package/SVF-doxygen/html/html/CFLAlias_8cpp_source.html +1 -1
  7. package/SVF-doxygen/html/html/CHGBuilder_8cpp_source.html +10 -10
  8. package/SVF-doxygen/html/html/CommandLine_8h_source.html +1 -1
  9. package/SVF-doxygen/html/html/ConsExeState_8cpp_source.html +1 -1
  10. package/SVF-doxygen/html/html/ConsExeState_8h_source.html +1 -1
  11. package/SVF-doxygen/html/html/ConsG_8cpp_source.html +1 -1
  12. package/SVF-doxygen/html/html/CoreBitVector_8cpp_source.html +1 -1
  13. package/SVF-doxygen/html/html/CxtStmt_8h_source.html +1 -1
  14. package/SVF-doxygen/html/html/DCHG_8cpp_source.html +11 -11
  15. package/SVF-doxygen/html/html/DCHG_8h_source.html +5 -5
  16. package/SVF-doxygen/html/html/DDAClient_8cpp_source.html +1 -1
  17. package/SVF-doxygen/html/html/DPItem_8h_source.html +1 -1
  18. package/SVF-doxygen/html/html/ExeState_8h_source.html +1 -1
  19. package/SVF-doxygen/html/html/ExtAPI_8cpp.html +1 -1
  20. package/SVF-doxygen/html/html/ExtAPI_8cpp_source.html +60 -67
  21. package/SVF-doxygen/html/html/ExtAPI_8h_source.html +9 -9
  22. package/SVF-doxygen/html/html/GenericGraph_8h_source.html +1 -1
  23. package/SVF-doxygen/html/html/ICFGBuilder_8cpp_source.html +2 -2
  24. package/SVF-doxygen/html/html/ICFG_8cpp_source.html +1 -1
  25. package/SVF-doxygen/html/html/IntervalExeState_8h_source.html +1 -1
  26. package/SVF-doxygen/html/html/IntervalValue_8h_source.html +1 -1
  27. package/SVF-doxygen/html/html/LLVMModule_8cpp_source.html +19 -19
  28. package/SVF-doxygen/html/html/LLVMUtil_8cpp_source.html +1148 -1112
  29. package/SVF-doxygen/html/html/LLVMUtil_8h.html +4 -0
  30. package/SVF-doxygen/html/html/LLVMUtil_8h_source.html +61 -51
  31. package/SVF-doxygen/html/html/LockResultValidator_8cpp_source.html +1 -1
  32. package/SVF-doxygen/html/html/MHP_8cpp_source.html +1 -1
  33. package/SVF-doxygen/html/html/MTAAnnotator_8cpp_source.html +1 -1
  34. package/SVF-doxygen/html/html/MemRegion_8cpp_source.html +1 -1
  35. package/SVF-doxygen/html/html/MemSSA_8cpp_source.html +3 -3
  36. package/SVF-doxygen/html/html/NumericLiteral_8h_source.html +1 -1
  37. package/SVF-doxygen/html/html/PTACallGraph_8cpp_source.html +2 -2
  38. package/SVF-doxygen/html/html/PointerAnalysis_8cpp_source.html +1 -1
  39. package/SVF-doxygen/html/html/PointsTo_8cpp_source.html +1 -1
  40. package/SVF-doxygen/html/html/RelExeState_8h_source.html +1 -1
  41. package/SVF-doxygen/html/html/SVFFileSystem_8cpp_source.html +2 -2
  42. package/SVF-doxygen/html/html/SVFFileSystem_8h_source.html +2 -2
  43. package/SVF-doxygen/html/html/SVFGBuilder_8cpp_source.html +1 -1
  44. package/SVF-doxygen/html/html/SVFGOPT_8h_source.html +1 -1
  45. package/SVF-doxygen/html/html/SVFG_8cpp_source.html +2 -2
  46. package/SVF-doxygen/html/html/SVFIR2ConsExeState_8cpp_source.html +1 -1
  47. package/SVF-doxygen/html/html/SVFIR2ItvExeState_8cpp_source.html +1 -1
  48. package/SVF-doxygen/html/html/SVFIRBuilder_8cpp_source.html +367 -362
  49. package/SVF-doxygen/html/html/SVFIRBuilder_8h_source.html +10 -10
  50. package/SVF-doxygen/html/html/SVFIRExtAPI_8cpp_source.html +10 -11
  51. package/SVF-doxygen/html/html/SVFIR_8cpp_source.html +1 -1
  52. package/SVF-doxygen/html/html/SVFStatements_8cpp_source.html +1 -1
  53. package/SVF-doxygen/html/html/SVFType_8h_source.html +1 -1
  54. package/SVF-doxygen/html/html/SVFUtil_8cpp_source.html +1 -1
  55. package/SVF-doxygen/html/html/SVFUtil_8h.html +0 -12
  56. package/SVF-doxygen/html/html/SVFUtil_8h_source.html +300 -333
  57. package/SVF-doxygen/html/html/SVFValue_8cpp_source.html +1 -1
  58. package/SVF-doxygen/html/html/SVFValue_8h_source.html +2 -2
  59. package/SVF-doxygen/html/html/SVFVariables_8cpp_source.html +1 -1
  60. package/SVF-doxygen/html/html/SaberCondAllocator_8cpp_source.html +1 -1
  61. package/SVF-doxygen/html/html/SparseBitVector_8h_source.html +1 -1
  62. package/SVF-doxygen/html/html/Steensgaard_8cpp_source.html +1 -1
  63. package/SVF-doxygen/html/html/SymState_8cpp_source.html +1 -1
  64. package/SVF-doxygen/html/html/SymState_8h_source.html +1 -1
  65. package/SVF-doxygen/html/html/SymbolTableBuilder_8cpp_source.html +50 -60
  66. package/SVF-doxygen/html/html/SymbolTableBuilder_8h_source.html +3 -3
  67. package/SVF-doxygen/html/html/SymbolTableInfo_8cpp_source.html +1 -1
  68. package/SVF-doxygen/html/html/WTO_8h_source.html +1 -1
  69. package/SVF-doxygen/html/html/cJSON_8cpp.html +3 -2
  70. package/SVF-doxygen/html/html/cJSON_8cpp_source.html +3 -2
  71. package/SVF-doxygen/html/html/classOption.html +1 -1
  72. package/SVF-doxygen/html/html/classSVF_1_1ActualINSVFGNode.html +1 -1
  73. package/SVF-doxygen/html/html/classSVF_1_1ActualOUTSVFGNode.html +1 -1
  74. package/SVF-doxygen/html/html/classSVF_1_1AddrStmt.html +1 -1
  75. package/SVF-doxygen/html/html/classSVF_1_1AddressValue.html +1 -1
  76. package/SVF-doxygen/html/html/classSVF_1_1AliasDDAClient.html +1 -1
  77. package/SVF-doxygen/html/html/classSVF_1_1Andersen.html +1 -1
  78. package/SVF-doxygen/html/html/classSVF_1_1BinaryOPStmt.html +1 -1
  79. package/SVF-doxygen/html/html/classSVF_1_1BinaryOPVFGNode.html +1 -1
  80. package/SVF-doxygen/html/html/classSVF_1_1BranchStmt.html +1 -1
  81. package/SVF-doxygen/html/html/classSVF_1_1CFBasicBlockGWTO.html +1 -1
  82. package/SVF-doxygen/html/html/classSVF_1_1CFBasicBlockGWTOCycle.html +1 -1
  83. package/SVF-doxygen/html/html/classSVF_1_1CFLAlias.html +1 -1
  84. package/SVF-doxygen/html/html/classSVF_1_1CHGBuilder.html +10 -10
  85. package/SVF-doxygen/html/html/classSVF_1_1CallCFGEdge.html +1 -1
  86. package/SVF-doxygen/html/html/classSVF_1_1CallPE.html +1 -1
  87. package/SVF-doxygen/html/html/classSVF_1_1CmpStmt.html +1 -1
  88. package/SVF-doxygen/html/html/classSVF_1_1CmpVFGNode.html +1 -1
  89. package/SVF-doxygen/html/html/classSVF_1_1ConsExeState.html +1 -1
  90. package/SVF-doxygen/html/html/classSVF_1_1ContextCond.html +1 -1
  91. package/SVF-doxygen/html/html/classSVF_1_1CopyStmt.html +1 -1
  92. package/SVF-doxygen/html/html/classSVF_1_1CoreBitVector.html +1 -1
  93. package/SVF-doxygen/html/html/classSVF_1_1CxtDPItem.html +1 -1
  94. package/SVF-doxygen/html/html/classSVF_1_1CxtStmt.html +1 -1
  95. package/SVF-doxygen/html/html/classSVF_1_1CxtThread.html +1 -1
  96. package/SVF-doxygen/html/html/classSVF_1_1CxtThreadStmt.html +1 -1
  97. package/SVF-doxygen/html/html/classSVF_1_1DCHGraph.html +11 -11
  98. package/SVF-doxygen/html/html/classSVF_1_1DoubleFreeChecker.html +1 -1
  99. package/SVF-doxygen/html/html/classSVF_1_1ExeState.html +1 -1
  100. package/SVF-doxygen/html/html/classSVF_1_1ExtAPI-members.html +1 -1
  101. package/SVF-doxygen/html/html/classSVF_1_1ExtAPI.html +51 -56
  102. package/SVF-doxygen/html/html/classSVF_1_1FIObjVar.html +1 -1
  103. package/SVF-doxygen/html/html/classSVF_1_1ForkJoinAnalysis.html +1 -1
  104. package/SVF-doxygen/html/html/classSVF_1_1GepObjVar.html +1 -1
  105. package/SVF-doxygen/html/html/classSVF_1_1GepStmt.html +1 -1
  106. package/SVF-doxygen/html/html/classSVF_1_1GepValVar.html +1 -1
  107. package/SVF-doxygen/html/html/classSVF_1_1GrammarBase.html +3 -3
  108. package/SVF-doxygen/html/html/classSVF_1_1ICFG.html +1 -1
  109. package/SVF-doxygen/html/html/classSVF_1_1ICFGBuilder.html +3 -3
  110. package/SVF-doxygen/html/html/classSVF_1_1InterMSSAPHISVFGNode.html +1 -1
  111. package/SVF-doxygen/html/html/classSVF_1_1InterPHIVFGNode.html +1 -1
  112. package/SVF-doxygen/html/html/classSVF_1_1IntervalExeState.html +1 -1
  113. package/SVF-doxygen/html/html/classSVF_1_1IntervalValue.html +1 -1
  114. package/SVF-doxygen/html/html/classSVF_1_1IntraCFGEdge.html +1 -1
  115. package/SVF-doxygen/html/html/classSVF_1_1IntraICFGNode.html +1 -1
  116. package/SVF-doxygen/html/html/classSVF_1_1IntraPHIVFGNode.html +1 -1
  117. package/SVF-doxygen/html/html/classSVF_1_1LLVMModuleSet.html +19 -19
  118. package/SVF-doxygen/html/html/classSVF_1_1LeakChecker.html +1 -1
  119. package/SVF-doxygen/html/html/classSVF_1_1LoadStmt.html +1 -1
  120. package/SVF-doxygen/html/html/classSVF_1_1LockResultValidator.html +1 -1
  121. package/SVF-doxygen/html/html/classSVF_1_1MHP.html +1 -1
  122. package/SVF-doxygen/html/html/classSVF_1_1MRGenerator.html +1 -1
  123. package/SVF-doxygen/html/html/classSVF_1_1MTAAnnotator.html +1 -1
  124. package/SVF-doxygen/html/html/classSVF_1_1MTAResultValidator.html +1 -1
  125. package/SVF-doxygen/html/html/classSVF_1_1MemObj.html +1 -1
  126. package/SVF-doxygen/html/html/classSVF_1_1MemSSA.html +3 -3
  127. package/SVF-doxygen/html/html/classSVF_1_1NumericLiteral.html +1 -1
  128. package/SVF-doxygen/html/html/classSVF_1_1ObjVar.html +1 -1
  129. package/SVF-doxygen/html/html/classSVF_1_1PHIVFGNode.html +1 -1
  130. package/SVF-doxygen/html/html/classSVF_1_1PTACallGraphEdge.html +1 -1
  131. package/SVF-doxygen/html/html/classSVF_1_1PTACallGraphNode.html +1 -1
  132. package/SVF-doxygen/html/html/classSVF_1_1PhiStmt.html +1 -1
  133. package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.html +1 -1
  134. package/SVF-doxygen/html/html/classSVF_1_1PointsTo.html +1 -1
  135. package/SVF-doxygen/html/html/classSVF_1_1PointsTo_1_1PointsToIterator.html +1 -1
  136. package/SVF-doxygen/html/html/classSVF_1_1RelExeState.html +1 -1
  137. package/SVF-doxygen/html/html/classSVF_1_1RetCFGEdge.html +1 -1
  138. package/SVF-doxygen/html/html/classSVF_1_1RetPE.html +1 -1
  139. package/SVF-doxygen/html/html/classSVF_1_1SVFFunction.html +1 -1
  140. package/SVF-doxygen/html/html/classSVF_1_1SVFG.html +2 -2
  141. package/SVF-doxygen/html/html/classSVF_1_1SVFGBuilder.html +1 -1
  142. package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT.html +1 -1
  143. package/SVF-doxygen/html/html/classSVF_1_1SVFGlobalValue.html +1 -1
  144. package/SVF-doxygen/html/html/classSVF_1_1SVFIR.html +1 -1
  145. package/SVF-doxygen/html/html/classSVF_1_1SVFIR2ItvExeState.html +1 -1
  146. package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder.html +357 -354
  147. package/SVF-doxygen/html/html/classSVF_1_1SVFIRReader.html +2 -2
  148. package/SVF-doxygen/html/html/classSVF_1_1SVFOtherType.html +1 -1
  149. package/SVF-doxygen/html/html/classSVF_1_1SVFStructType.html +1 -1
  150. package/SVF-doxygen/html/html/classSVF_1_1SVFValue.html +24 -24
  151. package/SVF-doxygen/html/html/classSVF_1_1SaberCondAllocator.html +1 -1
  152. package/SVF-doxygen/html/html/classSVF_1_1SelectStmt.html +1 -1
  153. package/SVF-doxygen/html/html/classSVF_1_1SparseBitVector.html +1 -1
  154. package/SVF-doxygen/html/html/classSVF_1_1Steensgaard.html +1 -1
  155. package/SVF-doxygen/html/html/classSVF_1_1StoreStmt.html +1 -1
  156. package/SVF-doxygen/html/html/classSVF_1_1SymState.html +1 -1
  157. package/SVF-doxygen/html/html/classSVF_1_1SymbolTableBuilder.html +49 -59
  158. package/SVF-doxygen/html/html/classSVF_1_1TCT.html +1 -1
  159. package/SVF-doxygen/html/html/classSVF_1_1TDForkPE.html +1 -1
  160. package/SVF-doxygen/html/html/classSVF_1_1TDJoinPE.html +1 -1
  161. package/SVF-doxygen/html/html/classSVF_1_1UnaryOPStmt.html +1 -1
  162. package/SVF-doxygen/html/html/classSVF_1_1UnaryOPVFGNode.html +1 -1
  163. package/SVF-doxygen/html/html/classSVF_1_1ValVar.html +1 -1
  164. package/SVF-doxygen/html/html/classSVF_1_1iter__adaptor__base.html +1 -1
  165. package/SVF-doxygen/html/html/classSVF_1_1iter__facade__base_1_1ReferenceProxy.html +1 -1
  166. package/SVF-doxygen/html/html/classSVF_1_1iter__range.html +1 -1
  167. package/SVF-doxygen/html/html/classSVF_1_1mapped__iter.html +1 -1
  168. package/SVF-doxygen/html/html/classSVF_1_1pointer__iterator.html +1 -1
  169. package/SVF-doxygen/html/html/extapi_8c.html +1487 -302
  170. package/SVF-doxygen/html/html/extapi_8c_source.html +1120 -1164
  171. package/SVF-doxygen/html/html/functions_func_h.html +1 -1
  172. package/SVF-doxygen/html/html/functions_h.html +1 -1
  173. package/SVF-doxygen/html/html/globals.html +20 -2
  174. package/SVF-doxygen/html/html/globals_a.html +3 -0
  175. package/SVF-doxygen/html/html/globals_b.html +10 -4
  176. package/SVF-doxygen/html/html/globals_c.html +8 -4
  177. package/SVF-doxygen/html/html/globals_d.html +9 -0
  178. package/SVF-doxygen/html/html/globals_defs.html +3 -0
  179. package/SVF-doxygen/html/html/globals_func.html +18 -399
  180. package/SVF-doxygen/html/html/globals_func_a.html +91 -0
  181. package/SVF-doxygen/html/html/globals_func_b.html +14 -20
  182. package/SVF-doxygen/html/html/globals_func_c.html +16 -849
  183. package/SVF-doxygen/html/html/globals_func_d.html +14 -275
  184. package/SVF-doxygen/html/html/globals_func_e.html +8 -97
  185. package/SVF-doxygen/html/html/globals_func_f.html +17 -20
  186. package/SVF-doxygen/html/html/globals_func_g.html +72 -25
  187. package/SVF-doxygen/html/html/globals_func_h.html +9 -6
  188. package/SVF-doxygen/html/html/globals_func_i.html +49 -31
  189. package/SVF-doxygen/html/html/globals_func_j.html +79 -0
  190. package/SVF-doxygen/html/html/globals_func_l.html +15 -9
  191. package/SVF-doxygen/html/html/globals_func_m.html +13 -87
  192. package/SVF-doxygen/html/html/globals_func_n.html +79 -0
  193. package/SVF-doxygen/html/html/globals_func_p.html +13 -22
  194. package/SVF-doxygen/html/html/globals_func_r.html +16 -28
  195. package/SVF-doxygen/html/html/globals_func_s.html +32 -128
  196. package/SVF-doxygen/html/html/globals_func_t.html +18 -9
  197. package/SVF-doxygen/html/html/globals_func_u.html +8 -18
  198. package/SVF-doxygen/html/html/globals_func_w.html +8 -5
  199. package/SVF-doxygen/html/html/globals_func_z.html +10 -73
  200. package/SVF-doxygen/html/html/globals_g.html +54 -0
  201. package/SVF-doxygen/html/html/globals_l.html +6 -0
  202. package/SVF-doxygen/html/html/globals_n.html +5 -2
  203. package/SVF-doxygen/html/html/globals_p.html +4 -1
  204. package/SVF-doxygen/html/html/globals_r.html +11 -8
  205. package/SVF-doxygen/html/html/globals_s.html +6 -0
  206. package/SVF-doxygen/html/html/globals_t.html +6 -0
  207. package/SVF-doxygen/html/html/globals_z.html +3 -0
  208. package/SVF-doxygen/html/html/iterator_8h_source.html +1 -1
  209. package/SVF-doxygen/html/html/iterator__range_8h_source.html +1 -1
  210. package/SVF-doxygen/html/html/menudata.js +20 -17
  211. package/SVF-doxygen/html/html/namespaceSVF.html +60 -24
  212. package/SVF-doxygen/html/html/namespaceSVF_1_1LLVMUtil.html +1087 -986
  213. package/SVF-doxygen/html/html/namespaceSVF_1_1SVFUtil.html +206 -383
  214. package/SVF-doxygen/html/html/namespacemembers_func_g.html +9 -3
  215. package/SVF-doxygen/html/html/namespacemembers_func_i.html +2 -11
  216. package/SVF-doxygen/html/html/namespacemembers_g.html +11 -5
  217. package/SVF-doxygen/html/html/namespacemembers_i.html +5 -14
  218. package/SVF-doxygen/html/html/namespacemembers_s.html +6 -0
  219. package/SVF-doxygen/html/html/namespacemembers_type_s.html +6 -0
  220. package/SVF-doxygen/html/html/search/all_0.js +158 -152
  221. package/SVF-doxygen/html/html/search/all_1.js +478 -477
  222. package/SVF-doxygen/html/html/search/all_10.js +324 -323
  223. package/SVF-doxygen/html/html/search/all_11.js +213 -212
  224. package/SVF-doxygen/html/html/search/all_12.js +541 -537
  225. package/SVF-doxygen/html/html/search/all_13.js +190 -188
  226. package/SVF-doxygen/html/html/search/all_14.js +66 -66
  227. package/SVF-doxygen/html/html/search/all_15.js +170 -170
  228. package/SVF-doxygen/html/html/search/all_16.js +60 -60
  229. package/SVF-doxygen/html/html/search/all_17.js +1 -1
  230. package/SVF-doxygen/html/html/search/all_18.js +1 -1
  231. package/SVF-doxygen/html/html/search/all_19.js +11 -10
  232. package/SVF-doxygen/html/html/search/all_1a.js +169 -169
  233. package/SVF-doxygen/html/html/search/all_2.js +161 -159
  234. package/SVF-doxygen/html/html/search/all_3.js +628 -627
  235. package/SVF-doxygen/html/html/search/all_4.js +229 -226
  236. package/SVF-doxygen/html/html/search/all_5.js +117 -117
  237. package/SVF-doxygen/html/html/search/all_6.js +224 -224
  238. package/SVF-doxygen/html/html/search/all_7.js +1022 -1002
  239. package/SVF-doxygen/html/html/search/all_8.js +191 -191
  240. package/SVF-doxygen/html/html/search/all_9.js +602 -605
  241. package/SVF-doxygen/html/html/search/all_a.js +46 -46
  242. package/SVF-doxygen/html/html/search/all_b.js +26 -26
  243. package/SVF-doxygen/html/html/search/all_c.js +116 -114
  244. package/SVF-doxygen/html/html/search/all_d.js +196 -196
  245. package/SVF-doxygen/html/html/search/all_e.js +206 -205
  246. package/SVF-doxygen/html/html/search/all_f.js +116 -116
  247. package/SVF-doxygen/html/html/search/classes_0.js +26 -26
  248. package/SVF-doxygen/html/html/search/classes_1.js +9 -9
  249. package/SVF-doxygen/html/html/search/classes_10.js +73 -73
  250. package/SVF-doxygen/html/html/search/classes_11.js +15 -15
  251. package/SVF-doxygen/html/html/search/classes_12.js +2 -2
  252. package/SVF-doxygen/html/html/search/classes_13.js +10 -10
  253. package/SVF-doxygen/html/html/search/classes_14.js +14 -14
  254. package/SVF-doxygen/html/html/search/classes_15.js +1 -1
  255. package/SVF-doxygen/html/html/search/classes_2.js +76 -76
  256. package/SVF-doxygen/html/html/search/classes_3.js +35 -35
  257. package/SVF-doxygen/html/html/search/classes_4.js +8 -8
  258. package/SVF-doxygen/html/html/search/classes_5.js +28 -28
  259. package/SVF-doxygen/html/html/search/classes_6.js +98 -98
  260. package/SVF-doxygen/html/html/search/classes_7.js +33 -33
  261. package/SVF-doxygen/html/html/search/classes_8.js +56 -56
  262. package/SVF-doxygen/html/html/search/classes_9.js +1 -1
  263. package/SVF-doxygen/html/html/search/classes_a.js +12 -12
  264. package/SVF-doxygen/html/html/search/classes_b.js +29 -29
  265. package/SVF-doxygen/html/html/search/classes_c.js +6 -6
  266. package/SVF-doxygen/html/html/search/classes_d.js +18 -18
  267. package/SVF-doxygen/html/html/search/classes_e.js +36 -36
  268. package/SVF-doxygen/html/html/search/classes_f.js +25 -25
  269. package/SVF-doxygen/html/html/search/defines_0.js +3 -3
  270. package/SVF-doxygen/html/html/search/defines_1.js +2 -2
  271. package/SVF-doxygen/html/html/search/defines_2.js +30 -30
  272. package/SVF-doxygen/html/html/search/defines_3.js +20 -20
  273. package/SVF-doxygen/html/html/search/defines_4.js +3 -3
  274. package/SVF-doxygen/html/html/search/defines_5.js +4 -4
  275. package/SVF-doxygen/html/html/search/defines_6.js +2 -2
  276. package/SVF-doxygen/html/html/search/defines_7.js +5 -5
  277. package/SVF-doxygen/html/html/search/defines_8.js +11 -11
  278. package/SVF-doxygen/html/html/search/defines_9.js +9 -9
  279. package/SVF-doxygen/html/html/search/defines_a.js +2 -2
  280. package/SVF-doxygen/html/html/search/defines_b.js +1 -1
  281. package/SVF-doxygen/html/html/search/defines_c.js +3 -3
  282. package/SVF-doxygen/html/html/search/defines_d.js +2 -2
  283. package/SVF-doxygen/html/html/search/defines_e.js +7 -6
  284. package/SVF-doxygen/html/html/search/defines_f.js +3 -3
  285. package/SVF-doxygen/html/html/search/enums_0.js +3 -3
  286. package/SVF-doxygen/html/html/search/enums_1.js +2 -2
  287. package/SVF-doxygen/html/html/search/enums_10.js +1 -1
  288. package/SVF-doxygen/html/html/search/enums_11.js +1 -1
  289. package/SVF-doxygen/html/html/search/enums_2.js +8 -8
  290. package/SVF-doxygen/html/html/search/enums_3.js +1 -1
  291. package/SVF-doxygen/html/html/search/enums_4.js +3 -3
  292. package/SVF-doxygen/html/html/search/enums_5.js +1 -1
  293. package/SVF-doxygen/html/html/search/enums_6.js +2 -2
  294. package/SVF-doxygen/html/html/search/enums_7.js +2 -2
  295. package/SVF-doxygen/html/html/search/enums_8.js +4 -4
  296. package/SVF-doxygen/html/html/search/enums_9.js +1 -1
  297. package/SVF-doxygen/html/html/search/enums_a.js +1 -1
  298. package/SVF-doxygen/html/html/search/enums_b.js +7 -7
  299. package/SVF-doxygen/html/html/search/enums_c.js +1 -1
  300. package/SVF-doxygen/html/html/search/enums_d.js +4 -4
  301. package/SVF-doxygen/html/html/search/enums_e.js +2 -2
  302. package/SVF-doxygen/html/html/search/enums_f.js +4 -4
  303. package/SVF-doxygen/html/html/search/enumvalues_0.js +14 -14
  304. package/SVF-doxygen/html/html/search/enumvalues_1.js +14 -14
  305. package/SVF-doxygen/html/html/search/enumvalues_10.js +35 -35
  306. package/SVF-doxygen/html/html/search/enumvalues_11.js +3 -3
  307. package/SVF-doxygen/html/html/search/enumvalues_12.js +10 -10
  308. package/SVF-doxygen/html/html/search/enumvalues_13.js +1 -1
  309. package/SVF-doxygen/html/html/search/enumvalues_14.js +1 -1
  310. package/SVF-doxygen/html/html/search/enumvalues_15.js +3 -3
  311. package/SVF-doxygen/html/html/search/enumvalues_2.js +36 -36
  312. package/SVF-doxygen/html/html/search/enumvalues_3.js +13 -13
  313. package/SVF-doxygen/html/html/search/enumvalues_4.js +2 -2
  314. package/SVF-doxygen/html/html/search/enumvalues_5.js +47 -47
  315. package/SVF-doxygen/html/html/search/enumvalues_6.js +6 -6
  316. package/SVF-doxygen/html/html/search/enumvalues_7.js +9 -9
  317. package/SVF-doxygen/html/html/search/enumvalues_8.js +23 -23
  318. package/SVF-doxygen/html/html/search/enumvalues_9.js +6 -6
  319. package/SVF-doxygen/html/html/search/enumvalues_a.js +15 -15
  320. package/SVF-doxygen/html/html/search/enumvalues_b.js +11 -11
  321. package/SVF-doxygen/html/html/search/enumvalues_c.js +5 -5
  322. package/SVF-doxygen/html/html/search/enumvalues_d.js +18 -18
  323. package/SVF-doxygen/html/html/search/enumvalues_e.js +9 -9
  324. package/SVF-doxygen/html/html/search/enumvalues_f.js +45 -45
  325. package/SVF-doxygen/html/html/search/files_0.js +13 -13
  326. package/SVF-doxygen/html/html/search/files_1.js +7 -7
  327. package/SVF-doxygen/html/html/search/files_10.js +8 -8
  328. package/SVF-doxygen/html/html/search/files_11.js +8 -8
  329. package/SVF-doxygen/html/html/search/files_12.js +2 -2
  330. package/SVF-doxygen/html/html/search/files_2.js +49 -49
  331. package/SVF-doxygen/html/html/search/files_3.js +14 -14
  332. package/SVF-doxygen/html/html/search/files_4.js +5 -5
  333. package/SVF-doxygen/html/html/search/files_5.js +13 -13
  334. package/SVF-doxygen/html/html/search/files_6.js +9 -9
  335. package/SVF-doxygen/html/html/search/files_7.js +14 -14
  336. package/SVF-doxygen/html/html/search/files_8.js +13 -13
  337. package/SVF-doxygen/html/html/search/files_9.js +18 -18
  338. package/SVF-doxygen/html/html/search/files_a.js +3 -3
  339. package/SVF-doxygen/html/html/search/files_b.js +2 -2
  340. package/SVF-doxygen/html/html/search/files_c.js +20 -20
  341. package/SVF-doxygen/html/html/search/files_d.js +4 -4
  342. package/SVF-doxygen/html/html/search/files_e.js +62 -62
  343. package/SVF-doxygen/html/html/search/files_f.js +8 -8
  344. package/SVF-doxygen/html/html/search/functions_0.js +12 -6
  345. package/SVF-doxygen/html/html/search/functions_1.js +350 -349
  346. package/SVF-doxygen/html/html/search/functions_10.js +140 -139
  347. package/SVF-doxygen/html/html/search/functions_11.js +127 -126
  348. package/SVF-doxygen/html/html/search/functions_12.js +275 -274
  349. package/SVF-doxygen/html/html/search/functions_13.js +58 -56
  350. package/SVF-doxygen/html/html/search/functions_14.js +38 -38
  351. package/SVF-doxygen/html/html/search/functions_15.js +71 -71
  352. package/SVF-doxygen/html/html/search/functions_16.js +29 -29
  353. package/SVF-doxygen/html/html/search/functions_17.js +3 -2
  354. package/SVF-doxygen/html/html/search/functions_18.js +169 -169
  355. package/SVF-doxygen/html/html/search/functions_2.js +84 -82
  356. package/SVF-doxygen/html/html/search/functions_3.js +253 -252
  357. package/SVF-doxygen/html/html/search/functions_4.js +74 -71
  358. package/SVF-doxygen/html/html/search/functions_5.js +51 -51
  359. package/SVF-doxygen/html/html/search/functions_6.js +58 -58
  360. package/SVF-doxygen/html/html/search/functions_7.js +842 -822
  361. package/SVF-doxygen/html/html/search/functions_8.js +143 -143
  362. package/SVF-doxygen/html/html/search/functions_9.js +422 -425
  363. package/SVF-doxygen/html/html/search/functions_a.js +30 -30
  364. package/SVF-doxygen/html/html/search/functions_b.js +2 -2
  365. package/SVF-doxygen/html/html/search/functions_c.js +26 -24
  366. package/SVF-doxygen/html/html/search/functions_d.js +77 -77
  367. package/SVF-doxygen/html/html/search/functions_e.js +35 -34
  368. package/SVF-doxygen/html/html/search/functions_f.js +56 -56
  369. package/SVF-doxygen/html/html/search/namespaces_0.js +1 -1
  370. package/SVF-doxygen/html/html/search/namespaces_1.js +7 -7
  371. package/SVF-doxygen/html/html/search/related_0.js +2 -2
  372. package/SVF-doxygen/html/html/search/related_1.js +1 -1
  373. package/SVF-doxygen/html/html/search/related_2.js +2 -2
  374. package/SVF-doxygen/html/html/search/related_3.js +2 -2
  375. package/SVF-doxygen/html/html/search/related_4.js +2 -2
  376. package/SVF-doxygen/html/html/search/related_5.js +1 -1
  377. package/SVF-doxygen/html/html/search/related_6.js +2 -2
  378. package/SVF-doxygen/html/html/search/related_7.js +4 -4
  379. package/SVF-doxygen/html/html/search/related_8.js +2 -2
  380. package/SVF-doxygen/html/html/search/related_9.js +4 -4
  381. package/SVF-doxygen/html/html/search/related_a.js +19 -19
  382. package/SVF-doxygen/html/html/search/related_b.js +4 -4
  383. package/SVF-doxygen/html/html/search/related_c.js +1 -1
  384. package/SVF-doxygen/html/html/search/related_d.js +11 -11
  385. package/SVF-doxygen/html/html/search/related_e.js +2 -2
  386. package/SVF-doxygen/html/html/search/related_f.js +2 -2
  387. package/SVF-doxygen/html/html/search/typedefs_0.js +18 -18
  388. package/SVF-doxygen/html/html/search/typedefs_1.js +25 -25
  389. package/SVF-doxygen/html/html/search/typedefs_10.js +62 -60
  390. package/SVF-doxygen/html/html/search/typedefs_11.js +13 -13
  391. package/SVF-doxygen/html/html/search/typedefs_12.js +11 -11
  392. package/SVF-doxygen/html/html/search/typedefs_13.js +35 -35
  393. package/SVF-doxygen/html/html/search/typedefs_14.js +8 -8
  394. package/SVF-doxygen/html/html/search/typedefs_2.js +126 -126
  395. package/SVF-doxygen/html/html/search/typedefs_3.js +39 -39
  396. package/SVF-doxygen/html/html/search/typedefs_4.js +16 -16
  397. package/SVF-doxygen/html/html/search/typedefs_5.js +41 -41
  398. package/SVF-doxygen/html/html/search/typedefs_6.js +52 -52
  399. package/SVF-doxygen/html/html/search/typedefs_7.js +40 -40
  400. package/SVF-doxygen/html/html/search/typedefs_8.js +1 -1
  401. package/SVF-doxygen/html/html/search/typedefs_9.js +6 -6
  402. package/SVF-doxygen/html/html/search/typedefs_a.js +29 -29
  403. package/SVF-doxygen/html/html/search/typedefs_b.js +29 -29
  404. package/SVF-doxygen/html/html/search/typedefs_c.js +40 -40
  405. package/SVF-doxygen/html/html/search/typedefs_d.js +15 -15
  406. package/SVF-doxygen/html/html/search/typedefs_e.js +52 -52
  407. package/SVF-doxygen/html/html/search/typedefs_f.js +14 -14
  408. package/SVF-doxygen/html/html/search/variables_0.js +147 -147
  409. package/SVF-doxygen/html/html/search/variables_1.js +75 -75
  410. package/SVF-doxygen/html/html/search/variables_10.js +97 -97
  411. package/SVF-doxygen/html/html/search/variables_11.js +46 -46
  412. package/SVF-doxygen/html/html/search/variables_12.js +92 -92
  413. package/SVF-doxygen/html/html/search/variables_13.js +75 -75
  414. package/SVF-doxygen/html/html/search/variables_14.js +14 -14
  415. package/SVF-doxygen/html/html/search/variables_15.js +48 -48
  416. package/SVF-doxygen/html/html/search/variables_16.js +9 -9
  417. package/SVF-doxygen/html/html/search/variables_17.js +1 -1
  418. package/SVF-doxygen/html/html/search/variables_18.js +2 -2
  419. package/SVF-doxygen/html/html/search/variables_2.js +34 -34
  420. package/SVF-doxygen/html/html/search/variables_3.js +141 -141
  421. package/SVF-doxygen/html/html/search/variables_4.js +55 -55
  422. package/SVF-doxygen/html/html/search/variables_5.js +38 -38
  423. package/SVF-doxygen/html/html/search/variables_6.js +66 -66
  424. package/SVF-doxygen/html/html/search/variables_7.js +33 -33
  425. package/SVF-doxygen/html/html/search/variables_8.js +7 -7
  426. package/SVF-doxygen/html/html/search/variables_9.js +77 -77
  427. package/SVF-doxygen/html/html/search/variables_a.js +4 -4
  428. package/SVF-doxygen/html/html/search/variables_b.js +10 -10
  429. package/SVF-doxygen/html/html/search/variables_c.js +45 -45
  430. package/SVF-doxygen/html/html/search/variables_d.js +56 -56
  431. package/SVF-doxygen/html/html/search/variables_e.js +123 -123
  432. package/SVF-doxygen/html/html/search/variables_f.js +30 -30
  433. package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01ConstraintGraph_01_5_01_4.html +1 -1
  434. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1is__iterable.html +1 -1
  435. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1is__iterable_3_01T_00_01void__t_3_01decltype_07std_1_1begin_07std_1_1dec794949348c8e1e00603fd8633b6dd1f3.html +1 -1
  436. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1is__map.html +1 -1
  437. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1is__map_3_01std_1_1map_3_01Ts_8_8_8_01_4_01_4.html +1 -1
  438. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1is__map_3_01std_1_1unordered__map_3_01Ts_8_8_8_01_4_01_4.html +1 -1
  439. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1is__sequence__container.html +1 -1
  440. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1is__sequence__container_3_01std_1_1deque_3_01Ts_8_8_8_01_4_01_4.html +1 -1
  441. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1is__sequence__container_3_01std_1_1list_3_01Ts_8_8_8_01_4_01_4.html +1 -1
  442. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1is__sequence__container_3_01std_1_1vector_3_01Ts_8_8_8_01_4_01_4.html +1 -1
  443. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1is__set.html +1 -1
  444. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1is__set_3_01std_1_1set_3_01Ts_8_8_8_01_4_01_4.html +1 -1
  445. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1is__set_3_01std_1_1unordered__set_3_01Ts_8_8_8_01_4_01_4.html +1 -1
  446. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1make__void.html +2 -2
  447. package/SVF-doxygen/html/html/svf-ex_8cpp.html +1 -1
  448. package/SVF-doxygen/html/html/svf-ex_8cpp_source.html +1 -1
  449. package/package.json +1 -1
  450. package/svf/include/Util/SVFUtil.h +0 -34
  451. package/svf/lib/Util/ExtAPI.cpp +0 -6
  452. package/svf-llvm/include/SVF-LLVM/BasicTypes.h +4 -0
  453. package/svf-llvm/include/SVF-LLVM/LLVMUtil.h +51 -2
  454. package/svf-llvm/lib/LLVMUtil.cpp +37 -2
  455. package/svf-llvm/lib/SVFIRBuilder.cpp +10 -9
  456. package/svf-llvm/lib/SVFIRExtAPI.cpp +1 -1
  457. package/svf-llvm/lib/SymbolTableBuilder.cpp +0 -9
  458. package/svf-llvm/lib/extapi.c +210 -295
@@ -418,7 +418,7 @@ Functions</h2></td></tr>
418
418
  <div class="ttc" id="aclassSVF_1_1SVFIR_html_abda052b73e869ed6d7c139ad1528da11"><div class="ttname"><a href="classSVF_1_1SVFIR.html#abda052b73e869ed6d7c139ad1528da11">SVF::SVFIR::getICFG</a></div><div class="ttdeci">ICFG * getICFG() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00169">SVFIR.h:169</a></div></div>
419
419
  <div class="ttc" id="aclassSVF_1_1PTACallGraph_html"><div class="ttname"><a href="classSVF_1_1PTACallGraph.html">SVF::PTACallGraph</a></div><div class="ttdef"><b>Definition:</b> <a href="PTACallGraph_8h_source.html#l00218">PTACallGraph.h:218</a></div></div>
420
420
  <div class="ttc" id="aclassSVF_1_1SVFModule_html"><div class="ttname"><a href="classSVF_1_1SVFModule.html">SVF::SVFModule</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFModule_8h_source.html#l00040">SVFModule.h:40</a></div></div>
421
- <div class="ttc" id="aclassSVF_1_1SVFValue_html_a4a0cfe3a8f37d33ffcdca3d66026dcc3"><div class="ttname"><a href="classSVF_1_1SVFValue.html#a4a0cfe3a8f37d33ffcdca3d66026dcc3">SVF::SVFValue::toString</a></div><div class="ttdeci">std::string toString() const</div><div class="ttdoc">Needs to be implemented by a SVF front end.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l01159">LLVMUtil.cpp:1159</a></div></div>
421
+ <div class="ttc" id="aclassSVF_1_1SVFValue_html_a4a0cfe3a8f37d33ffcdca3d66026dcc3"><div class="ttname"><a href="classSVF_1_1SVFValue.html#a4a0cfe3a8f37d33ffcdca3d66026dcc3">SVF::SVFValue::toString</a></div><div class="ttdeci">std::string toString() const</div><div class="ttdoc">Needs to be implemented by a SVF front end.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l01194">LLVMUtil.cpp:1194</a></div></div>
422
422
  <div class="ttc" id="aclassSVF_1_1VFGNode_html_a3c558955f60c237c558d8faafed781e8"><div class="ttname"><a href="classSVF_1_1VFGNode.html#a3c558955f60c237c558d8faafed781e8">SVF::VFGNode::const_iterator</a></div><div class="ttdeci">VFGEdge::VFGEdgeSetTy::const_iterator const_iterator</div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00060">VFGNode.h:60</a></div></div>
423
423
  <div class="ttc" id="aclassSVF_1_1ICFG_html"><div class="ttname"><a href="classSVF_1_1ICFG.html">SVF::ICFG</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00047">ICFG.h:47</a></div></div>
424
424
  <div class="ttc" id="aclassSVF_1_1PointsTo_html_ad5b582d2672617806c61e6170d0b5a7e"><div class="ttname"><a href="classSVF_1_1PointsTo.html#ad5b582d2672617806c61e6170d0b5a7e">SVF::PointsTo::begin</a></div><div class="ttdeci">const_iterator begin() const</div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8h_source.html#l00128">PointsTo.h:128</a></div></div>
@@ -283,7 +283,7 @@ $(function() {
283
283
  <div class="ttc" id="asvf-ex_8cpp_html_ad2f24f5ef6a8eaf0e4a77a8a4d31bc9f"><div class="ttname"><a href="svf-ex_8cpp.html#ad2f24f5ef6a8eaf0e4a77a8a4d31bc9f">aliasQuery</a></div><div class="ttdeci">SVF::AliasResult aliasQuery(PointerAnalysis *pta, SVFValue *v1, SVFValue *v2)</div><div class="ttdef"><b>Definition:</b> <a href="svf-ex_8cpp_source.html#l00042">svf-ex.cpp:42</a></div></div>
284
284
  <div class="ttc" id="aclassSVF_1_1PTACallGraph_html"><div class="ttname"><a href="classSVF_1_1PTACallGraph.html">SVF::PTACallGraph</a></div><div class="ttdef"><b>Definition:</b> <a href="PTACallGraph_8h_source.html#l00218">PTACallGraph.h:218</a></div></div>
285
285
  <div class="ttc" id="aclassSVF_1_1SVFModule_html"><div class="ttname"><a href="classSVF_1_1SVFModule.html">SVF::SVFModule</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFModule_8h_source.html#l00040">SVFModule.h:40</a></div></div>
286
- <div class="ttc" id="aclassSVF_1_1SVFValue_html_a4a0cfe3a8f37d33ffcdca3d66026dcc3"><div class="ttname"><a href="classSVF_1_1SVFValue.html#a4a0cfe3a8f37d33ffcdca3d66026dcc3">SVF::SVFValue::toString</a></div><div class="ttdeci">std::string toString() const</div><div class="ttdoc">Needs to be implemented by a SVF front end.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l01159">LLVMUtil.cpp:1159</a></div></div>
286
+ <div class="ttc" id="aclassSVF_1_1SVFValue_html_a4a0cfe3a8f37d33ffcdca3d66026dcc3"><div class="ttname"><a href="classSVF_1_1SVFValue.html#a4a0cfe3a8f37d33ffcdca3d66026dcc3">SVF::SVFValue::toString</a></div><div class="ttdeci">std::string toString() const</div><div class="ttdoc">Needs to be implemented by a SVF front end.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l01194">LLVMUtil.cpp:1194</a></div></div>
287
287
  <div class="ttc" id="aclassSVF_1_1VFGNode_html_a3c558955f60c237c558d8faafed781e8"><div class="ttname"><a href="classSVF_1_1VFGNode.html#a3c558955f60c237c558d8faafed781e8">SVF::VFGNode::const_iterator</a></div><div class="ttdeci">VFGEdge::VFGEdgeSetTy::const_iterator const_iterator</div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00060">VFGNode.h:60</a></div></div>
288
288
  <div class="ttc" id="aclassSVF_1_1ICFG_html"><div class="ttname"><a href="classSVF_1_1ICFG.html">SVF::ICFG</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00047">ICFG.h:47</a></div></div>
289
289
  <div class="ttc" id="aclassSVF_1_1PointsTo_html_ad5b582d2672617806c61e6170d0b5a7e"><div class="ttname"><a href="classSVF_1_1PointsTo.html#ad5b582d2672617806c61e6170d0b5a7e">SVF::PointsTo::begin</a></div><div class="ttdeci">const_iterator begin() const</div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8h_source.html#l00128">PointsTo.h:128</a></div></div>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "svf-tools",
3
- "version": "1.0.769",
3
+ "version": "1.0.771",
4
4
  "description": "* <b>[TypeClone](https://github.com/SVF-tools/SVF/wiki/TypeClone) published in our [ECOOP paper](https://yuleisui.github.io/publications/ecoop20.pdf) is now available in SVF </b> * <b>SVF now uses a single script for its build. Just type [`source ./build.sh`](https://github.com/SVF-tools/SVF/blob/master/build.sh) in your terminal, that's it!</b> * <b>SVF now supports LLVM-10.0.0! </b> * <b>We thank [bsauce](https://github.com/bsauce) for writing a user manual of SVF ([link1](https://www.jianshu.com/p/068a08ec749c) and [link2](https://www.jianshu.com/p/777c30d4240e)) in Chinese </b> * <b>SVF now supports LLVM-9.0.0 (Thank [Byoungyoung Lee](https://github.com/SVF-tools/SVF/issues/142) for his help!). </b> * <b>SVF now supports a set of [field-sensitive pointer analyses](https://yuleisui.github.io/publications/sas2019a.pdf). </b> * <b>[Use SVF as an external lib](https://github.com/SVF-tools/SVF/wiki/Using-SVF-as-a-lib-in-your-own-tool) for your own project (Contributed by [Hongxu Chen](https://github.com/HongxuChen)). </b> * <b>SVF now supports LLVM-7.0.0. </b> * <b>SVF now supports Docker. [Try SVF in Docker](https://github.com/SVF-tools/SVF/wiki/Try-SVF-in-Docker)! </b> * <b>SVF now supports [LLVM-6.0.0](https://github.com/svf-tools/SVF/pull/38) (Contributed by [Jack Anthony](https://github.com/jackanth)). </b> * <b>SVF now supports [LLVM-4.0.0](https://github.com/svf-tools/SVF/pull/23) (Contributed by Jared Carlson. Thank [Jared](https://github.com/jcarlson23) and [Will](https://github.com/dtzWill) for their in-depth [discussions](https://github.com/svf-tools/SVF/pull/18) about updating SVF!) </b> * <b>SVF now supports analysis for C++ programs.</b> <br />",
5
5
  "main": "index.js",
6
6
  "scripts": {
@@ -350,14 +350,6 @@ inline bool isReallocExtFun(const SVFFunction* fun)
350
350
  return fun && (ExtAPI::getExtAPI()->is_realloc(fun));
351
351
  }
352
352
 
353
- /// Return true if the call is a static global call
354
- //@{
355
- /// note that this function is not suppose to be used externally
356
- inline bool isStaticExtFun(const SVFFunction* fun)
357
- {
358
- return fun && ExtAPI::getExtAPI()->has_static(fun);
359
- }
360
-
361
353
  /// Program entry function e.g. main
362
354
  //@{
363
355
  /// Return true if this is a program entry function (e.g. main)
@@ -494,32 +486,6 @@ inline bool isReallocExtCall(const SVFInstruction *inst)
494
486
  }
495
487
  //@}
496
488
 
497
- inline bool isStaticExtCall(const CallSite cs)
498
- {
499
- bool isPtrTy = cs.getInstruction()->getType()->isPointerTy();
500
- return isPtrTy && isStaticExtFun(getCallee(cs));
501
- }
502
-
503
- inline bool isStaticExtCall(const SVFInstruction *inst)
504
- {
505
- bool isPtrTy = inst->getType()->isPointerTy();
506
- return isPtrTy && isStaticExtFun(getCallee(inst));
507
- }
508
- //@}
509
-
510
- /// Return true if the call is a static global call
511
- //@{
512
- inline bool isHeapAllocOrStaticExtCall(const CallSite cs)
513
- {
514
- return isStaticExtCall(cs) || isHeapAllocExtCall(cs);
515
- }
516
-
517
- inline bool isHeapAllocOrStaticExtCall(const SVFInstruction *inst)
518
- {
519
- return isStaticExtCall(inst) || isHeapAllocExtCall(inst);
520
- }
521
- //@}
522
-
523
489
  /// Return true if this is a thread creation call
524
490
  ///@{
525
491
  inline bool isThreadForkCall(const CallSite cs)
@@ -144,12 +144,6 @@ bool ExtAPI::hasExtFuncAnnotation(const SVFFunction* fun, const std::string& fun
144
144
  return false;
145
145
  }
146
146
 
147
- // Does (F) have a static var X (unavailable to us) that its return points to?
148
- bool ExtAPI::has_static(const SVFFunction* F)
149
- {
150
- return F && hasExtFuncAnnotation(F, "STATIC");
151
- }
152
-
153
147
  bool ExtAPI::is_memcpy(const SVFFunction *F)
154
148
  {
155
149
  return F && hasExtFuncAnnotation(F, "MEMCPY");
@@ -178,6 +178,10 @@ typedef llvm::BinaryOperator BinaryOperator;
178
178
  typedef llvm::UnaryOperator UnaryOperator;
179
179
  typedef llvm::UndefValue UndefValue;
180
180
 
181
+ // Related to Switch Case
182
+ typedef std::pair<const BasicBlock*, const ConstantInt*> SuccBBAndCondValPair;
183
+ typedef std::vector<SuccBBAndCondValPair> SuccBBAndCondValPairVec;
184
+
181
185
  // LLVM Intrinsic Instructions
182
186
  #if LLVM_VERSION_MAJOR >= 13
183
187
  typedef llvm::IntrinsicInst IntrinsicInst;
@@ -141,10 +141,10 @@ inline const PointerType *getRefTypeOfHeapAllocOrStatic(const CallBase* cs)
141
141
  if (const PointerType *argType = SVFUtil::dyn_cast<PointerType>(arg->getType()))
142
142
  refType = SVFUtil::dyn_cast<PointerType>(getPtrElementType(argType));
143
143
  }
144
- // Case 2: heap/static object held by return value.
144
+ // Case 2: heap object held by return value.
145
145
  else
146
146
  {
147
- assert((SVFUtil::isStaticExtCall(svfcs) || SVFUtil::isHeapAllocExtCallViaRet(svfcs))
147
+ assert(SVFUtil::isHeapAllocExtCallViaRet(svfcs)
148
148
  && "Must be heap alloc via ret, or static allocation site");
149
149
  refType = SVFUtil::dyn_cast<PointerType>(cs->getType());
150
150
  }
@@ -519,6 +519,55 @@ std::string llvmToString(const T& val)
519
519
  llvm::raw_string_ostream(str) << val;
520
520
  return str;
521
521
  }
522
+
523
+ /**
524
+ * See more: https://github.com/SVF-tools/SVF/pull/1191
525
+ *
526
+ * Given the code:
527
+ *
528
+ * switch (a) {
529
+ * case 0: printf("0\n"); break;
530
+ * case 1:
531
+ * case 2:
532
+ * case 3: printf("a >=1 && a <= 3\n"); break;
533
+ * case 4:
534
+ * case 6:
535
+ * case 7: printf("a >= 4 && a <=7\n"); break;
536
+ * default: printf("a < 0 || a > 7"); break;
537
+ * }
538
+ *
539
+ * Generate the IR:
540
+ *
541
+ * switch i32 %0, label %sw.default [
542
+ * i32 0, label %sw.bb
543
+ * i32 1, label %sw.bb1
544
+ * i32 2, label %sw.bb1
545
+ * i32 3, label %sw.bb1
546
+ * i32 4, label %sw.bb3
547
+ * i32 6, label %sw.bb3
548
+ * i32 7, label %sw.bb3
549
+ * ]
550
+ *
551
+ * We can get every case basic block and related case value:
552
+ * [
553
+ * {%sw.default, -1},
554
+ * {%sw.bb, 0},
555
+ * {%sw.bb1, 1},
556
+ * {%sw.bb1, 2},
557
+ * {%sw.bb1, 3},
558
+ * {%sw.bb3, 4},
559
+ * {%sw.bb3, 6},
560
+ * {%sw.bb3, 7},
561
+ * ]
562
+ * Note: default case value is nullptr
563
+ */
564
+ void getSuccBBandCondValPairVec(const SwitchInst &switchInst, SuccBBAndCondValPairVec &vec);
565
+
566
+ /**
567
+ * Note: default case value is nullptr
568
+ */
569
+ s64_t getCaseValue(const SwitchInst &switchInst, SuccBBAndCondValPair &succBB2CondVal);
570
+
522
571
  } // End namespace LLVMUtil
523
572
 
524
573
  } // End namespace SVF
@@ -53,8 +53,6 @@ const std::string structName = "struct.";
53
53
  */
54
54
  bool LLVMUtil::isObject(const Value* ref)
55
55
  {
56
- if (SVFUtil::isa<Instruction>(ref) && SVFUtil::isStaticExtCall(LLVMModuleSet::getLLVMModuleSet()->getSVFInstruction(SVFUtil::cast<Instruction>(ref))) )
57
- return true;
58
56
  if (SVFUtil::isa<Instruction>(ref) && SVFUtil::isHeapAllocExtCallViaRet(LLVMModuleSet::getLLVMModuleSet()->getSVFInstruction(SVFUtil::cast<Instruction>(ref))))
59
57
  return true;
60
58
  if (SVFUtil::isa<GlobalVariable>(ref))
@@ -1154,6 +1152,43 @@ s32_t LLVMUtil::getVCallIdx(const CallBase* cs)
1154
1152
  return idx_value;
1155
1153
  }
1156
1154
 
1155
+ void LLVMUtil::getSuccBBandCondValPairVec(const SwitchInst &switchInst, SuccBBAndCondValPairVec &vec)
1156
+ {
1157
+ // get default successor basic block and default case value (nullptr)
1158
+ vec.push_back({switchInst.getDefaultDest(), nullptr});
1159
+
1160
+ // get normal case value and it's successor basic block
1161
+ for (const auto& cs : switchInst.cases())
1162
+ vec.push_back({cs.getCaseSuccessor(), cs.getCaseValue()});
1163
+ }
1164
+
1165
+ s64_t LLVMUtil::getCaseValue(const SwitchInst &switchInst, SuccBBAndCondValPair &succBB2CondVal)
1166
+ {
1167
+ const BasicBlock* succBB = succBB2CondVal.first;
1168
+ const ConstantInt* caseValue = succBB2CondVal.second;
1169
+ s64_t val;
1170
+ if (caseValue == nullptr || succBB == switchInst.getDefaultDest())
1171
+ {
1172
+ /// default case value is set to -1
1173
+ val = -1;
1174
+ }
1175
+ else
1176
+ {
1177
+ /// get normal case value
1178
+ if (caseValue->getBitWidth() <= 64)
1179
+ {
1180
+ val = caseValue->getSExtValue();
1181
+ }
1182
+ else
1183
+ {
1184
+ /// For larger number, we preserve case value just -1 now
1185
+ /// see more: https://github.com/SVF-tools/SVF/pull/992
1186
+ val = -1;
1187
+ }
1188
+ }
1189
+ return val;
1190
+ }
1191
+
1157
1192
  namespace SVF
1158
1193
  {
1159
1194
  std::string SVFValue::toString() const
@@ -946,19 +946,20 @@ void SVFIRBuilder::visitSwitchInst(SwitchInst &inst)
946
946
  NodeID cond = getValueNode(inst.getCondition());
947
947
 
948
948
  BranchStmt::SuccAndCondPairVec successors;
949
- for (u32_t i = 0; i < inst.getNumSuccessors(); ++i)
949
+
950
+ // get case successor basic block and related case value
951
+ SuccBBAndCondValPairVec succBB2CondValPairVec;
952
+ LLVMUtil::getSuccBBandCondValPairVec(inst, succBB2CondValPairVec);
953
+ for (auto &succBB2CaseValue : succBB2CondValPairVec)
950
954
  {
951
- const Instruction* succInst = &inst.getSuccessor(i)->front();
952
- const ConstantInt* condVal = inst.findCaseDest(inst.getSuccessor(i));
953
- /// default case is set to -1;
954
- s64_t val = -1;
955
- if (condVal && condVal->getBitWidth() <= 64)
956
- val = condVal->getSExtValue();
955
+ s64_t val = LLVMUtil::getCaseValue(inst, succBB2CaseValue);
956
+ const BasicBlock *succBB = succBB2CaseValue.first;
957
+ const Instruction* succInst = &succBB->front();
957
958
  const SVFInstruction* svfSuccInst = LLVMModuleSet::getLLVMModuleSet()->getSVFInstruction(succInst);
958
959
  const ICFGNode* icfgNode = pag->getICFG()->getICFGNode(svfSuccInst);
959
- successors.push_back(std::make_pair(icfgNode,val));
960
+ successors.push_back(std::make_pair(icfgNode, val));
960
961
  }
961
- addBranchStmt(brinst, cond,successors);
962
+ addBranchStmt(brinst, cond, successors);
962
963
  }
963
964
 
964
965
  /// %ap = alloca %struct.va_list
@@ -128,7 +128,7 @@ void SVFIRBuilder::handleExtCall(const CallBase* cs, const SVFFunction* svfCalle
128
128
  const SVFInstruction* svfInst = LLVMModuleSet::getLLVMModuleSet()->getSVFInstruction(cs);
129
129
  const SVFCallInst* svfCall = SVFUtil::cast<SVFCallInst>(svfInst);
130
130
 
131
- if (isHeapAllocExtCallViaRet(svfCall) || isStaticExtCall(svfCall))
131
+ if (isHeapAllocExtCallViaRet(svfCall))
132
132
  {
133
133
  NodeID val = pag->getValueNode(svfInst);
134
134
  NodeID obj = pag->getObjectNode(svfInst);
@@ -750,15 +750,6 @@ void SymbolTableBuilder::initTypeInfo(ObjTypeInfo* typeinfo, const Value* val,
750
750
  // Heap object, label its field as infinite here
751
751
  objSize = typeinfo->getMaxFieldOffsetLimit();
752
752
  }
753
- else if (SVFUtil::isa<Instruction>(val) &&
754
- isStaticExtCall(
755
- LLVMModuleSet::getLLVMModuleSet()->getSVFInstruction(
756
- SVFUtil::cast<Instruction>(val))))
757
- {
758
- analyzeStaticObjType(typeinfo,val);
759
- // static object allocated before main, label its field as infinite here
760
- objSize = typeinfo->getMaxFieldOffsetLimit();
761
- }
762
753
  else if(ArgInProgEntryFunction(val))
763
754
  {
764
755
  analyzeStaticObjType(typeinfo,val);