svf-tools 1.0.587 → 1.0.589

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 (592) hide show
  1. package/SVF-doxygen/html/html/AbstractPointsToDS_8h_source.html +1 -1
  2. package/SVF-doxygen/html/html/AndersenPWC_8h_source.html +6 -6
  3. package/SVF-doxygen/html/html/AndersenSCD_8cpp_source.html +7 -7
  4. package/SVF-doxygen/html/html/AndersenSFR_8cpp_source.html +8 -8
  5. package/SVF-doxygen/html/html/AndersenStat_8cpp_source.html +20 -20
  6. package/SVF-doxygen/html/html/AndersenWaveDiff_8cpp_source.html +2 -2
  7. package/SVF-doxygen/html/html/Andersen_8cpp_source.html +25 -25
  8. package/SVF-doxygen/html/html/Andersen_8h_source.html +17 -17
  9. package/SVF-doxygen/html/html/Annotator_8h_source.html +3 -3
  10. package/SVF-doxygen/html/html/BasicTypes_8cpp_source.html +5 -5
  11. package/SVF-doxygen/html/html/BreakConstantExpr_8cpp.html +2 -2
  12. package/SVF-doxygen/html/html/BreakConstantExpr_8cpp_source.html +5 -5
  13. package/SVF-doxygen/html/html/BreakConstantExpr_8h_source.html +4 -4
  14. package/SVF-doxygen/html/html/CFGNormalizer_8cpp_source.html +5 -5
  15. package/SVF-doxygen/html/html/CFGNormalizer_8h_source.html +3 -3
  16. package/SVF-doxygen/html/html/CFLAlias_8cpp_source.html +12 -12
  17. package/SVF-doxygen/html/html/CFLAlias_8h_source.html +11 -11
  18. package/SVF-doxygen/html/html/CFLBase_8cpp_source.html +2 -2
  19. package/SVF-doxygen/html/html/CFLGrammar_8cpp_source.html +4 -4
  20. package/SVF-doxygen/html/html/CFLGrammar_8h_source.html +7 -7
  21. package/SVF-doxygen/html/html/CFLGraphBuilder_8cpp_source.html +7 -7
  22. package/SVF-doxygen/html/html/CFLGraphBuilder_8h_source.html +6 -6
  23. package/SVF-doxygen/html/html/CFLGraph_8cpp_source.html +2 -2
  24. package/SVF-doxygen/html/html/CFLGraph_8h_source.html +3 -3
  25. package/SVF-doxygen/html/html/CFLSolver_8cpp_source.html +2 -2
  26. package/SVF-doxygen/html/html/CFLStat_8cpp_source.html +1 -1
  27. package/SVF-doxygen/html/html/CHGBuilder_8cpp_source.html +27 -27
  28. package/SVF-doxygen/html/html/CHGBuilder_8h_source.html +5 -5
  29. package/SVF-doxygen/html/html/CHG_8cpp.html +3 -3
  30. package/SVF-doxygen/html/html/CHG_8cpp_source.html +13 -13
  31. package/SVF-doxygen/html/html/CHG_8h_source.html +8 -8
  32. package/SVF-doxygen/html/html/CPPUtil_8cpp.html +2 -2
  33. package/SVF-doxygen/html/html/CPPUtil_8cpp_source.html +26 -26
  34. package/SVF-doxygen/html/html/CPPUtil_8h_source.html +4 -4
  35. package/SVF-doxygen/html/html/CSC_8cpp_source.html +7 -7
  36. package/SVF-doxygen/html/html/CSC_8h_source.html +4 -4
  37. package/SVF-doxygen/html/html/CallGraphBuilder_8cpp_source.html +6 -6
  38. package/SVF-doxygen/html/html/Casting_8h.html +1 -0
  39. package/SVF-doxygen/html/html/Casting_8h_source.html +42 -42
  40. package/SVF-doxygen/html/html/ConditionalPT_8h_source.html +8 -8
  41. package/SVF-doxygen/html/html/ConsGEdge_8h_source.html +2 -2
  42. package/SVF-doxygen/html/html/ConsGNode_8h_source.html +21 -21
  43. package/SVF-doxygen/html/html/ConsG_8cpp_source.html +38 -38
  44. package/SVF-doxygen/html/html/ConsG_8h_source.html +28 -28
  45. package/SVF-doxygen/html/html/ContextDDA_8cpp_source.html +25 -23
  46. package/SVF-doxygen/html/html/ContextDDA_8h_source.html +11 -11
  47. package/SVF-doxygen/html/html/CoreBitVector_8cpp_source.html +1 -1
  48. package/SVF-doxygen/html/html/CoreBitVector_8h_source.html +2 -2
  49. package/SVF-doxygen/html/html/CxtStmt_8h_source.html +5 -5
  50. package/SVF-doxygen/html/html/DCHG_8cpp_source.html +36 -36
  51. package/SVF-doxygen/html/html/DCHG_8h_source.html +15 -15
  52. package/SVF-doxygen/html/html/DDAClient_8cpp_source.html +13 -13
  53. package/SVF-doxygen/html/html/DDAClient_8h_source.html +4 -4
  54. package/SVF-doxygen/html/html/DDAPass_8cpp_source.html +12 -12
  55. package/SVF-doxygen/html/html/DDAPass_8h_source.html +4 -4
  56. package/SVF-doxygen/html/html/DDAStat_8cpp_source.html +8 -8
  57. package/SVF-doxygen/html/html/DDAStat_8h_source.html +3 -3
  58. package/SVF-doxygen/html/html/DDAVFSolver_8h_source.html +16 -16
  59. package/SVF-doxygen/html/html/DPItem_8h_source.html +5 -5
  60. package/SVF-doxygen/html/html/DataFlowUtil_8cpp_source.html +7 -7
  61. package/SVF-doxygen/html/html/DataFlowUtil_8h_source.html +11 -11
  62. package/SVF-doxygen/html/html/DoubleFreeChecker_8cpp_source.html +2 -2
  63. package/SVF-doxygen/html/html/DoubleFreeChecker_8h_source.html +1 -1
  64. package/SVF-doxygen/html/html/ExeState_8cpp_source.html +6 -6
  65. package/SVF-doxygen/html/html/ExeState_8h_source.html +4 -4
  66. package/SVF-doxygen/html/html/ExtAPI_8cpp.html +1 -1
  67. package/SVF-doxygen/html/html/ExtAPI_8cpp_source.html +8 -8
  68. package/SVF-doxygen/html/html/ExtAPI_8h_source.html +3 -3
  69. package/SVF-doxygen/html/html/FSMPTA_8cpp_source.html +16 -16
  70. package/SVF-doxygen/html/html/FSMPTA_8h_source.html +7 -7
  71. package/SVF-doxygen/html/html/FileChecker_8h_source.html +1 -1
  72. package/SVF-doxygen/html/html/FlowDDA_8cpp_source.html +7 -7
  73. package/SVF-doxygen/html/html/FlowDDA_8h_source.html +13 -13
  74. package/SVF-doxygen/html/html/FlowSensitiveStat_8cpp_source.html +13 -13
  75. package/SVF-doxygen/html/html/FlowSensitive_8cpp_source.html +19 -19
  76. package/SVF-doxygen/html/html/FlowSensitive_8h_source.html +8 -8
  77. package/SVF-doxygen/html/html/GEPTypeBridgeIterator_8h_source.html +3 -3
  78. package/SVF-doxygen/html/html/GenericGraph_8h_source.html +61 -61
  79. package/SVF-doxygen/html/html/GrammarBuilder_8h_source.html +1 -1
  80. package/SVF-doxygen/html/html/Graph2Json_8cpp_source.html +3 -3
  81. package/SVF-doxygen/html/html/GraphPrinter_8h_source.html +1 -1
  82. package/SVF-doxygen/html/html/ICFGBuilder_8cpp_source.html +12 -12
  83. package/SVF-doxygen/html/html/ICFGBuilder_8h_source.html +3 -3
  84. package/SVF-doxygen/html/html/ICFGEdge_8h_source.html +5 -5
  85. package/SVF-doxygen/html/html/ICFGNode_8h_source.html +5 -5
  86. package/SVF-doxygen/html/html/ICFGStat_8h_source.html +3 -3
  87. package/SVF-doxygen/html/html/ICFG_8cpp_source.html +37 -34
  88. package/SVF-doxygen/html/html/ICFG_8h_source.html +30 -30
  89. package/SVF-doxygen/html/html/IRAnnotator_8h_source.html +28 -28
  90. package/SVF-doxygen/html/html/IRGraph_8cpp_source.html +4 -4
  91. package/SVF-doxygen/html/html/IRGraph_8h_source.html +10 -10
  92. package/SVF-doxygen/html/html/LLVMLoopAnalysis_8cpp_source.html +8 -8
  93. package/SVF-doxygen/html/html/LLVMModule_8cpp_source.html +28 -28
  94. package/SVF-doxygen/html/html/LLVMModule_8h_source.html +7 -7
  95. package/SVF-doxygen/html/html/LLVMUtil_8cpp_source.html +26 -26
  96. package/SVF-doxygen/html/html/LLVMUtil_8h_source.html +18 -18
  97. package/SVF-doxygen/html/html/LeakChecker_8cpp_source.html +5 -5
  98. package/SVF-doxygen/html/html/LeakChecker_8h_source.html +3 -3
  99. package/SVF-doxygen/html/html/LocationSet_8cpp_source.html +12 -12
  100. package/SVF-doxygen/html/html/LocationSet_8h_source.html +7 -7
  101. package/SVF-doxygen/html/html/LockAnalysis_8cpp_source.html +16 -16
  102. package/SVF-doxygen/html/html/LockAnalysis_8h_source.html +11 -11
  103. package/SVF-doxygen/html/html/LockResultValidator_8cpp_source.html +15 -15
  104. package/SVF-doxygen/html/html/LockResultValidator_8h_source.html +5 -5
  105. package/SVF-doxygen/html/html/MHP_8cpp.html +3 -3
  106. package/SVF-doxygen/html/html/MHP_8cpp_source.html +35 -36
  107. package/SVF-doxygen/html/html/MHP_8h_source.html +15 -15
  108. package/SVF-doxygen/html/html/MSSAMuChi_8h_source.html +5 -5
  109. package/SVF-doxygen/html/html/MTAAnnotator_8cpp_source.html +13 -13
  110. package/SVF-doxygen/html/html/MTAAnnotator_8h_source.html +8 -8
  111. package/SVF-doxygen/html/html/MTAResultValidator_8cpp_source.html +28 -28
  112. package/SVF-doxygen/html/html/MTAResultValidator_8h_source.html +11 -11
  113. package/SVF-doxygen/html/html/MTAStat_8cpp_source.html +8 -8
  114. package/SVF-doxygen/html/html/MTAStat_8h_source.html +1 -1
  115. package/SVF-doxygen/html/html/MTA_8cpp_source.html +14 -14
  116. package/SVF-doxygen/html/html/MTA_8h_source.html +7 -7
  117. package/SVF-doxygen/html/html/MemPartition_8cpp_source.html +11 -11
  118. package/SVF-doxygen/html/html/MemPartition_8h_source.html +4 -4
  119. package/SVF-doxygen/html/html/MemRegion_8cpp_source.html +41 -41
  120. package/SVF-doxygen/html/html/MemRegion_8h_source.html +14 -14
  121. package/SVF-doxygen/html/html/MemSSA_8cpp_source.html +17 -17
  122. package/SVF-doxygen/html/html/MemSSA_8h_source.html +8 -8
  123. package/SVF-doxygen/html/html/MutablePointsToDS_8h_source.html +7 -7
  124. package/SVF-doxygen/html/html/NodeIDAllocator_8cpp_source.html +6 -6
  125. package/SVF-doxygen/html/html/NodeIDAllocator_8h_source.html +3 -3
  126. package/SVF-doxygen/html/html/PAGBuilderFromFile_8cpp_source.html +2 -2
  127. package/SVF-doxygen/html/html/PAGBuilderFromFile_8h_source.html +1 -1
  128. package/SVF-doxygen/html/html/PCG_8cpp_source.html +11 -11
  129. package/SVF-doxygen/html/html/PCG_8h_source.html +7 -7
  130. package/SVF-doxygen/html/html/PTACallGraph_8cpp_source.html +8 -8
  131. package/SVF-doxygen/html/html/PTACallGraph_8h_source.html +9 -9
  132. package/SVF-doxygen/html/html/PTAStat_8cpp_source.html +9 -9
  133. package/SVF-doxygen/html/html/PTAStat_8h_source.html +1 -1
  134. package/SVF-doxygen/html/html/PersistentPointsToCache_8h_source.html +3 -3
  135. package/SVF-doxygen/html/html/PersistentPointsToDS_8h_source.html +3 -3
  136. package/SVF-doxygen/html/html/PointerAnalysisImpl_8cpp_source.html +34 -34
  137. package/SVF-doxygen/html/html/PointerAnalysisImpl_8h_source.html +31 -31
  138. package/SVF-doxygen/html/html/PointerAnalysis_8cpp_source.html +63 -63
  139. package/SVF-doxygen/html/html/PointerAnalysis_8h_source.html +83 -84
  140. package/SVF-doxygen/html/html/PointsTo_8cpp_source.html +15 -15
  141. package/SVF-doxygen/html/html/PointsTo_8h_source.html +3 -3
  142. package/SVF-doxygen/html/html/ProgSlice_8cpp_source.html +10 -10
  143. package/SVF-doxygen/html/html/ProgSlice_8h_source.html +10 -10
  144. package/SVF-doxygen/html/html/SCC_8h_source.html +6 -6
  145. package/SVF-doxygen/html/html/SVF-FE_2BasicTypes_8h.html +5 -1
  146. package/SVF-doxygen/html/html/SVF-FE_2BasicTypes_8h_source.html +85 -85
  147. package/SVF-doxygen/html/html/SVFBasicTypes_8h.html +23 -27
  148. package/SVF-doxygen/html/html/SVFBasicTypes_8h_source.html +73 -74
  149. package/SVF-doxygen/html/html/SVFGBuilder_8cpp_source.html +5 -5
  150. package/SVF-doxygen/html/html/SVFGBuilder_8h_source.html +3 -3
  151. package/SVF-doxygen/html/html/SVFGEdge_8h_source.html +3 -3
  152. package/SVF-doxygen/html/html/SVFGNode_8h_source.html +5 -5
  153. package/SVF-doxygen/html/html/SVFGOPT_8cpp_source.html +8 -8
  154. package/SVF-doxygen/html/html/SVFGOPT_8h_source.html +14 -14
  155. package/SVF-doxygen/html/html/SVFGReadWrite_8cpp_source.html +8 -8
  156. package/SVF-doxygen/html/html/SVFGStat_8cpp_source.html +7 -7
  157. package/SVF-doxygen/html/html/SVFGStat_8h_source.html +4 -4
  158. package/SVF-doxygen/html/html/SVFG_8cpp_source.html +25 -25
  159. package/SVF-doxygen/html/html/SVFG_8h_source.html +12 -12
  160. package/SVF-doxygen/html/html/SVFIRBuilder_8cpp_source.html +58 -58
  161. package/SVF-doxygen/html/html/SVFIRBuilder_8h_source.html +75 -75
  162. package/SVF-doxygen/html/html/SVFIR_8cpp_source.html +11 -11
  163. package/SVF-doxygen/html/html/SVFIR_8h_source.html +34 -34
  164. package/SVF-doxygen/html/html/SVFLoop_8h_source.html +2 -2
  165. package/SVF-doxygen/html/html/SVFModule_8cpp_source.html +3 -3
  166. package/SVF-doxygen/html/html/SVFModule_8h_source.html +13 -13
  167. package/SVF-doxygen/html/html/SVFStat_8cpp_source.html +8 -8
  168. package/SVF-doxygen/html/html/SVFStat_8h_source.html +1 -1
  169. package/SVF-doxygen/html/html/SVFStatements_8cpp_source.html +5 -5
  170. package/SVF-doxygen/html/html/SVFStatements_8h_source.html +10 -10
  171. package/SVF-doxygen/html/html/SVFUtil_8cpp_source.html +18 -18
  172. package/SVF-doxygen/html/html/SVFUtil_8h_source.html +23 -23
  173. package/SVF-doxygen/html/html/SVFVariables_8cpp_source.html +2 -2
  174. package/SVF-doxygen/html/html/SVFVariables_8h_source.html +8 -8
  175. package/SVF-doxygen/html/html/SaberAnnotator_8cpp_source.html +4 -4
  176. package/SVF-doxygen/html/html/SaberAnnotator_8h_source.html +1 -1
  177. package/SVF-doxygen/html/html/SaberCheckerAPI_8h_source.html +4 -4
  178. package/SVF-doxygen/html/html/SaberCondAllocator_8cpp_source.html +34 -34
  179. package/SVF-doxygen/html/html/SaberCondAllocator_8h_source.html +47 -47
  180. package/SVF-doxygen/html/html/SaberSVFGBuilder_8cpp_source.html +14 -14
  181. package/SVF-doxygen/html/html/SaberSVFGBuilder_8h_source.html +3 -3
  182. package/SVF-doxygen/html/html/SparseBitVector_8h_source.html +59 -59
  183. package/SVF-doxygen/html/html/SrcSnkDDA_8cpp_source.html +10 -10
  184. package/SVF-doxygen/html/html/SrcSnkDDA_8h_source.html +4 -4
  185. package/SVF-doxygen/html/html/Steensgaard_8cpp_source.html +2 -2
  186. package/SVF-doxygen/html/html/Steensgaard_8h_source.html +3 -3
  187. package/SVF-doxygen/html/html/SymState_8h_source.html +1 -1
  188. package/SVF-doxygen/html/html/SymbolTableBuilder_8cpp_source.html +40 -40
  189. package/SVF-doxygen/html/html/SymbolTableBuilder_8h_source.html +6 -6
  190. package/SVF-doxygen/html/html/SymbolTableInfo_8cpp_source.html +16 -16
  191. package/SVF-doxygen/html/html/SymbolTableInfo_8h_source.html +13 -13
  192. package/SVF-doxygen/html/html/TCT_8cpp_source.html +22 -23
  193. package/SVF-doxygen/html/html/TCT_8h_source.html +21 -21
  194. package/SVF-doxygen/html/html/ThreadAPI_8cpp_source.html +5 -5
  195. package/SVF-doxygen/html/html/ThreadAPI_8h_source.html +8 -8
  196. package/SVF-doxygen/html/html/ThreadCallGraph_8cpp_source.html +14 -14
  197. package/SVF-doxygen/html/html/ThreadCallGraph_8h_source.html +6 -6
  198. package/SVF-doxygen/html/html/TypeAnalysis_8cpp_source.html +15 -15
  199. package/SVF-doxygen/html/html/TypeAnalysis_8h_source.html +6 -6
  200. package/SVF-doxygen/html/html/Util_2BasicTypes_8h.html +1 -14
  201. package/SVF-doxygen/html/html/Util_2BasicTypes_8h_source.html +97 -97
  202. package/SVF-doxygen/html/html/VFGEdge_8h_source.html +2 -2
  203. package/SVF-doxygen/html/html/VFGNode_8h_source.html +8 -8
  204. package/SVF-doxygen/html/html/VFG_8cpp_source.html +72 -69
  205. package/SVF-doxygen/html/html/VFG_8h_source.html +57 -57
  206. package/SVF-doxygen/html/html/VersionedFlowSensitiveStat_8cpp_source.html +9 -9
  207. package/SVF-doxygen/html/html/VersionedFlowSensitive_8cpp_source.html +24 -24
  208. package/SVF-doxygen/html/html/VersionedFlowSensitive_8h_source.html +7 -7
  209. package/SVF-doxygen/html/html/WPAFSSolver_8h_source.html +5 -5
  210. package/SVF-doxygen/html/html/WPAPass_8cpp_source.html +13 -13
  211. package/SVF-doxygen/html/html/WPAPass_8h_source.html +6 -6
  212. package/SVF-doxygen/html/html/WPASolver_8h_source.html +3 -3
  213. package/SVF-doxygen/html/html/WPAStat_8h_source.html +1 -1
  214. package/SVF-doxygen/html/html/WorkList_8h_source.html +2 -2
  215. package/SVF-doxygen/html/html/Z3Expr_8cpp_source.html +1 -1
  216. package/SVF-doxygen/html/html/Z3Expr_8h_source.html +1 -1
  217. package/SVF-doxygen/html/html/classSVF_1_1ActualINSVFGNode.html +2 -2
  218. package/SVF-doxygen/html/html/classSVF_1_1ActualOUTSVFGNode.html +2 -2
  219. package/SVF-doxygen/html/html/classSVF_1_1ActualParmVFGNode.html +3 -3
  220. package/SVF-doxygen/html/html/classSVF_1_1ActualRetVFGNode.html +3 -3
  221. package/SVF-doxygen/html/html/classSVF_1_1AddrCGEdge.html +2 -2
  222. package/SVF-doxygen/html/html/classSVF_1_1AddrStmt.html +1 -1
  223. package/SVF-doxygen/html/html/classSVF_1_1AddrVFGNode.html +3 -3
  224. package/SVF-doxygen/html/html/classSVF_1_1AliasCFLGraphBuilder.html +2 -2
  225. package/SVF-doxygen/html/html/classSVF_1_1AliasDDAClient.html +1 -1
  226. package/SVF-doxygen/html/html/classSVF_1_1Andersen-members.html +249 -250
  227. package/SVF-doxygen/html/html/classSVF_1_1Andersen.html +64 -66
  228. package/SVF-doxygen/html/html/classSVF_1_1AndersenBase-members.html +216 -217
  229. package/SVF-doxygen/html/html/classSVF_1_1AndersenBase.html +15 -17
  230. package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD-members.html +259 -260
  231. package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD.html +16 -18
  232. package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR-members.html +271 -272
  233. package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR.html +12 -14
  234. package/SVF-doxygen/html/html/classSVF_1_1AndersenStat.html +35 -35
  235. package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff-members.html +257 -258
  236. package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff.html +6 -8
  237. package/SVF-doxygen/html/html/classSVF_1_1Annotator.html +1 -1
  238. package/SVF-doxygen/html/html/classSVF_1_1ArgumentVFGNode.html +3 -3
  239. package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl-members.html +164 -165
  240. package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl.html +67 -69
  241. package/SVF-doxygen/html/html/classSVF_1_1BinaryOPStmt.html +1 -1
  242. package/SVF-doxygen/html/html/classSVF_1_1BinaryOPVFGNode.html +5 -5
  243. package/SVF-doxygen/html/html/classSVF_1_1BranchStmt.html +2 -2
  244. package/SVF-doxygen/html/html/classSVF_1_1BranchVFGNode.html +2 -2
  245. package/SVF-doxygen/html/html/classSVF_1_1BreakConstantGEPs.html +4 -4
  246. package/SVF-doxygen/html/html/classSVF_1_1CFGNormalizer.html +6 -6
  247. package/SVF-doxygen/html/html/classSVF_1_1CFLAlias-members.html +191 -192
  248. package/SVF-doxygen/html/html/classSVF_1_1CFLAlias.html +20 -22
  249. package/SVF-doxygen/html/html/classSVF_1_1CFLBase-members.html +185 -186
  250. package/SVF-doxygen/html/html/classSVF_1_1CFLBase.html +9 -11
  251. package/SVF-doxygen/html/html/classSVF_1_1CFLGraph.html +1 -1
  252. package/SVF-doxygen/html/html/classSVF_1_1CFLGraphBuilder.html +1 -1
  253. package/SVF-doxygen/html/html/classSVF_1_1CFLNode.html +3 -3
  254. package/SVF-doxygen/html/html/classSVF_1_1CFLSolver.html +2 -2
  255. package/SVF-doxygen/html/html/classSVF_1_1CFLStat.html +1 -1
  256. package/SVF-doxygen/html/html/classSVF_1_1CFLVF-members.html +189 -190
  257. package/SVF-doxygen/html/html/classSVF_1_1CFLVF.html +2 -4
  258. package/SVF-doxygen/html/html/classSVF_1_1CHGBuilder.html +57 -57
  259. package/SVF-doxygen/html/html/classSVF_1_1CHGraph.html +11 -11
  260. package/SVF-doxygen/html/html/classSVF_1_1CSC.html +9 -9
  261. package/SVF-doxygen/html/html/classSVF_1_1CallCFGEdge.html +1 -1
  262. package/SVF-doxygen/html/html/classSVF_1_1CallDirSVFGEdge.html +1 -1
  263. package/SVF-doxygen/html/html/classSVF_1_1CallGraphBuilder.html +4 -4
  264. package/SVF-doxygen/html/html/classSVF_1_1CallICFGNode.html +2 -2
  265. package/SVF-doxygen/html/html/classSVF_1_1CallIndSVFGEdge.html +1 -1
  266. package/SVF-doxygen/html/html/classSVF_1_1CallPE.html +1 -1
  267. package/SVF-doxygen/html/html/classSVF_1_1CallSite.html +36 -36
  268. package/SVF-doxygen/html/html/classSVF_1_1CmpStmt.html +1 -1
  269. package/SVF-doxygen/html/html/classSVF_1_1CmpVFGNode.html +5 -5
  270. package/SVF-doxygen/html/html/classSVF_1_1CondPTAImpl-members.html +153 -154
  271. package/SVF-doxygen/html/html/classSVF_1_1CondPTAImpl.html +19 -21
  272. package/SVF-doxygen/html/html/classSVF_1_1CondStdSet.html +2 -2
  273. package/SVF-doxygen/html/html/classSVF_1_1CondVar.html +1 -1
  274. package/SVF-doxygen/html/html/classSVF_1_1ConstraintGraph.html +80 -80
  275. package/SVF-doxygen/html/html/classSVF_1_1ConstraintNode-members.html +12 -12
  276. package/SVF-doxygen/html/html/classSVF_1_1ConstraintNode.html +120 -120
  277. package/SVF-doxygen/html/html/classSVF_1_1ContextCond.html +1 -1
  278. package/SVF-doxygen/html/html/classSVF_1_1ContextDDA-members.html +255 -256
  279. package/SVF-doxygen/html/html/classSVF_1_1ContextDDA.html +52 -52
  280. package/SVF-doxygen/html/html/classSVF_1_1CopyStmt.html +1 -1
  281. package/SVF-doxygen/html/html/classSVF_1_1CopyVFGNode.html +3 -3
  282. package/SVF-doxygen/html/html/classSVF_1_1CoreBitVector.html +4 -4
  283. package/SVF-doxygen/html/html/classSVF_1_1CxtProc.html +2 -2
  284. package/SVF-doxygen/html/html/classSVF_1_1CxtStmt.html +1 -1
  285. package/SVF-doxygen/html/html/classSVF_1_1CxtThread.html +1 -1
  286. package/SVF-doxygen/html/html/classSVF_1_1CxtThreadProc.html +1 -1
  287. package/SVF-doxygen/html/html/classSVF_1_1DCHGraph.html +88 -88
  288. package/SVF-doxygen/html/html/classSVF_1_1DDAClient.html +9 -9
  289. package/SVF-doxygen/html/html/classSVF_1_1DDAPass.html +21 -21
  290. package/SVF-doxygen/html/html/classSVF_1_1DDAStat.html +10 -10
  291. package/SVF-doxygen/html/html/classSVF_1_1DDAVFSolver.html +35 -35
  292. package/SVF-doxygen/html/html/classSVF_1_1DirectSVFGEdge.html +1 -1
  293. package/SVF-doxygen/html/html/classSVF_1_1DistinctMRG.html +12 -12
  294. package/SVF-doxygen/html/html/classSVF_1_1DoubleFreeChecker.html +3 -3
  295. package/SVF-doxygen/html/html/classSVF_1_1DummyObjVar.html +1 -1
  296. package/SVF-doxygen/html/html/classSVF_1_1DummyValVar.html +1 -1
  297. package/SVF-doxygen/html/html/classSVF_1_1DummyVersionPropSVFGNode.html +2 -2
  298. package/SVF-doxygen/html/html/classSVF_1_1ExeState.html +9 -9
  299. package/SVF-doxygen/html/html/classSVF_1_1ExtAPI.html +12 -12
  300. package/SVF-doxygen/html/html/classSVF_1_1FIObjVar.html +1 -1
  301. package/SVF-doxygen/html/html/classSVF_1_1FSMPTA-members.html +283 -284
  302. package/SVF-doxygen/html/html/classSVF_1_1FSMPTA.html +3 -5
  303. package/SVF-doxygen/html/html/classSVF_1_1FlowDDA-members.html +249 -250
  304. package/SVF-doxygen/html/html/classSVF_1_1FlowDDA.html +28 -30
  305. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive-members.html +274 -275
  306. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive.html +88 -90
  307. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveStat.html +31 -31
  308. package/SVF-doxygen/html/html/classSVF_1_1ForkJoinAnalysis.html +41 -42
  309. package/SVF-doxygen/html/html/classSVF_1_1FormalINSVFGNode.html +2 -2
  310. package/SVF-doxygen/html/html/classSVF_1_1FormalOUTSVFGNode.html +2 -2
  311. package/SVF-doxygen/html/html/classSVF_1_1FormalParmVFGNode.html +4 -4
  312. package/SVF-doxygen/html/html/classSVF_1_1FormalRetVFGNode.html +4 -4
  313. package/SVF-doxygen/html/html/classSVF_1_1FunEntryICFGNode.html +3 -3
  314. package/SVF-doxygen/html/html/classSVF_1_1FunExitICFGNode.html +4 -4
  315. package/SVF-doxygen/html/html/classSVF_1_1FunptrDDAClient.html +5 -5
  316. package/SVF-doxygen/html/html/classSVF_1_1GenericGraph.html +44 -44
  317. package/SVF-doxygen/html/html/classSVF_1_1GenericNode.html +7 -7
  318. package/SVF-doxygen/html/html/classSVF_1_1GepObjVar.html +1 -1
  319. package/SVF-doxygen/html/html/classSVF_1_1GepStmt.html +1 -1
  320. package/SVF-doxygen/html/html/classSVF_1_1GepVFGNode.html +3 -3
  321. package/SVF-doxygen/html/html/classSVF_1_1GepValVar.html +1 -1
  322. package/SVF-doxygen/html/html/classSVF_1_1GlobalICFGNode.html +1 -1
  323. package/SVF-doxygen/html/html/classSVF_1_1GrammarBase.html +4 -4
  324. package/SVF-doxygen/html/html/classSVF_1_1GrammarBase_1_1SymbolHash.html +1 -1
  325. package/SVF-doxygen/html/html/classSVF_1_1ICFG.html +71 -67
  326. package/SVF-doxygen/html/html/classSVF_1_1ICFGBuilder.html +22 -22
  327. package/SVF-doxygen/html/html/classSVF_1_1ICFGEdge.html +1 -1
  328. package/SVF-doxygen/html/html/classSVF_1_1ICFGNode.html +1 -1
  329. package/SVF-doxygen/html/html/classSVF_1_1ICFGPrinter.html +5 -5
  330. package/SVF-doxygen/html/html/classSVF_1_1ICFGStat.html +2 -2
  331. package/SVF-doxygen/html/html/classSVF_1_1IRAnnotator.html +60 -60
  332. package/SVF-doxygen/html/html/classSVF_1_1IRGraph.html +8 -8
  333. package/SVF-doxygen/html/html/classSVF_1_1IndirectSVFGEdge.html +1 -1
  334. package/SVF-doxygen/html/html/classSVF_1_1InterDisjointMRG.html +3 -3
  335. package/SVF-doxygen/html/html/classSVF_1_1InterMSSAPHISVFGNode.html +2 -2
  336. package/SVF-doxygen/html/html/classSVF_1_1InterPHIVFGNode.html +1 -1
  337. package/SVF-doxygen/html/html/classSVF_1_1IntraCFGEdge.html +1 -1
  338. package/SVF-doxygen/html/html/classSVF_1_1IntraDirSVFGEdge.html +1 -1
  339. package/SVF-doxygen/html/html/classSVF_1_1IntraDisjointMRG.html +9 -9
  340. package/SVF-doxygen/html/html/classSVF_1_1IntraICFGNode.html +2 -2
  341. package/SVF-doxygen/html/html/classSVF_1_1IntraIndSVFGEdge.html +1 -1
  342. package/SVF-doxygen/html/html/classSVF_1_1IntraMSSAPHISVFGNode.html +2 -2
  343. package/SVF-doxygen/html/html/classSVF_1_1IntraPHIVFGNode.html +1 -1
  344. package/SVF-doxygen/html/html/classSVF_1_1IteratedDominanceFrontier.html +3 -3
  345. package/SVF-doxygen/html/html/classSVF_1_1LLVMLoopAnalysis.html +8 -8
  346. package/SVF-doxygen/html/html/classSVF_1_1LLVMModuleSet.html +51 -51
  347. package/SVF-doxygen/html/html/classSVF_1_1LeakChecker.html +5 -5
  348. package/SVF-doxygen/html/html/classSVF_1_1LoadStmt.html +1 -1
  349. package/SVF-doxygen/html/html/classSVF_1_1LoadVFGNode.html +3 -3
  350. package/SVF-doxygen/html/html/classSVF_1_1LocationSet.html +15 -15
  351. package/SVF-doxygen/html/html/classSVF_1_1LockAnalysis.html +67 -67
  352. package/SVF-doxygen/html/html/classSVF_1_1LockResultValidator.html +19 -19
  353. package/SVF-doxygen/html/html/classSVF_1_1MHP.html +70 -71
  354. package/SVF-doxygen/html/html/classSVF_1_1MRGenerator.html +108 -108
  355. package/SVF-doxygen/html/html/classSVF_1_1MRSVFGNode.html +1 -1
  356. package/SVF-doxygen/html/html/classSVF_1_1MSSAPHISVFGNode.html +2 -2
  357. package/SVF-doxygen/html/html/classSVF_1_1MTA.html +16 -16
  358. package/SVF-doxygen/html/html/classSVF_1_1MTAAnnotator.html +19 -19
  359. package/SVF-doxygen/html/html/classSVF_1_1MTAResultValidator.html +55 -55
  360. package/SVF-doxygen/html/html/classSVF_1_1MTASVFGBuilder.html +40 -40
  361. package/SVF-doxygen/html/html/classSVF_1_1MTAStat.html +9 -9
  362. package/SVF-doxygen/html/html/classSVF_1_1MemObj.html +1 -1
  363. package/SVF-doxygen/html/html/classSVF_1_1MemRegion.html +4 -4
  364. package/SVF-doxygen/html/html/classSVF_1_1MemSSA.html +52 -52
  365. package/SVF-doxygen/html/html/classSVF_1_1MemSSAStat.html +2 -2
  366. package/SVF-doxygen/html/html/classSVF_1_1MergeFunctionRets.html +3 -3
  367. package/SVF-doxygen/html/html/classSVF_1_1MutableDFPTData.html +3 -3
  368. package/SVF-doxygen/html/html/classSVF_1_1NodeIDAllocator_1_1Clusterer.html +9 -9
  369. package/SVF-doxygen/html/html/classSVF_1_1NullPtrVFGNode.html +3 -3
  370. package/SVF-doxygen/html/html/classSVF_1_1ObjTypeInfo.html +2 -2
  371. package/SVF-doxygen/html/html/classSVF_1_1ObjVar.html +1 -1
  372. package/SVF-doxygen/html/html/classSVF_1_1PAGBuilderFromFile.html +6 -6
  373. package/SVF-doxygen/html/html/classSVF_1_1PCG.html +26 -26
  374. package/SVF-doxygen/html/html/classSVF_1_1PHIVFGNode.html +5 -5
  375. package/SVF-doxygen/html/html/classSVF_1_1PTACFInfoBuilder.html +7 -7
  376. package/SVF-doxygen/html/html/classSVF_1_1PTACallGraph.html +10 -10
  377. package/SVF-doxygen/html/html/classSVF_1_1PTACallGraphEdge.html +1 -1
  378. package/SVF-doxygen/html/html/classSVF_1_1PTACallGraphNode.html +5 -5
  379. package/SVF-doxygen/html/html/classSVF_1_1PTAStat.html +13 -13
  380. package/SVF-doxygen/html/html/classSVF_1_1PersistentDFPTData.html +4 -4
  381. package/SVF-doxygen/html/html/classSVF_1_1PersistentDiffPTData.html +3 -3
  382. package/SVF-doxygen/html/html/classSVF_1_1PersistentPTData.html +6 -6
  383. package/SVF-doxygen/html/html/classSVF_1_1PersistentPointsToCache.html +6 -6
  384. package/SVF-doxygen/html/html/classSVF_1_1PhiStmt.html +2 -2
  385. package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis-members.html +120 -121
  386. package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.html +258 -276
  387. package/SVF-doxygen/html/html/classSVF_1_1PointsTo.html +14 -14
  388. package/SVF-doxygen/html/html/classSVF_1_1PointsTo_1_1PointsToIterator.html +8 -8
  389. package/SVF-doxygen/html/html/classSVF_1_1ProgSlice.html +23 -23
  390. package/SVF-doxygen/html/html/classSVF_1_1RaceResultValidator.html +11 -11
  391. package/SVF-doxygen/html/html/classSVF_1_1RetCFGEdge.html +1 -1
  392. package/SVF-doxygen/html/html/classSVF_1_1RetDirSVFGEdge.html +1 -1
  393. package/SVF-doxygen/html/html/classSVF_1_1RetICFGNode.html +2 -2
  394. package/SVF-doxygen/html/html/classSVF_1_1RetIndSVFGEdge.html +1 -1
  395. package/SVF-doxygen/html/html/classSVF_1_1RetPE.html +1 -1
  396. package/SVF-doxygen/html/html/classSVF_1_1RetPN.html +1 -1
  397. package/SVF-doxygen/html/html/classSVF_1_1SCCDetection.html +3 -3
  398. package/SVF-doxygen/html/html/classSVF_1_1SCCDetection_1_1GNodeSCCInfo.html +1 -1
  399. package/SVF-doxygen/html/html/classSVF_1_1SVFBasicBlock.html +4 -4
  400. package/SVF-doxygen/html/html/classSVF_1_1SVFFunction.html +97 -97
  401. package/SVF-doxygen/html/html/classSVF_1_1SVFG.html +52 -52
  402. package/SVF-doxygen/html/html/classSVF_1_1SVFGBuilder.html +8 -8
  403. package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT.html +23 -23
  404. package/SVF-doxygen/html/html/classSVF_1_1SVFGStat.html +12 -12
  405. package/SVF-doxygen/html/html/classSVF_1_1SVFGlobal.html +4 -4
  406. package/SVF-doxygen/html/html/classSVF_1_1SVFIR.html +79 -79
  407. package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder.html +255 -255
  408. package/SVF-doxygen/html/html/classSVF_1_1SVFModule.html +3 -3
  409. package/SVF-doxygen/html/html/classSVF_1_1SVFStat.html +9 -9
  410. package/SVF-doxygen/html/html/classSVF_1_1SVFStmt.html +8 -8
  411. package/SVF-doxygen/html/html/classSVF_1_1SVFValue.html +33 -33
  412. package/SVF-doxygen/html/html/classSVF_1_1SVFVar.html +4 -4
  413. package/SVF-doxygen/html/html/classSVF_1_1SaberAnnotator.html +7 -7
  414. package/SVF-doxygen/html/html/classSVF_1_1SaberCondAllocator.html +132 -132
  415. package/SVF-doxygen/html/html/classSVF_1_1SaberSVFGBuilder.html +20 -20
  416. package/SVF-doxygen/html/html/classSVF_1_1SelectStmt.html +1 -1
  417. package/SVF-doxygen/html/html/classSVF_1_1SparseBitVector.html +103 -103
  418. package/SVF-doxygen/html/html/classSVF_1_1SparseBitVector_1_1SparseBitVectorIterator.html +45 -45
  419. package/SVF-doxygen/html/html/classSVF_1_1SrcSnkDDA.html +11 -11
  420. package/SVF-doxygen/html/html/classSVF_1_1StInfo.html +1 -1
  421. package/SVF-doxygen/html/html/classSVF_1_1Steensgaard-members.html +228 -229
  422. package/SVF-doxygen/html/html/classSVF_1_1Steensgaard.html +5 -7
  423. package/SVF-doxygen/html/html/classSVF_1_1StmtVFGNode.html +3 -3
  424. package/SVF-doxygen/html/html/classSVF_1_1StoreStmt.html +1 -1
  425. package/SVF-doxygen/html/html/classSVF_1_1StoreVFGNode.html +2 -2
  426. package/SVF-doxygen/html/html/classSVF_1_1SymbolTableBuilder.html +71 -71
  427. package/SVF-doxygen/html/html/classSVF_1_1SymbolTableInfo.html +29 -29
  428. package/SVF-doxygen/html/html/classSVF_1_1TCT.html +59 -60
  429. package/SVF-doxygen/html/html/classSVF_1_1TDForkPE.html +1 -1
  430. package/SVF-doxygen/html/html/classSVF_1_1TDJoinPE.html +1 -1
  431. package/SVF-doxygen/html/html/classSVF_1_1ThreadAPI.html +5 -5
  432. package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraph.html +26 -26
  433. package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraphBuilder.html +4 -4
  434. package/SVF-doxygen/html/html/classSVF_1_1ThreadForkEdge.html +1 -1
  435. package/SVF-doxygen/html/html/classSVF_1_1ThreadJoinEdge.html +1 -1
  436. package/SVF-doxygen/html/html/classSVF_1_1ThreadMHPIndSVFGEdge.html +1 -1
  437. package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis-members.html +221 -222
  438. package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis.html +24 -26
  439. package/SVF-doxygen/html/html/classSVF_1_1UnaryOPStmt.html +1 -1
  440. package/SVF-doxygen/html/html/classSVF_1_1UnaryOPVFGNode.html +3 -3
  441. package/SVF-doxygen/html/html/classSVF_1_1VFCFLGraphBuilder.html +1 -1
  442. package/SVF-doxygen/html/html/classSVF_1_1VFG.html +168 -165
  443. package/SVF-doxygen/html/html/classSVF_1_1VFGEdge.html +1 -1
  444. package/SVF-doxygen/html/html/classSVF_1_1VFGNode.html +1 -1
  445. package/SVF-doxygen/html/html/classSVF_1_1ValVar.html +1 -1
  446. package/SVF-doxygen/html/html/classSVF_1_1VarArgPN.html +1 -1
  447. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive-members.html +324 -325
  448. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive.html +70 -72
  449. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitiveStat.html +17 -17
  450. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive_1_1SCC.html +3 -3
  451. package/SVF-doxygen/html/html/classSVF_1_1WPAFSSolver.html +3 -3
  452. package/SVF-doxygen/html/html/classSVF_1_1WPAMinimumSolver.html +5 -5
  453. package/SVF-doxygen/html/html/classSVF_1_1WPAPass.html +15 -15
  454. package/SVF-doxygen/html/html/classSVF_1_1WPASCCSolver.html +3 -3
  455. package/SVF-doxygen/html/html/classSVF_1_1WPASolver.html +1 -1
  456. package/SVF-doxygen/html/html/classSVF_1_1Z3Expr.html +1 -1
  457. package/SVF-doxygen/html/html/classllvm_1_1generic__bridge__gep__type__iterator.html +3 -3
  458. package/SVF-doxygen/html/html/functions_a.html +9 -12
  459. package/SVF-doxygen/html/html/functions_func.html +4 -4
  460. package/SVF-doxygen/html/html/functions_func_i.html +3 -3
  461. package/SVF-doxygen/html/html/functions_func_r.html +8 -8
  462. package/SVF-doxygen/html/html/functions_func_s.html +1 -1
  463. package/SVF-doxygen/html/html/functions_i.html +2 -2
  464. package/SVF-doxygen/html/html/functions_l.html +8 -8
  465. package/SVF-doxygen/html/html/functions_n.html +4 -4
  466. package/SVF-doxygen/html/html/functions_o.html +8 -8
  467. package/SVF-doxygen/html/html/functions_p.html +14 -16
  468. package/SVF-doxygen/html/html/functions_r.html +10 -12
  469. package/SVF-doxygen/html/html/functions_s.html +7 -7
  470. package/SVF-doxygen/html/html/functions_type.html +0 -3
  471. package/SVF-doxygen/html/html/functions_v.html +6 -6
  472. package/SVF-doxygen/html/html/functions_w.html +11 -11
  473. package/SVF-doxygen/html/html/namespaceSVF.html +175 -193
  474. package/SVF-doxygen/html/html/namespaceSVF_1_1LLVMUtil.html +55 -55
  475. package/SVF-doxygen/html/html/namespaceSVF_1_1SVFUtil.html +44 -44
  476. package/SVF-doxygen/html/html/namespaceSVF_1_1cppUtil.html +46 -46
  477. package/SVF-doxygen/html/html/namespacemembers_s.html +0 -3
  478. package/SVF-doxygen/html/html/namespacemembers_type_s.html +0 -3
  479. package/SVF-doxygen/html/html/search/all_1.js +4 -5
  480. package/SVF-doxygen/html/html/search/all_10.js +6 -6
  481. package/SVF-doxygen/html/html/search/all_11.js +10 -10
  482. package/SVF-doxygen/html/html/search/all_12.js +5 -6
  483. package/SVF-doxygen/html/html/search/all_13.js +4 -4
  484. package/SVF-doxygen/html/html/search/all_15.js +3 -3
  485. package/SVF-doxygen/html/html/search/all_16.js +2 -2
  486. package/SVF-doxygen/html/html/search/all_9.js +2 -2
  487. package/SVF-doxygen/html/html/search/all_c.js +5 -5
  488. package/SVF-doxygen/html/html/search/all_e.js +2 -2
  489. package/SVF-doxygen/html/html/search/all_f.js +1 -1
  490. package/SVF-doxygen/html/html/search/functions_0.js +4 -4
  491. package/SVF-doxygen/html/html/search/functions_10.js +8 -8
  492. package/SVF-doxygen/html/html/search/functions_11.js +1 -1
  493. package/SVF-doxygen/html/html/search/functions_8.js +1 -1
  494. package/SVF-doxygen/html/html/search/functions_f.js +1 -1
  495. package/SVF-doxygen/html/html/search/typedefs_0.js +0 -1
  496. package/SVF-doxygen/html/html/search/typedefs_10.js +0 -1
  497. package/SVF-doxygen/html/html/search/variables_13.js +2 -2
  498. package/SVF-doxygen/html/html/search/variables_9.js +1 -1
  499. package/SVF-doxygen/html/html/structSVF_1_1GrammarBase_1_1Symbol.html +4 -4
  500. package/SVF-doxygen/html/html/structSVF_1_1Hash.html +3 -3
  501. package/SVF-doxygen/html/html/structSVF_1_1Hash_3_01NodePair_01_4.html +3 -3
  502. package/SVF-doxygen/html/html/structSVF_1_1Hash_3_01std_1_1pair_3_01S_00_01T_01_4_01_4.html +5 -5
  503. package/SVF-doxygen/html/html/structSVF_1_1PopulationCounter.html +1 -1
  504. package/SVF-doxygen/html/html/structSVF_1_1PopulationCounter_3_01T_00_018_01_4.html +1 -1
  505. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1cast__convert__val.html +5 -5
  506. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1cast__convert__val_3_01To_00_01FromTy_00_01FromTy_01_4.html +3 -3
  507. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1cast__retty.html +2 -2
  508. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1cast__retty__impl.html +2 -2
  509. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1cast__retty__impl_3_01To_00_01From_01_5_01_4.html +2 -2
  510. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1cast__retty__impl_3_01To_00_01const_01From_01_4.html +2 -2
  511. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1cast__retty__impl_3_01To_00_01const_01From_01_5_01_4.html +2 -2
  512. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1cast__retty__impl_3_01To_00_01const_01From_01_5const_01_4.html +2 -2
  513. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1cast__retty__impl_3_01To_00_01std_1_1unique__ptr_3_01From_01_4_01_4.html +4 -4
  514. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1cast__retty__wrap.html +2 -2
  515. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1cast__retty__wrap_3_01To_00_01FromTy_00_01FromTy_01_4.html +2 -2
  516. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1is__simple__type.html +2 -2
  517. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1isa__impl.html +3 -3
  518. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1isa__impl_3_01To_00_01From_00_01typename_01std_1_1enable__if_3_01std_1_1101a002941fb8432b76e90258f1ec6b7.html +3 -3
  519. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1isa__impl__cl.html +3 -3
  520. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1isa__impl__cl_3_01To_00_01From_01_5_01_4.html +3 -3
  521. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1isa__impl__cl_3_01To_00_01From_01_5const_01_4.html +3 -3
  522. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1isa__impl__cl_3_01To_00_01const_01From_01_4.html +3 -3
  523. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1isa__impl__cl_3_01To_00_01const_01From_01_5_01_4.html +3 -3
  524. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1isa__impl__cl_3_01To_00_01const_01From_01_5const_01_4.html +3 -3
  525. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1isa__impl__cl_3_01To_00_01const_01std_1_1unique__ptr_3_01From_01_4_01_4.html +3 -3
  526. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1isa__impl__wrap.html +5 -5
  527. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1isa__impl__wrap_3_01To_00_01FromTy_00_01FromTy_01_4.html +3 -3
  528. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1simplify__type.html +4 -4
  529. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1simplify__type_3_01const_01From_01_4.html +6 -6
  530. package/SVF-doxygen/html/html/structSVF_1_1SparseBitVectorElement.html +15 -15
  531. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01CFLGraph_01_5_01_4.html +3 -3
  532. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01ConstraintGraph_01_5_01_4.html +17 -17
  533. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01ICFG_01_5_01_4.html +17 -17
  534. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01IRGraph_01_5_01_4.html +2 -2
  535. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01PTACallGraph_01_5_01_4.html +2 -2
  536. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01SVFG_01_5_01_4.html +4 -4
  537. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01TCT_01_5_01_4.html +1 -1
  538. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01VFG_01_5_01_4.html +21 -21
  539. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01Inverse_3_01SVF_1_1GenericNode_3_01NodeTy_00_01EdgeTy_01_4_01_5_4_01_4.html +14 -14
  540. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01Inverse_3_01SVF_1_1ICFGNode_01_5_01_4_01_4.html +1 -1
  541. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01Inverse_3_01SVF_1_1VFGNode_01_5_01_4_01_4.html +1 -1
  542. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1GenericGraph_3_01NodeTy_00_01EdgeTy_01_4_01_5_4.html +20 -20
  543. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1GenericNode_3_01NodeTy_00_01EdgeTy_01_4_01_5_01_4.html +16 -16
  544. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1ICFGNode_01_5_01_4.html +1 -1
  545. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1ICFG_01_5_01_4.html +2 -2
  546. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1VFGNode_01_5_01_4.html +1 -1
  547. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1VFG_01_5_01_4.html +2 -2
  548. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1CallSite_01_4.html +3 -3
  549. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1CondStdSet_3_01Element_01_4_01_4.html +1 -1
  550. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1CxtDPItem_01_4.html +1 -1
  551. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1CxtProc_01_4.html +1 -1
  552. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1CxtStmtDPItem_3_01LocCond_01_4_01_4.html +1 -1
  553. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1CxtStmt_01_4.html +1 -1
  554. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1ExeState_01_4.html +1 -1
  555. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1LocationSet_01_4.html +1 -1
  556. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1NodePair_01_4.html +3 -3
  557. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1SparseBitVector_3_01N_01_4_01_4.html +6 -6
  558. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1StmtDPItem_3_01LocCond_01_4_01_4.html +1 -1
  559. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1SymState_01_4.html +1 -1
  560. package/SVF-doxygen/html/html/structstd_1_1hash_3_01std_1_1vector_3_01T_01_4_01_4.html +3 -3
  561. package/SVF-doxygen/html/html/svf-ex_8cpp.html +8 -8
  562. package/SVF-doxygen/html/html/svf-ex_8cpp_source.html +9 -9
  563. package/include/Graphs/ConsGNode.h +48 -24
  564. package/include/Graphs/GenericGraph.h +4 -2
  565. package/include/Graphs/ICFG.h +3 -2
  566. package/include/Graphs/SVFGOPT.h +7 -7
  567. package/include/Graphs/VFG.h +3 -2
  568. package/include/MSSA/MemSSA.h +6 -6
  569. package/include/MemoryModel/PersistentPointsToDS.h +1 -1
  570. package/include/MemoryModel/PointerAnalysis.h +0 -1
  571. package/include/MemoryModel/SVFIR.h +3 -1
  572. package/include/SABER/SaberCondAllocator.h +7 -2
  573. package/include/SVF-FE/BasicTypes.h +7 -1
  574. package/include/SVF-FE/IRAnnotator.h +3 -1
  575. package/include/Util/BasicTypes.h +1 -22
  576. package/include/Util/Casting.h +1 -0
  577. package/include/Util/SVFBasicTypes.h +0 -5
  578. package/include/Util/SparseBitVector.h +2 -0
  579. package/lib/DDA/ContextDDA.cpp +8 -5
  580. package/lib/Graphs/ConsG.cpp +46 -23
  581. package/lib/Graphs/ICFG.cpp +8 -4
  582. package/lib/Graphs/VFG.cpp +6 -3
  583. package/lib/MSSA/MemRegion.cpp +1 -0
  584. package/lib/MTA/MHP.cpp +4 -4
  585. package/lib/MTA/TCT.cpp +2 -1
  586. package/lib/MemoryModel/PointerAnalysisImpl.cpp +3 -1
  587. package/lib/SABER/SaberCondAllocator.cpp +3 -1
  588. package/lib/SVF-FE/CHGBuilder.cpp +2 -2
  589. package/lib/SVF-FE/SVFIRBuilder.cpp +4 -1
  590. package/lib/WPA/AndersenSFR.cpp +3 -0
  591. package/lib/WPA/TypeAnalysis.cpp +1 -0
  592. package/package.json +1 -1
