svf-tools 1.0.348 → 1.0.352

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 (583) hide show
  1. package/SVF-doxygen/html/html/AndersenSFR_8cpp_source.html +6 -5
  2. package/SVF-doxygen/html/html/AndersenSFR_8h_source.html +2 -2
  3. package/SVF-doxygen/html/html/AndersenStat_8cpp_source.html +16 -16
  4. package/SVF-doxygen/html/html/Andersen_8cpp_source.html +14 -14
  5. package/SVF-doxygen/html/html/Andersen_8h_source.html +13 -13
  6. package/SVF-doxygen/html/html/CHG_8h_source.html +7 -7
  7. package/SVF-doxygen/html/html/CPPUtil_8cpp.html +3 -3
  8. package/SVF-doxygen/html/html/CPPUtil_8cpp_source.html +3 -3
  9. package/SVF-doxygen/html/html/CPPUtil_8h_source.html +1 -1
  10. package/SVF-doxygen/html/html/CSC_8cpp_source.html +4 -4
  11. package/SVF-doxygen/html/html/CSC_8h_source.html +3 -3
  12. package/SVF-doxygen/html/html/Conditions_8cpp_source.html +2 -2
  13. package/SVF-doxygen/html/html/ConsGEdge_8h_source.html +4 -4
  14. package/SVF-doxygen/html/html/ConsGNode_8h_source.html +7 -7
  15. package/SVF-doxygen/html/html/ConsG_8cpp_source.html +45 -46
  16. package/SVF-doxygen/html/html/ConsG_8h_source.html +22 -22
  17. package/SVF-doxygen/html/html/ContextDDA_8cpp_source.html +10 -8
  18. package/SVF-doxygen/html/html/ContextDDA_8h_source.html +5 -5
  19. package/SVF-doxygen/html/html/DCHG_8cpp_source.html +2 -2
  20. package/SVF-doxygen/html/html/DCHG_8h_source.html +4 -4
  21. package/SVF-doxygen/html/html/DDAClient_8cpp_source.html +4 -4
  22. package/SVF-doxygen/html/html/DDAClient_8h_source.html +1 -1
  23. package/SVF-doxygen/html/html/DDAPass_8cpp_source.html +1 -1
  24. package/SVF-doxygen/html/html/DDAStat_8cpp_source.html +2 -2
  25. package/SVF-doxygen/html/html/DDAStat_8h_source.html +1 -1
  26. package/SVF-doxygen/html/html/DDAVFSolver_8h_source.html +1 -1
  27. package/SVF-doxygen/html/html/DPItem_8h_source.html +1 -1
  28. package/SVF-doxygen/html/html/FlowDDA_8cpp_source.html +4 -2
  29. package/SVF-doxygen/html/html/FlowDDA_8h_source.html +1 -1
  30. package/SVF-doxygen/html/html/FlowSensitiveStat_8cpp_source.html +6 -6
  31. package/SVF-doxygen/html/html/FlowSensitiveTBHC_8cpp.html +2 -2
  32. package/SVF-doxygen/html/html/FlowSensitiveTBHC_8cpp_source.html +24 -22
  33. package/SVF-doxygen/html/html/FlowSensitiveTBHC_8h_source.html +17 -17
  34. package/SVF-doxygen/html/html/FlowSensitive_8cpp_source.html +15 -14
  35. package/SVF-doxygen/html/html/FlowSensitive_8h_source.html +25 -25
  36. package/SVF-doxygen/html/html/GenericGraph_8h_source.html +7 -8
  37. package/SVF-doxygen/html/html/Graph2Json_8cpp_source.html +3 -3
  38. package/SVF-doxygen/html/html/ICFGEdge_8h_source.html +2 -2
  39. package/SVF-doxygen/html/html/ICFG_8cpp_source.html +2 -2
  40. package/SVF-doxygen/html/html/IRAnnotator_8h_source.html +5 -5
  41. package/SVF-doxygen/html/html/IRGraph_8cpp_source.html +4 -4
  42. package/SVF-doxygen/html/html/IRGraph_8h_source.html +7 -8
  43. package/SVF-doxygen/html/html/LLVMUtil_8cpp_source.html +2 -2
  44. package/SVF-doxygen/html/html/LocationSet_8cpp_source.html +13 -6
  45. package/SVF-doxygen/html/html/LocationSet_8h_source.html +12 -14
  46. package/SVF-doxygen/html/html/MHP_8cpp.html +2 -2
  47. package/SVF-doxygen/html/html/MHP_8cpp_source.html +2 -2
  48. package/SVF-doxygen/html/html/MSSAMuChi_8h_source.html +4 -5
  49. package/SVF-doxygen/html/html/MTAAnnotator_8cpp_source.html +2 -2
  50. package/SVF-doxygen/html/html/MTAStat_8cpp_source.html +2 -2
  51. package/SVF-doxygen/html/html/MemRegion_8cpp_source.html +8 -8
  52. package/SVF-doxygen/html/html/MemRegion_8h_source.html +5 -6
  53. package/SVF-doxygen/html/html/MemSSA_8cpp_source.html +2 -2
  54. package/SVF-doxygen/html/html/MemSSA_8h_source.html +2 -2
  55. package/SVF-doxygen/html/html/NodeIDAllocator_8cpp_source.html +1 -1
  56. package/SVF-doxygen/html/html/PAGBuilderFromFile_8cpp_source.html +4 -4
  57. package/SVF-doxygen/html/html/PAGBuilderFromFile_8h_source.html +3 -3
  58. package/SVF-doxygen/html/html/PTACallGraph_8cpp_source.html +2 -2
  59. package/SVF-doxygen/html/html/PTACallGraph_8h_source.html +4 -5
  60. package/SVF-doxygen/html/html/PTAStat_8cpp_source.html +9 -10
  61. package/SVF-doxygen/html/html/PathCondAllocator_8cpp_source.html +1 -1
  62. package/SVF-doxygen/html/html/PersistentPointsToCache_8h_source.html +1 -1
  63. package/SVF-doxygen/html/html/PointerAnalysisImpl_8cpp_source.html +3 -3
  64. package/SVF-doxygen/html/html/PointerAnalysis_8cpp_source.html +3 -3
  65. package/SVF-doxygen/html/html/PointerAnalysis_8h_source.html +3 -4
  66. package/SVF-doxygen/html/html/SVFBasicTypes_8h.html +4 -4
  67. package/SVF-doxygen/html/html/SVFBasicTypes_8h_source.html +5 -5
  68. package/SVF-doxygen/html/html/SVFGOPT_8h_source.html +2 -2
  69. package/SVF-doxygen/html/html/SVFGStat_8cpp_source.html +2 -3
  70. package/SVF-doxygen/html/html/SVFG_8cpp_source.html +8 -8
  71. package/SVF-doxygen/html/html/SVFG_8h_source.html +1 -1
  72. package/SVF-doxygen/html/html/SVFIRBuilder_8cpp_source.html +12 -12
  73. package/SVF-doxygen/html/html/SVFIRBuilder_8h_source.html +53 -55
  74. package/SVF-doxygen/html/html/SVFIR_8cpp_source.html +39 -41
  75. package/SVF-doxygen/html/html/SVFIR_8h_source.html +38 -41
  76. package/SVF-doxygen/html/html/SVFStatements_8cpp_source.html +22 -24
  77. package/SVF-doxygen/html/html/SVFStatements_8h.html +0 -4
  78. package/SVF-doxygen/html/html/SVFStatements_8h_source.html +150 -160
  79. package/SVF-doxygen/html/html/SVFVariables_8cpp_source.html +1 -1
  80. package/SVF-doxygen/html/html/SVFVariables_8h_source.html +101 -100
  81. package/SVF-doxygen/html/html/SaberSVFGBuilder_8cpp_source.html +1 -1
  82. package/SVF-doxygen/html/html/SymbolTableBuilder_8cpp_source.html +2 -2
  83. package/SVF-doxygen/html/html/SymbolTableInfo_8cpp_source.html +6 -6
  84. package/SVF-doxygen/html/html/SymbolTableInfo_8h_source.html +3 -4
  85. package/SVF-doxygen/html/html/ThreadCallGraph_8cpp_source.html +1 -1
  86. package/SVF-doxygen/html/html/TypeAnalysis_8cpp_source.html +2 -2
  87. package/SVF-doxygen/html/html/TypeBasedHeapCloning_8cpp_source.html +14 -13
  88. package/SVF-doxygen/html/html/VFGEdge_8h_source.html +2 -2
  89. package/SVF-doxygen/html/html/VFGNode_8h_source.html +13 -13
  90. package/SVF-doxygen/html/html/VFG_8cpp_source.html +50 -51
  91. package/SVF-doxygen/html/html/VFG_8h_source.html +35 -35
  92. package/SVF-doxygen/html/html/VersionedFlowSensitiveStat_8cpp_source.html +5 -5
  93. package/SVF-doxygen/html/html/VersionedFlowSensitive_8cpp_source.html +4 -4
  94. package/SVF-doxygen/html/html/VersionedFlowSensitive_8h_source.html +4 -4
  95. package/SVF-doxygen/html/html/annotated.html +100 -102
  96. package/SVF-doxygen/html/html/classSVF_1_1ActualINSVFGNode-members.html +3 -3
  97. package/SVF-doxygen/html/html/classSVF_1_1ActualINSVFGNode.html +9 -9
  98. package/SVF-doxygen/html/html/classSVF_1_1ActualOUTSVFGNode-members.html +3 -3
  99. package/SVF-doxygen/html/html/classSVF_1_1ActualOUTSVFGNode.html +9 -9
  100. package/SVF-doxygen/html/html/classSVF_1_1ActualParmVFGNode-members.html +3 -3
  101. package/SVF-doxygen/html/html/classSVF_1_1ActualParmVFGNode.html +9 -9
  102. package/SVF-doxygen/html/html/classSVF_1_1ActualRetVFGNode-members.html +3 -3
  103. package/SVF-doxygen/html/html/classSVF_1_1ActualRetVFGNode.html +9 -9
  104. package/SVF-doxygen/html/html/classSVF_1_1AddrCGEdge-members.html +1 -1
  105. package/SVF-doxygen/html/html/classSVF_1_1AddrCGEdge.html +5 -5
  106. package/SVF-doxygen/html/html/classSVF_1_1AddrStmt-members.html +26 -27
  107. package/SVF-doxygen/html/html/classSVF_1_1AddrStmt.html +26 -27
  108. package/SVF-doxygen/html/html/classSVF_1_1AddrVFGNode-members.html +3 -3
  109. package/SVF-doxygen/html/html/classSVF_1_1AddrVFGNode.html +9 -9
  110. package/SVF-doxygen/html/html/classSVF_1_1AliasDDAClient.html +3 -3
  111. package/SVF-doxygen/html/html/classSVF_1_1Andersen-members.html +11 -11
  112. package/SVF-doxygen/html/html/classSVF_1_1Andersen.html +46 -46
  113. package/SVF-doxygen/html/html/classSVF_1_1AndersenBase-members.html +11 -11
  114. package/SVF-doxygen/html/html/classSVF_1_1AndersenBase.html +64 -64
  115. package/SVF-doxygen/html/html/classSVF_1_1AndersenHCD-members.html +11 -11
  116. package/SVF-doxygen/html/html/classSVF_1_1AndersenHCD.html +29 -29
  117. package/SVF-doxygen/html/html/classSVF_1_1AndersenHLCD-members.html +11 -11
  118. package/SVF-doxygen/html/html/classSVF_1_1AndersenHLCD.html +29 -29
  119. package/SVF-doxygen/html/html/classSVF_1_1AndersenLCD-members.html +11 -11
  120. package/SVF-doxygen/html/html/classSVF_1_1AndersenLCD.html +31 -31
  121. package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD-members.html +11 -11
  122. package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD.html +33 -33
  123. package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR-members.html +12 -12
  124. package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR.html +43 -42
  125. package/SVF-doxygen/html/html/classSVF_1_1AndersenStat.html +18 -18
  126. package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff-members.html +11 -11
  127. package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff.html +31 -31
  128. package/SVF-doxygen/html/html/classSVF_1_1ArgumentVFGNode-members.html +3 -3
  129. package/SVF-doxygen/html/html/classSVF_1_1ArgumentVFGNode.html +11 -11
  130. package/SVF-doxygen/html/html/classSVF_1_1AssignStmt-members.html +30 -31
  131. package/SVF-doxygen/html/html/classSVF_1_1AssignStmt.html +34 -39
  132. package/SVF-doxygen/html/html/classSVF_1_1AssignStmt.png +0 -0
  133. package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl-members.html +1 -1
  134. package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl.html +7 -7
  135. package/SVF-doxygen/html/html/classSVF_1_1BinaryOPStmt-members.html +30 -31
  136. package/SVF-doxygen/html/html/classSVF_1_1BinaryOPStmt.html +32 -33
  137. package/SVF-doxygen/html/html/classSVF_1_1BinaryOPVFGNode-members.html +3 -3
  138. package/SVF-doxygen/html/html/classSVF_1_1BinaryOPVFGNode.html +11 -11
  139. package/SVF-doxygen/html/html/classSVF_1_1BranchStmt-members.html +33 -34
  140. package/SVF-doxygen/html/html/classSVF_1_1BranchStmt.html +47 -48
  141. package/SVF-doxygen/html/html/classSVF_1_1BranchVFGNode-members.html +3 -3
  142. package/SVF-doxygen/html/html/classSVF_1_1BranchVFGNode.html +12 -12
  143. package/SVF-doxygen/html/html/classSVF_1_1CHEdge-members.html +1 -1
  144. package/SVF-doxygen/html/html/classSVF_1_1CHEdge.html +3 -3
  145. package/SVF-doxygen/html/html/classSVF_1_1CHGBuilder.html +3 -3
  146. package/SVF-doxygen/html/html/classSVF_1_1CHGraph-members.html +4 -4
  147. package/SVF-doxygen/html/html/classSVF_1_1CHGraph.html +24 -24
  148. package/SVF-doxygen/html/html/classSVF_1_1CHNode-members.html +3 -3
  149. package/SVF-doxygen/html/html/classSVF_1_1CHNode.html +11 -11
  150. package/SVF-doxygen/html/html/classSVF_1_1CSC-members.html +1 -1
  151. package/SVF-doxygen/html/html/classSVF_1_1CSC.html +11 -11
  152. package/SVF-doxygen/html/html/classSVF_1_1CallCFGEdge-members.html +1 -1
  153. package/SVF-doxygen/html/html/classSVF_1_1CallCFGEdge.html +4 -4
  154. package/SVF-doxygen/html/html/classSVF_1_1CallDirSVFGEdge-members.html +1 -1
  155. package/SVF-doxygen/html/html/classSVF_1_1CallDirSVFGEdge.html +4 -4
  156. package/SVF-doxygen/html/html/classSVF_1_1CallICFGNode-members.html +3 -3
  157. package/SVF-doxygen/html/html/classSVF_1_1CallICFGNode.html +9 -9
  158. package/SVF-doxygen/html/html/classSVF_1_1CallIndSVFGEdge-members.html +1 -1
  159. package/SVF-doxygen/html/html/classSVF_1_1CallIndSVFGEdge.html +4 -4
  160. package/SVF-doxygen/html/html/classSVF_1_1CallPE-members.html +29 -30
  161. package/SVF-doxygen/html/html/classSVF_1_1CallPE.html +35 -36
  162. package/SVF-doxygen/html/html/classSVF_1_1CloneDummyObjVar-members.html +3 -3
  163. package/SVF-doxygen/html/html/classSVF_1_1CloneDummyObjVar.html +20 -20
  164. package/SVF-doxygen/html/html/classSVF_1_1CloneFIObjVar-members.html +3 -3
  165. package/SVF-doxygen/html/html/classSVF_1_1CloneFIObjVar.html +21 -21
  166. package/SVF-doxygen/html/html/classSVF_1_1CloneGepObjVar-members.html +4 -4
  167. package/SVF-doxygen/html/html/classSVF_1_1CloneGepObjVar.html +24 -24
  168. package/SVF-doxygen/html/html/classSVF_1_1CmpStmt-members.html +32 -33
  169. package/SVF-doxygen/html/html/classSVF_1_1CmpStmt.html +33 -34
  170. package/SVF-doxygen/html/html/classSVF_1_1CmpVFGNode-members.html +3 -3
  171. package/SVF-doxygen/html/html/classSVF_1_1CmpVFGNode.html +11 -11
  172. package/SVF-doxygen/html/html/classSVF_1_1CondManager.html +2 -2
  173. package/SVF-doxygen/html/html/classSVF_1_1CondPTAImpl-members.html +1 -1
  174. package/SVF-doxygen/html/html/classSVF_1_1CondPTAImpl.html +3 -3
  175. package/SVF-doxygen/html/html/classSVF_1_1ConstraintEdge-members.html +1 -1
  176. package/SVF-doxygen/html/html/classSVF_1_1ConstraintEdge.html +3 -3
  177. package/SVF-doxygen/html/html/classSVF_1_1ConstraintGraph-members.html +1 -1
  178. package/SVF-doxygen/html/html/classSVF_1_1ConstraintGraph.html +99 -100
  179. package/SVF-doxygen/html/html/classSVF_1_1ConstraintNode-members.html +26 -26
  180. package/SVF-doxygen/html/html/classSVF_1_1ConstraintNode.html +68 -68
  181. package/SVF-doxygen/html/html/classSVF_1_1ContextDDA-members.html +1 -1
  182. package/SVF-doxygen/html/html/classSVF_1_1ContextDDA.html +20 -19
  183. package/SVF-doxygen/html/html/classSVF_1_1CopyCGEdge-members.html +1 -1
  184. package/SVF-doxygen/html/html/classSVF_1_1CopyCGEdge.html +3 -3
  185. package/SVF-doxygen/html/html/classSVF_1_1CopyStmt-members.html +26 -27
  186. package/SVF-doxygen/html/html/classSVF_1_1CopyStmt.html +26 -27
  187. package/SVF-doxygen/html/html/classSVF_1_1CopyVFGNode-members.html +3 -3
  188. package/SVF-doxygen/html/html/classSVF_1_1CopyVFGNode.html +9 -9
  189. package/SVF-doxygen/html/html/classSVF_1_1DCHEdge-members.html +5 -5
  190. package/SVF-doxygen/html/html/classSVF_1_1DCHEdge.html +8 -8
  191. package/SVF-doxygen/html/html/classSVF_1_1DCHGraph.html +7 -7
  192. package/SVF-doxygen/html/html/classSVF_1_1DCHNode-members.html +3 -3
  193. package/SVF-doxygen/html/html/classSVF_1_1DCHNode.html +11 -11
  194. package/SVF-doxygen/html/html/classSVF_1_1DDAClient.html +2 -2
  195. package/SVF-doxygen/html/html/classSVF_1_1DDAPass.html +2 -2
  196. package/SVF-doxygen/html/html/classSVF_1_1DDAStat.html +5 -5
  197. package/SVF-doxygen/html/html/classSVF_1_1DDAVFSolver.html +3 -3
  198. package/SVF-doxygen/html/html/classSVF_1_1DirectSVFGEdge-members.html +1 -1
  199. package/SVF-doxygen/html/html/classSVF_1_1DirectSVFGEdge.html +4 -4
  200. package/SVF-doxygen/html/html/classSVF_1_1DistinctMRG-members.html +1 -1
  201. package/SVF-doxygen/html/html/classSVF_1_1DistinctMRG.html +2 -2
  202. package/SVF-doxygen/html/html/classSVF_1_1DummyObjVar-members.html +3 -3
  203. package/SVF-doxygen/html/html/classSVF_1_1DummyObjVar.html +22 -22
  204. package/SVF-doxygen/html/html/classSVF_1_1DummyValVar-members.html +3 -3
  205. package/SVF-doxygen/html/html/classSVF_1_1DummyValVar.html +22 -22
  206. package/SVF-doxygen/html/html/classSVF_1_1DummyVersionPropSVFGNode-members.html +3 -3
  207. package/SVF-doxygen/html/html/classSVF_1_1DummyVersionPropSVFGNode.html +9 -9
  208. package/SVF-doxygen/html/html/classSVF_1_1FIObjVar-members.html +3 -3
  209. package/SVF-doxygen/html/html/classSVF_1_1FIObjVar.html +23 -23
  210. package/SVF-doxygen/html/html/classSVF_1_1FSMPTA-members.html +13 -13
  211. package/SVF-doxygen/html/html/classSVF_1_1FSMPTA.html +37 -37
  212. package/SVF-doxygen/html/html/classSVF_1_1FlowDDA-members.html +1 -1
  213. package/SVF-doxygen/html/html/classSVF_1_1FlowDDA.html +9 -8
  214. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive-members.html +13 -13
  215. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive.html +134 -134
  216. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveStat.html +22 -22
  217. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveTBHC-members.html +13 -13
  218. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveTBHC.html +93 -92
  219. package/SVF-doxygen/html/html/classSVF_1_1FormalINSVFGNode-members.html +3 -3
  220. package/SVF-doxygen/html/html/classSVF_1_1FormalINSVFGNode.html +9 -9
  221. package/SVF-doxygen/html/html/classSVF_1_1FormalOUTSVFGNode-members.html +3 -3
  222. package/SVF-doxygen/html/html/classSVF_1_1FormalOUTSVFGNode.html +9 -9
  223. package/SVF-doxygen/html/html/classSVF_1_1FormalParmVFGNode-members.html +3 -3
  224. package/SVF-doxygen/html/html/classSVF_1_1FormalParmVFGNode.html +9 -9
  225. package/SVF-doxygen/html/html/classSVF_1_1FormalRetVFGNode-members.html +3 -3
  226. package/SVF-doxygen/html/html/classSVF_1_1FormalRetVFGNode.html +9 -9
  227. package/SVF-doxygen/html/html/classSVF_1_1FunEntryICFGNode-members.html +3 -3
  228. package/SVF-doxygen/html/html/classSVF_1_1FunEntryICFGNode.html +9 -9
  229. package/SVF-doxygen/html/html/classSVF_1_1FunExitICFGNode-members.html +3 -3
  230. package/SVF-doxygen/html/html/classSVF_1_1FunExitICFGNode.html +9 -9
  231. package/SVF-doxygen/html/html/classSVF_1_1GenericEdge-members.html +1 -1
  232. package/SVF-doxygen/html/html/classSVF_1_1GenericEdge.html +7 -7
  233. package/SVF-doxygen/html/html/classSVF_1_1GenericNode-members.html +3 -3
  234. package/SVF-doxygen/html/html/classSVF_1_1GenericNode.html +43 -42
  235. package/SVF-doxygen/html/html/classSVF_1_1GenericNode.png +0 -0
  236. package/SVF-doxygen/html/html/classSVF_1_1GepCGEdge-members.html +1 -1
  237. package/SVF-doxygen/html/html/classSVF_1_1GepCGEdge.html +3 -3
  238. package/SVF-doxygen/html/html/classSVF_1_1GepObjVar-members.html +4 -4
  239. package/SVF-doxygen/html/html/classSVF_1_1GepObjVar.html +52 -52
  240. package/SVF-doxygen/html/html/classSVF_1_1GepStmt-members.html +18 -16
  241. package/SVF-doxygen/html/html/classSVF_1_1GepStmt.html +148 -59
  242. package/SVF-doxygen/html/html/classSVF_1_1GepStmt.png +0 -0
  243. package/SVF-doxygen/html/html/classSVF_1_1GepVFGNode-members.html +3 -3
  244. package/SVF-doxygen/html/html/classSVF_1_1GepVFGNode.html +9 -9
  245. package/SVF-doxygen/html/html/classSVF_1_1GepValVar-members.html +5 -5
  246. package/SVF-doxygen/html/html/classSVF_1_1GepValVar.html +49 -49
  247. package/SVF-doxygen/html/html/classSVF_1_1GlobalICFGNode-members.html +3 -3
  248. package/SVF-doxygen/html/html/classSVF_1_1GlobalICFGNode.html +9 -9
  249. package/SVF-doxygen/html/html/classSVF_1_1HareParForEdge-members.html +1 -1
  250. package/SVF-doxygen/html/html/classSVF_1_1HareParForEdge.html +4 -4
  251. package/SVF-doxygen/html/html/classSVF_1_1ICFG.html +2 -2
  252. package/SVF-doxygen/html/html/classSVF_1_1ICFGEdge-members.html +1 -1
  253. package/SVF-doxygen/html/html/classSVF_1_1ICFGEdge.html +5 -5
  254. package/SVF-doxygen/html/html/classSVF_1_1ICFGNode-members.html +3 -3
  255. package/SVF-doxygen/html/html/classSVF_1_1ICFGNode.html +9 -9
  256. package/SVF-doxygen/html/html/classSVF_1_1ICFGPrinter.html +7 -8
  257. package/SVF-doxygen/html/html/classSVF_1_1ICFGStat.html +1 -1
  258. package/SVF-doxygen/html/html/classSVF_1_1IRAnnotator.html +3 -3
  259. package/SVF-doxygen/html/html/classSVF_1_1IRGraph-members.html +5 -5
  260. package/SVF-doxygen/html/html/classSVF_1_1IRGraph.html +27 -27
  261. package/SVF-doxygen/html/html/classSVF_1_1IndirectSVFGEdge-members.html +1 -1
  262. package/SVF-doxygen/html/html/classSVF_1_1IndirectSVFGEdge.html +4 -4
  263. package/SVF-doxygen/html/html/classSVF_1_1InterDisjointMRG-members.html +1 -1
  264. package/SVF-doxygen/html/html/classSVF_1_1InterDisjointMRG.html +2 -2
  265. package/SVF-doxygen/html/html/classSVF_1_1InterICFGNode-members.html +3 -3
  266. package/SVF-doxygen/html/html/classSVF_1_1InterICFGNode.html +9 -9
  267. package/SVF-doxygen/html/html/classSVF_1_1InterMSSAPHISVFGNode-members.html +3 -3
  268. package/SVF-doxygen/html/html/classSVF_1_1InterMSSAPHISVFGNode.html +9 -9
  269. package/SVF-doxygen/html/html/classSVF_1_1InterPHIVFGNode-members.html +3 -3
  270. package/SVF-doxygen/html/html/classSVF_1_1InterPHIVFGNode.html +9 -9
  271. package/SVF-doxygen/html/html/classSVF_1_1IntraCFGEdge-members.html +1 -1
  272. package/SVF-doxygen/html/html/classSVF_1_1IntraCFGEdge.html +4 -4
  273. package/SVF-doxygen/html/html/classSVF_1_1IntraDirSVFGEdge-members.html +1 -1
  274. package/SVF-doxygen/html/html/classSVF_1_1IntraDirSVFGEdge.html +4 -4
  275. package/SVF-doxygen/html/html/classSVF_1_1IntraDisjointMRG-members.html +1 -1
  276. package/SVF-doxygen/html/html/classSVF_1_1IntraDisjointMRG.html +2 -2
  277. package/SVF-doxygen/html/html/classSVF_1_1IntraICFGNode-members.html +3 -3
  278. package/SVF-doxygen/html/html/classSVF_1_1IntraICFGNode.html +9 -9
  279. package/SVF-doxygen/html/html/classSVF_1_1IntraIndSVFGEdge-members.html +1 -1
  280. package/SVF-doxygen/html/html/classSVF_1_1IntraIndSVFGEdge.html +4 -4
  281. package/SVF-doxygen/html/html/classSVF_1_1IntraMSSAPHISVFGNode-members.html +3 -3
  282. package/SVF-doxygen/html/html/classSVF_1_1IntraMSSAPHISVFGNode.html +9 -9
  283. package/SVF-doxygen/html/html/classSVF_1_1IntraPHIVFGNode-members.html +3 -3
  284. package/SVF-doxygen/html/html/classSVF_1_1IntraPHIVFGNode.html +9 -9
  285. package/SVF-doxygen/html/html/classSVF_1_1LoadCGEdge-members.html +1 -1
  286. package/SVF-doxygen/html/html/classSVF_1_1LoadCGEdge.html +3 -3
  287. package/SVF-doxygen/html/html/classSVF_1_1LoadStmt-members.html +29 -30
  288. package/SVF-doxygen/html/html/classSVF_1_1LoadStmt.html +26 -27
  289. package/SVF-doxygen/html/html/classSVF_1_1LoadVFGNode-members.html +3 -3
  290. package/SVF-doxygen/html/html/classSVF_1_1LoadVFGNode.html +9 -9
  291. package/SVF-doxygen/html/html/classSVF_1_1LocationSet-members.html +12 -12
  292. package/SVF-doxygen/html/html/classSVF_1_1LocationSet.html +120 -150
  293. package/SVF-doxygen/html/html/classSVF_1_1MRGenerator-members.html +1 -1
  294. package/SVF-doxygen/html/html/classSVF_1_1MRGenerator.html +11 -11
  295. package/SVF-doxygen/html/html/classSVF_1_1MRSVFGNode-members.html +3 -3
  296. package/SVF-doxygen/html/html/classSVF_1_1MRSVFGNode.html +9 -9
  297. package/SVF-doxygen/html/html/classSVF_1_1MRVer-members.html +1 -1
  298. package/SVF-doxygen/html/html/classSVF_1_1MRVer.html +8 -8
  299. package/SVF-doxygen/html/html/classSVF_1_1MSSAPHISVFGNode-members.html +3 -3
  300. package/SVF-doxygen/html/html/classSVF_1_1MSSAPHISVFGNode.html +9 -9
  301. package/SVF-doxygen/html/html/classSVF_1_1MTAAnnotator.html +2 -2
  302. package/SVF-doxygen/html/html/classSVF_1_1MTASVFGBuilder.html +1 -1
  303. package/SVF-doxygen/html/html/classSVF_1_1MTAStat.html +3 -3
  304. package/SVF-doxygen/html/html/classSVF_1_1MemObj-members.html +1 -1
  305. package/SVF-doxygen/html/html/classSVF_1_1MemObj.html +7 -7
  306. package/SVF-doxygen/html/html/classSVF_1_1MemRegion-members.html +1 -1
  307. package/SVF-doxygen/html/html/classSVF_1_1MemRegion.html +8 -8
  308. package/SVF-doxygen/html/html/classSVF_1_1MemSSA.html +6 -6
  309. package/SVF-doxygen/html/html/classSVF_1_1MemSSAStat.html +3 -3
  310. package/SVF-doxygen/html/html/classSVF_1_1MultiOpndStmt-members.html +35 -36
  311. package/SVF-doxygen/html/html/classSVF_1_1MultiOpndStmt.html +41 -42
  312. package/SVF-doxygen/html/html/classSVF_1_1NodeIDAllocator_1_1Clusterer.html +1 -1
  313. package/SVF-doxygen/html/html/classSVF_1_1NormalGepCGEdge-members.html +6 -6
  314. package/SVF-doxygen/html/html/classSVF_1_1NormalGepCGEdge.html +11 -11
  315. package/SVF-doxygen/html/html/classSVF_1_1NormalGepStmt-members.html +3 -3
  316. package/SVF-doxygen/html/html/classSVF_1_1NormalGepStmt.html +17 -17
  317. package/SVF-doxygen/html/html/classSVF_1_1NullPtrVFGNode-members.html +3 -3
  318. package/SVF-doxygen/html/html/classSVF_1_1NullPtrVFGNode.html +9 -9
  319. package/SVF-doxygen/html/html/classSVF_1_1ObjTypeInfo-members.html +1 -1
  320. package/SVF-doxygen/html/html/classSVF_1_1ObjTypeInfo.html +13 -13
  321. package/SVF-doxygen/html/html/classSVF_1_1ObjVar-members.html +3 -3
  322. package/SVF-doxygen/html/html/classSVF_1_1ObjVar.html +27 -27
  323. package/SVF-doxygen/html/html/classSVF_1_1OfflineConsG-members.html +1 -1
  324. package/SVF-doxygen/html/html/classSVF_1_1OfflineConsG.html +6 -6
  325. package/SVF-doxygen/html/html/classSVF_1_1PAGBuilderFromFile-members.html +1 -1
  326. package/SVF-doxygen/html/html/classSVF_1_1PAGBuilderFromFile.html +12 -12
  327. package/SVF-doxygen/html/html/classSVF_1_1PHIVFGNode-members.html +3 -3
  328. package/SVF-doxygen/html/html/classSVF_1_1PHIVFGNode.html +11 -11
  329. package/SVF-doxygen/html/html/classSVF_1_1PTACallGraph-members.html +2 -2
  330. package/SVF-doxygen/html/html/classSVF_1_1PTACallGraph.html +15 -15
  331. package/SVF-doxygen/html/html/classSVF_1_1PTACallGraphEdge-members.html +1 -1
  332. package/SVF-doxygen/html/html/classSVF_1_1PTACallGraphEdge.html +5 -5
  333. package/SVF-doxygen/html/html/classSVF_1_1PTACallGraphNode-members.html +3 -3
  334. package/SVF-doxygen/html/html/classSVF_1_1PTACallGraphNode.html +9 -9
  335. package/SVF-doxygen/html/html/classSVF_1_1PTAStat.html +11 -12
  336. package/SVF-doxygen/html/html/classSVF_1_1PhiStmt-members.html +32 -33
  337. package/SVF-doxygen/html/html/classSVF_1_1PhiStmt.html +32 -33
  338. package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis-members.html +1 -1
  339. package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.html +12 -12
  340. package/SVF-doxygen/html/html/classSVF_1_1RetCFGEdge-members.html +1 -1
  341. package/SVF-doxygen/html/html/classSVF_1_1RetCFGEdge.html +4 -4
  342. package/SVF-doxygen/html/html/classSVF_1_1RetDirSVFGEdge-members.html +1 -1
  343. package/SVF-doxygen/html/html/classSVF_1_1RetDirSVFGEdge.html +4 -4
  344. package/SVF-doxygen/html/html/classSVF_1_1RetICFGNode-members.html +3 -3
  345. package/SVF-doxygen/html/html/classSVF_1_1RetICFGNode.html +9 -9
  346. package/SVF-doxygen/html/html/classSVF_1_1RetIndSVFGEdge-members.html +1 -1
  347. package/SVF-doxygen/html/html/classSVF_1_1RetIndSVFGEdge.html +4 -4
  348. package/SVF-doxygen/html/html/classSVF_1_1RetPE-members.html +29 -30
  349. package/SVF-doxygen/html/html/classSVF_1_1RetPE.html +35 -36
  350. package/SVF-doxygen/html/html/classSVF_1_1RetPN-members.html +3 -3
  351. package/SVF-doxygen/html/html/classSVF_1_1RetPN.html +22 -22
  352. package/SVF-doxygen/html/html/classSVF_1_1SVFBasicBlock-members.html +1 -1
  353. package/SVF-doxygen/html/html/classSVF_1_1SVFBasicBlock.html +3 -3
  354. package/SVF-doxygen/html/html/classSVF_1_1SVFFunction-members.html +1 -1
  355. package/SVF-doxygen/html/html/classSVF_1_1SVFFunction.html +3 -3
  356. package/SVF-doxygen/html/html/classSVF_1_1SVFG-members.html +2 -2
  357. package/SVF-doxygen/html/html/classSVF_1_1SVFG.html +16 -16
  358. package/SVF-doxygen/html/html/classSVF_1_1SVFGBuilder.html +1 -1
  359. package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT-members.html +2 -2
  360. package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT.html +10 -10
  361. package/SVF-doxygen/html/html/classSVF_1_1SVFGStat.html +3 -3
  362. package/SVF-doxygen/html/html/classSVF_1_1SVFGlobal-members.html +1 -1
  363. package/SVF-doxygen/html/html/classSVF_1_1SVFGlobal.html +3 -3
  364. package/SVF-doxygen/html/html/classSVF_1_1SVFIR-members.html +10 -10
  365. package/SVF-doxygen/html/html/classSVF_1_1SVFIR.html +110 -111
  366. package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder-members.html +4 -4
  367. package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder.html +152 -151
  368. package/SVF-doxygen/html/html/classSVF_1_1SVFStmt-members.html +26 -27
  369. package/SVF-doxygen/html/html/classSVF_1_1SVFStmt.html +67 -71
  370. package/SVF-doxygen/html/html/classSVF_1_1SVFStmt.png +0 -0
  371. package/SVF-doxygen/html/html/classSVF_1_1SVFValue-members.html +1 -1
  372. package/SVF-doxygen/html/html/classSVF_1_1SVFValue.html +9 -9
  373. package/SVF-doxygen/html/html/classSVF_1_1SVFVar-members.html +3 -3
  374. package/SVF-doxygen/html/html/classSVF_1_1SVFVar.html +15 -15
  375. package/SVF-doxygen/html/html/classSVF_1_1SaberSVFGBuilder.html +3 -3
  376. package/SVF-doxygen/html/html/classSVF_1_1Steensgaard-members.html +11 -11
  377. package/SVF-doxygen/html/html/classSVF_1_1Steensgaard.html +31 -31
  378. package/SVF-doxygen/html/html/classSVF_1_1StmtVFGNode-members.html +3 -3
  379. package/SVF-doxygen/html/html/classSVF_1_1StmtVFGNode.html +12 -12
  380. package/SVF-doxygen/html/html/classSVF_1_1StoreCGEdge-members.html +1 -1
  381. package/SVF-doxygen/html/html/classSVF_1_1StoreCGEdge.html +3 -3
  382. package/SVF-doxygen/html/html/classSVF_1_1StoreStmt-members.html +26 -27
  383. package/SVF-doxygen/html/html/classSVF_1_1StoreStmt.html +27 -28
  384. package/SVF-doxygen/html/html/classSVF_1_1StoreVFGNode-members.html +3 -3
  385. package/SVF-doxygen/html/html/classSVF_1_1StoreVFGNode.html +9 -9
  386. package/SVF-doxygen/html/html/classSVF_1_1SymbolTableBuilder.html +2 -2
  387. package/SVF-doxygen/html/html/classSVF_1_1SymbolTableInfo-members.html +1 -1
  388. package/SVF-doxygen/html/html/classSVF_1_1SymbolTableInfo.html +12 -12
  389. package/SVF-doxygen/html/html/classSVF_1_1TCTEdge-members.html +1 -1
  390. package/SVF-doxygen/html/html/classSVF_1_1TCTEdge.html +3 -3
  391. package/SVF-doxygen/html/html/classSVF_1_1TCTNode-members.html +3 -3
  392. package/SVF-doxygen/html/html/classSVF_1_1TCTNode.html +9 -9
  393. package/SVF-doxygen/html/html/classSVF_1_1TDForkPE-members.html +28 -29
  394. package/SVF-doxygen/html/html/classSVF_1_1TDForkPE.html +28 -29
  395. package/SVF-doxygen/html/html/classSVF_1_1TDJoinPE-members.html +28 -29
  396. package/SVF-doxygen/html/html/classSVF_1_1TDJoinPE.html +28 -29
  397. package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraph-members.html +2 -2
  398. package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraph.html +5 -5
  399. package/SVF-doxygen/html/html/classSVF_1_1ThreadForkEdge-members.html +1 -1
  400. package/SVF-doxygen/html/html/classSVF_1_1ThreadForkEdge.html +4 -4
  401. package/SVF-doxygen/html/html/classSVF_1_1ThreadJoinEdge-members.html +1 -1
  402. package/SVF-doxygen/html/html/classSVF_1_1ThreadJoinEdge.html +4 -4
  403. package/SVF-doxygen/html/html/classSVF_1_1ThreadMHPIndSVFGEdge-members.html +1 -1
  404. package/SVF-doxygen/html/html/classSVF_1_1ThreadMHPIndSVFGEdge.html +4 -4
  405. package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis-members.html +11 -11
  406. package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis.html +31 -31
  407. package/SVF-doxygen/html/html/classSVF_1_1TypeBasedHeapCloning.html +22 -21
  408. package/SVF-doxygen/html/html/classSVF_1_1UnaryOPStmt-members.html +31 -32
  409. package/SVF-doxygen/html/html/classSVF_1_1UnaryOPStmt.html +39 -40
  410. package/SVF-doxygen/html/html/classSVF_1_1UnaryOPVFGNode-members.html +3 -3
  411. package/SVF-doxygen/html/html/classSVF_1_1UnaryOPVFGNode.html +9 -9
  412. package/SVF-doxygen/html/html/classSVF_1_1VFG-members.html +2 -2
  413. package/SVF-doxygen/html/html/classSVF_1_1VFG.html +79 -80
  414. package/SVF-doxygen/html/html/classSVF_1_1VFGEdge-members.html +1 -1
  415. package/SVF-doxygen/html/html/classSVF_1_1VFGEdge.html +5 -5
  416. package/SVF-doxygen/html/html/classSVF_1_1VFGNode-members.html +3 -3
  417. package/SVF-doxygen/html/html/classSVF_1_1VFGNode.html +9 -9
  418. package/SVF-doxygen/html/html/classSVF_1_1ValVar-members.html +3 -3
  419. package/SVF-doxygen/html/html/classSVF_1_1ValVar.html +20 -20
  420. package/SVF-doxygen/html/html/classSVF_1_1VarArgPN-members.html +3 -3
  421. package/SVF-doxygen/html/html/classSVF_1_1VarArgPN.html +22 -22
  422. package/SVF-doxygen/html/html/classSVF_1_1VariantGepCGEdge-members.html +1 -1
  423. package/SVF-doxygen/html/html/classSVF_1_1VariantGepCGEdge.html +3 -3
  424. package/SVF-doxygen/html/html/classSVF_1_1VariantGepStmt-members.html +2 -2
  425. package/SVF-doxygen/html/html/classSVF_1_1VariantGepStmt.html +9 -9
  426. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive-members.html +15 -15
  427. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive.html +55 -55
  428. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitiveStat.html +20 -20
  429. package/SVF-doxygen/html/html/classes.html +95 -93
  430. package/SVF-doxygen/html/html/functions_a.html +19 -16
  431. package/SVF-doxygen/html/html/functions_c.html +22 -22
  432. package/SVF-doxygen/html/html/functions_eval_g.html +2 -1
  433. package/SVF-doxygen/html/html/functions_eval_n.html +0 -1
  434. package/SVF-doxygen/html/html/functions_eval_v.html +0 -1
  435. package/SVF-doxygen/html/html/functions_f.html +3 -3
  436. package/SVF-doxygen/html/html/functions_func.html +20 -17
  437. package/SVF-doxygen/html/html/functions_func_c.html +20 -22
  438. package/SVF-doxygen/html/html/functions_func_f.html +1 -1
  439. package/SVF-doxygen/html/html/functions_func_g.html +37 -40
  440. package/SVF-doxygen/html/html/functions_func_i.html +8 -5
  441. package/SVF-doxygen/html/html/functions_func_n.html +0 -3
  442. package/SVF-doxygen/html/html/functions_func_o.html +5 -7
  443. package/SVF-doxygen/html/html/functions_func_r.html +2 -2
  444. package/SVF-doxygen/html/html/functions_func_s.html +1 -1
  445. package/SVF-doxygen/html/html/functions_func_t.html +0 -2
  446. package/SVF-doxygen/html/html/functions_func_v.html +1 -4
  447. package/SVF-doxygen/html/html/functions_g.html +30 -32
  448. package/SVF-doxygen/html/html/functions_i.html +13 -10
  449. package/SVF-doxygen/html/html/functions_l.html +4 -4
  450. package/SVF-doxygen/html/html/functions_m.html +3 -3
  451. package/SVF-doxygen/html/html/functions_n.html +23 -27
  452. package/SVF-doxygen/html/html/functions_o.html +6 -8
  453. package/SVF-doxygen/html/html/functions_p.html +7 -7
  454. package/SVF-doxygen/html/html/functions_r.html +2 -2
  455. package/SVF-doxygen/html/html/functions_s.html +7 -5
  456. package/SVF-doxygen/html/html/functions_t.html +4 -8
  457. package/SVF-doxygen/html/html/functions_type_g.html +3 -3
  458. package/SVF-doxygen/html/html/functions_type_n.html +1 -1
  459. package/SVF-doxygen/html/html/functions_type_o.html +1 -1
  460. package/SVF-doxygen/html/html/functions_v.html +10 -11
  461. package/SVF-doxygen/html/html/functions_vars_a.html +1 -1
  462. package/SVF-doxygen/html/html/functions_vars_f.html +2 -2
  463. package/SVF-doxygen/html/html/functions_vars_m.html +2 -2
  464. package/SVF-doxygen/html/html/functions_vars_n.html +22 -22
  465. package/SVF-doxygen/html/html/functions_vars_t.html +3 -3
  466. package/SVF-doxygen/html/html/functions_vars_v.html +5 -2
  467. package/SVF-doxygen/html/html/functions_w.html +5 -9
  468. package/SVF-doxygen/html/html/hierarchy.html +55 -57
  469. package/SVF-doxygen/html/html/namespaceSVF.html +22 -26
  470. package/SVF-doxygen/html/html/namespaceSVF_1_1SVFUtil.html +1 -1
  471. package/SVF-doxygen/html/html/namespaceSVF_1_1cppUtil.html +5 -5
  472. package/SVF-doxygen/html/html/namespacemembers_s.html +3 -3
  473. package/SVF-doxygen/html/html/namespacemembers_type_s.html +3 -3
  474. package/SVF-doxygen/html/html/search/all_1.js +9 -8
  475. package/SVF-doxygen/html/html/search/all_10.js +6 -6
  476. package/SVF-doxygen/html/html/search/all_12.js +2 -2
  477. package/SVF-doxygen/html/html/search/all_13.js +9 -9
  478. package/SVF-doxygen/html/html/search/all_14.js +6 -6
  479. package/SVF-doxygen/html/html/search/all_16.js +7 -7
  480. package/SVF-doxygen/html/html/search/all_17.js +1 -1
  481. package/SVF-doxygen/html/html/search/all_3.js +1 -1
  482. package/SVF-doxygen/html/html/search/all_6.js +3 -3
  483. package/SVF-doxygen/html/html/search/all_7.js +19 -20
  484. package/SVF-doxygen/html/html/search/all_9.js +4 -3
  485. package/SVF-doxygen/html/html/search/all_c.js +3 -3
  486. package/SVF-doxygen/html/html/search/all_d.js +5 -5
  487. package/SVF-doxygen/html/html/search/all_e.js +20 -21
  488. package/SVF-doxygen/html/html/search/all_f.js +4 -4
  489. package/SVF-doxygen/html/html/search/classes_12.js +0 -1
  490. package/SVF-doxygen/html/html/search/classes_b.js +0 -1
  491. package/SVF-doxygen/html/html/search/enumvalues_12.js +1 -1
  492. package/SVF-doxygen/html/html/search/enumvalues_6.js +1 -1
  493. package/SVF-doxygen/html/html/search/enumvalues_b.js +1 -1
  494. package/SVF-doxygen/html/html/search/functions_0.js +8 -7
  495. package/SVF-doxygen/html/html/search/functions_10.js +1 -1
  496. package/SVF-doxygen/html/html/search/functions_11.js +1 -1
  497. package/SVF-doxygen/html/html/search/functions_13.js +1 -2
  498. package/SVF-doxygen/html/html/search/functions_2.js +1 -1
  499. package/SVF-doxygen/html/html/search/functions_5.js +1 -1
  500. package/SVF-doxygen/html/html/search/functions_6.js +16 -17
  501. package/SVF-doxygen/html/html/search/functions_8.js +3 -2
  502. package/SVF-doxygen/html/html/search/functions_a.js +1 -1
  503. package/SVF-doxygen/html/html/search/functions_c.js +0 -1
  504. package/SVF-doxygen/html/html/search/functions_d.js +3 -3
  505. package/SVF-doxygen/html/html/search/functions_e.js +1 -1
  506. package/SVF-doxygen/html/html/search/functions_f.js +2 -2
  507. package/SVF-doxygen/html/html/search/typedefs_11.js +1 -1
  508. package/SVF-doxygen/html/html/search/typedefs_6.js +2 -2
  509. package/SVF-doxygen/html/html/search/typedefs_d.js +1 -1
  510. package/SVF-doxygen/html/html/search/typedefs_e.js +1 -1
  511. package/SVF-doxygen/html/html/search/variables_1.js +1 -1
  512. package/SVF-doxygen/html/html/search/variables_14.js +4 -4
  513. package/SVF-doxygen/html/html/search/variables_16.js +3 -2
  514. package/SVF-doxygen/html/html/search/variables_6.js +2 -2
  515. package/SVF-doxygen/html/html/search/variables_d.js +3 -3
  516. package/SVF-doxygen/html/html/search/variables_e.js +18 -18
  517. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01ConstraintGraph_01_5_01_4.html +16 -16
  518. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01IRGraph_01_5_01_4.html +2 -2
  519. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01VFG_01_5_01_4.html +18 -18
  520. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1LocationSet_01_4.html +5 -5
  521. package/include/Graphs/CHG.h +6 -6
  522. package/include/Graphs/ConsG.h +2 -2
  523. package/include/Graphs/ConsGEdge.h +1 -1
  524. package/include/Graphs/ConsGNode.h +16 -16
  525. package/include/Graphs/GenericGraph.h +4 -4
  526. package/include/Graphs/IRGraph.h +5 -5
  527. package/include/Graphs/PTACallGraph.h +2 -2
  528. package/include/Graphs/VFG.h +2 -2
  529. package/include/MSSA/MSSAMuChi.h +1 -1
  530. package/include/MSSA/MemRegion.h +2 -2
  531. package/include/MemoryModel/LocationSet.h +10 -48
  532. package/include/MemoryModel/PAGBuilderFromFile.h +1 -1
  533. package/include/MemoryModel/PointerAnalysis.h +1 -1
  534. package/include/MemoryModel/SVFIR.h +5 -5
  535. package/include/MemoryModel/SVFStatements.h +18 -95
  536. package/include/MemoryModel/SVFVariables.h +9 -6
  537. package/include/MemoryModel/SymbolTableInfo.h +3 -3
  538. package/include/SVF-FE/DCHG.h +1 -1
  539. package/include/SVF-FE/SVFIRBuilder.h +7 -7
  540. package/include/Util/IRAnnotator.h +3 -3
  541. package/include/Util/SVFBasicTypes.h +3 -3
  542. package/include/WPA/Andersen.h +11 -11
  543. package/include/WPA/AndersenSFR.h +1 -1
  544. package/include/WPA/CSC.h +1 -1
  545. package/include/WPA/FlowSensitive.h +13 -13
  546. package/include/WPA/VersionedFlowSensitive.h +2 -2
  547. package/lib/DDA/ContextDDA.cpp +4 -5
  548. package/lib/DDA/DDAClient.cpp +6 -6
  549. package/lib/DDA/DDAStat.cpp +1 -1
  550. package/lib/DDA/FlowDDA.cpp +4 -5
  551. package/lib/Graphs/ConsG.cpp +30 -35
  552. package/lib/Graphs/ICFG.cpp +1 -1
  553. package/lib/Graphs/SVFG.cpp +2 -2
  554. package/lib/Graphs/SVFGStat.cpp +2 -2
  555. package/lib/Graphs/VFG.cpp +36 -43
  556. package/lib/MSSA/MemRegion.cpp +2 -2
  557. package/lib/MTA/MHP.cpp +2 -2
  558. package/lib/MTA/MTAAnnotator.cpp +3 -3
  559. package/lib/MemoryModel/LocationSet.cpp +49 -9
  560. package/lib/MemoryModel/PAGBuilderFromFile.cpp +3 -3
  561. package/lib/MemoryModel/PointerAnalysisImpl.cpp +1 -1
  562. package/lib/MemoryModel/SVFIR.cpp +27 -35
  563. package/lib/MemoryModel/SVFStatements.cpp +0 -22
  564. package/lib/MemoryModel/SVFVariables.cpp +1 -1
  565. package/lib/MemoryModel/SymbolTableInfo.cpp +4 -4
  566. package/lib/SVF-FE/CPPUtil.cpp +6 -6
  567. package/lib/SVF-FE/DCHG.cpp +1 -1
  568. package/lib/SVF-FE/Graph2Json.cpp +24 -27
  569. package/lib/SVF-FE/LLVMUtil.cpp +1 -1
  570. package/lib/SVF-FE/SVFIRBuilder.cpp +14 -13
  571. package/lib/SVF-FE/SymbolTableBuilder.cpp +1 -1
  572. package/lib/Util/Conditions.cpp +1 -1
  573. package/lib/Util/PTAStat.cpp +9 -9
  574. package/lib/Util/TypeBasedHeapCloning.cpp +6 -6
  575. package/lib/WPA/Andersen.cpp +13 -13
  576. package/lib/WPA/AndersenSFR.cpp +8 -8
  577. package/lib/WPA/AndersenStat.cpp +2 -2
  578. package/lib/WPA/CSC.cpp +6 -6
  579. package/lib/WPA/FlowSensitive.cpp +4 -7
  580. package/lib/WPA/FlowSensitiveStat.cpp +2 -2
  581. package/lib/WPA/FlowSensitiveTBHC.cpp +6 -9
  582. package/lib/WPA/TypeAnalysis.cpp +3 -3
  583. package/package.json +1 -1
