svf-tools 1.0.466 → 1.0.467

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 (344) hide show
  1. package/SVF-doxygen/html/html/AndersenSCD_8cpp_source.html +1 -1
  2. package/SVF-doxygen/html/html/AndersenStat_8cpp_source.html +2 -2
  3. package/SVF-doxygen/html/html/Andersen_8cpp_source.html +5 -5
  4. package/SVF-doxygen/html/html/Andersen_8h_source.html +2 -2
  5. package/SVF-doxygen/html/html/Annotator_8h_source.html +3 -3
  6. package/SVF-doxygen/html/html/BDDExpr_8cpp_source.html +1 -1
  7. package/SVF-doxygen/html/html/BDDExpr_8h_source.html +1 -1
  8. package/SVF-doxygen/html/html/BreakConstantExpr_8cpp.html +6 -6
  9. package/SVF-doxygen/html/html/BreakConstantExpr_8cpp_source.html +6 -6
  10. package/SVF-doxygen/html/html/BreakConstantExpr_8h_source.html +3 -3
  11. package/SVF-doxygen/html/html/CFLAlias_8h_source.html +1 -1
  12. package/SVF-doxygen/html/html/CFLGraph_8cpp_source.html +1 -1
  13. package/SVF-doxygen/html/html/CHGBuilder_8cpp_source.html +16 -16
  14. package/SVF-doxygen/html/html/CHGBuilder_8h_source.html +5 -5
  15. package/SVF-doxygen/html/html/CHG_8cpp.html +2 -2
  16. package/SVF-doxygen/html/html/CHG_8cpp_source.html +10 -10
  17. package/SVF-doxygen/html/html/CHG_8h_source.html +3 -3
  18. package/SVF-doxygen/html/html/CPPUtil_8cpp_source.html +21 -20
  19. package/SVF-doxygen/html/html/CPPUtil_8h_source.html +3 -3
  20. package/SVF-doxygen/html/html/CallGraphBuilder_8cpp_source.html +3 -3
  21. package/SVF-doxygen/html/html/ConditionalPT_8h_source.html +1 -1
  22. package/SVF-doxygen/html/html/ConsG_8cpp_source.html +1 -1
  23. package/SVF-doxygen/html/html/ConsG_8h_source.html +2 -2
  24. package/SVF-doxygen/html/html/ContextDDA_8cpp_source.html +4 -4
  25. package/SVF-doxygen/html/html/ContextDDA_8h_source.html +1 -1
  26. package/SVF-doxygen/html/html/CxtStmt_8h_source.html +4 -4
  27. package/SVF-doxygen/html/html/DCHG_8cpp_source.html +11 -11
  28. package/SVF-doxygen/html/html/DCHG_8h_source.html +5 -5
  29. package/SVF-doxygen/html/html/DDAClient_8cpp_source.html +1 -1
  30. package/SVF-doxygen/html/html/DDAPass_8cpp_source.html +3 -3
  31. package/SVF-doxygen/html/html/DDAPass_8h_source.html +2 -2
  32. package/SVF-doxygen/html/html/DDAStat_8cpp_source.html +2 -2
  33. package/SVF-doxygen/html/html/DDAVFSolver_8h_source.html +2 -2
  34. package/SVF-doxygen/html/html/DPItem_8h_source.html +1 -1
  35. package/SVF-doxygen/html/html/DataFlowUtil_8cpp_source.html +7 -7
  36. package/SVF-doxygen/html/html/DataFlowUtil_8h_source.html +8 -8
  37. package/SVF-doxygen/html/html/ExeState_8cpp_source.html +3 -3
  38. package/SVF-doxygen/html/html/ExtAPI_8h_source.html +3 -3
  39. package/SVF-doxygen/html/html/FSMPTA_8cpp_source.html +1 -1
  40. package/SVF-doxygen/html/html/FileChecker_8h_source.html +1 -1
  41. package/SVF-doxygen/html/html/FlowDDA_8cpp_source.html +1 -1
  42. package/SVF-doxygen/html/html/FlowDDA_8h_source.html +1 -1
  43. package/SVF-doxygen/html/html/FlowSensitiveStat_8cpp_source.html +2 -2
  44. package/SVF-doxygen/html/html/FlowSensitiveTBHC_8cpp.html +2 -2
  45. package/SVF-doxygen/html/html/FlowSensitiveTBHC_8cpp_source.html +3 -3
  46. package/SVF-doxygen/html/html/FlowSensitiveTBHC_8h_source.html +1 -1
  47. package/SVF-doxygen/html/html/FlowSensitive_8cpp_source.html +1 -1
  48. package/SVF-doxygen/html/html/GEPTypeBridgeIterator_8h_source.html +3 -3
  49. package/SVF-doxygen/html/html/Graph2Json_8cpp_source.html +1 -1
  50. package/SVF-doxygen/html/html/ICFGBuilder_8cpp_source.html +6 -6
  51. package/SVF-doxygen/html/html/ICFGBuilder_8h_source.html +2 -2
  52. package/SVF-doxygen/html/html/ICFGEdge_8h_source.html +2 -2
  53. package/SVF-doxygen/html/html/ICFGNode_8h_source.html +3 -3
  54. package/SVF-doxygen/html/html/ICFG_8cpp_source.html +6 -6
  55. package/SVF-doxygen/html/html/ICFG_8h_source.html +3 -3
  56. package/SVF-doxygen/html/html/IRAnnotator_8h_source.html +9 -9
  57. package/SVF-doxygen/html/html/IRGraph_8cpp_source.html +2 -2
  58. package/SVF-doxygen/html/html/IRGraph_8h_source.html +3 -3
  59. package/SVF-doxygen/html/html/LLVMModule_8cpp_source.html +8 -8
  60. package/SVF-doxygen/html/html/LLVMModule_8h_source.html +6 -6
  61. package/SVF-doxygen/html/html/LLVMUtil_8cpp_source.html +24 -23
  62. package/SVF-doxygen/html/html/LLVMUtil_8h.html +2 -0
  63. package/SVF-doxygen/html/html/LLVMUtil_8h_source.html +61 -60
  64. package/SVF-doxygen/html/html/LeakChecker_8cpp_source.html +1 -1
  65. package/SVF-doxygen/html/html/LeakChecker_8h_source.html +1 -1
  66. package/SVF-doxygen/html/html/LocationSet_8cpp_source.html +7 -6
  67. package/SVF-doxygen/html/html/LocationSet_8h_source.html +2 -2
  68. package/SVF-doxygen/html/html/LockAnalysis_8cpp_source.html +8 -8
  69. package/SVF-doxygen/html/html/LockAnalysis_8h_source.html +4 -4
  70. package/SVF-doxygen/html/html/LockResultValidator_8cpp_source.html +9 -9
  71. package/SVF-doxygen/html/html/LockResultValidator_8h_source.html +2 -2
  72. package/SVF-doxygen/html/html/MHP_8cpp.html +1 -1
  73. package/SVF-doxygen/html/html/MHP_8cpp_source.html +9 -9
  74. package/SVF-doxygen/html/html/MHP_8h_source.html +5 -5
  75. package/SVF-doxygen/html/html/MSSAMuChi_8h_source.html +2 -2
  76. package/SVF-doxygen/html/html/MTAAnnotator_8cpp_source.html +5 -5
  77. package/SVF-doxygen/html/html/MTAAnnotator_8h_source.html +5 -5
  78. package/SVF-doxygen/html/html/MTAResultValidator_8cpp_source.html +13 -13
  79. package/SVF-doxygen/html/html/MTAResultValidator_8h_source.html +6 -6
  80. package/SVF-doxygen/html/html/MTAStat_8cpp_source.html +5 -5
  81. package/SVF-doxygen/html/html/MTA_8cpp_source.html +4 -4
  82. package/SVF-doxygen/html/html/MTA_8h_source.html +2 -2
  83. package/SVF-doxygen/html/html/MemPartition_8cpp_source.html +1 -1
  84. package/SVF-doxygen/html/html/MemPartition_8h_source.html +1 -1
  85. package/SVF-doxygen/html/html/MemRegion_8cpp_source.html +8 -8
  86. package/SVF-doxygen/html/html/MemRegion_8h_source.html +3 -3
  87. package/SVF-doxygen/html/html/MemSSA_8cpp_source.html +9 -9
  88. package/SVF-doxygen/html/html/MemSSA_8h_source.html +4 -4
  89. package/SVF-doxygen/html/html/OfflineConsG_8cpp_source.html +1 -1
  90. package/SVF-doxygen/html/html/PCG_8cpp_source.html +7 -7
  91. package/SVF-doxygen/html/html/PCG_8h_source.html +3 -3
  92. package/SVF-doxygen/html/html/PTACallGraph_8cpp_source.html +4 -4
  93. package/SVF-doxygen/html/html/PTACallGraph_8h_source.html +1 -1
  94. package/SVF-doxygen/html/html/PTAStat_8cpp_source.html +6 -6
  95. package/SVF-doxygen/html/html/PathCondAllocator_8cpp_source.html +11 -11
  96. package/SVF-doxygen/html/html/PathCondAllocator_8h_source.html +7 -7
  97. package/SVF-doxygen/html/html/PointerAnalysisImpl_8cpp_source.html +1 -1
  98. package/SVF-doxygen/html/html/PointerAnalysisImpl_8h_source.html +1 -1
  99. package/SVF-doxygen/html/html/PointerAnalysis_8cpp_source.html +15 -14
  100. package/SVF-doxygen/html/html/PointerAnalysis_8h_source.html +2 -2
  101. package/SVF-doxygen/html/html/ProgSlice_8cpp_source.html +3 -3
  102. package/SVF-doxygen/html/html/ProgSlice_8h_source.html +1 -1
  103. package/SVF-doxygen/html/html/SVFGBuilder_8cpp_source.html +3 -3
  104. package/SVF-doxygen/html/html/SVFGBuilder_8h_source.html +2 -2
  105. package/SVF-doxygen/html/html/SVFGNode_8h_source.html +1 -1
  106. package/SVF-doxygen/html/html/SVFGOPT_8h_source.html +1 -1
  107. package/SVF-doxygen/html/html/SVFGStat_8cpp_source.html +1 -1
  108. package/SVF-doxygen/html/html/SVFG_8cpp_source.html +4 -4
  109. package/SVF-doxygen/html/html/SVFG_8h_source.html +1 -1
  110. package/SVF-doxygen/html/html/SVFIRBuilder_8cpp_source.html +53 -52
  111. package/SVF-doxygen/html/html/SVFIRBuilder_8h_source.html +13 -13
  112. package/SVF-doxygen/html/html/SVFIR_8cpp_source.html +3 -3
  113. package/SVF-doxygen/html/html/SVFIR_8h_source.html +3 -3
  114. package/SVF-doxygen/html/html/SVFModule_8h_source.html +4 -4
  115. package/SVF-doxygen/html/html/SVFStatements_8cpp_source.html +1 -1
  116. package/SVF-doxygen/html/html/SVFStatements_8h_source.html +3 -3
  117. package/SVF-doxygen/html/html/SVFUtil_8cpp_source.html +12 -12
  118. package/SVF-doxygen/html/html/SVFUtil_8h_source.html +9 -9
  119. package/SVF-doxygen/html/html/SVFVariables_8cpp_source.html +3 -3
  120. package/SVF-doxygen/html/html/SVFVariables_8h_source.html +6 -6
  121. package/SVF-doxygen/html/html/SaberAnnotator_8cpp_source.html +3 -3
  122. package/SVF-doxygen/html/html/SaberCheckerAPI_8h_source.html +2 -2
  123. package/SVF-doxygen/html/html/SaberSVFGBuilder_8cpp_source.html +2 -2
  124. package/SVF-doxygen/html/html/SrcSnkDDA_8h_source.html +1 -1
  125. package/SVF-doxygen/html/html/SymbolTableBuilder_8cpp_source.html +33 -32
  126. package/SVF-doxygen/html/html/SymbolTableBuilder_8h_source.html +5 -5
  127. package/SVF-doxygen/html/html/SymbolTableInfo_8cpp_source.html +12 -11
  128. package/SVF-doxygen/html/html/SymbolTableInfo_8h_source.html +6 -6
  129. package/SVF-doxygen/html/html/TCT_8cpp_source.html +13 -13
  130. package/SVF-doxygen/html/html/TCT_8h_source.html +10 -10
  131. package/SVF-doxygen/html/html/ThreadAPI_8cpp_source.html +4 -4
  132. package/SVF-doxygen/html/html/ThreadAPI_8h_source.html +6 -6
  133. package/SVF-doxygen/html/html/ThreadCallGraph_8cpp_source.html +3 -3
  134. package/SVF-doxygen/html/html/ThreadCallGraph_8h_source.html +2 -2
  135. package/SVF-doxygen/html/html/TypeAnalysis_8cpp_source.html +3 -3
  136. package/SVF-doxygen/html/html/TypeBasedHeapCloning_8cpp_source.html +9 -9
  137. package/SVF-doxygen/html/html/TypeBasedHeapCloning_8h_source.html +2 -2
  138. package/SVF-doxygen/html/html/Util_2BasicTypes_8h_source.html +77 -77
  139. package/SVF-doxygen/html/html/VFGNode_8h_source.html +3 -3
  140. package/SVF-doxygen/html/html/VFG_8cpp_source.html +4 -4
  141. package/SVF-doxygen/html/html/VFG_8h_source.html +1 -1
  142. package/SVF-doxygen/html/html/VersionedFlowSensitiveStat_8cpp_source.html +1 -1
  143. package/SVF-doxygen/html/html/VersionedFlowSensitive_8cpp_source.html +1 -1
  144. package/SVF-doxygen/html/html/WPAPass_8cpp_source.html +4 -4
  145. package/SVF-doxygen/html/html/WPAPass_8h_source.html +3 -3
  146. package/SVF-doxygen/html/html/classSVF_1_1ActualINSVFGNode.html +1 -1
  147. package/SVF-doxygen/html/html/classSVF_1_1ActualOUTSVFGNode.html +1 -1
  148. package/SVF-doxygen/html/html/classSVF_1_1ActualParmVFGNode.html +1 -1
  149. package/SVF-doxygen/html/html/classSVF_1_1ActualRetVFGNode.html +1 -1
  150. package/SVF-doxygen/html/html/classSVF_1_1AddrStmt.html +1 -1
  151. package/SVF-doxygen/html/html/classSVF_1_1AddrVFGNode.html +1 -1
  152. package/SVF-doxygen/html/html/classSVF_1_1Andersen.html +5 -5
  153. package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD.html +1 -1
  154. package/SVF-doxygen/html/html/classSVF_1_1AndersenStat.html +3 -3
  155. package/SVF-doxygen/html/html/classSVF_1_1Annotator.html +1 -1
  156. package/SVF-doxygen/html/html/classSVF_1_1ArgumentVFGNode.html +1 -1
  157. package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl.html +1 -1
  158. package/SVF-doxygen/html/html/classSVF_1_1BinaryOPStmt.html +1 -1
  159. package/SVF-doxygen/html/html/classSVF_1_1BinaryOPVFGNode.html +1 -1
  160. package/SVF-doxygen/html/html/classSVF_1_1BranchStmt.html +1 -1
  161. package/SVF-doxygen/html/html/classSVF_1_1BranchVFGNode.html +1 -1
  162. package/SVF-doxygen/html/html/classSVF_1_1BreakConstantGEPs.html +5 -5
  163. package/SVF-doxygen/html/html/classSVF_1_1CHGBuilder.html +30 -30
  164. package/SVF-doxygen/html/html/classSVF_1_1CHGraph.html +7 -7
  165. package/SVF-doxygen/html/html/classSVF_1_1CallCFGEdge.html +1 -1
  166. package/SVF-doxygen/html/html/classSVF_1_1CallDirSVFGEdge.html +1 -1
  167. package/SVF-doxygen/html/html/classSVF_1_1CallGraphBuilder.html +3 -3
  168. package/SVF-doxygen/html/html/classSVF_1_1CallICFGNode.html +1 -1
  169. package/SVF-doxygen/html/html/classSVF_1_1CallIndSVFGEdge.html +1 -1
  170. package/SVF-doxygen/html/html/classSVF_1_1CallPE.html +1 -1
  171. package/SVF-doxygen/html/html/classSVF_1_1CallSite.html +41 -41
  172. package/SVF-doxygen/html/html/classSVF_1_1CloneDummyObjVar.html +1 -1
  173. package/SVF-doxygen/html/html/classSVF_1_1CloneFIObjVar.html +1 -1
  174. package/SVF-doxygen/html/html/classSVF_1_1CloneGepObjVar.html +1 -1
  175. package/SVF-doxygen/html/html/classSVF_1_1CmpStmt.html +1 -1
  176. package/SVF-doxygen/html/html/classSVF_1_1CmpVFGNode.html +1 -1
  177. package/SVF-doxygen/html/html/classSVF_1_1CondStdSet.html +1 -1
  178. package/SVF-doxygen/html/html/classSVF_1_1CondVar.html +1 -1
  179. package/SVF-doxygen/html/html/classSVF_1_1ContextCond.html +1 -1
  180. package/SVF-doxygen/html/html/classSVF_1_1ContextDDA.html +6 -6
  181. package/SVF-doxygen/html/html/classSVF_1_1CopyStmt.html +1 -1
  182. package/SVF-doxygen/html/html/classSVF_1_1CopyVFGNode.html +1 -1
  183. package/SVF-doxygen/html/html/classSVF_1_1CxtProc.html +1 -1
  184. package/SVF-doxygen/html/html/classSVF_1_1CxtStmt.html +1 -1
  185. package/SVF-doxygen/html/html/classSVF_1_1CxtThread.html +1 -1
  186. package/SVF-doxygen/html/html/classSVF_1_1DCHGraph.html +12 -12
  187. package/SVF-doxygen/html/html/classSVF_1_1DDAPass.html +2 -2
  188. package/SVF-doxygen/html/html/classSVF_1_1DDAStat.html +2 -2
  189. package/SVF-doxygen/html/html/classSVF_1_1DDAVFSolver.html +1 -1
  190. package/SVF-doxygen/html/html/classSVF_1_1DirectSVFGEdge.html +1 -1
  191. package/SVF-doxygen/html/html/classSVF_1_1DistinctMRG.html +1 -1
  192. package/SVF-doxygen/html/html/classSVF_1_1DummyObjVar.html +1 -1
  193. package/SVF-doxygen/html/html/classSVF_1_1DummyValVar.html +1 -1
  194. package/SVF-doxygen/html/html/classSVF_1_1ExeState.html +5 -5
  195. package/SVF-doxygen/html/html/classSVF_1_1FIObjVar.html +1 -1
  196. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive.html +2 -2
  197. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveStat.html +2 -2
  198. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveTBHC.html +2 -2
  199. package/SVF-doxygen/html/html/classSVF_1_1ForkJoinAnalysis.html +21 -21
  200. package/SVF-doxygen/html/html/classSVF_1_1FormalINSVFGNode.html +1 -1
  201. package/SVF-doxygen/html/html/classSVF_1_1FormalOUTSVFGNode.html +1 -1
  202. package/SVF-doxygen/html/html/classSVF_1_1FormalParmVFGNode.html +1 -1
  203. package/SVF-doxygen/html/html/classSVF_1_1FormalRetVFGNode.html +1 -1
  204. package/SVF-doxygen/html/html/classSVF_1_1FunEntryICFGNode.html +2 -2
  205. package/SVF-doxygen/html/html/classSVF_1_1FunExitICFGNode.html +4 -4
  206. package/SVF-doxygen/html/html/classSVF_1_1FunptrDDAClient.html +1 -1
  207. package/SVF-doxygen/html/html/classSVF_1_1GepObjVar.html +1 -1
  208. package/SVF-doxygen/html/html/classSVF_1_1GepStmt.html +1 -1
  209. package/SVF-doxygen/html/html/classSVF_1_1GepVFGNode.html +1 -1
  210. package/SVF-doxygen/html/html/classSVF_1_1GepValVar.html +1 -1
  211. package/SVF-doxygen/html/html/classSVF_1_1GlobalICFGNode.html +1 -1
  212. package/SVF-doxygen/html/html/classSVF_1_1ICFG.html +2 -2
  213. package/SVF-doxygen/html/html/classSVF_1_1ICFGBuilder.html +11 -11
  214. package/SVF-doxygen/html/html/classSVF_1_1ICFGEdge.html +1 -1
  215. package/SVF-doxygen/html/html/classSVF_1_1ICFGNode.html +1 -1
  216. package/SVF-doxygen/html/html/classSVF_1_1ICFGPrinter.html +1 -1
  217. package/SVF-doxygen/html/html/classSVF_1_1IndirectSVFGEdge.html +1 -1
  218. package/SVF-doxygen/html/html/classSVF_1_1InterDisjointMRG.html +1 -1
  219. package/SVF-doxygen/html/html/classSVF_1_1InterMSSAPHISVFGNode.html +1 -1
  220. package/SVF-doxygen/html/html/classSVF_1_1InterPHIVFGNode.html +1 -1
  221. package/SVF-doxygen/html/html/classSVF_1_1IntraCFGEdge.html +1 -1
  222. package/SVF-doxygen/html/html/classSVF_1_1IntraDirSVFGEdge.html +1 -1
  223. package/SVF-doxygen/html/html/classSVF_1_1IntraDisjointMRG.html +1 -1
  224. package/SVF-doxygen/html/html/classSVF_1_1IntraICFGNode.html +1 -1
  225. package/SVF-doxygen/html/html/classSVF_1_1IntraIndSVFGEdge.html +1 -1
  226. package/SVF-doxygen/html/html/classSVF_1_1IntraMSSAPHISVFGNode.html +1 -1
  227. package/SVF-doxygen/html/html/classSVF_1_1IntraPHIVFGNode.html +1 -1
  228. package/SVF-doxygen/html/html/classSVF_1_1IteratedDominanceFrontier.html +3 -3
  229. package/SVF-doxygen/html/html/classSVF_1_1LLVMModuleSet.html +16 -16
  230. package/SVF-doxygen/html/html/classSVF_1_1LeakChecker.html +3 -3
  231. package/SVF-doxygen/html/html/classSVF_1_1LoadStmt.html +1 -1
  232. package/SVF-doxygen/html/html/classSVF_1_1LoadVFGNode.html +1 -1
  233. package/SVF-doxygen/html/html/classSVF_1_1LocationSet.html +10 -8
  234. package/SVF-doxygen/html/html/classSVF_1_1LockAnalysis.html +31 -31
  235. package/SVF-doxygen/html/html/classSVF_1_1LockResultValidator.html +11 -11
  236. package/SVF-doxygen/html/html/classSVF_1_1MHP.html +25 -25
  237. package/SVF-doxygen/html/html/classSVF_1_1MRGenerator.html +12 -12
  238. package/SVF-doxygen/html/html/classSVF_1_1MRSVFGNode.html +1 -1
  239. package/SVF-doxygen/html/html/classSVF_1_1MSSAPHISVFGNode.html +1 -1
  240. package/SVF-doxygen/html/html/classSVF_1_1MTA.html +3 -3
  241. package/SVF-doxygen/html/html/classSVF_1_1MTAAnnotator.html +8 -8
  242. package/SVF-doxygen/html/html/classSVF_1_1MTAResultValidator.html +25 -25
  243. package/SVF-doxygen/html/html/classSVF_1_1MTASVFGBuilder.html +9 -9
  244. package/SVF-doxygen/html/html/classSVF_1_1MTAStat.html +9 -9
  245. package/SVF-doxygen/html/html/classSVF_1_1MemObj.html +1 -1
  246. package/SVF-doxygen/html/html/classSVF_1_1MemSSA.html +17 -17
  247. package/SVF-doxygen/html/html/classSVF_1_1MemSSADF.html +1 -1
  248. package/SVF-doxygen/html/html/classSVF_1_1MemSSAStat.html +1 -1
  249. package/SVF-doxygen/html/html/classSVF_1_1MergeFunctionRets.html +2 -2
  250. package/SVF-doxygen/html/html/classSVF_1_1NullPtrVFGNode.html +1 -1
  251. package/SVF-doxygen/html/html/classSVF_1_1ObjTypeInfo.html +2 -2
  252. package/SVF-doxygen/html/html/classSVF_1_1ObjVar.html +1 -1
  253. package/SVF-doxygen/html/html/classSVF_1_1PCG.html +19 -19
  254. package/SVF-doxygen/html/html/classSVF_1_1PHIVFGNode.html +1 -1
  255. package/SVF-doxygen/html/html/classSVF_1_1PTACFInfoBuilder.html +7 -7
  256. package/SVF-doxygen/html/html/classSVF_1_1PTACallGraph.html +1 -1
  257. package/SVF-doxygen/html/html/classSVF_1_1PTACallGraphEdge.html +2 -2
  258. package/SVF-doxygen/html/html/classSVF_1_1PTACallGraphNode.html +2 -2
  259. package/SVF-doxygen/html/html/classSVF_1_1PTAStat.html +14 -13
  260. package/SVF-doxygen/html/html/classSVF_1_1PathCondAllocator.html +24 -24
  261. package/SVF-doxygen/html/html/classSVF_1_1PhiStmt.html +1 -1
  262. package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.html +21 -20
  263. package/SVF-doxygen/html/html/classSVF_1_1ProgSlice.html +4 -4
  264. package/SVF-doxygen/html/html/classSVF_1_1RaceResultValidator.html +8 -8
  265. package/SVF-doxygen/html/html/classSVF_1_1RetCFGEdge.html +1 -1
  266. package/SVF-doxygen/html/html/classSVF_1_1RetDirSVFGEdge.html +1 -1
  267. package/SVF-doxygen/html/html/classSVF_1_1RetICFGNode.html +1 -1
  268. package/SVF-doxygen/html/html/classSVF_1_1RetIndSVFGEdge.html +1 -1
  269. package/SVF-doxygen/html/html/classSVF_1_1RetPE.html +1 -1
  270. package/SVF-doxygen/html/html/classSVF_1_1RetPN.html +1 -1
  271. package/SVF-doxygen/html/html/classSVF_1_1SVFBasicBlock.html +3 -3
  272. package/SVF-doxygen/html/html/classSVF_1_1SVFFunction.html +27 -27
  273. package/SVF-doxygen/html/html/classSVF_1_1SVFG.html +3 -3
  274. package/SVF-doxygen/html/html/classSVF_1_1SVFGBuilder.html +3 -3
  275. package/SVF-doxygen/html/html/classSVF_1_1SVFGStat.html +2 -2
  276. package/SVF-doxygen/html/html/classSVF_1_1SVFGlobal.html +3 -3
  277. package/SVF-doxygen/html/html/classSVF_1_1SVFIR.html +1 -1
  278. package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder.html +109 -106
  279. package/SVF-doxygen/html/html/classSVF_1_1SVFStmt.html +2 -2
  280. package/SVF-doxygen/html/html/classSVF_1_1SVFVar.html +5 -5
  281. package/SVF-doxygen/html/html/classSVF_1_1SaberAnnotator.html +7 -7
  282. package/SVF-doxygen/html/html/classSVF_1_1SaberSVFGBuilder.html +2 -2
  283. package/SVF-doxygen/html/html/classSVF_1_1SelectStmt.html +1 -1
  284. package/SVF-doxygen/html/html/classSVF_1_1StmtVFGNode.html +1 -1
  285. package/SVF-doxygen/html/html/classSVF_1_1StoreStmt.html +1 -1
  286. package/SVF-doxygen/html/html/classSVF_1_1StoreVFGNode.html +1 -1
  287. package/SVF-doxygen/html/html/classSVF_1_1SymbolTableBuilder.html +42 -40
  288. package/SVF-doxygen/html/html/classSVF_1_1SymbolTableInfo.html +15 -14
  289. package/SVF-doxygen/html/html/classSVF_1_1TCT.html +30 -30
  290. package/SVF-doxygen/html/html/classSVF_1_1TDForkPE.html +1 -1
  291. package/SVF-doxygen/html/html/classSVF_1_1TDJoinPE.html +1 -1
  292. package/SVF-doxygen/html/html/classSVF_1_1ThreadAPI.html +4 -4
  293. package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraph.html +9 -9
  294. package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraphBuilder.html +2 -2
  295. package/SVF-doxygen/html/html/classSVF_1_1ThreadForkEdge.html +1 -1
  296. package/SVF-doxygen/html/html/classSVF_1_1ThreadJoinEdge.html +1 -1
  297. package/SVF-doxygen/html/html/classSVF_1_1ThreadMHPIndSVFGEdge.html +1 -1
  298. package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis.html +3 -3
  299. package/SVF-doxygen/html/html/classSVF_1_1TypeBasedHeapCloning.html +10 -10
  300. package/SVF-doxygen/html/html/classSVF_1_1UnaryOPStmt.html +1 -1
  301. package/SVF-doxygen/html/html/classSVF_1_1UnaryOPVFGNode.html +1 -1
  302. package/SVF-doxygen/html/html/classSVF_1_1VFG.html +4 -4
  303. package/SVF-doxygen/html/html/classSVF_1_1VFGEdge.html +1 -1
  304. package/SVF-doxygen/html/html/classSVF_1_1VFGNode.html +1 -1
  305. package/SVF-doxygen/html/html/classSVF_1_1ValVar.html +1 -1
  306. package/SVF-doxygen/html/html/classSVF_1_1VarArgPN.html +1 -1
  307. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive.html +1 -1
  308. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitiveStat.html +1 -1
  309. package/SVF-doxygen/html/html/classSVF_1_1WPAPass.html +1 -1
  310. package/SVF-doxygen/html/html/classllvm_1_1generic__bridge__gep__type__iterator.html +3 -3
  311. package/SVF-doxygen/html/html/globals_s.html +10 -4
  312. package/SVF-doxygen/html/html/namespaceSVF.html +40 -40
  313. package/SVF-doxygen/html/html/namespaceSVF_1_1SVFUtil.html +233 -199
  314. package/SVF-doxygen/html/html/namespaceSVF_1_1cppUtil.html +38 -36
  315. package/SVF-doxygen/html/html/namespacemembers_func.html +4 -1
  316. package/SVF-doxygen/html/html/namespacemembers_g.html +8 -5
  317. package/SVF-doxygen/html/html/search/all_13.js +3 -3
  318. package/SVF-doxygen/html/html/search/all_7.js +1 -0
  319. package/SVF-doxygen/html/html/search/functions_6.js +1 -0
  320. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01CFLGraph_01_5_01_4.html +3 -3
  321. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01ConstraintGraph_01_5_01_4.html +1 -1
  322. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01ICFG_01_5_01_4.html +2 -2
  323. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01IRGraph_01_5_01_4.html +2 -2
  324. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01OfflineConsG_01_5_01_4.html +1 -1
  325. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01PTACallGraph_01_5_01_4.html +2 -2
  326. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01SVFG_01_5_01_4.html +4 -4
  327. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01VFG_01_5_01_4.html +4 -4
  328. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1CallSite_01_4.html +3 -3
  329. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1CxtProc_01_4.html +1 -1
  330. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1CxtStmt_01_4.html +1 -1
  331. package/SVF-doxygen/html/html/svf-ex_8cpp.html +1 -1
  332. package/SVF-doxygen/html/html/svf-ex_8cpp_source.html +3 -3
  333. package/include/SVF-FE/LLVMUtil.h +11 -1
  334. package/include/Util/BasicTypes.h +4 -0
  335. package/lib/MemoryModel/LocationSet.cpp +2 -2
  336. package/lib/MemoryModel/PointerAnalysis.cpp +1 -1
  337. package/lib/MemoryModel/SymbolTableInfo.cpp +1 -1
  338. package/lib/SVF-FE/BreakConstantExpr.cpp +3 -1
  339. package/lib/SVF-FE/CPPUtil.cpp +2 -2
  340. package/lib/SVF-FE/LLVMUtil.cpp +2 -2
  341. package/lib/SVF-FE/SVFIRBuilder.cpp +3 -3
  342. package/lib/SVF-FE/SymbolTableBuilder.cpp +2 -2
  343. package/lib/Util/PTAStat.cpp +1 -0
  344. package/package.json +1 -1
