svf-tools 1.0.829 → 1.0.830

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 (386) hide show
  1. package/SVF-doxygen/html/AccessPath_8cpp_source.html +225 -224
  2. package/SVF-doxygen/html/AccessPath_8h_source.html +11 -11
  3. package/SVF-doxygen/html/AndersenSFR_8cpp_source.html +1 -1
  4. package/SVF-doxygen/html/Andersen_8cpp_source.html +1 -1
  5. package/SVF-doxygen/html/BasicTypes_8h.html +2 -0
  6. package/SVF-doxygen/html/BasicTypes_8h_source.html +123 -121
  7. package/SVF-doxygen/html/CFLAlias_8cpp_source.html +1 -1
  8. package/SVF-doxygen/html/CFLGraphBuilder_8cpp_source.html +1 -1
  9. package/SVF-doxygen/html/CHGBuilder_8cpp_source.html +11 -11
  10. package/SVF-doxygen/html/ConsG_8cpp_source.html +1 -1
  11. package/SVF-doxygen/html/ConsG_8h_source.html +1 -1
  12. package/SVF-doxygen/html/ContextDDA_8cpp_source.html +1 -1
  13. package/SVF-doxygen/html/ContextDDA_8h_source.html +1 -1
  14. package/SVF-doxygen/html/CxtStmt_8h_source.html +1 -1
  15. package/SVF-doxygen/html/DCHG_8cpp_source.html +12 -12
  16. package/SVF-doxygen/html/DCHG_8h_source.html +5 -5
  17. package/SVF-doxygen/html/DDAClient_8cpp_source.html +2 -2
  18. package/SVF-doxygen/html/DDAStat_8cpp_source.html +1 -1
  19. package/SVF-doxygen/html/DDAVFSolver_8h_source.html +4 -4
  20. package/SVF-doxygen/html/FlowDDA_8cpp_source.html +1 -1
  21. package/SVF-doxygen/html/FlowDDA_8h_source.html +1 -1
  22. package/SVF-doxygen/html/FlowSensitiveStat_8cpp_source.html +1 -1
  23. package/SVF-doxygen/html/ICFGBuilder_8cpp_source.html +1 -1
  24. package/SVF-doxygen/html/ICFG_8cpp_source.html +1 -1
  25. package/SVF-doxygen/html/IRGraph_8h_source.html +2 -2
  26. package/SVF-doxygen/html/LLVMModule_8cpp_source.html +145 -144
  27. package/SVF-doxygen/html/LLVMModule_8h_source.html +3 -3
  28. package/SVF-doxygen/html/LLVMUtil_8cpp_source.html +1138 -1066
  29. package/SVF-doxygen/html/LLVMUtil_8h.html +2 -0
  30. package/SVF-doxygen/html/LLVMUtil_8h_source.html +419 -414
  31. package/SVF-doxygen/html/LockResultValidator_8cpp_source.html +1 -1
  32. package/SVF-doxygen/html/MHP_8cpp_source.html +1 -1
  33. package/SVF-doxygen/html/MTAAnnotator_8cpp_source.html +1 -1
  34. package/SVF-doxygen/html/MemRegion_8cpp_source.html +3 -3
  35. package/SVF-doxygen/html/MemSSA_8cpp_source.html +1 -1
  36. package/SVF-doxygen/html/PointerAnalysisImpl_8cpp_source.html +4 -4
  37. package/SVF-doxygen/html/PointerAnalysis_8cpp_source.html +363 -362
  38. package/SVF-doxygen/html/PointerAnalysis_8h_source.html +13 -13
  39. package/SVF-doxygen/html/SVFIR2ConsExeState_8cpp_source.html +7 -7
  40. package/SVF-doxygen/html/SVFIR2ItvExeState_8cpp_source.html +11 -10
  41. package/SVF-doxygen/html/SVFIRBuilder_8cpp_source.html +927 -924
  42. package/SVF-doxygen/html/SVFIRBuilder_8h_source.html +35 -34
  43. package/SVF-doxygen/html/SVFIRExtAPI_8cpp_source.html +2 -2
  44. package/SVF-doxygen/html/SVFIR_8cpp_source.html +1 -1
  45. package/SVF-doxygen/html/SVFIR_8h_source.html +1 -1
  46. package/SVF-doxygen/html/SVFStat_8cpp_source.html +12 -12
  47. package/SVF-doxygen/html/SVFStatements_8cpp_source.html +1 -1
  48. package/SVF-doxygen/html/SVFStatements_8h_source.html +2 -2
  49. package/SVF-doxygen/html/SVFType_8cpp_source.html +38 -37
  50. package/SVF-doxygen/html/SVFType_8h_source.html +5 -5
  51. package/SVF-doxygen/html/SVFValue_8cpp_source.html +1 -1
  52. package/SVF-doxygen/html/SVFValue_8h_source.html +1 -1
  53. package/SVF-doxygen/html/SVFVariables_8cpp_source.html +1 -1
  54. package/SVF-doxygen/html/SVFVariables_8h_source.html +1 -1
  55. package/SVF-doxygen/html/SaberSVFGBuilder_8cpp_source.html +1 -1
  56. package/SVF-doxygen/html/Steensgaard_8cpp_source.html +1 -1
  57. package/SVF-doxygen/html/SymbolTableBuilder_8cpp_source.html +653 -651
  58. package/SVF-doxygen/html/SymbolTableBuilder_8h_source.html +17 -17
  59. package/SVF-doxygen/html/SymbolTableInfo_8cpp_source.html +339 -338
  60. package/SVF-doxygen/html/SymbolTableInfo_8h_source.html +33 -33
  61. package/SVF-doxygen/html/ThreadCallGraph_8cpp_source.html +1 -1
  62. package/SVF-doxygen/html/VersionedFlowSensitiveStat_8cpp_source.html +1 -1
  63. package/SVF-doxygen/html/classSVF_1_1AccessPath-members.html +3 -3
  64. package/SVF-doxygen/html/classSVF_1_1AccessPath.html +236 -235
  65. package/SVF-doxygen/html/classSVF_1_1ActualINSVFGNode.html +1 -1
  66. package/SVF-doxygen/html/classSVF_1_1ActualOUTSVFGNode.html +1 -1
  67. package/SVF-doxygen/html/classSVF_1_1AddrStmt.html +1 -1
  68. package/SVF-doxygen/html/classSVF_1_1AliasDDAClient.html +1 -1
  69. package/SVF-doxygen/html/classSVF_1_1Andersen.html +1 -1
  70. package/SVF-doxygen/html/classSVF_1_1AndersenSFR.html +1 -1
  71. package/SVF-doxygen/html/classSVF_1_1BVDataPTAImpl.html +4 -4
  72. package/SVF-doxygen/html/classSVF_1_1BinaryOPStmt.html +1 -1
  73. package/SVF-doxygen/html/classSVF_1_1BinaryOPVFGNode.html +1 -1
  74. package/SVF-doxygen/html/classSVF_1_1BranchStmt.html +1 -1
  75. package/SVF-doxygen/html/classSVF_1_1CFLAlias.html +3 -3
  76. package/SVF-doxygen/html/classSVF_1_1CHGBuilder.html +11 -11
  77. package/SVF-doxygen/html/classSVF_1_1CallCFGEdge.html +1 -1
  78. package/SVF-doxygen/html/classSVF_1_1CallPE.html +1 -1
  79. package/SVF-doxygen/html/classSVF_1_1CmpStmt.html +1 -1
  80. package/SVF-doxygen/html/classSVF_1_1CmpVFGNode.html +1 -1
  81. package/SVF-doxygen/html/classSVF_1_1ContextDDA.html +2 -2
  82. package/SVF-doxygen/html/classSVF_1_1CopyStmt.html +1 -1
  83. package/SVF-doxygen/html/classSVF_1_1CxtStmt.html +1 -1
  84. package/SVF-doxygen/html/classSVF_1_1CxtThread.html +1 -1
  85. package/SVF-doxygen/html/classSVF_1_1CxtThreadStmt.html +1 -1
  86. package/SVF-doxygen/html/classSVF_1_1DCHGraph.html +12 -12
  87. package/SVF-doxygen/html/classSVF_1_1DDAStat.html +1 -1
  88. package/SVF-doxygen/html/classSVF_1_1DDAVFSolver.html +1 -1
  89. package/SVF-doxygen/html/classSVF_1_1DoubleFreeChecker.html +1 -1
  90. package/SVF-doxygen/html/classSVF_1_1FIObjVar.html +1 -1
  91. package/SVF-doxygen/html/classSVF_1_1FlowDDA.html +2 -2
  92. package/SVF-doxygen/html/classSVF_1_1FlowSensitive.html +1 -1
  93. package/SVF-doxygen/html/classSVF_1_1FlowSensitiveStat.html +1 -1
  94. package/SVF-doxygen/html/classSVF_1_1ForkJoinAnalysis.html +1 -1
  95. package/SVF-doxygen/html/classSVF_1_1FunptrDDAClient.html +1 -1
  96. package/SVF-doxygen/html/classSVF_1_1GepObjVar.html +2 -2
  97. package/SVF-doxygen/html/classSVF_1_1GepStmt.html +3 -3
  98. package/SVF-doxygen/html/classSVF_1_1GepValVar.html +1 -1
  99. package/SVF-doxygen/html/classSVF_1_1ICFG.html +1 -1
  100. package/SVF-doxygen/html/classSVF_1_1ICFGBuilder.html +1 -1
  101. package/SVF-doxygen/html/classSVF_1_1IRGraph.html +2 -2
  102. package/SVF-doxygen/html/classSVF_1_1InterMSSAPHISVFGNode.html +1 -1
  103. package/SVF-doxygen/html/classSVF_1_1InterPHIVFGNode.html +1 -1
  104. package/SVF-doxygen/html/classSVF_1_1IntraCFGEdge.html +1 -1
  105. package/SVF-doxygen/html/classSVF_1_1IntraICFGNode.html +1 -1
  106. package/SVF-doxygen/html/classSVF_1_1IntraPHIVFGNode.html +1 -1
  107. package/SVF-doxygen/html/classSVF_1_1LLVMModuleSet.html +141 -140
  108. package/SVF-doxygen/html/classSVF_1_1LeakChecker.html +1 -1
  109. package/SVF-doxygen/html/classSVF_1_1LoadStmt.html +1 -1
  110. package/SVF-doxygen/html/classSVF_1_1LockResultValidator.html +1 -1
  111. package/SVF-doxygen/html/classSVF_1_1MHP.html +1 -1
  112. package/SVF-doxygen/html/classSVF_1_1MRGenerator.html +3 -3
  113. package/SVF-doxygen/html/classSVF_1_1MTAAnnotator.html +1 -1
  114. package/SVF-doxygen/html/classSVF_1_1MTAResultValidator.html +1 -1
  115. package/SVF-doxygen/html/classSVF_1_1MemObj.html +121 -121
  116. package/SVF-doxygen/html/classSVF_1_1MemSSA.html +1 -1
  117. package/SVF-doxygen/html/classSVF_1_1ObjTypeInfo.html +29 -29
  118. package/SVF-doxygen/html/classSVF_1_1ObjVar.html +2 -2
  119. package/SVF-doxygen/html/classSVF_1_1PHIVFGNode.html +1 -1
  120. package/SVF-doxygen/html/classSVF_1_1PhiStmt.html +1 -1
  121. package/SVF-doxygen/html/classSVF_1_1PointerAnalysis.html +342 -341
  122. package/SVF-doxygen/html/classSVF_1_1RetCFGEdge.html +1 -1
  123. package/SVF-doxygen/html/classSVF_1_1RetPE.html +1 -1
  124. package/SVF-doxygen/html/classSVF_1_1SVFArrayType.html +4 -4
  125. package/SVF-doxygen/html/classSVF_1_1SVFFunctionType.html +4 -4
  126. package/SVF-doxygen/html/classSVF_1_1SVFIR.html +1 -1
  127. package/SVF-doxygen/html/classSVF_1_1SVFIR2ConsExeState.html +6 -6
  128. package/SVF-doxygen/html/classSVF_1_1SVFIR2ItvExeState.html +11 -10
  129. package/SVF-doxygen/html/classSVF_1_1SVFIRBuilder.html +868 -864
  130. package/SVF-doxygen/html/classSVF_1_1SVFIntegerType.html +7 -7
  131. package/SVF-doxygen/html/classSVF_1_1SVFOtherType.html +4 -4
  132. package/SVF-doxygen/html/classSVF_1_1SVFPointerType.html +3 -2
  133. package/SVF-doxygen/html/classSVF_1_1SVFStat.html +12 -12
  134. package/SVF-doxygen/html/classSVF_1_1SVFStructType.html +4 -4
  135. package/SVF-doxygen/html/classSVF_1_1SVFValue.html +23 -23
  136. package/SVF-doxygen/html/classSVF_1_1SaberSVFGBuilder.html +1 -1
  137. package/SVF-doxygen/html/classSVF_1_1SelectStmt.html +1 -1
  138. package/SVF-doxygen/html/classSVF_1_1Steensgaard.html +1 -1
  139. package/SVF-doxygen/html/classSVF_1_1StoreStmt.html +1 -1
  140. package/SVF-doxygen/html/classSVF_1_1SymbolTableBuilder.html +634 -631
  141. package/SVF-doxygen/html/classSVF_1_1SymbolTableInfo.html +125 -124
  142. package/SVF-doxygen/html/classSVF_1_1TCT.html +1 -1
  143. package/SVF-doxygen/html/classSVF_1_1TDForkPE.html +1 -1
  144. package/SVF-doxygen/html/classSVF_1_1TDJoinPE.html +1 -1
  145. package/SVF-doxygen/html/classSVF_1_1ThreadCallGraph.html +1 -1
  146. package/SVF-doxygen/html/classSVF_1_1TypeAnalysis.html +2 -2
  147. package/SVF-doxygen/html/classSVF_1_1UnaryOPStmt.html +1 -1
  148. package/SVF-doxygen/html/classSVF_1_1UnaryOPVFGNode.html +1 -1
  149. package/SVF-doxygen/html/classSVF_1_1ValVar.html +1 -1
  150. package/SVF-doxygen/html/classSVF_1_1VersionedFlowSensitiveStat.html +1 -1
  151. package/SVF-doxygen/html/functions_func_g.html +10 -10
  152. package/SVF-doxygen/html/functions_func_p.html +1 -1
  153. package/SVF-doxygen/html/functions_g.html +6 -6
  154. package/SVF-doxygen/html/functions_r.html +2 -2
  155. package/SVF-doxygen/html/functions_s.html +5 -5
  156. package/SVF-doxygen/html/functions_t.html +7 -7
  157. package/SVF-doxygen/html/functions_v.html +3 -1
  158. package/SVF-doxygen/html/functions_w.html +8 -8
  159. package/SVF-doxygen/html/namespaceSVF.html +43 -25
  160. package/SVF-doxygen/html/namespaceSVF_1_1LLVMUtil.html +1233 -1138
  161. package/SVF-doxygen/html/namespacemembers_func_g.html +6 -3
  162. package/SVF-doxygen/html/namespacemembers_g.html +10 -4
  163. package/SVF-doxygen/html/namespacemembers_type_g.html +3 -0
  164. package/SVF-doxygen/html/search/all_10.js +324 -324
  165. package/SVF-doxygen/html/search/all_11.js +223 -223
  166. package/SVF-doxygen/html/search/all_12.js +553 -553
  167. package/SVF-doxygen/html/search/all_13.js +192 -192
  168. package/SVF-doxygen/html/search/all_14.js +67 -67
  169. package/SVF-doxygen/html/search/all_15.js +167 -167
  170. package/SVF-doxygen/html/search/all_16.js +63 -63
  171. package/SVF-doxygen/html/search/all_17.js +1 -1
  172. package/SVF-doxygen/html/search/all_18.js +1 -1
  173. package/SVF-doxygen/html/search/all_19.js +11 -11
  174. package/SVF-doxygen/html/search/all_1a.js +172 -172
  175. package/SVF-doxygen/html/search/all_7.js +895 -893
  176. package/SVF-doxygen/html/search/all_8.js +198 -198
  177. package/SVF-doxygen/html/search/all_9.js +607 -607
  178. package/SVF-doxygen/html/search/all_a.js +46 -46
  179. package/SVF-doxygen/html/search/all_b.js +26 -26
  180. package/SVF-doxygen/html/search/all_c.js +115 -115
  181. package/SVF-doxygen/html/search/all_d.js +198 -198
  182. package/SVF-doxygen/html/search/all_e.js +207 -207
  183. package/SVF-doxygen/html/search/all_f.js +116 -116
  184. package/SVF-doxygen/html/search/classes_0.js +26 -26
  185. package/SVF-doxygen/html/search/classes_1.js +9 -9
  186. package/SVF-doxygen/html/search/classes_10.js +73 -73
  187. package/SVF-doxygen/html/search/classes_11.js +15 -15
  188. package/SVF-doxygen/html/search/classes_12.js +2 -2
  189. package/SVF-doxygen/html/search/classes_13.js +10 -10
  190. package/SVF-doxygen/html/search/classes_14.js +14 -14
  191. package/SVF-doxygen/html/search/classes_15.js +1 -1
  192. package/SVF-doxygen/html/search/classes_2.js +80 -80
  193. package/SVF-doxygen/html/search/classes_3.js +37 -37
  194. package/SVF-doxygen/html/search/classes_4.js +9 -9
  195. package/SVF-doxygen/html/search/classes_5.js +28 -28
  196. package/SVF-doxygen/html/search/classes_6.js +104 -104
  197. package/SVF-doxygen/html/search/classes_7.js +34 -34
  198. package/SVF-doxygen/html/search/classes_8.js +56 -56
  199. package/SVF-doxygen/html/search/classes_9.js +1 -1
  200. package/SVF-doxygen/html/search/classes_a.js +12 -12
  201. package/SVF-doxygen/html/search/classes_b.js +29 -29
  202. package/SVF-doxygen/html/search/classes_c.js +6 -6
  203. package/SVF-doxygen/html/search/classes_d.js +18 -18
  204. package/SVF-doxygen/html/search/classes_e.js +36 -36
  205. package/SVF-doxygen/html/search/classes_f.js +25 -25
  206. package/SVF-doxygen/html/search/defines_0.js +3 -3
  207. package/SVF-doxygen/html/search/defines_1.js +2 -2
  208. package/SVF-doxygen/html/search/defines_2.js +30 -30
  209. package/SVF-doxygen/html/search/defines_3.js +21 -21
  210. package/SVF-doxygen/html/search/defines_4.js +2 -2
  211. package/SVF-doxygen/html/search/defines_5.js +4 -4
  212. package/SVF-doxygen/html/search/defines_6.js +2 -2
  213. package/SVF-doxygen/html/search/defines_7.js +5 -5
  214. package/SVF-doxygen/html/search/defines_8.js +11 -11
  215. package/SVF-doxygen/html/search/defines_9.js +9 -9
  216. package/SVF-doxygen/html/search/defines_a.js +2 -2
  217. package/SVF-doxygen/html/search/defines_b.js +1 -1
  218. package/SVF-doxygen/html/search/defines_c.js +3 -3
  219. package/SVF-doxygen/html/search/defines_d.js +2 -2
  220. package/SVF-doxygen/html/search/defines_e.js +7 -7
  221. package/SVF-doxygen/html/search/defines_f.js +3 -3
  222. package/SVF-doxygen/html/search/enums_0.js +3 -3
  223. package/SVF-doxygen/html/search/enums_1.js +2 -2
  224. package/SVF-doxygen/html/search/enums_10.js +1 -1
  225. package/SVF-doxygen/html/search/enums_11.js +1 -1
  226. package/SVF-doxygen/html/search/enums_2.js +8 -8
  227. package/SVF-doxygen/html/search/enums_3.js +1 -1
  228. package/SVF-doxygen/html/search/enums_4.js +3 -3
  229. package/SVF-doxygen/html/search/enums_5.js +1 -1
  230. package/SVF-doxygen/html/search/enums_6.js +2 -2
  231. package/SVF-doxygen/html/search/enums_7.js +2 -2
  232. package/SVF-doxygen/html/search/enums_8.js +4 -4
  233. package/SVF-doxygen/html/search/enums_9.js +1 -1
  234. package/SVF-doxygen/html/search/enums_a.js +1 -1
  235. package/SVF-doxygen/html/search/enums_b.js +7 -7
  236. package/SVF-doxygen/html/search/enums_c.js +1 -1
  237. package/SVF-doxygen/html/search/enums_d.js +4 -4
  238. package/SVF-doxygen/html/search/enums_e.js +2 -2
  239. package/SVF-doxygen/html/search/enums_f.js +4 -4
  240. package/SVF-doxygen/html/search/enumvalues_0.js +14 -14
  241. package/SVF-doxygen/html/search/enumvalues_1.js +14 -14
  242. package/SVF-doxygen/html/search/enumvalues_10.js +35 -35
  243. package/SVF-doxygen/html/search/enumvalues_11.js +3 -3
  244. package/SVF-doxygen/html/search/enumvalues_12.js +10 -10
  245. package/SVF-doxygen/html/search/enumvalues_13.js +1 -1
  246. package/SVF-doxygen/html/search/enumvalues_14.js +1 -1
  247. package/SVF-doxygen/html/search/enumvalues_15.js +3 -3
  248. package/SVF-doxygen/html/search/enumvalues_2.js +36 -36
  249. package/SVF-doxygen/html/search/enumvalues_3.js +13 -13
  250. package/SVF-doxygen/html/search/enumvalues_4.js +2 -2
  251. package/SVF-doxygen/html/search/enumvalues_5.js +47 -47
  252. package/SVF-doxygen/html/search/enumvalues_6.js +6 -6
  253. package/SVF-doxygen/html/search/enumvalues_7.js +9 -9
  254. package/SVF-doxygen/html/search/enumvalues_8.js +23 -23
  255. package/SVF-doxygen/html/search/enumvalues_9.js +6 -6
  256. package/SVF-doxygen/html/search/enumvalues_a.js +15 -15
  257. package/SVF-doxygen/html/search/enumvalues_b.js +11 -11
  258. package/SVF-doxygen/html/search/enumvalues_c.js +5 -5
  259. package/SVF-doxygen/html/search/enumvalues_d.js +18 -18
  260. package/SVF-doxygen/html/search/enumvalues_e.js +9 -9
  261. package/SVF-doxygen/html/search/enumvalues_f.js +45 -45
  262. package/SVF-doxygen/html/search/files_0.js +13 -13
  263. package/SVF-doxygen/html/search/files_1.js +7 -7
  264. package/SVF-doxygen/html/search/files_10.js +8 -8
  265. package/SVF-doxygen/html/search/files_11.js +8 -8
  266. package/SVF-doxygen/html/search/files_12.js +2 -2
  267. package/SVF-doxygen/html/search/files_2.js +55 -55
  268. package/SVF-doxygen/html/search/files_3.js +14 -14
  269. package/SVF-doxygen/html/search/files_4.js +5 -5
  270. package/SVF-doxygen/html/search/files_5.js +13 -13
  271. package/SVF-doxygen/html/search/files_6.js +9 -9
  272. package/SVF-doxygen/html/search/files_7.js +14 -14
  273. package/SVF-doxygen/html/search/files_8.js +13 -13
  274. package/SVF-doxygen/html/search/files_9.js +18 -18
  275. package/SVF-doxygen/html/search/files_a.js +3 -3
  276. package/SVF-doxygen/html/search/files_b.js +2 -2
  277. package/SVF-doxygen/html/search/files_c.js +20 -20
  278. package/SVF-doxygen/html/search/files_d.js +4 -4
  279. package/SVF-doxygen/html/search/files_e.js +62 -62
  280. package/SVF-doxygen/html/search/files_f.js +8 -8
  281. package/SVF-doxygen/html/search/functions_0.js +13 -13
  282. package/SVF-doxygen/html/search/functions_1.js +360 -360
  283. package/SVF-doxygen/html/search/functions_10.js +140 -140
  284. package/SVF-doxygen/html/search/functions_11.js +139 -139
  285. package/SVF-doxygen/html/search/functions_12.js +288 -288
  286. package/SVF-doxygen/html/search/functions_13.js +59 -59
  287. package/SVF-doxygen/html/search/functions_14.js +39 -39
  288. package/SVF-doxygen/html/search/functions_15.js +71 -71
  289. package/SVF-doxygen/html/search/functions_16.js +32 -32
  290. package/SVF-doxygen/html/search/functions_17.js +3 -3
  291. package/SVF-doxygen/html/search/functions_18.js +172 -172
  292. package/SVF-doxygen/html/search/functions_2.js +89 -89
  293. package/SVF-doxygen/html/search/functions_3.js +258 -258
  294. package/SVF-doxygen/html/search/functions_4.js +78 -78
  295. package/SVF-doxygen/html/search/functions_5.js +53 -53
  296. package/SVF-doxygen/html/search/functions_6.js +60 -60
  297. package/SVF-doxygen/html/search/functions_7.js +857 -856
  298. package/SVF-doxygen/html/search/functions_8.js +149 -149
  299. package/SVF-doxygen/html/search/functions_9.js +423 -423
  300. package/SVF-doxygen/html/search/functions_a.js +30 -30
  301. package/SVF-doxygen/html/search/functions_b.js +2 -2
  302. package/SVF-doxygen/html/search/functions_c.js +25 -25
  303. package/SVF-doxygen/html/search/functions_d.js +79 -79
  304. package/SVF-doxygen/html/search/functions_e.js +35 -35
  305. package/SVF-doxygen/html/search/functions_f.js +56 -56
  306. package/SVF-doxygen/html/search/namespaces_0.js +1 -1
  307. package/SVF-doxygen/html/search/namespaces_1.js +7 -7
  308. package/SVF-doxygen/html/search/related_0.js +2 -2
  309. package/SVF-doxygen/html/search/related_1.js +2 -2
  310. package/SVF-doxygen/html/search/related_2.js +2 -2
  311. package/SVF-doxygen/html/search/related_3.js +2 -2
  312. package/SVF-doxygen/html/search/related_4.js +2 -2
  313. package/SVF-doxygen/html/search/related_5.js +1 -1
  314. package/SVF-doxygen/html/search/related_6.js +2 -2
  315. package/SVF-doxygen/html/search/related_7.js +4 -4
  316. package/SVF-doxygen/html/search/related_8.js +2 -2
  317. package/SVF-doxygen/html/search/related_9.js +4 -4
  318. package/SVF-doxygen/html/search/related_a.js +19 -19
  319. package/SVF-doxygen/html/search/related_b.js +4 -4
  320. package/SVF-doxygen/html/search/related_c.js +2 -2
  321. package/SVF-doxygen/html/search/related_d.js +12 -12
  322. package/SVF-doxygen/html/search/related_e.js +2 -2
  323. package/SVF-doxygen/html/search/related_f.js +2 -2
  324. package/SVF-doxygen/html/search/typedefs_0.js +19 -19
  325. package/SVF-doxygen/html/search/typedefs_1.js +26 -26
  326. package/SVF-doxygen/html/search/typedefs_10.js +61 -61
  327. package/SVF-doxygen/html/search/typedefs_11.js +13 -13
  328. package/SVF-doxygen/html/search/typedefs_12.js +11 -11
  329. package/SVF-doxygen/html/search/typedefs_13.js +33 -33
  330. package/SVF-doxygen/html/search/typedefs_14.js +8 -8
  331. package/SVF-doxygen/html/search/typedefs_2.js +129 -129
  332. package/SVF-doxygen/html/search/typedefs_3.js +39 -39
  333. package/SVF-doxygen/html/search/typedefs_4.js +17 -17
  334. package/SVF-doxygen/html/search/typedefs_5.js +41 -41
  335. package/SVF-doxygen/html/search/typedefs_6.js +56 -55
  336. package/SVF-doxygen/html/search/typedefs_7.js +44 -44
  337. package/SVF-doxygen/html/search/typedefs_8.js +1 -1
  338. package/SVF-doxygen/html/search/typedefs_9.js +6 -6
  339. package/SVF-doxygen/html/search/typedefs_a.js +29 -29
  340. package/SVF-doxygen/html/search/typedefs_b.js +29 -29
  341. package/SVF-doxygen/html/search/typedefs_c.js +41 -41
  342. package/SVF-doxygen/html/search/typedefs_d.js +14 -14
  343. package/SVF-doxygen/html/search/typedefs_e.js +52 -52
  344. package/SVF-doxygen/html/search/typedefs_f.js +14 -14
  345. package/SVF-doxygen/html/search/variables_0.js +151 -151
  346. package/SVF-doxygen/html/search/variables_1.js +75 -75
  347. package/SVF-doxygen/html/search/variables_10.js +97 -97
  348. package/SVF-doxygen/html/search/variables_11.js +44 -44
  349. package/SVF-doxygen/html/search/variables_12.js +92 -92
  350. package/SVF-doxygen/html/search/variables_13.js +76 -76
  351. package/SVF-doxygen/html/search/variables_14.js +14 -14
  352. package/SVF-doxygen/html/search/variables_15.js +48 -48
  353. package/SVF-doxygen/html/search/variables_16.js +9 -9
  354. package/SVF-doxygen/html/search/variables_17.js +1 -1
  355. package/SVF-doxygen/html/search/variables_18.js +2 -2
  356. package/SVF-doxygen/html/search/variables_2.js +38 -38
  357. package/SVF-doxygen/html/search/variables_3.js +142 -142
  358. package/SVF-doxygen/html/search/variables_4.js +55 -55
  359. package/SVF-doxygen/html/search/variables_5.js +37 -37
  360. package/SVF-doxygen/html/search/variables_6.js +66 -66
  361. package/SVF-doxygen/html/search/variables_7.js +34 -34
  362. package/SVF-doxygen/html/search/variables_8.js +7 -7
  363. package/SVF-doxygen/html/search/variables_9.js +78 -78
  364. package/SVF-doxygen/html/search/variables_a.js +4 -4
  365. package/SVF-doxygen/html/search/variables_b.js +10 -10
  366. package/SVF-doxygen/html/search/variables_c.js +45 -45
  367. package/SVF-doxygen/html/search/variables_d.js +56 -56
  368. package/SVF-doxygen/html/search/variables_e.js +123 -123
  369. package/SVF-doxygen/html/search/variables_f.js +30 -30
  370. package/SVF-doxygen/html/structSVF_1_1DOTGraphTraits_3_01ConstraintGraph_01_5_01_4.html +1 -1
  371. package/SVF-doxygen/html/svf-ex_8cpp.html +1 -1
  372. package/SVF-doxygen/html/svf-ex_8cpp_source.html +1 -1
  373. package/package.json +1 -1
  374. package/svf/include/MemoryModel/AccessPath.h +2 -2
  375. package/svf/lib/AbstractExecution/SVFIR2ConsExeState.cpp +2 -2
  376. package/svf/lib/AbstractExecution/SVFIR2ItvExeState.cpp +4 -4
  377. package/svf/lib/MemoryModel/AccessPath.cpp +6 -5
  378. package/svf/lib/MemoryModel/PointerAnalysis.cpp +1 -0
  379. package/svf/lib/SVFIR/SVFType.cpp +1 -0
  380. package/svf/lib/SVFIR/SymbolTableInfo.cpp +1 -0
  381. package/svf-llvm/include/SVF-LLVM/BasicTypes.h +1 -0
  382. package/svf-llvm/include/SVF-LLVM/LLVMUtil.h +6 -0
  383. package/svf-llvm/lib/LLVMModule.cpp +1 -0
  384. package/svf-llvm/lib/LLVMUtil.cpp +70 -0
  385. package/svf-llvm/lib/SVFIRBuilder.cpp +3 -1
  386. package/svf-llvm/lib/SymbolTableBuilder.cpp +4 -1
