svf-tools 1.0.459 → 1.0.460

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 (315) hide show
  1. package/SVF-doxygen/html/html/AndersenSCD_8cpp_source.html +1 -1
  2. package/SVF-doxygen/html/html/AndersenSFR_8cpp_source.html +4 -4
  3. package/SVF-doxygen/html/html/AndersenStat_8cpp_source.html +4 -4
  4. package/SVF-doxygen/html/html/Andersen_8cpp_source.html +10 -10
  5. package/SVF-doxygen/html/html/Andersen_8h_source.html +2 -2
  6. package/SVF-doxygen/html/html/Annotator_8h_source.html +1 -1
  7. package/SVF-doxygen/html/html/BreakConstantExpr_8cpp_source.html +1 -1
  8. package/SVF-doxygen/html/html/CHGBuilder_8cpp_source.html +12 -12
  9. package/SVF-doxygen/html/html/CHGBuilder_8h_source.html +3 -3
  10. package/SVF-doxygen/html/html/CHG_8cpp.html +2 -2
  11. package/SVF-doxygen/html/html/CHG_8cpp_source.html +8 -8
  12. package/SVF-doxygen/html/html/CHG_8h_source.html +2 -2
  13. package/SVF-doxygen/html/html/CPPUtil_8cpp_source.html +13 -13
  14. package/SVF-doxygen/html/html/CallGraphBuilder_8cpp_source.html +3 -3
  15. package/SVF-doxygen/html/html/ConsG_8cpp_source.html +2 -2
  16. package/SVF-doxygen/html/html/ConsG_8h_source.html +3 -3
  17. package/SVF-doxygen/html/html/ContextDDA_8cpp_source.html +7 -7
  18. package/SVF-doxygen/html/html/ContextDDA_8h_source.html +1 -1
  19. package/SVF-doxygen/html/html/CxtStmt_8h_source.html +2 -2
  20. package/SVF-doxygen/html/html/DCHG_8cpp_source.html +17 -17
  21. package/SVF-doxygen/html/html/DCHG_8h_source.html +8 -8
  22. package/SVF-doxygen/html/html/DDAClient_8cpp_source.html +3 -3
  23. package/SVF-doxygen/html/html/DDAPass_8cpp_source.html +2 -2
  24. package/SVF-doxygen/html/html/DDAStat_8cpp_source.html +1 -1
  25. package/SVF-doxygen/html/html/DDAVFSolver_8h_source.html +8 -8
  26. package/SVF-doxygen/html/html/DataFlowUtil_8cpp_source.html +4 -4
  27. package/SVF-doxygen/html/html/DataFlowUtil_8h_source.html +6 -6
  28. package/SVF-doxygen/html/html/ExeState_8cpp.html +1 -0
  29. package/SVF-doxygen/html/html/ExeState_8cpp_source.html +26 -25
  30. package/SVF-doxygen/html/html/ExeState_8h_source.html +13 -13
  31. package/SVF-doxygen/html/html/ExtAPI_8h_source.html +3 -3
  32. package/SVF-doxygen/html/html/FSMPTA_8h_source.html +1 -1
  33. package/SVF-doxygen/html/html/FileChecker_8h_source.html +1 -1
  34. package/SVF-doxygen/html/html/FlowDDA_8cpp_source.html +4 -4
  35. package/SVF-doxygen/html/html/FlowDDA_8h_source.html +1 -1
  36. package/SVF-doxygen/html/html/FlowSensitiveStat_8cpp_source.html +7 -7
  37. package/SVF-doxygen/html/html/FlowSensitiveTBHC_8cpp.html +2 -2
  38. package/SVF-doxygen/html/html/FlowSensitiveTBHC_8cpp_source.html +4 -4
  39. package/SVF-doxygen/html/html/FlowSensitiveTBHC_8h_source.html +2 -2
  40. package/SVF-doxygen/html/html/FlowSensitive_8cpp_source.html +1 -1
  41. package/SVF-doxygen/html/html/Graph2Json_8cpp_source.html +1 -1
  42. package/SVF-doxygen/html/html/ICFGBuilder_8cpp_source.html +6 -6
  43. package/SVF-doxygen/html/html/ICFGBuilder_8h_source.html +1 -1
  44. package/SVF-doxygen/html/html/ICFGNode_8h_source.html +2 -2
  45. package/SVF-doxygen/html/html/ICFG_8cpp_source.html +2 -2
  46. package/SVF-doxygen/html/html/ICFG_8h_source.html +1 -1
  47. package/SVF-doxygen/html/html/IRAnnotator_8h_source.html +5 -5
  48. package/SVF-doxygen/html/html/IRGraph_8cpp_source.html +7 -7
  49. package/SVF-doxygen/html/html/IRGraph_8h_source.html +21 -21
  50. package/SVF-doxygen/html/html/LLVMModule_8cpp_source.html +1 -1
  51. package/SVF-doxygen/html/html/LLVMModule_8h_source.html +3 -3
  52. package/SVF-doxygen/html/html/LLVMUtil_8cpp_source.html +9 -9
  53. package/SVF-doxygen/html/html/LLVMUtil_8h_source.html +6 -6
  54. package/SVF-doxygen/html/html/LeakChecker_8cpp_source.html +3 -3
  55. package/SVF-doxygen/html/html/LeakChecker_8h_source.html +1 -1
  56. package/SVF-doxygen/html/html/LocationSet_8cpp.html +1 -0
  57. package/SVF-doxygen/html/html/LocationSet_8cpp_source.html +14 -13
  58. package/SVF-doxygen/html/html/LocationSet_8h_source.html +10 -10
  59. package/SVF-doxygen/html/html/LockAnalysis_8cpp_source.html +6 -6
  60. package/SVF-doxygen/html/html/LockAnalysis_8h_source.html +1 -1
  61. package/SVF-doxygen/html/html/LockResultValidator_8cpp_source.html +8 -8
  62. package/SVF-doxygen/html/html/LockResultValidator_8h_source.html +1 -1
  63. package/SVF-doxygen/html/html/MHP_8cpp.html +2 -2
  64. package/SVF-doxygen/html/html/MHP_8cpp_source.html +46 -46
  65. package/SVF-doxygen/html/html/MHP_8h.html +1 -0
  66. package/SVF-doxygen/html/html/MHP_8h_source.html +102 -101
  67. package/SVF-doxygen/html/html/MSSAMuChi_8h_source.html +1 -1
  68. package/SVF-doxygen/html/html/MTAAnnotator_8cpp_source.html +4 -4
  69. package/SVF-doxygen/html/html/MTAAnnotator_8h_source.html +3 -3
  70. package/SVF-doxygen/html/html/MTAResultValidator_8cpp_source.html +11 -11
  71. package/SVF-doxygen/html/html/MTAResultValidator_8h_source.html +8 -8
  72. package/SVF-doxygen/html/html/MTAStat_8cpp_source.html +9 -9
  73. package/SVF-doxygen/html/html/MTAStat_8h_source.html +1 -1
  74. package/SVF-doxygen/html/html/MTA_8cpp_source.html +5 -5
  75. package/SVF-doxygen/html/html/MTA_8h_source.html +3 -3
  76. package/SVF-doxygen/html/html/MemPartition_8cpp_source.html +1 -1
  77. package/SVF-doxygen/html/html/MemPartition_8h_source.html +1 -1
  78. package/SVF-doxygen/html/html/MemRegion_8cpp_source.html +12 -12
  79. package/SVF-doxygen/html/html/MemRegion_8h_source.html +1 -1
  80. package/SVF-doxygen/html/html/MemSSA_8cpp_source.html +6 -6
  81. package/SVF-doxygen/html/html/MemSSA_8h_source.html +3 -3
  82. package/SVF-doxygen/html/html/OfflineConsG_8cpp_source.html +2 -2
  83. package/SVF-doxygen/html/html/PAGBuilderFromFile_8cpp_source.html +2 -2
  84. package/SVF-doxygen/html/html/PCG_8cpp_source.html +4 -4
  85. package/SVF-doxygen/html/html/PCG_8h_source.html +1 -1
  86. package/SVF-doxygen/html/html/PTACallGraph_8cpp_source.html +1 -1
  87. package/SVF-doxygen/html/html/PTACallGraph_8h_source.html +1 -1
  88. package/SVF-doxygen/html/html/PTAStat_8cpp_source.html +18 -18
  89. package/SVF-doxygen/html/html/PathCondAllocator_8cpp_source.html +5 -5
  90. package/SVF-doxygen/html/html/PathCondAllocator_8h_source.html +3 -3
  91. package/SVF-doxygen/html/html/PointerAnalysisImpl_8cpp_source.html +5 -5
  92. package/SVF-doxygen/html/html/PointerAnalysisImpl_8h_source.html +2 -2
  93. package/SVF-doxygen/html/html/PointerAnalysis_8cpp_source.html +19 -19
  94. package/SVF-doxygen/html/html/PointerAnalysis_8h_source.html +6 -6
  95. package/SVF-doxygen/html/html/SVF-FE_2BasicTypes_8h.html +68 -50
  96. package/SVF-doxygen/html/html/SVF-FE_2BasicTypes_8h_source.html +51 -50
  97. package/SVF-doxygen/html/html/SVFBasicTypes_8h_source.html +1 -1
  98. package/SVF-doxygen/html/html/SVFGBuilder_8cpp_source.html +3 -3
  99. package/SVF-doxygen/html/html/SVFGBuilder_8h_source.html +2 -2
  100. package/SVF-doxygen/html/html/SVFGNode_8h_source.html +1 -1
  101. package/SVF-doxygen/html/html/SVFGOPT_8h_source.html +2 -2
  102. package/SVF-doxygen/html/html/SVFG_8cpp_source.html +4 -4
  103. package/SVF-doxygen/html/html/SVFG_8h_source.html +2 -2
  104. package/SVF-doxygen/html/html/SVFIRBuilder_8cpp_source.html +46 -46
  105. package/SVF-doxygen/html/html/SVFIRBuilder_8h_source.html +36 -36
  106. package/SVF-doxygen/html/html/SVFIR_8cpp_source.html +19 -19
  107. package/SVF-doxygen/html/html/SVFIR_8h_source.html +19 -19
  108. package/SVF-doxygen/html/html/SVFModule_8cpp_source.html +2 -2
  109. package/SVF-doxygen/html/html/SVFModule_8h_source.html +2 -2
  110. package/SVF-doxygen/html/html/SVFStatements_8cpp_source.html +3 -3
  111. package/SVF-doxygen/html/html/SVFStatements_8h_source.html +1 -1
  112. package/SVF-doxygen/html/html/SVFUtil_8cpp_source.html +4 -4
  113. package/SVF-doxygen/html/html/SVFUtil_8h_source.html +3 -3
  114. package/SVF-doxygen/html/html/SVFVariables_8cpp.html +1 -0
  115. package/SVF-doxygen/html/html/SVFVariables_8cpp_source.html +35 -32
  116. package/SVF-doxygen/html/html/SVFVariables_8h.html +0 -1
  117. package/SVF-doxygen/html/html/SVFVariables_8h_source.html +140 -142
  118. package/SVF-doxygen/html/html/SaberAnnotator_8cpp_source.html +2 -2
  119. package/SVF-doxygen/html/html/SaberCheckerAPI_8h_source.html +1 -1
  120. package/SVF-doxygen/html/html/SaberSVFGBuilder_8cpp_source.html +6 -6
  121. package/SVF-doxygen/html/html/SaberSVFGBuilder_8h_source.html +1 -1
  122. package/SVF-doxygen/html/html/SrcSnkDDA_8h_source.html +1 -1
  123. package/SVF-doxygen/html/html/SymbolTableBuilder_8cpp_source.html +50 -50
  124. package/SVF-doxygen/html/html/SymbolTableBuilder_8h_source.html +3 -3
  125. package/SVF-doxygen/html/html/SymbolTableInfo_8cpp.html +1 -0
  126. package/SVF-doxygen/html/html/SymbolTableInfo_8cpp_source.html +95 -91
  127. package/SVF-doxygen/html/html/SymbolTableInfo_8h.html +0 -1
  128. package/SVF-doxygen/html/html/SymbolTableInfo_8h_source.html +141 -143
  129. package/SVF-doxygen/html/html/TCT_8cpp.html +1 -0
  130. package/SVF-doxygen/html/html/TCT_8cpp_source.html +41 -40
  131. package/SVF-doxygen/html/html/TCT_8h_source.html +7 -7
  132. package/SVF-doxygen/html/html/ThreadAPI_8cpp_source.html +2 -2
  133. package/SVF-doxygen/html/html/ThreadAPI_8h_source.html +4 -4
  134. package/SVF-doxygen/html/html/ThreadCallGraph_8cpp_source.html +5 -5
  135. package/SVF-doxygen/html/html/ThreadCallGraph_8h_source.html +1 -1
  136. package/SVF-doxygen/html/html/TypeAnalysis_8cpp_source.html +2 -2
  137. package/SVF-doxygen/html/html/TypeBasedHeapCloning_8cpp_source.html +22 -22
  138. package/SVF-doxygen/html/html/TypeBasedHeapCloning_8h_source.html +4 -4
  139. package/SVF-doxygen/html/html/Util_2BasicTypes_8h.html +0 -2
  140. package/SVF-doxygen/html/html/Util_2BasicTypes_8h_source.html +61 -62
  141. package/SVF-doxygen/html/html/VFGNode_8h_source.html +3 -3
  142. package/SVF-doxygen/html/html/VFG_8cpp_source.html +10 -10
  143. package/SVF-doxygen/html/html/VFG_8h_source.html +3 -3
  144. package/SVF-doxygen/html/html/VersionedFlowSensitiveStat_8cpp_source.html +4 -4
  145. package/SVF-doxygen/html/html/VersionedFlowSensitive_8cpp_source.html +1 -1
  146. package/SVF-doxygen/html/html/WPAPass_8cpp_source.html +3 -3
  147. package/SVF-doxygen/html/html/WPAPass_8h_source.html +1 -1
  148. package/SVF-doxygen/html/html/classSVF_1_1ActualParmVFGNode.html +1 -1
  149. package/SVF-doxygen/html/html/classSVF_1_1ActualRetVFGNode.html +1 -1
  150. package/SVF-doxygen/html/html/classSVF_1_1AddrCGEdge.html +1 -1
  151. package/SVF-doxygen/html/html/classSVF_1_1AliasDDAClient.html +4 -4
  152. package/SVF-doxygen/html/html/classSVF_1_1Andersen.html +10 -10
  153. package/SVF-doxygen/html/html/classSVF_1_1AndersenBase.html +2 -2
  154. package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD.html +1 -1
  155. package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR.html +4 -4
  156. package/SVF-doxygen/html/html/classSVF_1_1AndersenStat.html +5 -5
  157. package/SVF-doxygen/html/html/classSVF_1_1Annotator.html +1 -1
  158. package/SVF-doxygen/html/html/classSVF_1_1ArgumentVFGNode.html +4 -4
  159. package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl.html +7 -7
  160. package/SVF-doxygen/html/html/classSVF_1_1BinaryOPVFGNode.html +3 -3
  161. package/SVF-doxygen/html/html/classSVF_1_1BranchStmt.html +4 -4
  162. package/SVF-doxygen/html/html/classSVF_1_1BreakConstantGEPs.html +1 -1
  163. package/SVF-doxygen/html/html/classSVF_1_1CHGBuilder.html +18 -18
  164. package/SVF-doxygen/html/html/classSVF_1_1CHGraph.html +6 -6
  165. package/SVF-doxygen/html/html/classSVF_1_1CallGraphBuilder.html +2 -2
  166. package/SVF-doxygen/html/html/classSVF_1_1CallSite.html +41 -41
  167. package/SVF-doxygen/html/html/classSVF_1_1CloneDummyObjVar-members.html +1 -1
  168. package/SVF-doxygen/html/html/classSVF_1_1CloneDummyObjVar.html +15 -15
  169. package/SVF-doxygen/html/html/classSVF_1_1CloneFIObjVar-members.html +1 -1
  170. package/SVF-doxygen/html/html/classSVF_1_1CloneFIObjVar.html +16 -16
  171. package/SVF-doxygen/html/html/classSVF_1_1CloneGepObjVar-members.html +1 -1
  172. package/SVF-doxygen/html/html/classSVF_1_1CloneGepObjVar.html +16 -16
  173. package/SVF-doxygen/html/html/classSVF_1_1CmpVFGNode.html +3 -3
  174. package/SVF-doxygen/html/html/classSVF_1_1ContextDDA.html +11 -11
  175. package/SVF-doxygen/html/html/classSVF_1_1DCHGraph.html +50 -50
  176. package/SVF-doxygen/html/html/classSVF_1_1DDAClient.html +1 -1
  177. package/SVF-doxygen/html/html/classSVF_1_1DDAPass.html +3 -3
  178. package/SVF-doxygen/html/html/classSVF_1_1DDAStat.html +1 -1
  179. package/SVF-doxygen/html/html/classSVF_1_1DDAVFSolver.html +2 -2
  180. package/SVF-doxygen/html/html/classSVF_1_1DistinctMRG.html +1 -1
  181. package/SVF-doxygen/html/html/classSVF_1_1DummyObjVar-members.html +1 -1
  182. package/SVF-doxygen/html/html/classSVF_1_1DummyObjVar.html +20 -20
  183. package/SVF-doxygen/html/html/classSVF_1_1DummyValVar-members.html +1 -1
  184. package/SVF-doxygen/html/html/classSVF_1_1DummyValVar.html +18 -18
  185. package/SVF-doxygen/html/html/classSVF_1_1ExeState.html +40 -40
  186. package/SVF-doxygen/html/html/classSVF_1_1FIObjVar-members.html +1 -1
  187. package/SVF-doxygen/html/html/classSVF_1_1FIObjVar.html +22 -22
  188. package/SVF-doxygen/html/html/classSVF_1_1FSMPTA.html +1 -1
  189. package/SVF-doxygen/html/html/classSVF_1_1FlowDDA.html +3 -3
  190. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive.html +3 -3
  191. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveStat.html +8 -8
  192. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveTBHC.html +9 -9
  193. package/SVF-doxygen/html/html/classSVF_1_1ForkJoinAnalysis.html +183 -183
  194. package/SVF-doxygen/html/html/classSVF_1_1FormalParmVFGNode.html +1 -1
  195. package/SVF-doxygen/html/html/classSVF_1_1FormalRetVFGNode.html +1 -1
  196. package/SVF-doxygen/html/html/classSVF_1_1FunEntryICFGNode.html +1 -1
  197. package/SVF-doxygen/html/html/classSVF_1_1FunExitICFGNode.html +1 -1
  198. package/SVF-doxygen/html/html/classSVF_1_1GepObjVar-members.html +1 -1
  199. package/SVF-doxygen/html/html/classSVF_1_1GepObjVar.html +45 -45
  200. package/SVF-doxygen/html/html/classSVF_1_1GepStmt.html +2 -2
  201. package/SVF-doxygen/html/html/classSVF_1_1GepValVar-members.html +1 -1
  202. package/SVF-doxygen/html/html/classSVF_1_1GepValVar.html +29 -29
  203. package/SVF-doxygen/html/html/classSVF_1_1ICFG.html +1 -1
  204. package/SVF-doxygen/html/html/classSVF_1_1ICFGBuilder.html +9 -9
  205. package/SVF-doxygen/html/html/classSVF_1_1ICFGPrinter.html +10 -10
  206. package/SVF-doxygen/html/html/classSVF_1_1IRGraph.html +21 -21
  207. package/SVF-doxygen/html/html/classSVF_1_1InterDisjointMRG.html +1 -1
  208. package/SVF-doxygen/html/html/classSVF_1_1InterPHIVFGNode.html +1 -1
  209. package/SVF-doxygen/html/html/classSVF_1_1IntraDisjointMRG.html +1 -1
  210. package/SVF-doxygen/html/html/classSVF_1_1IntraPHIVFGNode.html +2 -2
  211. package/SVF-doxygen/html/html/classSVF_1_1IteratedDominanceFrontier.html +2 -2
  212. package/SVF-doxygen/html/html/classSVF_1_1LLVMModuleSet.html +2 -2
  213. package/SVF-doxygen/html/html/classSVF_1_1LeakChecker.html +6 -6
  214. package/SVF-doxygen/html/html/classSVF_1_1LocationSet.html +27 -27
  215. package/SVF-doxygen/html/html/classSVF_1_1LockAnalysis.html +20 -20
  216. package/SVF-doxygen/html/html/classSVF_1_1LockResultValidator.html +8 -8
  217. package/SVF-doxygen/html/html/classSVF_1_1MHP.html +177 -177
  218. package/SVF-doxygen/html/html/classSVF_1_1MRGenerator.html +16 -16
  219. package/SVF-doxygen/html/html/classSVF_1_1MTA.html +7 -7
  220. package/SVF-doxygen/html/html/classSVF_1_1MTAAnnotator.html +7 -7
  221. package/SVF-doxygen/html/html/classSVF_1_1MTAResultValidator.html +22 -22
  222. package/SVF-doxygen/html/html/classSVF_1_1MTAStat.html +8 -8
  223. package/SVF-doxygen/html/html/classSVF_1_1MemObj.html +91 -91
  224. package/SVF-doxygen/html/html/classSVF_1_1MemSSA.html +9 -9
  225. package/SVF-doxygen/html/html/classSVF_1_1MemSSADF.html +1 -1
  226. package/SVF-doxygen/html/html/classSVF_1_1NullPtrVFGNode.html +1 -1
  227. package/SVF-doxygen/html/html/classSVF_1_1ObjTypeInfo.html +98 -98
  228. package/SVF-doxygen/html/html/classSVF_1_1ObjVar-members.html +1 -1
  229. package/SVF-doxygen/html/html/classSVF_1_1ObjVar.html +35 -35
  230. package/SVF-doxygen/html/html/classSVF_1_1PAGBuilderFromFile.html +2 -2
  231. package/SVF-doxygen/html/html/classSVF_1_1PCG.html +9 -9
  232. package/SVF-doxygen/html/html/classSVF_1_1PHIVFGNode.html +4 -4
  233. package/SVF-doxygen/html/html/classSVF_1_1PTACFInfoBuilder.html +3 -3
  234. package/SVF-doxygen/html/html/classSVF_1_1PTACallGraph.html +1 -1
  235. package/SVF-doxygen/html/html/classSVF_1_1PTAStat.html +19 -19
  236. package/SVF-doxygen/html/html/classSVF_1_1PathCondAllocator.html +9 -9
  237. package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.html +31 -31
  238. package/SVF-doxygen/html/html/classSVF_1_1RaceResultValidator.html +3 -3
  239. package/SVF-doxygen/html/html/classSVF_1_1RetPN-members.html +1 -1
  240. package/SVF-doxygen/html/html/classSVF_1_1RetPN.html +19 -19
  241. package/SVF-doxygen/html/html/classSVF_1_1SVFBasicBlock.html +3 -3
  242. package/SVF-doxygen/html/html/classSVF_1_1SVFFunction.html +27 -27
  243. package/SVF-doxygen/html/html/classSVF_1_1SVFG.html +4 -4
  244. package/SVF-doxygen/html/html/classSVF_1_1SVFGBuilder.html +3 -3
  245. package/SVF-doxygen/html/html/classSVF_1_1SVFGlobal.html +3 -3
  246. package/SVF-doxygen/html/html/classSVF_1_1SVFIR.html +62 -62
  247. package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder.html +66 -66
  248. package/SVF-doxygen/html/html/classSVF_1_1SVFModule.html +2 -2
  249. package/SVF-doxygen/html/html/classSVF_1_1SVFVar-members.html +1 -1
  250. package/SVF-doxygen/html/html/classSVF_1_1SVFVar.html +98 -106
  251. package/SVF-doxygen/html/html/classSVF_1_1SaberAnnotator.html +3 -3
  252. package/SVF-doxygen/html/html/classSVF_1_1SaberSVFGBuilder.html +7 -7
  253. package/SVF-doxygen/html/html/classSVF_1_1SelectStmt.html +1 -1
  254. package/SVF-doxygen/html/html/classSVF_1_1StInfo.html +38 -38
  255. package/SVF-doxygen/html/html/classSVF_1_1SymbolTableBuilder.html +78 -78
  256. package/SVF-doxygen/html/html/classSVF_1_1SymbolTableInfo-members.html +2 -2
  257. package/SVF-doxygen/html/html/classSVF_1_1SymbolTableInfo.html +224 -240
  258. package/SVF-doxygen/html/html/classSVF_1_1TCT.html +88 -88
  259. package/SVF-doxygen/html/html/classSVF_1_1ThreadAPI.html +1 -1
  260. package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraph.html +7 -7
  261. package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraphBuilder.html +1 -1
  262. package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis.html +2 -2
  263. package/SVF-doxygen/html/html/classSVF_1_1TypeBasedHeapCloning.html +36 -36
  264. package/SVF-doxygen/html/html/classSVF_1_1UnaryOPVFGNode.html +2 -2
  265. package/SVF-doxygen/html/html/classSVF_1_1VFG.html +13 -13
  266. package/SVF-doxygen/html/html/classSVF_1_1ValVar-members.html +1 -1
  267. package/SVF-doxygen/html/html/classSVF_1_1ValVar.html +24 -24
  268. package/SVF-doxygen/html/html/classSVF_1_1VarArgPN-members.html +1 -1
  269. package/SVF-doxygen/html/html/classSVF_1_1VarArgPN.html +19 -19
  270. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive.html +1 -1
  271. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitiveStat.html +4 -4
  272. package/SVF-doxygen/html/html/classSVF_1_1WPAPass.html +2 -2
  273. package/SVF-doxygen/html/html/functions_func_g.html +1 -1
  274. package/SVF-doxygen/html/html/functions_func_h.html +1 -1
  275. package/SVF-doxygen/html/html/functions_func_i.html +1 -1
  276. package/SVF-doxygen/html/html/functions_g.html +1 -1
  277. package/SVF-doxygen/html/html/functions_h.html +1 -1
  278. package/SVF-doxygen/html/html/functions_i.html +1 -1
  279. package/SVF-doxygen/html/html/globals_c.html +103 -100
  280. package/SVF-doxygen/html/html/globals_s.html +9 -7
  281. package/SVF-doxygen/html/html/globals_type.html +3 -0
  282. package/SVF-doxygen/html/html/namespaceSVF.html +25 -43
  283. package/SVF-doxygen/html/html/namespaceSVF_1_1SVFUtil.html +14 -14
  284. package/SVF-doxygen/html/html/namespaceSVF_1_1cppUtil.html +23 -23
  285. package/SVF-doxygen/html/html/namespacemembers_c.html +0 -3
  286. package/SVF-doxygen/html/html/namespacemembers_type.html +0 -3
  287. package/SVF-doxygen/html/html/search/all_13.js +3 -3
  288. package/SVF-doxygen/html/html/search/all_3.js +1 -1
  289. package/SVF-doxygen/html/html/search/all_7.js +1 -1
  290. package/SVF-doxygen/html/html/search/all_8.js +1 -1
  291. package/SVF-doxygen/html/html/search/all_9.js +1 -1
  292. package/SVF-doxygen/html/html/search/functions_6.js +1 -1
  293. package/SVF-doxygen/html/html/search/functions_7.js +1 -1
  294. package/SVF-doxygen/html/html/search/functions_8.js +1 -1
  295. package/SVF-doxygen/html/html/search/typedefs_2.js +1 -1
  296. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01ConstraintGraph_01_5_01_4.html +3 -3
  297. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01IRGraph_01_5_01_4.html +3 -3
  298. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01OfflineConsG_01_5_01_4.html +3 -3
  299. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01PTACallGraph_01_5_01_4.html +1 -1
  300. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01TCT_01_5_01_4.html +14 -14
  301. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1CallSite_01_4.html +3 -3
  302. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1CxtProc_01_4.html +1 -1
  303. package/SVF-doxygen/html/html/svf-ex_8cpp.html +4 -4
  304. package/SVF-doxygen/html/html/svf-ex_8cpp_source.html +3 -3
  305. package/include/MTA/MHP.h +1 -0
  306. package/include/MemoryModel/SVFVariables.h +1 -8
  307. package/include/MemoryModel/SymbolTableInfo.h +2 -22
  308. package/include/SVF-FE/BasicTypes.h +1 -0
  309. package/include/Util/BasicTypes.h +0 -1
  310. package/lib/MTA/TCT.cpp +1 -0
  311. package/lib/MemoryModel/LocationSet.cpp +1 -0
  312. package/lib/MemoryModel/SVFVariables.cpp +10 -1
  313. package/lib/MemoryModel/SymbolTableInfo.cpp +26 -0
  314. package/lib/Util/ExeState.cpp +1 -0
  315. package/package.json +1 -1