@@ -68,40 +68,40 @@ $(function() {
68
68
  <div class="contents">
69
69
  <a href="LocationSet_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">//===- LocationSet.cpp -- Location set for modeling abstract memory object----//</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">// SVF: Static Value-Flow Analysis</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// Copyright (C) &lt;2013-&gt; &lt;Yulei Sui&gt;</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// This program is free software: you can redistribute it and/or modify</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">// the Free Software Foundation, either version 3 of the License, or</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// (at your option) any later version.</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// GNU General Public License for more details.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// along with this program. If not, see &lt;http://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">//===----------------------------------------------------------------------===//</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment"> * @file: LocationSet.cpp</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment"> * @author: yesen</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment"> * @date: 26 Sep 2014</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="comment"> * LICENSE</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="Options_8h.html">Util/Options.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="LocationSet_8h.html">MemoryModel/LocationSet.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="SVFUtil_8h.html">Util/SVFUtil.h</a>&quot;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="keyword">using namespace </span><a class="code" href="namespaceSVF.html">SVF</a>;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="keyword">using namespace </span><a class="code" href="namespaceSVFUtil.html">SVFUtil</a>;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="classSVF_1_1LocationSet.html#aa2682a73f1ab2c32326fb4e0d5b3586b"> 42</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1LocationSet.html#aa2682a73f1ab2c32326fb4e0d5b3586b">LocationSet::addOffsetValue</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* offsetVal, <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a>* <a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>)</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;{</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; offsetValues.push_back(std::make_pair(offsetVal,type));</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;}</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="classSVF_1_1LocationSet.html#a4a9185282308c50f86fdf66f7060373d"> 49</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1LocationSet.html#a4a9185282308c50f86fdf66f7060373d">LocationSet::isConstantOffset</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it : offsetValues)</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; {</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="keywordflow">if</span>(SVFUtil::isa&lt;ConstantInt&gt;(it.first) == <span class="keyword">false</span>)</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; }</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;}</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;</div><div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="classSVF_1_1LocationSet.html#ac66b56e1fa180be9b09d7bfe653ff311"> 63</a></span>&#160;<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1LocationSet.html#ac66b56e1fa180be9b09d7bfe653ff311">LocationSet::getElementNum</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a>* <a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>)<span class="keyword"> const</span></div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="keywordflow">if</span>(SVFUtil::isa&lt;ArrayType&gt;(type) || SVFUtil::isa&lt;StructType&gt;(type))</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; {</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#a267169023fc4f8dd66b145f7231fec11">SymbolTableInfo::SymbolInfo</a>()-&gt;<a class="code" href="classSVF_1_1SymbolTableInfo.html#aec579894eed558ea89740b68360187aa">getNumOfFlattenElements</a>(type);</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; }</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (type-&gt;isSingleValueType())</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; {</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keywordflow">if</span>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#aa962cc1d782cc46553251e96b64a754b">PointerType</a>* pty = SVFUtil::dyn_cast&lt;PointerType&gt;(type))</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="keywordflow">return</span> getElementNum(<a class="code" href="classSVF_1_1SymbolTableInfo.html#aaeed05509be23fce24809b9cb21cdee2">SymbolTableInfo::getPtrElementType</a>(pty));</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="keywordflow">return</span> 1;</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; }</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa&lt;FunctionType&gt;(type))</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; {</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <span class="keywordflow">return</span> 1;</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; }</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; {</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVFUtil::outs</a>() &lt;&lt; <span class="stringliteral">&quot;GepIter Type&quot;</span> &lt;&lt; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a817a63e8330530cb18e077556f7ce518">type2String</a>(type) &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; assert(<span class="keyword">false</span> &amp;&amp; <span class="stringliteral">&quot;What other types for this gep?&quot;</span>);</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; abort();</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; }</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;}</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;<span class="comment">// struct inner{ int rollNumber; float percentage;};</span></div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;<span class="comment">// struct Student { struct inner rollNumber; char studentName[10][3];}</span></div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;<span class="comment">// char x = studentRecord[1].studentName[3][2];</span></div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;</div><div class="line"><a name="l00118"></a><span class="lineno"><a class="line" href="classSVF_1_1LocationSet.html#ad8e250859aa1cf6ce18c6c0b7bbb2710"> 118</a></span>&#160;<a class="code" href="namespaceSVF.html#a9b707002523ece2ac54ca893ee9a2d4e">s32_t</a> <a class="code" href="classSVF_1_1LocationSet.html#ad8e250859aa1cf6ce18c6c0b7bbb2710">LocationSet::accumulateConstantOffset</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; assert(isConstantOffset() &amp;&amp; <span class="stringliteral">&quot;not a constant offset&quot;</span>);</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="keywordflow">if</span>(offsetValues.empty())</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <span class="keywordflow">return</span> accumulateConstantFieldIdx();</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <a class="code" href="namespaceSVF.html#a9b707002523ece2ac54ca893ee9a2d4e">s32_t</a> totalConstOffset = 0;</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = offsetValues.size() - 1; i &gt;= 0; i--)</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; {</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* value = offsetValues[i].first;</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a>* <a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a> = offsetValues[i].second;</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#adefcb50414ea999d70cea5ccdbcb98d7">ConstantInt</a> *op = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">SVFUtil::dyn_cast</a>&lt;<a class="code" href="namespaceSVF.html#adefcb50414ea999d70cea5ccdbcb98d7">ConstantInt</a>&gt;(value);</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; assert(op &amp;&amp; <span class="stringliteral">&quot;not a constant offset?&quot;</span>);</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="keywordflow">if</span>(type==<span class="keyword">nullptr</span>)</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; {</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; totalConstOffset += op-&gt;getSExtValue();</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; }</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <span class="keywordflow">if</span>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#aa962cc1d782cc46553251e96b64a754b">PointerType</a>* pty = SVFUtil::dyn_cast&lt;PointerType&gt;(type))</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; totalConstOffset += op-&gt;getSExtValue() * getElementNum(<a class="code" href="classSVF_1_1SymbolTableInfo.html#aaeed05509be23fce24809b9cb21cdee2">SymbolTableInfo::getPtrElementType</a>(pty));</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; {</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <a class="code" href="namespaceSVF.html#a9b707002523ece2ac54ca893ee9a2d4e">s32_t</a> <a class="code" href="cJSON_8cpp.html#a95bf816579e97b6f33bdb5e25ed6d5de">offset</a> = op-&gt;getSExtValue();</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> flattenOffset = <a class="code" href="classSVF_1_1SymbolTableInfo.html#a267169023fc4f8dd66b145f7231fec11">SymbolTableInfo::SymbolInfo</a>()-&gt;<a class="code" href="classSVF_1_1SymbolTableInfo.html#a8fc42c2b02317621d6aeb3c5f52d3ee8">getFlattenedElemIdx</a>(type, offset);</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; totalConstOffset += flattenOffset;</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; }</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; }</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <span class="keywordflow">return</span> totalConstOffset;</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;}</div><div class="line"><a name="l00153"></a><span class="lineno"><a class="line" href="classSVF_1_1LocationSet.html#afc0f702b6cce26861b409130fe5e019f"> 153</a></span>&#160;<a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a> <a class="code" href="classSVF_1_1LocationSet.html#afc0f702b6cce26861b409130fe5e019f">LocationSet::computeAllLocations</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a> result;</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; result.<a class="code" href="classSVF_1_1SparseBitVector.html#a61bd86909a141f9de873d92c0f904832">set</a>(accumulateConstantFieldIdx());</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <span class="keywordflow">return</span> result;</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;}</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;</div><div class="line"><a name="l00160"></a><span class="lineno"><a class="line" href="classSVF_1_1LocationSet.html#a67387c3b42fcc1bb3ee8fe85bda02ba8"> 160</a></span>&#160;<a class="code" href="classSVF_1_1LocationSet.html">LocationSet</a> <a class="code" href="classSVF_1_1LocationSet.html#a67387c3b42fcc1bb3ee8fe85bda02ba8">LocationSet::operator+ </a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1LocationSet.html">LocationSet</a>&amp; rhs)<span class="keyword"> const</span></div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <a class="code" href="classSVF_1_1LocationSet.html">LocationSet</a> ls(rhs);</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; ls.<a class="code" href="classSVF_1_1LocationSet.html#a5c2c1baa17a70b997824002e4c159cbd">fldIdx</a> += accumulateConstantFieldIdx();</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; OffsetValueVec::const_iterator it = getOffsetValueVec().begin();</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; OffsetValueVec::const_iterator eit = getOffsetValueVec().end();</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; <span class="keywordflow">for</span> (; it != eit; ++it)</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; ls.<a class="code" href="classSVF_1_1LocationSet.html#aa2682a73f1ab2c32326fb4e0d5b3586b">addOffsetValue</a>(it-&gt;first, it-&gt;second);</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <span class="keywordflow">return</span> ls;</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160;}</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160;</div><div class="line"><a name="l00173"></a><span class="lineno"><a class="line" href="classSVF_1_1LocationSet.html#a511e8324d88624013eed04e8c2a6cbc4"> 173</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1LocationSet.html#a511e8324d88624013eed04e8c2a6cbc4">LocationSet::operator&lt; </a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1LocationSet.html">LocationSet</a>&amp; rhs)<span class="keyword"> const</span></div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <span class="keywordflow">if</span> (fldIdx != rhs.<a class="code" href="classSVF_1_1LocationSet.html#a5c2c1baa17a70b997824002e4c159cbd">fldIdx</a>)</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <span class="keywordflow">return</span> (fldIdx &lt; rhs.<a class="code" href="classSVF_1_1LocationSet.html#a5c2c1baa17a70b997824002e4c159cbd">fldIdx</a>);</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; {</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1LocationSet.html#a9bb7e08f7cfb2859d25b0e68e21fec89">OffsetValueVec</a>&amp; pairVec = getOffsetValueVec();</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1LocationSet.html#a9bb7e08f7cfb2859d25b0e68e21fec89">OffsetValueVec</a>&amp; rhsPairVec = rhs.<a class="code" href="classSVF_1_1LocationSet.html#a5a5ca0b81da0b34ab426bc6a28ed346c">getOffsetValueVec</a>();</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <span class="keywordflow">if</span> (pairVec.size() != rhsPairVec.size())</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <span class="keywordflow">return</span> (pairVec.size() &lt; rhsPairVec.size());</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; {</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; OffsetValueVec::const_iterator it = pairVec.begin();</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; OffsetValueVec::const_iterator rhsIt = rhsPairVec.begin();</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <span class="keywordflow">for</span> (; it != pairVec.end() &amp;&amp; rhsIt != rhsPairVec.end(); ++it, ++rhsIt)</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; {</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <span class="keywordflow">return</span> (*it) &lt; (*rhsIt);</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; }</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; }</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; }</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;}</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;</div><div class="line"><a name="l00197"></a><span class="lineno"><a class="line" href="classSVF_1_1LocationSet.html#a4e839125b32c7cb3ad07fbec6f203c10"> 197</a></span>&#160;<a class="code" href="classSVF_1_1LocationSet.html#a002a0c8ec2528835d809bf7eb3ebc83f">SVF::LocationSet::LSRelation</a> <a class="code" href="classSVF_1_1LocationSet.html#a4e839125b32c7cb3ad07fbec6f203c10">LocationSet::checkRelation</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1LocationSet.html">LocationSet</a>&amp; LHS, <span class="keyword">const</span> <a class="code" href="classSVF_1_1LocationSet.html">LocationSet</a>&amp; RHS)</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160;{</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a> lhsLocations = LHS.<a class="code" href="classSVF_1_1LocationSet.html#afc0f702b6cce26861b409130fe5e019f">computeAllLocations</a>();</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a> rhsLocations = RHS.<a class="code" href="classSVF_1_1LocationSet.html#afc0f702b6cce26861b409130fe5e019f">computeAllLocations</a>();</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <span class="keywordflow">if</span> (lhsLocations.<a class="code" href="classSVF_1_1SparseBitVector.html#a16756e0545fd3d50ab89f45a2e83bb79">intersects</a>(rhsLocations))</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; {</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; <span class="keywordflow">if</span> (lhsLocations == rhsLocations)</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; <span class="keywordflow">return</span> Same;</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (lhsLocations.<a class="code" href="classSVF_1_1SparseBitVector.html#abbd0e0cf759fad7858224ed8a63aade8">contains</a>(rhsLocations))</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; <span class="keywordflow">return</span> Superset;</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (rhsLocations.<a class="code" href="classSVF_1_1SparseBitVector.html#abbd0e0cf759fad7858224ed8a63aade8">contains</a>(lhsLocations))</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; <span class="keywordflow">return</span> Subset;</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; <span class="keywordflow">return</span> Overlap;</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; }</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; {</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; <span class="keywordflow">return</span> NonOverlap;</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; }</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160;}</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160;</div><div class="line"><a name="l00219"></a><span class="lineno"><a class="line" href="classSVF_1_1LocationSet.html#a53f1b2e417682a56d45dfb1f7d5ccd1c"> 219</a></span>&#160;<a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="classSVF_1_1LocationSet.html#a53f1b2e417682a56d45dfb1f7d5ccd1c">LocationSet::dump</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> str;</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; <a class="code" href="namespaceSVF.html#a726981481ac082dcda3e4921416b65a0">raw_string_ostream</a> rawstr(str);</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160;</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot;LocationSet\tField_Index: &quot;</span> &lt;&lt; accumulateConstantFieldIdx();</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot;,\tNum-Stride: {&quot;</span>;</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1LocationSet.html#a9bb7e08f7cfb2859d25b0e68e21fec89">OffsetValueVec</a>&amp; vec = getOffsetValueVec();</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; OffsetValueVec::const_iterator it = vec.begin();</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; OffsetValueVec::const_iterator eit = vec.end();</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; <span class="keywordflow">for</span> (; it != eit; ++it)</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; {</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot; (value: &quot;</span> &lt;&lt; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a7486fd8e5350879ed1cbd835c0d4e191">value2String</a>(it-&gt;first) &lt;&lt; <span class="stringliteral">&quot; type: &quot;</span> &lt;&lt; it-&gt;second &lt;&lt; <span class="stringliteral">&quot;)&quot;</span>;</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; }</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot; }\n&quot;</span>;</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; <span class="keywordflow">return</span> rawstr.str();</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160;}</div><div class="ttc" id="classSVF_1_1LocationSet_html_a4a9185282308c50f86fdf66f7060373d"><div class="ttname"><a href="classSVF_1_1LocationSet.html#a4a9185282308c50f86fdf66f7060373d">SVF::LocationSet::isConstantOffset</a></div><div class="ttdeci">bool isConstantOffset() const</div><div class="ttdoc">Return TRUE if this is a constant location set. </div><div class="ttdef"><b>Definition:</b> <a href="LocationSet_8cpp_source.html#l00049">LocationSet.cpp:49</a></div></div>
70
70
  <div class="ttc" id="classSVF_1_1SymbolTableInfo_html_aaeed05509be23fce24809b9cb21cdee2"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#aaeed05509be23fce24809b9cb21cdee2">SVF::SymbolTableInfo::getPtrElementType</a></div><div class="ttdeci">static const Type * getPtrElementType(const PointerType *pty)</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00386">SymbolTableInfo.cpp:386</a></div></div>
71
- <div class="ttc" id="namespaceSVF_html_a1d008c0666c145622b81d427be64c52d"><div class="ttname"><a href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">SVF::Type</a></div><div class="ttdeci">llvm::Type Type</div><div class="ttdoc">LLVM Basic classes. </div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00064">BasicTypes.h:64</a></div></div>
71
+ <div class="ttc" id="namespaceSVF_html_a1d008c0666c145622b81d427be64c52d"><div class="ttname"><a href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">SVF::Type</a></div><div class="ttdeci">llvm::Type Type</div><div class="ttdoc">LLVM Basic classes. </div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00047">BasicTypes.h:47</a></div></div>
72
72
  <div class="ttc" id="classSVF_1_1LocationSet_html_a9bb7e08f7cfb2859d25b0e68e21fec89"><div class="ttname"><a href="classSVF_1_1LocationSet.html#a9bb7e08f7cfb2859d25b0e68e21fec89">SVF::LocationSet::OffsetValueVec</a></div><div class="ttdeci">std::vector&lt; std::pair&lt; const Value *, const Type * &gt; &gt; OffsetValueVec</div><div class="ttdef"><b>Definition:</b> <a href="LocationSet_8h_source.html#l00057">LocationSet.h:57</a></div></div>
73
- <div class="ttc" id="namespaceSVF_html_aa962cc1d782cc46553251e96b64a754b"><div class="ttname"><a href="namespaceSVF.html#aa962cc1d782cc46553251e96b64a754b">SVF::PointerType</a></div><div class="ttdeci">llvm::PointerType PointerType</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00083">BasicTypes.h:83</a></div></div>
73
+ <div class="ttc" id="namespaceSVF_html_aa962cc1d782cc46553251e96b64a754b"><div class="ttname"><a href="namespaceSVF.html#aa962cc1d782cc46553251e96b64a754b">SVF::PointerType</a></div><div class="ttdeci">llvm::PointerType PointerType</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00062">BasicTypes.h:62</a></div></div>
74
74
  <div class="ttc" id="classSVF_1_1SymbolTableInfo_html_a8fc42c2b02317621d6aeb3c5f52d3ee8"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#a8fc42c2b02317621d6aeb3c5f52d3ee8">SVF::SymbolTableInfo::getFlattenedElemIdx</a></div><div class="ttdeci">u32_t getFlattenedElemIdx(const Type *T, u32_t origId)</div><div class="ttdoc">Flatterned element idx of an array or struct by considering stride. </div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00443">SymbolTableInfo.cpp:443</a></div></div>
75
- <div class="ttc" id="namespaceSVF_html_a9b707002523ece2ac54ca893ee9a2d4e"><div class="ttname"><a href="namespaceSVF.html#a9b707002523ece2ac54ca893ee9a2d4e">SVF::s32_t</a></div><div class="ttdeci">signed s32_t</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00086">SVFBasicTypes.h:86</a></div></div>
75
+ <div class="ttc" id="namespaceSVF_html_a9b707002523ece2ac54ca893ee9a2d4e"><div class="ttname"><a href="namespaceSVF.html#a9b707002523ece2ac54ca893ee9a2d4e">SVF::s32_t</a></div><div class="ttdeci">signed s32_t</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00082">SVFBasicTypes.h:82</a></div></div>
76
76
  <div class="ttc" id="SVFUtil_8h_html"><div class="ttname"><a href="SVFUtil_8h.html">SVFUtil.h</a></div></div>
77
77
  <div class="ttc" id="classSVF_1_1LocationSet_html_a5c2c1baa17a70b997824002e4c159cbd"><div class="ttname"><a href="classSVF_1_1LocationSet.html#a5c2c1baa17a70b997824002e4c159cbd">SVF::LocationSet::fldIdx</a></div><div class="ttdeci">s32_t fldIdx</div><div class="ttdoc">Accumulated Constant Offsets. </div><div class="ttdef"><b>Definition:</b> <a href="LocationSet_8h_source.html#l00132">LocationSet.h:132</a></div></div>
78
- <div class="ttc" id="namespaceSVF_html_adefcb50414ea999d70cea5ccdbcb98d7"><div class="ttname"><a href="namespaceSVF.html#adefcb50414ea999d70cea5ccdbcb98d7">SVF::ConstantInt</a></div><div class="ttdeci">llvm::ConstantInt ConstantInt</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00088">BasicTypes.h:88</a></div></div>
78
+ <div class="ttc" id="namespaceSVF_html_adefcb50414ea999d70cea5ccdbcb98d7"><div class="ttname"><a href="namespaceSVF.html#adefcb50414ea999d70cea5ccdbcb98d7">SVF::ConstantInt</a></div><div class="ttdeci">llvm::ConstantInt ConstantInt</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00067">BasicTypes.h:67</a></div></div>
79
79
  <div class="ttc" id="classSVF_1_1LocationSet_html_ad8e250859aa1cf6ce18c6c0b7bbb2710"><div class="ttname"><a href="classSVF_1_1LocationSet.html#ad8e250859aa1cf6ce18c6c0b7bbb2710">SVF::LocationSet::accumulateConstantOffset</a></div><div class="ttdeci">s32_t accumulateConstantOffset() const</div><div class="ttdoc">Return accumulated constant offset given OffsetValueVec. </div><div class="ttdef"><b>Definition:</b> <a href="LocationSet_8cpp_source.html#l00118">LocationSet.cpp:118</a></div></div>
80
80
  <div class="ttc" id="classSVF_1_1LocationSet_html_afc0f702b6cce26861b409130fe5e019f"><div class="ttname"><a href="classSVF_1_1LocationSet.html#afc0f702b6cce26861b409130fe5e019f">SVF::LocationSet::computeAllLocations</a></div><div class="ttdeci">NodeBS computeAllLocations() const</div><div class="ttdoc">Compute all possible locations according to offset and number-stride pairs. </div><div class="ttdef"><b>Definition:</b> <a href="LocationSet_8cpp_source.html#l00153">LocationSet.cpp:153</a></div></div>
81
- <div class="ttc" id="namespaceSVF_html_ad42bff8d0a7d60a085aa32d10f4955af"><div class="ttname"><a href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">SVF::u32_t</a></div><div class="ttdeci">unsigned u32_t</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00085">SVFBasicTypes.h:85</a></div></div>
81
+ <div class="ttc" id="namespaceSVF_html_ad42bff8d0a7d60a085aa32d10f4955af"><div class="ttname"><a href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">SVF::u32_t</a></div><div class="ttdeci">unsigned u32_t</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00081">SVFBasicTypes.h:81</a></div></div>
82
82
  <div class="ttc" id="classSVF_1_1LocationSet_html_aa2682a73f1ab2c32326fb4e0d5b3586b"><div class="ttname"><a href="classSVF_1_1LocationSet.html#aa2682a73f1ab2c32326fb4e0d5b3586b">SVF::LocationSet::addOffsetValue</a></div><div class="ttdeci">bool addOffsetValue(const Value *offsetValue, const Type *type)</div><div class="ttdef"><b>Definition:</b> <a href="LocationSet_8cpp_source.html#l00042">LocationSet.cpp:42</a></div></div>
83
83
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a817a63e8330530cb18e077556f7ce518"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a817a63e8330530cb18e077556f7ce518">SVF::SVFUtil::type2String</a></div><div class="ttdeci">const std::string type2String(const Type *type)</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8cpp_source.html#l00456">SVFUtil.cpp:456</a></div></div>
84
- <div class="ttc" id="classSVF_1_1SparseBitVector_html_abbd0e0cf759fad7858224ed8a63aade8"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#abbd0e0cf759fad7858224ed8a63aade8">SVF::SparseBitVector::contains</a></div><div class="ttdeci">bool contains(const SparseBitVector&lt; ElementSize &gt; &amp;RHS) const</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l01071">SparseBitVector.h:1071</a></div></div>
84
+ <div class="ttc" id="classSVF_1_1SparseBitVector_html_abbd0e0cf759fad7858224ed8a63aade8"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#abbd0e0cf759fad7858224ed8a63aade8">SVF::SparseBitVector::contains</a></div><div class="ttdeci">bool contains(const SparseBitVector&lt; ElementSize &gt; &amp;RHS) const</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l01073">SparseBitVector.h:1073</a></div></div>
85
85
  <div class="ttc" id="cJSON_8cpp_html_a3f9a0d3265a6254722587175dac3e4dc"><div class="ttname"><a href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a></div><div class="ttdeci">newitem type</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8cpp_source.html#l02739">cJSON.cpp:2739</a></div></div>
86
86
  <div class="ttc" id="namespaceSVFUtil_html"><div class="ttname"><a href="namespaceSVFUtil.html">SVFUtil</a></div></div>
87
- <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#l00078">BasicTypes.h:78</a></div></div>
87
+ <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#l00057">BasicTypes.h:57</a></div></div>
88
88
  <div class="ttc" id="classSVF_1_1LocationSet_html_a67387c3b42fcc1bb3ee8fe85bda02ba8"><div class="ttname"><a href="classSVF_1_1LocationSet.html#a67387c3b42fcc1bb3ee8fe85bda02ba8">SVF::LocationSet::operator+</a></div><div class="ttdeci">LocationSet operator+(const LocationSet &amp;rhs) const</div><div class="ttdoc">Overload operators. </div><div class="ttdef"><b>Definition:</b> <a href="LocationSet_8cpp_source.html#l00160">LocationSet.cpp:160</a></div></div>
89
89
  <div class="ttc" id="classSVF_1_1LocationSet_html_ac66b56e1fa180be9b09d7bfe653ff311"><div class="ttname"><a href="classSVF_1_1LocationSet.html#ac66b56e1fa180be9b09d7bfe653ff311">SVF::LocationSet::getElementNum</a></div><div class="ttdeci">u32_t getElementNum(const Type *type) const</div><div class="ttdoc">Return element number of a type. </div><div class="ttdef"><b>Definition:</b> <a href="LocationSet_8cpp_source.html#l00063">LocationSet.cpp:63</a></div></div>
90
90
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_aed0b0b9f035057552a6a82154fd88e61"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVF::SVFUtil::outs</a></div><div class="ttdeci">std::ostream &amp; outs()</div><div class="ttdoc">Overwrite llvm::outs() </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00049">SVFUtil.h:49</a></div></div>
91
91
  <div class="ttc" id="classSVF_1_1SymbolTableInfo_html_a267169023fc4f8dd66b145f7231fec11"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#a267169023fc4f8dd66b145f7231fec11">SVF::SymbolTableInfo::SymbolInfo</a></div><div class="ttdeci">static SymbolTableInfo * SymbolInfo()</div><div class="ttdoc">Singleton design here to make sure we only have one instance during any analysis. ...</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00106">SymbolTableInfo.cpp:106</a></div></div>
92
92
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a7486fd8e5350879ed1cbd835c0d4e191"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a7486fd8e5350879ed1cbd835c0d4e191">SVF::SVFUtil::value2String</a></div><div class="ttdeci">const std::string value2String(const Value *value)</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8cpp_source.html#l00390">SVFUtil.cpp:390</a></div></div>
93
93
  <div class="ttc" id="classSVF_1_1LocationSet_html_a002a0c8ec2528835d809bf7eb3ebc83f"><div class="ttname"><a href="classSVF_1_1LocationSet.html#a002a0c8ec2528835d809bf7eb3ebc83f">SVF::LocationSet::LSRelation</a></div><div class="ttdeci">LSRelation</div><div class="ttdef"><b>Definition:</b> <a href="LocationSet_8h_source.html#l00052">LocationSet.h:52</a></div></div>
94
- <div class="ttc" id="classSVF_1_1SparseBitVector_html_a16756e0545fd3d50ab89f45a2e83bb79"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#a16756e0545fd3d50ab89f45a2e83bb79">SVF::SparseBitVector::intersects</a></div><div class="ttdeci">bool intersects(const SparseBitVector&lt; ElementSize &gt; *RHS) const</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l01029">SparseBitVector.h:1029</a></div></div>
94
+ <div class="ttc" id="classSVF_1_1SparseBitVector_html_a16756e0545fd3d50ab89f45a2e83bb79"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#a16756e0545fd3d50ab89f45a2e83bb79">SVF::SparseBitVector::intersects</a></div><div class="ttdeci">bool intersects(const SparseBitVector&lt; ElementSize &gt; *RHS) const</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l01031">SparseBitVector.h:1031</a></div></div>
95
95
  <div class="ttc" id="Options_8h_html"><div class="ttname"><a href="Options_8h.html">Options.h</a></div></div>
96
96
  <div class="ttc" id="cJSON_8cpp_html_a95bf816579e97b6f33bdb5e25ed6d5de"><div class="ttname"><a href="cJSON_8cpp.html#a95bf816579e97b6f33bdb5e25ed6d5de">offset</a></div><div class="ttdeci">buffer offset</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8cpp_source.html#l01113">cJSON.cpp:1113</a></div></div>
97
- <div class="ttc" id="classSVF_1_1SparseBitVector_html"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html">SVF::SparseBitVector</a></div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00460">SparseBitVector.h:460</a></div></div>
97
+ <div class="ttc" id="classSVF_1_1SparseBitVector_html"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html">SVF::SparseBitVector</a></div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00462">SparseBitVector.h:462</a></div></div>
98
98
  <div class="ttc" id="namespaceSVF_html"><div class="ttname"><a href="namespaceSVF.html">SVF</a></div><div class="ttdoc">for isBitcode </div><div class="ttdef"><b>Definition:</b> <a href="CFGNormalizer_8h_source.html#l00035">CFGNormalizer.h:35</a></div></div>
99
99
  <div class="ttc" id="classSVF_1_1SymbolTableInfo_html_aec579894eed558ea89740b68360187aa"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#aec579894eed558ea89740b68360187aa">SVF::SymbolTableInfo::getNumOfFlattenElements</a></div><div class="ttdeci">u32_t getNumOfFlattenElements(const Type *T)</div><div class="ttdoc">Number of flattenned elements of an array or struct. </div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00434">SymbolTableInfo.cpp:434</a></div></div>
100
100
  <div class="ttc" id="classSVF_1_1LocationSet_html"><div class="ttname"><a href="classSVF_1_1LocationSet.html">SVF::LocationSet</a></div><div class="ttdef"><b>Definition:</b> <a href="LocationSet_8h_source.html#l00048">LocationSet.h:48</a></div></div>
101
- <div class="ttc" id="classSVF_1_1SparseBitVector_html_a61bd86909a141f9de873d92c0f904832"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#a61bd86909a141f9de873d92c0f904832">SVF::SparseBitVector::set</a></div><div class="ttdeci">void set(unsigned Idx)</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00745">SparseBitVector.h:745</a></div></div>
102
- <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a8182be247907420db00837cef9bcfa70"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">SVF::SVFUtil::dyn_cast</a></div><div class="ttdeci">LLVM_NODISCARD std::enable_if&lt;!is_simple_type&lt; Y &gt;::value, typename cast_retty&lt; X, const Y &gt;::ret_type &gt;::type dyn_cast(const Y &amp;Val)</div><div class="ttdef"><b>Definition:</b> <a href="Casting_8h_source.html#l00343">Casting.h:343</a></div></div>
101
+ <div class="ttc" id="classSVF_1_1SparseBitVector_html_a61bd86909a141f9de873d92c0f904832"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#a61bd86909a141f9de873d92c0f904832">SVF::SparseBitVector::set</a></div><div class="ttdeci">void set(unsigned Idx)</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00747">SparseBitVector.h:747</a></div></div>
102
+ <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a8182be247907420db00837cef9bcfa70"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">SVF::SVFUtil::dyn_cast</a></div><div class="ttdeci">LLVM_NODISCARD std::enable_if&lt;!is_simple_type&lt; Y &gt;::value, typename cast_retty&lt; X, const Y &gt;::ret_type &gt;::type dyn_cast(const Y &amp;Val)</div><div class="ttdef"><b>Definition:</b> <a href="Casting_8h_source.html#l00344">Casting.h:344</a></div></div>
103
103
  <div class="ttc" id="cJSON_8h_html_ad4c68ea99a26b0a98ad9a79982960458"><div class="ttname"><a href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">string</a></div><div class="ttdeci">const char *const string</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8h_source.html#l00172">cJSON.h:172</a></div></div>
104
- <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#l00071">BasicTypes.h:71</a></div></div>
104
+ <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#l00050">BasicTypes.h:50</a></div></div>
105
105
  <div class="ttc" id="classSVF_1_1LocationSet_html_a53f1b2e417682a56d45dfb1f7d5ccd1c"><div class="ttname"><a href="classSVF_1_1LocationSet.html#a53f1b2e417682a56d45dfb1f7d5ccd1c">SVF::LocationSet::dump</a></div><div class="ttdeci">std::string dump() const</div><div class="ttdoc">Dump location set. </div><div class="ttdef"><b>Definition:</b> <a href="LocationSet_8cpp_source.html#l00219">LocationSet.cpp:219</a></div></div>
106
106
  <div class="ttc" id="classSVF_1_1LocationSet_html_a4e839125b32c7cb3ad07fbec6f203c10"><div class="ttname"><a href="classSVF_1_1LocationSet.html#a4e839125b32c7cb3ad07fbec6f203c10">SVF::LocationSet::checkRelation</a></div><div class="ttdeci">LSRelation checkRelation(const LocationSet &amp;LHS, const LocationSet &amp;RHS)</div><div class="ttdoc">Check relations of two location sets. </div><div class="ttdef"><b>Definition:</b> <a href="LocationSet_8cpp_source.html#l00197">LocationSet.cpp:197</a></div></div>
107
107
  <div class="ttc" id="classSVF_1_1LocationSet_html_a5a5ca0b81da0b34ab426bc6a28ed346c"><div class="ttname"><a href="classSVF_1_1LocationSet.html#a5a5ca0b81da0b34ab426bc6a28ed346c">SVF::LocationSet::getOffsetValueVec</a></div><div class="ttdeci">const OffsetValueVec &amp; getOffsetValueVec() const</div><div class="ttdef"><b>Definition:</b> <a href="LocationSet_8h_source.html#l00098">LocationSet.h:98</a></div></div>
@@ -69,16 +69,16 @@ $(function() {
69
69
  <a href="LocationSet_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">//===- LocationSet.h -- Location set of abstract object-----------------------//</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">// SVF: Static Value-Flow Analysis</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// Copyright (C) &lt;2013-&gt; &lt;Yulei Sui&gt;</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// This program is free software: you can redistribute it and/or modify</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">// the Free Software Foundation, either version 3 of the License, or</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// (at your option) any later version.</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// GNU General Public License for more details.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// along with this program. If not, see &lt;http://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">//===----------------------------------------------------------------------===//</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment"> * @file: LocationSet.h</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment"> * @author: yesen</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment"> * @date: 26 Sep 2014</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="comment"> * LICENSE</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#ifndef LOCATIONSET_H_</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#define LOCATIONSET_H_</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="Util_2BasicTypes_8h.html">Util/BasicTypes.h</a>&quot;</span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespaceSVF.html">SVF</a></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;{</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="comment"> * Location set represents a set of locations in a memory block with following offsets:</span></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="comment"> * { offset + \sum_{i=0}^N (stride_i * j_i) | 0 \leq j_i &lt; M_i }</span></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="comment"> * where N is the size of number-stride pair vector, M_i (stride_i) is i-th number (stride)</span></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="comment"> * in the number-stride pair vector.</span></div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="classSVF_1_1LocationSet.html"> 48</a></span>&#160;<span class="keyword">class </span><a class="code" href="classSVF_1_1LocationSet.html">LocationSet</a></div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;{</div><div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="classSVF_1_1LocationSet.html#a32ddec529ccbf4ea6336e5fd765164d8"> 50</a></span>&#160; <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classSVF_1_1SymbolTableInfo.html">SymbolTableInfo</a>;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="classSVF_1_1LocationSet.html#a002a0c8ec2528835d809bf7eb3ebc83f"> 52</a></span>&#160; <span class="keyword">enum</span> <a class="code" href="classSVF_1_1LocationSet.html#a002a0c8ec2528835d809bf7eb3ebc83f">LSRelation</a></div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; {</div><div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="classSVF_1_1LocationSet.html#a002a0c8ec2528835d809bf7eb3ebc83fa2241035beb87cdd725d979371537d500"> 54</a></span>&#160; <a class="code" href="classSVF_1_1LocationSet.html#a002a0c8ec2528835d809bf7eb3ebc83fafb9c7d6d06f6f3ab60bd575aaca5d14d">NonOverlap</a>, <a class="code" href="classSVF_1_1LocationSet.html#a002a0c8ec2528835d809bf7eb3ebc83fa8c76affbe3b39db53e8046cd5d79903c">Overlap</a>, <a class="code" href="classSVF_1_1LocationSet.html#a002a0c8ec2528835d809bf7eb3ebc83faf6a3c1bcfe2d3f79b227b649e89edd72">Subset</a>, <a class="code" href="classSVF_1_1LocationSet.html#a002a0c8ec2528835d809bf7eb3ebc83fa2241035beb87cdd725d979371537d500">Superset</a>, <a class="code" href="classSVF_1_1LocationSet.html#a002a0c8ec2528835d809bf7eb3ebc83fa9b2a5e3c7f7873ac4491ff231e0601d2">Same</a></div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; };</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;</div><div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="classSVF_1_1LocationSet.html#a9bb7e08f7cfb2859d25b0e68e21fec89"> 57</a></span>&#160; <span class="keyword">typedef</span> std::vector&lt;std::pair&lt;const Value*, const Type*&gt; &gt; <a class="code" href="classSVF_1_1LocationSet.html#a9bb7e08f7cfb2859d25b0e68e21fec89">OffsetValueVec</a>;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;</div><div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="classSVF_1_1LocationSet.html#a40cc38cbc1a9433d1d83724767dc41ba"> 60</a></span>&#160; <a class="code" href="classSVF_1_1LocationSet.html#a40cc38cbc1a9433d1d83724767dc41ba">LocationSet</a>(<a class="code" href="namespaceSVF.html#a9b707002523ece2ac54ca893ee9a2d4e">s32_t</a> o = 0) : <a class="code" href="classSVF_1_1LocationSet.html#a5c2c1baa17a70b997824002e4c159cbd">fldIdx</a>(o)</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; {}</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div><div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="classSVF_1_1LocationSet.html#a290c7fe38704552fd66ad06e5deeaca9"> 64</a></span>&#160; <a class="code" href="classSVF_1_1LocationSet.html#a290c7fe38704552fd66ad06e5deeaca9">LocationSet</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1LocationSet.html">LocationSet</a>&amp; ls)</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; : <a class="code" href="classSVF_1_1LocationSet.html#a5c2c1baa17a70b997824002e4c159cbd">fldIdx</a>(ls.<a class="code" href="classSVF_1_1LocationSet.html#a5c2c1baa17a70b997824002e4c159cbd">fldIdx</a>), <a class="code" href="classSVF_1_1LocationSet.html#a5a2792b8b914557a9ccf0e57d0ed8b30">offsetValues</a>(ls.<a class="code" href="classSVF_1_1LocationSet.html#a5a5ca0b81da0b34ab426bc6a28ed346c">getOffsetValueVec</a>())</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; {</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; }</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div><div class="line"><a name="l00069"></a><span class="lineno"><a class="line" href="classSVF_1_1LocationSet.html#a00ae12aee8018f1eb88f011e52762be9"> 69</a></span>&#160; <a class="code" href="classSVF_1_1LocationSet.html#a00ae12aee8018f1eb88f011e52762be9">~LocationSet</a>() {}</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <a class="code" href="classSVF_1_1LocationSet.html">LocationSet</a> <a class="code" href="classSVF_1_1LocationSet.html#a67387c3b42fcc1bb3ee8fe85bda02ba8">operator+ </a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1LocationSet.html">LocationSet</a>&amp; rhs) <span class="keyword">const</span>;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1LocationSet.html#a511e8324d88624013eed04e8c2a6cbc4">operator&lt; </a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1LocationSet.html">LocationSet</a>&amp; rhs) <span class="keyword">const</span>;</div><div class="line"><a name="l00075"></a><span class="lineno"><a class="line" href="classSVF_1_1LocationSet.html#a15975ec54c93c39fb1ed59599e5ec107"> 75</a></span>&#160; <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1LocationSet.html">LocationSet</a>&amp; <a class="code" href="classSVF_1_1LocationSet.html#a15975ec54c93c39fb1ed59599e5ec107">operator= </a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1LocationSet.html">LocationSet</a>&amp; rhs)</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; {</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <a class="code" href="classSVF_1_1LocationSet.html#a5c2c1baa17a70b997824002e4c159cbd">fldIdx</a> = rhs.<a class="code" href="classSVF_1_1LocationSet.html#a5c2c1baa17a70b997824002e4c159cbd">fldIdx</a>;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <a class="code" href="classSVF_1_1LocationSet.html#a5a2792b8b914557a9ccf0e57d0ed8b30">offsetValues</a> = rhs.<a class="code" href="classSVF_1_1LocationSet.html#a5a5ca0b81da0b34ab426bc6a28ed346c">getOffsetValueVec</a>();</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; }</div><div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="classSVF_1_1LocationSet.html#a1b141afb9a38d12423f66b2dfe6bf232"> 81</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1LocationSet.html#a1b141afb9a38d12423f66b2dfe6bf232">operator==</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1LocationSet.html">LocationSet</a>&amp; rhs)<span class="keyword"> const</span></div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <span class="keywordflow">return</span> this-&gt;<a class="code" href="classSVF_1_1LocationSet.html#a5c2c1baa17a70b997824002e4c159cbd">fldIdx</a> == rhs.<a class="code" href="classSVF_1_1LocationSet.html#a5c2c1baa17a70b997824002e4c159cbd">fldIdx</a></div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; &amp;&amp; this-&gt;<a class="code" href="classSVF_1_1LocationSet.html#a5a2792b8b914557a9ccf0e57d0ed8b30">offsetValues</a> == rhs.<a class="code" href="classSVF_1_1LocationSet.html#a5a2792b8b914557a9ccf0e57d0ed8b30">offsetValues</a>;</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; }</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;</div><div class="line"><a name="l00090"></a><span class="lineno"><a class="line" href="classSVF_1_1LocationSet.html#a63c5c8e03b35e0d0cea94137d309c853"> 90</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a9b707002523ece2ac54ca893ee9a2d4e">s32_t</a> <a class="code" href="classSVF_1_1LocationSet.html#a63c5c8e03b35e0d0cea94137d309c853">accumulateConstantFieldIdx</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1LocationSet.html#a5c2c1baa17a70b997824002e4c159cbd">fldIdx</a>;</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; }</div><div class="line"><a name="l00094"></a><span class="lineno"><a class="line" href="classSVF_1_1LocationSet.html#abe990543374ebd8c1b3ee0d37c83eb8f"> 94</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1LocationSet.html#abe990543374ebd8c1b3ee0d37c83eb8f">setFldIdx</a>(<a class="code" href="namespaceSVF.html#a9b707002523ece2ac54ca893ee9a2d4e">s32_t</a> idx)</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; {</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <a class="code" href="classSVF_1_1LocationSet.html#a5c2c1baa17a70b997824002e4c159cbd">fldIdx</a> = idx;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; }</div><div class="line"><a name="l00098"></a><span class="lineno"><a class="line" href="classSVF_1_1LocationSet.html#a5a5ca0b81da0b34ab426bc6a28ed346c"> 98</a></span>&#160; <span class="keyword">inline</span> <span class="keyword">const</span> OffsetValueVec&amp; <a class="code" href="classSVF_1_1LocationSet.html#a5a5ca0b81da0b34ab426bc6a28ed346c">getOffsetValueVec</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1LocationSet.html#a5a2792b8b914557a9ccf0e57d0ed8b30">offsetValues</a>;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; }</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <a class="code" href="namespaceSVF.html#a9b707002523ece2ac54ca893ee9a2d4e">s32_t</a> <a class="code" href="classSVF_1_1LocationSet.html#ad8e250859aa1cf6ce18c6c0b7bbb2710">accumulateConstantOffset</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1LocationSet.html#ac66b56e1fa180be9b09d7bfe653ff311">getElementNum</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a>* <a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>) <span class="keyword">const</span>;</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1LocationSet.html#aa2682a73f1ab2c32326fb4e0d5b3586b">addOffsetValue</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* offsetValue, <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a>* type);</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1LocationSet.html#a4a9185282308c50f86fdf66f7060373d">isConstantOffset</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;</div><div class="line"><a name="l00116"></a><span class="lineno"><a class="line" href="classSVF_1_1LocationSet.html#a0e1cddc4228e310c95f68c661c7b94c8"> 116</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1LocationSet.html#a0e1cddc4228e310c95f68c661c7b94c8">intersects</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1LocationSet.html">LocationSet</a>&amp; RHS)<span class="keyword"> const</span></div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1LocationSet.html#afc0f702b6cce26861b409130fe5e019f">computeAllLocations</a>().<a class="code" href="classSVF_1_1SparseBitVector.html#a16756e0545fd3d50ab89f45a2e83bb79">intersects</a>(RHS.<a class="code" href="classSVF_1_1LocationSet.html#afc0f702b6cce26861b409130fe5e019f">computeAllLocations</a>());</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; }</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="classSVF_1_1LocationSet.html#a53f1b2e417682a56d45dfb1f7d5ccd1c">dump</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <a class="code" href="classSVF_1_1LocationSet.html#a002a0c8ec2528835d809bf7eb3ebc83f">LSRelation</a> <a class="code" href="classSVF_1_1LocationSet.html#a4e839125b32c7cb3ad07fbec6f203c10">checkRelation</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1LocationSet.html">LocationSet</a>&amp; LHS, <span class="keyword">const</span> <a class="code" href="classSVF_1_1LocationSet.html">LocationSet</a>&amp; RHS);</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a> <a class="code" href="classSVF_1_1LocationSet.html#afc0f702b6cce26861b409130fe5e019f">computeAllLocations</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;</div><div class="line"><a name="l00132"></a><span class="lineno"><a class="line" href="classSVF_1_1LocationSet.html#a5c2c1baa17a70b997824002e4c159cbd"> 132</a></span>&#160; <a class="code" href="namespaceSVF.html#a9b707002523ece2ac54ca893ee9a2d4e">s32_t</a> <a class="code" href="classSVF_1_1LocationSet.html#a5c2c1baa17a70b997824002e4c159cbd">fldIdx</a>; </div><div class="line"><a name="l00133"></a><span class="lineno"><a class="line" href="classSVF_1_1LocationSet.html#a5a2792b8b914557a9ccf0e57d0ed8b30"> 133</a></span>&#160; OffsetValueVec <a class="code" href="classSVF_1_1LocationSet.html#a5a2792b8b914557a9ccf0e57d0ed8b30">offsetValues</a>; </div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;};</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;} <span class="comment">// End namespace SVF</span></div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;</div><div class="line"><a name="l00138"></a><span class="lineno"><a class="line" href="structstd_1_1hash_3_01SVF_1_1LocationSet_01_4.html"> 138</a></span>&#160;<span class="keyword">template</span> &lt;&gt; <span class="keyword">struct </span>std::hash&lt;<a class="code" href="namespaceSVF.html">SVF</a>::<a class="code" href="classSVF_1_1LocationSet.html#a40cc38cbc1a9433d1d83724767dc41ba">LocationSet</a>&gt;</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;{</div><div class="line"><a name="l00140"></a><span class="lineno"><a class="line" href="structstd_1_1hash_3_01SVF_1_1LocationSet_01_4.html#a701401db0e876205424e9cc797fb5984"> 140</a></span>&#160; <span class="keywordtype">size_t</span> <a class="code" href="structstd_1_1hash_3_01SVF_1_1LocationSet_01_4.html#a701401db0e876205424e9cc797fb5984">operator()</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1LocationSet.html">SVF::LocationSet</a> &amp;ls)<span class="keyword"> const</span></div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <a class="code" href="structSVF_1_1Hash.html">SVF::Hash&lt;std::pair&lt;SVF::NodeID, SVF::NodeID&gt;</a>&gt; h;</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; std::hash&lt;SVF::LocationSet::OffsetValueVec&gt; v;</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <span class="keywordflow">return</span> h(std::make_pair(ls.<a class="code" href="classSVF_1_1LocationSet.html#a63c5c8e03b35e0d0cea94137d309c853">accumulateConstantFieldIdx</a>(), v(ls.<a class="code" href="classSVF_1_1LocationSet.html#a5a5ca0b81da0b34ab426bc6a28ed346c">getOffsetValueVec</a>())));</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; }</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;};</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* LOCATIONSET_H_ */</span><span class="preprocessor"></span></div><div class="ttc" id="classSVF_1_1LocationSet_html_a4a9185282308c50f86fdf66f7060373d"><div class="ttname"><a href="classSVF_1_1LocationSet.html#a4a9185282308c50f86fdf66f7060373d">SVF::LocationSet::isConstantOffset</a></div><div class="ttdeci">bool isConstantOffset() const</div><div class="ttdoc">Return TRUE if this is a constant location set. </div><div class="ttdef"><b>Definition:</b> <a href="LocationSet_8cpp_source.html#l00049">LocationSet.cpp:49</a></div></div>
70
70
  <div class="ttc" id="classSVF_1_1LocationSet_html_a0e1cddc4228e310c95f68c661c7b94c8"><div class="ttname"><a href="classSVF_1_1LocationSet.html#a0e1cddc4228e310c95f68c661c7b94c8">SVF::LocationSet::intersects</a></div><div class="ttdeci">bool intersects(const LocationSet &amp;RHS) const</div><div class="ttdoc">Return TRUE if we share any location in common with RHS. </div><div class="ttdef"><b>Definition:</b> <a href="LocationSet_8h_source.html#l00116">LocationSet.h:116</a></div></div>
71
71
  <div class="ttc" id="structstd_1_1hash_3_01SVF_1_1LocationSet_01_4_html_a701401db0e876205424e9cc797fb5984"><div class="ttname"><a href="structstd_1_1hash_3_01SVF_1_1LocationSet_01_4.html#a701401db0e876205424e9cc797fb5984">std::hash&lt; SVF::LocationSet &gt;::operator()</a></div><div class="ttdeci">size_t operator()(const SVF::LocationSet &amp;ls) const</div><div class="ttdef"><b>Definition:</b> <a href="LocationSet_8h_source.html#l00140">LocationSet.h:140</a></div></div>
72
- <div class="ttc" id="namespaceSVF_html_a1d008c0666c145622b81d427be64c52d"><div class="ttname"><a href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">SVF::Type</a></div><div class="ttdeci">llvm::Type Type</div><div class="ttdoc">LLVM Basic classes. </div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00064">BasicTypes.h:64</a></div></div>
72
+ <div class="ttc" id="namespaceSVF_html_a1d008c0666c145622b81d427be64c52d"><div class="ttname"><a href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">SVF::Type</a></div><div class="ttdeci">llvm::Type Type</div><div class="ttdoc">LLVM Basic classes. </div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00047">BasicTypes.h:47</a></div></div>
73
73
  <div class="ttc" id="Util_2BasicTypes_8h_html"><div class="ttname"><a href="Util_2BasicTypes_8h.html">BasicTypes.h</a></div></div>
74
74
  <div class="ttc" id="classSVF_1_1LocationSet_html_a9bb7e08f7cfb2859d25b0e68e21fec89"><div class="ttname"><a href="classSVF_1_1LocationSet.html#a9bb7e08f7cfb2859d25b0e68e21fec89">SVF::LocationSet::OffsetValueVec</a></div><div class="ttdeci">std::vector&lt; std::pair&lt; const Value *, const Type * &gt; &gt; OffsetValueVec</div><div class="ttdef"><b>Definition:</b> <a href="LocationSet_8h_source.html#l00057">LocationSet.h:57</a></div></div>
75
- <div class="ttc" id="structSVF_1_1Hash_html"><div class="ttname"><a href="structSVF_1_1Hash.html">SVF::Hash</a></div><div class="ttdoc">provide extra hash function for std::pair handling </div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00056">SVFBasicTypes.h:56</a></div></div>
76
- <div class="ttc" id="namespaceSVF_html_a9b707002523ece2ac54ca893ee9a2d4e"><div class="ttname"><a href="namespaceSVF.html#a9b707002523ece2ac54ca893ee9a2d4e">SVF::s32_t</a></div><div class="ttdeci">signed s32_t</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00086">SVFBasicTypes.h:86</a></div></div>
75
+ <div class="ttc" id="structSVF_1_1Hash_html"><div class="ttname"><a href="structSVF_1_1Hash.html">SVF::Hash</a></div><div class="ttdoc">provide extra hash function for std::pair handling </div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00052">SVFBasicTypes.h:52</a></div></div>
76
+ <div class="ttc" id="namespaceSVF_html_a9b707002523ece2ac54ca893ee9a2d4e"><div class="ttname"><a href="namespaceSVF.html#a9b707002523ece2ac54ca893ee9a2d4e">SVF::s32_t</a></div><div class="ttdeci">signed s32_t</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00082">SVFBasicTypes.h:82</a></div></div>
77
77
  <div class="ttc" id="classSVF_1_1LocationSet_html_a5c2c1baa17a70b997824002e4c159cbd"><div class="ttname"><a href="classSVF_1_1LocationSet.html#a5c2c1baa17a70b997824002e4c159cbd">SVF::LocationSet::fldIdx</a></div><div class="ttdeci">s32_t fldIdx</div><div class="ttdoc">Accumulated Constant Offsets. </div><div class="ttdef"><b>Definition:</b> <a href="LocationSet_8h_source.html#l00132">LocationSet.h:132</a></div></div>
78
78
  <div class="ttc" id="classSVF_1_1LocationSet_html_ad8e250859aa1cf6ce18c6c0b7bbb2710"><div class="ttname"><a href="classSVF_1_1LocationSet.html#ad8e250859aa1cf6ce18c6c0b7bbb2710">SVF::LocationSet::accumulateConstantOffset</a></div><div class="ttdeci">s32_t accumulateConstantOffset() const</div><div class="ttdoc">Return accumulated constant offset given OffsetValueVec. </div><div class="ttdef"><b>Definition:</b> <a href="LocationSet_8cpp_source.html#l00118">LocationSet.cpp:118</a></div></div>
79
79
  <div class="ttc" id="classSVF_1_1LocationSet_html_a002a0c8ec2528835d809bf7eb3ebc83fa8c76affbe3b39db53e8046cd5d79903c"><div class="ttname"><a href="classSVF_1_1LocationSet.html#a002a0c8ec2528835d809bf7eb3ebc83fa8c76affbe3b39db53e8046cd5d79903c">SVF::LocationSet::Overlap</a></div><div class="ttdef"><b>Definition:</b> <a href="LocationSet_8h_source.html#l00054">LocationSet.h:54</a></div></div>
80
80
  <div class="ttc" id="classSVF_1_1LocationSet_html_afc0f702b6cce26861b409130fe5e019f"><div class="ttname"><a href="classSVF_1_1LocationSet.html#afc0f702b6cce26861b409130fe5e019f">SVF::LocationSet::computeAllLocations</a></div><div class="ttdeci">NodeBS computeAllLocations() const</div><div class="ttdoc">Compute all possible locations according to offset and number-stride pairs. </div><div class="ttdef"><b>Definition:</b> <a href="LocationSet_8cpp_source.html#l00153">LocationSet.cpp:153</a></div></div>
81
- <div class="ttc" id="namespaceSVF_html_ad42bff8d0a7d60a085aa32d10f4955af"><div class="ttname"><a href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">SVF::u32_t</a></div><div class="ttdeci">unsigned u32_t</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00085">SVFBasicTypes.h:85</a></div></div>
81
+ <div class="ttc" id="namespaceSVF_html_ad42bff8d0a7d60a085aa32d10f4955af"><div class="ttname"><a href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">SVF::u32_t</a></div><div class="ttdeci">unsigned u32_t</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00081">SVFBasicTypes.h:81</a></div></div>
82
82
  <div class="ttc" id="classSVF_1_1LocationSet_html_a00ae12aee8018f1eb88f011e52762be9"><div class="ttname"><a href="classSVF_1_1LocationSet.html#a00ae12aee8018f1eb88f011e52762be9">SVF::LocationSet::~LocationSet</a></div><div class="ttdeci">~LocationSet()</div><div class="ttdef"><b>Definition:</b> <a href="LocationSet_8h_source.html#l00069">LocationSet.h:69</a></div></div>
83
83
  <div class="ttc" id="classSVF_1_1LocationSet_html_aa2682a73f1ab2c32326fb4e0d5b3586b"><div class="ttname"><a href="classSVF_1_1LocationSet.html#aa2682a73f1ab2c32326fb4e0d5b3586b">SVF::LocationSet::addOffsetValue</a></div><div class="ttdeci">bool addOffsetValue(const Value *offsetValue, const Type *type)</div><div class="ttdef"><b>Definition:</b> <a href="LocationSet_8cpp_source.html#l00042">LocationSet.cpp:42</a></div></div>
84
84
  <div class="ttc" id="classSVF_1_1LocationSet_html_a002a0c8ec2528835d809bf7eb3ebc83faf6a3c1bcfe2d3f79b227b649e89edd72"><div class="ttname"><a href="classSVF_1_1LocationSet.html#a002a0c8ec2528835d809bf7eb3ebc83faf6a3c1bcfe2d3f79b227b649e89edd72">SVF::LocationSet::Subset</a></div><div class="ttdef"><b>Definition:</b> <a href="LocationSet_8h_source.html#l00054">LocationSet.h:54</a></div></div>
@@ -93,15 +93,15 @@ $(function() {
93
93
  <div class="ttc" id="classSVF_1_1LocationSet_html_a002a0c8ec2528835d809bf7eb3ebc83fa9b2a5e3c7f7873ac4491ff231e0601d2"><div class="ttname"><a href="classSVF_1_1LocationSet.html#a002a0c8ec2528835d809bf7eb3ebc83fa9b2a5e3c7f7873ac4491ff231e0601d2">SVF::LocationSet::Same</a></div><div class="ttdef"><b>Definition:</b> <a href="LocationSet_8h_source.html#l00054">LocationSet.h:54</a></div></div>
94
94
  <div class="ttc" id="classSVF_1_1LocationSet_html_a002a0c8ec2528835d809bf7eb3ebc83f"><div class="ttname"><a href="classSVF_1_1LocationSet.html#a002a0c8ec2528835d809bf7eb3ebc83f">SVF::LocationSet::LSRelation</a></div><div class="ttdeci">LSRelation</div><div class="ttdef"><b>Definition:</b> <a href="LocationSet_8h_source.html#l00052">LocationSet.h:52</a></div></div>
95
95
  <div class="ttc" id="classSVF_1_1LocationSet_html_a40cc38cbc1a9433d1d83724767dc41ba"><div class="ttname"><a href="classSVF_1_1LocationSet.html#a40cc38cbc1a9433d1d83724767dc41ba">SVF::LocationSet::LocationSet</a></div><div class="ttdeci">LocationSet(s32_t o=0)</div><div class="ttdoc">Constructor. </div><div class="ttdef"><b>Definition:</b> <a href="LocationSet_8h_source.html#l00060">LocationSet.h:60</a></div></div>
96
- <div class="ttc" id="classSVF_1_1SparseBitVector_html_a16756e0545fd3d50ab89f45a2e83bb79"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#a16756e0545fd3d50ab89f45a2e83bb79">SVF::SparseBitVector::intersects</a></div><div class="ttdeci">bool intersects(const SparseBitVector&lt; ElementSize &gt; *RHS) const</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l01029">SparseBitVector.h:1029</a></div></div>
97
- <div class="ttc" id="classSVF_1_1SparseBitVector_html"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html">SVF::SparseBitVector</a></div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00460">SparseBitVector.h:460</a></div></div>
96
+ <div class="ttc" id="classSVF_1_1SparseBitVector_html_a16756e0545fd3d50ab89f45a2e83bb79"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#a16756e0545fd3d50ab89f45a2e83bb79">SVF::SparseBitVector::intersects</a></div><div class="ttdeci">bool intersects(const SparseBitVector&lt; ElementSize &gt; *RHS) const</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l01031">SparseBitVector.h:1031</a></div></div>
97
+ <div class="ttc" id="classSVF_1_1SparseBitVector_html"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html">SVF::SparseBitVector</a></div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00462">SparseBitVector.h:462</a></div></div>
98
98
  <div class="ttc" id="namespaceSVF_html"><div class="ttname"><a href="namespaceSVF.html">SVF</a></div><div class="ttdoc">for isBitcode </div><div class="ttdef"><b>Definition:</b> <a href="CFGNormalizer_8h_source.html#l00035">CFGNormalizer.h:35</a></div></div>
99
99
  <div class="ttc" id="classSVF_1_1LocationSet_html_a290c7fe38704552fd66ad06e5deeaca9"><div class="ttname"><a href="classSVF_1_1LocationSet.html#a290c7fe38704552fd66ad06e5deeaca9">SVF::LocationSet::LocationSet</a></div><div class="ttdeci">LocationSet(const LocationSet &amp;ls)</div><div class="ttdoc">Copy Constructor. </div><div class="ttdef"><b>Definition:</b> <a href="LocationSet_8h_source.html#l00064">LocationSet.h:64</a></div></div>
100
100
  <div class="ttc" id="classSVF_1_1LocationSet_html"><div class="ttname"><a href="classSVF_1_1LocationSet.html">SVF::LocationSet</a></div><div class="ttdef"><b>Definition:</b> <a href="LocationSet_8h_source.html#l00048">LocationSet.h:48</a></div></div>
101
101
  <div class="ttc" id="classSVF_1_1LocationSet_html_a15975ec54c93c39fb1ed59599e5ec107"><div class="ttname"><a href="classSVF_1_1LocationSet.html#a15975ec54c93c39fb1ed59599e5ec107">SVF::LocationSet::operator=</a></div><div class="ttdeci">const LocationSet &amp; operator=(const LocationSet &amp;rhs)</div><div class="ttdef"><b>Definition:</b> <a href="LocationSet_8h_source.html#l00075">LocationSet.h:75</a></div></div>
102
102
  <div class="ttc" id="classSVF_1_1LocationSet_html_a002a0c8ec2528835d809bf7eb3ebc83fafb9c7d6d06f6f3ab60bd575aaca5d14d"><div class="ttname"><a href="classSVF_1_1LocationSet.html#a002a0c8ec2528835d809bf7eb3ebc83fafb9c7d6d06f6f3ab60bd575aaca5d14d">SVF::LocationSet::NonOverlap</a></div><div class="ttdef"><b>Definition:</b> <a href="LocationSet_8h_source.html#l00054">LocationSet.h:54</a></div></div>
103
103
  <div class="ttc" id="cJSON_8h_html_ad4c68ea99a26b0a98ad9a79982960458"><div class="ttname"><a href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">string</a></div><div class="ttdeci">const char *const string</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8h_source.html#l00172">cJSON.h:172</a></div></div>
104
- <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#l00071">BasicTypes.h:71</a></div></div>
104
+ <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#l00050">BasicTypes.h:50</a></div></div>
105
105
  <div class="ttc" id="classSVF_1_1LocationSet_html_a53f1b2e417682a56d45dfb1f7d5ccd1c"><div class="ttname"><a href="classSVF_1_1LocationSet.html#a53f1b2e417682a56d45dfb1f7d5ccd1c">SVF::LocationSet::dump</a></div><div class="ttdeci">std::string dump() const</div><div class="ttdoc">Dump location set. </div><div class="ttdef"><b>Definition:</b> <a href="LocationSet_8cpp_source.html#l00219">LocationSet.cpp:219</a></div></div>
106
106
  <div class="ttc" id="classSVF_1_1LocationSet_html_a4e839125b32c7cb3ad07fbec6f203c10"><div class="ttname"><a href="classSVF_1_1LocationSet.html#a4e839125b32c7cb3ad07fbec6f203c10">SVF::LocationSet::checkRelation</a></div><div class="ttdeci">LSRelation checkRelation(const LocationSet &amp;LHS, const LocationSet &amp;RHS)</div><div class="ttdoc">Check relations of two location sets. </div><div class="ttdef"><b>Definition:</b> <a href="LocationSet_8cpp_source.html#l00197">LocationSet.cpp:197</a></div></div>
107
107
  <div class="ttc" id="classSVF_1_1LocationSet_html_a5a5ca0b81da0b34ab426bc6a28ed346c"><div class="ttname"><a href="classSVF_1_1LocationSet.html#a5a5ca0b81da0b34ab426bc6a28ed346c">SVF::LocationSet::getOffsetValueVec</a></div><div class="ttdeci">const OffsetValueVec &amp; getOffsetValueVec() const</div><div class="ttdef"><b>Definition:</b> <a href="LocationSet_8h_source.html#l00098">LocationSet.h:98</a></div></div>