@@ -177,6 +177,7 @@ typedef llvm::VAStartInst VAStartInst;
177
177
  typedef llvm::BinaryOperator BinaryOperator;
178
178
  typedef llvm::UnaryOperator UnaryOperator;
179
179
  typedef llvm::UndefValue UndefValue;
180
+ typedef llvm::GEPOperator GEPOperator;
180
181
 
181
182
  // Related to Switch Case
182
183
  typedef std::pair<const BasicBlock*, const ConstantInt*> SuccBBAndCondValPair;
@@ -126,6 +126,10 @@ static inline Type* getPtrElementType(const PointerType* pty)
126
126
  #endif
127
127
  }
128
128
 
129
+ /// Infer type based on llvm value, this is for the migration to opaque pointer
130
+ /// please refer to: https://llvm.org/docs/OpaquePointers.html#migration-instructions
131
+ Type *getPointeeType(const Value *value);
132
+
129
133
  /// Get the reference type of heap/static object from an allocation site.
130
134
  //@{
131
135
  inline const PointerType *getRefTypeOfHeapAllocOrStatic(const CallBase* cs)
@@ -139,6 +143,7 @@ inline const PointerType *getRefTypeOfHeapAllocOrStatic(const CallBase* cs)
139
143
  int argPos = SVFUtil::getHeapAllocHoldingArgPosition(svfcs);