@@ -78,18 +78,18 @@ $(function() {
78
78
  <div class="ttc" id="classSVF_1_1PTACFInfoBuilder_html_a155db92ff5057abcb929c0ca8e8bee89"><div class="ttname"><a href="classSVF_1_1PTACFInfoBuilder.html#a155db92ff5057abcb929c0ca8e8bee89">SVF::PTACFInfoBuilder::funToLoopInfoMap</a></div><div class="ttdeci">FunToLoopInfoMap funToLoopInfoMap</div><div class="ttdoc">map a function to its loop info </div><div class="ttdef"><b>Definition:</b> <a href="DataFlowUtil_8h_source.html#l00145">DataFlowUtil.h:145</a></div></div>
79
79
  <div class="ttc" id="classSVF_1_1PTASCEV_html_a3f4fbad38457025f35e151e54ab96b70"><div class="ttname"><a href="classSVF_1_1PTASCEV.html#a3f4fbad38457025f35e151e54ab96b70">SVF::PTASCEV::PTASCEV</a></div><div class="ttdeci">PTASCEV(const PTASCEV &amp;ptase)</div><div class="ttdoc">Copy Constructor. </div><div class="ttdef"><b>Definition:</b> <a href="DataFlowUtil_8h_source.html#l00065">DataFlowUtil.h:65</a></div></div>
80
80
  <div class="ttc" id="namespaceSVF_html_a8234d4b959abc9123993bcff4eee34c1"><div class="ttname"><a href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">SVF::Map</a></div><div class="ttdeci">std::unordered_map&lt; Key, Value, Hash, KeyEqual, Allocator &gt; Map</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00109">SVFBasicTypes.h:109</a></div></div>
81
- <div class="ttc" id="namespaceSVF_html_ab44d20f806be99699895260b14a942d7"><div class="ttname"><a href="namespaceSVF.html#ab44d20f806be99699895260b14a942d7">SVF::DominanceFrontier</a></div><div class="ttdeci">llvm::DominanceFrontier DominanceFrontier</div><div class="ttdoc">LLVM Dominators. </div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00111">BasicTypes.h:111</a></div></div>
82
- <div class="ttc" id="SVF-FE_2BasicTypes_8h_html_a926a4429043d19e5b5fb425a31631d12"><div class="ttname"><a href="SVF-FE_2BasicTypes_8h.html#a926a4429043d19e5b5fb425a31631d12">SCEV</a></div><div class="ttdeci">llvm::SCEV SCEV</div><div class="ttdef"><b>Definition:</b> <a href="SVF-FE_2BasicTypes_8h_source.html#l00113">BasicTypes.h:113</a></div></div>
81
+ <div class="ttc" id="namespaceSVF_html_ab44d20f806be99699895260b14a942d7"><div class="ttname"><a href="namespaceSVF.html#ab44d20f806be99699895260b14a942d7">SVF::DominanceFrontier</a></div><div class="ttdeci">llvm::DominanceFrontier DominanceFrontier</div><div class="ttdoc">LLVM Dominators. </div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00110">BasicTypes.h:110</a></div></div>
82
+ <div class="ttc" id="SVF-FE_2BasicTypes_8h_html_a926a4429043d19e5b5fb425a31631d12"><div class="ttname"><a href="SVF-FE_2BasicTypes_8h.html#a926a4429043d19e5b5fb425a31631d12">SCEV</a></div><div class="ttdeci">llvm::SCEV SCEV</div><div class="ttdef"><b>Definition:</b> <a href="SVF-FE_2BasicTypes_8h_source.html#l00114">BasicTypes.h:114</a></div></div>
83
83
  <div class="ttc" id="classSVF_1_1PTASCEV_html_a144e7fa8c5f4987067914416a85656ca"><div class="ttname"><a href="classSVF_1_1PTASCEV.html#a144e7fa8c5f4987067914416a85656ca">SVF::PTASCEV::operator=</a></div><div class="ttdeci">PTASCEV &amp; operator=(const PTASCEV &amp;rhs)</div><div class="ttdoc">Overloading operator=. </div><div class="ttdef"><b>Definition:</b> <a href="DataFlowUtil_8h_source.html#l00098">DataFlowUtil.h:98</a></div></div>
84
84
  <div class="ttc" id="classSVF_1_1IteratedDominanceFrontier_html"><div class="ttname"><a href="classSVF_1_1IteratedDominanceFrontier.html">SVF::IteratedDominanceFrontier</a></div><div class="ttdef"><b>Definition:</b> <a href="DataFlowUtil_8h_source.html#l00154">DataFlowUtil.h:154</a></div></div>
85
- <div class="ttc" id="namespaceSVF_html_ab34383ee87cd45eb485fa29db482ffef"><div class="ttname"><a href="namespaceSVF.html#ab34383ee87cd45eb485fa29db482ffef">SVF::PostDominatorTree</a></div><div class="ttdeci">llvm::PostDominatorTree PostDominatorTree</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00113">BasicTypes.h:113</a></div></div>
85
+ <div class="ttc" id="namespaceSVF_html_ab34383ee87cd45eb485fa29db482ffef"><div class="ttname"><a href="namespaceSVF.html#ab34383ee87cd45eb485fa29db482ffef">SVF::PostDominatorTree</a></div><div class="ttdeci">llvm::PostDominatorTree PostDominatorTree</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00112">BasicTypes.h:112</a></div></div>
86
86
  <div class="ttc" id="classSVF_1_1PTASCEV_html_ac6636f0c39ef55e2b5f126532bf2d411"><div class="ttname"><a href="classSVF_1_1PTASCEV.html#ac6636f0c39ef55e2b5f126532bf2d411">SVF::PTASCEV::inloop</a></div><div class="ttdeci">bool inloop</div><div class="ttdef"><b>Definition:</b> <a href="DataFlowUtil_8h_source.html#l00079">DataFlowUtil.h:79</a></div></div>
87
87
  <div class="ttc" id="namespaceSVF_html_a5faee14fa1dd41447bc73ac365fe33c1"><div class="ttname"><a href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">SVF::Function</a></div><div class="ttdeci">llvm::Function Function</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00066">BasicTypes.h:66</a></div></div>
88
88
  <div class="ttc" id="SVF-FE_2BasicTypes_8h_html"><div class="ttname"><a href="SVF-FE_2BasicTypes_8h.html">BasicTypes.h</a></div></div>
89
89
  <div class="ttc" id="classSVF_1_1IteratedDominanceFrontier_html_ab4844d80db9046eb41d033d11fbdefc1"><div class="ttname"><a href="classSVF_1_1IteratedDominanceFrontier.html#ab4844d80db9046eb41d033d11fbdefc1">SVF::IteratedDominanceFrontier::~IteratedDominanceFrontier</a></div><div class="ttdeci">virtual ~IteratedDominanceFrontier()</div><div class="ttdef"><b>Definition:</b> <a href="DataFlowUtil_8h_source.html#l00170">DataFlowUtil.h:170</a></div></div>
90
- <div class="ttc" id="namespaceSVF_html_aefa7ddc97343be9e528108d0a52293de"><div class="ttname"><a href="namespaceSVF.html#aefa7ddc97343be9e528108d0a52293de">SVF::DominanceFrontierBase</a></div><div class="ttdeci">llvm::DominanceFrontierBase&lt; BasicBlock, false &gt; DominanceFrontierBase</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00115">BasicTypes.h:115</a></div></div>
90
+ <div class="ttc" id="namespaceSVF_html_aefa7ddc97343be9e528108d0a52293de"><div class="ttname"><a href="namespaceSVF.html#aefa7ddc97343be9e528108d0a52293de">SVF::DominanceFrontierBase</a></div><div class="ttdeci">llvm::DominanceFrontierBase&lt; BasicBlock, false &gt; DominanceFrontierBase</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00114">BasicTypes.h:114</a></div></div>
91
91
  <div class="ttc" id="classSVF_1_1PTACFInfoBuilder_html_a69109de5fddf4042037bc6d66563a9e5"><div class="ttname"><a href="classSVF_1_1PTACFInfoBuilder.html#a69109de5fddf4042037bc6d66563a9e5">SVF::PTACFInfoBuilder::FunToDTMap</a></div><div class="ttdeci">Map&lt; const Function *, DominatorTree * &gt; FunToDTMap</div><div class="ttdoc">map a function to its dominator tree </div><div class="ttdef"><b>Definition:</b> <a href="DataFlowUtil_8h_source.html#l00126">DataFlowUtil.h:126</a></div></div>
92
- <div class="ttc" id="namespaceSVF_html_aecbb42b8e9d17fa0189c50dda9fd5fdd"><div class="ttname"><a href="namespaceSVF.html#aecbb42b8e9d17fa0189c50dda9fd5fdd">SVF::DominatorTree</a></div><div class="ttdeci">llvm::DominatorTree DominatorTree</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00112">BasicTypes.h:112</a></div></div>
92
+ <div class="ttc" id="namespaceSVF_html_aecbb42b8e9d17fa0189c50dda9fd5fdd"><div class="ttname"><a href="namespaceSVF.html#aecbb42b8e9d17fa0189c50dda9fd5fdd">SVF::DominatorTree</a></div><div class="ttdeci">llvm::DominatorTree DominatorTree</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00111">BasicTypes.h:111</a></div></div>
93
93
  <div class="ttc" id="classSVF_1_1IteratedDominanceFrontier_html_aa50321ef8e3c9ee5e0b04f95a5a72e24"><div class="ttname"><a href="classSVF_1_1IteratedDominanceFrontier.html#aa50321ef8e3c9ee5e0b04f95a5a72e24">SVF::IteratedDominanceFrontier::DF</a></div><div class="ttdeci">const DominanceFrontier * DF</div><div class="ttdef"><b>Definition:</b> <a href="DataFlowUtil_8h_source.html#l00158">DataFlowUtil.h:158</a></div></div>
94
94
  <div class="ttc" id="classSVF_1_1IteratedDominanceFrontier_html_aaae6f876063759941ac236f17a80cea2"><div class="ttname"><a href="classSVF_1_1IteratedDominanceFrontier.html#aaae6f876063759941ac236f17a80cea2">SVF::IteratedDominanceFrontier::ID</a></div><div class="ttdeci">static char ID</div><div class="ttdef"><b>Definition:</b> <a href="DataFlowUtil_8h_source.html#l00163">DataFlowUtil.h:163</a></div></div>
95
95
  <div class="ttc" id="classSVF_1_1PTASCEV_html_a6a134ca4f7f50de053805e75431aa856"><div class="ttname"><a href="classSVF_1_1PTASCEV.html#a6a134ca4f7f50de053805e75431aa856">SVF::PTASCEV::PTASCEV</a></div><div class="ttdeci">PTASCEV(const Value *p, const SCEV *s, ScalarEvolution *SE)</div><div class="ttdoc">Constructor. </div><div class="ttdef"><b>Definition:</b> <a href="DataFlowUtil_8h_source.html#l00051">DataFlowUtil.h:51</a></div></div>
@@ -106,7 +106,7 @@ $(function() {
106
106
  <div class="ttc" id="namespaceSVF_html_a90b263fd2f541eca78135078114cabda"><div class="ttname"><a href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">SVF::Value</a></div><div class="ttdeci">llvm::Value Value</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00068">BasicTypes.h:68</a></div></div>
107
107
  <div class="ttc" id="classSVF_1_1PTASCEV_html_a0de1531fc72f5aa0bafc59101faae68d"><div class="ttname"><a href="classSVF_1_1PTASCEV.html#a0de1531fc72f5aa0bafc59101faae68d">SVF::PTASCEV::start</a></div><div class="ttdeci">const Value * start</div><div class="ttdef"><b>Definition:</b> <a href="DataFlowUtil_8h_source.html#l00076">DataFlowUtil.h:76</a></div></div>
108
108
  <div class="ttc" id="classSVF_1_1PTASCEV_html_aa92f2da24c8b6d3548f8b4920a8d157f"><div class="ttname"><a href="classSVF_1_1PTASCEV.html#aa92f2da24c8b6d3548f8b4920a8d157f">SVF::PTASCEV::tripcount</a></div><div class="ttdeci">unsigned tripcount</div><div class="ttdef"><b>Definition:</b> <a href="DataFlowUtil_8h_source.html#l00080">DataFlowUtil.h:80</a></div></div>
109
- <div class="ttc" id="SVF-FE_2BasicTypes_8h_html_a14e646200d8836461877804ee4a203d1"><div class="ttname"><a href="SVF-FE_2BasicTypes_8h.html#a14e646200d8836461877804ee4a203d1">ScalarEvolution</a></div><div class="ttdeci">llvm::ScalarEvolution ScalarEvolution</div><div class="ttdef"><b>Definition:</b> <a href="SVF-FE_2BasicTypes_8h_source.html#l00112">BasicTypes.h:112</a></div></div>
109
+ <div class="ttc" id="SVF-FE_2BasicTypes_8h_html_a14e646200d8836461877804ee4a203d1"><div class="ttname"><a href="SVF-FE_2BasicTypes_8h.html#a14e646200d8836461877804ee4a203d1">ScalarEvolution</a></div><div class="ttdeci">llvm::ScalarEvolution ScalarEvolution</div><div class="ttdef"><b>Definition:</b> <a href="SVF-FE_2BasicTypes_8h_source.html#l00113">BasicTypes.h:113</a></div></div>
110
110
  <div class="ttc" id="classSVF_1_1PTASCEV_html"><div class="ttname"><a href="classSVF_1_1PTASCEV.html">SVF::PTASCEV</a></div><div class="ttdef"><b>Definition:</b> <a href="DataFlowUtil_8h_source.html#l00044">DataFlowUtil.h:44</a></div></div>
111
111
  </div><!-- fragment --></div><!-- contents -->
112
112
  <!-- start footer part -->
@@ -69,6 +69,7 @@ $(function() {
69
69
  <div class="textblock"><code>#include &quot;<a class="el" href="ExeState_8h_source.html">Util/ExeState.h</a>&quot;</code><br />
70
70
  <code>#include &quot;<a class="el" href="SVFIR_8h_source.html">MemoryModel/SVFIR.h</a>&quot;</code><br />
71
71
  <code>#include &lt;iomanip&gt;</code><br />
72
+ <code>#include &quot;<a class="el" href="LLVMUtil_8h_source.html">SVF-FE/LLVMUtil.h</a>&quot;</code><br />
72
73
  </div>
73
74
  <p><a href="ExeState_8cpp_source.html">Go to the source code of this file.</a></p>
74
75
  </div><!-- contents -->
@@ -66,59 +66,60 @@ $(function() {
66
66
  <div class="title">ExeState.cpp</div> </div>
67
67
  </div><!--header-->
68
68
  <div class="contents">
69
- <a href="ExeState_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">//===- ExeState.cpp -- Execution State ----------------------------//</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-2017&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;<span class="comment">/*</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment"> * ExeState.cpp</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment"> * Created on: April 29, 2022</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment"> * Author: Xiao</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="preprocessor">#include &quot;<a class="code" href="ExeState_8h.html">Util/ExeState.h</a>&quot;</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="SVFIR_8h.html">MemoryModel/SVFIR.h</a>&quot;</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#include &lt;iomanip&gt;</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="keyword">using namespace </span><a class="code" href="namespaceSVF.html">SVF</a>;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="keyword">using namespace </span>SVFUtil;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;z3::context *<a class="code" href="classSVF_1_1Z3Expr.html#a7dce19d65c7a0b50d21127a07aa51bf8">Z3Expr::ctx</a> = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="classSVF_1_1ExeState.html#a7b3013578baac3ce73bc544569c3dbbf"> 42</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classSVF_1_1ExeState.html#a7b3013578baac3ce73bc544569c3dbbf">ExeState::initValVar</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1ValVar.html">ValVar</a> *valVar, <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a> &amp;e)</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; std::string str;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <a class="code" href="namespaceSVF.html#a726981481ac082dcda3e4921416b65a0">raw_string_ostream</a> rawstr(str);</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <a class="code" href="classSVF_1_1SVFIR.html">SVFIR</a> *svfir = <a class="code" href="classSVF_1_1SVFIR.html#a37cfa2aa4e7b98ef9dc8179f581a2362">PAG::getPAG</a>();</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot;ValVar&quot;</span> &lt;&lt; valVar-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>();</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a> *type = valVar-&gt;<a class="code" href="classSVF_1_1SVFVar.html#adaaf24b8b6ec06476cea112533c24066">getType</a>())</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; {</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keywordflow">if</span> (type-&gt;isIntegerTy() || type-&gt;isFloatingPointTy() || type-&gt;isPointerTy() || type-&gt;isFunctionTy()</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; || type-&gt;isStructTy() || type-&gt;isArrayTy() || type-&gt;isVoidTy() || type-&gt;isLabelTy() || type-&gt;isMetadataTy())</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; e = getContext().int_const(rawstr.str().c_str());</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="keywordflow">else</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; <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">SVFUtil::errs</a>() &lt;&lt; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a7486fd8e5350879ed1cbd835c0d4e191">value2String</a>(valVar-&gt;<a class="code" href="classSVF_1_1SVFVar.html#afaa33caa8d2a306f6741d9d066243e40">getValue</a>()) &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span> &lt;&lt; <span class="stringliteral">&quot; 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="l00057"></a><span class="lineno"> 57</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<span class="keyword">false</span> &amp;&amp; <span class="stringliteral">&quot;what other types we have&quot;</span>);</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; }</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; }</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keywordflow">else</span></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; <span class="keywordflow">if</span> (svfir-&gt;<a class="code" href="classSVF_1_1IRGraph.html#a3de9a2a565c303f68a90c32dc59febd5">getNullPtr</a>() == valVar-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>())</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; e = getContext().int_val(0);</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; e = getContext().int_const(rawstr.str().c_str());</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(SVFUtil::isa&lt;DummyValVar&gt;(valVar) &amp;&amp; <span class="stringliteral">&quot;not a DummValVar if it has no type?&quot;</span>);</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"> 69</span>&#160;</div><div class="line"><a name="l00075"></a><span class="lineno"><a class="line" href="classSVF_1_1ExeState.html#af4018e9053baa373b590230bc53b7ccb"> 75</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classSVF_1_1ExeState.html#af4018e9053baa373b590230bc53b7ccb">ExeState::initObjVar</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1ObjVar.html">ObjVar</a> *objVar, <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a> &amp;e)</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; std::string str;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <a class="code" href="namespaceSVF.html#a726981481ac082dcda3e4921416b65a0">raw_string_ostream</a> rawstr(str);</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot;ObjVar&quot;</span> &lt;&lt; objVar-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>();</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"> 81</span>&#160; <span class="keywordflow">if</span> (objVar-&gt;<a class="code" href="classSVF_1_1SVFVar.html#a1ace69053c2c4436fd78d5624bd0086a">hasValue</a>())</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; {</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1MemObj.html">MemObj</a> *obj = objVar-&gt;<a class="code" href="classSVF_1_1ObjVar.html#a6a4feb73b54e602407e35eeb09f55930">getMemObj</a>();</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <span class="keywordflow">if</span> (obj-&gt;<a class="code" href="classSVF_1_1MemObj.html#aa50d7c3b4e7ac0aa769bc094bea26e16">isConstantData</a>() || obj-&gt;<a class="code" href="classSVF_1_1MemObj.html#a7f828731597450f1d43b61413ab0e7bb">isConstantArray</a>() || obj-&gt;<a class="code" href="classSVF_1_1MemObj.html#a019a77516c403f1f3cc72917b810a41f">isConstantStruct</a>())</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; {</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#adefcb50414ea999d70cea5ccdbcb98d7">ConstantInt</a> *consInt = SVFUtil::dyn_cast&lt;ConstantInt&gt;(obj-&gt;<a class="code" href="classSVF_1_1MemObj.html#a4da54ef60231d2e6c26669226b99d2f3">getValue</a>()))</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; <span class="keywordflow">if</span> (consInt == llvm::ConstantInt::getTrue(<a class="code" href="classSVF_1_1LLVMModuleSet.html#acf40310917909e4234282c0695a43160">LLVMModuleSet::getLLVMModuleSet</a>()-&gt;<a class="code" href="classSVF_1_1LLVMModuleSet.html#ac1a9d20d62066ec4e181fad223669e32">getContext</a>()))</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; {</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; e = getContext().int_val(1);</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; }</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (consInt == llvm::ConstantInt::getFalse(<a class="code" href="classSVF_1_1LLVMModuleSet.html#acf40310917909e4234282c0695a43160">LLVMModuleSet::getLLVMModuleSet</a>()-&gt;getContext()))</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; e = getContext().int_val(0);</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; {</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; e = getContext().int_val(consInt-&gt;getSExtValue());</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; }</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; }</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> llvm::ConstantFP *consFP = SVFUtil::dyn_cast&lt;llvm::ConstantFP&gt;(obj-&gt;<a class="code" href="classSVF_1_1MemObj.html#a4da54ef60231d2e6c26669226b99d2f3">getValue</a>()))</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; e = getContext().int_val(static_cast&lt;u32_t&gt;(consFP-&gt;getValueAPF().convertToFloat()));</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa&lt;ConstantPointerNull&gt;(obj-&gt;<a class="code" href="classSVF_1_1MemObj.html#a4da54ef60231d2e6c26669226b99d2f3">getValue</a>()))</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; e = getContext().int_val(0);</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa&lt;GlobalVariable&gt;(obj-&gt;<a class="code" href="classSVF_1_1MemObj.html#a4da54ef60231d2e6c26669226b99d2f3">getValue</a>()))</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; e = getContext().int_val(getVirtualMemAddress(objVar-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>()));</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa&lt;ConstantAggregate&gt;(obj-&gt;<a class="code" href="classSVF_1_1MemObj.html#a4da54ef60231d2e6c26669226b99d2f3">getValue</a>()))</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<span class="keyword">false</span> &amp;&amp; <span class="stringliteral">&quot;implement this part&quot;</span>);</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <span class="keywordflow">else</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; std::cerr &lt;&lt; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a7486fd8e5350879ed1cbd835c0d4e191">value2String</a>(obj-&gt;<a class="code" href="classSVF_1_1MemObj.html#a4da54ef60231d2e6c26669226b99d2f3">getValue</a>()) &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<span class="keyword">false</span> &amp;&amp; <span class="stringliteral">&quot;what other types of values we have?&quot;</span>);</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; }</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; }</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; {</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; e = getContext().int_val(getVirtualMemAddress(objVar-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>()));</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; }</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; <span class="keywordflow">else</span></div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; {</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(SVFUtil::isa&lt;DummyObjVar&gt;(objVar) &amp;&amp;</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="stringliteral">&quot;it should either be a blackhole or constant dummy if this obj has no value?&quot;</span>);</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; e = getContext().int_val(getVirtualMemAddress(objVar-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>()));</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;}</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;</div><div class="line"><a name="l00133"></a><span class="lineno"><a class="line" href="classSVF_1_1ExeState.html#ab52debe3aae77d1efd5de4d220dbed2f"> 133</a></span>&#160;<a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a> &amp;<a class="code" href="classSVF_1_1ExeState.html#ab52debe3aae77d1efd5de4d220dbed2f">ExeState::getZ3Expr</a>(<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> varId)</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; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(getInternalID(varId) == varId &amp;&amp; <span class="stringliteral">&quot;SVFVar idx overflow &gt; 0x7f000000?&quot;</span>);</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a> &amp;e = varToVal[varId];</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <span class="keywordflow">if</span> (eq(e, <a class="code" href="classSVF_1_1Z3Expr.html#a9aa800372d57db519d484cc32ea1c5dc">Z3Expr::nullExpr</a>()))</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; std::string str;</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <a class="code" href="namespaceSVF.html#a726981481ac082dcda3e4921416b65a0">raw_string_ostream</a> rawstr(str);</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <a class="code" href="classSVF_1_1SVFIR.html">SVFIR</a> *svfir = <a class="code" href="classSVF_1_1SVFIR.html#a37cfa2aa4e7b98ef9dc8179f581a2362">PAG::getPAG</a>();</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a> *svfVar = svfir-&gt;<a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(varId);</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1ValVar.html">ValVar</a> *valVar = dyn_cast&lt;ValVar&gt;(svfVar))</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; {</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; initValVar(valVar, e);</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; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1ObjVar.html">ObjVar</a> *objVar = dyn_cast&lt;ObjVar&gt;(svfVar))</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; {</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; initObjVar(objVar, e);</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; }</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; {</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<span class="keyword">false</span> &amp;&amp; <span class="stringliteral">&quot;var type not supported&quot;</span>);</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; }</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; }</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="keywordflow">return</span> e;</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;}</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"><a class="line" href="classSVF_1_1ExeState.html#a0c6a0cd40fc94cc2c3829d6ae0a21270"> 159</a></span>&#160;<a class="code" href="classSVF_1_1ExeState.html">ExeState</a> &amp;<a class="code" href="classSVF_1_1ExeState.html#a0c6a0cd40fc94cc2c3829d6ae0a21270">ExeState::operator=</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1ExeState.html">ExeState</a> &amp;rhs)</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;{</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <span class="keywordflow">if</span> (*<span class="keyword">this</span> != rhs)</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; {</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; varToVal = rhs.<a class="code" href="classSVF_1_1ExeState.html#abf1237f5e4661a2da6e479f147957b18">getVarToVal</a>();</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; locToVal = rhs.<a class="code" href="classSVF_1_1ExeState.html#a4ee40de7eca22ac055b52360e0101623">getLocToVal</a>();</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; pathConstraint = rhs.<a class="code" href="classSVF_1_1ExeState.html#a00bd54e2dc70a8547581008e27790eb8">getPathConstraint</a>();</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; }</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</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;</div><div class="line"><a name="l00175"></a><span class="lineno"><a class="line" href="classSVF_1_1ExeState.html#a0e4c8a41aa861ff2862d8b620c902f21"> 175</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ExeState.html#a0e4c8a41aa861ff2862d8b620c902f21">ExeState::operator==</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1ExeState.html">ExeState</a> &amp;rhs)<span class="keyword"> const</span></div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="keywordflow">return</span> eq(pathConstraint, rhs.<a class="code" href="classSVF_1_1ExeState.html#a00bd54e2dc70a8547581008e27790eb8">getPathConstraint</a>()) &amp;&amp; eqVarToValMap(varToVal, rhs.<a class="code" href="classSVF_1_1ExeState.html#abf1237f5e4661a2da6e479f147957b18">getVarToVal</a>()) &amp;&amp;</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; eqVarToValMap(locToVal, rhs.<a class="code" href="classSVF_1_1ExeState.html#a4ee40de7eca22ac055b52360e0101623">getLocToVal</a>());</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;}</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;</div><div class="line"><a name="l00186"></a><span class="lineno"><a class="line" href="classSVF_1_1ExeState.html#a10a12722f1974d466ef07a35d9dff108"> 186</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ExeState.html#a10a12722f1974d466ef07a35d9dff108">ExeState::operator&lt;</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1ExeState.html">ExeState</a> &amp;rhs)<span class="keyword"> const</span></div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <span class="comment">// judge from path constraint</span></div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <span class="keywordflow">if</span> (!eq(pathConstraint, rhs.<a class="code" href="classSVF_1_1ExeState.html#a00bd54e2dc70a8547581008e27790eb8">getPathConstraint</a>()))</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; <span class="keywordflow">return</span> pathConstraint.id() &lt; rhs.<a class="code" href="classSVF_1_1ExeState.html#a00bd54e2dc70a8547581008e27790eb8">getPathConstraint</a>().<a class="code" href="classSVF_1_1Z3Expr.html#acdb4fbb53f19bac033e79cfe96ce82ca">id</a>();</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="keywordflow">if</span> (lessThanVarToValMap(varToVal, rhs.<a class="code" href="classSVF_1_1ExeState.html#abf1237f5e4661a2da6e479f147957b18">getVarToVal</a>()) || lessThanVarToValMap(locToVal, rhs.<a class="code" href="classSVF_1_1ExeState.html#a4ee40de7eca22ac055b52360e0101623">getLocToVal</a>()))</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</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"><a class="line" href="classSVF_1_1ExeState.html#a8447b7c20dd6bb724270026f55cbdece"> 196</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ExeState.html#a8447b7c20dd6bb724270026f55cbdece">ExeState::eqVarToValMap</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1ExeState.html#afc4aad166cd39a6cfbd8e9b897104f3f">VarToValMap</a> &amp;lhs, <span class="keyword">const</span> <a class="code" href="classSVF_1_1ExeState.html#afc4aad166cd39a6cfbd8e9b897104f3f">VarToValMap</a> &amp;rhs)<span class="keyword"> const</span></div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; <span class="keywordflow">if</span>(lhs.size() != rhs.size()) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &amp;item: lhs)</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; {</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <span class="keyword">auto</span> it = rhs.find(item.first);</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <span class="comment">// return false if SVFVar not exists in rhs or z3Expr not equal</span></div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; <span class="keywordflow">if</span> (it == rhs.end() || !eq(item.second, it-&gt;second))</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; }</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160;}</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160;</div><div class="line"><a name="l00209"></a><span class="lineno"><a class="line" href="classSVF_1_1ExeState.html#a29c29c85982ffafd4c496e293a80eeeb"> 209</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ExeState.html#a29c29c85982ffafd4c496e293a80eeeb">ExeState::lessThanVarToValMap</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1ExeState.html#afc4aad166cd39a6cfbd8e9b897104f3f">VarToValMap</a> &amp;lhs, <span class="keyword">const</span> <a class="code" href="classSVF_1_1ExeState.html#afc4aad166cd39a6cfbd8e9b897104f3f">VarToValMap</a> &amp;rhs)<span class="keyword"> const</span></div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; <span class="keywordflow">if</span>(lhs.size() != rhs.size()) <span class="keywordflow">return</span> lhs.size() &lt; rhs.size();</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &amp;item: lhs)</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="keyword">auto</span> it = rhs.find(item.first);</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; <span class="comment">// lhs &gt; rhs if SVFVar not exists in rhs</span></div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; <span class="keywordflow">if</span> (it == rhs.end())</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; <span class="comment">// judge from expr id</span></div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; <span class="keywordflow">if</span> (!eq(item.second, it-&gt;second))</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; <span class="keywordflow">return</span> item.second.id() &lt; it-&gt;second.id();</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; }</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160;}</div><div class="line"><a name="l00229"></a><span class="lineno"><a class="line" href="classSVF_1_1ExeState.html#a08db85e0e599d17b54743feb03a7717a"> 229</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classSVF_1_1ExeState.html#a08db85e0e599d17b54743feb03a7717a">ExeState::store</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a> &amp;loc, <span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a> &amp;value)</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; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(loc.<a class="code" href="classSVF_1_1Z3Expr.html#ad1802109545427278e3a8bde52e016b0">is_numeral</a>() &amp;&amp; <span class="stringliteral">&quot;location must be numeral&quot;</span>);</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; <a class="code" href="namespaceSVF.html#a9b707002523ece2ac54ca893ee9a2d4e">s32_t</a> virAddr = z3Expr2NumValue(loc);</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(isVirtualMemAddress(virAddr) &amp;&amp; <span class="stringliteral">&quot;Pointer operand is not a physical address?&quot;</span>);</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; store(getInternalID(virAddr), value);</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160;}</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160;</div><div class="line"><a name="l00242"></a><span class="lineno"><a class="line" href="classSVF_1_1ExeState.html#a80bd7f3746198459bbcb59274cebc013"> 242</a></span>&#160;<a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a> &amp;<a class="code" href="classSVF_1_1ExeState.html#a80bd7f3746198459bbcb59274cebc013">ExeState::load</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a> &amp;loc)</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160;{</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(loc.<a class="code" href="classSVF_1_1Z3Expr.html#ad1802109545427278e3a8bde52e016b0">is_numeral</a>() &amp;&amp; <span class="stringliteral">&quot;location must be numeral&quot;</span>);</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; <a class="code" href="namespaceSVF.html#a9b707002523ece2ac54ca893ee9a2d4e">s32_t</a> virAddr = z3Expr2NumValue(loc);</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(isVirtualMemAddress(virAddr) &amp;&amp; <span class="stringliteral">&quot;Pointer operand is not a physical address?&quot;</span>);</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> objId = getInternalID(virAddr);</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(getInternalID(objId) == objId &amp;&amp; <span class="stringliteral">&quot;SVFVar idx overflow &gt; 0x7f000000?&quot;</span>);</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; <span class="keywordflow">return</span> load(objId);</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160;}</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160;</div><div class="line"><a name="l00255"></a><span class="lineno"><a class="line" href="classSVF_1_1ExeState.html#aee8eece3daa2b7cbebb8dcde761931c2"> 255</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classSVF_1_1ExeState.html#aee8eece3daa2b7cbebb8dcde761931c2">ExeState::printExprValues</a>()</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160;{</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; std::cout.flags(std::ios::left);</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; std::cout &lt;&lt; <span class="stringliteral">&quot;-----------Var and Value-----------\n&quot;</span>;</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &amp;item: getVarToVal())</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; {</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; std::stringstream exprName;</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; exprName &lt;&lt; <span class="stringliteral">&quot;Var&quot;</span> &lt;&lt; item.first;</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; std::cout &lt;&lt; std::setw(25) &lt;&lt; exprName.str();</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a> &amp;sim = item.second.<a class="code" href="classSVF_1_1Z3Expr.html#afb3478316592a395c6d473791b5a0981">simplify</a>();</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; <span class="keywordflow">if</span> (sim.<a class="code" href="classSVF_1_1Z3Expr.html#ad1802109545427278e3a8bde52e016b0">is_numeral</a>() &amp;&amp; isVirtualMemAddress(z3Expr2NumValue(sim)))</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; {</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; std::cout &lt;&lt; <span class="stringliteral">&quot;\t Value: &quot;</span> &lt;&lt; std::hex &lt;&lt; <span class="stringliteral">&quot;0x&quot;</span> &lt;&lt; z3Expr2NumValue(sim) &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; }</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; {</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; std::cout &lt;&lt; <span class="stringliteral">&quot;\t Value: &quot;</span> &lt;&lt; std::dec &lt;&lt; sim &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; }</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; }</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; std::cout &lt;&lt; <span class="stringliteral">&quot;-----------------------------------------\n&quot;</span>;</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160;}</div><div class="ttc" id="classSVF_1_1Z3Expr_html_ad1802109545427278e3a8bde52e016b0"><div class="ttname"><a href="classSVF_1_1Z3Expr.html#ad1802109545427278e3a8bde52e016b0">SVF::Z3Expr::is_numeral</a></div><div class="ttdeci">bool is_numeral() const</div><div class="ttdef"><b>Definition:</b> <a href="Z3Expr_8h_source.html#l00117">Z3Expr.h:117</a></div></div>
70
- <div class="ttc" id="classSVF_1_1MemObj_html"><div class="ttname"><a href="classSVF_1_1MemObj.html">SVF::MemObj</a></div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00392">SymbolTableInfo.h:392</a></div></div>
71
- <div class="ttc" id="classSVF_1_1ValVar_html"><div class="ttname"><a href="classSVF_1_1ValVar.html">SVF::ValVar</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00267">SVFVariables.h:267</a></div></div>
72
- <div class="ttc" id="classSVF_1_1ExeState_html_a80bd7f3746198459bbcb59274cebc013"><div class="ttname"><a href="classSVF_1_1ExeState.html#a80bd7f3746198459bbcb59274cebc013">SVF::ExeState::load</a></div><div class="ttdeci">Z3Expr &amp; load(const Z3Expr &amp;loc)</div><div class="ttdoc">Load value at location. </div><div class="ttdef"><b>Definition:</b> <a href="ExeState_8cpp_source.html#l00242">ExeState.cpp:242</a></div></div>
69
+ <a href="ExeState_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">//===- ExeState.cpp -- Execution State ----------------------------//</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-2017&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;<span class="comment">/*</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment"> * ExeState.cpp</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment"> * Created on: April 29, 2022</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment"> * Author: Xiao</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="preprocessor">#include &quot;<a class="code" href="ExeState_8h.html">Util/ExeState.h</a>&quot;</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="SVFIR_8h.html">MemoryModel/SVFIR.h</a>&quot;</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#include &lt;iomanip&gt;</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="LLVMUtil_8h.html">SVF-FE/LLVMUtil.h</a>&quot;</span></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="keyword">using namespace </span><a class="code" href="namespaceSVF.html">SVF</a>;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="keyword">using namespace </span>SVFUtil;</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;z3::context *<a class="code" href="classSVF_1_1Z3Expr.html#a7dce19d65c7a0b50d21127a07aa51bf8">Z3Expr::ctx</a> = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="classSVF_1_1ExeState.html#a7b3013578baac3ce73bc544569c3dbbf"> 43</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classSVF_1_1ExeState.html#a7b3013578baac3ce73bc544569c3dbbf">ExeState::initValVar</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1ValVar.html">ValVar</a> *valVar, <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a> &amp;e)</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;{</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; std::string str;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <a class="code" href="namespaceSVF.html#a726981481ac082dcda3e4921416b65a0">raw_string_ostream</a> rawstr(str);</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <a class="code" href="classSVF_1_1SVFIR.html">SVFIR</a> *svfir = <a class="code" href="classSVF_1_1SVFIR.html#a37cfa2aa4e7b98ef9dc8179f581a2362">PAG::getPAG</a>();</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot;ValVar&quot;</span> &lt;&lt; valVar-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>();</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a> *type = valVar-&gt;<a class="code" href="classSVF_1_1SVFVar.html#adaaf24b8b6ec06476cea112533c24066">getType</a>())</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; {</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keywordflow">if</span> (type-&gt;isIntegerTy() || type-&gt;isFloatingPointTy() || type-&gt;isPointerTy() || type-&gt;isFunctionTy()</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; || type-&gt;isStructTy() || type-&gt;isArrayTy() || type-&gt;isVoidTy() || type-&gt;isLabelTy() || type-&gt;isMetadataTy())</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; e = getContext().int_const(rawstr.str().c_str());</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <span class="keywordflow">else</span></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"> 57</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">SVFUtil::errs</a>() &lt;&lt; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a7486fd8e5350879ed1cbd835c0d4e191">value2String</a>(valVar-&gt;<a class="code" href="classSVF_1_1SVFVar.html#afaa33caa8d2a306f6741d9d066243e40">getValue</a>()) &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span> &lt;&lt; <span class="stringliteral">&quot; 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="l00058"></a><span class="lineno"> 58</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<span class="keyword">false</span> &amp;&amp; <span class="stringliteral">&quot;what other types we have&quot;</span>);</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; }</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; }</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; {</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="keywordflow">if</span> (svfir-&gt;<a class="code" href="classSVF_1_1IRGraph.html#a3de9a2a565c303f68a90c32dc59febd5">getNullPtr</a>() == valVar-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>())</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; e = getContext().int_val(0);</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; e = getContext().int_const(rawstr.str().c_str());</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(SVFUtil::isa&lt;DummyValVar&gt;(valVar) &amp;&amp; <span class="stringliteral">&quot;not a DummValVar if it has no type?&quot;</span>);</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"> 69</span>&#160;}</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div><div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="classSVF_1_1ExeState.html#af4018e9053baa373b590230bc53b7ccb"> 76</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classSVF_1_1ExeState.html#af4018e9053baa373b590230bc53b7ccb">ExeState::initObjVar</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1ObjVar.html">ObjVar</a> *objVar, <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a> &amp;e)</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; std::string str;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <a class="code" href="namespaceSVF.html#a726981481ac082dcda3e4921416b65a0">raw_string_ostream</a> rawstr(str);</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot;ObjVar&quot;</span> &lt;&lt; objVar-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>();</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">if</span> (objVar-&gt;<a class="code" href="classSVF_1_1SVFVar.html#a1ace69053c2c4436fd78d5624bd0086a">hasValue</a>())</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; <span class="keyword">const</span> <a class="code" href="classSVF_1_1MemObj.html">MemObj</a> *obj = objVar-&gt;<a class="code" href="classSVF_1_1ObjVar.html#a6a4feb73b54e602407e35eeb09f55930">getMemObj</a>();</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="keywordflow">if</span> (obj-&gt;<a class="code" href="classSVF_1_1MemObj.html#aa50d7c3b4e7ac0aa769bc094bea26e16">isConstantData</a>() || obj-&gt;<a class="code" href="classSVF_1_1MemObj.html#a7f828731597450f1d43b61413ab0e7bb">isConstantArray</a>() || obj-&gt;<a class="code" href="classSVF_1_1MemObj.html#a019a77516c403f1f3cc72917b810a41f">isConstantStruct</a>())</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; <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#adefcb50414ea999d70cea5ccdbcb98d7">ConstantInt</a> *consInt = SVFUtil::dyn_cast&lt;ConstantInt&gt;(obj-&gt;<a class="code" href="classSVF_1_1MemObj.html#a4da54ef60231d2e6c26669226b99d2f3">getValue</a>()))</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"> 90</span>&#160; <span class="keywordflow">if</span> (consInt == llvm::ConstantInt::getTrue(<a class="code" href="classSVF_1_1LLVMModuleSet.html#acf40310917909e4234282c0695a43160">LLVMModuleSet::getLLVMModuleSet</a>()-&gt;<a class="code" href="classSVF_1_1LLVMModuleSet.html#ac1a9d20d62066ec4e181fad223669e32">getContext</a>()))</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; {</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; e = getContext().int_val(1);</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"> 94</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (consInt == llvm::ConstantInt::getFalse(<a class="code" href="classSVF_1_1LLVMModuleSet.html#acf40310917909e4234282c0695a43160">LLVMModuleSet::getLLVMModuleSet</a>()-&gt;getContext()))</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; e = getContext().int_val(0);</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keywordflow">else</span></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"> 98</span>&#160; e = getContext().int_val(consInt-&gt;getSExtValue());</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; }</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; }</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> llvm::ConstantFP *consFP = SVFUtil::dyn_cast&lt;llvm::ConstantFP&gt;(obj-&gt;<a class="code" href="classSVF_1_1MemObj.html#a4da54ef60231d2e6c26669226b99d2f3">getValue</a>()))</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; e = getContext().int_val(static_cast&lt;u32_t&gt;(consFP-&gt;getValueAPF().convertToFloat()));</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa&lt;ConstantPointerNull&gt;(obj-&gt;<a class="code" href="classSVF_1_1MemObj.html#a4da54ef60231d2e6c26669226b99d2f3">getValue</a>()))</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; e = getContext().int_val(0);</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa&lt;GlobalVariable&gt;(obj-&gt;<a class="code" href="classSVF_1_1MemObj.html#a4da54ef60231d2e6c26669226b99d2f3">getValue</a>()))</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; e = getContext().int_val(getVirtualMemAddress(objVar-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>()));</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa&lt;ConstantAggregate&gt;(obj-&gt;<a class="code" href="classSVF_1_1MemObj.html#a4da54ef60231d2e6c26669226b99d2f3">getValue</a>()))</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<span class="keyword">false</span> &amp;&amp; <span class="stringliteral">&quot;implement this part&quot;</span>);</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; {</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; std::cerr &lt;&lt; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a7486fd8e5350879ed1cbd835c0d4e191">value2String</a>(obj-&gt;<a class="code" href="classSVF_1_1MemObj.html#a4da54ef60231d2e6c26669226b99d2f3">getValue</a>()) &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<span class="keyword">false</span> &amp;&amp; <span class="stringliteral">&quot;what other types of values we have?&quot;</span>);</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; }</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"> 116</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; {</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; e = getContext().int_val(getVirtualMemAddress(objVar-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</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="l00121"></a><span class="lineno"> 121</span>&#160; <span class="keywordflow">else</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; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(SVFUtil::isa&lt;DummyObjVar&gt;(objVar) &amp;&amp;</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <span class="stringliteral">&quot;it should either be a blackhole or constant dummy if this obj has no value?&quot;</span>);</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; e = getContext().int_val(getVirtualMemAddress(objVar-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>()));</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; }</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;}</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;</div><div class="line"><a name="l00134"></a><span class="lineno"><a class="line" href="classSVF_1_1ExeState.html#ab52debe3aae77d1efd5de4d220dbed2f"> 134</a></span>&#160;<a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a> &amp;<a class="code" href="classSVF_1_1ExeState.html#ab52debe3aae77d1efd5de4d220dbed2f">ExeState::getZ3Expr</a>(<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> varId)</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; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(getInternalID(varId) == varId &amp;&amp; <span class="stringliteral">&quot;SVFVar idx overflow &gt; 0x7f000000?&quot;</span>);</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a> &amp;e = varToVal[varId];</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <span class="keywordflow">if</span> (eq(e, <a class="code" href="classSVF_1_1Z3Expr.html#a9aa800372d57db519d484cc32ea1c5dc">Z3Expr::nullExpr</a>()))</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"> 140</span>&#160; std::string str;</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <a class="code" href="namespaceSVF.html#a726981481ac082dcda3e4921416b65a0">raw_string_ostream</a> rawstr(str);</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <a class="code" href="classSVF_1_1SVFIR.html">SVFIR</a> *svfir = <a class="code" href="classSVF_1_1SVFIR.html#a37cfa2aa4e7b98ef9dc8179f581a2362">PAG::getPAG</a>();</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a> *svfVar = svfir-&gt;<a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(varId);</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1ValVar.html">ValVar</a> *valVar = dyn_cast&lt;ValVar&gt;(svfVar))</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; initValVar(valVar, e);</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">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1ObjVar.html">ObjVar</a> *objVar = dyn_cast&lt;ObjVar&gt;(svfVar))</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; {</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; initObjVar(objVar, e);</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; }</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; {</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<span class="keyword">false</span> &amp;&amp; <span class="stringliteral">&quot;var type not supported&quot;</span>);</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; }</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; }</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <span class="keywordflow">return</span> e;</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_1ExeState.html#a0c6a0cd40fc94cc2c3829d6ae0a21270"> 160</a></span>&#160;<a class="code" href="classSVF_1_1ExeState.html">ExeState</a> &amp;<a class="code" href="classSVF_1_1ExeState.html#a0c6a0cd40fc94cc2c3829d6ae0a21270">ExeState::operator=</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1ExeState.html">ExeState</a> &amp;rhs)</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;{</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <span class="keywordflow">if</span> (*<span class="keyword">this</span> != rhs)</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; {</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; varToVal = rhs.<a class="code" href="classSVF_1_1ExeState.html#abf1237f5e4661a2da6e479f147957b18">getVarToVal</a>();</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; locToVal = rhs.<a class="code" href="classSVF_1_1ExeState.html#a4ee40de7eca22ac055b52360e0101623">getLocToVal</a>();</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; pathConstraint = rhs.<a class="code" href="classSVF_1_1ExeState.html#a00bd54e2dc70a8547581008e27790eb8">getPathConstraint</a>();</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; }</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;}</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160;</div><div class="line"><a name="l00176"></a><span class="lineno"><a class="line" href="classSVF_1_1ExeState.html#a0e4c8a41aa861ff2862d8b620c902f21"> 176</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ExeState.html#a0e4c8a41aa861ff2862d8b620c902f21">ExeState::operator==</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1ExeState.html">ExeState</a> &amp;rhs)<span class="keyword"> const</span></div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; <span class="keywordflow">return</span> eq(pathConstraint, rhs.<a class="code" href="classSVF_1_1ExeState.html#a00bd54e2dc70a8547581008e27790eb8">getPathConstraint</a>()) &amp;&amp; eqVarToValMap(varToVal, rhs.<a class="code" href="classSVF_1_1ExeState.html#abf1237f5e4661a2da6e479f147957b18">getVarToVal</a>()) &amp;&amp;</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; eqVarToValMap(locToVal, rhs.<a class="code" href="classSVF_1_1ExeState.html#a4ee40de7eca22ac055b52360e0101623">getLocToVal</a>());</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;}</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;</div><div class="line"><a name="l00187"></a><span class="lineno"><a class="line" href="classSVF_1_1ExeState.html#a10a12722f1974d466ef07a35d9dff108"> 187</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ExeState.html#a10a12722f1974d466ef07a35d9dff108">ExeState::operator&lt;</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1ExeState.html">ExeState</a> &amp;rhs)<span class="keyword"> const</span></div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <span class="comment">// judge from path constraint</span></div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; <span class="keywordflow">if</span> (!eq(pathConstraint, rhs.<a class="code" href="classSVF_1_1ExeState.html#a00bd54e2dc70a8547581008e27790eb8">getPathConstraint</a>()))</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="keywordflow">return</span> pathConstraint.id() &lt; rhs.<a class="code" href="classSVF_1_1ExeState.html#a00bd54e2dc70a8547581008e27790eb8">getPathConstraint</a>().<a class="code" href="classSVF_1_1Z3Expr.html#acdb4fbb53f19bac033e79cfe96ce82ca">id</a>();</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <span class="keywordflow">if</span> (lessThanVarToValMap(varToVal, rhs.<a class="code" href="classSVF_1_1ExeState.html#abf1237f5e4661a2da6e479f147957b18">getVarToVal</a>()) || lessThanVarToValMap(locToVal, rhs.<a class="code" href="classSVF_1_1ExeState.html#a4ee40de7eca22ac055b52360e0101623">getLocToVal</a>()))</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</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_1ExeState.html#a8447b7c20dd6bb724270026f55cbdece"> 197</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ExeState.html#a8447b7c20dd6bb724270026f55cbdece">ExeState::eqVarToValMap</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1ExeState.html#afc4aad166cd39a6cfbd8e9b897104f3f">VarToValMap</a> &amp;lhs, <span class="keyword">const</span> <a class="code" href="classSVF_1_1ExeState.html#afc4aad166cd39a6cfbd8e9b897104f3f">VarToValMap</a> &amp;rhs)<span class="keyword"> const</span></div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <span class="keywordflow">if</span>(lhs.size() != rhs.size()) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &amp;item: lhs)</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; {</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <span class="keyword">auto</span> it = rhs.find(item.first);</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; <span class="comment">// return false if SVFVar not exists in rhs or z3Expr not equal</span></div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; <span class="keywordflow">if</span> (it == rhs.end() || !eq(item.second, it-&gt;second))</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; }</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160;}</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;</div><div class="line"><a name="l00210"></a><span class="lineno"><a class="line" href="classSVF_1_1ExeState.html#a29c29c85982ffafd4c496e293a80eeeb"> 210</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ExeState.html#a29c29c85982ffafd4c496e293a80eeeb">ExeState::lessThanVarToValMap</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1ExeState.html#afc4aad166cd39a6cfbd8e9b897104f3f">VarToValMap</a> &amp;lhs, <span class="keyword">const</span> <a class="code" href="classSVF_1_1ExeState.html#afc4aad166cd39a6cfbd8e9b897104f3f">VarToValMap</a> &amp;rhs)<span class="keyword"> const</span></div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <span class="keywordflow">if</span>(lhs.size() != rhs.size()) <span class="keywordflow">return</span> lhs.size() &lt; rhs.size();</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &amp;item: lhs)</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; {</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; <span class="keyword">auto</span> it = rhs.find(item.first);</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; <span class="comment">// lhs &gt; rhs if SVFVar not exists in rhs</span></div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; <span class="keywordflow">if</span> (it == rhs.end())</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; <span class="comment">// judge from expr id</span></div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; <span class="keywordflow">if</span> (!eq(item.second, it-&gt;second))</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; <span class="keywordflow">return</span> item.second.id() &lt; it-&gt;second.id();</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; }</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160;}</div><div class="line"><a name="l00230"></a><span class="lineno"><a class="line" href="classSVF_1_1ExeState.html#a08db85e0e599d17b54743feb03a7717a"> 230</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classSVF_1_1ExeState.html#a08db85e0e599d17b54743feb03a7717a">ExeState::store</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a> &amp;loc, <span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a> &amp;value)</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160;{</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(loc.<a class="code" href="classSVF_1_1Z3Expr.html#ad1802109545427278e3a8bde52e016b0">is_numeral</a>() &amp;&amp; <span class="stringliteral">&quot;location must be numeral&quot;</span>);</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; <a class="code" href="namespaceSVF.html#a9b707002523ece2ac54ca893ee9a2d4e">s32_t</a> virAddr = z3Expr2NumValue(loc);</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(isVirtualMemAddress(virAddr) &amp;&amp; <span class="stringliteral">&quot;Pointer operand is not a physical address?&quot;</span>);</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; store(getInternalID(virAddr), value);</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160;}</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160;</div><div class="line"><a name="l00243"></a><span class="lineno"><a class="line" href="classSVF_1_1ExeState.html#a80bd7f3746198459bbcb59274cebc013"> 243</a></span>&#160;<a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a> &amp;<a class="code" href="classSVF_1_1ExeState.html#a80bd7f3746198459bbcb59274cebc013">ExeState::load</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a> &amp;loc)</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160;{</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(loc.<a class="code" href="classSVF_1_1Z3Expr.html#ad1802109545427278e3a8bde52e016b0">is_numeral</a>() &amp;&amp; <span class="stringliteral">&quot;location must be numeral&quot;</span>);</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; <a class="code" href="namespaceSVF.html#a9b707002523ece2ac54ca893ee9a2d4e">s32_t</a> virAddr = z3Expr2NumValue(loc);</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(isVirtualMemAddress(virAddr) &amp;&amp; <span class="stringliteral">&quot;Pointer operand is not a physical address?&quot;</span>);</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> objId = getInternalID(virAddr);</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(getInternalID(objId) == objId &amp;&amp; <span class="stringliteral">&quot;SVFVar idx overflow &gt; 0x7f000000?&quot;</span>);</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; <span class="keywordflow">return</span> load(objId);</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160;}</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160;</div><div class="line"><a name="l00256"></a><span class="lineno"><a class="line" href="classSVF_1_1ExeState.html#aee8eece3daa2b7cbebb8dcde761931c2"> 256</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classSVF_1_1ExeState.html#aee8eece3daa2b7cbebb8dcde761931c2">ExeState::printExprValues</a>()</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160;{</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; std::cout.flags(std::ios::left);</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; std::cout &lt;&lt; <span class="stringliteral">&quot;-----------Var and Value-----------\n&quot;</span>;</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &amp;item: getVarToVal())</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; {</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; std::stringstream exprName;</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; exprName &lt;&lt; <span class="stringliteral">&quot;Var&quot;</span> &lt;&lt; item.first;</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; std::cout &lt;&lt; std::setw(25) &lt;&lt; exprName.str();</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a> &amp;sim = item.second.<a class="code" href="classSVF_1_1Z3Expr.html#afb3478316592a395c6d473791b5a0981">simplify</a>();</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; <span class="keywordflow">if</span> (sim.<a class="code" href="classSVF_1_1Z3Expr.html#ad1802109545427278e3a8bde52e016b0">is_numeral</a>() &amp;&amp; isVirtualMemAddress(z3Expr2NumValue(sim)))</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; {</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; std::cout &lt;&lt; <span class="stringliteral">&quot;\t Value: &quot;</span> &lt;&lt; std::hex &lt;&lt; <span class="stringliteral">&quot;0x&quot;</span> &lt;&lt; z3Expr2NumValue(sim) &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; }</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; {</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; std::cout &lt;&lt; <span class="stringliteral">&quot;\t Value: &quot;</span> &lt;&lt; std::dec &lt;&lt; sim &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; }</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; }</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; std::cout &lt;&lt; <span class="stringliteral">&quot;-----------------------------------------\n&quot;</span>;</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160;}</div><div class="ttc" id="classSVF_1_1Z3Expr_html_ad1802109545427278e3a8bde52e016b0"><div class="ttname"><a href="classSVF_1_1Z3Expr.html#ad1802109545427278e3a8bde52e016b0">SVF::Z3Expr::is_numeral</a></div><div class="ttdeci">bool is_numeral() const</div><div class="ttdef"><b>Definition:</b> <a href="Z3Expr_8h_source.html#l00117">Z3Expr.h:117</a></div></div>
70
+ <div class="ttc" id="classSVF_1_1MemObj_html"><div class="ttname"><a href="classSVF_1_1MemObj.html">SVF::MemObj</a></div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00372">SymbolTableInfo.h:372</a></div></div>
71
+ <div class="ttc" id="classSVF_1_1ValVar_html"><div class="ttname"><a href="classSVF_1_1ValVar.html">SVF::ValVar</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00260">SVFVariables.h:260</a></div></div>
72
+ <div class="ttc" id="classSVF_1_1ExeState_html_a80bd7f3746198459bbcb59274cebc013"><div class="ttname"><a href="classSVF_1_1ExeState.html#a80bd7f3746198459bbcb59274cebc013">SVF::ExeState::load</a></div><div class="ttdeci">Z3Expr &amp; load(const Z3Expr &amp;loc)</div><div class="ttdoc">Load value at location. </div><div class="ttdef"><b>Definition:</b> <a href="ExeState_8cpp_source.html#l00243">ExeState.cpp:243</a></div></div>
73
73
  <div class="ttc" id="classSVF_1_1ExeState_html_a4ee40de7eca22ac055b52360e0101623"><div class="ttname"><a href="classSVF_1_1ExeState.html#a4ee40de7eca22ac055b52360e0101623">SVF::ExeState::getLocToVal</a></div><div class="ttdeci">const LocToValMap &amp; getLocToVal() const</div><div class="ttdef"><b>Definition:</b> <a href="ExeState_8h_source.html#l00092">ExeState.h:92</a></div></div>
74
74
  <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#l00061">BasicTypes.h:61</a></div></div>
75
75
  <div class="ttc" id="util_8h_html_a07d17d6d5d1074c0969bc5d3c3d1d84a"><div class="ttname"><a href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a></div><div class="ttdeci">#define assert(ex)</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00141">util.h:141</a></div></div>
76
- <div class="ttc" id="classSVF_1_1ExeState_html_a10a12722f1974d466ef07a35d9dff108"><div class="ttname"><a href="classSVF_1_1ExeState.html#a10a12722f1974d466ef07a35d9dff108">SVF::ExeState::operator&lt;</a></div><div class="ttdeci">bool operator&lt;(const ExeState &amp;rhs) const</div><div class="ttdoc">Overloading Operator==. </div><div class="ttdef"><b>Definition:</b> <a href="ExeState_8cpp_source.html#l00186">ExeState.cpp:186</a></div></div>
76
+ <div class="ttc" id="classSVF_1_1ExeState_html_a10a12722f1974d466ef07a35d9dff108"><div class="ttname"><a href="classSVF_1_1ExeState.html#a10a12722f1974d466ef07a35d9dff108">SVF::ExeState::operator&lt;</a></div><div class="ttdeci">bool operator&lt;(const ExeState &amp;rhs) const</div><div class="ttdoc">Overloading Operator==. </div><div class="ttdef"><b>Definition:</b> <a href="ExeState_8cpp_source.html#l00187">ExeState.cpp:187</a></div></div>
77
77
  <div class="ttc" id="classSVF_1_1LLVMModuleSet_html_ac1a9d20d62066ec4e181fad223669e32"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#ac1a9d20d62066ec4e181fad223669e32">SVF::LLVMModuleSet::getContext</a></div><div class="ttdeci">LLVMContext &amp; getContext() const</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00200">LLVMModule.h:200</a></div></div>
78
- <div class="ttc" id="classSVF_1_1MemObj_html_a7f828731597450f1d43b61413ab0e7bb"><div class="ttname"><a href="classSVF_1_1MemObj.html#a7f828731597450f1d43b61413ab0e7bb">SVF::MemObj::isConstantArray</a></div><div class="ttdeci">bool isConstantArray() const</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00754">SymbolTableInfo.cpp:754</a></div></div>
78
+ <div class="ttc" id="classSVF_1_1MemObj_html_a7f828731597450f1d43b61413ab0e7bb"><div class="ttname"><a href="classSVF_1_1MemObj.html#a7f828731597450f1d43b61413ab0e7bb">SVF::MemObj::isConstantArray</a></div><div class="ttdeci">bool isConstantArray() const</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00755">SymbolTableInfo.cpp:755</a></div></div>
79
79
  <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#l00085">SVFBasicTypes.h:85</a></div></div>
80
80
  <div class="ttc" id="classSVF_1_1Z3Expr_html"><div class="ttname"><a href="classSVF_1_1Z3Expr.html">SVF::Z3Expr</a></div><div class="ttdef"><b>Definition:</b> <a href="Z3Expr_8h_source.html#l00038">Z3Expr.h:38</a></div></div>
81
- <div class="ttc" id="classSVF_1_1SVFVar_html"><div class="ttname"><a href="classSVF_1_1SVFVar.html">SVF::SVFVar</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00046">SVFVariables.h:46</a></div></div>
82
- <div class="ttc" id="classSVF_1_1ObjVar_html"><div class="ttname"><a href="classSVF_1_1ObjVar.html">SVF::ObjVar</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00315">SVFVariables.h:315</a></div></div>
81
+ <div class="ttc" id="classSVF_1_1SVFVar_html"><div class="ttname"><a href="classSVF_1_1SVFVar.html">SVF::SVFVar</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00045">SVFVariables.h:45</a></div></div>
82
+ <div class="ttc" id="classSVF_1_1ObjVar_html"><div class="ttname"><a href="classSVF_1_1ObjVar.html">SVF::ObjVar</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00308">SVFVariables.h:308</a></div></div>
83
83
  <div class="ttc" id="classSVF_1_1SVFIR_html_a37cfa2aa4e7b98ef9dc8179f581a2362"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a37cfa2aa4e7b98ef9dc8179f581a2362">SVF::SVFIR::getPAG</a></div><div class="ttdeci">static SVFIR * getPAG(bool buildFromFile=false)</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="SVFIR_8h_source.html#l00106">SVFIR.h:106</a></div></div>
84
84
  <div class="ttc" id="classSVF_1_1ExeState_html_afc4aad166cd39a6cfbd8e9b897104f3f"><div class="ttname"><a href="classSVF_1_1ExeState.html#afc4aad166cd39a6cfbd8e9b897104f3f">SVF::ExeState::VarToValMap</a></div><div class="ttdeci">Map&lt; u32_t, Z3Expr &gt; VarToValMap</div><div class="ttdef"><b>Definition:</b> <a href="ExeState_8h_source.html#l00043">ExeState.h:43</a></div></div>
85
- <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#l00096">BasicTypes.h:96</a></div></div>
86
- <div class="ttc" id="classSVF_1_1ObjVar_html_a6a4feb73b54e602407e35eeb09f55930"><div class="ttname"><a href="classSVF_1_1ObjVar.html#a6a4feb73b54e602407e35eeb09f55930">SVF::ObjVar::getMemObj</a></div><div class="ttdeci">const MemObj * getMemObj() const</div><div class="ttdoc">Return memory object. </div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00355">SVFVariables.h:355</a></div></div>
85
+ <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#l00095">BasicTypes.h:95</a></div></div>
86
+ <div class="ttc" id="classSVF_1_1ObjVar_html_a6a4feb73b54e602407e35eeb09f55930"><div class="ttname"><a href="classSVF_1_1ObjVar.html#a6a4feb73b54e602407e35eeb09f55930">SVF::ObjVar::getMemObj</a></div><div class="ttdeci">const MemObj * getMemObj() const</div><div class="ttdoc">Return memory object. </div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00348">SVFVariables.h:348</a></div></div>
87
87
  <div class="ttc" id="SVFIR_8h_html"><div class="ttname"><a href="SVFIR_8h.html">SVFIR.h</a></div></div>
88
- <div class="ttc" id="classSVF_1_1MemObj_html_a019a77516c403f1f3cc72917b810a41f"><div class="ttname"><a href="classSVF_1_1MemObj.html#a019a77516c403f1f3cc72917b810a41f">SVF::MemObj::isConstantStruct</a></div><div class="ttdeci">bool isConstantStruct() const</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00749">SymbolTableInfo.cpp:749</a></div></div>
89
- <div class="ttc" id="classSVF_1_1ExeState_html_a08db85e0e599d17b54743feb03a7717a"><div class="ttname"><a href="classSVF_1_1ExeState.html#a08db85e0e599d17b54743feb03a7717a">SVF::ExeState::store</a></div><div class="ttdeci">void store(const Z3Expr &amp;loc, const Z3Expr &amp;value)</div><div class="ttdoc">Store value to location. </div><div class="ttdef"><b>Definition:</b> <a href="ExeState_8cpp_source.html#l00229">ExeState.cpp:229</a></div></div>
88
+ <div class="ttc" id="classSVF_1_1MemObj_html_a019a77516c403f1f3cc72917b810a41f"><div class="ttname"><a href="classSVF_1_1MemObj.html#a019a77516c403f1f3cc72917b810a41f">SVF::MemObj::isConstantStruct</a></div><div class="ttdeci">bool isConstantStruct() const</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00750">SymbolTableInfo.cpp:750</a></div></div>
89
+ <div class="ttc" id="classSVF_1_1ExeState_html_a08db85e0e599d17b54743feb03a7717a"><div class="ttname"><a href="classSVF_1_1ExeState.html#a08db85e0e599d17b54743feb03a7717a">SVF::ExeState::store</a></div><div class="ttdeci">void store(const Z3Expr &amp;loc, const Z3Expr &amp;value)</div><div class="ttdoc">Store value to location. </div><div class="ttdef"><b>Definition:</b> <a href="ExeState_8cpp_source.html#l00230">ExeState.cpp:230</a></div></div>
90
90
  <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#l00084">SVFBasicTypes.h:84</a></div></div>
91
91
  <div class="ttc" id="classSVF_1_1Z3Expr_html_a7dce19d65c7a0b50d21127a07aa51bf8"><div class="ttname"><a href="classSVF_1_1Z3Expr.html#a7dce19d65c7a0b50d21127a07aa51bf8">SVF::Z3Expr::ctx</a></div><div class="ttdeci">static z3::context * ctx</div><div class="ttdef"><b>Definition:</b> <a href="Z3Expr_8h_source.html#l00041">Z3Expr.h:41</a></div></div>
92
92
  <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="LLVMUtil_8cpp_source.html#l00442">LLVMUtil.cpp:442</a></div></div>
93
93
  <div class="ttc" id="classSVF_1_1ExeState_html"><div class="ttname"><a href="classSVF_1_1ExeState.html">SVF::ExeState</a></div><div class="ttdef"><b>Definition:</b> <a href="ExeState_8h_source.html#l00040">ExeState.h:40</a></div></div>
94
94
  <div class="ttc" id="classSVF_1_1ExeState_html_a00bd54e2dc70a8547581008e27790eb8"><div class="ttname"><a href="classSVF_1_1ExeState.html#a00bd54e2dc70a8547581008e27790eb8">SVF::ExeState::getPathConstraint</a></div><div class="ttdeci">const Z3Expr &amp; getPathConstraint() const</div><div class="ttdef"><b>Definition:</b> <a href="ExeState_8h_source.html#l00097">ExeState.h:97</a></div></div>
95
95
  <div class="ttc" id="classSVF_1_1Z3Expr_html_afb3478316592a395c6d473791b5a0981"><div class="ttname"><a href="classSVF_1_1Z3Expr.html#afb3478316592a395c6d473791b5a0981">SVF::Z3Expr::simplify</a></div><div class="ttdeci">Z3Expr simplify() const</div><div class="ttdef"><b>Definition:</b> <a href="Z3Expr_8h_source.html#l00127">Z3Expr.h:127</a></div></div>
96
- <div class="ttc" id="classSVF_1_1ExeState_html_aee8eece3daa2b7cbebb8dcde761931c2"><div class="ttname"><a href="classSVF_1_1ExeState.html#aee8eece3daa2b7cbebb8dcde761931c2">SVF::ExeState::printExprValues</a></div><div class="ttdeci">void printExprValues()</div><div class="ttdoc">Print values of all expressions. </div><div class="ttdef"><b>Definition:</b> <a href="ExeState_8cpp_source.html#l00255">ExeState.cpp:255</a></div></div>
96
+ <div class="ttc" id="classSVF_1_1ExeState_html_aee8eece3daa2b7cbebb8dcde761931c2"><div class="ttname"><a href="classSVF_1_1ExeState.html#aee8eece3daa2b7cbebb8dcde761931c2">SVF::ExeState::printExprValues</a></div><div class="ttdeci">void printExprValues()</div><div class="ttdoc">Print values of all expressions. </div><div class="ttdef"><b>Definition:</b> <a href="ExeState_8cpp_source.html#l00256">ExeState.cpp:256</a></div></div>
97
97
  <div class="ttc" id="classSVF_1_1IRGraph_html_a3de9a2a565c303f68a90c32dc59febd5"><div class="ttname"><a href="classSVF_1_1IRGraph.html#a3de9a2a565c303f68a90c32dc59febd5">SVF::IRGraph::getNullPtr</a></div><div class="ttdeci">NodeID getNullPtr() const</div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#l00160">IRGraph.h:160</a></div></div>
98
98
  <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#l00080">BasicTypes.h:80</a></div></div>
99
99
  <div class="ttc" id="ExeState_8h_html"><div class="ttname"><a href="ExeState_8h.html">ExeState.h</a></div></div>
100
100
  <div class="ttc" id="classSVF_1_1ExeState_html_abf1237f5e4661a2da6e479f147957b18"><div class="ttname"><a href="classSVF_1_1ExeState.html#abf1237f5e4661a2da6e479f147957b18">SVF::ExeState::getVarToVal</a></div><div class="ttdeci">const VarToValMap &amp; getVarToVal() const</div><div class="ttdef"><b>Definition:</b> <a href="ExeState_8h_source.html#l00087">ExeState.h:87</a></div></div>
101
101
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_ab65033f068bfbeb0a1c52dcec3beb6bc"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">SVF::SVFUtil::errs</a></div><div class="ttdeci">std::ostream &amp; errs()</div><div class="ttdoc">Overwrite llvm::errs() </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00055">SVFUtil.h:55</a></div></div>
102
- <div class="ttc" id="classSVF_1_1SVFVar_html_a1ace69053c2c4436fd78d5624bd0086a"><div class="ttname"><a href="classSVF_1_1SVFVar.html#a1ace69053c2c4436fd78d5624bd0086a">SVF::SVFVar::hasValue</a></div><div class="ttdeci">bool hasValue() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00112">SVFVariables.h:112</a></div></div>
103
- <div class="ttc" id="classSVF_1_1ExeState_html_ab52debe3aae77d1efd5de4d220dbed2f"><div class="ttname"><a href="classSVF_1_1ExeState.html#ab52debe3aae77d1efd5de4d220dbed2f">SVF::ExeState::getZ3Expr</a></div><div class="ttdeci">Z3Expr &amp; getZ3Expr(u32_t varId)</div><div class="ttdoc">Return Z3 expression based on SVFVar ID. </div><div class="ttdef"><b>Definition:</b> <a href="ExeState_8cpp_source.html#l00133">ExeState.cpp:133</a></div></div>
102
+ <div class="ttc" id="classSVF_1_1SVFVar_html_a1ace69053c2c4436fd78d5624bd0086a"><div class="ttname"><a href="classSVF_1_1SVFVar.html#a1ace69053c2c4436fd78d5624bd0086a">SVF::SVFVar::hasValue</a></div><div class="ttdeci">bool hasValue() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00111">SVFVariables.h:111</a></div></div>
103
+ <div class="ttc" id="classSVF_1_1ExeState_html_ab52debe3aae77d1efd5de4d220dbed2f"><div class="ttname"><a href="classSVF_1_1ExeState.html#ab52debe3aae77d1efd5de4d220dbed2f">SVF::ExeState::getZ3Expr</a></div><div class="ttdeci">Z3Expr &amp; getZ3Expr(u32_t varId)</div><div class="ttdoc">Return Z3 expression based on SVFVar ID. </div><div class="ttdef"><b>Definition:</b> <a href="ExeState_8cpp_source.html#l00134">ExeState.cpp:134</a></div></div>
104
104
  <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#l00392">SVFUtil.cpp:392</a></div></div>
105
- <div class="ttc" id="classSVF_1_1SVFVar_html_afaa33caa8d2a306f6741d9d066243e40"><div class="ttname"><a href="classSVF_1_1SVFVar.html#afaa33caa8d2a306f6741d9d066243e40">SVF::SVFVar::getValue</a></div><div class="ttdeci">const Value * getValue() const</div><div class="ttdoc">Get/has methods of the components. </div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00096">SVFVariables.h:96</a></div></div>
106
- <div class="ttc" id="classSVF_1_1ExeState_html_a0e4c8a41aa861ff2862d8b620c902f21"><div class="ttname"><a href="classSVF_1_1ExeState.html#a0e4c8a41aa861ff2862d8b620c902f21">SVF::ExeState::operator==</a></div><div class="ttdeci">bool operator==(const ExeState &amp;rhs) const</div><div class="ttdoc">Overloading Operator==. </div><div class="ttdef"><b>Definition:</b> <a href="ExeState_8cpp_source.html#l00175">ExeState.cpp:175</a></div></div>
107
- <div class="ttc" id="classSVF_1_1ExeState_html_af4018e9053baa373b590230bc53b7ccb"><div class="ttname"><a href="classSVF_1_1ExeState.html#af4018e9053baa373b590230bc53b7ccb">SVF::ExeState::initObjVar</a></div><div class="ttdeci">void initObjVar(const ObjVar *objVar, Z3Expr &amp;e)</div><div class="ttdoc">Init Z3Expr for ObjVar. </div><div class="ttdef"><b>Definition:</b> <a href="ExeState_8cpp_source.html#l00075">ExeState.cpp:75</a></div></div>
105
+ <div class="ttc" id="classSVF_1_1SVFVar_html_afaa33caa8d2a306f6741d9d066243e40"><div class="ttname"><a href="classSVF_1_1SVFVar.html#afaa33caa8d2a306f6741d9d066243e40">SVF::SVFVar::getValue</a></div><div class="ttdeci">const Value * getValue() const</div><div class="ttdoc">Get/has methods of the components. </div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00095">SVFVariables.h:95</a></div></div>
106
+ <div class="ttc" id="classSVF_1_1ExeState_html_a0e4c8a41aa861ff2862d8b620c902f21"><div class="ttname"><a href="classSVF_1_1ExeState.html#a0e4c8a41aa861ff2862d8b620c902f21">SVF::ExeState::operator==</a></div><div class="ttdeci">bool operator==(const ExeState &amp;rhs) const</div><div class="ttdoc">Overloading Operator==. </div><div class="ttdef"><b>Definition:</b> <a href="ExeState_8cpp_source.html#l00176">ExeState.cpp:176</a></div></div>
107
+ <div class="ttc" id="classSVF_1_1ExeState_html_af4018e9053baa373b590230bc53b7ccb"><div class="ttname"><a href="classSVF_1_1ExeState.html#af4018e9053baa373b590230bc53b7ccb">SVF::ExeState::initObjVar</a></div><div class="ttdeci">void initObjVar(const ObjVar *objVar, Z3Expr &amp;e)</div><div class="ttdoc">Init Z3Expr for ObjVar. </div><div class="ttdef"><b>Definition:</b> <a href="ExeState_8cpp_source.html#l00076">ExeState.cpp:76</a></div></div>
108
108
  <div class="ttc" id="classSVF_1_1Z3Expr_html_a9aa800372d57db519d484cc32ea1c5dc"><div class="ttname"><a href="classSVF_1_1Z3Expr.html#a9aa800372d57db519d484cc32ea1c5dc">SVF::Z3Expr::nullExpr</a></div><div class="ttdeci">static z3::expr nullExpr()</div><div class="ttdoc">null expression </div><div class="ttdef"><b>Definition:</b> <a href="Z3Expr_8h_source.html#l00101">Z3Expr.h:101</a></div></div>
109
109
  <div class="ttc" id="classSVF_1_1LLVMModuleSet_html_acf40310917909e4234282c0695a43160"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#acf40310917909e4234282c0695a43160">SVF::LLVMModuleSet::getLLVMModuleSet</a></div><div class="ttdeci">static LLVMModuleSet * getLLVMModuleSet()</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00070">LLVMModule.h:70</a></div></div>
110
110
  <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>
111
111
  <div class="ttc" id="classSVF_1_1GenericNode_html_ac3e55ef37aefb411ea4c87b1aa3b1895"><div class="ttname"><a href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">SVF::GenericNode::getId</a></div><div class="ttdeci">NodeID getId() const</div><div class="ttdoc">Get ID. </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00169">GenericGraph.h:169</a></div></div>
112
- <div class="ttc" id="classSVF_1_1ExeState_html_a29c29c85982ffafd4c496e293a80eeeb"><div class="ttname"><a href="classSVF_1_1ExeState.html#a29c29c85982ffafd4c496e293a80eeeb">SVF::ExeState::lessThanVarToValMap</a></div><div class="ttdeci">bool lessThanVarToValMap(const VarToValMap &amp;lhs, const VarToValMap &amp;rhs) const</div><div class="ttdef"><b>Definition:</b> <a href="ExeState_8cpp_source.html#l00209">ExeState.cpp:209</a></div></div>
113
- <div class="ttc" id="classSVF_1_1MemObj_html_a4da54ef60231d2e6c26669226b99d2f3"><div class="ttname"><a href="classSVF_1_1MemObj.html#a4da54ef60231d2e6c26669226b99d2f3">SVF::MemObj::getValue</a></div><div class="ttdeci">const Value * getValue() const</div><div class="ttdoc">Get the reference value to this object. </div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00416">SymbolTableInfo.h:416</a></div></div>
114
- <div class="ttc" id="classSVF_1_1ExeState_html_a0c6a0cd40fc94cc2c3829d6ae0a21270"><div class="ttname"><a href="classSVF_1_1ExeState.html#a0c6a0cd40fc94cc2c3829d6ae0a21270">SVF::ExeState::operator=</a></div><div class="ttdeci">ExeState &amp; operator=(const ExeState &amp;rhs)</div><div class="ttdef"><b>Definition:</b> <a href="ExeState_8cpp_source.html#l00159">ExeState.cpp:159</a></div></div>
115
- <div class="ttc" id="classSVF_1_1MemObj_html_aa50d7c3b4e7ac0aa769bc094bea26e16"><div class="ttname"><a href="classSVF_1_1MemObj.html#aa50d7c3b4e7ac0aa769bc094bea26e16">SVF::MemObj::isConstantData</a></div><div class="ttdeci">bool isConstantData() const</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00764">SymbolTableInfo.cpp:764</a></div></div>
116
- <div class="ttc" id="classSVF_1_1ExeState_html_a7b3013578baac3ce73bc544569c3dbbf"><div class="ttname"><a href="classSVF_1_1ExeState.html#a7b3013578baac3ce73bc544569c3dbbf">SVF::ExeState::initValVar</a></div><div class="ttdeci">void initValVar(const ValVar *valVar, Z3Expr &amp;e)</div><div class="ttdoc">Init Z3Expr for ValVar. </div><div class="ttdef"><b>Definition:</b> <a href="ExeState_8cpp_source.html#l00042">ExeState.cpp:42</a></div></div>
112
+ <div class="ttc" id="classSVF_1_1ExeState_html_a29c29c85982ffafd4c496e293a80eeeb"><div class="ttname"><a href="classSVF_1_1ExeState.html#a29c29c85982ffafd4c496e293a80eeeb">SVF::ExeState::lessThanVarToValMap</a></div><div class="ttdeci">bool lessThanVarToValMap(const VarToValMap &amp;lhs, const VarToValMap &amp;rhs) const</div><div class="ttdef"><b>Definition:</b> <a href="ExeState_8cpp_source.html#l00210">ExeState.cpp:210</a></div></div>
113
+ <div class="ttc" id="classSVF_1_1MemObj_html_a4da54ef60231d2e6c26669226b99d2f3"><div class="ttname"><a href="classSVF_1_1MemObj.html#a4da54ef60231d2e6c26669226b99d2f3">SVF::MemObj::getValue</a></div><div class="ttdeci">const Value * getValue() const</div><div class="ttdoc">Get the reference value to this object. </div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00396">SymbolTableInfo.h:396</a></div></div>
114
+ <div class="ttc" id="classSVF_1_1ExeState_html_a0c6a0cd40fc94cc2c3829d6ae0a21270"><div class="ttname"><a href="classSVF_1_1ExeState.html#a0c6a0cd40fc94cc2c3829d6ae0a21270">SVF::ExeState::operator=</a></div><div class="ttdeci">ExeState &amp; operator=(const ExeState &amp;rhs)</div><div class="ttdef"><b>Definition:</b> <a href="ExeState_8cpp_source.html#l00160">ExeState.cpp:160</a></div></div>
115
+ <div class="ttc" id="classSVF_1_1MemObj_html_aa50d7c3b4e7ac0aa769bc094bea26e16"><div class="ttname"><a href="classSVF_1_1MemObj.html#aa50d7c3b4e7ac0aa769bc094bea26e16">SVF::MemObj::isConstantData</a></div><div class="ttdeci">bool isConstantData() const</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00765">SymbolTableInfo.cpp:765</a></div></div>
116
+ <div class="ttc" id="classSVF_1_1ExeState_html_a7b3013578baac3ce73bc544569c3dbbf"><div class="ttname"><a href="classSVF_1_1ExeState.html#a7b3013578baac3ce73bc544569c3dbbf">SVF::ExeState::initValVar</a></div><div class="ttdeci">void initValVar(const ValVar *valVar, Z3Expr &amp;e)</div><div class="ttdoc">Init Z3Expr for ValVar. </div><div class="ttdef"><b>Definition:</b> <a href="ExeState_8cpp_source.html#l00043">ExeState.cpp:43</a></div></div>
117
117
  <div class="ttc" id="classSVF_1_1GenericGraph_html_a43c9c773bfa17abf481c33073e30d01b"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">SVF::GenericGraph::getGNode</a></div><div class="ttdeci">NodeType * getGNode(NodeID id) const</div><div class="ttdoc">Get a node. </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00391">GenericGraph.h:391</a></div></div>
118
- <div class="ttc" id="classSVF_1_1ExeState_html_a8447b7c20dd6bb724270026f55cbdece"><div class="ttname"><a href="classSVF_1_1ExeState.html#a8447b7c20dd6bb724270026f55cbdece">SVF::ExeState::eqVarToValMap</a></div><div class="ttdeci">bool eqVarToValMap(const VarToValMap &amp;lhs, const VarToValMap &amp;rhs) const</div><div class="ttdef"><b>Definition:</b> <a href="ExeState_8cpp_source.html#l00196">ExeState.cpp:196</a></div></div>
118
+ <div class="ttc" id="classSVF_1_1ExeState_html_a8447b7c20dd6bb724270026f55cbdece"><div class="ttname"><a href="classSVF_1_1ExeState.html#a8447b7c20dd6bb724270026f55cbdece">SVF::ExeState::eqVarToValMap</a></div><div class="ttdeci">bool eqVarToValMap(const VarToValMap &amp;lhs, const VarToValMap &amp;rhs) const</div><div class="ttdef"><b>Definition:</b> <a href="ExeState_8cpp_source.html#l00197">ExeState.cpp:197</a></div></div>
119
119
  <div class="ttc" id="classSVF_1_1SVFIR_html"><div class="ttname"><a href="classSVF_1_1SVFIR.html">SVF::SVFIR</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00043">SVFIR.h:43</a></div></div>
120
120
  <div class="ttc" id="classSVF_1_1Z3Expr_html_acdb4fbb53f19bac033e79cfe96ce82ca"><div class="ttname"><a href="classSVF_1_1Z3Expr.html#acdb4fbb53f19bac033e79cfe96ce82ca">SVF::Z3Expr::id</a></div><div class="ttdeci">u32_t id() const</div><div class="ttdoc">get id </div><div class="ttdef"><b>Definition:</b> <a href="Z3Expr_8h_source.html#l00107">Z3Expr.h:107</a></div></div>
121
- <div class="ttc" id="classSVF_1_1SVFVar_html_adaaf24b8b6ec06476cea112533c24066"><div class="ttname"><a href="classSVF_1_1SVFVar.html#adaaf24b8b6ec06476cea112533c24066">SVF::SVFVar::getType</a></div><div class="ttdeci">virtual const Type * getType() const</div><div class="ttdoc">Return type of the value. </div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00105">SVFVariables.h:105</a></div></div>
121
+ <div class="ttc" id="LLVMUtil_8h_html"><div class="ttname"><a href="LLVMUtil_8h.html">LLVMUtil.h</a></div></div>
122
+ <div class="ttc" id="classSVF_1_1SVFVar_html_adaaf24b8b6ec06476cea112533c24066"><div class="ttname"><a href="classSVF_1_1SVFVar.html#adaaf24b8b6ec06476cea112533c24066">SVF::SVFVar::getType</a></div><div class="ttdeci">virtual const Type * getType() const</div><div class="ttdoc">Return type of the value. </div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00104">SVFVariables.h:104</a></div></div>
122
123
  </div><!-- fragment --></div><!-- contents -->
123
124
  <!-- start footer part -->
124
125
  <hr class="footer"/><address class="footer"><small>