@@ -39,26 +39,29 @@ using namespace SVFUtil;
39
39
  /*!
40
40
  * Add offset value to vector offsetValues
41
41
  */
42
- bool LocationSet::addOffsetValue(const Value* offsetVal)
42
+ bool LocationSet::addOffsetValue(const Value* offsetVal, const Type* type)
43
43
  {
44
- for(const Value* val : offsetValues){
45
- if(val==offsetVal)
46
- return false;
47
- }
48
- offsetValues.push_back(offsetVal);
44
+ offsetValues.push_back(std::make_pair(offsetVal,type));
49
45
  return true;
50
46
  }
51
47
 
52
48
  /// Return TRUE if all offset values are constants
53
49
  bool LocationSet::isConstantOffset() const
54
50
  {
55
- for(const Value* val : offsetValues){
56
- if(SVFUtil::isa<ConstantInt>(val) == false)
51
+ for(auto it : offsetValues){
52
+ if(SVFUtil::isa<ConstantInt>(it.first) == false)
57
53
  return false;
58
54
  }
59
55
  return true;
60
56
  }
61
57
 
58
+ /// Return accmuated constant offset
59
+ /// offsetValues: [(v1,t1), (v2,t2), (v3,t3)]
60
+ /// v1*sz(t2) + v2*sz(t3) + v3
61
+ s64_t LocationSet::accumulateConstantOffset() const{
62
+
63
+ return 0;
64
+ }
62
65
  /*!
63
66
  * Compute all possible locations according to offset and number-stride pairs.
64
67
  */
@@ -69,6 +72,43 @@ NodeBS LocationSet::computeAllLocations() const
69
72
  return result;
70
73
  }