140
144
  const Value* arg = cs->getArgOperand(argPos);
141
145
  if (const PointerType *argType = SVFUtil::dyn_cast<PointerType>(arg->getType()))
146
+ // TODO: getPtrElementType need type inference
142
147
  refType = SVFUtil::dyn_cast<PointerType>(getPtrElementType(argType));
143
148
  }
144
149
  // Case 2: heap object held by return value.
@@ -389,6 +394,7 @@ inline u32_t SVFType2ByteSize(const SVFType* type)
389
394
  const llvm::Type* llvm_rhs = LLVMModuleSet::getLLVMModuleSet()->getLLVMType(type);
390
395
  const llvm::PointerType* llvm_rhs_ptr = SVFUtil::dyn_cast<PointerType>(llvm_rhs);
391
396
  assert(llvm_rhs_ptr && "not a pointer type?");
397
+ // TODO: getPtrElementType need type inference
392
398
  const Type *ptrElementType = getPtrElementType(llvm_rhs_ptr);
393
399
  u32_t llvm_rhs_size = LLVMUtil::getTypeSizeInBytes(ptrElementType);
394
400
  u32_t llvm_elem_size = -1;
@@ -1384,6 +1384,7 @@ SVFType* LLVMModuleSet::addSVFTypeInfo(const Type* T)
1384
1384
  //cast svftype to SVFPointerType