@@ -95,10 +95,10 @@ $(function() {
95
95
  <div class="ttc" id="namespaceSVF_html_af739db846e47ba6b2fd15eaad31ab7fb"><div class="ttname"><a href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">SVF::Set</a></div><div class="ttdeci">std::unordered_set&lt; Key, Hash, KeyEqual, Allocator &gt; Set</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00104">SVFBasicTypes.h:104</a></div></div>
96
96
  <div class="ttc" id="svf-ex_8cpp_html_a3c04138a5bfe5d72780bb7e82a18e627"><div class="ttname"><a href="svf-ex_8cpp.html#a3c04138a5bfe5d72780bb7e82a18e627">main</a></div><div class="ttdeci">int main(int argc, char **argv)</div><div class="ttdef"><b>Definition:</b> <a href="svf-ex_8cpp_source.html#l00142">svf-ex.cpp:142</a></div></div>
97
97
  <div class="ttc" id="classSVF_1_1FIFOWorkList_html_ad4c6a48b60c870d63049fe7272cc7eb8"><div class="ttname"><a href="classSVF_1_1FIFOWorkList.html#ad4c6a48b60c870d63049fe7272cc7eb8">SVF::FIFOWorkList::push</a></div><div class="ttdeci">bool push(Data data)</div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#l00159">WorkList.h:159</a></div></div>
98
- <div class="ttc" id="namespaceSVF_html_a7875172ff434b2210eea7cecfbbd959e"><div class="ttname"><a href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">SVF::Instruction</a></div><div class="ttdeci">llvm::Instruction Instruction</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00069">BasicTypes.h:69</a></div></div>
98
+ <div class="ttc" id="namespaceSVF_html_a7875172ff434b2210eea7cecfbbd959e"><div class="ttname"><a href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">SVF::Instruction</a></div><div class="ttdeci">llvm::Instruction Instruction</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00073">BasicTypes.h:73</a></div></div>
99
99
  <div class="ttc" id="classSVF_1_1LLVMModuleSet_html_a2f8e91c075d90be66412a079fe73e936"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a2f8e91c075d90be66412a079fe73e936">SVF::LLVMModuleSet::releaseLLVMModuleSet</a></div><div class="ttdeci">static void releaseLLVMModuleSet()</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00077">LLVMModule.h:77</a></div></div>
100
100
  <div class="ttc" id="classSVF_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>
101
- <div class="ttc" id="namespaceSVF_html_a726981481ac082dcda3e4921416b65a0"><div class="ttname"><a href="namespaceSVF.html#a726981481ac082dcda3e4921416b65a0">SVF::raw_string_ostream</a></div><div class="ttdeci">llvm::raw_string_ostream raw_string_ostream</div><div class="ttdoc">LLVM outputs. </div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00079">BasicTypes.h:79</a></div></div>
101
+ <div class="ttc" id="namespaceSVF_html_a726981481ac082dcda3e4921416b65a0"><div class="ttname"><a href="namespaceSVF.html#a726981481ac082dcda3e4921416b65a0">SVF::raw_string_ostream</a></div><div class="ttdeci">llvm::raw_string_ostream raw_string_ostream</div><div class="ttdoc">LLVM outputs. </div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00083">BasicTypes.h:83</a></div></div>
102
102
  <div class="ttc" id="classSVF_1_1PointerAnalysis_html_a240219c2dc4f5cc5f85445e18c79b83b"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a240219c2dc4f5cc5f85445e18c79b83b">SVF::PointerAnalysis::getPAG</a></div><div class="ttdeci">SVFIR * getPAG() const</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00206">PointerAnalysis.h:206</a></div></div>
103
103
  <div class="ttc" id="classSVF_1_1SVFVar_html_a1ace69053c2c4436fd78d5624bd0086a"><div class="ttname"><a href="classSVF_1_1SVFVar.html#a1ace69053c2c4436fd78d5624bd0086a">SVF::SVFVar::hasValue</a></div><div class="ttdeci">bool hasValue() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00111">SVFVariables.h:111</a></div></div>
104
104
  <div class="ttc" id="classSVF_1_1ICFG_html_a5f2c0aaba07d6fdd63058da0fb60ca8b"><div class="ttname"><a href="classSVF_1_1ICFG.html#a5f2c0aaba07d6fdd63058da0fb60ca8b">SVF::ICFG::getICFGNode</a></div><div class="ttdeci">ICFGNode * getICFGNode(NodeID id) const</div><div class="ttdoc">Get a ICFG node. </div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00084">ICFG.h:84</a></div></div>
@@ -125,7 +125,7 @@ $(function() {
125
125
  <div class="ttc" id="classSVF_1_1SVFIR_html_aa1943d53e75aef9b014953143c6894da"><div class="ttname"><a href="classSVF_1_1SVFIR.html#aa1943d53e75aef9b014953143c6894da">SVF::SVFIR::getICFG</a></div><div class="ttdeci">ICFG * getICFG()</div><div class="ttdoc">Return ICFG. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00132">SVFIR.h:132</a></div></div>
126
126
  <div class="ttc" id="svf-ex_8cpp_html_af45b449c07f1c975eea45d40d1cc37f6"><div class="ttname"><a href="svf-ex_8cpp.html#af45b449c07f1c975eea45d40d1cc37f6">traverseOnICFG</a></div><div class="ttdeci">void traverseOnICFG(ICFG *icfg, const Instruction *inst)</div><div class="ttdef"><b>Definition:</b> <a href="svf-ex_8cpp_source.html#l00077">svf-ex.cpp:77</a></div></div>
127
127
  <div class="ttc" id="classSVF_1_1FIFOWorkList_html_a8fa72918fce7e9c0b2dc34b683a797c6"><div class="ttname"><a href="classSVF_1_1FIFOWorkList.html#a8fa72918fce7e9c0b2dc34b683a797c6">SVF::FIFOWorkList::pop</a></div><div class="ttdeci">Data pop()</div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#l00174">WorkList.h:174</a></div></div>
128
- <div class="ttc" id="namespaceSVF_html_a90b263fd2f541eca78135078114cabda"><div class="ttname"><a href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">SVF::Value</a></div><div class="ttdeci">llvm::Value Value</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00068">BasicTypes.h:68</a></div></div>
128
+ <div class="ttc" id="namespaceSVF_html_a90b263fd2f541eca78135078114cabda"><div class="ttname"><a href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">SVF::Value</a></div><div class="ttdeci">llvm::Value Value</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00072">BasicTypes.h:72</a></div></div>
129
129
  <div class="ttc" id="classSVF_1_1PointsTo_html_a8f741cdffbf3c5fe0f602cdca677dee6"><div class="ttname"><a href="classSVF_1_1PointsTo.html#a8f741cdffbf3c5fe0f602cdca677dee6">SVF::PointsTo::end</a></div><div class="ttdeci">const_iterator end(void) const</div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8h_source.html#l00131">PointsTo.h:131</a></div></div>
130
130
  <div class="ttc" id="LLVMUtil_8h_html"><div class="ttname"><a href="LLVMUtil_8h.html">LLVMUtil.h</a></div></div>
131
131
  <div class="ttc" id="classSVF_1_1PointerAnalysis_html"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html">SVF::PointerAnalysis</a></div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00057">PointerAnalysis.h:57</a></div></div>
@@ -104,6 +104,16 @@ inline bool isHeapAllocExtFunViaArg(const SVFFunction* fun)
104
104
  return fun && ExtAPI::getExtAPI()->is_arg_alloc(fun);
105
105
  }
106
106
 
107
+ static inline Type *getPtrElementType(const PointerType* pty)
108
+ {
109
+ #if (LLVM_VERSION_MAJOR < 14)
110
+ return pty->getElementType();
111
+ #else
112
+ assert(!pty->isOpaque() && "Opaque Pointer is used, please recompile the source adding '-Xclang -no-opaque-pointer'");
113
+ return pty->getNonOpaquePointerElementType();
114
+ #endif
115
+ }
116
+
107
117
  /// interfaces to be used externally
108
118
  inline bool isHeapAllocExtCallViaRet(const CallSite cs)
109
119
  {
@@ -248,7 +258,7 @@ inline const PointerType *getRefTypeOfHeapAllocOrStatic(const CallSite cs)
248
258
  int argPos = getHeapAllocHoldingArgPosition(cs);
249
259
  const Value *arg = cs.getArgument(argPos);
250
260
  if (const PointerType *argType = SVFUtil::dyn_cast<PointerType>(arg->getType()))
251
- refType = SVFUtil::dyn_cast<PointerType>(argType->getElementType());
261
+ refType = SVFUtil::dyn_cast<PointerType>(getPtrElementType(argType));
252
262
  }
253
263
  // Case 2: heap/static object held by return value.
254
264
  else
@@ -51,6 +51,10 @@
51
51
  #include <llvm/ADT/GraphTraits.h> // for Graphtraits
52
52
  #include <llvm/Transforms/Utils/Local.h> // for FindDbgAddrUses
53
53
 
54
+ #if (LLVM_VERSION_MAJOR >= 14)
55
+ #include <llvm/BinaryFormat/Dwarf.h>
56
+ #endif
57
+
54
58
  #include "llvm/Analysis/LoopInfo.h"
55
59
  #include "llvm/IR/CFG.h"
56
60
  #include "llvm/BinaryFormat/Dwarf.h"
@@ -72,7 +72,7 @@ u32_t LocationSet::getElementNum(const Type* type) const
72
72
  {
73
73
  /// This is a pointer arithmic
74
74
  if(const PointerType* pty = SVFUtil::dyn_cast<PointerType>(type))
75
- return getElementNum(pty->getElementType());
75
+ return getElementNum(getPtrElementType(pty));
76
76
  else
77
77
  return 1;
78
78
  }
@@ -134,7 +134,7 @@ s32_t LocationSet::accumulateConstantOffset() const
134
134
  }
135
135
 
136
136
  if(const PointerType* pty = SVFUtil::dyn_cast<PointerType>(type))
137
- totalConstOffset += op->getSExtValue() * getElementNum(pty->getElementType());
137
+ totalConstOffset += op->getSExtValue() * getElementNum(getPtrElementType(pty));
138
138
  else
139
139
  {
140
140
  s32_t offset = op->getSExtValue();
@@ -277,7 +277,7 @@ void PointerAnalysis::dumpAllTypes()
277
277
  Type* type = node->getValue()->getType();
278
278
  SymbolTableInfo::SymbolInfo()->printFlattenFields(type);
279
279
  if (PointerType* ptType = SVFUtil::dyn_cast<PointerType>(type))
280
- SymbolTableInfo::SymbolInfo()->printFlattenFields(ptType->getElementType());
280
+ SymbolTableInfo::SymbolInfo()->printFlattenFields(getPtrElementType(ptType));
281
281
  }
282
282
  }
283
283
 
@@ -490,7 +490,7 @@ void SymbolTableInfo::printFlattenFields(const Type* type)
490
490
 
491
491
  else if (const PointerType* pt= SVFUtil::dyn_cast<PointerType> (type))
492
492
  {
493
- u32_t eSize = getNumOfFlattenElements(pt->getElementType());
493
+ u32_t eSize = getNumOfFlattenElements(getPtrElementType(pt));
494
494
  outs() << " {Type: ";
495
495
  outs() << type2String(pt);
496
496
  outs() << "}\n";
@@ -40,7 +40,6 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
40
40
  //
41
41
  //===----------------------------------------------------------------------===//
42
42
 
43
- #define DEBUG_TYPE "break-constgeps"
44
43
 
45
44
  #include "llvm/ADT/Statistic.h"
46
45
  #include "llvm/IR/Constants.h"
@@ -62,6 +61,9 @@ using namespace SVF;
62
61
  // Identifier variable for the pass
63
62
  char BreakConstantGEPs::ID = 0;
64
63
  char MergeFunctionRets::ID = 0;
64
+
65
+ #define DEBUG_TYPE "break-constgeps"
66
+
65
67
  // Statistics
66
68
  STATISTIC (GEPChanges, "Number of Converted GEP Constant Expressions");
67
69
  STATISTIC (TotalChanges, "Number of Converted Constant Expressions");
@@ -233,7 +233,7 @@ bool cppUtil::isLoadVtblInst(const LoadInst *loadInst)
233
233
  for (u32_t i = 0; i < 3; ++i)
234
234
  {
235
235
  if (const PointerType *ptrTy = SVFUtil::dyn_cast<PointerType>(elemTy))
236
- elemTy = ptrTy->getElementType();
236
+ elemTy = SVFUtil::getPtrElementType(ptrTy);
237
237
  else
238
238
  return false;
239
239
  }
@@ -419,7 +419,7 @@ string cppUtil::getClassNameFromType(const Type *ty)
419
419
  string className = "";
420
420
  if (const PointerType *ptrType = SVFUtil::dyn_cast<PointerType>(ty))
421
421
  {
422
- const Type *elemType = ptrType->getElementType();
422
+ const Type *elemType = SVFUtil::getPtrElementType(ptrType);
423
423
  if (SVFUtil::isa<StructType>(elemType) &&
424
424
  !((SVFUtil::cast<StructType>(elemType))->isLiteral()))
425
425
  {
@@ -275,7 +275,7 @@ const Value* SVFUtil::getUniqueUseViaCastInst(const Value* val)
275
275
  const PointerType * type = SVFUtil::dyn_cast<PointerType>(val->getType());
276
276
  assert(type && "this value should be a pointer type!");
277
277
  /// If type is void* (i8*) and val is only used at a bitcast instruction
278
- if (IntegerType *IT = SVFUtil::dyn_cast<IntegerType>(type->getPointerElementType()))
278
+ if (IntegerType *IT = SVFUtil::dyn_cast<IntegerType>(getPtrElementType(type)))
279
279
  {
280
280
  if (IT->getBitWidth() == 8 && val->getNumUses()==1)
281
281
  {
@@ -314,7 +314,7 @@ const Type* SVFUtil::getTypeOfHeapAlloc(const Instruction *inst)
314
314
  }
315
315
 
316
316
  assert(type && "not a pointer type?");
317
- return type->getElementType();
317
+ return getPtrElementType(type);
318
318
  }
319
319
 
320
320
  /*!
@@ -276,7 +276,7 @@ bool SVFIRBuilder::computeGepOffset(const User *V, LocationSet& ls)
276
276
  // If it's a non-constant offset access
277
277
  // If its point-to target is struct or array, it's likely an array accessing (%result = gep %struct.A* %a, i32 %non-const-index)
278
278
  // If its point-to target is single value (pointer arithmetic), then it's a variant gep (%result = gep i8* %p, i32 %non-const-index)
279
- if(!op && gepTy->isPointerTy() && gepTy->getPointerElementType()->isSingleValueType())
279
+ if(!op && gepTy->isPointerTy() && getPtrElementType(SVFUtil::dyn_cast<PointerType>(gepTy))->isSingleValueType())
280
280
  return false;
281
281
 
282
282
  // The actual index
@@ -1013,7 +1013,7 @@ const Type *SVFIRBuilder::getBaseTypeAndFlattenedFields(const Value *V, std::vec
1013
1013
  const Value* value = getBaseValueForExtArg(V);
1014
1014
  const Type *T = value->getType();
1015
1015
  while (const PointerType *ptype = SVFUtil::dyn_cast<PointerType>(T))
1016
- T = ptype->getElementType();
1016
+ T = getPtrElementType(ptype);
1017
1017
 
1018
1018
  u32_t numOfElems = SymbolTableInfo::SymbolInfo()->getNumOfFlattenElements(T);
1019
1019
  /// use user-specified size for this copy operation if the size is a constaint int
@@ -1327,7 +1327,7 @@ void SVFIRBuilder::handleExtCall(CallSite cs, const SVFFunction *callee)
1327
1327
  Value *arg = cs.getArgument(i);
1328
1328
  if(const PointerType* pty = SVFUtil::dyn_cast<PointerType>(arg->getType()))
1329
1329
  {
1330
- if(pty->getElementType()->isPointerTy())
1330
+ if(getPtrElementType(pty)->isPointerTy())
1331
1331
  {
1332
1332
  NodeID dummy = pag->addDummyValNode();
1333
1333
  addLoadEdge(pag->getValueNode(arg),dummy);
@@ -503,7 +503,7 @@ ObjTypeInfo* SymbolTableBuilder::createObjTypeInfo(const Value *val)
503
503
 
504
504
  if (refTy)
505
505
  {
506
- Type *objTy = refTy->getElementType();
506
+ Type *objTy = getPtrElementType(refTy);
507
507
  ObjTypeInfo* typeInfo = new ObjTypeInfo(objTy, Options::MaxFieldLimit);
508
508
  initTypeInfo(typeInfo,val);
509
509
  return typeInfo;
@@ -535,7 +535,7 @@ void SymbolTableBuilder::analyzeObjType(ObjTypeInfo* typeinfo, const Value* val)
535
535
 
536
536
  const PointerType * refty = SVFUtil::dyn_cast<PointerType>(val->getType());
537
537
  assert(refty && "this value should be a pointer type!");
538
- Type* elemTy = refty->getElementType();
538
+ Type* elemTy = getPtrElementType(refty);
539
539
  bool isPtrObj = false;
540
540
  // Find the inter nested array element
541
541
  while (const ArrayType *AT= SVFUtil::dyn_cast<ArrayType>(elemTy))
@@ -221,6 +221,7 @@ void PTAStat::performStat()
221
221
  generalNumMap[NumOfObjsHasConstStruct] = numOfHasConstStruct;
222
222
  generalNumMap[NumOfObjsHasConstArray] = numOfHasConstArray;
223
223
  generalNumMap[NumOfNonPtrObjs] = numOfScalar;
224
+ generalNumMap[NumOfConstantObjs] = numOfConstant;
224
225
 
225
226
  generalNumMap[NumOfIndirectCallSites] = pag->getIndirectCallsites().size();
226
227
  generalNumMap["TotalCallSite"] = pag->getCallSiteSet().size();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "svf-tools",
3
- "version": "1.0.466",
3
+ "version": "1.0.467",
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": {