71
74
 
75
+ LocationSet LocationSet::operator+ (const LocationSet& rhs) const
76
+ {
77
+ LocationSet ls(rhs);
78
+ ls.fldIdx += accumulateConstantFieldIdx();
79
+ OffsetValueVec::const_iterator it = getOffsetValueVec().begin();
80
+ OffsetValueVec::const_iterator eit = getOffsetValueVec().end();
81
+ for (; it != eit; ++it)
82
+ ls.addOffsetValue(it->first, it->second);
83
+
84
+ return ls;
85
+ }
86
+
87
+
88
+ bool LocationSet::operator< (const LocationSet& rhs) const
89
+ {
90
+ if (fldIdx != rhs.fldIdx)
91
+ return (fldIdx < rhs.fldIdx);
92
+ else
93
+ {
94
+ const OffsetValueVec& pairVec = getOffsetValueVec();
95
+ const OffsetValueVec& rhsPairVec = rhs.getOffsetValueVec();
96
+ if (pairVec.size() != rhsPairVec.size())
97
+ return (pairVec.size() < rhsPairVec.size());
98
+ else
99
+ {
100
+ OffsetValueVec::const_iterator it = pairVec.begin();
101
+ OffsetValueVec::const_iterator rhsIt = rhsPairVec.begin();
102
+ for (; it != pairVec.end() && rhsIt != rhsPairVec.end(); ++it, ++rhsIt)
103
+ {
104
+ return (*it) < (*rhsIt);
105
+ }
106
+
107
+ return false;
108
+ }
109
+ }
110
+ }
111
+
72
112
  SVF::LocationSet::LSRelation LocationSet::checkRelation(const LocationSet& LHS, const LocationSet& RHS)