1385
1385
  SVFPointerType* svfPtrType = SVFUtil::dyn_cast<SVFPointerType>(svftype);
1386
1386
  assert(svfPtrType && "this is not SVFPointerType");
1387
+ // TODO: getPtrElementType to be removed
1387
1388
  svfPtrType->setPtrElementType(getSVFType(LLVMUtil::getPtrElementType(pt)));
1388
1389
  }
1389
1390
 
@@ -241,6 +241,71 @@ const Value* LLVMUtil::stripConstantCasts(const Value* val)
241
241
  return val;
242
242
  }
243
243
 
244
+ /// Infer type based on llvm value, this is for the migration to opaque pointer
245
+ /// please refer to: https://llvm.org/docs/OpaquePointers.html#migration-instructions
246
+ Type *LLVMUtil::getPointeeType(const Value *value)
247
+ {
248
+ assert(value && "value cannot be nullptr!");
249
+ if (const LoadInst *loadInst = SVFUtil::dyn_cast<LoadInst>(value))
250
+ {
251
+ // get the pointee type of rhs based on lhs
252
+ // e.g., for `%lhs = load i64, ptr %rhs`, we return i64
253
+ return loadInst->getType();
254
+ }
255
+ else if (const StoreInst *storeInst = SVFUtil::dyn_cast<StoreInst>(value))
256
+ {
257
+ // get the pointee type of op1 based on op0
258
+ // e.g., for `store i64 %op0, ptr %op1`, we return i64
259
+ return storeInst->getValueOperand()->getType();
260
+ }
261
+ else if (const GetElementPtrInst *gepInst = SVFUtil::dyn_cast<GetElementPtrInst>(value))
262
+ {
263
+ // get the source element type of a gep instruction
264
+ // e.g., for `gep %struct.foo, ptr %base, i64 0`, we return struct.foo
265
+ return gepInst->getSourceElementType();
266
+ }
267
+ else if (const GEPOperator* gepOperator = SVFUtil::dyn_cast<GEPOperator>(value))
268
+ {
269
+ // get the source element type of a gep instruction
270
+ // e.g., for `gep %struct.foo, ptr %base, i64 0`, we return struct.foo
271
+ return gepOperator->getSourceElementType();
272
+ }
273
+ else if (const CallInst *callInst = SVFUtil::dyn_cast<CallInst>(value))
274
+ {
275
+ // get the pointee type of return value
276
+ // e.g., for `%call = call ptr @_Znwm(i64 noundef 8)`, we return i64
277
+ return callInst->getFunctionType();
278
+ }
279
+ else if (const CallBase *callBase = SVFUtil::dyn_cast<CallBase>(value))
280
+ {
281
+ // get the pointee type of return value
282
+ // e.g., for `%call = call ptr @_Znwm(i64 noundef 8)`, we return i64
283
+ return callBase->getFunctionType();
284
+ }
285
+ else if (const AllocaInst *allocaInst = SVFUtil::dyn_cast<AllocaInst>(value))
286
+ {
287
+ // get the type of the allocated memory
288
+ // e.g., for `%retval = alloca i64, align 4`, we return i64
289
+ return allocaInst->getAllocatedType();
290
+ }
291
+ else if (const GlobalVariable *globalVar = SVFUtil::dyn_cast<GlobalVariable>(value))
292
+ {
293
+ // get the pointee type of the global pointer
294
+ return globalVar->getValueType();
295
+ }
296
+ else if (const Function* func = SVFUtil::dyn_cast<Function>(value))
297
+ {
298
+ // get the pointee type of return value
299
+ // e.g., for `%call = call ptr @_Znwm(i64 noundef 8)`, we return i64
300
+ return func->getFunctionType();
301
+ }
302
+ else
303
+ {
304
+ assert(false && (LLVMUtil::dumpValue(value) + "Unknown llvm Type, cannot get Ptr Element Type").c_str());
305
+ abort();
306
+ }
307
+ }
308
+
244
309
  void LLVMUtil::viewCFG(const Function* fun)