73
113
  {
74
114
  NodeBS lhsLocations = LHS.computeAllLocations();
@@ -103,7 +143,7 @@ std::string LocationSet::dump() const
103
143
  OffsetValueVec::const_iterator eit = vec.end();
104
144
  for (; it != eit; ++it)
105
145
  {
106
- rawstr << " (" << value2String(*it) << ")";
146
+ rawstr << " (value: " << value2String(it->first) << " type: " << it->second << ")";
107
147
  }
108
148
  rawstr << " }\n";
109
149
  return rawstr.str();
@@ -67,7 +67,7 @@ SVFIR* PAGBuilderFromFile::build()
67
67
  {
68
68
  getline(myfile, line);
69
69
 
70
- Size_t token_count = 0;
70
+ u32_t token_count = 0;
71
71
  string tmps;
72
72
  istringstream ss(line);
73
73
  while (ss.good())
@@ -103,7 +103,7 @@ SVFIR* PAGBuilderFromFile::build()
103
103
  {
104
104
  NodeID nodeSrc;
105
105
  NodeID nodeDst;
106
- Size_t offsetOrCSId;
106
+ s64_t offsetOrCSId;
107
107
  string edge;
108
108
  istringstream ss(line);
109
109
  ss >> nodeSrc;
@@ -144,7 +144,7 @@ SVFIR* PAGBuilderFromFile::build()
144
144
  * Add SVFIR edge according to a file format
145
145
  */
146
146
  void PAGBuilderFromFile::addEdge(NodeID srcID, NodeID dstID,
147
- Size_t offsetOrCSId, std::string edge)
147
+ s64_t offsetOrCSId, std::string edge)
148
148
  {
149
149
 
150
150
  //check whether these two nodes available
@@ -154,7 +154,7 @@ void BVDataPTAImpl::writeToFile(const string& filename)
154
154
  {
155
155
  F.os() << it->first << " ";
156
156
  F.os() << pag->getBaseObjVar(it->first) << " ";
157
- F.os() << gepObjPN->getFieldOffset() << "\n";
157
+ F.os() << gepObjPN->getConstantFieldIdx() << "\n";
158
158
  }
159
159
  }
160
160
 
@@ -312,7 +312,7 @@ GepStmt* SVFIR::addGepStmt(NodeID src, NodeID dst, const LocationSet& ls, bool c
312
312
  if (!constGep || node->hasIncomingVariantGepEdge())
313
313
  {
314
314
  /// Since the offset from base to src is variant,
315
- /// the new gep edge being created is also a VariantGepStmt edge.
315
+ /// the new gep edge being created is also a Variant GepStmt edge.
316
316
  return addVariantGepStmt(src, dst, ls);
317
317
  }
318
318
  else
@@ -324,16 +324,16 @@ GepStmt* SVFIR::addGepStmt(NodeID src, NodeID dst, const LocationSet& ls, bool c
324
324
  /*!
325
325
  * Add normal (Gep) edge
326
326
  */
327
- NormalGepStmt* SVFIR::addNormalGepStmt(NodeID src, NodeID dst, const LocationSet& ls)
327
+ GepStmt* SVFIR::addNormalGepStmt(NodeID src, NodeID dst, const LocationSet& ls)
328
328
  {
329
329
  const LocationSet& baseLS = getLocationSetFromBaseNode(src);
330
330
  SVFVar* baseNode = getGNode(getBaseValVar(src));
331
331
  SVFVar* dstNode = getGNode(dst);
332
- if(SVFStmt* edge = hasNonlabeledEdge(baseNode, dstNode, SVFStmt::NormalGep))
333
- return SVFUtil::cast<NormalGepStmt>(edge);
332
+ if(SVFStmt* edge = hasNonlabeledEdge(baseNode, dstNode, SVFStmt::Gep))
333
+ return SVFUtil::cast<GepStmt>(edge);
334
334
  else
335
335
  {
336
- NormalGepStmt* gepPE = new NormalGepStmt(baseNode, dstNode, baseLS+ls);
336
+ GepStmt* gepPE = new GepStmt(baseNode, dstNode, baseLS+ls);
337
337
  addToStmt2TypeMap(gepPE);
338
338
  addEdge(baseNode, dstNode, gepPE);
339
339
  return gepPE;
@@ -344,16 +344,16 @@ NormalGepStmt* SVFIR::addNormalGepStmt(NodeID src, NodeID dst, const LocationSet
344
344
  * Add variant(Gep) edge
345
345
  * Find the base node id of src and connect base node to dst node
346
346
  */
347
- VariantGepStmt* SVFIR::addVariantGepStmt(NodeID src, NodeID dst, const LocationSet& ls)
347
+ GepStmt* SVFIR::addVariantGepStmt(NodeID src, NodeID dst, const LocationSet& ls)
348
348
  {
349
349
  const LocationSet& baseLS = getLocationSetFromBaseNode(src);
350
350
  SVFVar* baseNode = getGNode(getBaseValVar(src));
351
351
  SVFVar* dstNode = getGNode(dst);
352
- if(SVFStmt* edge = hasNonlabeledEdge(baseNode, dstNode, SVFStmt::VariantGep))
353
- return SVFUtil::cast<VariantGepStmt>(edge);
352
+ if(SVFStmt* edge = hasNonlabeledEdge(baseNode, dstNode, SVFStmt::Gep))
353
+ return SVFUtil::cast<GepStmt>(edge);
354
354
  else
355
355
  {
356
- VariantGepStmt* gepPE = new VariantGepStmt(baseNode, dstNode,baseLS+ls);
356
+ GepStmt* gepPE = new GepStmt(baseNode, dstNode,baseLS+ls, true);
357
357
  addToStmt2TypeMap(gepPE);
358
358
  addEdge(baseNode, dstNode, gepPE);
359
359
  return gepPE;
@@ -500,18 +500,13 @@ NodeBS SVFIR::getFieldsAfterCollapse(NodeID id)
500
500
  NodeID SVFIR::getBaseValVar(NodeID nodeId)
501
501
  {
502
502
  SVFVar* node = getGNode(nodeId);
503
- if (node->hasIncomingEdges(SVFStmt::NormalGep) || node->hasIncomingEdges(SVFStmt::VariantGep))
503
+ if (node->hasIncomingEdges(SVFStmt::Gep))
504
504
  {
505
- SVFStmt::SVFStmtSetTy& ngeps = node->getIncomingEdges(SVFStmt::NormalGep);
506
- SVFStmt::SVFStmtSetTy& vgeps = node->getIncomingEdges(SVFStmt::VariantGep);
505
+ SVFStmt::SVFStmtSetTy& geps = node->getIncomingEdges(SVFStmt::Gep);
507
506
 
508
- assert(((ngeps.size()+vgeps.size())==1) && "one node can only be connected by at most one gep edge!");
507
+ assert((geps.size()==1) && "one node can only be connected by at most one gep edge!");
509
508
 
510
- SVFVar::iterator it;
511
- if(!ngeps.empty())
512
- it = ngeps.begin();
513
- else
514
- it = vgeps.begin();
509
+ SVFVar::iterator it = geps.begin();
515
510
 
516
511
  assert(SVFUtil::isa<GepStmt>(*it) && "not a gep edge??");
517
512
  return (*it)->getSrcID();
@@ -524,22 +519,23 @@ NodeID SVFIR::getBaseValVar(NodeID nodeId)
524
519
  * Get a base SVFVar given a pointer
525
520
  * Return the source node of its connected normal gep edge
526
521
  * Otherwise return the node id itself
527
- * Size_t offset : gep offset
522
+ * s64_t offset : gep offset
528
523
  */
529
524
  LocationSet SVFIR::getLocationSetFromBaseNode(NodeID nodeId)
530
525
  {
531
526
  SVFVar* node = getGNode(nodeId);
532
- SVFStmt::SVFStmtSetTy& geps = node->getIncomingEdges(SVFStmt::NormalGep);
527
+ SVFStmt::SVFStmtSetTy& geps = node->getIncomingEdges(SVFStmt::Gep);
533
528
  /// if this node is already a base node
534
529
  if(geps.empty())
535
530
  return LocationSet(0);
536
531
 
537
532
  assert(geps.size()==1 && "one node can only be connected by at most one gep edge!");
538
533
  SVFVar::iterator it = geps.begin();
539
- const SVFStmt* edge = *it;
540
- assert(SVFUtil::isa<NormalGepStmt>(edge) && "not a get edge??");
541
- const NormalGepStmt* gepEdge = SVFUtil::cast<NormalGepStmt>(edge);
542
- return gepEdge->getLocationSet();
534
+ const GepStmt* gepEdge = SVFUtil::cast<GepStmt>(*it);
535
+ if(gepEdge->isVariantFieldGep())
536
+ return LocationSet(0);
537
+ else
538
+ return gepEdge->getLocationSet();
543
539
  }
544
540
 
545
541
  /*!
@@ -606,21 +602,17 @@ void SVFIR::print()
606
602
  << (*iter)->getDstID() << "\n";
607
603
  }
608
604
 
609
- SVFStmt::SVFStmtSetTy& ngeps = pag->getSVFStmtSet(SVFStmt::NormalGep);
605
+ SVFStmt::SVFStmtSetTy& ngeps = pag->getSVFStmtSet(SVFStmt::Gep);
610
606
  for (SVFStmt::SVFStmtSetTy::iterator iter = ngeps.begin(), eiter =
611
607
  ngeps.end(); iter != eiter; ++iter)
612
608
  {
613
- NormalGepStmt* gep = SVFUtil::cast<NormalGepStmt>(*iter);
614
- outs() << gep->getRHSVarID() << " -- NormalGep (" << gep->getFieldOffset()
615
- << ") --> " << gep->getLHSVarID() << "\n";
616
- }
617
-
618
- SVFStmt::SVFStmtSetTy& vgeps = pag->getSVFStmtSet(SVFStmt::VariantGep);
619
- for (SVFStmt::SVFStmtSetTy::iterator iter = vgeps.begin(), eiter =
620
- vgeps.end(); iter != eiter; ++iter)
621
- {
622
- outs() << (*iter)->getSrcID() << " -- VariantGep --> "
609
+ GepStmt* gep = SVFUtil::cast<GepStmt>(*iter);
610
+ if(gep->isVariantFieldGep())
611
+ outs() << (*iter)->getSrcID() << " -- VariantGep --> "
623
612
  << (*iter)->getDstID() << "\n";
613
+ else
614
+ outs() << gep->getRHSVarID() << " -- Gep (" << gep->getConstantFieldIdx()
615
+ << ") --> " << gep->getLHSVarID() << "\n";
624
616
  }
625
617
 
626
618
  SVFStmt::SVFStmtSetTy& loads = pag->getSVFStmtSet(SVFStmt::Load);
@@ -186,28 +186,6 @@ const std::string GepStmt::toString() const{
186
186
  return rawstr.str();
187
187
  }
188
188
 
189
- const std::string NormalGepStmt::toString() const{
190
- std::string str;
191
- raw_string_ostream rawstr(str);
192
- rawstr << "NormalGepStmt: [Var" << getLHSVarID() << " <-- Var" << getRHSVarID() << "]\t";
193
- if (Options::ShowSVFIRValue) {
194
- rawstr << "\n";
195
- rawstr << value2String(getValue());
196
- }
197
- return rawstr.str();
198
- }
199
-
200
- const std::string VariantGepStmt::toString() const{
201
- std::string str;
202
- raw_string_ostream rawstr(str);
203
- rawstr << "VariantGepStmt: [Var" << getLHSVarID() << " <-- Var" << getRHSVarID() << "]\t";
204
- if (Options::ShowSVFIRValue) {
205
- rawstr << "\n";
206
- rawstr << value2String(getValue());
207
- }
208
- return rawstr.str();
209
- }
210
-
211
189
  const std::string CallPE::toString() const{
212
190
  std::string str;
213
191
  raw_string_ostream rawstr(str);
@@ -133,7 +133,7 @@ const std::string ObjVar::toString() const {
133
133
  const std::string GepValVar::toString() const {
134
134
  std::string str;
135
135
  raw_string_ostream rawstr(str);
136
- rawstr << "GepValVar ID: " << getId() << " with offset_" + llvm::utostr(getFieldOffset());
136
+ rawstr << "GepValVar ID: " << getId() << " with offset_" + llvm::utostr(getConstantFieldIdx());
137
137
  if (Options::ShowSVFIRValue) {
138
138
  rawstr << "\n";
139
139
  rawstr << value2String(value);
@@ -135,7 +135,7 @@ void SymbolTableInfo::collectStructInfo(const StructType *sty)
135
135
  sty->element_end(); it != ie; ++it, ++field_idx)
136
136
  {
137
137
  const Type *et = *it;
138
- /// offset with uint_32 (Size_t) is large enough and will not cause overflow
138
+ /// offset with int_32 (s64_t) is large enough and will not cause overflow
139
139
  stinfo->addFldWithType(nf, et);
140
140
 
141
141
  if (SVFUtil::isa<StructType>(et) || SVFUtil::isa<ArrayType>(et))
@@ -195,7 +195,7 @@ LocationSet SymbolTableInfo::getModulusOffset(const MemObj* obj, const LocationS
195
195
  /// of current struct. Make the offset positive so we can still get a node within current
196
196
  /// struct to represent this obj.
197
197
 
198
- Size_t offset = ls.accumulateConstantFieldIdx();
198
+ s64_t offset = ls.accumulateConstantFieldIdx();
199
199
  if(offset < 0)
200
200
  {
201
201
  writeWrnMsg("try to create a gep node with negative offset.");
@@ -582,7 +582,7 @@ bool ObjTypeInfo::isNonPtrFieldObj(const LocationSet& ls)
582
582
  // as we simply return new offset by mod operation without checking its
583
583
  // correctness in LocSymTableInfo::getModulusOffset(). So the following
584
584
  // assertion may fail. Try to refine the new memory model.
585
- //assert(ls.getFieldOffset() == 0 && "cannot get a field from a non-struct type");
585
+ //assert(ls.getConstantFieldIdx() == 0 && "cannot get a field from a non-struct type");
586
586
  return (hasPtrObj() == false);
587
587
  }
588
588
  }
@@ -640,7 +640,7 @@ void MemObj::destroy()
640
640
  }
641
641
 
642
642
  /// Get max field offset limit
643
- Size_t MemObj::getMaxFieldOffsetLimit() const
643
+ u32_t MemObj::getMaxFieldOffsetLimit() const
644
644
  {
645
645
  return typeInfo->getMaxFieldOffsetLimit();
646
646
  }
@@ -55,7 +55,7 @@ const string structName = "struct.";
55
55
 
56
56
  static bool isOperOverload(const string name)
57
57
  {
58
- s32_t leftnum = 0, rightnum = 0;
58
+ s64_t leftnum = 0, rightnum = 0;
59
59
  string subname = name;
60
60
  size_t leftpos, rightpos;
61
61
  leftpos = subname.find("<");
@@ -88,7 +88,7 @@ static string getBeforeParenthesis(const string &name)
88
88
  size_t lastRightParen = name.rfind(")");
89
89
  assert(lastRightParen > 0);
90
90
 
91
- s32_t paren_num = 1, pos;
91
+ s64_t paren_num = 1, pos;
92
92
  for (pos = lastRightParen - 1; pos >= 0; pos--)
93
93
  {
94
94
  if (name[pos] == ')')
@@ -107,7 +107,7 @@ string cppUtil::getBeforeBrackets(const string &name)
107
107
  {
108
108
  return name;
109
109
  }
110
- s32_t bracket_num = 1, pos;
110
+ s64_t bracket_num = 1, pos;
111
111
  for (pos = name.size() - 2; pos >= 0; pos--)
112
112
  {
113
113
  if (name[pos] == '>')
@@ -183,7 +183,7 @@ struct cppUtil::DemangledName cppUtil::demangle(const string &name)
183
183
  struct cppUtil::DemangledName dname;
184
184
  dname.isThunkFunc = false;
185
185
 
186
- s32_t status;
186
+ s64_t status;
187
187
  char *realname = abi::__cxa_demangle(name.c_str(), 0, 0, &status);
188
188
  if (realname == nullptr)
189
189
  {
@@ -228,7 +228,7 @@ bool cppUtil::isLoadVtblInst(const LoadInst *loadInst)
228
228
  const Value *loadSrc = loadInst->getPointerOperand();
229
229
  const Type *valTy = loadSrc->getType();
230
230
  const Type *elemTy = valTy;
231
- for (s32_t i = 0; i < 3; ++i)
231
+ for (s64_t i = 0; i < 3; ++i)
232
232
  {
233
233
  if (const PointerType *ptrTy = SVFUtil::dyn_cast<PointerType>(elemTy))
234
234
  elemTy = ptrTy->getElementType();
@@ -435,7 +435,7 @@ string cppUtil::getClassNameFromVtblObj(const Value *value)
435
435
  string className = "";
436
436
 
437
437
  string vtblName = value->getName().str();
438
- s32_t status;
438
+ s64_t status;
439
439
  char *realname = abi::__cxa_demangle(vtblName.c_str(), 0, 0, &status);
440
440
  if (realname != nullptr)
441
441
  {
@@ -103,7 +103,7 @@ void DCHGraph::handleDIDerivedType(const DIDerivedType *derivedType)
103
103
  assert(SVFUtil::isa<DIType>(derivedType->getScope()) && "inheriting from non-type?");
104
104
  DCHEdge *edge = addEdge(SVFUtil::dyn_cast<DIType>(derivedType->getScope()),
105
105
  derivedType->getBaseType(), DCHEdge::INHERITANCE);
106
- // If the offset does not exist (for primary base), getFieldOffset should return 0.
106
+ // If the offset does not exist (for primary base), getConstantFieldIdx should return 0.
107
107
  edge->setOffset(derivedType->getOffsetInBits());
108
108
  break;
109
109
  }
@@ -50,10 +50,10 @@ void ICFGPrinter::printICFGToJson(const std::string& filename)
50
50
  edge_obj["Edge Type"] = getPAGEdgeKindValue(edge->getEdgeKind());
51
51
  edge_obj["srcValueName"] = edge->getSrcNode()->getValueName();
52
52
  edge_obj["dstValueName"] = edge->getDstNode()->getValueName();
53
- if(edge->getEdgeKind()==PAGEdge::NormalGep)
53
+ if(edge->getEdgeKind()==SVFStmt::Gep)
54
54
  {
55
- const NormalGepStmt* gepEdge = SVFUtil::cast<NormalGepStmt>(edge);
56
- edge_obj["offset"] = gepEdge->getFieldOffset();
55
+ const GepStmt* gepEdge = SVFUtil::cast<GepStmt>(edge);
56
+ edge_obj["offset"] = gepEdge->getConstantFieldIdx();
57
57
  }
58
58
  llvm::json::Value edge_value = llvm::json::Object{edge_obj};
59
59
  PAGEdge_array.push_back(edge_value);
@@ -169,31 +169,31 @@ std::string ICFGPrinter::getPAGNodeKindValue(int kind)
169
169
  {
170
170
  switch (kind)
171
171
  {
172
- case (PAGNode::ValNode):
172
+ case (SVFVar::ValNode):
173
173
  return "ValNode";
174
174
  break;
175
- case PAGNode::ObjNode:
175
+ case SVFVar::ObjNode:
176
176
  return "ObjNode";
177
177
  break;
178
- case PAGNode::RetNode:
178
+ case SVFVar::RetNode:
179
179
  return "RetNode";
180
180
  break;
181
- case PAGNode::VarargNode:
181
+ case SVFVar::VarargNode:
182
182
  return "VarargNode";
183
183
  break;
184
- case PAGNode::GepValNode:
184
+ case SVFVar::GepValNode:
185
185
  return "GepValNode";
186
186
  break;
187
- case PAGNode::GepObjNode:
187
+ case SVFVar::GepObjNode:
188
188
  return "GepObjNode";
189
189
  break;
190
- case PAGNode::FIObjNode:
190
+ case SVFVar::FIObjNode:
191
191
  return "FIObjNode";
192
192
  break;
193
- case PAGNode::DummyValNode:
193
+ case SVFVar::DummyValNode:
194
194
  return "DummyValNode";
195
195
  break;
196
- case PAGNode::DummyObjNode:
196
+ case SVFVar::DummyObjNode:
197
197
  return "DummyObjNode";
198
198
  break;
199
199
  }
@@ -204,43 +204,40 @@ std::string ICFGPrinter::getPAGEdgeKindValue(int kind)
204
204
  {
205
205
  switch(kind)
206
206
  {
207
- case (PAGEdge::Addr):
207
+ case (SVFStmt::Addr):
208
208
  return "Addr";
209
209
  break;
210
- case (PAGEdge::Copy):
210
+ case (SVFStmt::Copy):
211
211
  return "Copy";
212
212
  break;
213
- case (PAGEdge::Store):
213
+ case (SVFStmt::Store):
214
214
  return "Store";
215
215
  break;
216
- case (PAGEdge::Load):
216
+ case (SVFStmt::Load):
217
217
  return "Load";
218
218
  break;
219
- case (PAGEdge::Call):
219
+ case (SVFStmt::Call):
220
220
  return "Call";
221
221
  break;
222
- case (PAGEdge::Ret):
222
+ case (SVFStmt::Ret):
223
223
  return "Ret";
224
224
  break;
225
- case (PAGEdge::NormalGep):
225
+ case (SVFStmt::Gep):
226
226
  return "NormalGep";
227
227
  break;
228
- case (PAGEdge::VariantGep):
229
- return "VariantGep";
230
- break;
231
- case (PAGEdge::ThreadFork):
228
+ case (SVFStmt::ThreadFork):
232
229
  return "ThreadFork";
233
230
  break;
234
- case (PAGEdge::ThreadJoin):
231
+ case (SVFStmt::ThreadJoin):
235
232
  return "ThreadJoin";
236
233
  break;
237
- case (PAGEdge::Cmp):
234
+ case (SVFStmt::Cmp):
238
235
  return "Cmp";
239
236
  break;
240
- case (PAGEdge::BinaryOp):
237
+ case (SVFStmt::BinaryOp):
241
238
  return "BinaryOp";
242
239
  break;
243
- case (PAGEdge::UnaryOp):
240
+ case (SVFStmt::UnaryOp):
244
241
  return "UnaryOp";
245
242
  break;
246
243
  }
@@ -370,7 +370,7 @@ void SVFUtil::processArguments(int argc, char **argv, int &arg_num, char **arg_v
370
370
  std::vector<std::string> &moduleNameVec)
371
371
  {
372
372
  bool first_ir_file = true;
373
- for (s32_t i = 0; i < argc; ++i)
373
+ for (s64_t i = 0; i < argc; ++i)
374
374
  {
375
375
  std::string argument(argv[i]);
376
376
  if (SVFUtil::isIRFile(argument))
@@ -210,11 +210,12 @@ void SVFIRBuilder::initialiseNodes()
210
210
  }
211
211
 
212
212
  /*
213
+ https://github.com/SVF-tools/SVF/issues/524
213
214
  Handling single value types, for constant index, including pointer, integer, etc
214
215
  e.g. field_idx = getelementptr i8, %i8* %p, i64 -4
215
216
  We can obtain the field index by inferring the byteoffset if %p is casted from a pointer to a struct
216
217
  */
217
- u32_t SVFIRBuilder::inferFieldIdxFromByteOffset(const llvm::GEPOperator* gepOp, DataLayout *dl, LocationSet& ls, Size_t idx){
218
+ u32_t SVFIRBuilder::inferFieldIdxFromByteOffset(const llvm::GEPOperator* gepOp, DataLayout *dl, LocationSet& ls, s64_t idx){
218
219
  auto srcptr = gepOp->getOperand(0);
219
220
  llvm::BitCastOperator* castop1 = SVFUtil::dyn_cast<llvm::BitCastOperator>(srcptr);
220
221
  Type* sttype = nullptr;
@@ -262,23 +263,23 @@ bool SVFIRBuilder::computeGepOffset(const User *V, LocationSet& ls)
262
263
  llvm::APInt byteOffset(dataLayout->getIndexSizeInBits(gepOp->getPointerAddressSpace()),0,true);
263
264
  if(gepOp && dataLayout && gepOp->accumulateConstantOffset(*dataLayout,byteOffset))
264
265
  {
265
- Size_t bo = byteOffset.getSExtValue();
266
+ s64_t bo = byteOffset.getSExtValue();
266
267
  }
267
268
 
268
269
  for (bridge_gep_iterator gi = bridge_gep_begin(*V), ge = bridge_gep_end(*V);
269
270
  gi != ge; ++gi)
270
271
  {
271
- ls.addOffsetValue(gi.getOperand());
272
-
272
+ ls.addOffsetValue(gi.getOperand(), *gi);
273
+
274
+ //The int value of the current index operand
275
+ ConstantInt *op = SVFUtil::dyn_cast<ConstantInt>(gi.getOperand());
276
+
273
277
  // Handling array types, skipe array handling here
274
278
  // We treat whole array as one, but we can distinguish different field of an array of struct
275
279
  // e.g. s[1].f1 is differet from s[0].f2
276
280
  if(SVFUtil::isa<ArrayType>(*gi))
277
281
  continue;
278
282
 
279
- //The int value of the current index operand
280
- ConstantInt *op = SVFUtil::dyn_cast<ConstantInt>(gi.getOperand());
281
-
282
283
  // Handling struct here
283
284
  if (const StructType *ST = SVFUtil::dyn_cast<StructType>(*gi) )
284
285
  {
@@ -289,7 +290,7 @@ bool SVFIRBuilder::computeGepOffset(const User *V, LocationSet& ls)
289
290
  }
290
291
  assert(op && "non-const index in an operand in GEP");
291
292
  //The actual index
292
- Size_t idx = op->getSExtValue();
293
+ s64_t idx = op->getSExtValue();
293
294
  const vector<u32_t> &so = SymbolTableInfo::SymbolInfo()->getFlattenedFieldIdxVec(ST);
294
295
  if ((unsigned)idx >= so.size())
295
296
  {
@@ -308,7 +309,7 @@ bool SVFIRBuilder::computeGepOffset(const User *V, LocationSet& ls)
308
309
  return false;
309
310
  }
310
311
  // The actual index
311
- Size_t idx = op->getSExtValue();
312
+ s64_t idx = op->getSExtValue();
312
313
 
313
314
  // infer the field offset based on the byte offset
314
315
  u32_t fieldOffset = inferFieldIdxFromByteOffset(gepOp, dataLayout, ls, idx);
@@ -623,7 +624,7 @@ void SVFIRBuilder::visitPHINode(PHINode &inst)
623
624
 
624
625
  NodeID dst = getValueNode(&inst);
625
626
 
626
- for (Size_t i = 0; i < inst.getNumIncomingValues(); ++i)
627
+ for (u32_t i = 0; i < inst.getNumIncomingValues(); ++i)
627
628
  {
628
629
  const Value* val = inst.getIncomingValue(i);
629
630
  const Instruction* incomingInst = SVFUtil::dyn_cast<Instruction>(val);
@@ -1172,7 +1173,7 @@ void SVFIRBuilder::handleExtCall(CallSite cs, const SVFFunction *callee)
1172
1173
  if(!SVFUtil::isa<PointerType>(inst->getType()))
1173
1174
  break;
1174
1175
  NodeID dstNode = getValueNode(inst);
1175
- Size_t arg_pos;
1176
+ u32_t arg_pos;
1176
1177
  switch(tF)
1177
1178
  {
1178
1179
  case ExtAPI::EFT_L_A1:
@@ -1338,7 +1339,7 @@ void SVFIRBuilder::handleExtCall(CallSite cs, const SVFFunction *callee)
1338
1339
  // We have vArg3 points to the entry of _Rb_tree_node_base { color; parent; left; right; }.
1339
1340
  // Now we calculate the offset from base to vArg3
1340
1341
  NodeID vnArg3 = pag->getValueNode(vArg3);
1341
- Size_t offset = pag->getLocationSetFromBaseNode(vnArg3).accumulateConstantFieldIdx();
1342
+ s64_t offset = pag->getLocationSetFromBaseNode(vnArg3).accumulateConstantFieldIdx();
1342
1343
 
1343
1344
  // We get all flattened fields of base
1344
1345
  vector<LocationSet> fields;
@@ -1362,7 +1363,7 @@ void SVFIRBuilder::handleExtCall(CallSite cs, const SVFFunction *callee)
1362
1363
 
1363
1364
  Value *vArg = cs.getArgument(0);
1364
1365
  NodeID vnArg = pag->getValueNode(vArg);
1365
- Size_t offset = pag->getLocationSetFromBaseNode(vnArg).accumulateConstantFieldIdx();
1366
+ s64_t offset = pag->getLocationSetFromBaseNode(vnArg).accumulateConstantFieldIdx();
1366
1367
 
1367
1368
  // We get all fields
1368
1369
  vector<LocationSet> fields;
@@ -549,7 +549,7 @@ void SymbolTableBuilder::analyzeGlobalStackObjType(ObjTypeInfo* typeinfo, const
549
549
  */
550
550
  void SymbolTableBuilder::initTypeInfo(ObjTypeInfo* typeinfo, const Value* val){
551
551
 
552
- Size_t objSize = 1;
552
+ s64_t objSize = 1;
553
553
  // Global variable
554
554
  if (SVFUtil::isa<Function>(val))
555
555
  {
@@ -182,7 +182,7 @@ void CondManager::printModel()
182
182
  z3::model m = sol.get_model();
183
183
  for (u32_t i = 0; i < m.size(); i++)
184
184
  {
185
- z3::func_decl v = m[static_cast<s32_t>(i)];
185
+ z3::func_decl v = m[static_cast<s64_t>(i)];
186
186
  std::cout << v.name() << " = " << m.get_const_interp(v) << "\n";
187
187
  }
188
188
  }