245
310
  {
246
311
  if (fun != nullptr)
@@ -351,6 +416,7 @@ const Value* LLVMUtil::getFirstUseViaCastInst(const Value* val)
351
416
  const PointerType * type = SVFUtil::dyn_cast<PointerType>(val->getType());
352
417
  assert(type && "this value should be a pointer type!");
353
418
  /// If type is void* (i8*) and val is immediately used at a bitcast instruction
419
+ // TODO: getPtrElementType to be removed
354
420
  if (IntegerType *IT = SVFUtil::dyn_cast<IntegerType>(getPtrElementType(type)))
355
421
  {
356
422
  if (IT->getBitWidth() == 8)
@@ -397,6 +463,7 @@ const Type* LLVMUtil::getTypeOfHeapAlloc(const Instruction *inst)
397
463
  }
398
464
 
399
465
  assert(type && "not a pointer type?");
466
+ // TODO: getPtrElementType need type inference
400
467
  return getPtrElementType(type);
401
468
  }
402
469
 
@@ -922,6 +989,7 @@ bool LLVMUtil::isLoadVtblInst(const LoadInst* loadInst)
922
989
  const Type* elemTy = valTy;
923
990
  for (u32_t i = 0; i < 3; ++i)
924
991
  {
992
+ // TODO: getPtrElementType to be removed
925
993
  if (const PointerType* ptrTy = SVFUtil::dyn_cast<PointerType>(elemTy))
926
994
  elemTy = LLVMUtil::getPtrElementType(ptrTy);
927
995
  else
@@ -933,6 +1001,7 @@ bool LLVMUtil::isLoadVtblInst(const LoadInst* loadInst)
933
1001
  std::string className = "";
934
1002
  if(const PointerType* ptrTy = SVFUtil::dyn_cast<PointerType>(paramty))
935
1003
  {
1004
+ // TODO: getPtrElementType need type inference
936
1005
  if(const StructType* st = SVFUtil::dyn_cast<StructType>(getPtrElementType(ptrTy)))
937
1006
  className = LLVMUtil::getClassNameFromType(st);
938
1007
  }
@@ -1198,6 +1267,7 @@ std::string LLVMUtil::getClassNameOfThisPtr(const CallBase* inst)
1198
1267
  {
1199
1268
  const Value* thisPtr = LLVMUtil::getVCallThisPtr(inst);
1200
1269
  if(const PointerType* ptrTy = SVFUtil::dyn_cast<PointerType>(thisPtr->getType()))
1270
+ // TODO: getPtrElementType need type inference
1201
1271
  if(const StructType* st = SVFUtil::dyn_cast<StructType>(getPtrElementType(ptrTy)))
1202
1272
  thisPtrClassName = getClassNameFromType(st);
1203
1273
  }
@@ -318,8 +318,10 @@ bool SVFIRBuilder::computeGepOffset(const User *V, AccessPath& ap)
318
318
  // If it's a non-constant offset access
319
319
  // If its point-to target is struct or array, it's likely an array accessing (%result = gep %struct.A* %a, i32 %non-const-index)
320
320
  // If its point-to target is single value (pointer arithmetic), then it's a variant gep (%result = gep i8* %p, i32 %non-const-index)
321
- if(!op && gepTy->isPointerTy() && getPtrElementType(SVFUtil::dyn_cast<PointerType>(gepTy))->isSingleValueType())
321
+ if(!op && gepTy->isPointerTy() && LLVMUtil::getPointeeType(V)->isSingleValueType())
322
+ {
322
323
  isConst = false;
324
+ }
323
325
 
324
326
  // The actual index
325
327
  //s32_t idx = op->getSExtValue();
@@ -237,6 +237,7 @@ void SymbolTableBuilder::collectSVFTypeInfo(const Value* val)
237
237
  (void)getOrAddSVFTypeInfo(val->getType());
238
238
  if (const PointerType * ptrType = SVFUtil::dyn_cast<PointerType>(val->getType()))
239
239
  {
240
+ // TODO: getPtrElementType to be removed
240
241
  const Type* objtype = LLVMUtil::getPtrElementType(ptrType);
241
242
  (void)getOrAddSVFTypeInfo(objtype);
242
243
  }
@@ -575,6 +576,7 @@ void SymbolTableBuilder::handleGlobalInitializerCE(const Constant* C)
575
576
  */
576
577
  ObjTypeInfo* SymbolTableBuilder::createObjTypeInfo(const Value* val)
577
578
  {
579
+ /// TODO: getPtrElementType to be removed
578
580
  const PointerType* refTy = nullptr;
579
581
 
580
582
  const Instruction* I = SVFUtil::dyn_cast<Instruction>(val);
@@ -627,7 +629,8 @@ void SymbolTableBuilder::analyzeObjType(ObjTypeInfo* typeinfo, const Value* val)
627
629
 
628
630
  const PointerType* refty = SVFUtil::dyn_cast<PointerType>(val->getType());
629
631
  assert(refty && "this value should be a pointer type!");
630
- Type* elemTy = getPtrElementType(refty);
632
+ // TODO: getPtrElementType need type inference
633
+ Type *elemTy = getPtrElementType(refty);
631
634
  bool isPtrObj = false;
632
635
  // Find the inter nested array element
633
636
  while (const ArrayType* AT = SVFUtil::dyn_cast<ArrayType>(elemTy))