svf-tools 1.0.807 → 1.0.809

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 (474) hide show
  1. package/SVF-doxygen/html/AccessPath_8cpp_source.html +143 -141
  2. package/SVF-doxygen/html/AccessPath_8h_source.html +36 -35
  3. package/SVF-doxygen/html/AndersenSCD_8cpp_source.html +1 -1
  4. package/SVF-doxygen/html/AndersenStat_8cpp_source.html +1 -1
  5. package/SVF-doxygen/html/AndersenWaveDiff_8cpp_source.html +1 -1
  6. package/SVF-doxygen/html/Andersen_8cpp_source.html +6 -6
  7. package/SVF-doxygen/html/CFLAlias_8cpp_source.html +5 -5
  8. package/SVF-doxygen/html/CFLAlias_8h_source.html +3 -3
  9. package/SVF-doxygen/html/CFLBase_8cpp_source.html +1 -1
  10. package/SVF-doxygen/html/CHGBuilder_8cpp_source.html +4 -4
  11. package/SVF-doxygen/html/ConsG_8cpp_source.html +14 -14
  12. package/SVF-doxygen/html/ContextDDA_8cpp_source.html +8 -8
  13. package/SVF-doxygen/html/ContextDDA_8h_source.html +2 -2
  14. package/SVF-doxygen/html/CxtStmt_8h_source.html +1 -1
  15. package/SVF-doxygen/html/DDAClient_8cpp_source.html +5 -5
  16. package/SVF-doxygen/html/DDAPass_8cpp_source.html +2 -2
  17. package/SVF-doxygen/html/DDAPass_8h_source.html +1 -1
  18. package/SVF-doxygen/html/DDAStat_8cpp_source.html +1 -1
  19. package/SVF-doxygen/html/DDAVFSolver_8h_source.html +4 -4
  20. package/SVF-doxygen/html/FSMPTA_8cpp_source.html +3 -3
  21. package/SVF-doxygen/html/FlowDDA_8cpp_source.html +8 -8
  22. package/SVF-doxygen/html/FlowDDA_8h_source.html +2 -2
  23. package/SVF-doxygen/html/FlowSensitiveStat_8cpp_source.html +1 -1
  24. package/SVF-doxygen/html/FlowSensitive_8cpp_source.html +8 -8
  25. package/SVF-doxygen/html/ICFGBuilder_8cpp_source.html +2 -2
  26. package/SVF-doxygen/html/ICFGEdge_8h_source.html +2 -2
  27. package/SVF-doxygen/html/ICFG_8cpp_source.html +3 -3
  28. package/SVF-doxygen/html/IRGraph_8cpp_source.html +4 -4
  29. package/SVF-doxygen/html/IntervalValue_8h_source.html +3 -3
  30. package/SVF-doxygen/html/LLVMLoopAnalysis_8cpp_source.html +2 -2
  31. package/SVF-doxygen/html/LLVMModule_8cpp_source.html +190 -177
  32. package/SVF-doxygen/html/LLVMModule_8h_source.html +3 -3
  33. package/SVF-doxygen/html/LLVMUtil_8cpp_source.html +26 -38
  34. package/SVF-doxygen/html/LeakChecker_8cpp_source.html +1 -1
  35. package/SVF-doxygen/html/LockAnalysis_8cpp_source.html +5 -5
  36. package/SVF-doxygen/html/LockAnalysis_8h_source.html +2 -2
  37. package/SVF-doxygen/html/LockResultValidator_8cpp_source.html +1 -1
  38. package/SVF-doxygen/html/MHP_8cpp_source.html +6 -6
  39. package/SVF-doxygen/html/MSSAMuChi_8h_source.html +2 -2
  40. package/SVF-doxygen/html/MTAAnnotator_8cpp_source.html +2 -2
  41. package/SVF-doxygen/html/MTA_8cpp_source.html +5 -5
  42. package/SVF-doxygen/html/MemRegion_8cpp_source.html +9 -9
  43. package/SVF-doxygen/html/MemRegion_8h_source.html +3 -3
  44. package/SVF-doxygen/html/MemSSA_8cpp_source.html +6 -6
  45. package/SVF-doxygen/html/MemSSA_8h_source.html +2 -2
  46. package/SVF-doxygen/html/NodeIDAllocator_8cpp_source.html +2 -2
  47. package/SVF-doxygen/html/PAGBuilderFromFile_8cpp_source.html +2 -2
  48. package/SVF-doxygen/html/PCG_8cpp_source.html +2 -2
  49. package/SVF-doxygen/html/PointerAnalysisImpl_8cpp_source.html +3 -3
  50. package/SVF-doxygen/html/PointerAnalysisImpl_8h_source.html +4 -4
  51. package/SVF-doxygen/html/PointerAnalysis_8cpp_source.html +7 -7
  52. package/SVF-doxygen/html/PointerAnalysis_8h_source.html +1 -1
  53. package/SVF-doxygen/html/ProgSlice_8cpp_source.html +2 -2
  54. package/SVF-doxygen/html/SVFFileSystem_8cpp_source.html +26 -26
  55. package/SVF-doxygen/html/SVFFileSystem_8h_source.html +21 -21
  56. package/SVF-doxygen/html/SVFGBuilder_8cpp_source.html +2 -2
  57. package/SVF-doxygen/html/SVFGOPT_8cpp_source.html +2 -2
  58. package/SVF-doxygen/html/SVFGReadWrite_8cpp_source.html +1 -1
  59. package/SVF-doxygen/html/SVFGStat_8cpp_source.html +1 -1
  60. package/SVF-doxygen/html/SVFG_8cpp_source.html +3 -3
  61. package/SVF-doxygen/html/SVFIR2ConsExeState_8cpp_source.html +68 -68
  62. package/SVF-doxygen/html/SVFIR2ConsExeState_8h_source.html +10 -10
  63. package/SVF-doxygen/html/SVFIR2ItvExeState_8cpp_source.html +822 -848
  64. package/SVF-doxygen/html/SVFIR2ItvExeState_8h_source.html +34 -33
  65. package/SVF-doxygen/html/SVFIR2Relation_8cpp_source.html +36 -36
  66. package/SVF-doxygen/html/SVFIRBuilder_8cpp_source.html +12 -12
  67. package/SVF-doxygen/html/SVFIRBuilder_8h_source.html +15 -15
  68. package/SVF-doxygen/html/SVFIRExtAPI_8cpp_source.html +1 -1
  69. package/SVF-doxygen/html/SVFIR_8cpp_source.html +18 -18
  70. package/SVF-doxygen/html/SVFIR_8h_source.html +15 -15
  71. package/SVF-doxygen/html/SVFStat_8cpp_source.html +1 -1
  72. package/SVF-doxygen/html/SVFStatements_8cpp_source.html +21 -21
  73. package/SVF-doxygen/html/SVFStatements_8h_source.html +967 -965
  74. package/SVF-doxygen/html/SVFType_8cpp.html +2 -2
  75. package/SVF-doxygen/html/SVFType_8cpp_source.html +61 -70
  76. package/SVF-doxygen/html/SVFType_8h.html +23 -23
  77. package/SVF-doxygen/html/SVFType_8h_source.html +431 -425
  78. package/SVF-doxygen/html/SVFUtil_8h_source.html +1 -1
  79. package/SVF-doxygen/html/SVFValue_8cpp_source.html +4 -4
  80. package/SVF-doxygen/html/SVFValue_8h_source.html +3 -3
  81. package/SVF-doxygen/html/SVFVariables_8cpp_source.html +2 -2
  82. package/SVF-doxygen/html/SaberCondAllocator_8cpp_source.html +10 -10
  83. package/SVF-doxygen/html/SaberCondAllocator_8h_source.html +2 -2
  84. package/SVF-doxygen/html/SaberSVFGBuilder_8cpp_source.html +2 -2
  85. package/SVF-doxygen/html/SrcSnkDDA_8cpp_source.html +3 -3
  86. package/SVF-doxygen/html/Steensgaard_8cpp_source.html +5 -5
  87. package/SVF-doxygen/html/SymbolTableBuilder_8cpp_source.html +8 -8
  88. package/SVF-doxygen/html/SymbolTableInfo_8cpp_source.html +7 -7
  89. package/SVF-doxygen/html/SymbolTableInfo_8h_source.html +1 -1
  90. package/SVF-doxygen/html/TCT_8cpp_source.html +2 -2
  91. package/SVF-doxygen/html/ThreadCallGraph_8cpp_source.html +2 -2
  92. package/SVF-doxygen/html/VFGNode_8h_source.html +11 -11
  93. package/SVF-doxygen/html/VFG_8cpp_source.html +19 -19
  94. package/SVF-doxygen/html/VFG_8h_source.html +14 -14
  95. package/SVF-doxygen/html/VersionedFlowSensitiveStat_8cpp_source.html +1 -1
  96. package/SVF-doxygen/html/VersionedFlowSensitive_8cpp_source.html +1 -1
  97. package/SVF-doxygen/html/WPAPass_8cpp_source.html +4 -4
  98. package/SVF-doxygen/html/WPAPass_8h_source.html +2 -2
  99. package/SVF-doxygen/html/classSVF_1_1AccessPath-members.html +16 -16
  100. package/SVF-doxygen/html/classSVF_1_1AccessPath.html +162 -160
  101. package/SVF-doxygen/html/classSVF_1_1ActualINSVFGNode.html +1 -1
  102. package/SVF-doxygen/html/classSVF_1_1ActualOUTSVFGNode.html +1 -1
  103. package/SVF-doxygen/html/classSVF_1_1AddrStmt.html +1 -1
  104. package/SVF-doxygen/html/classSVF_1_1AliasDDAClient.html +2 -2
  105. package/SVF-doxygen/html/classSVF_1_1Andersen.html +5 -5
  106. package/SVF-doxygen/html/classSVF_1_1AndersenBase.html +2 -2
  107. package/SVF-doxygen/html/classSVF_1_1AndersenSCD.html +1 -1
  108. package/SVF-doxygen/html/classSVF_1_1AndersenStat.html +1 -1
  109. package/SVF-doxygen/html/classSVF_1_1AndersenWaveDiff.html +1 -1
  110. package/SVF-doxygen/html/classSVF_1_1BVDataPTAImpl.html +2 -2
  111. package/SVF-doxygen/html/classSVF_1_1BinaryOPStmt.html +69 -69
  112. package/SVF-doxygen/html/classSVF_1_1BinaryOPVFGNode.html +1 -1
  113. package/SVF-doxygen/html/classSVF_1_1BranchStmt.html +52 -52
  114. package/SVF-doxygen/html/classSVF_1_1BranchVFGNode.html +3 -3
  115. package/SVF-doxygen/html/classSVF_1_1CFLAlias.html +7 -7
  116. package/SVF-doxygen/html/classSVF_1_1CFLBase.html +1 -1
  117. package/SVF-doxygen/html/classSVF_1_1CHGBuilder.html +4 -4
  118. package/SVF-doxygen/html/classSVF_1_1CallCFGEdge.html +1 -1
  119. package/SVF-doxygen/html/classSVF_1_1CallPE.html +36 -36
  120. package/SVF-doxygen/html/classSVF_1_1CmpStmt.html +98 -98
  121. package/SVF-doxygen/html/classSVF_1_1CmpVFGNode.html +1 -1
  122. package/SVF-doxygen/html/classSVF_1_1CondPTAImpl.html +3 -3
  123. package/SVF-doxygen/html/classSVF_1_1ConstraintGraph.html +13 -13
  124. package/SVF-doxygen/html/classSVF_1_1ContextDDA.html +8 -8
  125. package/SVF-doxygen/html/classSVF_1_1CopyStmt.html +20 -20
  126. package/SVF-doxygen/html/classSVF_1_1CxtStmt.html +1 -1
  127. package/SVF-doxygen/html/classSVF_1_1CxtThread.html +1 -1
  128. package/SVF-doxygen/html/classSVF_1_1CxtThreadStmt.html +1 -1
  129. package/SVF-doxygen/html/classSVF_1_1DDAClient.html +3 -3
  130. package/SVF-doxygen/html/classSVF_1_1DDAPass.html +1 -1
  131. package/SVF-doxygen/html/classSVF_1_1DDAStat.html +1 -1
  132. package/SVF-doxygen/html/classSVF_1_1DDAVFSolver.html +4 -4
  133. package/SVF-doxygen/html/classSVF_1_1DoubleFreeChecker.html +1 -1
  134. package/SVF-doxygen/html/classSVF_1_1FIObjVar.html +1 -1
  135. package/SVF-doxygen/html/classSVF_1_1FlowDDA.html +8 -8
  136. package/SVF-doxygen/html/classSVF_1_1FlowSensitive.html +8 -8
  137. package/SVF-doxygen/html/classSVF_1_1FlowSensitiveStat.html +1 -1
  138. package/SVF-doxygen/html/classSVF_1_1ForkJoinAnalysis.html +3 -3
  139. package/SVF-doxygen/html/classSVF_1_1GepObjVar.html +1 -1
  140. package/SVF-doxygen/html/classSVF_1_1GepStmt-members.html +1 -1
  141. package/SVF-doxygen/html/classSVF_1_1GepStmt.html +64 -64
  142. package/SVF-doxygen/html/classSVF_1_1GepValVar.html +1 -1
  143. package/SVF-doxygen/html/classSVF_1_1ICFG.html +3 -3
  144. package/SVF-doxygen/html/classSVF_1_1ICFGBuilder.html +2 -2
  145. package/SVF-doxygen/html/classSVF_1_1IRGraph.html +2 -2
  146. package/SVF-doxygen/html/classSVF_1_1InterMSSAPHISVFGNode.html +1 -1
  147. package/SVF-doxygen/html/classSVF_1_1InterPHIVFGNode.html +1 -1
  148. package/SVF-doxygen/html/classSVF_1_1IntraCFGEdge.html +1 -1
  149. package/SVF-doxygen/html/classSVF_1_1IntraICFGNode.html +1 -1
  150. package/SVF-doxygen/html/classSVF_1_1IntraPHIVFGNode.html +1 -1
  151. package/SVF-doxygen/html/classSVF_1_1LLVMLoopAnalysis.html +2 -2
  152. package/SVF-doxygen/html/classSVF_1_1LLVMModuleSet.html +185 -173
  153. package/SVF-doxygen/html/classSVF_1_1LeakChecker.html +2 -2
  154. package/SVF-doxygen/html/classSVF_1_1LoadStmt.html +20 -20
  155. package/SVF-doxygen/html/classSVF_1_1LockAnalysis.html +5 -5
  156. package/SVF-doxygen/html/classSVF_1_1LockResultValidator.html +1 -1
  157. package/SVF-doxygen/html/classSVF_1_1MHP.html +6 -6
  158. package/SVF-doxygen/html/classSVF_1_1MRGenerator.html +8 -8
  159. package/SVF-doxygen/html/classSVF_1_1MTA.html +5 -5
  160. package/SVF-doxygen/html/classSVF_1_1MTAAnnotator.html +2 -2
  161. package/SVF-doxygen/html/classSVF_1_1MTAResultValidator.html +1 -1
  162. package/SVF-doxygen/html/classSVF_1_1MTASVFGBuilder.html +3 -3
  163. package/SVF-doxygen/html/classSVF_1_1MemObj.html +1 -1
  164. package/SVF-doxygen/html/classSVF_1_1MemSSA.html +6 -6
  165. package/SVF-doxygen/html/classSVF_1_1MemSSAStat.html +1 -1
  166. package/SVF-doxygen/html/classSVF_1_1MultiOpndStmt.html +48 -48
  167. package/SVF-doxygen/html/classSVF_1_1NodeIDAllocator_1_1Clusterer.html +2 -2
  168. package/SVF-doxygen/html/classSVF_1_1ObjTypeInfo.html +1 -1
  169. package/SVF-doxygen/html/classSVF_1_1ObjVar.html +1 -1
  170. package/SVF-doxygen/html/classSVF_1_1PAGBuilderFromFile.html +2 -2
  171. package/SVF-doxygen/html/classSVF_1_1PCG.html +2 -2
  172. package/SVF-doxygen/html/classSVF_1_1PHIVFGNode.html +1 -1
  173. package/SVF-doxygen/html/classSVF_1_1PhiStmt.html +47 -47
  174. package/SVF-doxygen/html/classSVF_1_1PointerAnalysis.html +7 -7
  175. package/SVF-doxygen/html/classSVF_1_1ProgSlice.html +2 -2
  176. package/SVF-doxygen/html/classSVF_1_1RetCFGEdge.html +1 -1
  177. package/SVF-doxygen/html/classSVF_1_1RetPE.html +36 -36
  178. package/SVF-doxygen/html/classSVF_1_1SVFArrayType-members.html +38 -37
  179. package/SVF-doxygen/html/classSVF_1_1SVFArrayType.html +43 -41
  180. package/SVF-doxygen/html/classSVF_1_1SVFFunction.html +1 -1
  181. package/SVF-doxygen/html/classSVF_1_1SVFFunctionType-members.html +35 -34
  182. package/SVF-doxygen/html/classSVF_1_1SVFFunctionType.html +26 -26
  183. package/SVF-doxygen/html/classSVF_1_1SVFG.html +3 -3
  184. package/SVF-doxygen/html/classSVF_1_1SVFGBuilder.html +2 -2
  185. package/SVF-doxygen/html/classSVF_1_1SVFGOPT.html +2 -2
  186. package/SVF-doxygen/html/classSVF_1_1SVFGStat.html +1 -1
  187. package/SVF-doxygen/html/classSVF_1_1SVFIR.html +17 -17
  188. package/SVF-doxygen/html/classSVF_1_1SVFIR2ConsExeState.html +57 -57
  189. package/SVF-doxygen/html/classSVF_1_1SVFIR2ItvExeState-members.html +6 -6
  190. package/SVF-doxygen/html/classSVF_1_1SVFIR2ItvExeState.html +908 -893
  191. package/SVF-doxygen/html/classSVF_1_1SVFIRBuilder.html +13 -13
  192. package/SVF-doxygen/html/classSVF_1_1SVFIntegerType-members.html +36 -35
  193. package/SVF-doxygen/html/classSVF_1_1SVFIntegerType.html +37 -35
  194. package/SVF-doxygen/html/classSVF_1_1SVFOtherType-members.html +37 -36
  195. package/SVF-doxygen/html/classSVF_1_1SVFOtherType.html +48 -37
  196. package/SVF-doxygen/html/classSVF_1_1SVFPointerType-members.html +36 -35
  197. package/SVF-doxygen/html/classSVF_1_1SVFPointerType.html +38 -36
  198. package/SVF-doxygen/html/classSVF_1_1SVFStat.html +1 -1
  199. package/SVF-doxygen/html/classSVF_1_1SVFStructType-members.html +37 -36
  200. package/SVF-doxygen/html/classSVF_1_1SVFStructType.html +38 -36
  201. package/SVF-doxygen/html/classSVF_1_1SVFType-members.html +31 -30
  202. package/SVF-doxygen/html/classSVF_1_1SVFType.html +103 -67
  203. package/SVF-doxygen/html/classSVF_1_1SVFValue.html +23 -23
  204. package/SVF-doxygen/html/classSVF_1_1SVFVar.html +1 -1
  205. package/SVF-doxygen/html/classSVF_1_1SaberCondAllocator.html +10 -10
  206. package/SVF-doxygen/html/classSVF_1_1SaberSVFGBuilder.html +2 -2
  207. package/SVF-doxygen/html/classSVF_1_1SelectStmt.html +39 -39
  208. package/SVF-doxygen/html/classSVF_1_1SrcSnkDDA.html +3 -3
  209. package/SVF-doxygen/html/classSVF_1_1Steensgaard.html +5 -5
  210. package/SVF-doxygen/html/classSVF_1_1StoreStmt.html +18 -18
  211. package/SVF-doxygen/html/classSVF_1_1SymbolTableBuilder.html +8 -8
  212. package/SVF-doxygen/html/classSVF_1_1SymbolTableInfo.html +5 -5
  213. package/SVF-doxygen/html/classSVF_1_1TCT.html +3 -3
  214. package/SVF-doxygen/html/classSVF_1_1TDForkPE.html +23 -23
  215. package/SVF-doxygen/html/classSVF_1_1TDJoinPE.html +22 -22
  216. package/SVF-doxygen/html/classSVF_1_1ThreadCallGraph.html +2 -2
  217. package/SVF-doxygen/html/classSVF_1_1UnaryOPStmt.html +45 -45
  218. package/SVF-doxygen/html/classSVF_1_1UnaryOPVFGNode.html +1 -1
  219. package/SVF-doxygen/html/classSVF_1_1VFG.html +19 -19
  220. package/SVF-doxygen/html/classSVF_1_1ValVar.html +1 -1
  221. package/SVF-doxygen/html/classSVF_1_1VersionedFlowSensitive.html +1 -1
  222. package/SVF-doxygen/html/classSVF_1_1VersionedFlowSensitiveStat.html +1 -1
  223. package/SVF-doxygen/html/classSVF_1_1WPAPass.html +3 -3
  224. package/SVF-doxygen/html/functions_b.html +10 -9
  225. package/SVF-doxygen/html/functions_func_g.html +22 -20
  226. package/SVF-doxygen/html/functions_func_i.html +3 -3
  227. package/SVF-doxygen/html/functions_func_s.html +6 -6
  228. package/SVF-doxygen/html/functions_g.html +22 -20
  229. package/SVF-doxygen/html/functions_i.html +22 -16
  230. package/SVF-doxygen/html/functions_n.html +4 -4
  231. package/SVF-doxygen/html/functions_o.html +18 -19
  232. package/SVF-doxygen/html/functions_p.html +7 -7
  233. package/SVF-doxygen/html/functions_s.html +18 -16
  234. package/SVF-doxygen/html/functions_t.html +4 -4
  235. package/SVF-doxygen/html/functions_type_i.html +6 -0
  236. package/SVF-doxygen/html/functions_type_o.html +0 -3
  237. package/SVF-doxygen/html/functions_type_v.html +0 -3
  238. package/SVF-doxygen/html/functions_v.html +9 -12
  239. package/SVF-doxygen/html/functions_vars_b.html +1 -0
  240. package/SVF-doxygen/html/functions_vars_o.html +1 -1
  241. package/SVF-doxygen/html/functions_w.html +8 -8
  242. package/SVF-doxygen/html/namespaceSVF.html +44 -53
  243. package/SVF-doxygen/html/namespacemembers.html +1 -1
  244. package/SVF-doxygen/html/namespacemembers_func.html +1 -1
  245. package/SVF-doxygen/html/search/all_0.js +1 -1
  246. package/SVF-doxygen/html/search/all_10.js +324 -324
  247. package/SVF-doxygen/html/search/all_11.js +222 -222
  248. package/SVF-doxygen/html/search/all_12.js +543 -543
  249. package/SVF-doxygen/html/search/all_13.js +191 -191
  250. package/SVF-doxygen/html/search/all_14.js +67 -67
  251. package/SVF-doxygen/html/search/all_15.js +169 -170
  252. package/SVF-doxygen/html/search/all_16.js +63 -63
  253. package/SVF-doxygen/html/search/all_17.js +1 -1
  254. package/SVF-doxygen/html/search/all_18.js +1 -1
  255. package/SVF-doxygen/html/search/all_19.js +11 -11
  256. package/SVF-doxygen/html/search/all_1a.js +172 -172
  257. package/SVF-doxygen/html/search/all_2.js +1 -1
  258. package/SVF-doxygen/html/search/all_7.js +766 -765
  259. package/SVF-doxygen/html/search/all_8.js +196 -196
  260. package/SVF-doxygen/html/search/all_9.js +613 -611
  261. package/SVF-doxygen/html/search/all_a.js +46 -46
  262. package/SVF-doxygen/html/search/all_b.js +26 -26
  263. package/SVF-doxygen/html/search/all_c.js +116 -116
  264. package/SVF-doxygen/html/search/all_d.js +196 -196
  265. package/SVF-doxygen/html/search/all_e.js +207 -207
  266. package/SVF-doxygen/html/search/all_f.js +116 -116
  267. package/SVF-doxygen/html/search/classes_0.js +26 -26
  268. package/SVF-doxygen/html/search/classes_1.js +9 -9
  269. package/SVF-doxygen/html/search/classes_10.js +73 -73
  270. package/SVF-doxygen/html/search/classes_11.js +15 -15
  271. package/SVF-doxygen/html/search/classes_12.js +2 -2
  272. package/SVF-doxygen/html/search/classes_13.js +10 -10
  273. package/SVF-doxygen/html/search/classes_14.js +14 -14
  274. package/SVF-doxygen/html/search/classes_15.js +1 -1
  275. package/SVF-doxygen/html/search/classes_2.js +80 -80
  276. package/SVF-doxygen/html/search/classes_3.js +37 -37
  277. package/SVF-doxygen/html/search/classes_4.js +9 -9
  278. package/SVF-doxygen/html/search/classes_5.js +28 -28
  279. package/SVF-doxygen/html/search/classes_6.js +104 -104
  280. package/SVF-doxygen/html/search/classes_7.js +33 -33
  281. package/SVF-doxygen/html/search/classes_8.js +56 -56
  282. package/SVF-doxygen/html/search/classes_9.js +1 -1
  283. package/SVF-doxygen/html/search/classes_a.js +12 -12
  284. package/SVF-doxygen/html/search/classes_b.js +29 -29
  285. package/SVF-doxygen/html/search/classes_c.js +6 -6
  286. package/SVF-doxygen/html/search/classes_d.js +18 -18
  287. package/SVF-doxygen/html/search/classes_e.js +36 -36
  288. package/SVF-doxygen/html/search/classes_f.js +25 -25
  289. package/SVF-doxygen/html/search/defines_0.js +3 -3
  290. package/SVF-doxygen/html/search/defines_1.js +2 -2
  291. package/SVF-doxygen/html/search/defines_2.js +30 -30
  292. package/SVF-doxygen/html/search/defines_3.js +21 -21
  293. package/SVF-doxygen/html/search/defines_4.js +2 -2
  294. package/SVF-doxygen/html/search/defines_5.js +4 -4
  295. package/SVF-doxygen/html/search/defines_6.js +2 -2
  296. package/SVF-doxygen/html/search/defines_7.js +5 -5
  297. package/SVF-doxygen/html/search/defines_8.js +11 -11
  298. package/SVF-doxygen/html/search/defines_9.js +9 -9
  299. package/SVF-doxygen/html/search/defines_a.js +2 -2
  300. package/SVF-doxygen/html/search/defines_b.js +1 -1
  301. package/SVF-doxygen/html/search/defines_c.js +3 -3
  302. package/SVF-doxygen/html/search/defines_d.js +2 -2
  303. package/SVF-doxygen/html/search/defines_e.js +7 -7
  304. package/SVF-doxygen/html/search/defines_f.js +3 -3
  305. package/SVF-doxygen/html/search/enums_0.js +3 -3
  306. package/SVF-doxygen/html/search/enums_1.js +2 -2
  307. package/SVF-doxygen/html/search/enums_10.js +1 -1
  308. package/SVF-doxygen/html/search/enums_11.js +1 -1
  309. package/SVF-doxygen/html/search/enums_2.js +8 -8
  310. package/SVF-doxygen/html/search/enums_3.js +1 -1
  311. package/SVF-doxygen/html/search/enums_4.js +3 -3
  312. package/SVF-doxygen/html/search/enums_5.js +1 -1
  313. package/SVF-doxygen/html/search/enums_6.js +2 -2
  314. package/SVF-doxygen/html/search/enums_7.js +2 -2
  315. package/SVF-doxygen/html/search/enums_8.js +4 -4
  316. package/SVF-doxygen/html/search/enums_9.js +1 -1
  317. package/SVF-doxygen/html/search/enums_a.js +1 -1
  318. package/SVF-doxygen/html/search/enums_b.js +7 -7
  319. package/SVF-doxygen/html/search/enums_c.js +1 -1
  320. package/SVF-doxygen/html/search/enums_d.js +4 -4
  321. package/SVF-doxygen/html/search/enums_e.js +2 -2
  322. package/SVF-doxygen/html/search/enums_f.js +4 -4
  323. package/SVF-doxygen/html/search/enumvalues_0.js +14 -14
  324. package/SVF-doxygen/html/search/enumvalues_1.js +14 -14
  325. package/SVF-doxygen/html/search/enumvalues_10.js +35 -35
  326. package/SVF-doxygen/html/search/enumvalues_11.js +3 -3
  327. package/SVF-doxygen/html/search/enumvalues_12.js +10 -10
  328. package/SVF-doxygen/html/search/enumvalues_13.js +1 -1
  329. package/SVF-doxygen/html/search/enumvalues_14.js +1 -1
  330. package/SVF-doxygen/html/search/enumvalues_15.js +3 -3
  331. package/SVF-doxygen/html/search/enumvalues_2.js +36 -36
  332. package/SVF-doxygen/html/search/enumvalues_3.js +13 -13
  333. package/SVF-doxygen/html/search/enumvalues_4.js +2 -2
  334. package/SVF-doxygen/html/search/enumvalues_5.js +47 -47
  335. package/SVF-doxygen/html/search/enumvalues_6.js +6 -6
  336. package/SVF-doxygen/html/search/enumvalues_7.js +9 -9
  337. package/SVF-doxygen/html/search/enumvalues_8.js +23 -23
  338. package/SVF-doxygen/html/search/enumvalues_9.js +6 -6
  339. package/SVF-doxygen/html/search/enumvalues_a.js +15 -15
  340. package/SVF-doxygen/html/search/enumvalues_b.js +11 -11
  341. package/SVF-doxygen/html/search/enumvalues_c.js +5 -5
  342. package/SVF-doxygen/html/search/enumvalues_d.js +18 -18
  343. package/SVF-doxygen/html/search/enumvalues_e.js +9 -9
  344. package/SVF-doxygen/html/search/enumvalues_f.js +45 -45
  345. package/SVF-doxygen/html/search/files_0.js +13 -13
  346. package/SVF-doxygen/html/search/files_1.js +7 -7
  347. package/SVF-doxygen/html/search/files_10.js +8 -8
  348. package/SVF-doxygen/html/search/files_11.js +8 -8
  349. package/SVF-doxygen/html/search/files_12.js +2 -2
  350. package/SVF-doxygen/html/search/files_2.js +55 -55
  351. package/SVF-doxygen/html/search/files_3.js +14 -14
  352. package/SVF-doxygen/html/search/files_4.js +5 -5
  353. package/SVF-doxygen/html/search/files_5.js +13 -13
  354. package/SVF-doxygen/html/search/files_6.js +9 -9
  355. package/SVF-doxygen/html/search/files_7.js +14 -14
  356. package/SVF-doxygen/html/search/files_8.js +13 -13
  357. package/SVF-doxygen/html/search/files_9.js +18 -18
  358. package/SVF-doxygen/html/search/files_a.js +3 -3
  359. package/SVF-doxygen/html/search/files_b.js +2 -2
  360. package/SVF-doxygen/html/search/files_c.js +20 -20
  361. package/SVF-doxygen/html/search/files_d.js +4 -4
  362. package/SVF-doxygen/html/search/files_e.js +62 -62
  363. package/SVF-doxygen/html/search/files_f.js +8 -8
  364. package/SVF-doxygen/html/search/functions_0.js +12 -12
  365. package/SVF-doxygen/html/search/functions_1.js +360 -360
  366. package/SVF-doxygen/html/search/functions_10.js +140 -140
  367. package/SVF-doxygen/html/search/functions_11.js +138 -138
  368. package/SVF-doxygen/html/search/functions_12.js +278 -278
  369. package/SVF-doxygen/html/search/functions_13.js +59 -59
  370. package/SVF-doxygen/html/search/functions_14.js +39 -39
  371. package/SVF-doxygen/html/search/functions_15.js +71 -71
  372. package/SVF-doxygen/html/search/functions_16.js +32 -32
  373. package/SVF-doxygen/html/search/functions_17.js +3 -3
  374. package/SVF-doxygen/html/search/functions_18.js +172 -172
  375. package/SVF-doxygen/html/search/functions_2.js +86 -86
  376. package/SVF-doxygen/html/search/functions_3.js +257 -257
  377. package/SVF-doxygen/html/search/functions_4.js +75 -75
  378. package/SVF-doxygen/html/search/functions_5.js +53 -53
  379. package/SVF-doxygen/html/search/functions_6.js +59 -59
  380. package/SVF-doxygen/html/search/functions_7.js +852 -851
  381. package/SVF-doxygen/html/search/functions_8.js +148 -148
  382. package/SVF-doxygen/html/search/functions_9.js +429 -429
  383. package/SVF-doxygen/html/search/functions_a.js +30 -30
  384. package/SVF-doxygen/html/search/functions_b.js +2 -2
  385. package/SVF-doxygen/html/search/functions_c.js +26 -26
  386. package/SVF-doxygen/html/search/functions_d.js +77 -77
  387. package/SVF-doxygen/html/search/functions_e.js +35 -35
  388. package/SVF-doxygen/html/search/functions_f.js +56 -56
  389. package/SVF-doxygen/html/search/namespaces_0.js +1 -1
  390. package/SVF-doxygen/html/search/namespaces_1.js +7 -7
  391. package/SVF-doxygen/html/search/related_0.js +2 -2
  392. package/SVF-doxygen/html/search/related_1.js +2 -2
  393. package/SVF-doxygen/html/search/related_2.js +2 -2
  394. package/SVF-doxygen/html/search/related_3.js +2 -2
  395. package/SVF-doxygen/html/search/related_4.js +2 -2
  396. package/SVF-doxygen/html/search/related_5.js +1 -1
  397. package/SVF-doxygen/html/search/related_6.js +2 -2
  398. package/SVF-doxygen/html/search/related_7.js +4 -4
  399. package/SVF-doxygen/html/search/related_8.js +2 -2
  400. package/SVF-doxygen/html/search/related_9.js +4 -4
  401. package/SVF-doxygen/html/search/related_a.js +19 -19
  402. package/SVF-doxygen/html/search/related_b.js +4 -4
  403. package/SVF-doxygen/html/search/related_c.js +1 -1
  404. package/SVF-doxygen/html/search/related_d.js +11 -11
  405. package/SVF-doxygen/html/search/related_e.js +2 -2
  406. package/SVF-doxygen/html/search/related_f.js +2 -2
  407. package/SVF-doxygen/html/search/typedefs_0.js +18 -18
  408. package/SVF-doxygen/html/search/typedefs_1.js +26 -26
  409. package/SVF-doxygen/html/search/typedefs_10.js +61 -61
  410. package/SVF-doxygen/html/search/typedefs_11.js +13 -13
  411. package/SVF-doxygen/html/search/typedefs_12.js +11 -11
  412. package/SVF-doxygen/html/search/typedefs_13.js +34 -35
  413. package/SVF-doxygen/html/search/typedefs_14.js +8 -8
  414. package/SVF-doxygen/html/search/typedefs_2.js +129 -129
  415. package/SVF-doxygen/html/search/typedefs_3.js +39 -39
  416. package/SVF-doxygen/html/search/typedefs_4.js +17 -17
  417. package/SVF-doxygen/html/search/typedefs_5.js +41 -41
  418. package/SVF-doxygen/html/search/typedefs_6.js +55 -55
  419. package/SVF-doxygen/html/search/typedefs_7.js +44 -42
  420. package/SVF-doxygen/html/search/typedefs_8.js +1 -1
  421. package/SVF-doxygen/html/search/typedefs_9.js +6 -6
  422. package/SVF-doxygen/html/search/typedefs_a.js +29 -29
  423. package/SVF-doxygen/html/search/typedefs_b.js +29 -29
  424. package/SVF-doxygen/html/search/typedefs_c.js +41 -41
  425. package/SVF-doxygen/html/search/typedefs_d.js +14 -15
  426. package/SVF-doxygen/html/search/typedefs_e.js +52 -52
  427. package/SVF-doxygen/html/search/typedefs_f.js +14 -14
  428. package/SVF-doxygen/html/search/variables_0.js +151 -151
  429. package/SVF-doxygen/html/search/variables_1.js +75 -75
  430. package/SVF-doxygen/html/search/variables_10.js +97 -97
  431. package/SVF-doxygen/html/search/variables_11.js +44 -44
  432. package/SVF-doxygen/html/search/variables_12.js +92 -92
  433. package/SVF-doxygen/html/search/variables_13.js +75 -75
  434. package/SVF-doxygen/html/search/variables_14.js +14 -14
  435. package/SVF-doxygen/html/search/variables_15.js +48 -48
  436. package/SVF-doxygen/html/search/variables_16.js +9 -9
  437. package/SVF-doxygen/html/search/variables_17.js +1 -1
  438. package/SVF-doxygen/html/search/variables_18.js +2 -2
  439. package/SVF-doxygen/html/search/variables_2.js +38 -38
  440. package/SVF-doxygen/html/search/variables_3.js +142 -142
  441. package/SVF-doxygen/html/search/variables_4.js +55 -55
  442. package/SVF-doxygen/html/search/variables_5.js +36 -36
  443. package/SVF-doxygen/html/search/variables_6.js +66 -66
  444. package/SVF-doxygen/html/search/variables_7.js +33 -33
  445. package/SVF-doxygen/html/search/variables_8.js +7 -7
  446. package/SVF-doxygen/html/search/variables_9.js +77 -77
  447. package/SVF-doxygen/html/search/variables_a.js +4 -4
  448. package/SVF-doxygen/html/search/variables_b.js +10 -10
  449. package/SVF-doxygen/html/search/variables_c.js +45 -45
  450. package/SVF-doxygen/html/search/variables_d.js +56 -56
  451. package/SVF-doxygen/html/search/variables_e.js +123 -123
  452. package/SVF-doxygen/html/search/variables_f.js +30 -30
  453. package/SVF-doxygen/html/structSVF_1_1DOTGraphTraits_3_01ConstraintGraph_01_5_01_4.html +1 -1
  454. package/SVF-doxygen/html/structSVF_1_1DOTGraphTraits_3_01IRGraph_01_5_01_4.html +2 -2
  455. package/SVF-doxygen/html/structSVF_1_1Hash_3_01NodePair_01_4.html +11 -11
  456. package/SVF-doxygen/html/structstd_1_1hash_3_01SVF_1_1AccessPath_01_4.html +9 -9
  457. package/SVF-doxygen/html/structstd_1_1hash_3_01SVF_1_1NodePair_01_4.html +11 -11
  458. package/SVF-doxygen/html/structstd_1_1hash_3_01SVF_1_1SparseBitVector_3_01N_01_4_01_4.html +7 -7
  459. package/SVF-doxygen/html/structstd_1_1hash_3_01std_1_1vector_3_01T_01_4_01_4.html +14 -14
  460. package/SVF-doxygen/html/svf-ex_8cpp.html +22 -22
  461. package/SVF-doxygen/html/svf-ex_8cpp_source.html +23 -23
  462. package/package.json +1 -1
  463. package/svf/include/AbstractExecution/IntervalValue.h +3 -3
  464. package/svf/include/AbstractExecution/SVFIR2ItvExeState.h +5 -5
  465. package/svf/include/MemoryModel/AccessPath.h +6 -5
  466. package/svf/include/SVFIR/SVFStatements.h +3 -1
  467. package/svf/include/SVFIR/SVFType.h +18 -11
  468. package/svf/lib/AbstractExecution/SVFIR2ItvExeState.cpp +212 -185
  469. package/svf/lib/MemoryModel/AccessPath.cpp +10 -9
  470. package/svf/lib/SVFIR/SVFFileSystem.cpp +5 -5
  471. package/svf/lib/SVFIR/SVFType.cpp +0 -7
  472. package/svf-llvm/lib/LLVMModule.cpp +16 -5
  473. package/svf-llvm/lib/LLVMUtil.cpp +0 -9
  474. package/svf-llvm/lib/SymbolTableBuilder.cpp +4 -4
@@ -247,951 +247,925 @@ $(function() {
247
247
  <div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <span class="keywordflow">return</span> ret;</div>
248
248
  <div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160;}</div>
249
249
  <div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; </div>
250
- <div class="line"><a name="l00179"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2ItvExeState.html#aab58bfb31793026bc54b8996371e90f4"> 179</a></span>&#160;std::pair&lt;APOffset, APOffset&gt; <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#aab58bfb31793026bc54b8996371e90f4">SVFIR2ItvExeState::getBytefromGepTypePair</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1AccessPath.html#acefbd7faec2833144b07c5bb96eb6f84">AccessPath::VarAndGepTypePair</a>&amp; gep_pair, <span class="keyword">const</span> <a class="code" href="classSVF_1_1GepStmt.html">GepStmt</a> *gep)</div>
251
- <div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;{</div>
252
- <div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFValue.html">SVFValue</a> *value = gep_pair.first-&gt;getValue();</div>
253
- <div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFType.html">SVFType</a> *<a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a> = gep_pair.second;</div>
254
- <div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFArrayType.html">SVFArrayType</a>* arrType = SVFUtil::dyn_cast&lt;SVFArrayType&gt;(<a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>))</div>
255
- <div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; {</div>
256
- <div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; <a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a> = arrType-&gt;getTypeOfElement();</div>
257
- <div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; }</div>
258
- <div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFPointerType.html">SVFPointerType</a>* ptrType = SVFUtil::dyn_cast&lt;SVFPointerType&gt;(<a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>))</div>
259
- <div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; {</div>
260
- <div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a> = ptrType-&gt;getPtrElementType();</div>
261
- <div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; }</div>
262
- <div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFConstantInt.html">SVFConstantInt</a> *op = SVFUtil::dyn_cast&lt;SVFConstantInt&gt;(value);</div>
263
- <div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> offsetLb = 0;</div>
264
- <div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> offsetUb = 0;</div>
265
- <div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; <a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> maxByteLimit = 99999;</div>
266
- <div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> minByteLimit = -99999;</div>
267
- <div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <span class="keyword">auto</span> valueReshape = [&amp;](<a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a> <a class="code" href="cJSON_8cpp.html#a95bf816579e97b6f33bdb5e25ed6d5de">offset</a>)</div>
268
- <div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; {</div>
269
- <div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="cJSON_8cpp.html#a95bf816579e97b6f33bdb5e25ed6d5de">offset</a> &lt; (<a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a>)minByteLimit)</div>
270
- <div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; {</div>
271
- <div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <span class="keywordflow">return</span> minByteLimit;</div>
272
- <div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; }</div>
273
- <div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="cJSON_8cpp.html#a95bf816579e97b6f33bdb5e25ed6d5de">offset</a> &gt; (<a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a>)maxByteLimit)</div>
274
- <div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; {</div>
275
- <div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <span class="keywordflow">return</span> maxByteLimit;</div>
276
- <div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; }</div>
277
- <div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <span class="keywordflow">else</span></div>
278
- <div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; {</div>
279
- <div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; <span class="keywordflow">return</span> <a class="code" href="cJSON_8cpp.html#a95bf816579e97b6f33bdb5e25ed6d5de">offset</a>;</div>
280
- <div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; }</div>
281
- <div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; };</div>
282
- <div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; <span class="keywordflow">if</span> (op)</div>
250
+ <div class="line"><a name="l00201"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2ItvExeState.html#ad49576a7192c87d41f4dc923cd3d0efe"> 201</a></span>&#160;<a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ad49576a7192c87d41f4dc923cd3d0efe">SVFIR2ItvExeState::getByteOffsetfromGepTypePair</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1AccessPath.html#a98dfa824a51134c3f72a5d153240d378">AccessPath::IdxVarAndGepTypePair</a>&amp; gep_pair, <span class="keyword">const</span> <a class="code" href="classSVF_1_1GepStmt.html">GepStmt</a> *gep)</div>
251
+ <div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160;{</div>
252
+ <div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> res(0); <span class="comment">// Initialize the result interval &#39;res&#39; to 0.</span></div>
253
+ <div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; </div>
254
+ <div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFValue.html">SVFValue</a> *value = gep_pair.first-&gt;getValue();</div>
255
+ <div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFType.html">SVFType</a> *<a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a> = gep_pair.second;</div>
256
+ <div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; </div>
257
+ <div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; <span class="comment">// Check the type of &#39;gep_pair.second&#39; and process it accordingly.</span></div>
258
+ <div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFArrayType.html">SVFArrayType</a>* arrType = SVFUtil::dyn_cast&lt;SVFArrayType&gt;(<a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>))</div>
259
+ <div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; <a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a> = arrType-&gt;getTypeOfElement();</div>
260
+ <div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFPointerType.html">SVFPointerType</a>* ptrType = SVFUtil::dyn_cast&lt;SVFPointerType&gt;(<a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>))</div>
261
+ <div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a> = ptrType-&gt;getPtrElementType();</div>
262
+ <div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStructType.html">SVFStructType</a>* structType = SVFUtil::dyn_cast&lt;SVFStructType&gt;(<a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>))</div>
283
263
  <div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; {</div>
284
- <div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; offsetLb = offsetUb =</div>
285
- <div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; op-&gt;<a class="code" href="classSVF_1_1SVFConstantInt.html#a73f04bdfc19261b65164b98787bc2ed4">getSExtValue</a>() * <a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>-&gt;getLLVMByteSize() &gt; maxByteLimit</div>
286
- <div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; ? maxByteLimit</div>
287
- <div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; : op-&gt;<a class="code" href="classSVF_1_1SVFConstantInt.html#a73f04bdfc19261b65164b98787bc2ed4">getSExtValue</a>() * <a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>-&gt;getLLVMByteSize();</div>
288
- <div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; }</div>
289
- <div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; <span class="keywordflow">else</span></div>
290
- <div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; {</div>
291
- <div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> idx = _svfir-&gt;getValueNode(value);</div>
292
- <div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> idxVal = _es[idx] * <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(<a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>-&gt;getLLVMByteSize());</div>
293
- <div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; <span class="keywordflow">if</span> (idxVal.<a class="code" href="classSVF_1_1IntervalValue.html#af8be90fc1b61103187908dce4ba68001">isBottom</a>() || idxVal.<a class="code" href="classSVF_1_1IntervalValue.html#a977128211266b93e58e298a7ac29a059">isTop</a>())</div>
294
- <div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; <span class="keywordflow">return</span> std::make_pair(0, maxByteLimit);</div>
295
- <div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; <span class="comment">// if idxVal is a concrete value</span></div>
296
- <div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; <span class="keywordflow">if</span> (idxVal.<a class="code" href="classSVF_1_1IntervalValue.html#a523826aede7ad22736beed0c8223b6b0">is_numeral</a>())</div>
297
- <div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; {</div>
298
- <div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; offsetLb = offsetUb = valueReshape(idxVal.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a4181e5e15e10304ea524e5f8b2a3f576">getNumeral</a>());</div>
299
- <div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; }</div>
300
- <div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; <span class="keywordflow">else</span></div>
301
- <div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; {</div>
302
- <div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; offsetLb = valueReshape(idxVal.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a4181e5e15e10304ea524e5f8b2a3f576">getNumeral</a>());</div>
303
- <div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; offsetUb = valueReshape(idxVal.<a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a4181e5e15e10304ea524e5f8b2a3f576">getNumeral</a>());</div>
304
- <div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; }</div>
305
- <div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; }</div>
306
- <div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; <span class="keywordflow">return</span> {offsetLb, offsetUb};</div>
307
- <div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160;}</div>
308
- <div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; </div>
309
- <div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; </div>
310
- <div class="line"><a name="l00241"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2ItvExeState.html#aed7fc3951608972b6f8fdce14b4a0cbb"> 241</a></span>&#160;std::pair&lt;APOffset, APOffset&gt; <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#aed7fc3951608972b6f8fdce14b4a0cbb">SVFIR2ItvExeState::getIndexfromGepTypePair</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1AccessPath.html#acefbd7faec2833144b07c5bb96eb6f84">AccessPath::VarAndGepTypePair</a>&amp; gep_pair, <span class="keyword">const</span> <a class="code" href="classSVF_1_1GepStmt.html">GepStmt</a> *gep)</div>
311
- <div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160;{</div>
312
- <div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFValue.html">SVFValue</a> *value = gep_pair.first-&gt;getValue();</div>
313
- <div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFType.html">SVFType</a> *<a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a> = gep_pair.second;</div>
314
- <div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFConstantInt.html">SVFConstantInt</a> *op = SVFUtil::dyn_cast&lt;SVFConstantInt&gt;(value);</div>
315
- <div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; <a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> offsetLb = 0;</div>
316
- <div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; <a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> offsetUb = 0;</div>
317
- <div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; <a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> maxFieldLimit = (<a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a>)<a class="code" href="classSVF_1_1Options.html#aaab923c093730b1670a54f09340b1bd5">Options::MaxFieldLimit</a>();</div>
318
- <div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; <a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> minFieldLimit = 0;</div>
319
- <div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; <span class="keyword">auto</span> valueReshape = [&amp;](<a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a> <a class="code" href="cJSON_8cpp.html#a95bf816579e97b6f33bdb5e25ed6d5de">offset</a>)</div>
320
- <div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; {</div>
321
- <div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="cJSON_8cpp.html#a95bf816579e97b6f33bdb5e25ed6d5de">offset</a> &lt; minFieldLimit)</div>
322
- <div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; {</div>
323
- <div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; <span class="keywordflow">return</span> minFieldLimit;</div>
324
- <div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; }</div>
325
- <div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="cJSON_8cpp.html#a95bf816579e97b6f33bdb5e25ed6d5de">offset</a> &gt; maxFieldLimit)</div>
326
- <div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; {</div>
327
- <div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; <span class="keywordflow">return</span> maxFieldLimit;</div>
328
- <div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; }</div>
329
- <div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; <span class="keywordflow">else</span></div>
330
- <div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; {</div>
331
- <div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; <span class="keywordflow">return</span> <a class="code" href="cJSON_8cpp.html#a95bf816579e97b6f33bdb5e25ed6d5de">offset</a>;</div>
332
- <div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; }</div>
333
- <div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; };</div>
334
- <div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; <span class="keywordflow">if</span> (op)</div>
335
- <div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; {</div>
336
- <div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; offsetLb = offsetUb = valueReshape(op-&gt;<a class="code" href="classSVF_1_1SVFConstantInt.html#a73f04bdfc19261b65164b98787bc2ed4">getSExtValue</a>());</div>
337
- <div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; }</div>
338
- <div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; <span class="keywordflow">else</span></div>
339
- <div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; {</div>
340
- <div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> idx = _svfir-&gt;getValueNode(value);</div>
341
- <div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; <span class="comment">//if (!inVarToIValTable(idx)) return std::make_pair(-1, -1);</span></div>
342
- <div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> &amp;idxVal = _es[idx];</div>
343
- <div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; <span class="keywordflow">if</span> (idxVal.<a class="code" href="classSVF_1_1IntervalValue.html#af8be90fc1b61103187908dce4ba68001">isBottom</a>() || idxVal.<a class="code" href="classSVF_1_1IntervalValue.html#a977128211266b93e58e298a7ac29a059">isTop</a>())</div>
344
- <div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; <span class="keywordflow">return</span> std::make_pair(0, <a class="code" href="classSVF_1_1Options.html#aaab923c093730b1670a54f09340b1bd5">Options::MaxFieldLimit</a>());</div>
345
- <div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; <span class="comment">// if idxVal is a concrete value</span></div>
346
- <div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; <span class="keywordflow">if</span> (idxVal.<a class="code" href="classSVF_1_1IntervalValue.html#a523826aede7ad22736beed0c8223b6b0">is_numeral</a>())</div>
347
- <div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; {</div>
348
- <div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; offsetLb = offsetUb = valueReshape(idxVal.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a4181e5e15e10304ea524e5f8b2a3f576">getNumeral</a>());</div>
349
- <div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; }</div>
350
- <div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; <span class="keywordflow">else</span></div>
351
- <div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; {</div>
352
- <div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; offsetLb = valueReshape(idxVal.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a4181e5e15e10304ea524e5f8b2a3f576">getNumeral</a>());</div>
353
- <div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; offsetUb = valueReshape(idxVal.<a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a4181e5e15e10304ea524e5f8b2a3f576">getNumeral</a>());</div>
354
- <div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; }</div>
355
- <div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; }</div>
356
- <div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; </div>
357
- <div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>)</div>
358
- <div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; {</div>
359
- <div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFPointerType.html">SVFPointerType</a> *pty = SVFUtil::dyn_cast&lt;SVFPointerType&gt;(<a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>))</div>
360
- <div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; {</div>
361
- <div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; offsetLb = offsetLb * gep-&gt;<a class="code" href="classSVF_1_1GepStmt.html#a6c74f234a6b40bc5292bb14874c2e600">getAccessPath</a>().<a class="code" href="classSVF_1_1AccessPath.html#a3c98f0c5f07109f9da0a8a897aa51d18">getElementNum</a>(pty-&gt;getPtrElementType());</div>
362
- <div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; offsetUb = offsetUb * gep-&gt;<a class="code" href="classSVF_1_1GepStmt.html#a6c74f234a6b40bc5292bb14874c2e600">getAccessPath</a>().<a class="code" href="classSVF_1_1AccessPath.html#a3c98f0c5f07109f9da0a8a897aa51d18">getElementNum</a>(pty-&gt;getPtrElementType());</div>
363
- <div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; }</div>
364
- <div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; <span class="keywordflow">else</span></div>
365
- <div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; {</div>
366
- <div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; <span class="keyword">const</span> std::vector&lt;u32_t&gt;&amp; so = <a class="code" href="classSVF_1_1SymbolTableInfo.html#a267169023fc4f8dd66b145f7231fec11">SymbolTableInfo::SymbolInfo</a>()</div>
367
- <div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; -&gt;<a class="code" href="classSVF_1_1SymbolTableInfo.html#a5dc699aa85fe879eb4b2c9109cf3030d">getTypeInfo</a>(<a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>)</div>
368
- <div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; -&gt;<a class="code" href="classSVF_1_1StInfo.html#a55e5fd85f232c1867c5c6a73646d53eb">getFlattenedElemIdxVec</a>();</div>
369
- <div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; <span class="keywordflow">if</span> (so.empty() || offsetUb &gt;= (<a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a>)so.size() ||</div>
370
- <div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; offsetLb &gt;= (<a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a>)so.size())</div>
371
- <div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; {</div>
372
- <div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; offsetLb = 0;</div>
373
- <div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; offsetUb = maxFieldLimit;</div>
374
- <div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; }</div>
375
- <div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; <span class="keywordflow">else</span></div>
376
- <div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; {</div>
377
- <div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; offsetLb =</div>
378
- <div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; <a class="code" href="classSVF_1_1SymbolTableInfo.html#a267169023fc4f8dd66b145f7231fec11">SymbolTableInfo::SymbolInfo</a>()-&gt;<a class="code" href="classSVF_1_1SymbolTableInfo.html#a24df52313f8093bb651ae9da972cd663">getFlattenedElemIdx</a>(</div>
379
- <div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; <a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>, offsetLb);</div>
380
- <div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; offsetUb =</div>
381
- <div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; <a class="code" href="classSVF_1_1SymbolTableInfo.html#a267169023fc4f8dd66b145f7231fec11">SymbolTableInfo::SymbolInfo</a>()-&gt;<a class="code" href="classSVF_1_1SymbolTableInfo.html#a24df52313f8093bb651ae9da972cd663">getFlattenedElemIdx</a>(</div>
382
- <div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; <a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>, offsetUb);</div>
383
- <div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; }</div>
384
- <div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; }</div>
385
- <div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; }</div>
386
- <div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; <span class="keywordflow">return</span> {offsetLb, offsetUb};</div>
387
- <div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160;}</div>
388
- <div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; </div>
389
- <div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; </div>
390
- <div class="line"><a name="l00322"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2ItvExeState.html#ae7d4ea045ddf4d49230065ff3bf07f61"> 322</a></span>&#160;std::pair&lt;APOffset, APOffset&gt; <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ae7d4ea045ddf4d49230065ff3bf07f61">SVFIR2ItvExeState::getGepByteOffset</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1GepStmt.html">GepStmt</a> *gep)</div>
391
- <div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160;{</div>
392
- <div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; <span class="keywordflow">if</span> (gep-&gt;<a class="code" href="classSVF_1_1GepStmt.html#acce9e813dbca30e0264dac6c89ea72af">getOffsetVarAndGepTypePairVec</a>().empty())</div>
393
- <div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; <span class="keywordflow">return</span> std::make_pair(gep-&gt;<a class="code" href="classSVF_1_1GepStmt.html#afe5ae814b71b59fc03bd672d62a5fab7">getConstantFieldIdx</a>(), gep-&gt;<a class="code" href="classSVF_1_1GepStmt.html#afe5ae814b71b59fc03bd672d62a5fab7">getConstantFieldIdx</a>());</div>
394
- <div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; <a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> totalOffsetLb = 0;</div>
395
- <div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; <a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> totalOffsetUb = 0;</div>
396
- <div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; <a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> maxFieldLimit = 0xFFFFFF;</div>
397
- <div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = gep-&gt;<a class="code" href="classSVF_1_1GepStmt.html#acce9e813dbca30e0264dac6c89ea72af">getOffsetVarAndGepTypePairVec</a>().size() - 1; i &gt;= 0; i--)</div>
398
- <div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; {</div>
399
- <div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; std::pair&lt;APOffset, APOffset&gt; offsetIdx = getBytefromGepTypePair(</div>
400
- <div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; gep-&gt;<a class="code" href="classSVF_1_1GepStmt.html#acce9e813dbca30e0264dac6c89ea72af">getOffsetVarAndGepTypePairVec</a>()[i], gep);</div>
401
- <div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; <a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> offsetLb = offsetIdx.first;</div>
402
- <div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; <a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> offsetUb = offsetIdx.second;</div>
403
- <div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; <span class="keywordflow">if</span> (totalOffsetLb + offsetLb &gt; maxFieldLimit)</div>
404
- <div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; totalOffsetLb = maxFieldLimit;</div>
405
- <div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; <span class="keywordflow">else</span></div>
406
- <div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; totalOffsetLb += offsetLb;</div>
407
- <div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; <span class="keywordflow">if</span> (totalOffsetUb + offsetUb &gt; maxFieldLimit)</div>
408
- <div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160; totalOffsetUb = maxFieldLimit;</div>
409
- <div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160; <span class="keywordflow">else</span></div>
410
- <div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; totalOffsetUb += offsetUb ;</div>
411
- <div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; }</div>
412
- <div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160; <span class="keywordflow">return</span> {totalOffsetLb, totalOffsetUb};</div>
413
- <div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160;}</div>
414
- <div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160; </div>
415
- <div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160; </div>
416
- <div class="line"><a name="l00350"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2ItvExeState.html#afed2852aec6793e1943f97ed39dd8d2b"> 350</a></span>&#160;std::pair&lt;APOffset, APOffset&gt; <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#afed2852aec6793e1943f97ed39dd8d2b">SVFIR2ItvExeState::getGepOffset</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1GepStmt.html">GepStmt</a> *gep)</div>
417
- <div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160;{</div>
418
- <div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160; <span class="keywordflow">if</span> (gep-&gt;<a class="code" href="classSVF_1_1GepStmt.html#acce9e813dbca30e0264dac6c89ea72af">getOffsetVarAndGepTypePairVec</a>().empty())</div>
419
- <div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160; <span class="keywordflow">return</span> std::make_pair(gep-&gt;<a class="code" href="classSVF_1_1GepStmt.html#afe5ae814b71b59fc03bd672d62a5fab7">getConstantFieldIdx</a>(), gep-&gt;<a class="code" href="classSVF_1_1GepStmt.html#afe5ae814b71b59fc03bd672d62a5fab7">getConstantFieldIdx</a>());</div>
420
- <div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; <a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> totalOffsetLb = 0;</div>
421
- <div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; <a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> totalOffsetUb = 0;</div>
422
- <div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160; <a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> maxFieldLimit = <a class="code" href="classSVF_1_1Options.html#aaab923c093730b1670a54f09340b1bd5">Options::MaxFieldLimit</a>() - 1;</div>
423
- <div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = gep-&gt;<a class="code" href="classSVF_1_1GepStmt.html#acce9e813dbca30e0264dac6c89ea72af">getOffsetVarAndGepTypePairVec</a>().size() - 1; i &gt;= 0; i--)</div>
424
- <div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; {</div>
425
- <div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160; std::pair&lt;APOffset, APOffset&gt; offsetIdx = getIndexfromGepTypePair(</div>
426
- <div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; gep-&gt;<a class="code" href="classSVF_1_1GepStmt.html#acce9e813dbca30e0264dac6c89ea72af">getOffsetVarAndGepTypePairVec</a>()[i], gep);</div>
427
- <div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; <a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> offsetLb = offsetIdx.first;</div>
428
- <div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160; <a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> offsetUb = offsetIdx.second;</div>
429
- <div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; <span class="keywordflow">if</span> ((<span class="keywordtype">long</span> <span class="keywordtype">long</span>) (totalOffsetLb + offsetLb) &gt; maxFieldLimit)</div>
430
- <div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160; totalOffsetLb = maxFieldLimit;</div>
431
- <div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160; <span class="keywordflow">else</span></div>
432
- <div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; totalOffsetLb += offsetLb;</div>
433
- <div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; <span class="keywordflow">if</span> ((<span class="keywordtype">long</span> <span class="keywordtype">long</span>) (totalOffsetUb + offsetUb) &gt; maxFieldLimit)</div>
434
- <div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; totalOffsetUb = maxFieldLimit;</div>
435
- <div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; <span class="keywordflow">else</span></div>
436
- <div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160; totalOffsetUb += offsetUb ;</div>
437
- <div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160; }</div>
438
- <div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; <span class="keywordflow">return</span> {totalOffsetLb, totalOffsetUb};</div>
439
- <div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160;}</div>
440
- <div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160; </div>
441
- <div class="line"><a name="l00382"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2ItvExeState.html#a61d288c8dc621a0578faa5ff784f4b6e"> 382</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a61d288c8dc621a0578faa5ff784f4b6e">SVFIR2ItvExeState::initValVar</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1ValVar.html">ValVar</a> *valVar, <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> varId)</div>
442
- <div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160;{</div>
443
- <div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160; </div>
444
- <div class="line"><a name="l00385"></a><span class="lineno"> 385</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>
445
- <div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160; </div>
446
- <div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFType.html">SVFType</a> *<a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a> = valVar-&gt;<a class="code" href="classSVF_1_1SVFVar.html#ab6f95d3e7e099d75cfc9645ebc037047">getType</a>())</div>
447
- <div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160; {</div>
448
- <div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; <span class="comment">// TODO:miss floatpointerty, voidty, labelty, matadataty</span></div>
449
- <div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>-&gt;getKind() == <a class="code" href="classSVF_1_1SVFType.html#a333e01a9c431c8f53bd2fc597bd5c40cae2025d3e9d7943027c74ae6bba3fff22">SVFType::SVFIntegerTy</a> ||</div>
450
- <div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160; <a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>-&gt;getKind() == <a class="code" href="classSVF_1_1SVFType.html#a333e01a9c431c8f53bd2fc597bd5c40cae8c18603570fa65fa5a9aabdf2f5d0a1">SVFType::SVFPointerTy</a> ||</div>
451
- <div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160; <a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>-&gt;getKind() == <a class="code" href="classSVF_1_1SVFType.html#a333e01a9c431c8f53bd2fc597bd5c40ca01274de074f51be05f2ad6b2d0ca9dd6">SVFType::SVFFunctionTy</a> ||</div>
452
- <div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160; <a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>-&gt;getKind() == <a class="code" href="classSVF_1_1SVFType.html#a333e01a9c431c8f53bd2fc597bd5c40ca77e52ad9bebff282f40383f468fe856d">SVFType::SVFStructTy</a> ||</div>
453
- <div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160; <a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>-&gt;getKind() == <a class="code" href="classSVF_1_1SVFType.html#a333e01a9c431c8f53bd2fc597bd5c40cac8c846ff3208d07a4a39c7a21433c6a5">SVFType::SVFArrayTy</a>)</div>
454
- <div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160; <span class="comment">// continue with null expression</span></div>
455
- <div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160; _es[varId] = <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div>
456
- <div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160; <span class="keywordflow">else</span></div>
457
- <div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160; {</div>
458
- <div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160; </div>
459
- <div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">SVFUtil::errs</a>() &lt;&lt; valVar-&gt;<a class="code" href="classSVF_1_1SVFVar.html#ac2db6304ea5526fb446ae882983beeb0">getValue</a>()-&gt;<a class="code" href="classSVF_1_1SVFValue.html#a4a0cfe3a8f37d33ffcdca3d66026dcc3">toString</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="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a> &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div>
460
- <div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160; assert(<span class="keyword">false</span> &amp;&amp; <span class="stringliteral">&quot;what other types we have&quot;</span>);</div>
461
- <div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160; }</div>
462
- <div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160; }</div>
463
- <div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160; <span class="keywordflow">else</span></div>
464
- <div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160; {</div>
465
- <div class="line"><a name="l00406"></a><span class="lineno"> 406</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>
466
- <div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160; _es[varId] = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(0, 0);</div>
467
- <div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160; <span class="keywordflow">else</span></div>
468
- <div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160; _es[varId] = <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div>
469
- <div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160; assert(SVFUtil::isa&lt;DummyValVar&gt;(valVar) &amp;&amp; <span class="stringliteral">&quot;not a DummValVar if it has no type?&quot;</span>);</div>
470
- <div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160; }</div>
471
- <div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160;}</div>
472
- <div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160; </div>
473
- <div class="line"><a name="l00419"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2ItvExeState.html#a646fa58f61db6abd98d0a04af1fab88d"> 419</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a646fa58f61db6abd98d0a04af1fab88d">SVFIR2ItvExeState::initObjVar</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1ObjVar.html">ObjVar</a> *objVar, <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> varId)</div>
474
- <div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160;{</div>
475
- <div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; </div>
476
- <div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160; <span class="keywordflow">if</span> (objVar-&gt;<a class="code" href="classSVF_1_1SVFVar.html#a1ace69053c2c4436fd78d5624bd0086a">hasValue</a>())</div>
477
- <div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160; {</div>
478
- <div class="line"><a name="l00424"></a><span class="lineno"> 424</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>
479
- <div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160; <span class="keywordflow">if</span> (obj-&gt;<a class="code" href="classSVF_1_1MemObj.html#a1a4ff4aaaf2573240a318e1b79328cd0">isConstDataOrConstGlobal</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>
480
- <div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160; {</div>
481
- <div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFConstantInt.html">SVFConstantInt</a> *consInt = SVFUtil::dyn_cast&lt;SVFConstantInt&gt;(obj-&gt;<a class="code" href="classSVF_1_1MemObj.html#a2f70e9c830b18f25c56b530722f106c4">getValue</a>()))</div>
482
- <div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160; {</div>
483
- <div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160; <span class="keywordtype">double</span> numeral = (double)consInt-&gt;getSExtValue();</div>
484
- <div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160; <a class="code" href="classSVF_1_1IntervalExeState.html#a92b1b163493a74a31d30a261128edd05">IntervalExeState::globalES</a>[varId] = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(numeral, numeral);</div>
485
- <div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; }</div>
486
- <div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFConstantFP.html">SVFConstantFP</a>* consFP = SVFUtil::dyn_cast&lt;SVFConstantFP&gt;(obj-&gt;<a class="code" href="classSVF_1_1MemObj.html#a2f70e9c830b18f25c56b530722f106c4">getValue</a>()))</div>
487
- <div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160; {</div>
488
- <div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160; <a class="code" href="classSVF_1_1IntervalExeState.html#a92b1b163493a74a31d30a261128edd05">IntervalExeState::globalES</a>[varId] = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(consFP-&gt;getFPValue(), consFP-&gt;getFPValue());</div>
489
- <div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160; }</div>
490
- <div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa&lt;SVFConstantNullPtr&gt;(obj-&gt;<a class="code" href="classSVF_1_1MemObj.html#a2f70e9c830b18f25c56b530722f106c4">getValue</a>()))</div>
491
- <div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160; {</div>
492
- <div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160; <a class="code" href="classSVF_1_1IntervalExeState.html#a92b1b163493a74a31d30a261128edd05">IntervalExeState::globalES</a>[varId] = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(0, 0);</div>
493
- <div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160; }</div>
494
- <div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa&lt;SVFGlobalValue&gt;(obj-&gt;<a class="code" href="classSVF_1_1MemObj.html#a2f70e9c830b18f25c56b530722f106c4">getValue</a>()))</div>
495
- <div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160; {</div>
496
- <div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160; <a class="code" href="classSVF_1_1IntervalExeState.html#a92b1b163493a74a31d30a261128edd05">IntervalExeState::globalES</a>.<a class="code" href="classSVF_1_1IntervalExeState.html#a36e15d9d95908b74fcf321e30a9cdebe">getVAddrs</a>(varId).<a class="code" href="classSVF_1_1AddressValue.html#a40c67147606ab95dd3318d0fe821d8c0">insert</a>(getVirtualMemAddress(varId));</div>
497
- <div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160; }</div>
498
- <div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (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>
499
- <div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160; {</div>
500
- <div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160; <a class="code" href="classSVF_1_1IntervalExeState.html#a92b1b163493a74a31d30a261128edd05">IntervalExeState::globalES</a>[varId] = <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div>
501
- <div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160; }</div>
502
- <div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160; <span class="keywordflow">else</span></div>
503
- <div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160; {</div>
504
- <div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160; <a class="code" href="classSVF_1_1IntervalExeState.html#a92b1b163493a74a31d30a261128edd05">IntervalExeState::globalES</a>[varId] = <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div>
505
- <div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160; }</div>
506
- <div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160; }</div>
507
- <div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160; <span class="keywordflow">else</span></div>
508
- <div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160; {</div>
509
- <div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160; <a class="code" href="classSVF_1_1IntervalExeState.html#a92b1b163493a74a31d30a261128edd05">IntervalExeState::globalES</a>.<a class="code" href="classSVF_1_1IntervalExeState.html#a36e15d9d95908b74fcf321e30a9cdebe">getVAddrs</a>(varId).<a class="code" href="classSVF_1_1AddressValue.html#a40c67147606ab95dd3318d0fe821d8c0">insert</a>(getVirtualMemAddress(varId));</div>
510
- <div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160; }</div>
511
- <div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160; }</div>
512
- <div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160; <span class="keywordflow">else</span></div>
513
- <div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160; {</div>
514
- <div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160; <a class="code" href="classSVF_1_1IntervalExeState.html#a92b1b163493a74a31d30a261128edd05">IntervalExeState::globalES</a>.<a class="code" href="classSVF_1_1IntervalExeState.html#a36e15d9d95908b74fcf321e30a9cdebe">getVAddrs</a>(varId).<a class="code" href="classSVF_1_1AddressValue.html#a40c67147606ab95dd3318d0fe821d8c0">insert</a>(getVirtualMemAddress(varId));</div>
515
- <div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160; }</div>
516
- <div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160;}</div>
517
- <div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160; </div>
518
- <div class="line"><a name="l00465"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2ItvExeState.html#af5d05c5316127cfe8d975a3a0a23798b"> 465</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#af5d05c5316127cfe8d975a3a0a23798b">SVFIR2ItvExeState::initSVFVar</a>(<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> varId)</div>
519
- <div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160;{</div>
520
- <div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160; <span class="keywordflow">if</span> (inVarToIValTable(varId) || _es.inVarToAddrsTable(varId)) <span class="keywordflow">return</span>;</div>
521
- <div class="line"><a name="l00468"></a><span class="lineno"> 468</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>
522
- <div class="line"><a name="l00469"></a><span class="lineno"> 469</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>
523
- <div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160; <span class="comment">// write objvar into cache instead of exestate</span></div>
524
- <div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160; <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>
525
- <div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160; {</div>
526
- <div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160; initObjVar(objVar, varId);</div>
527
- <div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160; <span class="keywordflow">return</span>;</div>
528
- <div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160; }</div>
529
- <div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160; <span class="keywordflow">else</span> <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>
530
- <div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160; {</div>
531
- <div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160; initValVar(valVar, varId);</div>
532
- <div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160; <span class="keywordflow">return</span>;</div>
533
- <div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160; }</div>
534
- <div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160; <span class="keywordflow">else</span></div>
535
- <div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160; {</div>
536
- <div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160; initValVar(valVar, varId);</div>
537
- <div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160; <span class="keywordflow">return</span>;</div>
538
- <div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160; }</div>
539
- <div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160;}</div>
540
- <div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160; </div>
541
- <div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160; </div>
542
- <div class="line"><a name="l00489"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2ItvExeState.html#af7f42ee51b03b1aaaee18f10eec0c2b9"> 489</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#af7f42ee51b03b1aaaee18f10eec0c2b9">SVFIR2ItvExeState::translateAddr</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1AddrStmt.html">AddrStmt</a> *addr)</div>
543
- <div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160;{</div>
544
- <div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160; initSVFVar(addr-&gt;<a class="code" href="classSVF_1_1AssignStmt.html#a4cec89489e82c60c287cae3327f3f01d">getRHSVarID</a>());</div>
545
- <div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160; <span class="keywordflow">if</span> (inVarToIValTable(addr-&gt;<a class="code" href="classSVF_1_1AssignStmt.html#a4cec89489e82c60c287cae3327f3f01d">getRHSVarID</a>()))</div>
546
- <div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160; {</div>
547
- <div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160; <a class="code" href="classSVF_1_1IntervalExeState.html#a92b1b163493a74a31d30a261128edd05">IntervalExeState::globalES</a>[addr-&gt;<a class="code" href="classSVF_1_1AssignStmt.html#a98f731be7be9bc8e7fd09f5c2204c840">getLHSVarID</a>()] = <a class="code" href="classSVF_1_1IntervalExeState.html#a92b1b163493a74a31d30a261128edd05">IntervalExeState::globalES</a>[addr-&gt;<a class="code" href="classSVF_1_1AssignStmt.html#a4cec89489e82c60c287cae3327f3f01d">getRHSVarID</a>()];</div>
548
- <div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160; }</div>
549
- <div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (inVarToAddrsTable(addr-&gt;<a class="code" href="classSVF_1_1AssignStmt.html#a4cec89489e82c60c287cae3327f3f01d">getRHSVarID</a>()))</div>
550
- <div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160; {</div>
551
- <div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160; <a class="code" href="classSVF_1_1IntervalExeState.html#a92b1b163493a74a31d30a261128edd05">IntervalExeState::globalES</a>.<a class="code" href="classSVF_1_1IntervalExeState.html#a36e15d9d95908b74fcf321e30a9cdebe">getVAddrs</a>(addr-&gt;<a class="code" href="classSVF_1_1AssignStmt.html#a98f731be7be9bc8e7fd09f5c2204c840">getLHSVarID</a>()) = <a class="code" href="classSVF_1_1IntervalExeState.html#a92b1b163493a74a31d30a261128edd05">IntervalExeState::globalES</a>.<a class="code" href="classSVF_1_1IntervalExeState.html#a36e15d9d95908b74fcf321e30a9cdebe">getVAddrs</a>(</div>
552
- <div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160; addr-&gt;<a class="code" href="classSVF_1_1AssignStmt.html#a4cec89489e82c60c287cae3327f3f01d">getRHSVarID</a>());</div>
553
- <div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160; }</div>
554
- <div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160; <span class="keywordflow">else</span></div>
555
- <div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160; {</div>
556
- <div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160; assert(<span class="keyword">false</span> &amp;&amp; <span class="stringliteral">&quot;not number or virtual addrs?&quot;</span>);</div>
557
- <div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160; }</div>
558
- <div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160;}</div>
559
- <div class="line"><a name="l00506"></a><span class="lineno"> 506</span>&#160; </div>
560
- <div class="line"><a name="l00507"></a><span class="lineno"> 507</span>&#160; </div>
561
- <div class="line"><a name="l00508"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2ItvExeState.html#a449ee8f244120866037c7f6d2ee5fc13"> 508</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a449ee8f244120866037c7f6d2ee5fc13">SVFIR2ItvExeState::translateBinary</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html">BinaryOPStmt</a> *binary)</div>
562
- <div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160;{</div>
563
- <div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> op0 = binary-&gt;<a class="code" href="classSVF_1_1MultiOpndStmt.html#a5c6efcc023e90ef2e618586091958c59">getOpVarID</a>(0);</div>
564
- <div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> op1 = binary-&gt;<a class="code" href="classSVF_1_1MultiOpndStmt.html#a5c6efcc023e90ef2e618586091958c59">getOpVarID</a>(1);</div>
565
- <div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> res = binary-&gt;<a class="code" href="classSVF_1_1MultiOpndStmt.html#a71a530eb9fa9f7e273e471b4a75a039e">getResID</a>();</div>
566
- <div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160; <span class="keywordflow">if</span> (!inVarToIValTable(op0)) _es[op0] = <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div>
567
- <div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160; <span class="keywordflow">if</span> (!inVarToIValTable(op1)) _es[op1] = <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div>
568
- <div class="line"><a name="l00515"></a><span class="lineno"> 515</span>&#160; <span class="keywordflow">if</span> (inVarToIValTable(op0) &amp;&amp; inVarToIValTable(op1))</div>
569
- <div class="line"><a name="l00516"></a><span class="lineno"> 516</span>&#160; {</div>
570
- <div class="line"><a name="l00517"></a><span class="lineno"> 517</span>&#160; <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> &amp;lhs = _es[op0], &amp;rhs = _es[op1];</div>
571
- <div class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160; <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> resVal;</div>
572
- <div class="line"><a name="l00519"></a><span class="lineno"> 519</span>&#160; <span class="keywordflow">switch</span> (binary-&gt;<a class="code" href="classSVF_1_1BinaryOPStmt.html#ad0a7c5e87355d7a83176343322db448f">getOpcode</a>())</div>
573
- <div class="line"><a name="l00520"></a><span class="lineno"> 520</span>&#160; {</div>
574
- <div class="line"><a name="l00521"></a><span class="lineno"> 521</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a06926877b6c25931a409224497753862">BinaryOPStmt::Add</a>:</div>
575
- <div class="line"><a name="l00522"></a><span class="lineno"> 522</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a97c70ced12e0f1c5e3c3708b13727e8e">BinaryOPStmt::FAdd</a>:</div>
576
- <div class="line"><a name="l00523"></a><span class="lineno"> 523</span>&#160; resVal = (lhs + rhs);</div>
577
- <div class="line"><a name="l00524"></a><span class="lineno"> 524</span>&#160; <span class="keywordflow">break</span>;</div>
578
- <div class="line"><a name="l00525"></a><span class="lineno"> 525</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a758382a3b40e116175ca321fa4449d7f">BinaryOPStmt::Sub</a>:</div>
579
- <div class="line"><a name="l00526"></a><span class="lineno"> 526</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a05348a0e3f232ac552bb3ca56525c448">BinaryOPStmt::FSub</a>:</div>
580
- <div class="line"><a name="l00527"></a><span class="lineno"> 527</span>&#160; resVal = (lhs - rhs);</div>
581
- <div class="line"><a name="l00528"></a><span class="lineno"> 528</span>&#160; <span class="keywordflow">break</span>;</div>
582
- <div class="line"><a name="l00529"></a><span class="lineno"> 529</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a787e5771d6e70f3cbec3e2a33f5a4e8a">BinaryOPStmt::Mul</a>:</div>
583
- <div class="line"><a name="l00530"></a><span class="lineno"> 530</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a22a047e74227056ef3340628fae80198">BinaryOPStmt::FMul</a>:</div>
584
- <div class="line"><a name="l00531"></a><span class="lineno"> 531</span>&#160; resVal = (lhs * rhs);</div>
585
- <div class="line"><a name="l00532"></a><span class="lineno"> 532</span>&#160; <span class="keywordflow">break</span>;</div>
586
- <div class="line"><a name="l00533"></a><span class="lineno"> 533</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a7a4ce4e97992d92ac044456e66821552">BinaryOPStmt::SDiv</a>:</div>
587
- <div class="line"><a name="l00534"></a><span class="lineno"> 534</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a553540425a63724c8b7f2fd0ca25b567">BinaryOPStmt::FDiv</a>:</div>
588
- <div class="line"><a name="l00535"></a><span class="lineno"> 535</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6ad2f8b02de2c62175d3341be92a925250">BinaryOPStmt::UDiv</a>:</div>
589
- <div class="line"><a name="l00536"></a><span class="lineno"> 536</span>&#160; resVal = (lhs / rhs);</div>
590
- <div class="line"><a name="l00537"></a><span class="lineno"> 537</span>&#160; <span class="keywordflow">break</span>;</div>
591
- <div class="line"><a name="l00538"></a><span class="lineno"> 538</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6ad2db0456c9943dd75aa091cb19040448">BinaryOPStmt::SRem</a>:</div>
592
- <div class="line"><a name="l00539"></a><span class="lineno"> 539</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6aafa66e75600b0098c4fa3304720cb7a6">BinaryOPStmt::FRem</a>:</div>
593
- <div class="line"><a name="l00540"></a><span class="lineno"> 540</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6af7dba9dda5edcee046ca81fb184858bc">BinaryOPStmt::URem</a>:</div>
594
- <div class="line"><a name="l00541"></a><span class="lineno"> 541</span>&#160; resVal = (lhs % rhs);</div>
595
- <div class="line"><a name="l00542"></a><span class="lineno"> 542</span>&#160; <span class="keywordflow">break</span>;</div>
596
- <div class="line"><a name="l00543"></a><span class="lineno"> 543</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6ac89b793572db14a3c018122cf9fc79d6">BinaryOPStmt::Xor</a>:</div>
597
- <div class="line"><a name="l00544"></a><span class="lineno"> 544</span>&#160; resVal = (lhs ^ rhs);</div>
598
- <div class="line"><a name="l00545"></a><span class="lineno"> 545</span>&#160; <span class="keywordflow">break</span>;</div>
599
- <div class="line"><a name="l00546"></a><span class="lineno"> 546</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a0df258a85e260bcb9534ae1b650e1856">BinaryOPStmt::And</a>:</div>
600
- <div class="line"><a name="l00547"></a><span class="lineno"> 547</span>&#160; resVal = (lhs &amp; rhs);</div>
601
- <div class="line"><a name="l00548"></a><span class="lineno"> 548</span>&#160; <span class="keywordflow">break</span>;</div>
602
- <div class="line"><a name="l00549"></a><span class="lineno"> 549</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a90745e5effc8b7ef43c693d1e4fa7dbe">BinaryOPStmt::Or</a>:</div>
603
- <div class="line"><a name="l00550"></a><span class="lineno"> 550</span>&#160; resVal = (lhs | rhs);</div>
604
- <div class="line"><a name="l00551"></a><span class="lineno"> 551</span>&#160; <span class="keywordflow">break</span>;</div>
605
- <div class="line"><a name="l00552"></a><span class="lineno"> 552</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6ac988853383e1588cf568687848e73576">BinaryOPStmt::AShr</a>:</div>
606
- <div class="line"><a name="l00553"></a><span class="lineno"> 553</span>&#160; resVal = (lhs &gt;&gt; rhs);</div>
264
+ <div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; <span class="comment">// If it&#39;s a struct type with a constant index, calculate byte sizes.</span></div>
265
+ <div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFConstantInt.html">SVFConstantInt</a> *op = SVFUtil::dyn_cast&lt;SVFConstantInt&gt;(value))</div>
266
+ <div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; {</div>
267
+ <div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> structField = 0; structField &lt; (<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a>)op-&gt;getSExtValue(); ++structField)</div>
268
+ <div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; {</div>
269
+ <div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> flattenIdx = structType-&gt;getTypeInfo()-&gt;getFlattenedFieldIdxVec()[structField];</div>
270
+ <div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; res = res + <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(structType-&gt;getTypeInfo()-&gt;getOriginalElemType(flattenIdx)-&gt;getByteSize());</div>
271
+ <div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; }</div>
272
+ <div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; <span class="keywordflow">return</span> res;</div>
273
+ <div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; }</div>
274
+ <div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; <span class="keywordflow">else</span></div>
275
+ <div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; assert(<span class="keyword">false</span> &amp;&amp; <span class="stringliteral">&quot;struct type can only pair with constant idx&quot;</span>);</div>
276
+ <div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; }</div>
277
+ <div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; <span class="keywordflow">else</span></div>
278
+ <div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; assert(<span class="keyword">false</span> &amp;&amp; <span class="stringliteral">&quot;gep type pair only support arr/ptr/struct&quot;</span>);</div>
279
+ <div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; </div>
280
+ <div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> typeSz = <a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>-&gt;getByteSize();</div>
281
+ <div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; </div>
282
+ <div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; <span class="comment">// Calculate byte size based on the type and value, considering MaxFieldLimit option.</span></div>
283
+ <div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFConstantInt.html">SVFConstantInt</a> *op = SVFUtil::dyn_cast&lt;SVFConstantInt&gt;(value))</div>
284
+ <div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; {</div>
285
+ <div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> lb = (double)<a class="code" href="classSVF_1_1Options.html#aaab923c093730b1670a54f09340b1bd5">Options::MaxFieldLimit</a>() / typeSz &gt;= op-&gt;getSExtValue() ? op-&gt;getSExtValue() * typeSz: <a class="code" href="classSVF_1_1Options.html#aaab923c093730b1670a54f09340b1bd5">Options::MaxFieldLimit</a>();</div>
286
+ <div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; res = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(lb, lb);</div>
287
+ <div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; }</div>
288
+ <div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; <span class="keywordflow">else</span></div>
289
+ <div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; {</div>
290
+ <div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> idx = _svfir-&gt;getValueNode(value);</div>
291
+ <div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> idxVal = _es[idx] * <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(<a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>-&gt;getByteSize());</div>
292
+ <div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; <span class="keywordflow">if</span> (idxVal.<a class="code" href="classSVF_1_1IntervalValue.html#af8be90fc1b61103187908dce4ba68001">isBottom</a>())</div>
293
+ <div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; {</div>
294
+ <div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; res = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(0, 0);</div>
295
+ <div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; }</div>
296
+ <div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; <span class="keywordflow">else</span></div>
297
+ <div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; {</div>
298
+ <div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> ub = (double)<a class="code" href="classSVF_1_1Options.html#aaab923c093730b1670a54f09340b1bd5">Options::MaxFieldLimit</a>() / typeSz &gt;= idxVal.<a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a4181e5e15e10304ea524e5f8b2a3f576">getNumeral</a>() ? typeSz * idxVal.<a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a4181e5e15e10304ea524e5f8b2a3f576">getNumeral</a>(): <a class="code" href="classSVF_1_1Options.html#aaab923c093730b1670a54f09340b1bd5">Options::MaxFieldLimit</a>();</div>
299
+ <div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> lb = (idxVal.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a4181e5e15e10304ea524e5f8b2a3f576">getNumeral</a>() &lt; 0) ? 0 :</div>
300
+ <div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; ((<span class="keywordtype">double</span>)<a class="code" href="classSVF_1_1Options.html#aaab923c093730b1670a54f09340b1bd5">Options::MaxFieldLimit</a>() / typeSz &gt;= idxVal.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a4181e5e15e10304ea524e5f8b2a3f576">getNumeral</a>()) ? (typeSz * idxVal.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a4181e5e15e10304ea524e5f8b2a3f576">getNumeral</a>()) : <a class="code" href="classSVF_1_1Options.html#aaab923c093730b1670a54f09340b1bd5">Options::MaxFieldLimit</a>();</div>
301
+ <div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; res = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(lb, ub);</div>
302
+ <div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; }</div>
303
+ <div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; }</div>
304
+ <div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; </div>
305
+ <div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; <span class="keywordflow">return</span> res; <span class="comment">// Return the resulting byte interval value.</span></div>
306
+ <div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160;}</div>
307
+ <div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; </div>
308
+ <div class="line"><a name="l00268"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2ItvExeState.html#a678a5278fd485eea65093add11b8a7c3"> 268</a></span>&#160;<a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a678a5278fd485eea65093add11b8a7c3">SVFIR2ItvExeState::getItvOfFlattenedElemIndexFromGepTypePair</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1AccessPath.html#a98dfa824a51134c3f72a5d153240d378">AccessPath::IdxVarAndGepTypePair</a>&amp; gep_pair, <span class="keyword">const</span> <a class="code" href="classSVF_1_1GepStmt.html">GepStmt</a> *gep)</div>
309
+ <div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160;{</div>
310
+ <div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFValue.html">SVFValue</a> *value = gep_pair.first-&gt;getValue();</div>
311
+ <div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFType.html">SVFType</a> *<a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a> = gep_pair.second;</div>
312
+ <div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; <a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> offsetLb = 0;</div>
313
+ <div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; <a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> offsetUb = 0;</div>
314
+ <div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; <a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> maxFieldLimit = (<a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a>)<a class="code" href="classSVF_1_1Options.html#aaab923c093730b1670a54f09340b1bd5">Options::MaxFieldLimit</a>();</div>
315
+ <div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; <a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> minFieldLimit = 0;</div>
316
+ <div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; </div>
317
+ <div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFConstantInt.html">SVFConstantInt</a> *op = SVFUtil::dyn_cast&lt;SVFConstantInt&gt;(value))</div>
318
+ <div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; offsetLb = offsetUb = op-&gt;getSExtValue();</div>
319
+ <div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; <span class="keywordflow">else</span></div>
320
+ <div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; {</div>
321
+ <div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> idx = _svfir-&gt;getValueNode(value);</div>
322
+ <div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> &amp;idxVal = _es[idx];</div>
323
+ <div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; <span class="keywordflow">if</span> (idxVal.<a class="code" href="classSVF_1_1IntervalValue.html#af8be90fc1b61103187908dce4ba68001">isBottom</a>() || idxVal.<a class="code" href="classSVF_1_1IntervalValue.html#a977128211266b93e58e298a7ac29a059">isTop</a>())</div>
324
+ <div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>((<a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a>)0, (<a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a>)<a class="code" href="classSVF_1_1Options.html#aaab923c093730b1670a54f09340b1bd5">Options::MaxFieldLimit</a>());</div>
325
+ <div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; <span class="comment">// If idxVal is a concrete value</span></div>
326
+ <div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; <span class="keywordflow">if</span> (idxVal.<a class="code" href="classSVF_1_1IntervalValue.html#a523826aede7ad22736beed0c8223b6b0">is_numeral</a>())</div>
327
+ <div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; {</div>
328
+ <div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> constIdxVal = idxVal.<a class="code" href="classSVF_1_1IntervalValue.html#ae081b5c462f8ed5b306719822e35cea9">getNumeral</a>();</div>
329
+ <div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; constIdxVal = (constIdxVal &lt; minFieldLimit) ? minFieldLimit :</div>
330
+ <div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; (constIdxVal &gt; maxFieldLimit) ? maxFieldLimit : constIdxVal;</div>
331
+ <div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; offsetLb = offsetUb = constIdxVal;</div>
332
+ <div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; }</div>
333
+ <div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; <span class="keywordflow">else</span></div>
334
+ <div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; {</div>
335
+ <div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; offsetLb = (idxVal.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a4181e5e15e10304ea524e5f8b2a3f576">getNumeral</a>() &lt; minFieldLimit) ? minFieldLimit :</div>
336
+ <div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; (idxVal.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a4181e5e15e10304ea524e5f8b2a3f576">getNumeral</a>() &gt; maxFieldLimit) ? maxFieldLimit : idxVal.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a4181e5e15e10304ea524e5f8b2a3f576">getNumeral</a>();</div>
337
+ <div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; offsetUb = (idxVal.<a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a4181e5e15e10304ea524e5f8b2a3f576">getNumeral</a>() &lt; minFieldLimit) ? minFieldLimit :</div>
338
+ <div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; (idxVal.<a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a4181e5e15e10304ea524e5f8b2a3f576">getNumeral</a>() &gt; maxFieldLimit) ? maxFieldLimit : idxVal.<a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a4181e5e15e10304ea524e5f8b2a3f576">getNumeral</a>();</div>
339
+ <div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; }</div>
340
+ <div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; }</div>
341
+ <div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; </div>
342
+ <div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>)</div>
343
+ <div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; {</div>
344
+ <div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFPointerType.html">SVFPointerType</a> *pty = SVFUtil::dyn_cast&lt;SVFPointerType&gt;(<a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>))</div>
345
+ <div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; {</div>
346
+ <div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; offsetLb = offsetLb * gep-&gt;<a class="code" href="classSVF_1_1GepStmt.html#a6c74f234a6b40bc5292bb14874c2e600">getAccessPath</a>().<a class="code" href="classSVF_1_1AccessPath.html#a3c98f0c5f07109f9da0a8a897aa51d18">getElementNum</a>(pty-&gt;getPtrElementType());</div>
347
+ <div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; offsetUb = offsetUb * gep-&gt;<a class="code" href="classSVF_1_1GepStmt.html#a6c74f234a6b40bc5292bb14874c2e600">getAccessPath</a>().<a class="code" href="classSVF_1_1AccessPath.html#a3c98f0c5f07109f9da0a8a897aa51d18">getElementNum</a>(pty-&gt;getPtrElementType());</div>
348
+ <div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; }</div>
349
+ <div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; <span class="keywordflow">else</span></div>
350
+ <div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; {</div>
351
+ <div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; <span class="keyword">const</span> std::vector&lt;u32_t&gt;&amp; so = <a class="code" href="classSVF_1_1SymbolTableInfo.html#a267169023fc4f8dd66b145f7231fec11">SymbolTableInfo::SymbolInfo</a>()</div>
352
+ <div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; -&gt;<a class="code" href="classSVF_1_1SymbolTableInfo.html#a5dc699aa85fe879eb4b2c9109cf3030d">getTypeInfo</a>(<a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>)</div>
353
+ <div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; -&gt;<a class="code" href="classSVF_1_1StInfo.html#a55e5fd85f232c1867c5c6a73646d53eb">getFlattenedElemIdxVec</a>();</div>
354
+ <div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; <span class="keywordflow">if</span> (so.empty() || offsetUb &gt;= (<a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a>)so.size() ||</div>
355
+ <div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; offsetLb &gt;= (<a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a>)so.size())</div>
356
+ <div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; {</div>
357
+ <div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; offsetLb = 0;</div>
358
+ <div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; offsetUb = maxFieldLimit;</div>
359
+ <div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; }</div>
360
+ <div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; <span class="keywordflow">else</span></div>
361
+ <div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; {</div>
362
+ <div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; offsetLb = <a class="code" href="classSVF_1_1SymbolTableInfo.html#a267169023fc4f8dd66b145f7231fec11">SymbolTableInfo::SymbolInfo</a>()-&gt;<a class="code" href="classSVF_1_1SymbolTableInfo.html#a24df52313f8093bb651ae9da972cd663">getFlattenedElemIdx</a>(<a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>, offsetLb);</div>
363
+ <div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; offsetUb = <a class="code" href="classSVF_1_1SymbolTableInfo.html#a267169023fc4f8dd66b145f7231fec11">SymbolTableInfo::SymbolInfo</a>()-&gt;<a class="code" href="classSVF_1_1SymbolTableInfo.html#a24df52313f8093bb651ae9da972cd663">getFlattenedElemIdx</a>(<a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>, offsetUb);</div>
364
+ <div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; }</div>
365
+ <div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; }</div>
366
+ <div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; }</div>
367
+ <div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; </div>
368
+ <div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(offsetLb, offsetUb); <span class="comment">// Return a pair of APOffset values representing the index range.</span></div>
369
+ <div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160;}</div>
370
+ <div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160; </div>
371
+ <div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; </div>
372
+ <div class="line"><a name="l00354"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2ItvExeState.html#a335922caf105ee72cd9d66a451ae3d4e"> 354</a></span>&#160;<a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a335922caf105ee72cd9d66a451ae3d4e">SVFIR2ItvExeState::getByteOffset</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1GepStmt.html">GepStmt</a> *gep)</div>
373
+ <div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160;{</div>
374
+ <div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; <span class="comment">// Check if the GepStmt has a constant offset.</span></div>
375
+ <div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160; <span class="keywordflow">if</span> (gep-&gt;<a class="code" href="classSVF_1_1GepStmt.html#ab6f37c073e4755c4b8bb3ed6365687f4">isConstantOffset</a>())</div>
376
+ <div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160; {</div>
377
+ <div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160; <span class="comment">// If it has a constant offset, return it as an IntervalValue.</span></div>
378
+ <div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(gep-&gt;<a class="code" href="classSVF_1_1GepStmt.html#a28a7ca818584abdc2d345b41d592c5dc">accumulateConstantByteOffset</a>());</div>
379
+ <div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160; }</div>
380
+ <div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; </div>
381
+ <div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> res(0); <span class="comment">// Initialize the result interval &#39;res&#39; to 0.</span></div>
382
+ <div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160; </div>
383
+ <div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; <span class="comment">// Loop through the offsetVarAndGepTypePairVec in reverse order.</span></div>
384
+ <div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = gep-&gt;<a class="code" href="classSVF_1_1GepStmt.html#a0572909694bf47d9448a0f1e5e14a50b">getOffsetVarAndGepTypePairVec</a>().size() - 1; i &gt;= 0; i--)</div>
385
+ <div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160; {</div>
386
+ <div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; <span class="comment">// Calculate the byte offset for the current IdxVarAndGepTypePair.</span></div>
387
+ <div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> offsetIdx = getByteOffsetfromGepTypePair(</div>
388
+ <div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; gep-&gt;<a class="code" href="classSVF_1_1GepStmt.html#a0572909694bf47d9448a0f1e5e14a50b">getOffsetVarAndGepTypePairVec</a>()[i], gep);</div>
389
+ <div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; </div>
390
+ <div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160; <span class="comment">// Accumulate the byte offset in the result &#39;res&#39;.</span></div>
391
+ <div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160; res = res + offsetIdx;</div>
392
+ <div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; }</div>
393
+ <div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160; </div>
394
+ <div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160; <span class="keywordflow">return</span> res; <span class="comment">// Return the resulting byte offset as an IntervalValue.</span></div>
395
+ <div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160;}</div>
396
+ <div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160; </div>
397
+ <div class="line"><a name="l00387"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2ItvExeState.html#a6e4e3eeca9d25fb5eab496faeb6264c3"> 387</a></span>&#160;<a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a6e4e3eeca9d25fb5eab496faeb6264c3">SVFIR2ItvExeState::getItvOfFlattenedElemIndex</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1GepStmt.html">GepStmt</a> *gep)</div>
398
+ <div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160;{</div>
399
+ <div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; <a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> totalOffsetLb = 0;</div>
400
+ <div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; <a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> totalOffsetUb = 0;</div>
401
+ <div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160; </div>
402
+ <div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160; <a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> minFieldLimit = 0;</div>
403
+ <div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160; <a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> maxFieldLimit = <a class="code" href="classSVF_1_1Options.html#aaab923c093730b1670a54f09340b1bd5">Options::MaxFieldLimit</a>();</div>
404
+ <div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160; </div>
405
+ <div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160; <span class="keywordflow">if</span> (gep-&gt;<a class="code" href="classSVF_1_1GepStmt.html#a0572909694bf47d9448a0f1e5e14a50b">getOffsetVarAndGepTypePairVec</a>().empty() || gep-&gt;<a class="code" href="classSVF_1_1GepStmt.html#ab6f37c073e4755c4b8bb3ed6365687f4">isConstantOffset</a>())</div>
406
+ <div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160; {</div>
407
+ <div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> offsetIdx = gep-&gt;<a class="code" href="classSVF_1_1GepStmt.html#afe5ae814b71b59fc03bd672d62a5fab7">getConstantFieldIdx</a>();</div>
408
+ <div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(offsetIdx, offsetIdx);</div>
409
+ <div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160; }</div>
410
+ <div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160; <span class="keywordflow">else</span></div>
411
+ <div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160; {</div>
412
+ <div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = gep-&gt;<a class="code" href="classSVF_1_1GepStmt.html#a0572909694bf47d9448a0f1e5e14a50b">getOffsetVarAndGepTypePairVec</a>().size() - 1; i &gt;= 0; i--)</div>
413
+ <div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160; {</div>
414
+ <div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160; <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> offsetIdx = getItvOfFlattenedElemIndexFromGepTypePair(</div>
415
+ <div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160; gep-&gt;<a class="code" href="classSVF_1_1GepStmt.html#a0572909694bf47d9448a0f1e5e14a50b">getOffsetVarAndGepTypePairVec</a>()[i], gep);</div>
416
+ <div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160; totalOffsetLb += offsetIdx.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a4181e5e15e10304ea524e5f8b2a3f576">getNumeral</a>();</div>
417
+ <div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160; totalOffsetUb += offsetIdx.<a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a4181e5e15e10304ea524e5f8b2a3f576">getNumeral</a>();</div>
418
+ <div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160; }</div>
419
+ <div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160; totalOffsetLb = (totalOffsetLb &lt; minFieldLimit) ? minFieldLimit :</div>
420
+ <div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160; (totalOffsetLb &gt; maxFieldLimit) ? maxFieldLimit : totalOffsetLb;</div>
421
+ <div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160; }</div>
422
+ <div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160; </div>
423
+ <div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(totalOffsetLb, totalOffsetUb); <span class="comment">// Return a pair of APOffset values representing the offset range.</span></div>
424
+ <div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160;}</div>
425
+ <div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; </div>
426
+ <div class="line"><a name="l00423"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2ItvExeState.html#a61d288c8dc621a0578faa5ff784f4b6e"> 423</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a61d288c8dc621a0578faa5ff784f4b6e">SVFIR2ItvExeState::initValVar</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1ValVar.html">ValVar</a> *valVar, <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> varId)</div>
427
+ <div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160;{</div>
428
+ <div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160; </div>
429
+ <div class="line"><a name="l00426"></a><span class="lineno"> 426</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>
430
+ <div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFType.html">SVFType</a> *<a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a> = valVar-&gt;<a class="code" href="classSVF_1_1SVFVar.html#ab6f95d3e7e099d75cfc9645ebc037047">getType</a>())</div>
431
+ <div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160; {</div>
432
+ <div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160; <span class="comment">// TODO:miss floatpointerty, voidty, labelty, matadataty</span></div>
433
+ <div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>-&gt;getKind() == <a class="code" href="classSVF_1_1SVFType.html#a333e01a9c431c8f53bd2fc597bd5c40cae2025d3e9d7943027c74ae6bba3fff22">SVFType::SVFIntegerTy</a> ||</div>
434
+ <div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160; <a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>-&gt;getKind() == <a class="code" href="classSVF_1_1SVFType.html#a333e01a9c431c8f53bd2fc597bd5c40cae8c18603570fa65fa5a9aabdf2f5d0a1">SVFType::SVFPointerTy</a> ||</div>
435
+ <div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; <a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>-&gt;getKind() == <a class="code" href="classSVF_1_1SVFType.html#a333e01a9c431c8f53bd2fc597bd5c40ca01274de074f51be05f2ad6b2d0ca9dd6">SVFType::SVFFunctionTy</a> ||</div>
436
+ <div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160; <a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>-&gt;getKind() == <a class="code" href="classSVF_1_1SVFType.html#a333e01a9c431c8f53bd2fc597bd5c40ca77e52ad9bebff282f40383f468fe856d">SVFType::SVFStructTy</a> ||</div>
437
+ <div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160; <a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>-&gt;getKind() == <a class="code" href="classSVF_1_1SVFType.html#a333e01a9c431c8f53bd2fc597bd5c40cac8c846ff3208d07a4a39c7a21433c6a5">SVFType::SVFArrayTy</a>)</div>
438
+ <div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160; <span class="comment">// continue with null expression</span></div>
439
+ <div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160; _es[varId] = <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div>
440
+ <div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160; <span class="keywordflow">else</span></div>
441
+ <div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160; {</div>
442
+ <div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160; </div>
443
+ <div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">SVFUtil::errs</a>() &lt;&lt; valVar-&gt;<a class="code" href="classSVF_1_1SVFVar.html#ac2db6304ea5526fb446ae882983beeb0">getValue</a>()-&gt;<a class="code" href="classSVF_1_1SVFValue.html#a4a0cfe3a8f37d33ffcdca3d66026dcc3">toString</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="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a> &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div>
444
+ <div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160; assert(<span class="keyword">false</span> &amp;&amp; <span class="stringliteral">&quot;what other types we have&quot;</span>);</div>
445
+ <div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160; }</div>
446
+ <div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160; }</div>
447
+ <div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160; <span class="keywordflow">else</span></div>
448
+ <div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160; {</div>
449
+ <div class="line"><a name="l00446"></a><span class="lineno"> 446</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>
450
+ <div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160; _es[varId] = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(0, 0);</div>
451
+ <div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160; <span class="keywordflow">else</span></div>
452
+ <div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160; _es[varId] = <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div>
453
+ <div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160; assert(SVFUtil::isa&lt;DummyValVar&gt;(valVar) &amp;&amp; <span class="stringliteral">&quot;not a DummValVar if it has no type?&quot;</span>);</div>
454
+ <div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160; }</div>
455
+ <div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160;}</div>
456
+ <div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160; </div>
457
+ <div class="line"><a name="l00459"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2ItvExeState.html#a646fa58f61db6abd98d0a04af1fab88d"> 459</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a646fa58f61db6abd98d0a04af1fab88d">SVFIR2ItvExeState::initObjVar</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1ObjVar.html">ObjVar</a> *objVar, <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> varId)</div>
458
+ <div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160;{</div>
459
+ <div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160; </div>
460
+ <div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160; <span class="keywordflow">if</span> (objVar-&gt;<a class="code" href="classSVF_1_1SVFVar.html#a1ace69053c2c4436fd78d5624bd0086a">hasValue</a>())</div>
461
+ <div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160; {</div>
462
+ <div class="line"><a name="l00464"></a><span class="lineno"> 464</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>
463
+ <div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160; <span class="keywordflow">if</span> (obj-&gt;<a class="code" href="classSVF_1_1MemObj.html#a1a4ff4aaaf2573240a318e1b79328cd0">isConstDataOrConstGlobal</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>
464
+ <div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160; {</div>
465
+ <div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFConstantInt.html">SVFConstantInt</a> *consInt = SVFUtil::dyn_cast&lt;SVFConstantInt&gt;(obj-&gt;<a class="code" href="classSVF_1_1MemObj.html#a2f70e9c830b18f25c56b530722f106c4">getValue</a>()))</div>
466
+ <div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160; {</div>
467
+ <div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160; <span class="keywordtype">double</span> numeral = (double)consInt-&gt;getSExtValue();</div>
468
+ <div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160; <a class="code" href="classSVF_1_1IntervalExeState.html#a92b1b163493a74a31d30a261128edd05">IntervalExeState::globalES</a>[varId] = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(numeral, numeral);</div>
469
+ <div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160; }</div>
470
+ <div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFConstantFP.html">SVFConstantFP</a>* consFP = SVFUtil::dyn_cast&lt;SVFConstantFP&gt;(obj-&gt;<a class="code" href="classSVF_1_1MemObj.html#a2f70e9c830b18f25c56b530722f106c4">getValue</a>()))</div>
471
+ <div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160; <a class="code" href="classSVF_1_1IntervalExeState.html#a92b1b163493a74a31d30a261128edd05">IntervalExeState::globalES</a>[varId] = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(consFP-&gt;getFPValue(), consFP-&gt;getFPValue());</div>
472
+ <div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa&lt;SVFConstantNullPtr&gt;(obj-&gt;<a class="code" href="classSVF_1_1MemObj.html#a2f70e9c830b18f25c56b530722f106c4">getValue</a>()))</div>
473
+ <div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160; <a class="code" href="classSVF_1_1IntervalExeState.html#a92b1b163493a74a31d30a261128edd05">IntervalExeState::globalES</a>[varId] = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(0, 0);</div>
474
+ <div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa&lt;SVFGlobalValue&gt;(obj-&gt;<a class="code" href="classSVF_1_1MemObj.html#a2f70e9c830b18f25c56b530722f106c4">getValue</a>()))</div>
475
+ <div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160; <a class="code" href="classSVF_1_1IntervalExeState.html#a92b1b163493a74a31d30a261128edd05">IntervalExeState::globalES</a>.<a class="code" href="classSVF_1_1IntervalExeState.html#a36e15d9d95908b74fcf321e30a9cdebe">getVAddrs</a>(varId).<a class="code" href="classSVF_1_1AddressValue.html#a40c67147606ab95dd3318d0fe821d8c0">insert</a>(getVirtualMemAddress(varId));</div>
476
+ <div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (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>
477
+ <div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160; <a class="code" href="classSVF_1_1IntervalExeState.html#a92b1b163493a74a31d30a261128edd05">IntervalExeState::globalES</a>[varId] = <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div>
478
+ <div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160; <span class="keywordflow">else</span></div>
479
+ <div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160; <a class="code" href="classSVF_1_1IntervalExeState.html#a92b1b163493a74a31d30a261128edd05">IntervalExeState::globalES</a>[varId] = <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div>
480
+ <div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160; }</div>
481
+ <div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160; <span class="keywordflow">else</span></div>
482
+ <div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160; <a class="code" href="classSVF_1_1IntervalExeState.html#a92b1b163493a74a31d30a261128edd05">IntervalExeState::globalES</a>.<a class="code" href="classSVF_1_1IntervalExeState.html#a36e15d9d95908b74fcf321e30a9cdebe">getVAddrs</a>(varId).<a class="code" href="classSVF_1_1AddressValue.html#a40c67147606ab95dd3318d0fe821d8c0">insert</a>(getVirtualMemAddress(varId));</div>
483
+ <div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160; }</div>
484
+ <div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160; <span class="keywordflow">else</span></div>
485
+ <div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160; <a class="code" href="classSVF_1_1IntervalExeState.html#a92b1b163493a74a31d30a261128edd05">IntervalExeState::globalES</a>.<a class="code" href="classSVF_1_1IntervalExeState.html#a36e15d9d95908b74fcf321e30a9cdebe">getVAddrs</a>(varId).<a class="code" href="classSVF_1_1AddressValue.html#a40c67147606ab95dd3318d0fe821d8c0">insert</a>(getVirtualMemAddress(varId));</div>
486
+ <div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160;}</div>
487
+ <div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160; </div>
488
+ <div class="line"><a name="l00491"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2ItvExeState.html#af5d05c5316127cfe8d975a3a0a23798b"> 491</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#af5d05c5316127cfe8d975a3a0a23798b">SVFIR2ItvExeState::initSVFVar</a>(<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> varId)</div>
489
+ <div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160;{</div>
490
+ <div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160; <span class="keywordflow">if</span> (inVarToIValTable(varId) || _es.inVarToAddrsTable(varId)) <span class="keywordflow">return</span>;</div>
491
+ <div class="line"><a name="l00494"></a><span class="lineno"> 494</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>
492
+ <div class="line"><a name="l00495"></a><span class="lineno"> 495</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>
493
+ <div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160; <span class="comment">// write objvar into cache instead of exestate</span></div>
494
+ <div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160; <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>
495
+ <div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160; {</div>
496
+ <div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160; initObjVar(objVar, varId);</div>
497
+ <div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160; <span class="keywordflow">return</span>;</div>
498
+ <div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160; }</div>
499
+ <div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160; <span class="keywordflow">else</span> <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>
500
+ <div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160; {</div>
501
+ <div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160; initValVar(valVar, varId);</div>
502
+ <div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160; <span class="keywordflow">return</span>;</div>
503
+ <div class="line"><a name="l00506"></a><span class="lineno"> 506</span>&#160; }</div>
504
+ <div class="line"><a name="l00507"></a><span class="lineno"> 507</span>&#160; <span class="keywordflow">else</span></div>
505
+ <div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160; {</div>
506
+ <div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160; initValVar(valVar, varId);</div>
507
+ <div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160; <span class="keywordflow">return</span>;</div>
508
+ <div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160; }</div>
509
+ <div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160;}</div>
510
+ <div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160; </div>
511
+ <div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160; </div>
512
+ <div class="line"><a name="l00515"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2ItvExeState.html#af7f42ee51b03b1aaaee18f10eec0c2b9"> 515</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#af7f42ee51b03b1aaaee18f10eec0c2b9">SVFIR2ItvExeState::translateAddr</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1AddrStmt.html">AddrStmt</a> *addr)</div>
513
+ <div class="line"><a name="l00516"></a><span class="lineno"> 516</span>&#160;{</div>
514
+ <div class="line"><a name="l00517"></a><span class="lineno"> 517</span>&#160; initSVFVar(addr-&gt;<a class="code" href="classSVF_1_1AssignStmt.html#a4cec89489e82c60c287cae3327f3f01d">getRHSVarID</a>());</div>
515
+ <div class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160; <span class="keywordflow">if</span> (inVarToIValTable(addr-&gt;<a class="code" href="classSVF_1_1AssignStmt.html#a4cec89489e82c60c287cae3327f3f01d">getRHSVarID</a>()))</div>
516
+ <div class="line"><a name="l00519"></a><span class="lineno"> 519</span>&#160; {</div>
517
+ <div class="line"><a name="l00520"></a><span class="lineno"> 520</span>&#160; <a class="code" href="classSVF_1_1IntervalExeState.html#a92b1b163493a74a31d30a261128edd05">IntervalExeState::globalES</a>[addr-&gt;<a class="code" href="classSVF_1_1AssignStmt.html#a98f731be7be9bc8e7fd09f5c2204c840">getLHSVarID</a>()] = <a class="code" href="classSVF_1_1IntervalExeState.html#a92b1b163493a74a31d30a261128edd05">IntervalExeState::globalES</a>[addr-&gt;<a class="code" href="classSVF_1_1AssignStmt.html#a4cec89489e82c60c287cae3327f3f01d">getRHSVarID</a>()];</div>
518
+ <div class="line"><a name="l00521"></a><span class="lineno"> 521</span>&#160; }</div>
519
+ <div class="line"><a name="l00522"></a><span class="lineno"> 522</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (inVarToAddrsTable(addr-&gt;<a class="code" href="classSVF_1_1AssignStmt.html#a4cec89489e82c60c287cae3327f3f01d">getRHSVarID</a>()))</div>
520
+ <div class="line"><a name="l00523"></a><span class="lineno"> 523</span>&#160; {</div>
521
+ <div class="line"><a name="l00524"></a><span class="lineno"> 524</span>&#160; <a class="code" href="classSVF_1_1IntervalExeState.html#a92b1b163493a74a31d30a261128edd05">IntervalExeState::globalES</a>.<a class="code" href="classSVF_1_1IntervalExeState.html#a36e15d9d95908b74fcf321e30a9cdebe">getVAddrs</a>(addr-&gt;<a class="code" href="classSVF_1_1AssignStmt.html#a98f731be7be9bc8e7fd09f5c2204c840">getLHSVarID</a>()) = <a class="code" href="classSVF_1_1IntervalExeState.html#a92b1b163493a74a31d30a261128edd05">IntervalExeState::globalES</a>.<a class="code" href="classSVF_1_1IntervalExeState.html#a36e15d9d95908b74fcf321e30a9cdebe">getVAddrs</a>(</div>
522
+ <div class="line"><a name="l00525"></a><span class="lineno"> 525</span>&#160; addr-&gt;<a class="code" href="classSVF_1_1AssignStmt.html#a4cec89489e82c60c287cae3327f3f01d">getRHSVarID</a>());</div>
523
+ <div class="line"><a name="l00526"></a><span class="lineno"> 526</span>&#160; }</div>
524
+ <div class="line"><a name="l00527"></a><span class="lineno"> 527</span>&#160; <span class="keywordflow">else</span></div>
525
+ <div class="line"><a name="l00528"></a><span class="lineno"> 528</span>&#160; {</div>
526
+ <div class="line"><a name="l00529"></a><span class="lineno"> 529</span>&#160; assert(<span class="keyword">false</span> &amp;&amp; <span class="stringliteral">&quot;not number or virtual addrs?&quot;</span>);</div>
527
+ <div class="line"><a name="l00530"></a><span class="lineno"> 530</span>&#160; }</div>
528
+ <div class="line"><a name="l00531"></a><span class="lineno"> 531</span>&#160;}</div>
529
+ <div class="line"><a name="l00532"></a><span class="lineno"> 532</span>&#160; </div>
530
+ <div class="line"><a name="l00533"></a><span class="lineno"> 533</span>&#160; </div>
531
+ <div class="line"><a name="l00534"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2ItvExeState.html#a449ee8f244120866037c7f6d2ee5fc13"> 534</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a449ee8f244120866037c7f6d2ee5fc13">SVFIR2ItvExeState::translateBinary</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html">BinaryOPStmt</a> *binary)</div>
532
+ <div class="line"><a name="l00535"></a><span class="lineno"> 535</span>&#160;{</div>
533
+ <div class="line"><a name="l00536"></a><span class="lineno"> 536</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> op0 = binary-&gt;<a class="code" href="classSVF_1_1MultiOpndStmt.html#a5c6efcc023e90ef2e618586091958c59">getOpVarID</a>(0);</div>
534
+ <div class="line"><a name="l00537"></a><span class="lineno"> 537</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> op1 = binary-&gt;<a class="code" href="classSVF_1_1MultiOpndStmt.html#a5c6efcc023e90ef2e618586091958c59">getOpVarID</a>(1);</div>
535
+ <div class="line"><a name="l00538"></a><span class="lineno"> 538</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> res = binary-&gt;<a class="code" href="classSVF_1_1MultiOpndStmt.html#a71a530eb9fa9f7e273e471b4a75a039e">getResID</a>();</div>
536
+ <div class="line"><a name="l00539"></a><span class="lineno"> 539</span>&#160; <span class="keywordflow">if</span> (!inVarToIValTable(op0)) _es[op0] = <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div>
537
+ <div class="line"><a name="l00540"></a><span class="lineno"> 540</span>&#160; <span class="keywordflow">if</span> (!inVarToIValTable(op1)) _es[op1] = <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div>
538
+ <div class="line"><a name="l00541"></a><span class="lineno"> 541</span>&#160; <span class="keywordflow">if</span> (inVarToIValTable(op0) &amp;&amp; inVarToIValTable(op1))</div>
539
+ <div class="line"><a name="l00542"></a><span class="lineno"> 542</span>&#160; {</div>
540
+ <div class="line"><a name="l00543"></a><span class="lineno"> 543</span>&#160; <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> &amp;lhs = _es[op0], &amp;rhs = _es[op1];</div>
541
+ <div class="line"><a name="l00544"></a><span class="lineno"> 544</span>&#160; <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> resVal;</div>
542
+ <div class="line"><a name="l00545"></a><span class="lineno"> 545</span>&#160; <span class="keywordflow">switch</span> (binary-&gt;<a class="code" href="classSVF_1_1BinaryOPStmt.html#ad0a7c5e87355d7a83176343322db448f">getOpcode</a>())</div>
543
+ <div class="line"><a name="l00546"></a><span class="lineno"> 546</span>&#160; {</div>
544
+ <div class="line"><a name="l00547"></a><span class="lineno"> 547</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a06926877b6c25931a409224497753862">BinaryOPStmt::Add</a>:</div>
545
+ <div class="line"><a name="l00548"></a><span class="lineno"> 548</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a97c70ced12e0f1c5e3c3708b13727e8e">BinaryOPStmt::FAdd</a>:</div>
546
+ <div class="line"><a name="l00549"></a><span class="lineno"> 549</span>&#160; resVal = (lhs + rhs);</div>
547
+ <div class="line"><a name="l00550"></a><span class="lineno"> 550</span>&#160; <span class="keywordflow">break</span>;</div>
548
+ <div class="line"><a name="l00551"></a><span class="lineno"> 551</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a758382a3b40e116175ca321fa4449d7f">BinaryOPStmt::Sub</a>:</div>
549
+ <div class="line"><a name="l00552"></a><span class="lineno"> 552</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a05348a0e3f232ac552bb3ca56525c448">BinaryOPStmt::FSub</a>:</div>
550
+ <div class="line"><a name="l00553"></a><span class="lineno"> 553</span>&#160; resVal = (lhs - rhs);</div>
607
551
  <div class="line"><a name="l00554"></a><span class="lineno"> 554</span>&#160; <span class="keywordflow">break</span>;</div>
608
- <div class="line"><a name="l00555"></a><span class="lineno"> 555</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a193780e40cee5123c543b6f739b3b46b">BinaryOPStmt::Shl</a>:</div>
609
- <div class="line"><a name="l00556"></a><span class="lineno"> 556</span>&#160; resVal = (lhs &lt;&lt; rhs);</div>
610
- <div class="line"><a name="l00557"></a><span class="lineno"> 557</span>&#160; <span class="keywordflow">break</span>;</div>
611
- <div class="line"><a name="l00558"></a><span class="lineno"> 558</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a0bf768bb67e7f6f5ee6302bb6dd71da1">BinaryOPStmt::LShr</a>:</div>
612
- <div class="line"><a name="l00559"></a><span class="lineno"> 559</span>&#160; resVal = (lhs &gt;&gt; rhs);</div>
613
- <div class="line"><a name="l00560"></a><span class="lineno"> 560</span>&#160; <span class="keywordflow">break</span>;</div>
614
- <div class="line"><a name="l00561"></a><span class="lineno"> 561</span>&#160; <span class="keywordflow">default</span>:</div>
615
- <div class="line"><a name="l00562"></a><span class="lineno"> 562</span>&#160; {</div>
616
- <div class="line"><a name="l00563"></a><span class="lineno"> 563</span>&#160; assert(<span class="keyword">false</span> &amp;&amp; <span class="stringliteral">&quot;undefined binary: &quot;</span>);</div>
617
- <div class="line"><a name="l00564"></a><span class="lineno"> 564</span>&#160; }</div>
618
- <div class="line"><a name="l00565"></a><span class="lineno"> 565</span>&#160; }</div>
619
- <div class="line"><a name="l00566"></a><span class="lineno"> 566</span>&#160; _es[res] = resVal;</div>
620
- <div class="line"><a name="l00567"></a><span class="lineno"> 567</span>&#160; }</div>
621
- <div class="line"><a name="l00568"></a><span class="lineno"> 568</span>&#160;}</div>
622
- <div class="line"><a name="l00569"></a><span class="lineno"> 569</span>&#160; </div>
623
- <div class="line"><a name="l00570"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2ItvExeState.html#aac5cc8767eb750bf121f1897788dee24"> 570</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#aac5cc8767eb750bf121f1897788dee24">SVFIR2ItvExeState::translateCmp</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CmpStmt.html">CmpStmt</a> *cmp)</div>
624
- <div class="line"><a name="l00571"></a><span class="lineno"> 571</span>&#160;{</div>
625
- <div class="line"><a name="l00572"></a><span class="lineno"> 572</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> op0 = cmp-&gt;<a class="code" href="classSVF_1_1MultiOpndStmt.html#a5c6efcc023e90ef2e618586091958c59">getOpVarID</a>(0);</div>
626
- <div class="line"><a name="l00573"></a><span class="lineno"> 573</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> op1 = cmp-&gt;<a class="code" href="classSVF_1_1MultiOpndStmt.html#a5c6efcc023e90ef2e618586091958c59">getOpVarID</a>(1);</div>
627
- <div class="line"><a name="l00574"></a><span class="lineno"> 574</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> res = cmp-&gt;<a class="code" href="classSVF_1_1MultiOpndStmt.html#a71a530eb9fa9f7e273e471b4a75a039e">getResID</a>();</div>
628
- <div class="line"><a name="l00575"></a><span class="lineno"> 575</span>&#160; <span class="keywordflow">if</span> (inVarToIValTable(op0) &amp;&amp; inVarToIValTable(op1))</div>
629
- <div class="line"><a name="l00576"></a><span class="lineno"> 576</span>&#160; {</div>
630
- <div class="line"><a name="l00577"></a><span class="lineno"> 577</span>&#160; <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> resVal;</div>
631
- <div class="line"><a name="l00578"></a><span class="lineno"> 578</span>&#160; <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> &amp;lhs = _es[op0], &amp;rhs = _es[op1];</div>
632
- <div class="line"><a name="l00579"></a><span class="lineno"> 579</span>&#160; <span class="keyword">auto</span> predicate = cmp-&gt;<a class="code" href="classSVF_1_1CmpStmt.html#aa6a21fb1cfbc263bb38651176c495632">getPredicate</a>();</div>
633
- <div class="line"><a name="l00580"></a><span class="lineno"> 580</span>&#160; <span class="keywordflow">switch</span> (predicate)</div>
634
- <div class="line"><a name="l00581"></a><span class="lineno"> 581</span>&#160; {</div>
635
- <div class="line"><a name="l00582"></a><span class="lineno"> 582</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acafa5a0ab60aff74a8d653c3f9fac04936">CmpStmt::ICMP_EQ</a>:</div>
636
- <div class="line"><a name="l00583"></a><span class="lineno"> 583</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca900bbc9c7824294c3a69c2cb006c27ee">CmpStmt::FCMP_OEQ</a>:</div>
637
- <div class="line"><a name="l00584"></a><span class="lineno"> 584</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca2793f23e72e3ff432bf193adf0f1b021">CmpStmt::FCMP_UEQ</a>:</div>
638
- <div class="line"><a name="l00585"></a><span class="lineno"> 585</span>&#160; resVal = (lhs == rhs);</div>
552
+ <div class="line"><a name="l00555"></a><span class="lineno"> 555</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a787e5771d6e70f3cbec3e2a33f5a4e8a">BinaryOPStmt::Mul</a>:</div>
553
+ <div class="line"><a name="l00556"></a><span class="lineno"> 556</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a22a047e74227056ef3340628fae80198">BinaryOPStmt::FMul</a>:</div>
554
+ <div class="line"><a name="l00557"></a><span class="lineno"> 557</span>&#160; resVal = (lhs * rhs);</div>
555
+ <div class="line"><a name="l00558"></a><span class="lineno"> 558</span>&#160; <span class="keywordflow">break</span>;</div>
556
+ <div class="line"><a name="l00559"></a><span class="lineno"> 559</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a7a4ce4e97992d92ac044456e66821552">BinaryOPStmt::SDiv</a>:</div>
557
+ <div class="line"><a name="l00560"></a><span class="lineno"> 560</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a553540425a63724c8b7f2fd0ca25b567">BinaryOPStmt::FDiv</a>:</div>
558
+ <div class="line"><a name="l00561"></a><span class="lineno"> 561</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6ad2f8b02de2c62175d3341be92a925250">BinaryOPStmt::UDiv</a>:</div>
559
+ <div class="line"><a name="l00562"></a><span class="lineno"> 562</span>&#160; resVal = (lhs / rhs);</div>
560
+ <div class="line"><a name="l00563"></a><span class="lineno"> 563</span>&#160; <span class="keywordflow">break</span>;</div>
561
+ <div class="line"><a name="l00564"></a><span class="lineno"> 564</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6ad2db0456c9943dd75aa091cb19040448">BinaryOPStmt::SRem</a>:</div>
562
+ <div class="line"><a name="l00565"></a><span class="lineno"> 565</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6aafa66e75600b0098c4fa3304720cb7a6">BinaryOPStmt::FRem</a>:</div>
563
+ <div class="line"><a name="l00566"></a><span class="lineno"> 566</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6af7dba9dda5edcee046ca81fb184858bc">BinaryOPStmt::URem</a>:</div>
564
+ <div class="line"><a name="l00567"></a><span class="lineno"> 567</span>&#160; resVal = (lhs % rhs);</div>
565
+ <div class="line"><a name="l00568"></a><span class="lineno"> 568</span>&#160; <span class="keywordflow">break</span>;</div>
566
+ <div class="line"><a name="l00569"></a><span class="lineno"> 569</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6ac89b793572db14a3c018122cf9fc79d6">BinaryOPStmt::Xor</a>:</div>
567
+ <div class="line"><a name="l00570"></a><span class="lineno"> 570</span>&#160; resVal = (lhs ^ rhs);</div>
568
+ <div class="line"><a name="l00571"></a><span class="lineno"> 571</span>&#160; <span class="keywordflow">break</span>;</div>
569
+ <div class="line"><a name="l00572"></a><span class="lineno"> 572</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a0df258a85e260bcb9534ae1b650e1856">BinaryOPStmt::And</a>:</div>
570
+ <div class="line"><a name="l00573"></a><span class="lineno"> 573</span>&#160; resVal = (lhs &amp; rhs);</div>
571
+ <div class="line"><a name="l00574"></a><span class="lineno"> 574</span>&#160; <span class="keywordflow">break</span>;</div>
572
+ <div class="line"><a name="l00575"></a><span class="lineno"> 575</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a90745e5effc8b7ef43c693d1e4fa7dbe">BinaryOPStmt::Or</a>:</div>
573
+ <div class="line"><a name="l00576"></a><span class="lineno"> 576</span>&#160; resVal = (lhs | rhs);</div>
574
+ <div class="line"><a name="l00577"></a><span class="lineno"> 577</span>&#160; <span class="keywordflow">break</span>;</div>
575
+ <div class="line"><a name="l00578"></a><span class="lineno"> 578</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6ac988853383e1588cf568687848e73576">BinaryOPStmt::AShr</a>:</div>
576
+ <div class="line"><a name="l00579"></a><span class="lineno"> 579</span>&#160; resVal = (lhs &gt;&gt; rhs);</div>
577
+ <div class="line"><a name="l00580"></a><span class="lineno"> 580</span>&#160; <span class="keywordflow">break</span>;</div>
578
+ <div class="line"><a name="l00581"></a><span class="lineno"> 581</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a193780e40cee5123c543b6f739b3b46b">BinaryOPStmt::Shl</a>:</div>
579
+ <div class="line"><a name="l00582"></a><span class="lineno"> 582</span>&#160; resVal = (lhs &lt;&lt; rhs);</div>
580
+ <div class="line"><a name="l00583"></a><span class="lineno"> 583</span>&#160; <span class="keywordflow">break</span>;</div>
581
+ <div class="line"><a name="l00584"></a><span class="lineno"> 584</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a0bf768bb67e7f6f5ee6302bb6dd71da1">BinaryOPStmt::LShr</a>:</div>
582
+ <div class="line"><a name="l00585"></a><span class="lineno"> 585</span>&#160; resVal = (lhs &gt;&gt; rhs);</div>
639
583
  <div class="line"><a name="l00586"></a><span class="lineno"> 586</span>&#160; <span class="keywordflow">break</span>;</div>
640
- <div class="line"><a name="l00587"></a><span class="lineno"> 587</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca6eef834451ec753add639be49c51f03f">CmpStmt::ICMP_NE</a>:</div>
641
- <div class="line"><a name="l00588"></a><span class="lineno"> 588</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca2a3ce0c02931984d92d70356efc49193">CmpStmt::FCMP_ONE</a>:</div>
642
- <div class="line"><a name="l00589"></a><span class="lineno"> 589</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acad23a87cb6f2b3b2486a9a1277b491c09">CmpStmt::FCMP_UNE</a>:</div>
643
- <div class="line"><a name="l00590"></a><span class="lineno"> 590</span>&#160; resVal = (lhs != rhs);</div>
644
- <div class="line"><a name="l00591"></a><span class="lineno"> 591</span>&#160; <span class="keywordflow">break</span>;</div>
645
- <div class="line"><a name="l00592"></a><span class="lineno"> 592</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca8d59d9d7f39bb9c8b1e3dcebe0c5dc48">CmpStmt::ICMP_UGT</a>:</div>
646
- <div class="line"><a name="l00593"></a><span class="lineno"> 593</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca229d105d0841dc895811b29af62a91ee">CmpStmt::ICMP_SGT</a>:</div>
647
- <div class="line"><a name="l00594"></a><span class="lineno"> 594</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca6121702881c763c3c8cd3e30dedc7486">CmpStmt::FCMP_OGT</a>:</div>
648
- <div class="line"><a name="l00595"></a><span class="lineno"> 595</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca3873c41e060b95cb37eac587402b597c">CmpStmt::FCMP_UGT</a>:</div>
649
- <div class="line"><a name="l00596"></a><span class="lineno"> 596</span>&#160; resVal = (lhs &gt; rhs);</div>
650
- <div class="line"><a name="l00597"></a><span class="lineno"> 597</span>&#160; <span class="keywordflow">break</span>;</div>
651
- <div class="line"><a name="l00598"></a><span class="lineno"> 598</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca3428808abe683bfc6bb0267077cdb128">CmpStmt::ICMP_UGE</a>:</div>
652
- <div class="line"><a name="l00599"></a><span class="lineno"> 599</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acac5a87d53b1ad255cec18b3784cd81f80">CmpStmt::ICMP_SGE</a>:</div>
653
- <div class="line"><a name="l00600"></a><span class="lineno"> 600</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca5c4576ce636e323cbc3aa322480c5d2c">CmpStmt::FCMP_OGE</a>:</div>
654
- <div class="line"><a name="l00601"></a><span class="lineno"> 601</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acac0e2d9db5453eb8be7543fb4315003da">CmpStmt::FCMP_UGE</a>:</div>
655
- <div class="line"><a name="l00602"></a><span class="lineno"> 602</span>&#160; resVal = (lhs &gt;= rhs);</div>
656
- <div class="line"><a name="l00603"></a><span class="lineno"> 603</span>&#160; <span class="keywordflow">break</span>;</div>
657
- <div class="line"><a name="l00604"></a><span class="lineno"> 604</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca7833b647068883840c9bb438103e736d">CmpStmt::ICMP_ULT</a>:</div>
658
- <div class="line"><a name="l00605"></a><span class="lineno"> 605</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca88d74bf66465f4fdd221db0c11d62927">CmpStmt::ICMP_SLT</a>:</div>
659
- <div class="line"><a name="l00606"></a><span class="lineno"> 606</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca5e3cf3105b8f13da66719856579956fa">CmpStmt::FCMP_OLT</a>:</div>
660
- <div class="line"><a name="l00607"></a><span class="lineno"> 607</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acaa6b852204a4d0758ebd632d8a88b966d">CmpStmt::FCMP_ULT</a>:</div>
661
- <div class="line"><a name="l00608"></a><span class="lineno"> 608</span>&#160; resVal = (lhs &lt; rhs);</div>
662
- <div class="line"><a name="l00609"></a><span class="lineno"> 609</span>&#160; <span class="keywordflow">break</span>;</div>
663
- <div class="line"><a name="l00610"></a><span class="lineno"> 610</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca56a20e408f9639234e4a11036764a38f">CmpStmt::ICMP_ULE</a>:</div>
664
- <div class="line"><a name="l00611"></a><span class="lineno"> 611</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acaeeae52f8d195815edfb8c85037d246d6">CmpStmt::ICMP_SLE</a>:</div>
665
- <div class="line"><a name="l00612"></a><span class="lineno"> 612</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca9dd165c6da06811ffc8c2e53b30ab32d">CmpStmt::FCMP_OLE</a>:</div>
666
- <div class="line"><a name="l00613"></a><span class="lineno"> 613</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca8149cba2e9e265892f02bbd4a35fe6fb">CmpStmt::FCMP_ULE</a>:</div>
667
- <div class="line"><a name="l00614"></a><span class="lineno"> 614</span>&#160; resVal = (lhs &lt;= rhs);</div>
668
- <div class="line"><a name="l00615"></a><span class="lineno"> 615</span>&#160; <span class="keywordflow">break</span>;</div>
669
- <div class="line"><a name="l00616"></a><span class="lineno"> 616</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acaa100cf99398f6118d332191380574c06">CmpStmt::FCMP_FALSE</a>:</div>
670
- <div class="line"><a name="l00617"></a><span class="lineno"> 617</span>&#160; resVal = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(0, 0);</div>
671
- <div class="line"><a name="l00618"></a><span class="lineno"> 618</span>&#160; <span class="keywordflow">break</span>;</div>
672
- <div class="line"><a name="l00619"></a><span class="lineno"> 619</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca7234c9a242034a71d0bdcb54aeec6da7">CmpStmt::FCMP_TRUE</a>:</div>
673
- <div class="line"><a name="l00620"></a><span class="lineno"> 620</span>&#160; resVal = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(1, 1);</div>
674
- <div class="line"><a name="l00621"></a><span class="lineno"> 621</span>&#160; <span class="keywordflow">break</span>;</div>
675
- <div class="line"><a name="l00622"></a><span class="lineno"> 622</span>&#160; <span class="keywordflow">default</span>:</div>
676
- <div class="line"><a name="l00623"></a><span class="lineno"> 623</span>&#160; {</div>
677
- <div class="line"><a name="l00624"></a><span class="lineno"> 624</span>&#160; assert(<span class="keyword">false</span> &amp;&amp; <span class="stringliteral">&quot;undefined compare: &quot;</span>);</div>
678
- <div class="line"><a name="l00625"></a><span class="lineno"> 625</span>&#160; }</div>
679
- <div class="line"><a name="l00626"></a><span class="lineno"> 626</span>&#160; }</div>
680
- <div class="line"><a name="l00627"></a><span class="lineno"> 627</span>&#160; _es[res] = resVal;</div>
681
- <div class="line"><a name="l00628"></a><span class="lineno"> 628</span>&#160; }</div>
682
- <div class="line"><a name="l00629"></a><span class="lineno"> 629</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (inVarToAddrsTable(op0) &amp;&amp; inVarToAddrsTable(op1))</div>
683
- <div class="line"><a name="l00630"></a><span class="lineno"> 630</span>&#160; {</div>
684
- <div class="line"><a name="l00631"></a><span class="lineno"> 631</span>&#160; <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> resVal;</div>
685
- <div class="line"><a name="l00632"></a><span class="lineno"> 632</span>&#160; <a class="code" href="classSVF_1_1AddressValue.html">VAddrs</a> &amp;lhs = getVAddrs(op0), &amp;rhs = getVAddrs(op1);</div>
686
- <div class="line"><a name="l00633"></a><span class="lineno"> 633</span>&#160; assert(!lhs.<a class="code" href="classSVF_1_1AddressValue.html#aa7291f4b74bb824fb38b8c383fa0b6a0">empty</a>() &amp;&amp; !rhs.empty() &amp;&amp; <span class="stringliteral">&quot;empty address?&quot;</span>);</div>
687
- <div class="line"><a name="l00634"></a><span class="lineno"> 634</span>&#160; <span class="keyword">auto</span> predicate = cmp-&gt;<a class="code" href="classSVF_1_1CmpStmt.html#aa6a21fb1cfbc263bb38651176c495632">getPredicate</a>();</div>
688
- <div class="line"><a name="l00635"></a><span class="lineno"> 635</span>&#160; <span class="keywordflow">switch</span> (predicate)</div>
689
- <div class="line"><a name="l00636"></a><span class="lineno"> 636</span>&#160; {</div>
690
- <div class="line"><a name="l00637"></a><span class="lineno"> 637</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acafa5a0ab60aff74a8d653c3f9fac04936">CmpStmt::ICMP_EQ</a>:</div>
691
- <div class="line"><a name="l00638"></a><span class="lineno"> 638</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca900bbc9c7824294c3a69c2cb006c27ee">CmpStmt::FCMP_OEQ</a>:</div>
692
- <div class="line"><a name="l00639"></a><span class="lineno"> 639</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca2793f23e72e3ff432bf193adf0f1b021">CmpStmt::FCMP_UEQ</a>:</div>
693
- <div class="line"><a name="l00640"></a><span class="lineno"> 640</span>&#160; {</div>
694
- <div class="line"><a name="l00641"></a><span class="lineno"> 641</span>&#160; <span class="keywordflow">if</span> (lhs.<a class="code" href="classSVF_1_1AddressValue.html#ae93859318bf4f618b4cf681988a870ce">size</a>() == 1 &amp;&amp; rhs.size() == 1)</div>
695
- <div class="line"><a name="l00642"></a><span class="lineno"> 642</span>&#160; {</div>
696
- <div class="line"><a name="l00643"></a><span class="lineno"> 643</span>&#160; resVal = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(lhs.<a class="code" href="classSVF_1_1AddressValue.html#a04456fe47889dd8f1b712255c9598fe9">equals</a>(rhs));</div>
697
- <div class="line"><a name="l00644"></a><span class="lineno"> 644</span>&#160; }</div>
698
- <div class="line"><a name="l00645"></a><span class="lineno"> 645</span>&#160; <span class="keywordflow">else</span></div>
699
- <div class="line"><a name="l00646"></a><span class="lineno"> 646</span>&#160; {</div>
700
- <div class="line"><a name="l00647"></a><span class="lineno"> 647</span>&#160; <span class="keywordflow">if</span> (lhs.<a class="code" href="classSVF_1_1AddressValue.html#a269a73753a7b495eb08bb0c9c0a58dc0">hasIntersect</a>(rhs))</div>
701
- <div class="line"><a name="l00648"></a><span class="lineno"> 648</span>&#160; {</div>
702
- <div class="line"><a name="l00649"></a><span class="lineno"> 649</span>&#160; resVal = <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div>
703
- <div class="line"><a name="l00650"></a><span class="lineno"> 650</span>&#160; }</div>
704
- <div class="line"><a name="l00651"></a><span class="lineno"> 651</span>&#160; <span class="keywordflow">else</span></div>
705
- <div class="line"><a name="l00652"></a><span class="lineno"> 652</span>&#160; {</div>
706
- <div class="line"><a name="l00653"></a><span class="lineno"> 653</span>&#160; resVal = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(0);</div>
707
- <div class="line"><a name="l00654"></a><span class="lineno"> 654</span>&#160; }</div>
708
- <div class="line"><a name="l00655"></a><span class="lineno"> 655</span>&#160; }</div>
709
- <div class="line"><a name="l00656"></a><span class="lineno"> 656</span>&#160; <span class="keywordflow">break</span>;</div>
710
- <div class="line"><a name="l00657"></a><span class="lineno"> 657</span>&#160; }</div>
711
- <div class="line"><a name="l00658"></a><span class="lineno"> 658</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca6eef834451ec753add639be49c51f03f">CmpStmt::ICMP_NE</a>:</div>
712
- <div class="line"><a name="l00659"></a><span class="lineno"> 659</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca2a3ce0c02931984d92d70356efc49193">CmpStmt::FCMP_ONE</a>:</div>
713
- <div class="line"><a name="l00660"></a><span class="lineno"> 660</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acad23a87cb6f2b3b2486a9a1277b491c09">CmpStmt::FCMP_UNE</a>:</div>
714
- <div class="line"><a name="l00661"></a><span class="lineno"> 661</span>&#160; {</div>
715
- <div class="line"><a name="l00662"></a><span class="lineno"> 662</span>&#160; <span class="keywordflow">if</span> (lhs.<a class="code" href="classSVF_1_1AddressValue.html#ae93859318bf4f618b4cf681988a870ce">size</a>() == 1 &amp;&amp; rhs.size() == 1)</div>
716
- <div class="line"><a name="l00663"></a><span class="lineno"> 663</span>&#160; {</div>
717
- <div class="line"><a name="l00664"></a><span class="lineno"> 664</span>&#160; resVal = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(!lhs.<a class="code" href="classSVF_1_1AddressValue.html#a04456fe47889dd8f1b712255c9598fe9">equals</a>(rhs));</div>
718
- <div class="line"><a name="l00665"></a><span class="lineno"> 665</span>&#160; }</div>
719
- <div class="line"><a name="l00666"></a><span class="lineno"> 666</span>&#160; <span class="keywordflow">else</span></div>
720
- <div class="line"><a name="l00667"></a><span class="lineno"> 667</span>&#160; {</div>
721
- <div class="line"><a name="l00668"></a><span class="lineno"> 668</span>&#160; <span class="keywordflow">if</span> (lhs.<a class="code" href="classSVF_1_1AddressValue.html#a269a73753a7b495eb08bb0c9c0a58dc0">hasIntersect</a>(rhs))</div>
722
- <div class="line"><a name="l00669"></a><span class="lineno"> 669</span>&#160; {</div>
723
- <div class="line"><a name="l00670"></a><span class="lineno"> 670</span>&#160; resVal = <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div>
724
- <div class="line"><a name="l00671"></a><span class="lineno"> 671</span>&#160; }</div>
725
- <div class="line"><a name="l00672"></a><span class="lineno"> 672</span>&#160; <span class="keywordflow">else</span></div>
726
- <div class="line"><a name="l00673"></a><span class="lineno"> 673</span>&#160; {</div>
727
- <div class="line"><a name="l00674"></a><span class="lineno"> 674</span>&#160; resVal = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(1);</div>
728
- <div class="line"><a name="l00675"></a><span class="lineno"> 675</span>&#160; }</div>
729
- <div class="line"><a name="l00676"></a><span class="lineno"> 676</span>&#160; }</div>
730
- <div class="line"><a name="l00677"></a><span class="lineno"> 677</span>&#160; <span class="keywordflow">break</span>;</div>
731
- <div class="line"><a name="l00678"></a><span class="lineno"> 678</span>&#160; }</div>
732
- <div class="line"><a name="l00679"></a><span class="lineno"> 679</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca8d59d9d7f39bb9c8b1e3dcebe0c5dc48">CmpStmt::ICMP_UGT</a>:</div>
733
- <div class="line"><a name="l00680"></a><span class="lineno"> 680</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca229d105d0841dc895811b29af62a91ee">CmpStmt::ICMP_SGT</a>:</div>
734
- <div class="line"><a name="l00681"></a><span class="lineno"> 681</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca6121702881c763c3c8cd3e30dedc7486">CmpStmt::FCMP_OGT</a>:</div>
735
- <div class="line"><a name="l00682"></a><span class="lineno"> 682</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca3873c41e060b95cb37eac587402b597c">CmpStmt::FCMP_UGT</a>:</div>
736
- <div class="line"><a name="l00683"></a><span class="lineno"> 683</span>&#160; {</div>
737
- <div class="line"><a name="l00684"></a><span class="lineno"> 684</span>&#160; <span class="keywordflow">if</span> (lhs.<a class="code" href="classSVF_1_1AddressValue.html#ae93859318bf4f618b4cf681988a870ce">size</a>() == 1 &amp;&amp; rhs.size() == 1)</div>
738
- <div class="line"><a name="l00685"></a><span class="lineno"> 685</span>&#160; {</div>
739
- <div class="line"><a name="l00686"></a><span class="lineno"> 686</span>&#160; resVal = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(*lhs.<a class="code" href="classSVF_1_1AddressValue.html#aed0b4789beda4980e4e215a65350f323">begin</a>() &gt; *rhs.begin());</div>
740
- <div class="line"><a name="l00687"></a><span class="lineno"> 687</span>&#160; }</div>
741
- <div class="line"><a name="l00688"></a><span class="lineno"> 688</span>&#160; <span class="keywordflow">else</span></div>
584
+ <div class="line"><a name="l00587"></a><span class="lineno"> 587</span>&#160; <span class="keywordflow">default</span>:</div>
585
+ <div class="line"><a name="l00588"></a><span class="lineno"> 588</span>&#160; {</div>
586
+ <div class="line"><a name="l00589"></a><span class="lineno"> 589</span>&#160; assert(<span class="keyword">false</span> &amp;&amp; <span class="stringliteral">&quot;undefined binary: &quot;</span>);</div>
587
+ <div class="line"><a name="l00590"></a><span class="lineno"> 590</span>&#160; }</div>
588
+ <div class="line"><a name="l00591"></a><span class="lineno"> 591</span>&#160; }</div>
589
+ <div class="line"><a name="l00592"></a><span class="lineno"> 592</span>&#160; _es[res] = resVal;</div>
590
+ <div class="line"><a name="l00593"></a><span class="lineno"> 593</span>&#160; }</div>
591
+ <div class="line"><a name="l00594"></a><span class="lineno"> 594</span>&#160;}</div>
592
+ <div class="line"><a name="l00595"></a><span class="lineno"> 595</span>&#160; </div>
593
+ <div class="line"><a name="l00596"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2ItvExeState.html#aac5cc8767eb750bf121f1897788dee24"> 596</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#aac5cc8767eb750bf121f1897788dee24">SVFIR2ItvExeState::translateCmp</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CmpStmt.html">CmpStmt</a> *cmp)</div>
594
+ <div class="line"><a name="l00597"></a><span class="lineno"> 597</span>&#160;{</div>
595
+ <div class="line"><a name="l00598"></a><span class="lineno"> 598</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> op0 = cmp-&gt;<a class="code" href="classSVF_1_1MultiOpndStmt.html#a5c6efcc023e90ef2e618586091958c59">getOpVarID</a>(0);</div>
596
+ <div class="line"><a name="l00599"></a><span class="lineno"> 599</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> op1 = cmp-&gt;<a class="code" href="classSVF_1_1MultiOpndStmt.html#a5c6efcc023e90ef2e618586091958c59">getOpVarID</a>(1);</div>
597
+ <div class="line"><a name="l00600"></a><span class="lineno"> 600</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> res = cmp-&gt;<a class="code" href="classSVF_1_1MultiOpndStmt.html#a71a530eb9fa9f7e273e471b4a75a039e">getResID</a>();</div>
598
+ <div class="line"><a name="l00601"></a><span class="lineno"> 601</span>&#160; <span class="keywordflow">if</span> (inVarToIValTable(op0) &amp;&amp; inVarToIValTable(op1))</div>
599
+ <div class="line"><a name="l00602"></a><span class="lineno"> 602</span>&#160; {</div>
600
+ <div class="line"><a name="l00603"></a><span class="lineno"> 603</span>&#160; <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> resVal;</div>
601
+ <div class="line"><a name="l00604"></a><span class="lineno"> 604</span>&#160; <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> &amp;lhs = _es[op0], &amp;rhs = _es[op1];</div>
602
+ <div class="line"><a name="l00605"></a><span class="lineno"> 605</span>&#160; <span class="keyword">auto</span> predicate = cmp-&gt;<a class="code" href="classSVF_1_1CmpStmt.html#aa6a21fb1cfbc263bb38651176c495632">getPredicate</a>();</div>
603
+ <div class="line"><a name="l00606"></a><span class="lineno"> 606</span>&#160; <span class="keywordflow">switch</span> (predicate)</div>
604
+ <div class="line"><a name="l00607"></a><span class="lineno"> 607</span>&#160; {</div>
605
+ <div class="line"><a name="l00608"></a><span class="lineno"> 608</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acafa5a0ab60aff74a8d653c3f9fac04936">CmpStmt::ICMP_EQ</a>:</div>
606
+ <div class="line"><a name="l00609"></a><span class="lineno"> 609</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca900bbc9c7824294c3a69c2cb006c27ee">CmpStmt::FCMP_OEQ</a>:</div>
607
+ <div class="line"><a name="l00610"></a><span class="lineno"> 610</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca2793f23e72e3ff432bf193adf0f1b021">CmpStmt::FCMP_UEQ</a>:</div>
608
+ <div class="line"><a name="l00611"></a><span class="lineno"> 611</span>&#160; resVal = (lhs == rhs);</div>
609
+ <div class="line"><a name="l00612"></a><span class="lineno"> 612</span>&#160; <span class="keywordflow">break</span>;</div>
610
+ <div class="line"><a name="l00613"></a><span class="lineno"> 613</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca6eef834451ec753add639be49c51f03f">CmpStmt::ICMP_NE</a>:</div>
611
+ <div class="line"><a name="l00614"></a><span class="lineno"> 614</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca2a3ce0c02931984d92d70356efc49193">CmpStmt::FCMP_ONE</a>:</div>
612
+ <div class="line"><a name="l00615"></a><span class="lineno"> 615</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acad23a87cb6f2b3b2486a9a1277b491c09">CmpStmt::FCMP_UNE</a>:</div>
613
+ <div class="line"><a name="l00616"></a><span class="lineno"> 616</span>&#160; resVal = (lhs != rhs);</div>
614
+ <div class="line"><a name="l00617"></a><span class="lineno"> 617</span>&#160; <span class="keywordflow">break</span>;</div>
615
+ <div class="line"><a name="l00618"></a><span class="lineno"> 618</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca8d59d9d7f39bb9c8b1e3dcebe0c5dc48">CmpStmt::ICMP_UGT</a>:</div>
616
+ <div class="line"><a name="l00619"></a><span class="lineno"> 619</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca229d105d0841dc895811b29af62a91ee">CmpStmt::ICMP_SGT</a>:</div>
617
+ <div class="line"><a name="l00620"></a><span class="lineno"> 620</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca6121702881c763c3c8cd3e30dedc7486">CmpStmt::FCMP_OGT</a>:</div>
618
+ <div class="line"><a name="l00621"></a><span class="lineno"> 621</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca3873c41e060b95cb37eac587402b597c">CmpStmt::FCMP_UGT</a>:</div>
619
+ <div class="line"><a name="l00622"></a><span class="lineno"> 622</span>&#160; resVal = (lhs &gt; rhs);</div>
620
+ <div class="line"><a name="l00623"></a><span class="lineno"> 623</span>&#160; <span class="keywordflow">break</span>;</div>
621
+ <div class="line"><a name="l00624"></a><span class="lineno"> 624</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca3428808abe683bfc6bb0267077cdb128">CmpStmt::ICMP_UGE</a>:</div>
622
+ <div class="line"><a name="l00625"></a><span class="lineno"> 625</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acac5a87d53b1ad255cec18b3784cd81f80">CmpStmt::ICMP_SGE</a>:</div>
623
+ <div class="line"><a name="l00626"></a><span class="lineno"> 626</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca5c4576ce636e323cbc3aa322480c5d2c">CmpStmt::FCMP_OGE</a>:</div>
624
+ <div class="line"><a name="l00627"></a><span class="lineno"> 627</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acac0e2d9db5453eb8be7543fb4315003da">CmpStmt::FCMP_UGE</a>:</div>
625
+ <div class="line"><a name="l00628"></a><span class="lineno"> 628</span>&#160; resVal = (lhs &gt;= rhs);</div>
626
+ <div class="line"><a name="l00629"></a><span class="lineno"> 629</span>&#160; <span class="keywordflow">break</span>;</div>
627
+ <div class="line"><a name="l00630"></a><span class="lineno"> 630</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca7833b647068883840c9bb438103e736d">CmpStmt::ICMP_ULT</a>:</div>
628
+ <div class="line"><a name="l00631"></a><span class="lineno"> 631</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca88d74bf66465f4fdd221db0c11d62927">CmpStmt::ICMP_SLT</a>:</div>
629
+ <div class="line"><a name="l00632"></a><span class="lineno"> 632</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca5e3cf3105b8f13da66719856579956fa">CmpStmt::FCMP_OLT</a>:</div>
630
+ <div class="line"><a name="l00633"></a><span class="lineno"> 633</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acaa6b852204a4d0758ebd632d8a88b966d">CmpStmt::FCMP_ULT</a>:</div>
631
+ <div class="line"><a name="l00634"></a><span class="lineno"> 634</span>&#160; resVal = (lhs &lt; rhs);</div>
632
+ <div class="line"><a name="l00635"></a><span class="lineno"> 635</span>&#160; <span class="keywordflow">break</span>;</div>
633
+ <div class="line"><a name="l00636"></a><span class="lineno"> 636</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca56a20e408f9639234e4a11036764a38f">CmpStmt::ICMP_ULE</a>:</div>
634
+ <div class="line"><a name="l00637"></a><span class="lineno"> 637</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acaeeae52f8d195815edfb8c85037d246d6">CmpStmt::ICMP_SLE</a>:</div>
635
+ <div class="line"><a name="l00638"></a><span class="lineno"> 638</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca9dd165c6da06811ffc8c2e53b30ab32d">CmpStmt::FCMP_OLE</a>:</div>
636
+ <div class="line"><a name="l00639"></a><span class="lineno"> 639</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca8149cba2e9e265892f02bbd4a35fe6fb">CmpStmt::FCMP_ULE</a>:</div>
637
+ <div class="line"><a name="l00640"></a><span class="lineno"> 640</span>&#160; resVal = (lhs &lt;= rhs);</div>
638
+ <div class="line"><a name="l00641"></a><span class="lineno"> 641</span>&#160; <span class="keywordflow">break</span>;</div>
639
+ <div class="line"><a name="l00642"></a><span class="lineno"> 642</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acaa100cf99398f6118d332191380574c06">CmpStmt::FCMP_FALSE</a>:</div>
640
+ <div class="line"><a name="l00643"></a><span class="lineno"> 643</span>&#160; resVal = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(0, 0);</div>
641
+ <div class="line"><a name="l00644"></a><span class="lineno"> 644</span>&#160; <span class="keywordflow">break</span>;</div>
642
+ <div class="line"><a name="l00645"></a><span class="lineno"> 645</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca7234c9a242034a71d0bdcb54aeec6da7">CmpStmt::FCMP_TRUE</a>:</div>
643
+ <div class="line"><a name="l00646"></a><span class="lineno"> 646</span>&#160; resVal = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(1, 1);</div>
644
+ <div class="line"><a name="l00647"></a><span class="lineno"> 647</span>&#160; <span class="keywordflow">break</span>;</div>
645
+ <div class="line"><a name="l00648"></a><span class="lineno"> 648</span>&#160; <span class="keywordflow">default</span>:</div>
646
+ <div class="line"><a name="l00649"></a><span class="lineno"> 649</span>&#160; {</div>
647
+ <div class="line"><a name="l00650"></a><span class="lineno"> 650</span>&#160; assert(<span class="keyword">false</span> &amp;&amp; <span class="stringliteral">&quot;undefined compare: &quot;</span>);</div>
648
+ <div class="line"><a name="l00651"></a><span class="lineno"> 651</span>&#160; }</div>
649
+ <div class="line"><a name="l00652"></a><span class="lineno"> 652</span>&#160; }</div>
650
+ <div class="line"><a name="l00653"></a><span class="lineno"> 653</span>&#160; _es[res] = resVal;</div>
651
+ <div class="line"><a name="l00654"></a><span class="lineno"> 654</span>&#160; }</div>
652
+ <div class="line"><a name="l00655"></a><span class="lineno"> 655</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (inVarToAddrsTable(op0) &amp;&amp; inVarToAddrsTable(op1))</div>
653
+ <div class="line"><a name="l00656"></a><span class="lineno"> 656</span>&#160; {</div>
654
+ <div class="line"><a name="l00657"></a><span class="lineno"> 657</span>&#160; <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> resVal;</div>
655
+ <div class="line"><a name="l00658"></a><span class="lineno"> 658</span>&#160; <a class="code" href="classSVF_1_1AddressValue.html">VAddrs</a> &amp;lhs = getVAddrs(op0), &amp;rhs = getVAddrs(op1);</div>
656
+ <div class="line"><a name="l00659"></a><span class="lineno"> 659</span>&#160; assert(!lhs.<a class="code" href="classSVF_1_1AddressValue.html#aa7291f4b74bb824fb38b8c383fa0b6a0">empty</a>() &amp;&amp; !rhs.empty() &amp;&amp; <span class="stringliteral">&quot;empty address?&quot;</span>);</div>
657
+ <div class="line"><a name="l00660"></a><span class="lineno"> 660</span>&#160; <span class="keyword">auto</span> predicate = cmp-&gt;<a class="code" href="classSVF_1_1CmpStmt.html#aa6a21fb1cfbc263bb38651176c495632">getPredicate</a>();</div>
658
+ <div class="line"><a name="l00661"></a><span class="lineno"> 661</span>&#160; <span class="keywordflow">switch</span> (predicate)</div>
659
+ <div class="line"><a name="l00662"></a><span class="lineno"> 662</span>&#160; {</div>
660
+ <div class="line"><a name="l00663"></a><span class="lineno"> 663</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acafa5a0ab60aff74a8d653c3f9fac04936">CmpStmt::ICMP_EQ</a>:</div>
661
+ <div class="line"><a name="l00664"></a><span class="lineno"> 664</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca900bbc9c7824294c3a69c2cb006c27ee">CmpStmt::FCMP_OEQ</a>:</div>
662
+ <div class="line"><a name="l00665"></a><span class="lineno"> 665</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca2793f23e72e3ff432bf193adf0f1b021">CmpStmt::FCMP_UEQ</a>:</div>
663
+ <div class="line"><a name="l00666"></a><span class="lineno"> 666</span>&#160; {</div>
664
+ <div class="line"><a name="l00667"></a><span class="lineno"> 667</span>&#160; <span class="keywordflow">if</span> (lhs.<a class="code" href="classSVF_1_1AddressValue.html#ae93859318bf4f618b4cf681988a870ce">size</a>() == 1 &amp;&amp; rhs.size() == 1)</div>
665
+ <div class="line"><a name="l00668"></a><span class="lineno"> 668</span>&#160; {</div>
666
+ <div class="line"><a name="l00669"></a><span class="lineno"> 669</span>&#160; resVal = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(lhs.<a class="code" href="classSVF_1_1AddressValue.html#a04456fe47889dd8f1b712255c9598fe9">equals</a>(rhs));</div>
667
+ <div class="line"><a name="l00670"></a><span class="lineno"> 670</span>&#160; }</div>
668
+ <div class="line"><a name="l00671"></a><span class="lineno"> 671</span>&#160; <span class="keywordflow">else</span></div>
669
+ <div class="line"><a name="l00672"></a><span class="lineno"> 672</span>&#160; {</div>
670
+ <div class="line"><a name="l00673"></a><span class="lineno"> 673</span>&#160; <span class="keywordflow">if</span> (lhs.<a class="code" href="classSVF_1_1AddressValue.html#a269a73753a7b495eb08bb0c9c0a58dc0">hasIntersect</a>(rhs))</div>
671
+ <div class="line"><a name="l00674"></a><span class="lineno"> 674</span>&#160; {</div>
672
+ <div class="line"><a name="l00675"></a><span class="lineno"> 675</span>&#160; resVal = <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div>
673
+ <div class="line"><a name="l00676"></a><span class="lineno"> 676</span>&#160; }</div>
674
+ <div class="line"><a name="l00677"></a><span class="lineno"> 677</span>&#160; <span class="keywordflow">else</span></div>
675
+ <div class="line"><a name="l00678"></a><span class="lineno"> 678</span>&#160; {</div>
676
+ <div class="line"><a name="l00679"></a><span class="lineno"> 679</span>&#160; resVal = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(0);</div>
677
+ <div class="line"><a name="l00680"></a><span class="lineno"> 680</span>&#160; }</div>
678
+ <div class="line"><a name="l00681"></a><span class="lineno"> 681</span>&#160; }</div>
679
+ <div class="line"><a name="l00682"></a><span class="lineno"> 682</span>&#160; <span class="keywordflow">break</span>;</div>
680
+ <div class="line"><a name="l00683"></a><span class="lineno"> 683</span>&#160; }</div>
681
+ <div class="line"><a name="l00684"></a><span class="lineno"> 684</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca6eef834451ec753add639be49c51f03f">CmpStmt::ICMP_NE</a>:</div>
682
+ <div class="line"><a name="l00685"></a><span class="lineno"> 685</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca2a3ce0c02931984d92d70356efc49193">CmpStmt::FCMP_ONE</a>:</div>
683
+ <div class="line"><a name="l00686"></a><span class="lineno"> 686</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acad23a87cb6f2b3b2486a9a1277b491c09">CmpStmt::FCMP_UNE</a>:</div>
684
+ <div class="line"><a name="l00687"></a><span class="lineno"> 687</span>&#160; {</div>
685
+ <div class="line"><a name="l00688"></a><span class="lineno"> 688</span>&#160; <span class="keywordflow">if</span> (lhs.<a class="code" href="classSVF_1_1AddressValue.html#ae93859318bf4f618b4cf681988a870ce">size</a>() == 1 &amp;&amp; rhs.size() == 1)</div>
742
686
  <div class="line"><a name="l00689"></a><span class="lineno"> 689</span>&#160; {</div>
743
- <div class="line"><a name="l00690"></a><span class="lineno"> 690</span>&#160; resVal = <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div>
687
+ <div class="line"><a name="l00690"></a><span class="lineno"> 690</span>&#160; resVal = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(!lhs.<a class="code" href="classSVF_1_1AddressValue.html#a04456fe47889dd8f1b712255c9598fe9">equals</a>(rhs));</div>
744
688
  <div class="line"><a name="l00691"></a><span class="lineno"> 691</span>&#160; }</div>
745
- <div class="line"><a name="l00692"></a><span class="lineno"> 692</span>&#160; <span class="keywordflow">break</span>;</div>
746
- <div class="line"><a name="l00693"></a><span class="lineno"> 693</span>&#160; }</div>
747
- <div class="line"><a name="l00694"></a><span class="lineno"> 694</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca3428808abe683bfc6bb0267077cdb128">CmpStmt::ICMP_UGE</a>:</div>
748
- <div class="line"><a name="l00695"></a><span class="lineno"> 695</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acac5a87d53b1ad255cec18b3784cd81f80">CmpStmt::ICMP_SGE</a>:</div>
749
- <div class="line"><a name="l00696"></a><span class="lineno"> 696</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca5c4576ce636e323cbc3aa322480c5d2c">CmpStmt::FCMP_OGE</a>:</div>
750
- <div class="line"><a name="l00697"></a><span class="lineno"> 697</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acac0e2d9db5453eb8be7543fb4315003da">CmpStmt::FCMP_UGE</a>:</div>
751
- <div class="line"><a name="l00698"></a><span class="lineno"> 698</span>&#160; {</div>
752
- <div class="line"><a name="l00699"></a><span class="lineno"> 699</span>&#160; <span class="keywordflow">if</span> (lhs.<a class="code" href="classSVF_1_1AddressValue.html#ae93859318bf4f618b4cf681988a870ce">size</a>() == 1 &amp;&amp; rhs.size() == 1)</div>
753
- <div class="line"><a name="l00700"></a><span class="lineno"> 700</span>&#160; {</div>
754
- <div class="line"><a name="l00701"></a><span class="lineno"> 701</span>&#160; resVal = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(*lhs.<a class="code" href="classSVF_1_1AddressValue.html#aed0b4789beda4980e4e215a65350f323">begin</a>() &gt;= *rhs.begin());</div>
689
+ <div class="line"><a name="l00692"></a><span class="lineno"> 692</span>&#160; <span class="keywordflow">else</span></div>
690
+ <div class="line"><a name="l00693"></a><span class="lineno"> 693</span>&#160; {</div>
691
+ <div class="line"><a name="l00694"></a><span class="lineno"> 694</span>&#160; <span class="keywordflow">if</span> (lhs.<a class="code" href="classSVF_1_1AddressValue.html#a269a73753a7b495eb08bb0c9c0a58dc0">hasIntersect</a>(rhs))</div>
692
+ <div class="line"><a name="l00695"></a><span class="lineno"> 695</span>&#160; {</div>
693
+ <div class="line"><a name="l00696"></a><span class="lineno"> 696</span>&#160; resVal = <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div>
694
+ <div class="line"><a name="l00697"></a><span class="lineno"> 697</span>&#160; }</div>
695
+ <div class="line"><a name="l00698"></a><span class="lineno"> 698</span>&#160; <span class="keywordflow">else</span></div>
696
+ <div class="line"><a name="l00699"></a><span class="lineno"> 699</span>&#160; {</div>
697
+ <div class="line"><a name="l00700"></a><span class="lineno"> 700</span>&#160; resVal = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(1);</div>
698
+ <div class="line"><a name="l00701"></a><span class="lineno"> 701</span>&#160; }</div>
755
699
  <div class="line"><a name="l00702"></a><span class="lineno"> 702</span>&#160; }</div>
756
- <div class="line"><a name="l00703"></a><span class="lineno"> 703</span>&#160; <span class="keywordflow">else</span></div>
757
- <div class="line"><a name="l00704"></a><span class="lineno"> 704</span>&#160; {</div>
758
- <div class="line"><a name="l00705"></a><span class="lineno"> 705</span>&#160; resVal = <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div>
759
- <div class="line"><a name="l00706"></a><span class="lineno"> 706</span>&#160; }</div>
760
- <div class="line"><a name="l00707"></a><span class="lineno"> 707</span>&#160; <span class="keywordflow">break</span>;</div>
761
- <div class="line"><a name="l00708"></a><span class="lineno"> 708</span>&#160; }</div>
762
- <div class="line"><a name="l00709"></a><span class="lineno"> 709</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca7833b647068883840c9bb438103e736d">CmpStmt::ICMP_ULT</a>:</div>
763
- <div class="line"><a name="l00710"></a><span class="lineno"> 710</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca88d74bf66465f4fdd221db0c11d62927">CmpStmt::ICMP_SLT</a>:</div>
764
- <div class="line"><a name="l00711"></a><span class="lineno"> 711</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca5e3cf3105b8f13da66719856579956fa">CmpStmt::FCMP_OLT</a>:</div>
765
- <div class="line"><a name="l00712"></a><span class="lineno"> 712</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acaa6b852204a4d0758ebd632d8a88b966d">CmpStmt::FCMP_ULT</a>:</div>
766
- <div class="line"><a name="l00713"></a><span class="lineno"> 713</span>&#160; {</div>
767
- <div class="line"><a name="l00714"></a><span class="lineno"> 714</span>&#160; <span class="keywordflow">if</span> (lhs.<a class="code" href="classSVF_1_1AddressValue.html#ae93859318bf4f618b4cf681988a870ce">size</a>() == 1 &amp;&amp; rhs.size() == 1)</div>
700
+ <div class="line"><a name="l00703"></a><span class="lineno"> 703</span>&#160; <span class="keywordflow">break</span>;</div>
701
+ <div class="line"><a name="l00704"></a><span class="lineno"> 704</span>&#160; }</div>
702
+ <div class="line"><a name="l00705"></a><span class="lineno"> 705</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca8d59d9d7f39bb9c8b1e3dcebe0c5dc48">CmpStmt::ICMP_UGT</a>:</div>
703
+ <div class="line"><a name="l00706"></a><span class="lineno"> 706</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca229d105d0841dc895811b29af62a91ee">CmpStmt::ICMP_SGT</a>:</div>
704
+ <div class="line"><a name="l00707"></a><span class="lineno"> 707</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca6121702881c763c3c8cd3e30dedc7486">CmpStmt::FCMP_OGT</a>:</div>
705
+ <div class="line"><a name="l00708"></a><span class="lineno"> 708</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca3873c41e060b95cb37eac587402b597c">CmpStmt::FCMP_UGT</a>:</div>
706
+ <div class="line"><a name="l00709"></a><span class="lineno"> 709</span>&#160; {</div>
707
+ <div class="line"><a name="l00710"></a><span class="lineno"> 710</span>&#160; <span class="keywordflow">if</span> (lhs.<a class="code" href="classSVF_1_1AddressValue.html#ae93859318bf4f618b4cf681988a870ce">size</a>() == 1 &amp;&amp; rhs.size() == 1)</div>
708
+ <div class="line"><a name="l00711"></a><span class="lineno"> 711</span>&#160; {</div>
709
+ <div class="line"><a name="l00712"></a><span class="lineno"> 712</span>&#160; resVal = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(*lhs.<a class="code" href="classSVF_1_1AddressValue.html#aed0b4789beda4980e4e215a65350f323">begin</a>() &gt; *rhs.begin());</div>
710
+ <div class="line"><a name="l00713"></a><span class="lineno"> 713</span>&#160; }</div>
711
+ <div class="line"><a name="l00714"></a><span class="lineno"> 714</span>&#160; <span class="keywordflow">else</span></div>
768
712
  <div class="line"><a name="l00715"></a><span class="lineno"> 715</span>&#160; {</div>
769
- <div class="line"><a name="l00716"></a><span class="lineno"> 716</span>&#160; resVal = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(*lhs.<a class="code" href="classSVF_1_1AddressValue.html#aed0b4789beda4980e4e215a65350f323">begin</a>() &lt; *rhs.begin());</div>
713
+ <div class="line"><a name="l00716"></a><span class="lineno"> 716</span>&#160; resVal = <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div>
770
714
  <div class="line"><a name="l00717"></a><span class="lineno"> 717</span>&#160; }</div>
771
- <div class="line"><a name="l00718"></a><span class="lineno"> 718</span>&#160; <span class="keywordflow">else</span></div>
772
- <div class="line"><a name="l00719"></a><span class="lineno"> 719</span>&#160; {</div>
773
- <div class="line"><a name="l00720"></a><span class="lineno"> 720</span>&#160; resVal = <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div>
774
- <div class="line"><a name="l00721"></a><span class="lineno"> 721</span>&#160; }</div>
775
- <div class="line"><a name="l00722"></a><span class="lineno"> 722</span>&#160; <span class="keywordflow">break</span>;</div>
776
- <div class="line"><a name="l00723"></a><span class="lineno"> 723</span>&#160; }</div>
777
- <div class="line"><a name="l00724"></a><span class="lineno"> 724</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca56a20e408f9639234e4a11036764a38f">CmpStmt::ICMP_ULE</a>:</div>
778
- <div class="line"><a name="l00725"></a><span class="lineno"> 725</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acaeeae52f8d195815edfb8c85037d246d6">CmpStmt::ICMP_SLE</a>:</div>
779
- <div class="line"><a name="l00726"></a><span class="lineno"> 726</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca9dd165c6da06811ffc8c2e53b30ab32d">CmpStmt::FCMP_OLE</a>:</div>
780
- <div class="line"><a name="l00727"></a><span class="lineno"> 727</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca8149cba2e9e265892f02bbd4a35fe6fb">CmpStmt::FCMP_ULE</a>:</div>
781
- <div class="line"><a name="l00728"></a><span class="lineno"> 728</span>&#160; {</div>
782
- <div class="line"><a name="l00729"></a><span class="lineno"> 729</span>&#160; <span class="keywordflow">if</span> (lhs.<a class="code" href="classSVF_1_1AddressValue.html#ae93859318bf4f618b4cf681988a870ce">size</a>() == 1 &amp;&amp; rhs.size() == 1)</div>
715
+ <div class="line"><a name="l00718"></a><span class="lineno"> 718</span>&#160; <span class="keywordflow">break</span>;</div>
716
+ <div class="line"><a name="l00719"></a><span class="lineno"> 719</span>&#160; }</div>
717
+ <div class="line"><a name="l00720"></a><span class="lineno"> 720</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca3428808abe683bfc6bb0267077cdb128">CmpStmt::ICMP_UGE</a>:</div>
718
+ <div class="line"><a name="l00721"></a><span class="lineno"> 721</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acac5a87d53b1ad255cec18b3784cd81f80">CmpStmt::ICMP_SGE</a>:</div>
719
+ <div class="line"><a name="l00722"></a><span class="lineno"> 722</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca5c4576ce636e323cbc3aa322480c5d2c">CmpStmt::FCMP_OGE</a>:</div>
720
+ <div class="line"><a name="l00723"></a><span class="lineno"> 723</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acac0e2d9db5453eb8be7543fb4315003da">CmpStmt::FCMP_UGE</a>:</div>
721
+ <div class="line"><a name="l00724"></a><span class="lineno"> 724</span>&#160; {</div>
722
+ <div class="line"><a name="l00725"></a><span class="lineno"> 725</span>&#160; <span class="keywordflow">if</span> (lhs.<a class="code" href="classSVF_1_1AddressValue.html#ae93859318bf4f618b4cf681988a870ce">size</a>() == 1 &amp;&amp; rhs.size() == 1)</div>
723
+ <div class="line"><a name="l00726"></a><span class="lineno"> 726</span>&#160; {</div>
724
+ <div class="line"><a name="l00727"></a><span class="lineno"> 727</span>&#160; resVal = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(*lhs.<a class="code" href="classSVF_1_1AddressValue.html#aed0b4789beda4980e4e215a65350f323">begin</a>() &gt;= *rhs.begin());</div>
725
+ <div class="line"><a name="l00728"></a><span class="lineno"> 728</span>&#160; }</div>
726
+ <div class="line"><a name="l00729"></a><span class="lineno"> 729</span>&#160; <span class="keywordflow">else</span></div>
783
727
  <div class="line"><a name="l00730"></a><span class="lineno"> 730</span>&#160; {</div>
784
- <div class="line"><a name="l00731"></a><span class="lineno"> 731</span>&#160; resVal = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(*lhs.<a class="code" href="classSVF_1_1AddressValue.html#aed0b4789beda4980e4e215a65350f323">begin</a>() &lt;= *rhs.begin());</div>
728
+ <div class="line"><a name="l00731"></a><span class="lineno"> 731</span>&#160; resVal = <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div>
785
729
  <div class="line"><a name="l00732"></a><span class="lineno"> 732</span>&#160; }</div>
786
- <div class="line"><a name="l00733"></a><span class="lineno"> 733</span>&#160; <span class="keywordflow">else</span></div>
787
- <div class="line"><a name="l00734"></a><span class="lineno"> 734</span>&#160; {</div>
788
- <div class="line"><a name="l00735"></a><span class="lineno"> 735</span>&#160; resVal = <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div>
789
- <div class="line"><a name="l00736"></a><span class="lineno"> 736</span>&#160; }</div>
790
- <div class="line"><a name="l00737"></a><span class="lineno"> 737</span>&#160; <span class="keywordflow">break</span>;</div>
791
- <div class="line"><a name="l00738"></a><span class="lineno"> 738</span>&#160; }</div>
792
- <div class="line"><a name="l00739"></a><span class="lineno"> 739</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acaa100cf99398f6118d332191380574c06">CmpStmt::FCMP_FALSE</a>:</div>
793
- <div class="line"><a name="l00740"></a><span class="lineno"> 740</span>&#160; resVal = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(0, 0);</div>
794
- <div class="line"><a name="l00741"></a><span class="lineno"> 741</span>&#160; <span class="keywordflow">break</span>;</div>
795
- <div class="line"><a name="l00742"></a><span class="lineno"> 742</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca7234c9a242034a71d0bdcb54aeec6da7">CmpStmt::FCMP_TRUE</a>:</div>
796
- <div class="line"><a name="l00743"></a><span class="lineno"> 743</span>&#160; resVal = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(1, 1);</div>
797
- <div class="line"><a name="l00744"></a><span class="lineno"> 744</span>&#160; <span class="keywordflow">break</span>;</div>
798
- <div class="line"><a name="l00745"></a><span class="lineno"> 745</span>&#160; <span class="keywordflow">default</span>:</div>
799
- <div class="line"><a name="l00746"></a><span class="lineno"> 746</span>&#160; {</div>
800
- <div class="line"><a name="l00747"></a><span class="lineno"> 747</span>&#160; assert(<span class="keyword">false</span> &amp;&amp; <span class="stringliteral">&quot;undefined compare: &quot;</span>);</div>
801
- <div class="line"><a name="l00748"></a><span class="lineno"> 748</span>&#160; }</div>
730
+ <div class="line"><a name="l00733"></a><span class="lineno"> 733</span>&#160; <span class="keywordflow">break</span>;</div>
731
+ <div class="line"><a name="l00734"></a><span class="lineno"> 734</span>&#160; }</div>
732
+ <div class="line"><a name="l00735"></a><span class="lineno"> 735</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca7833b647068883840c9bb438103e736d">CmpStmt::ICMP_ULT</a>:</div>
733
+ <div class="line"><a name="l00736"></a><span class="lineno"> 736</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca88d74bf66465f4fdd221db0c11d62927">CmpStmt::ICMP_SLT</a>:</div>
734
+ <div class="line"><a name="l00737"></a><span class="lineno"> 737</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca5e3cf3105b8f13da66719856579956fa">CmpStmt::FCMP_OLT</a>:</div>
735
+ <div class="line"><a name="l00738"></a><span class="lineno"> 738</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acaa6b852204a4d0758ebd632d8a88b966d">CmpStmt::FCMP_ULT</a>:</div>
736
+ <div class="line"><a name="l00739"></a><span class="lineno"> 739</span>&#160; {</div>
737
+ <div class="line"><a name="l00740"></a><span class="lineno"> 740</span>&#160; <span class="keywordflow">if</span> (lhs.<a class="code" href="classSVF_1_1AddressValue.html#ae93859318bf4f618b4cf681988a870ce">size</a>() == 1 &amp;&amp; rhs.size() == 1)</div>
738
+ <div class="line"><a name="l00741"></a><span class="lineno"> 741</span>&#160; {</div>
739
+ <div class="line"><a name="l00742"></a><span class="lineno"> 742</span>&#160; resVal = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(*lhs.<a class="code" href="classSVF_1_1AddressValue.html#aed0b4789beda4980e4e215a65350f323">begin</a>() &lt; *rhs.begin());</div>
740
+ <div class="line"><a name="l00743"></a><span class="lineno"> 743</span>&#160; }</div>
741
+ <div class="line"><a name="l00744"></a><span class="lineno"> 744</span>&#160; <span class="keywordflow">else</span></div>
742
+ <div class="line"><a name="l00745"></a><span class="lineno"> 745</span>&#160; {</div>
743
+ <div class="line"><a name="l00746"></a><span class="lineno"> 746</span>&#160; resVal = <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div>
744
+ <div class="line"><a name="l00747"></a><span class="lineno"> 747</span>&#160; }</div>
745
+ <div class="line"><a name="l00748"></a><span class="lineno"> 748</span>&#160; <span class="keywordflow">break</span>;</div>
802
746
  <div class="line"><a name="l00749"></a><span class="lineno"> 749</span>&#160; }</div>
803
- <div class="line"><a name="l00750"></a><span class="lineno"> 750</span>&#160; _es[res] = resVal;</div>
804
- <div class="line"><a name="l00751"></a><span class="lineno"> 751</span>&#160; }</div>
805
- <div class="line"><a name="l00752"></a><span class="lineno"> 752</span>&#160;}</div>
806
- <div class="line"><a name="l00753"></a><span class="lineno"> 753</span>&#160; </div>
807
- <div class="line"><a name="l00754"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2ItvExeState.html#a8f2a564370d9b9fb05e139c45eeaba68"> 754</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a8f2a564370d9b9fb05e139c45eeaba68">SVFIR2ItvExeState::translateLoad</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1LoadStmt.html">LoadStmt</a> *load)</div>
808
- <div class="line"><a name="l00755"></a><span class="lineno"> 755</span>&#160;{</div>
809
- <div class="line"><a name="l00756"></a><span class="lineno"> 756</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> rhs = load-&gt;<a class="code" href="classSVF_1_1AssignStmt.html#a4cec89489e82c60c287cae3327f3f01d">getRHSVarID</a>();</div>
810
- <div class="line"><a name="l00757"></a><span class="lineno"> 757</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> lhs = load-&gt;<a class="code" href="classSVF_1_1AssignStmt.html#a98f731be7be9bc8e7fd09f5c2204c840">getLHSVarID</a>();</div>
811
- <div class="line"><a name="l00758"></a><span class="lineno"> 758</span>&#160; <span class="keywordflow">if</span> (inVarToAddrsTable(rhs))</div>
812
- <div class="line"><a name="l00759"></a><span class="lineno"> 759</span>&#160; {</div>
813
- <div class="line"><a name="l00760"></a><span class="lineno"> 760</span>&#160; <a class="code" href="classSVF_1_1AddressValue.html">VAddrs</a> &amp;addrs = getVAddrs(rhs);</div>
814
- <div class="line"><a name="l00761"></a><span class="lineno"> 761</span>&#160; assert(!addrs.<a class="code" href="classSVF_1_1AddressValue.html#aa7291f4b74bb824fb38b8c383fa0b6a0">empty</a>());</div>
815
- <div class="line"><a name="l00762"></a><span class="lineno"> 762</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &amp;addr: addrs)</div>
816
- <div class="line"><a name="l00763"></a><span class="lineno"> 763</span>&#160; {</div>
817
- <div class="line"><a name="l00764"></a><span class="lineno"> 764</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> objId = getInternalID(addr);</div>
818
- <div class="line"><a name="l00765"></a><span class="lineno"> 765</span>&#160; <span class="keywordflow">if</span> (inLocToIValTable(objId))</div>
819
- <div class="line"><a name="l00766"></a><span class="lineno"> 766</span>&#160; _es[lhs] = <a class="code" href="classSVF_1_1IntervalValue.html#aa027be2f9243ce4cae799b265b019443">IntervalValue::bottom</a>();</div>
820
- <div class="line"><a name="l00767"></a><span class="lineno"> 767</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (inLocToAddrsTable(objId))</div>
821
- <div class="line"><a name="l00768"></a><span class="lineno"> 768</span>&#160; _es.getVAddrs(lhs).setBottom();</div>
822
- <div class="line"><a name="l00769"></a><span class="lineno"> 769</span>&#160; <span class="keywordflow">break</span>;</div>
823
- <div class="line"><a name="l00770"></a><span class="lineno"> 770</span>&#160; }</div>
824
- <div class="line"><a name="l00771"></a><span class="lineno"> 771</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &amp;addr: addrs)</div>
747
+ <div class="line"><a name="l00750"></a><span class="lineno"> 750</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca56a20e408f9639234e4a11036764a38f">CmpStmt::ICMP_ULE</a>:</div>
748
+ <div class="line"><a name="l00751"></a><span class="lineno"> 751</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acaeeae52f8d195815edfb8c85037d246d6">CmpStmt::ICMP_SLE</a>:</div>
749
+ <div class="line"><a name="l00752"></a><span class="lineno"> 752</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca9dd165c6da06811ffc8c2e53b30ab32d">CmpStmt::FCMP_OLE</a>:</div>
750
+ <div class="line"><a name="l00753"></a><span class="lineno"> 753</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca8149cba2e9e265892f02bbd4a35fe6fb">CmpStmt::FCMP_ULE</a>:</div>
751
+ <div class="line"><a name="l00754"></a><span class="lineno"> 754</span>&#160; {</div>
752
+ <div class="line"><a name="l00755"></a><span class="lineno"> 755</span>&#160; <span class="keywordflow">if</span> (lhs.<a class="code" href="classSVF_1_1AddressValue.html#ae93859318bf4f618b4cf681988a870ce">size</a>() == 1 &amp;&amp; rhs.size() == 1)</div>
753
+ <div class="line"><a name="l00756"></a><span class="lineno"> 756</span>&#160; {</div>
754
+ <div class="line"><a name="l00757"></a><span class="lineno"> 757</span>&#160; resVal = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(*lhs.<a class="code" href="classSVF_1_1AddressValue.html#aed0b4789beda4980e4e215a65350f323">begin</a>() &lt;= *rhs.begin());</div>
755
+ <div class="line"><a name="l00758"></a><span class="lineno"> 758</span>&#160; }</div>
756
+ <div class="line"><a name="l00759"></a><span class="lineno"> 759</span>&#160; <span class="keywordflow">else</span></div>
757
+ <div class="line"><a name="l00760"></a><span class="lineno"> 760</span>&#160; {</div>
758
+ <div class="line"><a name="l00761"></a><span class="lineno"> 761</span>&#160; resVal = <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div>
759
+ <div class="line"><a name="l00762"></a><span class="lineno"> 762</span>&#160; }</div>
760
+ <div class="line"><a name="l00763"></a><span class="lineno"> 763</span>&#160; <span class="keywordflow">break</span>;</div>
761
+ <div class="line"><a name="l00764"></a><span class="lineno"> 764</span>&#160; }</div>
762
+ <div class="line"><a name="l00765"></a><span class="lineno"> 765</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acaa100cf99398f6118d332191380574c06">CmpStmt::FCMP_FALSE</a>:</div>
763
+ <div class="line"><a name="l00766"></a><span class="lineno"> 766</span>&#160; resVal = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(0, 0);</div>
764
+ <div class="line"><a name="l00767"></a><span class="lineno"> 767</span>&#160; <span class="keywordflow">break</span>;</div>
765
+ <div class="line"><a name="l00768"></a><span class="lineno"> 768</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca7234c9a242034a71d0bdcb54aeec6da7">CmpStmt::FCMP_TRUE</a>:</div>
766
+ <div class="line"><a name="l00769"></a><span class="lineno"> 769</span>&#160; resVal = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(1, 1);</div>
767
+ <div class="line"><a name="l00770"></a><span class="lineno"> 770</span>&#160; <span class="keywordflow">break</span>;</div>
768
+ <div class="line"><a name="l00771"></a><span class="lineno"> 771</span>&#160; <span class="keywordflow">default</span>:</div>
825
769
  <div class="line"><a name="l00772"></a><span class="lineno"> 772</span>&#160; {</div>
826
- <div class="line"><a name="l00773"></a><span class="lineno"> 773</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> objId = getInternalID(addr);</div>
827
- <div class="line"><a name="l00774"></a><span class="lineno"> 774</span>&#160; <span class="keywordflow">if</span> (inLocToIValTable(objId))</div>
828
- <div class="line"><a name="l00775"></a><span class="lineno"> 775</span>&#160; {</div>
829
- <div class="line"><a name="l00776"></a><span class="lineno"> 776</span>&#160; <span class="keywordflow">if</span> (!inVarToIValTable(lhs))</div>
830
- <div class="line"><a name="l00777"></a><span class="lineno"> 777</span>&#160; {</div>
831
- <div class="line"><a name="l00778"></a><span class="lineno"> 778</span>&#160; _es[lhs] = _es.load(addr);</div>
832
- <div class="line"><a name="l00779"></a><span class="lineno"> 779</span>&#160; }</div>
833
- <div class="line"><a name="l00780"></a><span class="lineno"> 780</span>&#160; <span class="keywordflow">else</span></div>
834
- <div class="line"><a name="l00781"></a><span class="lineno"> 781</span>&#160; {</div>
835
- <div class="line"><a name="l00782"></a><span class="lineno"> 782</span>&#160; _es[lhs].join_with(_es.load(addr));</div>
836
- <div class="line"><a name="l00783"></a><span class="lineno"> 783</span>&#160; }</div>
837
- <div class="line"><a name="l00784"></a><span class="lineno"> 784</span>&#160; }</div>
838
- <div class="line"><a name="l00785"></a><span class="lineno"> 785</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (inLocToAddrsTable(objId))</div>
839
- <div class="line"><a name="l00786"></a><span class="lineno"> 786</span>&#160; {</div>
840
- <div class="line"><a name="l00787"></a><span class="lineno"> 787</span>&#160; <span class="keywordflow">if</span> (!inVarToAddrsTable(lhs))</div>
841
- <div class="line"><a name="l00788"></a><span class="lineno"> 788</span>&#160; {</div>
842
- <div class="line"><a name="l00789"></a><span class="lineno"> 789</span>&#160; _es.getVAddrs(lhs) = _es.loadVAddrs(addr);</div>
843
- <div class="line"><a name="l00790"></a><span class="lineno"> 790</span>&#160; }</div>
844
- <div class="line"><a name="l00791"></a><span class="lineno"> 791</span>&#160; <span class="keywordflow">else</span></div>
845
- <div class="line"><a name="l00792"></a><span class="lineno"> 792</span>&#160; {</div>
846
- <div class="line"><a name="l00793"></a><span class="lineno"> 793</span>&#160; _es.getVAddrs(lhs).join_with(_es.loadVAddrs(addr));</div>
847
- <div class="line"><a name="l00794"></a><span class="lineno"> 794</span>&#160; }</div>
848
- <div class="line"><a name="l00795"></a><span class="lineno"> 795</span>&#160; }</div>
849
- <div class="line"><a name="l00796"></a><span class="lineno"> 796</span>&#160; }</div>
850
- <div class="line"><a name="l00797"></a><span class="lineno"> 797</span>&#160; }</div>
851
- <div class="line"><a name="l00798"></a><span class="lineno"> 798</span>&#160;}</div>
852
- <div class="line"><a name="l00799"></a><span class="lineno"> 799</span>&#160; </div>
853
- <div class="line"><a name="l00800"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2ItvExeState.html#aed2e41879bae8389c49e69356b7aaac5"> 800</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#aed2e41879bae8389c49e69356b7aaac5">SVFIR2ItvExeState::translateStore</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1StoreStmt.html">StoreStmt</a> *store)</div>
854
- <div class="line"><a name="l00801"></a><span class="lineno"> 801</span>&#160;{</div>
855
- <div class="line"><a name="l00802"></a><span class="lineno"> 802</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> rhs = store-&gt;<a class="code" href="classSVF_1_1AssignStmt.html#a4cec89489e82c60c287cae3327f3f01d">getRHSVarID</a>();</div>
856
- <div class="line"><a name="l00803"></a><span class="lineno"> 803</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> lhs = store-&gt;<a class="code" href="classSVF_1_1AssignStmt.html#a98f731be7be9bc8e7fd09f5c2204c840">getLHSVarID</a>();</div>
857
- <div class="line"><a name="l00804"></a><span class="lineno"> 804</span>&#160; <span class="keywordflow">if</span> (inVarToAddrsTable(lhs))</div>
858
- <div class="line"><a name="l00805"></a><span class="lineno"> 805</span>&#160; {</div>
859
- <div class="line"><a name="l00806"></a><span class="lineno"> 806</span>&#160; <span class="keywordflow">if</span> (inVarToIValTable(rhs))</div>
860
- <div class="line"><a name="l00807"></a><span class="lineno"> 807</span>&#160; {</div>
861
- <div class="line"><a name="l00808"></a><span class="lineno"> 808</span>&#160; assert(!getVAddrs(lhs).empty());</div>
862
- <div class="line"><a name="l00809"></a><span class="lineno"> 809</span>&#160; <a class="code" href="classSVF_1_1AddressValue.html">VAddrs</a> &amp;addrs = getVAddrs(lhs);</div>
863
- <div class="line"><a name="l00810"></a><span class="lineno"> 810</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &amp;addr: addrs)</div>
864
- <div class="line"><a name="l00811"></a><span class="lineno"> 811</span>&#160; {</div>
865
- <div class="line"><a name="l00812"></a><span class="lineno"> 812</span>&#160; _es.store(addr, _es[rhs]);</div>
866
- <div class="line"><a name="l00813"></a><span class="lineno"> 813</span>&#160; }</div>
867
- <div class="line"><a name="l00814"></a><span class="lineno"> 814</span>&#160; }</div>
868
- <div class="line"><a name="l00815"></a><span class="lineno"> 815</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (inVarToAddrsTable(rhs))</div>
869
- <div class="line"><a name="l00816"></a><span class="lineno"> 816</span>&#160; {</div>
870
- <div class="line"><a name="l00817"></a><span class="lineno"> 817</span>&#160; assert(!getVAddrs(lhs).empty());</div>
871
- <div class="line"><a name="l00818"></a><span class="lineno"> 818</span>&#160; <a class="code" href="classSVF_1_1AddressValue.html">VAddrs</a> &amp;addrs = getVAddrs(lhs);</div>
872
- <div class="line"><a name="l00819"></a><span class="lineno"> 819</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &amp;addr: addrs)</div>
873
- <div class="line"><a name="l00820"></a><span class="lineno"> 820</span>&#160; {</div>
874
- <div class="line"><a name="l00821"></a><span class="lineno"> 821</span>&#160; assert(!getVAddrs(rhs).empty());</div>
875
- <div class="line"><a name="l00822"></a><span class="lineno"> 822</span>&#160; _es.storeVAddrs(addr, getVAddrs(rhs));</div>
876
- <div class="line"><a name="l00823"></a><span class="lineno"> 823</span>&#160; }</div>
877
- <div class="line"><a name="l00824"></a><span class="lineno"> 824</span>&#160; </div>
878
- <div class="line"><a name="l00825"></a><span class="lineno"> 825</span>&#160; }</div>
879
- <div class="line"><a name="l00826"></a><span class="lineno"> 826</span>&#160; }</div>
880
- <div class="line"><a name="l00827"></a><span class="lineno"> 827</span>&#160;}</div>
881
- <div class="line"><a name="l00828"></a><span class="lineno"> 828</span>&#160; </div>
882
- <div class="line"><a name="l00829"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2ItvExeState.html#afcf2f81101f1b9580d82b5c2efb83999"> 829</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#afcf2f81101f1b9580d82b5c2efb83999">SVFIR2ItvExeState::translateCopy</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CopyStmt.html">CopyStmt</a> *<a class="code" href="cJSON_8cpp.html#a7669ee67a0563250c1efaa24d130e1ac">copy</a>)</div>
883
- <div class="line"><a name="l00830"></a><span class="lineno"> 830</span>&#160;{</div>
884
- <div class="line"><a name="l00831"></a><span class="lineno"> 831</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> lhs = <a class="code" href="cJSON_8cpp.html#a7669ee67a0563250c1efaa24d130e1ac">copy</a>-&gt;getLHSVarID();</div>
885
- <div class="line"><a name="l00832"></a><span class="lineno"> 832</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> rhs = <a class="code" href="cJSON_8cpp.html#a7669ee67a0563250c1efaa24d130e1ac">copy</a>-&gt;getRHSVarID();</div>
886
- <div class="line"><a name="l00833"></a><span class="lineno"> 833</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SVFIR.html#a37cfa2aa4e7b98ef9dc8179f581a2362">PAG::getPAG</a>()-&gt;isBlkPtr(lhs))</div>
887
- <div class="line"><a name="l00834"></a><span class="lineno"> 834</span>&#160; {</div>
888
- <div class="line"><a name="l00835"></a><span class="lineno"> 835</span>&#160; _es[lhs] = <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div>
889
- <div class="line"><a name="l00836"></a><span class="lineno"> 836</span>&#160; }</div>
890
- <div class="line"><a name="l00837"></a><span class="lineno"> 837</span>&#160; <span class="keywordflow">else</span></div>
891
- <div class="line"><a name="l00838"></a><span class="lineno"> 838</span>&#160; {</div>
892
- <div class="line"><a name="l00839"></a><span class="lineno"> 839</span>&#160; <span class="keywordflow">if</span> (inVarToIValTable(rhs))</div>
893
- <div class="line"><a name="l00840"></a><span class="lineno"> 840</span>&#160; {</div>
894
- <div class="line"><a name="l00841"></a><span class="lineno"> 841</span>&#160; _es[lhs] = _es[rhs];</div>
895
- <div class="line"><a name="l00842"></a><span class="lineno"> 842</span>&#160; }</div>
896
- <div class="line"><a name="l00843"></a><span class="lineno"> 843</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (inVarToAddrsTable(rhs))</div>
897
- <div class="line"><a name="l00844"></a><span class="lineno"> 844</span>&#160; {</div>
898
- <div class="line"><a name="l00845"></a><span class="lineno"> 845</span>&#160; assert(!getVAddrs(rhs).empty());</div>
899
- <div class="line"><a name="l00846"></a><span class="lineno"> 846</span>&#160; _es.getVAddrs(lhs) = getVAddrs(rhs);</div>
900
- <div class="line"><a name="l00847"></a><span class="lineno"> 847</span>&#160; }</div>
901
- <div class="line"><a name="l00848"></a><span class="lineno"> 848</span>&#160; }</div>
902
- <div class="line"><a name="l00849"></a><span class="lineno"> 849</span>&#160;}</div>
770
+ <div class="line"><a name="l00773"></a><span class="lineno"> 773</span>&#160; assert(<span class="keyword">false</span> &amp;&amp; <span class="stringliteral">&quot;undefined compare: &quot;</span>);</div>
771
+ <div class="line"><a name="l00774"></a><span class="lineno"> 774</span>&#160; }</div>
772
+ <div class="line"><a name="l00775"></a><span class="lineno"> 775</span>&#160; }</div>
773
+ <div class="line"><a name="l00776"></a><span class="lineno"> 776</span>&#160; _es[res] = resVal;</div>
774
+ <div class="line"><a name="l00777"></a><span class="lineno"> 777</span>&#160; }</div>
775
+ <div class="line"><a name="l00778"></a><span class="lineno"> 778</span>&#160;}</div>
776
+ <div class="line"><a name="l00779"></a><span class="lineno"> 779</span>&#160; </div>
777
+ <div class="line"><a name="l00780"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2ItvExeState.html#a8f2a564370d9b9fb05e139c45eeaba68"> 780</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a8f2a564370d9b9fb05e139c45eeaba68">SVFIR2ItvExeState::translateLoad</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1LoadStmt.html">LoadStmt</a> *load)</div>
778
+ <div class="line"><a name="l00781"></a><span class="lineno"> 781</span>&#160;{</div>
779
+ <div class="line"><a name="l00782"></a><span class="lineno"> 782</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> rhs = load-&gt;<a class="code" href="classSVF_1_1AssignStmt.html#a4cec89489e82c60c287cae3327f3f01d">getRHSVarID</a>();</div>
780
+ <div class="line"><a name="l00783"></a><span class="lineno"> 783</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> lhs = load-&gt;<a class="code" href="classSVF_1_1AssignStmt.html#a98f731be7be9bc8e7fd09f5c2204c840">getLHSVarID</a>();</div>
781
+ <div class="line"><a name="l00784"></a><span class="lineno"> 784</span>&#160; <span class="keywordflow">if</span> (inVarToAddrsTable(rhs))</div>
782
+ <div class="line"><a name="l00785"></a><span class="lineno"> 785</span>&#160; {</div>
783
+ <div class="line"><a name="l00786"></a><span class="lineno"> 786</span>&#160; <a class="code" href="classSVF_1_1AddressValue.html">VAddrs</a> &amp;addrs = getVAddrs(rhs);</div>
784
+ <div class="line"><a name="l00787"></a><span class="lineno"> 787</span>&#160; assert(!addrs.<a class="code" href="classSVF_1_1AddressValue.html#aa7291f4b74bb824fb38b8c383fa0b6a0">empty</a>());</div>
785
+ <div class="line"><a name="l00788"></a><span class="lineno"> 788</span>&#160; <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> rhsItv = <a class="code" href="classSVF_1_1IntervalValue.html#aa027be2f9243ce4cae799b265b019443">IntervalValue::bottom</a>();</div>
786
+ <div class="line"><a name="l00789"></a><span class="lineno"> 789</span>&#160; <a class="code" href="classSVF_1_1AddressValue.html">AddressValue</a> rhsAddr;</div>
787
+ <div class="line"><a name="l00790"></a><span class="lineno"> 790</span>&#160; <span class="keywordtype">bool</span> isItv = <span class="keyword">false</span>, isAddr = <span class="keyword">false</span>;</div>
788
+ <div class="line"><a name="l00791"></a><span class="lineno"> 791</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &amp;addr: addrs)</div>
789
+ <div class="line"><a name="l00792"></a><span class="lineno"> 792</span>&#160; {</div>
790
+ <div class="line"><a name="l00793"></a><span class="lineno"> 793</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> objId = getInternalID(addr);</div>
791
+ <div class="line"><a name="l00794"></a><span class="lineno"> 794</span>&#160; <span class="keywordflow">if</span> (inLocToIValTable(objId))</div>
792
+ <div class="line"><a name="l00795"></a><span class="lineno"> 795</span>&#160; {</div>
793
+ <div class="line"><a name="l00796"></a><span class="lineno"> 796</span>&#160; rhsItv.<a class="code" href="classSVF_1_1IntervalValue.html#a3771eb932069dcad8212009efc411b99">join_with</a>(_es.load(addr));</div>
794
+ <div class="line"><a name="l00797"></a><span class="lineno"> 797</span>&#160; isItv = <span class="keyword">true</span>;</div>
795
+ <div class="line"><a name="l00798"></a><span class="lineno"> 798</span>&#160; }</div>
796
+ <div class="line"><a name="l00799"></a><span class="lineno"> 799</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (inLocToAddrsTable(objId))</div>
797
+ <div class="line"><a name="l00800"></a><span class="lineno"> 800</span>&#160; {</div>
798
+ <div class="line"><a name="l00801"></a><span class="lineno"> 801</span>&#160; rhsAddr.<a class="code" href="classSVF_1_1AddressValue.html#acad5216bdc02a234d57abfe9ae72a12a">join_with</a>(_es.loadVAddrs(addr));</div>
799
+ <div class="line"><a name="l00802"></a><span class="lineno"> 802</span>&#160; isAddr = <span class="keyword">true</span>;</div>
800
+ <div class="line"><a name="l00803"></a><span class="lineno"> 803</span>&#160; }</div>
801
+ <div class="line"><a name="l00804"></a><span class="lineno"> 804</span>&#160; <span class="keywordflow">else</span></div>
802
+ <div class="line"><a name="l00805"></a><span class="lineno"> 805</span>&#160; {</div>
803
+ <div class="line"><a name="l00806"></a><span class="lineno"> 806</span>&#160; <span class="comment">// rhs not in table</span></div>
804
+ <div class="line"><a name="l00807"></a><span class="lineno"> 807</span>&#160; }</div>
805
+ <div class="line"><a name="l00808"></a><span class="lineno"> 808</span>&#160; }</div>
806
+ <div class="line"><a name="l00809"></a><span class="lineno"> 809</span>&#160; <span class="keywordflow">if</span> (isItv)</div>
807
+ <div class="line"><a name="l00810"></a><span class="lineno"> 810</span>&#160; {</div>
808
+ <div class="line"><a name="l00811"></a><span class="lineno"> 811</span>&#160; <span class="comment">// lhs var is an integer</span></div>
809
+ <div class="line"><a name="l00812"></a><span class="lineno"> 812</span>&#160; _es[lhs] = rhsItv;</div>
810
+ <div class="line"><a name="l00813"></a><span class="lineno"> 813</span>&#160; }</div>
811
+ <div class="line"><a name="l00814"></a><span class="lineno"> 814</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (isAddr)</div>
812
+ <div class="line"><a name="l00815"></a><span class="lineno"> 815</span>&#160; {</div>
813
+ <div class="line"><a name="l00816"></a><span class="lineno"> 816</span>&#160; <span class="comment">// lhs var is an address</span></div>
814
+ <div class="line"><a name="l00817"></a><span class="lineno"> 817</span>&#160; _es.getVAddrs(lhs) = rhsAddr;</div>
815
+ <div class="line"><a name="l00818"></a><span class="lineno"> 818</span>&#160; }</div>
816
+ <div class="line"><a name="l00819"></a><span class="lineno"> 819</span>&#160; <span class="keywordflow">else</span></div>
817
+ <div class="line"><a name="l00820"></a><span class="lineno"> 820</span>&#160; {</div>
818
+ <div class="line"><a name="l00821"></a><span class="lineno"> 821</span>&#160; <span class="comment">// rhs not in table</span></div>
819
+ <div class="line"><a name="l00822"></a><span class="lineno"> 822</span>&#160; }</div>
820
+ <div class="line"><a name="l00823"></a><span class="lineno"> 823</span>&#160; }</div>
821
+ <div class="line"><a name="l00824"></a><span class="lineno"> 824</span>&#160;}</div>
822
+ <div class="line"><a name="l00825"></a><span class="lineno"> 825</span>&#160; </div>
823
+ <div class="line"><a name="l00826"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2ItvExeState.html#aed2e41879bae8389c49e69356b7aaac5"> 826</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#aed2e41879bae8389c49e69356b7aaac5">SVFIR2ItvExeState::translateStore</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1StoreStmt.html">StoreStmt</a> *store)</div>
824
+ <div class="line"><a name="l00827"></a><span class="lineno"> 827</span>&#160;{</div>
825
+ <div class="line"><a name="l00828"></a><span class="lineno"> 828</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> rhs = store-&gt;<a class="code" href="classSVF_1_1AssignStmt.html#a4cec89489e82c60c287cae3327f3f01d">getRHSVarID</a>();</div>
826
+ <div class="line"><a name="l00829"></a><span class="lineno"> 829</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> lhs = store-&gt;<a class="code" href="classSVF_1_1AssignStmt.html#a98f731be7be9bc8e7fd09f5c2204c840">getLHSVarID</a>();</div>
827
+ <div class="line"><a name="l00830"></a><span class="lineno"> 830</span>&#160; <span class="keywordflow">if</span> (inVarToAddrsTable(lhs))</div>
828
+ <div class="line"><a name="l00831"></a><span class="lineno"> 831</span>&#160; {</div>
829
+ <div class="line"><a name="l00832"></a><span class="lineno"> 832</span>&#160; <span class="keywordflow">if</span> (inVarToIValTable(rhs))</div>
830
+ <div class="line"><a name="l00833"></a><span class="lineno"> 833</span>&#160; {</div>
831
+ <div class="line"><a name="l00834"></a><span class="lineno"> 834</span>&#160; assert(!getVAddrs(lhs).empty());</div>
832
+ <div class="line"><a name="l00835"></a><span class="lineno"> 835</span>&#160; <a class="code" href="classSVF_1_1AddressValue.html">VAddrs</a> &amp;addrs = getVAddrs(lhs);</div>
833
+ <div class="line"><a name="l00836"></a><span class="lineno"> 836</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &amp;addr: addrs)</div>
834
+ <div class="line"><a name="l00837"></a><span class="lineno"> 837</span>&#160; {</div>
835
+ <div class="line"><a name="l00838"></a><span class="lineno"> 838</span>&#160; _es.store(addr, _es[rhs]);</div>
836
+ <div class="line"><a name="l00839"></a><span class="lineno"> 839</span>&#160; }</div>
837
+ <div class="line"><a name="l00840"></a><span class="lineno"> 840</span>&#160; }</div>
838
+ <div class="line"><a name="l00841"></a><span class="lineno"> 841</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (inVarToAddrsTable(rhs))</div>
839
+ <div class="line"><a name="l00842"></a><span class="lineno"> 842</span>&#160; {</div>
840
+ <div class="line"><a name="l00843"></a><span class="lineno"> 843</span>&#160; assert(!getVAddrs(lhs).empty());</div>
841
+ <div class="line"><a name="l00844"></a><span class="lineno"> 844</span>&#160; <a class="code" href="classSVF_1_1AddressValue.html">VAddrs</a> &amp;addrs = getVAddrs(lhs);</div>
842
+ <div class="line"><a name="l00845"></a><span class="lineno"> 845</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &amp;addr: addrs)</div>
843
+ <div class="line"><a name="l00846"></a><span class="lineno"> 846</span>&#160; {</div>
844
+ <div class="line"><a name="l00847"></a><span class="lineno"> 847</span>&#160; assert(!getVAddrs(rhs).empty());</div>
845
+ <div class="line"><a name="l00848"></a><span class="lineno"> 848</span>&#160; _es.storeVAddrs(addr, getVAddrs(rhs));</div>
846
+ <div class="line"><a name="l00849"></a><span class="lineno"> 849</span>&#160; }</div>
903
847
  <div class="line"><a name="l00850"></a><span class="lineno"> 850</span>&#160; </div>
904
- <div class="line"><a name="l00851"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2ItvExeState.html#aa274b5b4e18c28ec8035ca1b073aacfc"> 851</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#aa274b5b4e18c28ec8035ca1b073aacfc">SVFIR2ItvExeState::translateGep</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1GepStmt.html">GepStmt</a> *gep)</div>
905
- <div class="line"><a name="l00852"></a><span class="lineno"> 852</span>&#160;{</div>
906
- <div class="line"><a name="l00853"></a><span class="lineno"> 853</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> rhs = gep-&gt;<a class="code" href="classSVF_1_1AssignStmt.html#a4cec89489e82c60c287cae3327f3f01d">getRHSVarID</a>();</div>
907
- <div class="line"><a name="l00854"></a><span class="lineno"> 854</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> lhs = gep-&gt;<a class="code" href="classSVF_1_1AssignStmt.html#a98f731be7be9bc8e7fd09f5c2204c840">getLHSVarID</a>();</div>
908
- <div class="line"><a name="l00855"></a><span class="lineno"> 855</span>&#160; <span class="keywordflow">if</span> (!inVarToAddrsTable(rhs)) <span class="keywordflow">return</span>;</div>
909
- <div class="line"><a name="l00856"></a><span class="lineno"> 856</span>&#160; assert(!getVAddrs(rhs).empty());</div>
910
- <div class="line"><a name="l00857"></a><span class="lineno"> 857</span>&#160; <a class="code" href="classSVF_1_1AddressValue.html">VAddrs</a> &amp;rhsVal = getVAddrs(rhs);</div>
911
- <div class="line"><a name="l00858"></a><span class="lineno"> 858</span>&#160; <span class="keywordflow">if</span> (rhsVal.<a class="code" href="classSVF_1_1AddressValue.html#aa7291f4b74bb824fb38b8c383fa0b6a0">empty</a>()) <span class="keywordflow">return</span>;</div>
912
- <div class="line"><a name="l00859"></a><span class="lineno"> 859</span>&#160; std::pair&lt;APOffset, APOffset&gt; offsetPair = getGepOffset(gep);</div>
913
- <div class="line"><a name="l00860"></a><span class="lineno"> 860</span>&#160; <span class="keywordflow">if</span> (offsetPair.first == -1 &amp;&amp; offsetPair.second == -1) <span class="keywordflow">return</span>;</div>
914
- <div class="line"><a name="l00861"></a><span class="lineno"> 861</span>&#160; <span class="keywordflow">if</span> (!isVirtualMemAddress(*rhsVal.<a class="code" href="classSVF_1_1AddressValue.html#aed0b4789beda4980e4e215a65350f323">begin</a>()))</div>
915
- <div class="line"><a name="l00862"></a><span class="lineno"> 862</span>&#160; {</div>
916
- <div class="line"><a name="l00863"></a><span class="lineno"> 863</span>&#160; <span class="keywordflow">return</span>;</div>
917
- <div class="line"><a name="l00864"></a><span class="lineno"> 864</span>&#160; }</div>
918
- <div class="line"><a name="l00865"></a><span class="lineno"> 865</span>&#160; <span class="keywordflow">else</span></div>
919
- <div class="line"><a name="l00866"></a><span class="lineno"> 866</span>&#160; {</div>
920
- <div class="line"><a name="l00867"></a><span class="lineno"> 867</span>&#160; <a class="code" href="classSVF_1_1AddressValue.html">VAddrs</a> gepAddrs;</div>
921
- <div class="line"><a name="l00868"></a><span class="lineno"> 868</span>&#160; <a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> ub = offsetPair.second;</div>
922
- <div class="line"><a name="l00869"></a><span class="lineno"> 869</span>&#160; <span class="keywordflow">if</span> (offsetPair.second &gt; <a class="code" href="classSVF_1_1Options.html#aaab923c093730b1670a54f09340b1bd5">Options::MaxFieldLimit</a>() - 1)</div>
848
+ <div class="line"><a name="l00851"></a><span class="lineno"> 851</span>&#160; }</div>
849
+ <div class="line"><a name="l00852"></a><span class="lineno"> 852</span>&#160; }</div>
850
+ <div class="line"><a name="l00853"></a><span class="lineno"> 853</span>&#160;}</div>
851
+ <div class="line"><a name="l00854"></a><span class="lineno"> 854</span>&#160; </div>
852
+ <div class="line"><a name="l00855"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2ItvExeState.html#afcf2f81101f1b9580d82b5c2efb83999"> 855</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#afcf2f81101f1b9580d82b5c2efb83999">SVFIR2ItvExeState::translateCopy</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CopyStmt.html">CopyStmt</a> *<a class="code" href="cJSON_8cpp.html#a7669ee67a0563250c1efaa24d130e1ac">copy</a>)</div>
853
+ <div class="line"><a name="l00856"></a><span class="lineno"> 856</span>&#160;{</div>
854
+ <div class="line"><a name="l00857"></a><span class="lineno"> 857</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> lhs = <a class="code" href="cJSON_8cpp.html#a7669ee67a0563250c1efaa24d130e1ac">copy</a>-&gt;getLHSVarID();</div>
855
+ <div class="line"><a name="l00858"></a><span class="lineno"> 858</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> rhs = <a class="code" href="cJSON_8cpp.html#a7669ee67a0563250c1efaa24d130e1ac">copy</a>-&gt;getRHSVarID();</div>
856
+ <div class="line"><a name="l00859"></a><span class="lineno"> 859</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SVFIR.html#a37cfa2aa4e7b98ef9dc8179f581a2362">PAG::getPAG</a>()-&gt;isBlkPtr(lhs))</div>
857
+ <div class="line"><a name="l00860"></a><span class="lineno"> 860</span>&#160; {</div>
858
+ <div class="line"><a name="l00861"></a><span class="lineno"> 861</span>&#160; _es[lhs] = <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div>
859
+ <div class="line"><a name="l00862"></a><span class="lineno"> 862</span>&#160; }</div>
860
+ <div class="line"><a name="l00863"></a><span class="lineno"> 863</span>&#160; <span class="keywordflow">else</span></div>
861
+ <div class="line"><a name="l00864"></a><span class="lineno"> 864</span>&#160; {</div>
862
+ <div class="line"><a name="l00865"></a><span class="lineno"> 865</span>&#160; <span class="keywordflow">if</span> (inVarToIValTable(rhs))</div>
863
+ <div class="line"><a name="l00866"></a><span class="lineno"> 866</span>&#160; {</div>
864
+ <div class="line"><a name="l00867"></a><span class="lineno"> 867</span>&#160; _es[lhs] = _es[rhs];</div>
865
+ <div class="line"><a name="l00868"></a><span class="lineno"> 868</span>&#160; }</div>
866
+ <div class="line"><a name="l00869"></a><span class="lineno"> 869</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (inVarToAddrsTable(rhs))</div>
923
867
  <div class="line"><a name="l00870"></a><span class="lineno"> 870</span>&#160; {</div>
924
- <div class="line"><a name="l00871"></a><span class="lineno"> 871</span>&#160; ub = <a class="code" href="classSVF_1_1Options.html#aaab923c093730b1670a54f09340b1bd5">Options::MaxFieldLimit</a>() - 1;</div>
925
- <div class="line"><a name="l00872"></a><span class="lineno"> 872</span>&#160; }</div>
926
- <div class="line"><a name="l00873"></a><span class="lineno"> 873</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> i = offsetPair.first; i &lt;= ub; i++)</div>
927
- <div class="line"><a name="l00874"></a><span class="lineno"> 874</span>&#160; {</div>
928
- <div class="line"><a name="l00875"></a><span class="lineno"> 875</span>&#160; gepAddrs.<a class="code" href="classSVF_1_1AddressValue.html#acad5216bdc02a234d57abfe9ae72a12a">join_with</a>(getGepObjAddress(rhs, i));</div>
929
- <div class="line"><a name="l00876"></a><span class="lineno"> 876</span>&#160; }</div>
930
- <div class="line"><a name="l00877"></a><span class="lineno"> 877</span>&#160; <span class="keywordflow">if</span>(gepAddrs.<a class="code" href="classSVF_1_1AddressValue.html#aa7291f4b74bb824fb38b8c383fa0b6a0">empty</a>()) <span class="keywordflow">return</span>;</div>
931
- <div class="line"><a name="l00878"></a><span class="lineno"> 878</span>&#160; _es.getVAddrs(lhs) = gepAddrs;</div>
932
- <div class="line"><a name="l00879"></a><span class="lineno"> 879</span>&#160; <span class="keywordflow">return</span>;</div>
933
- <div class="line"><a name="l00880"></a><span class="lineno"> 880</span>&#160; }</div>
934
- <div class="line"><a name="l00881"></a><span class="lineno"> 881</span>&#160;}</div>
935
- <div class="line"><a name="l00882"></a><span class="lineno"> 882</span>&#160; </div>
936
- <div class="line"><a name="l00883"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2ItvExeState.html#a604126e59364cb56b44a88cae5afbfb8"> 883</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a604126e59364cb56b44a88cae5afbfb8">SVFIR2ItvExeState::translateSelect</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SelectStmt.html">SelectStmt</a> *select)</div>
937
- <div class="line"><a name="l00884"></a><span class="lineno"> 884</span>&#160;{</div>
938
- <div class="line"><a name="l00885"></a><span class="lineno"> 885</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> res = select-&gt;<a class="code" href="classSVF_1_1MultiOpndStmt.html#a71a530eb9fa9f7e273e471b4a75a039e">getResID</a>();</div>
939
- <div class="line"><a name="l00886"></a><span class="lineno"> 886</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> tval = select-&gt;<a class="code" href="classSVF_1_1SelectStmt.html#a537c03b08444da34c26b9e989bb0e568">getTrueValue</a>()-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>();</div>
940
- <div class="line"><a name="l00887"></a><span class="lineno"> 887</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> fval = select-&gt;<a class="code" href="classSVF_1_1SelectStmt.html#af64d7855e352a0afb5d2e98a8622a4ad">getFalseValue</a>()-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>();</div>
941
- <div class="line"><a name="l00888"></a><span class="lineno"> 888</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> cond = select-&gt;<a class="code" href="classSVF_1_1SelectStmt.html#ad4c3e9529176478bb726279a76050e8c">getCondition</a>()-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>();</div>
942
- <div class="line"><a name="l00889"></a><span class="lineno"> 889</span>&#160; <span class="keywordflow">if</span> (inVarToIValTable(tval) &amp;&amp; inVarToIValTable(fval) &amp;&amp; inVarToIValTable(cond))</div>
943
- <div class="line"><a name="l00890"></a><span class="lineno"> 890</span>&#160; {</div>
944
- <div class="line"><a name="l00891"></a><span class="lineno"> 891</span>&#160; <span class="keywordflow">if</span> (_es[cond].is_numeral())</div>
945
- <div class="line"><a name="l00892"></a><span class="lineno"> 892</span>&#160; {</div>
946
- <div class="line"><a name="l00893"></a><span class="lineno"> 893</span>&#160; _es[res] = _es[cond].is_zero() ? _es[fval] : _es[tval];</div>
947
- <div class="line"><a name="l00894"></a><span class="lineno"> 894</span>&#160; }</div>
948
- <div class="line"><a name="l00895"></a><span class="lineno"> 895</span>&#160; <span class="keywordflow">else</span></div>
949
- <div class="line"><a name="l00896"></a><span class="lineno"> 896</span>&#160; {</div>
950
- <div class="line"><a name="l00897"></a><span class="lineno"> 897</span>&#160; _es[res] = _es[cond];</div>
951
- <div class="line"><a name="l00898"></a><span class="lineno"> 898</span>&#160; }</div>
952
- <div class="line"><a name="l00899"></a><span class="lineno"> 899</span>&#160; }</div>
953
- <div class="line"><a name="l00900"></a><span class="lineno"> 900</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (inVarToAddrsTable(tval) &amp;&amp; inVarToAddrsTable(fval) &amp;&amp; inVarToIValTable(cond))</div>
954
- <div class="line"><a name="l00901"></a><span class="lineno"> 901</span>&#160; {</div>
955
- <div class="line"><a name="l00902"></a><span class="lineno"> 902</span>&#160; <span class="keywordflow">if</span> (_es[cond].is_numeral())</div>
956
- <div class="line"><a name="l00903"></a><span class="lineno"> 903</span>&#160; {</div>
957
- <div class="line"><a name="l00904"></a><span class="lineno"> 904</span>&#160; assert(!getVAddrs(fval).empty());</div>
958
- <div class="line"><a name="l00905"></a><span class="lineno"> 905</span>&#160; assert(!getVAddrs(tval).empty());</div>
959
- <div class="line"><a name="l00906"></a><span class="lineno"> 906</span>&#160; _es.getVAddrs(res) = _es[cond].is_zero() ? getVAddrs(fval) : getVAddrs(tval);</div>
960
- <div class="line"><a name="l00907"></a><span class="lineno"> 907</span>&#160; }</div>
961
- <div class="line"><a name="l00908"></a><span class="lineno"> 908</span>&#160; }</div>
962
- <div class="line"><a name="l00909"></a><span class="lineno"> 909</span>&#160;}</div>
963
- <div class="line"><a name="l00910"></a><span class="lineno"> 910</span>&#160; </div>
964
- <div class="line"><a name="l00911"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2ItvExeState.html#ae00e5398cbeb9aa1cfc464da4250a91e"> 911</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ae00e5398cbeb9aa1cfc464da4250a91e">SVFIR2ItvExeState::translatePhi</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1PhiStmt.html">PhiStmt</a> *phi)</div>
965
- <div class="line"><a name="l00912"></a><span class="lineno"> 912</span>&#160;{</div>
966
- <div class="line"><a name="l00913"></a><span class="lineno"> 913</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> res = phi-&gt;<a class="code" href="classSVF_1_1MultiOpndStmt.html#a71a530eb9fa9f7e273e471b4a75a039e">getResID</a>();</div>
967
- <div class="line"><a name="l00914"></a><span class="lineno"> 914</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> i = 0; i &lt; phi-&gt;<a class="code" href="classSVF_1_1MultiOpndStmt.html#af300571886b7aa2d84b0a70851c99bc3">getOpVarNum</a>(); i++)</div>
968
- <div class="line"><a name="l00915"></a><span class="lineno"> 915</span>&#160; {</div>
969
- <div class="line"><a name="l00916"></a><span class="lineno"> 916</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> curId = phi-&gt;<a class="code" href="classSVF_1_1MultiOpndStmt.html#a5c6efcc023e90ef2e618586091958c59">getOpVarID</a>(i);</div>
970
- <div class="line"><a name="l00917"></a><span class="lineno"> 917</span>&#160; <span class="keywordflow">if</span> (inVarToIValTable(curId))</div>
971
- <div class="line"><a name="l00918"></a><span class="lineno"> 918</span>&#160; {</div>
972
- <div class="line"><a name="l00919"></a><span class="lineno"> 919</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> &amp;cur = _es[curId];</div>
973
- <div class="line"><a name="l00920"></a><span class="lineno"> 920</span>&#160; <span class="keywordflow">if</span> (!inVarToIValTable(res))</div>
974
- <div class="line"><a name="l00921"></a><span class="lineno"> 921</span>&#160; {</div>
975
- <div class="line"><a name="l00922"></a><span class="lineno"> 922</span>&#160; _es[res] = cur;</div>
976
- <div class="line"><a name="l00923"></a><span class="lineno"> 923</span>&#160; }</div>
977
- <div class="line"><a name="l00924"></a><span class="lineno"> 924</span>&#160; <span class="keywordflow">else</span></div>
978
- <div class="line"><a name="l00925"></a><span class="lineno"> 925</span>&#160; {</div>
979
- <div class="line"><a name="l00926"></a><span class="lineno"> 926</span>&#160; _es[res].<a class="code" href="classSVF_1_1IntervalValue.html#a3771eb932069dcad8212009efc411b99">join_with</a>(cur);</div>
980
- <div class="line"><a name="l00927"></a><span class="lineno"> 927</span>&#160; }</div>
981
- <div class="line"><a name="l00928"></a><span class="lineno"> 928</span>&#160; }</div>
982
- <div class="line"><a name="l00929"></a><span class="lineno"> 929</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (inVarToAddrsTable(curId))</div>
983
- <div class="line"><a name="l00930"></a><span class="lineno"> 930</span>&#160; {</div>
984
- <div class="line"><a name="l00931"></a><span class="lineno"> 931</span>&#160; assert(!getVAddrs(curId).empty());</div>
985
- <div class="line"><a name="l00932"></a><span class="lineno"> 932</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1AddressValue.html">VAddrs</a> &amp;cur = getVAddrs(curId);</div>
986
- <div class="line"><a name="l00933"></a><span class="lineno"> 933</span>&#160; <span class="keywordflow">if</span> (!inVarToAddrsTable(res))</div>
987
- <div class="line"><a name="l00934"></a><span class="lineno"> 934</span>&#160; {</div>
988
- <div class="line"><a name="l00935"></a><span class="lineno"> 935</span>&#160; _es.getVAddrs(res) = cur;</div>
989
- <div class="line"><a name="l00936"></a><span class="lineno"> 936</span>&#160; }</div>
990
- <div class="line"><a name="l00937"></a><span class="lineno"> 937</span>&#160; <span class="keywordflow">else</span></div>
991
- <div class="line"><a name="l00938"></a><span class="lineno"> 938</span>&#160; {</div>
992
- <div class="line"><a name="l00939"></a><span class="lineno"> 939</span>&#160; _es.getVAddrs(res).<a class="code" href="classSVF_1_1AddressValue.html#acad5216bdc02a234d57abfe9ae72a12a">join_with</a>(cur);</div>
993
- <div class="line"><a name="l00940"></a><span class="lineno"> 940</span>&#160; }</div>
994
- <div class="line"><a name="l00941"></a><span class="lineno"> 941</span>&#160; }</div>
995
- <div class="line"><a name="l00942"></a><span class="lineno"> 942</span>&#160; }</div>
996
- <div class="line"><a name="l00943"></a><span class="lineno"> 943</span>&#160;}</div>
997
- <div class="line"><a name="l00944"></a><span class="lineno"> 944</span>&#160; </div>
998
- <div class="line"><a name="l00945"></a><span class="lineno"> 945</span>&#160; </div>
999
- <div class="line"><a name="l00946"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2ItvExeState.html#adb82778157e0f5e7a2ea4d803bcd07ad"> 946</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#adb82778157e0f5e7a2ea4d803bcd07ad">SVFIR2ItvExeState::translateCall</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallPE.html">CallPE</a> *callPE)</div>
1000
- <div class="line"><a name="l00947"></a><span class="lineno"> 947</span>&#160;{</div>
1001
- <div class="line"><a name="l00948"></a><span class="lineno"> 948</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> lhs = callPE-&gt;<a class="code" href="classSVF_1_1AssignStmt.html#a98f731be7be9bc8e7fd09f5c2204c840">getLHSVarID</a>();</div>
1002
- <div class="line"><a name="l00949"></a><span class="lineno"> 949</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> rhs = callPE-&gt;<a class="code" href="classSVF_1_1AssignStmt.html#a4cec89489e82c60c287cae3327f3f01d">getRHSVarID</a>();</div>
1003
- <div class="line"><a name="l00950"></a><span class="lineno"> 950</span>&#160; <span class="keywordflow">if</span> (inVarToIValTable(rhs))</div>
1004
- <div class="line"><a name="l00951"></a><span class="lineno"> 951</span>&#160; {</div>
1005
- <div class="line"><a name="l00952"></a><span class="lineno"> 952</span>&#160; _es[lhs] = _es[rhs];</div>
1006
- <div class="line"><a name="l00953"></a><span class="lineno"> 953</span>&#160; }</div>
1007
- <div class="line"><a name="l00954"></a><span class="lineno"> 954</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (inVarToAddrsTable(rhs))</div>
1008
- <div class="line"><a name="l00955"></a><span class="lineno"> 955</span>&#160; {</div>
1009
- <div class="line"><a name="l00956"></a><span class="lineno"> 956</span>&#160; assert(!getVAddrs(rhs).empty());</div>
1010
- <div class="line"><a name="l00957"></a><span class="lineno"> 957</span>&#160; _es.getVAddrs(lhs) = getVAddrs(rhs);</div>
1011
- <div class="line"><a name="l00958"></a><span class="lineno"> 958</span>&#160; }</div>
1012
- <div class="line"><a name="l00959"></a><span class="lineno"> 959</span>&#160;}</div>
1013
- <div class="line"><a name="l00960"></a><span class="lineno"> 960</span>&#160; </div>
1014
- <div class="line"><a name="l00961"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2ItvExeState.html#a31e299f91eed29d1a8db3b884d57d1dc"> 961</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a31e299f91eed29d1a8db3b884d57d1dc">SVFIR2ItvExeState::translateRet</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1RetPE.html">RetPE</a> *retPE)</div>
1015
- <div class="line"><a name="l00962"></a><span class="lineno"> 962</span>&#160;{</div>
1016
- <div class="line"><a name="l00963"></a><span class="lineno"> 963</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> lhs = retPE-&gt;<a class="code" href="classSVF_1_1AssignStmt.html#a98f731be7be9bc8e7fd09f5c2204c840">getLHSVarID</a>();</div>
1017
- <div class="line"><a name="l00964"></a><span class="lineno"> 964</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> rhs = retPE-&gt;<a class="code" href="classSVF_1_1AssignStmt.html#a4cec89489e82c60c287cae3327f3f01d">getRHSVarID</a>();</div>
1018
- <div class="line"><a name="l00965"></a><span class="lineno"> 965</span>&#160; <span class="keywordflow">if</span> (inVarToIValTable(rhs))</div>
1019
- <div class="line"><a name="l00966"></a><span class="lineno"> 966</span>&#160; {</div>
1020
- <div class="line"><a name="l00967"></a><span class="lineno"> 967</span>&#160; _es[lhs] = _es[rhs];</div>
1021
- <div class="line"><a name="l00968"></a><span class="lineno"> 968</span>&#160; }</div>
1022
- <div class="line"><a name="l00969"></a><span class="lineno"> 969</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (inVarToAddrsTable(rhs))</div>
1023
- <div class="line"><a name="l00970"></a><span class="lineno"> 970</span>&#160; {</div>
1024
- <div class="line"><a name="l00971"></a><span class="lineno"> 971</span>&#160; assert(!getVAddrs(rhs).empty());</div>
1025
- <div class="line"><a name="l00972"></a><span class="lineno"> 972</span>&#160; _es.getVAddrs(lhs) = getVAddrs(rhs);</div>
1026
- <div class="line"><a name="l00973"></a><span class="lineno"> 973</span>&#160; }</div>
1027
- <div class="line"><a name="l00974"></a><span class="lineno"> 974</span>&#160;}</div>
868
+ <div class="line"><a name="l00871"></a><span class="lineno"> 871</span>&#160; assert(!getVAddrs(rhs).empty());</div>
869
+ <div class="line"><a name="l00872"></a><span class="lineno"> 872</span>&#160; _es.getVAddrs(lhs) = getVAddrs(rhs);</div>
870
+ <div class="line"><a name="l00873"></a><span class="lineno"> 873</span>&#160; }</div>
871
+ <div class="line"><a name="l00874"></a><span class="lineno"> 874</span>&#160; }</div>
872
+ <div class="line"><a name="l00875"></a><span class="lineno"> 875</span>&#160;}</div>
873
+ <div class="line"><a name="l00876"></a><span class="lineno"> 876</span>&#160; </div>
874
+ <div class="line"><a name="l00877"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2ItvExeState.html#aa274b5b4e18c28ec8035ca1b073aacfc"> 877</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#aa274b5b4e18c28ec8035ca1b073aacfc">SVFIR2ItvExeState::translateGep</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1GepStmt.html">GepStmt</a> *gep)</div>
875
+ <div class="line"><a name="l00878"></a><span class="lineno"> 878</span>&#160;{</div>
876
+ <div class="line"><a name="l00879"></a><span class="lineno"> 879</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> rhs = gep-&gt;<a class="code" href="classSVF_1_1AssignStmt.html#a4cec89489e82c60c287cae3327f3f01d">getRHSVarID</a>();</div>
877
+ <div class="line"><a name="l00880"></a><span class="lineno"> 880</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> lhs = gep-&gt;<a class="code" href="classSVF_1_1AssignStmt.html#a98f731be7be9bc8e7fd09f5c2204c840">getLHSVarID</a>();</div>
878
+ <div class="line"><a name="l00881"></a><span class="lineno"> 881</span>&#160; <span class="keywordflow">if</span> (!inVarToAddrsTable(rhs)) <span class="keywordflow">return</span>;</div>
879
+ <div class="line"><a name="l00882"></a><span class="lineno"> 882</span>&#160; assert(!getVAddrs(rhs).empty());</div>
880
+ <div class="line"><a name="l00883"></a><span class="lineno"> 883</span>&#160; <a class="code" href="classSVF_1_1AddressValue.html">VAddrs</a> &amp;rhsVal = getVAddrs(rhs);</div>
881
+ <div class="line"><a name="l00884"></a><span class="lineno"> 884</span>&#160; <span class="keywordflow">if</span> (rhsVal.<a class="code" href="classSVF_1_1AddressValue.html#aa7291f4b74bb824fb38b8c383fa0b6a0">empty</a>()) <span class="keywordflow">return</span>;</div>
882
+ <div class="line"><a name="l00885"></a><span class="lineno"> 885</span>&#160; <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> offsetPair = getItvOfFlattenedElemIndex(gep);</div>
883
+ <div class="line"><a name="l00886"></a><span class="lineno"> 886</span>&#160; <span class="keywordflow">if</span> (!isVirtualMemAddress(*rhsVal.<a class="code" href="classSVF_1_1AddressValue.html#aed0b4789beda4980e4e215a65350f323">begin</a>()))</div>
884
+ <div class="line"><a name="l00887"></a><span class="lineno"> 887</span>&#160; <span class="keywordflow">return</span>;</div>
885
+ <div class="line"><a name="l00888"></a><span class="lineno"> 888</span>&#160; <span class="keywordflow">else</span></div>
886
+ <div class="line"><a name="l00889"></a><span class="lineno"> 889</span>&#160; {</div>
887
+ <div class="line"><a name="l00890"></a><span class="lineno"> 890</span>&#160; <a class="code" href="classSVF_1_1AddressValue.html">VAddrs</a> gepAddrs;</div>
888
+ <div class="line"><a name="l00891"></a><span class="lineno"> 891</span>&#160; <a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> lb = offsetPair.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a4181e5e15e10304ea524e5f8b2a3f576">getNumeral</a>() &lt; <a class="code" href="classSVF_1_1Options.html#aaab923c093730b1670a54f09340b1bd5">Options::MaxFieldLimit</a>()?</div>
889
+ <div class="line"><a name="l00892"></a><span class="lineno"> 892</span>&#160; offsetPair.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a4181e5e15e10304ea524e5f8b2a3f576">getNumeral</a>(): <a class="code" href="classSVF_1_1Options.html#aaab923c093730b1670a54f09340b1bd5">Options::MaxFieldLimit</a>();</div>
890
+ <div class="line"><a name="l00893"></a><span class="lineno"> 893</span>&#160; <a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> ub = offsetPair.<a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a4181e5e15e10304ea524e5f8b2a3f576">getNumeral</a>() &lt; <a class="code" href="classSVF_1_1Options.html#aaab923c093730b1670a54f09340b1bd5">Options::MaxFieldLimit</a>()?</div>
891
+ <div class="line"><a name="l00894"></a><span class="lineno"> 894</span>&#160; offsetPair.<a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a4181e5e15e10304ea524e5f8b2a3f576">getNumeral</a>(): <a class="code" href="classSVF_1_1Options.html#aaab923c093730b1670a54f09340b1bd5">Options::MaxFieldLimit</a>();</div>
892
+ <div class="line"><a name="l00895"></a><span class="lineno"> 895</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> i = lb; i &lt;= ub; i++)</div>
893
+ <div class="line"><a name="l00896"></a><span class="lineno"> 896</span>&#160; gepAddrs.<a class="code" href="classSVF_1_1AddressValue.html#acad5216bdc02a234d57abfe9ae72a12a">join_with</a>(getGepObjAddress(rhs, i));</div>
894
+ <div class="line"><a name="l00897"></a><span class="lineno"> 897</span>&#160; <span class="keywordflow">if</span>(gepAddrs.<a class="code" href="classSVF_1_1AddressValue.html#aa7291f4b74bb824fb38b8c383fa0b6a0">empty</a>()) <span class="keywordflow">return</span>;</div>
895
+ <div class="line"><a name="l00898"></a><span class="lineno"> 898</span>&#160; _es.getVAddrs(lhs) = gepAddrs;</div>
896
+ <div class="line"><a name="l00899"></a><span class="lineno"> 899</span>&#160; <span class="keywordflow">return</span>;</div>
897
+ <div class="line"><a name="l00900"></a><span class="lineno"> 900</span>&#160; }</div>
898
+ <div class="line"><a name="l00901"></a><span class="lineno"> 901</span>&#160;}</div>
899
+ <div class="line"><a name="l00902"></a><span class="lineno"> 902</span>&#160; </div>
900
+ <div class="line"><a name="l00903"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2ItvExeState.html#a604126e59364cb56b44a88cae5afbfb8"> 903</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a604126e59364cb56b44a88cae5afbfb8">SVFIR2ItvExeState::translateSelect</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SelectStmt.html">SelectStmt</a> *select)</div>
901
+ <div class="line"><a name="l00904"></a><span class="lineno"> 904</span>&#160;{</div>
902
+ <div class="line"><a name="l00905"></a><span class="lineno"> 905</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> res = select-&gt;<a class="code" href="classSVF_1_1MultiOpndStmt.html#a71a530eb9fa9f7e273e471b4a75a039e">getResID</a>();</div>
903
+ <div class="line"><a name="l00906"></a><span class="lineno"> 906</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> tval = select-&gt;<a class="code" href="classSVF_1_1SelectStmt.html#a537c03b08444da34c26b9e989bb0e568">getTrueValue</a>()-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>();</div>
904
+ <div class="line"><a name="l00907"></a><span class="lineno"> 907</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> fval = select-&gt;<a class="code" href="classSVF_1_1SelectStmt.html#af64d7855e352a0afb5d2e98a8622a4ad">getFalseValue</a>()-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>();</div>
905
+ <div class="line"><a name="l00908"></a><span class="lineno"> 908</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> cond = select-&gt;<a class="code" href="classSVF_1_1SelectStmt.html#ad4c3e9529176478bb726279a76050e8c">getCondition</a>()-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>();</div>
906
+ <div class="line"><a name="l00909"></a><span class="lineno"> 909</span>&#160; <span class="keywordflow">if</span> (inVarToIValTable(tval) &amp;&amp; inVarToIValTable(fval) &amp;&amp; inVarToIValTable(cond))</div>
907
+ <div class="line"><a name="l00910"></a><span class="lineno"> 910</span>&#160; {</div>
908
+ <div class="line"><a name="l00911"></a><span class="lineno"> 911</span>&#160; <span class="keywordflow">if</span> (_es[cond].is_numeral())</div>
909
+ <div class="line"><a name="l00912"></a><span class="lineno"> 912</span>&#160; {</div>
910
+ <div class="line"><a name="l00913"></a><span class="lineno"> 913</span>&#160; _es[res] = _es[cond].is_zero() ? _es[fval] : _es[tval];</div>
911
+ <div class="line"><a name="l00914"></a><span class="lineno"> 914</span>&#160; }</div>
912
+ <div class="line"><a name="l00915"></a><span class="lineno"> 915</span>&#160; <span class="keywordflow">else</span></div>
913
+ <div class="line"><a name="l00916"></a><span class="lineno"> 916</span>&#160; {</div>
914
+ <div class="line"><a name="l00917"></a><span class="lineno"> 917</span>&#160; _es[res] = _es[cond];</div>
915
+ <div class="line"><a name="l00918"></a><span class="lineno"> 918</span>&#160; }</div>
916
+ <div class="line"><a name="l00919"></a><span class="lineno"> 919</span>&#160; }</div>
917
+ <div class="line"><a name="l00920"></a><span class="lineno"> 920</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (inVarToAddrsTable(tval) &amp;&amp; inVarToAddrsTable(fval) &amp;&amp; inVarToIValTable(cond))</div>
918
+ <div class="line"><a name="l00921"></a><span class="lineno"> 921</span>&#160; {</div>
919
+ <div class="line"><a name="l00922"></a><span class="lineno"> 922</span>&#160; <span class="keywordflow">if</span> (_es[cond].is_numeral())</div>
920
+ <div class="line"><a name="l00923"></a><span class="lineno"> 923</span>&#160; {</div>
921
+ <div class="line"><a name="l00924"></a><span class="lineno"> 924</span>&#160; assert(!getVAddrs(fval).empty());</div>
922
+ <div class="line"><a name="l00925"></a><span class="lineno"> 925</span>&#160; assert(!getVAddrs(tval).empty());</div>
923
+ <div class="line"><a name="l00926"></a><span class="lineno"> 926</span>&#160; _es.getVAddrs(res) = _es[cond].is_zero() ? getVAddrs(fval) : getVAddrs(tval);</div>
924
+ <div class="line"><a name="l00927"></a><span class="lineno"> 927</span>&#160; }</div>
925
+ <div class="line"><a name="l00928"></a><span class="lineno"> 928</span>&#160; }</div>
926
+ <div class="line"><a name="l00929"></a><span class="lineno"> 929</span>&#160;}</div>
927
+ <div class="line"><a name="l00930"></a><span class="lineno"> 930</span>&#160; </div>
928
+ <div class="line"><a name="l00931"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2ItvExeState.html#ae00e5398cbeb9aa1cfc464da4250a91e"> 931</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ae00e5398cbeb9aa1cfc464da4250a91e">SVFIR2ItvExeState::translatePhi</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1PhiStmt.html">PhiStmt</a> *phi)</div>
929
+ <div class="line"><a name="l00932"></a><span class="lineno"> 932</span>&#160;{</div>
930
+ <div class="line"><a name="l00933"></a><span class="lineno"> 933</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> res = phi-&gt;<a class="code" href="classSVF_1_1MultiOpndStmt.html#a71a530eb9fa9f7e273e471b4a75a039e">getResID</a>();</div>
931
+ <div class="line"><a name="l00934"></a><span class="lineno"> 934</span>&#160; <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> rhsItv = <a class="code" href="classSVF_1_1IntervalValue.html#aa027be2f9243ce4cae799b265b019443">IntervalValue::bottom</a>();</div>
932
+ <div class="line"><a name="l00935"></a><span class="lineno"> 935</span>&#160; <a class="code" href="classSVF_1_1AddressValue.html">AddressValue</a> rhsAddr;</div>
933
+ <div class="line"><a name="l00936"></a><span class="lineno"> 936</span>&#160; <span class="keywordtype">bool</span> isItv = <span class="keyword">false</span>, isAddr = <span class="keyword">false</span>;</div>
934
+ <div class="line"><a name="l00937"></a><span class="lineno"> 937</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> i = 0; i &lt; phi-&gt;<a class="code" href="classSVF_1_1MultiOpndStmt.html#af300571886b7aa2d84b0a70851c99bc3">getOpVarNum</a>(); i++)</div>
935
+ <div class="line"><a name="l00938"></a><span class="lineno"> 938</span>&#160; {</div>
936
+ <div class="line"><a name="l00939"></a><span class="lineno"> 939</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> curId = phi-&gt;<a class="code" href="classSVF_1_1MultiOpndStmt.html#a5c6efcc023e90ef2e618586091958c59">getOpVarID</a>(i);</div>
937
+ <div class="line"><a name="l00940"></a><span class="lineno"> 940</span>&#160; <span class="keywordflow">if</span> (inVarToIValTable(curId))</div>
938
+ <div class="line"><a name="l00941"></a><span class="lineno"> 941</span>&#160; {</div>
939
+ <div class="line"><a name="l00942"></a><span class="lineno"> 942</span>&#160; rhsItv.<a class="code" href="classSVF_1_1IntervalValue.html#a3771eb932069dcad8212009efc411b99">join_with</a>(_es[curId]);</div>
940
+ <div class="line"><a name="l00943"></a><span class="lineno"> 943</span>&#160; isItv = <span class="keyword">true</span>;</div>
941
+ <div class="line"><a name="l00944"></a><span class="lineno"> 944</span>&#160; }</div>
942
+ <div class="line"><a name="l00945"></a><span class="lineno"> 945</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (inVarToAddrsTable(curId))</div>
943
+ <div class="line"><a name="l00946"></a><span class="lineno"> 946</span>&#160; {</div>
944
+ <div class="line"><a name="l00947"></a><span class="lineno"> 947</span>&#160; assert(!getVAddrs(curId).empty());</div>
945
+ <div class="line"><a name="l00948"></a><span class="lineno"> 948</span>&#160; rhsAddr.<a class="code" href="classSVF_1_1AddressValue.html#acad5216bdc02a234d57abfe9ae72a12a">join_with</a>(getVAddrs(curId));</div>
946
+ <div class="line"><a name="l00949"></a><span class="lineno"> 949</span>&#160; isAddr = <span class="keyword">true</span>;</div>
947
+ <div class="line"><a name="l00950"></a><span class="lineno"> 950</span>&#160; }</div>
948
+ <div class="line"><a name="l00951"></a><span class="lineno"> 951</span>&#160; <span class="keywordflow">else</span></div>
949
+ <div class="line"><a name="l00952"></a><span class="lineno"> 952</span>&#160; {</div>
950
+ <div class="line"><a name="l00953"></a><span class="lineno"> 953</span>&#160; <span class="comment">// rhs not in the table</span></div>
951
+ <div class="line"><a name="l00954"></a><span class="lineno"> 954</span>&#160; }</div>
952
+ <div class="line"><a name="l00955"></a><span class="lineno"> 955</span>&#160; }</div>
953
+ <div class="line"><a name="l00956"></a><span class="lineno"> 956</span>&#160; <span class="keywordflow">if</span> (isItv)</div>
954
+ <div class="line"><a name="l00957"></a><span class="lineno"> 957</span>&#160; {</div>
955
+ <div class="line"><a name="l00958"></a><span class="lineno"> 958</span>&#160; <span class="comment">// res var is an integer</span></div>
956
+ <div class="line"><a name="l00959"></a><span class="lineno"> 959</span>&#160; _es[res] = rhsItv;</div>
957
+ <div class="line"><a name="l00960"></a><span class="lineno"> 960</span>&#160; }</div>
958
+ <div class="line"><a name="l00961"></a><span class="lineno"> 961</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (isAddr)</div>
959
+ <div class="line"><a name="l00962"></a><span class="lineno"> 962</span>&#160; {</div>
960
+ <div class="line"><a name="l00963"></a><span class="lineno"> 963</span>&#160; <span class="comment">// res var is an address</span></div>
961
+ <div class="line"><a name="l00964"></a><span class="lineno"> 964</span>&#160; _es.getVAddrs(res) = rhsAddr;</div>
962
+ <div class="line"><a name="l00965"></a><span class="lineno"> 965</span>&#160; }</div>
963
+ <div class="line"><a name="l00966"></a><span class="lineno"> 966</span>&#160; <span class="keywordflow">else</span></div>
964
+ <div class="line"><a name="l00967"></a><span class="lineno"> 967</span>&#160; {</div>
965
+ <div class="line"><a name="l00968"></a><span class="lineno"> 968</span>&#160; <span class="comment">// rhs not in table</span></div>
966
+ <div class="line"><a name="l00969"></a><span class="lineno"> 969</span>&#160; }</div>
967
+ <div class="line"><a name="l00970"></a><span class="lineno"> 970</span>&#160;}</div>
968
+ <div class="line"><a name="l00971"></a><span class="lineno"> 971</span>&#160; </div>
969
+ <div class="line"><a name="l00972"></a><span class="lineno"> 972</span>&#160; </div>
970
+ <div class="line"><a name="l00973"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2ItvExeState.html#adb82778157e0f5e7a2ea4d803bcd07ad"> 973</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#adb82778157e0f5e7a2ea4d803bcd07ad">SVFIR2ItvExeState::translateCall</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallPE.html">CallPE</a> *callPE)</div>
971
+ <div class="line"><a name="l00974"></a><span class="lineno"> 974</span>&#160;{</div>
972
+ <div class="line"><a name="l00975"></a><span class="lineno"> 975</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> lhs = callPE-&gt;<a class="code" href="classSVF_1_1AssignStmt.html#a98f731be7be9bc8e7fd09f5c2204c840">getLHSVarID</a>();</div>
973
+ <div class="line"><a name="l00976"></a><span class="lineno"> 976</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> rhs = callPE-&gt;<a class="code" href="classSVF_1_1AssignStmt.html#a4cec89489e82c60c287cae3327f3f01d">getRHSVarID</a>();</div>
974
+ <div class="line"><a name="l00977"></a><span class="lineno"> 977</span>&#160; <span class="keywordflow">if</span> (inVarToIValTable(rhs))</div>
975
+ <div class="line"><a name="l00978"></a><span class="lineno"> 978</span>&#160; {</div>
976
+ <div class="line"><a name="l00979"></a><span class="lineno"> 979</span>&#160; _es[lhs] = _es[rhs];</div>
977
+ <div class="line"><a name="l00980"></a><span class="lineno"> 980</span>&#160; }</div>
978
+ <div class="line"><a name="l00981"></a><span class="lineno"> 981</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (inVarToAddrsTable(rhs))</div>
979
+ <div class="line"><a name="l00982"></a><span class="lineno"> 982</span>&#160; {</div>
980
+ <div class="line"><a name="l00983"></a><span class="lineno"> 983</span>&#160; assert(!getVAddrs(rhs).empty());</div>
981
+ <div class="line"><a name="l00984"></a><span class="lineno"> 984</span>&#160; _es.getVAddrs(lhs) = getVAddrs(rhs);</div>
982
+ <div class="line"><a name="l00985"></a><span class="lineno"> 985</span>&#160; }</div>
983
+ <div class="line"><a name="l00986"></a><span class="lineno"> 986</span>&#160;}</div>
984
+ <div class="line"><a name="l00987"></a><span class="lineno"> 987</span>&#160; </div>
985
+ <div class="line"><a name="l00988"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2ItvExeState.html#a31e299f91eed29d1a8db3b884d57d1dc"> 988</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a31e299f91eed29d1a8db3b884d57d1dc">SVFIR2ItvExeState::translateRet</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1RetPE.html">RetPE</a> *retPE)</div>
986
+ <div class="line"><a name="l00989"></a><span class="lineno"> 989</span>&#160;{</div>
987
+ <div class="line"><a name="l00990"></a><span class="lineno"> 990</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> lhs = retPE-&gt;<a class="code" href="classSVF_1_1AssignStmt.html#a98f731be7be9bc8e7fd09f5c2204c840">getLHSVarID</a>();</div>
988
+ <div class="line"><a name="l00991"></a><span class="lineno"> 991</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> rhs = retPE-&gt;<a class="code" href="classSVF_1_1AssignStmt.html#a4cec89489e82c60c287cae3327f3f01d">getRHSVarID</a>();</div>
989
+ <div class="line"><a name="l00992"></a><span class="lineno"> 992</span>&#160; <span class="keywordflow">if</span> (inVarToIValTable(rhs))</div>
990
+ <div class="line"><a name="l00993"></a><span class="lineno"> 993</span>&#160; {</div>
991
+ <div class="line"><a name="l00994"></a><span class="lineno"> 994</span>&#160; _es[lhs] = _es[rhs];</div>
992
+ <div class="line"><a name="l00995"></a><span class="lineno"> 995</span>&#160; }</div>
993
+ <div class="line"><a name="l00996"></a><span class="lineno"> 996</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (inVarToAddrsTable(rhs))</div>
994
+ <div class="line"><a name="l00997"></a><span class="lineno"> 997</span>&#160; {</div>
995
+ <div class="line"><a name="l00998"></a><span class="lineno"> 998</span>&#160; assert(!getVAddrs(rhs).empty());</div>
996
+ <div class="line"><a name="l00999"></a><span class="lineno"> 999</span>&#160; _es.getVAddrs(lhs) = getVAddrs(rhs);</div>
997
+ <div class="line"><a name="l01000"></a><span class="lineno"> 1000</span>&#160; }</div>
998
+ <div class="line"><a name="l01001"></a><span class="lineno"> 1001</span>&#160;}</div>
1028
999
  </div><!-- fragment --></div><!-- contents -->
1029
1000
  <div class="ttc" id="anamespaceSVF_html_a5c4820681ef340339ddded756eb82ae1"><div class="ttname"><a href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">SVF::APOffset</a></div><div class="ttdeci">s64_t APOffset</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00061">SVFType.h:61</a></div></div>
1030
- <div class="ttc" id="aclassSVF_1_1CmpStmt_html_ad8e01744bfd98d584661025ce59338acad23a87cb6f2b3b2486a9a1277b491c09"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acad23a87cb6f2b3b2486a9a1277b491c09">SVF::CmpStmt::FCMP_UNE</a></div><div class="ttdeci">@ FCMP_UNE</div><div class="ttdoc">1 1 1 0 True if unordered or not equal</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00902">SVFStatements.h:902</a></div></div>
1031
- <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_adb82778157e0f5e7a2ea4d803bcd07ad"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#adb82778157e0f5e7a2ea4d803bcd07ad">SVF::SVFIR2ItvExeState::translateCall</a></div><div class="ttdeci">void translateCall(const CallPE *callPE)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00946">SVFIR2ItvExeState.cpp:946</a></div></div>
1001
+ <div class="ttc" id="aclassSVF_1_1CmpStmt_html_ad8e01744bfd98d584661025ce59338acad23a87cb6f2b3b2486a9a1277b491c09"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acad23a87cb6f2b3b2486a9a1277b491c09">SVF::CmpStmt::FCMP_UNE</a></div><div class="ttdeci">@ FCMP_UNE</div><div class="ttdoc">1 1 1 0 True if unordered or not equal</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00904">SVFStatements.h:904</a></div></div>
1002
+ <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_adb82778157e0f5e7a2ea4d803bcd07ad"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#adb82778157e0f5e7a2ea4d803bcd07ad">SVF::SVFIR2ItvExeState::translateCall</a></div><div class="ttdeci">void translateCall(const CallPE *callPE)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00973">SVFIR2ItvExeState.cpp:973</a></div></div>
1032
1003
  <div class="ttc" id="aclassSVF_1_1SVFType_html_a333e01a9c431c8f53bd2fc597bd5c40cac8c846ff3208d07a4a39c7a21433c6a5"><div class="ttname"><a href="classSVF_1_1SVFType.html#a333e01a9c431c8f53bd2fc597bd5c40cac8c846ff3208d07a4a39c7a21433c6a5">SVF::SVFType::SVFArrayTy</a></div><div class="ttdeci">@ SVFArrayTy</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00257">SVFType.h:257</a></div></div>
1033
- <div class="ttc" id="aclassSVF_1_1CopyStmt_html"><div class="ttname"><a href="classSVF_1_1CopyStmt.html">SVF::CopyStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00350">SVFStatements.h:350</a></div></div>
1034
- <div class="ttc" id="aclassSVF_1_1BinaryOPStmt_html_a2f647224242dd87099104e0fdc994de6aafa66e75600b0098c4fa3304720cb7a6"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6aafa66e75600b0098c4fa3304720cb7a6">SVF::BinaryOPStmt::FRem</a></div><div class="ttdeci">@ FRem</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00983">SVFStatements.h:983</a></div></div>
1035
- <div class="ttc" id="aclassSVF_1_1BinaryOPStmt_html_a2f647224242dd87099104e0fdc994de6a22a047e74227056ef3340628fae80198"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a22a047e74227056ef3340628fae80198">SVF::BinaryOPStmt::FMul</a></div><div class="ttdeci">@ FMul</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00977">SVFStatements.h:977</a></div></div>
1036
- <div class="ttc" id="aclassSVF_1_1BinaryOPStmt_html_a2f647224242dd87099104e0fdc994de6af7dba9dda5edcee046ca81fb184858bc"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6af7dba9dda5edcee046ca81fb184858bc">SVF::BinaryOPStmt::URem</a></div><div class="ttdeci">@ URem</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00981">SVFStatements.h:981</a></div></div>
1037
- <div class="ttc" id="aclassSVF_1_1CmpStmt_html_ad8e01744bfd98d584661025ce59338aca5e3cf3105b8f13da66719856579956fa"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca5e3cf3105b8f13da66719856579956fa">SVF::CmpStmt::FCMP_OLT</a></div><div class="ttdeci">@ FCMP_OLT</div><div class="ttdoc">0 1 0 0 True if ordered and less than</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00892">SVFStatements.h:892</a></div></div>
1004
+ <div class="ttc" id="aclassSVF_1_1CopyStmt_html"><div class="ttname"><a href="classSVF_1_1CopyStmt.html">SVF::CopyStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00351">SVFStatements.h:351</a></div></div>
1005
+ <div class="ttc" id="aclassSVF_1_1BinaryOPStmt_html_a2f647224242dd87099104e0fdc994de6aafa66e75600b0098c4fa3304720cb7a6"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6aafa66e75600b0098c4fa3304720cb7a6">SVF::BinaryOPStmt::FRem</a></div><div class="ttdeci">@ FRem</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00985">SVFStatements.h:985</a></div></div>
1006
+ <div class="ttc" id="aclassSVF_1_1GepStmt_html_a28a7ca818584abdc2d345b41d592c5dc"><div class="ttname"><a href="classSVF_1_1GepStmt.html#a28a7ca818584abdc2d345b41d592c5dc">SVF::GepStmt::accumulateConstantByteOffset</a></div><div class="ttdeci">APOffset accumulateConstantByteOffset() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00510">SVFStatements.h:510</a></div></div>
1007
+ <div class="ttc" id="aclassSVF_1_1BinaryOPStmt_html_a2f647224242dd87099104e0fdc994de6a22a047e74227056ef3340628fae80198"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a22a047e74227056ef3340628fae80198">SVF::BinaryOPStmt::FMul</a></div><div class="ttdeci">@ FMul</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00979">SVFStatements.h:979</a></div></div>
1008
+ <div class="ttc" id="aclassSVF_1_1BinaryOPStmt_html_a2f647224242dd87099104e0fdc994de6af7dba9dda5edcee046ca81fb184858bc"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6af7dba9dda5edcee046ca81fb184858bc">SVF::BinaryOPStmt::URem</a></div><div class="ttdeci">@ URem</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00983">SVFStatements.h:983</a></div></div>
1009
+ <div class="ttc" id="aclassSVF_1_1CmpStmt_html_ad8e01744bfd98d584661025ce59338aca5e3cf3105b8f13da66719856579956fa"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca5e3cf3105b8f13da66719856579956fa">SVF::CmpStmt::FCMP_OLT</a></div><div class="ttdeci">@ FCMP_OLT</div><div class="ttdoc">0 1 0 0 True if ordered and less than</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00894">SVFStatements.h:894</a></div></div>
1038
1010
  <div class="ttc" id="aclassSVF_1_1AddrStmt_html"><div class="ttname"><a href="classSVF_1_1AddrStmt.html">SVF::AddrStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00313">SVFStatements.h:313</a></div></div>
1039
- <div class="ttc" id="aclassSVF_1_1PhiStmt_html"><div class="ttname"><a href="classSVF_1_1PhiStmt.html">SVF::PhiStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00747">SVFStatements.h:747</a></div></div>
1040
- <div class="ttc" id="aclassSVF_1_1SelectStmt_html_af64d7855e352a0afb5d2e98a8622a4ad"><div class="ttname"><a href="classSVF_1_1SelectStmt.html#af64d7855e352a0afb5d2e98a8622a4ad">SVF::SelectStmt::getFalseValue</a></div><div class="ttdeci">const SVFVar * getFalseValue() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00861">SVFStatements.h:861</a></div></div>
1041
- <div class="ttc" id="aclassSVF_1_1SVFPointerType_html"><div class="ttname"><a href="classSVF_1_1SVFPointerType.html">SVF::SVFPointerType</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00344">SVFType.h:344</a></div></div>
1042
- <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_aed7fc3951608972b6f8fdce14b4a0cbb"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#aed7fc3951608972b6f8fdce14b4a0cbb">SVF::SVFIR2ItvExeState::getIndexfromGepTypePair</a></div><div class="ttdeci">std::pair&lt; APOffset, APOffset &gt; getIndexfromGepTypePair(const AccessPath::VarAndGepTypePair &amp;gep_pair, const GepStmt *gep)</div><div class="ttdoc">Return the Index offset from one gep param offset.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00241">SVFIR2ItvExeState.cpp:241</a></div></div>
1011
+ <div class="ttc" id="aclassSVF_1_1PhiStmt_html"><div class="ttname"><a href="classSVF_1_1PhiStmt.html">SVF::PhiStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00749">SVFStatements.h:749</a></div></div>
1012
+ <div class="ttc" id="aclassSVF_1_1SelectStmt_html_af64d7855e352a0afb5d2e98a8622a4ad"><div class="ttname"><a href="classSVF_1_1SelectStmt.html#af64d7855e352a0afb5d2e98a8622a4ad">SVF::SelectStmt::getFalseValue</a></div><div class="ttdeci">const SVFVar * getFalseValue() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00863">SVFStatements.h:863</a></div></div>
1013
+ <div class="ttc" id="aclassSVF_1_1SVFPointerType_html"><div class="ttname"><a href="classSVF_1_1SVFPointerType.html">SVF::SVFPointerType</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00351">SVFType.h:351</a></div></div>
1043
1014
  <div class="ttc" id="aclassSVF_1_1MultiOpndStmt_html_a5c6efcc023e90ef2e618586091958c59"><div class="ttname"><a href="classSVF_1_1MultiOpndStmt.html#a5c6efcc023e90ef2e618586091958c59">SVF::MultiOpndStmt::getOpVarID</a></div><div class="ttdeci">NodeID getOpVarID(u32_t pos) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8cpp_source.html#l00284">SVFStatements.cpp:284</a></div></div>
1044
- <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_a604126e59364cb56b44a88cae5afbfb8"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#a604126e59364cb56b44a88cae5afbfb8">SVF::SVFIR2ItvExeState::translateSelect</a></div><div class="ttdeci">void translateSelect(const SelectStmt *select)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00883">SVFIR2ItvExeState.cpp:883</a></div></div>
1015
+ <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_a604126e59364cb56b44a88cae5afbfb8"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#a604126e59364cb56b44a88cae5afbfb8">SVF::SVFIR2ItvExeState::translateSelect</a></div><div class="ttdeci">void translateSelect(const SelectStmt *select)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00903">SVFIR2ItvExeState.cpp:903</a></div></div>
1045
1016
  <div class="ttc" id="aclassSVF_1_1AddressValue_html_acad5216bdc02a234d57abfe9ae72a12a"><div class="ttname"><a href="classSVF_1_1AddressValue.html#acad5216bdc02a234d57abfe9ae72a12a">SVF::AddressValue::join_with</a></div><div class="ttdeci">bool join_with(const AddressValue &amp;other)</div><div class="ttdoc">Current AddressValue joins with another AddressValue.</div><div class="ttdef"><b>Definition:</b> <a href="AddressValue_8h_source.html#l00139">AddressValue.h:139</a></div></div>
1046
1017
  <div class="ttc" id="aclassSVF_1_1AddressValue_html_ae93859318bf4f618b4cf681988a870ce"><div class="ttname"><a href="classSVF_1_1AddressValue.html#ae93859318bf4f618b4cf681988a870ce">SVF::AddressValue::size</a></div><div class="ttdeci">u32_t size() const</div><div class="ttdef"><b>Definition:</b> <a href="AddressValue_8h_source.html#l00118">AddressValue.h:118</a></div></div>
1047
- <div class="ttc" id="aclassSVF_1_1CmpStmt_html_ad8e01744bfd98d584661025ce59338acaa100cf99398f6118d332191380574c06"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acaa100cf99398f6118d332191380574c06">SVF::CmpStmt::FCMP_FALSE</a></div><div class="ttdeci">@ FCMP_FALSE</div><div class="ttdoc">0 0 0 0 Always false (always folded)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00888">SVFStatements.h:888</a></div></div>
1048
- <div class="ttc" id="aclassSVF_1_1CmpStmt_html_ad8e01744bfd98d584661025ce59338aca9dd165c6da06811ffc8c2e53b30ab32d"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca9dd165c6da06811ffc8c2e53b30ab32d">SVF::CmpStmt::FCMP_OLE</a></div><div class="ttdeci">@ FCMP_OLE</div><div class="ttdoc">0 1 0 1 True if ordered and less than or equal</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00893">SVFStatements.h:893</a></div></div>
1018
+ <div class="ttc" id="aclassSVF_1_1CmpStmt_html_ad8e01744bfd98d584661025ce59338acaa100cf99398f6118d332191380574c06"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acaa100cf99398f6118d332191380574c06">SVF::CmpStmt::FCMP_FALSE</a></div><div class="ttdeci">@ FCMP_FALSE</div><div class="ttdoc">0 0 0 0 Always false (always folded)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00890">SVFStatements.h:890</a></div></div>
1019
+ <div class="ttc" id="aclassSVF_1_1CmpStmt_html_ad8e01744bfd98d584661025ce59338aca9dd165c6da06811ffc8c2e53b30ab32d"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca9dd165c6da06811ffc8c2e53b30ab32d">SVF::CmpStmt::FCMP_OLE</a></div><div class="ttdeci">@ FCMP_OLE</div><div class="ttdoc">0 1 0 1 True if ordered and less than or equal</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00895">SVFStatements.h:895</a></div></div>
1049
1020
  <div class="ttc" id="aclassSVF_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>
1050
1021
  <div class="ttc" id="aclassSVF_1_1IntervalValue_html_a0df07a2659cbf3a918de5b0d7c407264"><div class="ttname"><a href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">SVF::IntervalValue::lb</a></div><div class="ttdeci">const NumericLiteral &amp; lb() const</div><div class="ttdoc">Return the lower bound.</div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00218">IntervalValue.h:218</a></div></div>
1051
- <div class="ttc" id="aclassSVF_1_1CmpStmt_html_ad8e01744bfd98d584661025ce59338aca7833b647068883840c9bb438103e736d"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca7833b647068883840c9bb438103e736d">SVF::CmpStmt::ICMP_ULT</a></div><div class="ttdeci">@ ICMP_ULT</div><div class="ttdoc">unsigned less than</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00911">SVFStatements.h:911</a></div></div>
1022
+ <div class="ttc" id="aclassSVF_1_1CmpStmt_html_ad8e01744bfd98d584661025ce59338aca7833b647068883840c9bb438103e736d"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca7833b647068883840c9bb438103e736d">SVF::CmpStmt::ICMP_ULT</a></div><div class="ttdeci">@ ICMP_ULT</div><div class="ttdoc">unsigned less than</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00913">SVFStatements.h:913</a></div></div>
1052
1023
  <div class="ttc" id="aclassSVF_1_1SVFType_html_a333e01a9c431c8f53bd2fc597bd5c40cae2025d3e9d7943027c74ae6bba3fff22"><div class="ttname"><a href="classSVF_1_1SVFType.html#a333e01a9c431c8f53bd2fc597bd5c40cae2025d3e9d7943027c74ae6bba3fff22">SVF::SVFType::SVFIntegerTy</a></div><div class="ttdeci">@ SVFIntegerTy</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00254">SVFType.h:254</a></div></div>
1053
1024
  <div class="ttc" id="anamespaceSVF_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="BasicTypes_8h_source.html#l00065">BasicTypes.h:65</a></div></div>
1054
- <div class="ttc" id="aclassSVF_1_1BinaryOPStmt_html_a2f647224242dd87099104e0fdc994de6ac89b793572db14a3c018122cf9fc79d6"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6ac89b793572db14a3c018122cf9fc79d6">SVF::BinaryOPStmt::Xor</a></div><div class="ttdeci">@ Xor</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00989">SVFStatements.h:989</a></div></div>
1025
+ <div class="ttc" id="aclassSVF_1_1BinaryOPStmt_html_a2f647224242dd87099104e0fdc994de6ac89b793572db14a3c018122cf9fc79d6"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6ac89b793572db14a3c018122cf9fc79d6">SVF::BinaryOPStmt::Xor</a></div><div class="ttdeci">@ Xor</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00991">SVFStatements.h:991</a></div></div>
1055
1026
  <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_a75d5dfbc8252ef0994951af32aa53b74"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#a75d5dfbc8252ef0994951af32aa53b74">SVF::SVFIR2ItvExeState::globalNullVaddrs</a></div><div class="ttdeci">static VAddrs globalNullVaddrs</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8h_source.html#l00045">SVFIR2ItvExeState.h:45</a></div></div>
1056
1027
  <div class="ttc" id="aSVFIR2ItvExeState_8h_html"><div class="ttname"><a href="SVFIR2ItvExeState_8h.html">SVFIR2ItvExeState.h</a></div></div>
1057
- <div class="ttc" id="aclassSVF_1_1BinaryOPStmt_html_a2f647224242dd87099104e0fdc994de6a758382a3b40e116175ca321fa4449d7f"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a758382a3b40e116175ca321fa4449d7f">SVF::BinaryOPStmt::Sub</a></div><div class="ttdeci">@ Sub</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00974">SVFStatements.h:974</a></div></div>
1058
- <div class="ttc" id="aclassSVF_1_1CmpStmt_html_ad8e01744bfd98d584661025ce59338aca3428808abe683bfc6bb0267077cdb128"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca3428808abe683bfc6bb0267077cdb128">SVF::CmpStmt::ICMP_UGE</a></div><div class="ttdeci">@ ICMP_UGE</div><div class="ttdoc">unsigned greater or equal</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00910">SVFStatements.h:910</a></div></div>
1059
- <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_af7f42ee51b03b1aaaee18f10eec0c2b9"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#af7f42ee51b03b1aaaee18f10eec0c2b9">SVF::SVFIR2ItvExeState::translateAddr</a></div><div class="ttdeci">void translateAddr(const AddrStmt *addr)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00489">SVFIR2ItvExeState.cpp:489</a></div></div>
1060
- <div class="ttc" id="aclassSVF_1_1SelectStmt_html"><div class="ttname"><a href="classSVF_1_1SelectStmt.html">SVF::SelectStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00815">SVFStatements.h:815</a></div></div>
1061
- <div class="ttc" id="aclassSVF_1_1RetPE_html"><div class="ttname"><a href="classSVF_1_1RetPE.html">SVF::RetPE</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00604">SVFStatements.h:604</a></div></div>
1028
+ <div class="ttc" id="aclassSVF_1_1BinaryOPStmt_html_a2f647224242dd87099104e0fdc994de6a758382a3b40e116175ca321fa4449d7f"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a758382a3b40e116175ca321fa4449d7f">SVF::BinaryOPStmt::Sub</a></div><div class="ttdeci">@ Sub</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00976">SVFStatements.h:976</a></div></div>
1029
+ <div class="ttc" id="aclassSVF_1_1CmpStmt_html_ad8e01744bfd98d584661025ce59338aca3428808abe683bfc6bb0267077cdb128"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca3428808abe683bfc6bb0267077cdb128">SVF::CmpStmt::ICMP_UGE</a></div><div class="ttdeci">@ ICMP_UGE</div><div class="ttdoc">unsigned greater or equal</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00912">SVFStatements.h:912</a></div></div>
1030
+ <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_af7f42ee51b03b1aaaee18f10eec0c2b9"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#af7f42ee51b03b1aaaee18f10eec0c2b9">SVF::SVFIR2ItvExeState::translateAddr</a></div><div class="ttdeci">void translateAddr(const AddrStmt *addr)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00515">SVFIR2ItvExeState.cpp:515</a></div></div>
1031
+ <div class="ttc" id="aclassSVF_1_1SelectStmt_html"><div class="ttname"><a href="classSVF_1_1SelectStmt.html">SVF::SelectStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00817">SVFStatements.h:817</a></div></div>
1032
+ <div class="ttc" id="aclassSVF_1_1RetPE_html"><div class="ttname"><a href="classSVF_1_1RetPE.html">SVF::RetPE</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00606">SVFStatements.h:606</a></div></div>
1062
1033
  <div class="ttc" id="aclassSVF_1_1ExeState_html_a69895af213955ea1ba29812bfddcea66"><div class="ttname"><a href="classSVF_1_1ExeState.html#a69895af213955ea1ba29812bfddcea66">SVF::ExeState::_varToVAddrs</a></div><div class="ttdeci">VarToVAddrs _varToVAddrs</div><div class="ttdef"><b>Definition:</b> <a href="ExeState_8h_source.html#l00172">ExeState.h:172</a></div></div>
1063
- <div class="ttc" id="aclassSVF_1_1CmpStmt_html"><div class="ttname"><a href="classSVF_1_1CmpStmt.html">SVF::CmpStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00870">SVFStatements.h:870</a></div></div>
1064
- <div class="ttc" id="aclassSVF_1_1BinaryOPStmt_html_a2f647224242dd87099104e0fdc994de6a90745e5effc8b7ef43c693d1e4fa7dbe"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a90745e5effc8b7ef43c693d1e4fa7dbe">SVF::BinaryOPStmt::Or</a></div><div class="ttdeci">@ Or</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00988">SVFStatements.h:988</a></div></div>
1065
- <div class="ttc" id="aclassSVF_1_1BinaryOPStmt_html_a2f647224242dd87099104e0fdc994de6a193780e40cee5123c543b6f739b3b46b"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a193780e40cee5123c543b6f739b3b46b">SVF::BinaryOPStmt::Shl</a></div><div class="ttdeci">@ Shl</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00984">SVFStatements.h:984</a></div></div>
1066
- <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_aac5cc8767eb750bf121f1897788dee24"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#aac5cc8767eb750bf121f1897788dee24">SVF::SVFIR2ItvExeState::translateCmp</a></div><div class="ttdeci">void translateCmp(const CmpStmt *cmp)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00570">SVFIR2ItvExeState.cpp:570</a></div></div>
1067
- <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_aa274b5b4e18c28ec8035ca1b073aacfc"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#aa274b5b4e18c28ec8035ca1b073aacfc">SVF::SVFIR2ItvExeState::translateGep</a></div><div class="ttdeci">void translateGep(const GepStmt *gep)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00851">SVFIR2ItvExeState.cpp:851</a></div></div>
1034
+ <div class="ttc" id="aclassSVF_1_1CmpStmt_html"><div class="ttname"><a href="classSVF_1_1CmpStmt.html">SVF::CmpStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00872">SVFStatements.h:872</a></div></div>
1035
+ <div class="ttc" id="aclassSVF_1_1BinaryOPStmt_html_a2f647224242dd87099104e0fdc994de6a90745e5effc8b7ef43c693d1e4fa7dbe"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a90745e5effc8b7ef43c693d1e4fa7dbe">SVF::BinaryOPStmt::Or</a></div><div class="ttdeci">@ Or</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00990">SVFStatements.h:990</a></div></div>
1036
+ <div class="ttc" id="aclassSVF_1_1BinaryOPStmt_html_a2f647224242dd87099104e0fdc994de6a193780e40cee5123c543b6f739b3b46b"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a193780e40cee5123c543b6f739b3b46b">SVF::BinaryOPStmt::Shl</a></div><div class="ttdeci">@ Shl</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00986">SVFStatements.h:986</a></div></div>
1037
+ <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_aac5cc8767eb750bf121f1897788dee24"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#aac5cc8767eb750bf121f1897788dee24">SVF::SVFIR2ItvExeState::translateCmp</a></div><div class="ttdeci">void translateCmp(const CmpStmt *cmp)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00596">SVFIR2ItvExeState.cpp:596</a></div></div>
1038
+ <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_aa274b5b4e18c28ec8035ca1b073aacfc"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#aa274b5b4e18c28ec8035ca1b073aacfc">SVF::SVFIR2ItvExeState::translateGep</a></div><div class="ttdeci">void translateGep(const GepStmt *gep)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00877">SVFIR2ItvExeState.cpp:877</a></div></div>
1068
1039
  <div class="ttc" id="aclassSVF_1_1SVFVar_html_ac2db6304ea5526fb446ae882983beeb0"><div class="ttname"><a href="classSVF_1_1SVFVar.html#ac2db6304ea5526fb446ae882983beeb0">SVF::SVFVar::getValue</a></div><div class="ttdeci">const SVFValue * 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#l00094">SVFVariables.h:94</a></div></div>
1069
- <div class="ttc" id="aclassSVF_1_1CmpStmt_html_ad8e01744bfd98d584661025ce59338aca900bbc9c7824294c3a69c2cb006c27ee"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca900bbc9c7824294c3a69c2cb006c27ee">SVF::CmpStmt::FCMP_OEQ</a></div><div class="ttdeci">@ FCMP_OEQ</div><div class="ttdoc">0 0 0 1 True if ordered and equal</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00889">SVFStatements.h:889</a></div></div>
1040
+ <div class="ttc" id="aclassSVF_1_1CmpStmt_html_ad8e01744bfd98d584661025ce59338aca900bbc9c7824294c3a69c2cb006c27ee"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca900bbc9c7824294c3a69c2cb006c27ee">SVF::CmpStmt::FCMP_OEQ</a></div><div class="ttdeci">@ FCMP_OEQ</div><div class="ttdoc">0 0 0 1 True if ordered and equal</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00891">SVFStatements.h:891</a></div></div>
1070
1041
  <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_a198e8d5f586a698462dee2c3fde8c83e"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#a198e8d5f586a698462dee2c3fde8c83e">SVF::SVFIR2ItvExeState::applySummary</a></div><div class="ttdeci">void applySummary(IntervalExeState &amp;es)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00039">SVFIR2ItvExeState.cpp:39</a></div></div>
1071
- <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_ae00e5398cbeb9aa1cfc464da4250a91e"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#ae00e5398cbeb9aa1cfc464da4250a91e">SVF::SVFIR2ItvExeState::translatePhi</a></div><div class="ttdeci">void translatePhi(const PhiStmt *phi)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00911">SVFIR2ItvExeState.cpp:911</a></div></div>
1042
+ <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_ae00e5398cbeb9aa1cfc464da4250a91e"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#ae00e5398cbeb9aa1cfc464da4250a91e">SVF::SVFIR2ItvExeState::translatePhi</a></div><div class="ttdeci">void translatePhi(const PhiStmt *phi)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00931">SVFIR2ItvExeState.cpp:931</a></div></div>
1072
1043
  <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_a57cbbcc977705ba7cd660bb5b632a66c"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#a57cbbcc977705ba7cd660bb5b632a66c">SVF::SVFIR2ItvExeState::widenVAddrs</a></div><div class="ttdeci">void widenVAddrs(IntervalExeState &amp;lhs, const IntervalExeState &amp;rhs)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00086">SVFIR2ItvExeState.cpp:86</a></div></div>
1073
- <div class="ttc" id="aclassSVF_1_1BinaryOPStmt_html_a2f647224242dd87099104e0fdc994de6ad2f8b02de2c62175d3341be92a925250"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6ad2f8b02de2c62175d3341be92a925250">SVF::BinaryOPStmt::UDiv</a></div><div class="ttdeci">@ UDiv</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00978">SVFStatements.h:978</a></div></div>
1074
- <div class="ttc" id="aclassSVF_1_1BinaryOPStmt_html_a2f647224242dd87099104e0fdc994de6a553540425a63724c8b7f2fd0ca25b567"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a553540425a63724c8b7f2fd0ca25b567">SVF::BinaryOPStmt::FDiv</a></div><div class="ttdeci">@ FDiv</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00980">SVFStatements.h:980</a></div></div>
1075
- <div class="ttc" id="aclassSVF_1_1CmpStmt_html_ad8e01744bfd98d584661025ce59338aca6121702881c763c3c8cd3e30dedc7486"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca6121702881c763c3c8cd3e30dedc7486">SVF::CmpStmt::FCMP_OGT</a></div><div class="ttdeci">@ FCMP_OGT</div><div class="ttdoc">0 0 1 0 True if ordered and greater than</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00890">SVFStatements.h:890</a></div></div>
1076
- <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_aab58bfb31793026bc54b8996371e90f4"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#aab58bfb31793026bc54b8996371e90f4">SVF::SVFIR2ItvExeState::getBytefromGepTypePair</a></div><div class="ttdeci">std::pair&lt; APOffset, APOffset &gt; getBytefromGepTypePair(const AccessPath::VarAndGepTypePair &amp;gep_pair, const GepStmt *gep)</div><div class="ttdoc">Return the byte offset from one gep param offset.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00179">SVFIR2ItvExeState.cpp:179</a></div></div>
1044
+ <div class="ttc" id="aclassSVF_1_1BinaryOPStmt_html_a2f647224242dd87099104e0fdc994de6ad2f8b02de2c62175d3341be92a925250"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6ad2f8b02de2c62175d3341be92a925250">SVF::BinaryOPStmt::UDiv</a></div><div class="ttdeci">@ UDiv</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00980">SVFStatements.h:980</a></div></div>
1045
+ <div class="ttc" id="aclassSVF_1_1BinaryOPStmt_html_a2f647224242dd87099104e0fdc994de6a553540425a63724c8b7f2fd0ca25b567"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a553540425a63724c8b7f2fd0ca25b567">SVF::BinaryOPStmt::FDiv</a></div><div class="ttdeci">@ FDiv</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00982">SVFStatements.h:982</a></div></div>
1046
+ <div class="ttc" id="aclassSVF_1_1CmpStmt_html_ad8e01744bfd98d584661025ce59338aca6121702881c763c3c8cd3e30dedc7486"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca6121702881c763c3c8cd3e30dedc7486">SVF::CmpStmt::FCMP_OGT</a></div><div class="ttdeci">@ FCMP_OGT</div><div class="ttdoc">0 0 1 0 True if ordered and greater than</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00892">SVFStatements.h:892</a></div></div>
1077
1047
  <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_a67532bdc1e4a49cf4d9da4b99b38e69a"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#a67532bdc1e4a49cf4d9da4b99b38e69a">SVF::SVFIR2ItvExeState::getGepObjAddress</a></div><div class="ttdeci">VAddrs getGepObjAddress(u32_t pointer, APOffset offset)</div><div class="ttdoc">Return the field address given a pointer points to a struct object and an offset.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00158">SVFIR2ItvExeState.cpp:158</a></div></div>
1078
1048
  <div class="ttc" id="aclassSVF_1_1IntervalValue_html_af8be90fc1b61103187908dce4ba68001"><div class="ttname"><a href="classSVF_1_1IntervalValue.html#af8be90fc1b61103187908dce4ba68001">SVF::IntervalValue::isBottom</a></div><div class="ttdeci">bool isBottom() const override</div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00060">IntervalValue.h:60</a></div></div>
1079
- <div class="ttc" id="aclassSVF_1_1CmpStmt_html_ad8e01744bfd98d584661025ce59338aca229d105d0841dc895811b29af62a91ee"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca229d105d0841dc895811b29af62a91ee">SVF::CmpStmt::ICMP_SGT</a></div><div class="ttdeci">@ ICMP_SGT</div><div class="ttdoc">signed greater than</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00913">SVFStatements.h:913</a></div></div>
1049
+ <div class="ttc" id="aclassSVF_1_1CmpStmt_html_ad8e01744bfd98d584661025ce59338aca229d105d0841dc895811b29af62a91ee"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca229d105d0841dc895811b29af62a91ee">SVF::CmpStmt::ICMP_SGT</a></div><div class="ttdeci">@ ICMP_SGT</div><div class="ttdoc">signed greater than</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00915">SVFStatements.h:915</a></div></div>
1080
1050
  <div class="ttc" id="aclassSVF_1_1ExeState_html_adb724bd1c3154368c629f4972c503d72"><div class="ttname"><a href="classSVF_1_1ExeState.html#adb724bd1c3154368c629f4972c503d72">SVF::ExeState::_locToVAddrs</a></div><div class="ttdeci">VarToVAddrs _locToVAddrs</div><div class="ttdef"><b>Definition:</b> <a href="ExeState_8h_source.html#l00173">ExeState.h:173</a></div></div>
1081
1051
  <div class="ttc" id="aclassSVF_1_1MemObj_html_a1a4ff4aaaf2573240a318e1b79328cd0"><div class="ttname"><a href="classSVF_1_1MemObj.html#a1a4ff4aaaf2573240a318e1b79328cd0">SVF::MemObj::isConstDataOrConstGlobal</a></div><div class="ttdeci">bool isConstDataOrConstGlobal() const</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00538">SymbolTableInfo.cpp:538</a></div></div>
1082
- <div class="ttc" id="aclassSVF_1_1BinaryOPStmt_html_a2f647224242dd87099104e0fdc994de6ac988853383e1588cf568687848e73576"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6ac988853383e1588cf568687848e73576">SVF::BinaryOPStmt::AShr</a></div><div class="ttdeci">@ AShr</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00986">SVFStatements.h:986</a></div></div>
1083
- <div class="ttc" id="aclassSVF_1_1CallPE_html"><div class="ttname"><a href="classSVF_1_1CallPE.html">SVF::CallPE</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00544">SVFStatements.h:544</a></div></div>
1052
+ <div class="ttc" id="aclassSVF_1_1BinaryOPStmt_html_a2f647224242dd87099104e0fdc994de6ac988853383e1588cf568687848e73576"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6ac988853383e1588cf568687848e73576">SVF::BinaryOPStmt::AShr</a></div><div class="ttdeci">@ AShr</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00988">SVFStatements.h:988</a></div></div>
1053
+ <div class="ttc" id="aclassSVF_1_1CallPE_html"><div class="ttname"><a href="classSVF_1_1CallPE.html">SVF::CallPE</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00546">SVFStatements.h:546</a></div></div>
1084
1054
  <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_a584e5b2285a2980fc57cf84b06a76e0c"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#a584e5b2285a2980fc57cf84b06a76e0c">SVF::SVFIR2ItvExeState::narrowVAddrs</a></div><div class="ttdeci">void narrowVAddrs(IntervalExeState &amp;lhs, const IntervalExeState &amp;rhs)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00124">SVFIR2ItvExeState.cpp:124</a></div></div>
1085
1055
  <div class="ttc" id="aclassSVF_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#l00180">GenericGraph.h:180</a></div></div>
1086
- <div class="ttc" id="aclassSVF_1_1BinaryOPStmt_html_a2f647224242dd87099104e0fdc994de6a0bf768bb67e7f6f5ee6302bb6dd71da1"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a0bf768bb67e7f6f5ee6302bb6dd71da1">SVF::BinaryOPStmt::LShr</a></div><div class="ttdeci">@ LShr</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00985">SVFStatements.h:985</a></div></div>
1087
- <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_ae7d4ea045ddf4d49230065ff3bf07f61"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#ae7d4ea045ddf4d49230065ff3bf07f61">SVF::SVFIR2ItvExeState::getGepByteOffset</a></div><div class="ttdeci">std::pair&lt; APOffset, APOffset &gt; getGepByteOffset(const GepStmt *gep)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00322">SVFIR2ItvExeState.cpp:322</a></div></div>
1056
+ <div class="ttc" id="aclassSVF_1_1BinaryOPStmt_html_a2f647224242dd87099104e0fdc994de6a0bf768bb67e7f6f5ee6302bb6dd71da1"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a0bf768bb67e7f6f5ee6302bb6dd71da1">SVF::BinaryOPStmt::LShr</a></div><div class="ttdeci">@ LShr</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00987">SVFStatements.h:987</a></div></div>
1088
1057
  <div class="ttc" id="aclassSVF_1_1IntervalValue_html_a523826aede7ad22736beed0c8223b6b0"><div class="ttname"><a href="classSVF_1_1IntervalValue.html#a523826aede7ad22736beed0c8223b6b0">SVF::IntervalValue::is_numeral</a></div><div class="ttdeci">bool is_numeral() const</div><div class="ttdoc">Return true if the IntervalValue is a number [num, num].</div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00270">IntervalValue.h:270</a></div></div>
1089
1058
  <div class="ttc" id="aclassSVF_1_1AccessPath_html_a3c98f0c5f07109f9da0a8a897aa51d18"><div class="ttname"><a href="classSVF_1_1AccessPath.html#a3c98f0c5f07109f9da0a8a897aa51d18">SVF::AccessPath::getElementNum</a></div><div class="ttdeci">u32_t getElementNum(const SVFType *type) const</div><div class="ttdoc">Return element number of a type.</div><div class="ttdef"><b>Definition:</b> <a href="AccessPath_8cpp_source.html#l00063">AccessPath.cpp:63</a></div></div>
1090
1059
  <div class="ttc" id="aclassSVF_1_1IntervalValue_html_add3acad151d5af6c9a5f692f7a01e65b"><div class="ttname"><a href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">SVF::IntervalValue::top</a></div><div class="ttdeci">static IntervalValue top()</div><div class="ttdoc">Create the IntervalValue [-oo, +oo].</div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00083">IntervalValue.h:83</a></div></div>
1091
- <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_a8f2a564370d9b9fb05e139c45eeaba68"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#a8f2a564370d9b9fb05e139c45eeaba68">SVF::SVFIR2ItvExeState::translateLoad</a></div><div class="ttdeci">void translateLoad(const LoadStmt *load)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00754">SVFIR2ItvExeState.cpp:754</a></div></div>
1060
+ <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_a8f2a564370d9b9fb05e139c45eeaba68"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#a8f2a564370d9b9fb05e139c45eeaba68">SVF::SVFIR2ItvExeState::translateLoad</a></div><div class="ttdeci">void translateLoad(const LoadStmt *load)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00780">SVFIR2ItvExeState.cpp:780</a></div></div>
1092
1061
  <div class="ttc" id="aOptions_8h_html"><div class="ttname"><a href="Options_8h.html">Options.h</a></div></div>
1093
1062
  <div class="ttc" id="aclassSVF_1_1SymbolTableInfo_html_a24df52313f8093bb651ae9da972cd663"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#a24df52313f8093bb651ae9da972cd663">SVF::SymbolTableInfo::getFlattenedElemIdx</a></div><div class="ttdeci">u32_t getFlattenedElemIdx(const SVFType *T, u32_t origId)</div><div class="ttdoc">Flattened element idx of an array or struct by considering stride.</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00181">SymbolTableInfo.cpp:181</a></div></div>
1094
1063
  <div class="ttc" id="aclassSVF_1_1AssignStmt_html_a4cec89489e82c60c287cae3327f3f01d"><div class="ttname"><a href="classSVF_1_1AssignStmt.html#a4cec89489e82c60c287cae3327f3f01d">SVF::AssignStmt::getRHSVarID</a></div><div class="ttdeci">NodeID getRHSVarID() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00298">SVFStatements.h:298</a></div></div>
1095
- <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_afed2852aec6793e1943f97ed39dd8d2b"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#afed2852aec6793e1943f97ed39dd8d2b">SVF::SVFIR2ItvExeState::getGepOffset</a></div><div class="ttdeci">std::pair&lt; APOffset, APOffset &gt; getGepOffset(const GepStmt *gep)</div><div class="ttdoc">Return the offset expression of a GepStmt.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00350">SVFIR2ItvExeState.cpp:350</a></div></div>
1096
1064
  <div class="ttc" id="aclassSVF_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#l00262">SVFVariables.h:262</a></div></div>
1097
1065
  <div class="ttc" id="aclassSVF_1_1NumericLiteral_html_a4181e5e15e10304ea524e5f8b2a3f576"><div class="ttname"><a href="classSVF_1_1NumericLiteral.html#a4181e5e15e10304ea524e5f8b2a3f576">SVF::NumericLiteral::getNumeral</a></div><div class="ttdeci">s64_t getNumeral() const</div><div class="ttdoc">Return Numeral.</div><div class="ttdef"><b>Definition:</b> <a href="NumericLiteral_8h_source.html#l00120">NumericLiteral.h:120</a></div></div>
1098
- <div class="ttc" id="aclassSVF_1_1CmpStmt_html_ad8e01744bfd98d584661025ce59338aca8149cba2e9e265892f02bbd4a35fe6fb"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca8149cba2e9e265892f02bbd4a35fe6fb">SVF::CmpStmt::FCMP_ULE</a></div><div class="ttdeci">@ FCMP_ULE</div><div class="ttdoc">1 1 0 1 True if unordered, less than, or equal</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00901">SVFStatements.h:901</a></div></div>
1099
- <div class="ttc" id="aclassSVF_1_1BinaryOPStmt_html"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html">SVF::BinaryOPStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00956">SVFStatements.h:956</a></div></div>
1100
- <div class="ttc" id="aclassSVF_1_1StoreStmt_html"><div class="ttname"><a href="classSVF_1_1StoreStmt.html">SVF::StoreStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00386">SVFStatements.h:386</a></div></div>
1066
+ <div class="ttc" id="aclassSVF_1_1CmpStmt_html_ad8e01744bfd98d584661025ce59338aca8149cba2e9e265892f02bbd4a35fe6fb"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca8149cba2e9e265892f02bbd4a35fe6fb">SVF::CmpStmt::FCMP_ULE</a></div><div class="ttdeci">@ FCMP_ULE</div><div class="ttdoc">1 1 0 1 True if unordered, less than, or equal</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00903">SVFStatements.h:903</a></div></div>
1067
+ <div class="ttc" id="aclassSVF_1_1BinaryOPStmt_html"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html">SVF::BinaryOPStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00958">SVFStatements.h:958</a></div></div>
1068
+ <div class="ttc" id="aclassSVF_1_1StoreStmt_html"><div class="ttname"><a href="classSVF_1_1StoreStmt.html">SVF::StoreStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00387">SVFStatements.h:387</a></div></div>
1101
1069
  <div class="ttc" id="aclassSVF_1_1IntervalExeState_html_a39dead4fe213e3d02b1613debbc86e71"><div class="ttname"><a href="classSVF_1_1IntervalExeState.html#a39dead4fe213e3d02b1613debbc86e71">SVF::IntervalExeState::_locToItvVal</a></div><div class="ttdeci">LocToValMap _locToItvVal</div><div class="ttdoc">key: nodeID value: Domain Value</div><div class="ttdef"><b>Definition:</b> <a href="IntervalExeState_8h_source.html#l00070">IntervalExeState.h:70</a></div></div>
1102
1070
  <div class="ttc" id="aclassSVF_1_1SVFValue_html"><div class="ttname"><a href="classSVF_1_1SVFValue.html">SVF::SVFValue</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00177">SVFValue.h:177</a></div></div>
1103
- <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_a31e299f91eed29d1a8db3b884d57d1dc"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#a31e299f91eed29d1a8db3b884d57d1dc">SVF::SVFIR2ItvExeState::translateRet</a></div><div class="ttdeci">void translateRet(const RetPE *retPE)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00961">SVFIR2ItvExeState.cpp:961</a></div></div>
1104
- <div class="ttc" id="aclassSVF_1_1CmpStmt_html_ad8e01744bfd98d584661025ce59338aca88d74bf66465f4fdd221db0c11d62927"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca88d74bf66465f4fdd221db0c11d62927">SVF::CmpStmt::ICMP_SLT</a></div><div class="ttdeci">@ ICMP_SLT</div><div class="ttdoc">signed less than</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00915">SVFStatements.h:915</a></div></div>
1105
- <div class="ttc" id="aclassSVF_1_1SVFArrayType_html"><div class="ttname"><a href="classSVF_1_1SVFArrayType.html">SVF::SVFArrayType</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00462">SVFType.h:462</a></div></div>
1071
+ <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_a31e299f91eed29d1a8db3b884d57d1dc"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#a31e299f91eed29d1a8db3b884d57d1dc">SVF::SVFIR2ItvExeState::translateRet</a></div><div class="ttdeci">void translateRet(const RetPE *retPE)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00988">SVFIR2ItvExeState.cpp:988</a></div></div>
1072
+ <div class="ttc" id="aclassSVF_1_1CmpStmt_html_ad8e01744bfd98d584661025ce59338aca88d74bf66465f4fdd221db0c11d62927"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca88d74bf66465f4fdd221db0c11d62927">SVF::CmpStmt::ICMP_SLT</a></div><div class="ttdeci">@ ICMP_SLT</div><div class="ttdoc">signed less than</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00917">SVFStatements.h:917</a></div></div>
1073
+ <div class="ttc" id="aclassSVF_1_1SVFArrayType_html"><div class="ttname"><a href="classSVF_1_1SVFArrayType.html">SVF::SVFArrayType</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00469">SVFType.h:469</a></div></div>
1106
1074
  <div class="ttc" id="aclassSVF_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#l00114">SVFIR.h:114</a></div></div>
1107
- <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_a449ee8f244120866037c7f6d2ee5fc13"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#a449ee8f244120866037c7f6d2ee5fc13">SVF::SVFIR2ItvExeState::translateBinary</a></div><div class="ttdeci">void translateBinary(const BinaryOPStmt *binary)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00508">SVFIR2ItvExeState.cpp:508</a></div></div>
1075
+ <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_ad49576a7192c87d41f4dc923cd3d0efe"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#ad49576a7192c87d41f4dc923cd3d0efe">SVF::SVFIR2ItvExeState::getByteOffsetfromGepTypePair</a></div><div class="ttdeci">IntervalValue getByteOffsetfromGepTypePair(const AccessPath::IdxVarAndGepTypePair &amp;gep_pair, const GepStmt *gep)</div><div class="ttdoc">Return the byte offset from one gep param offset.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00201">SVFIR2ItvExeState.cpp:201</a></div></div>
1076
+ <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_a449ee8f244120866037c7f6d2ee5fc13"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#a449ee8f244120866037c7f6d2ee5fc13">SVF::SVFIR2ItvExeState::translateBinary</a></div><div class="ttdeci">void translateBinary(const BinaryOPStmt *binary)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00534">SVFIR2ItvExeState.cpp:534</a></div></div>
1108
1077
  <div class="ttc" id="aclassSVF_1_1SymbolTableInfo_html_a5dc699aa85fe879eb4b2c9109cf3030d"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#a5dc699aa85fe879eb4b2c9109cf3030d">SVF::SymbolTableInfo::getTypeInfo</a></div><div class="ttdeci">const StInfo * getTypeInfo(const SVFType *T) const</div><div class="ttdoc">Get struct info.</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00056">SymbolTableInfo.cpp:56</a></div></div>
1109
1078
  <div class="ttc" id="acJSON_8cpp_html_a3f9a0d3265a6254722587175dac3e4dc"><div class="ttname"><a href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a></div><div class="ttdeci">newitem type</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8cpp_source.html#l02739">cJSON.cpp:2739</a></div></div>
1110
1079
  <div class="ttc" id="aclassSVF_1_1SVFType_html"><div class="ttname"><a href="classSVF_1_1SVFType.html">SVF::SVFType</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00242">SVFType.h:242</a></div></div>
1111
- <div class="ttc" id="aclassSVF_1_1CmpStmt_html_ad8e01744bfd98d584661025ce59338acaa6b852204a4d0758ebd632d8a88b966d"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acaa6b852204a4d0758ebd632d8a88b966d">SVF::CmpStmt::FCMP_ULT</a></div><div class="ttdeci">@ FCMP_ULT</div><div class="ttdoc">1 1 0 0 True if unordered or less than</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00900">SVFStatements.h:900</a></div></div>
1112
- <div class="ttc" id="aclassSVF_1_1GepStmt_html_a6c74f234a6b40bc5292bb14874c2e600"><div class="ttname"><a href="classSVF_1_1GepStmt.html#a6c74f234a6b40bc5292bb14874c2e600">SVF::GepStmt::getAccessPath</a></div><div class="ttdeci">const AccessPath &amp; getAccessPath() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00490">SVFStatements.h:490</a></div></div>
1113
- <div class="ttc" id="aclassSVF_1_1BinaryOPStmt_html_a2f647224242dd87099104e0fdc994de6a97c70ced12e0f1c5e3c3708b13727e8e"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a97c70ced12e0f1c5e3c3708b13727e8e">SVF::BinaryOPStmt::FAdd</a></div><div class="ttdeci">@ FAdd</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00973">SVFStatements.h:973</a></div></div>
1080
+ <div class="ttc" id="aclassSVF_1_1CmpStmt_html_ad8e01744bfd98d584661025ce59338acaa6b852204a4d0758ebd632d8a88b966d"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acaa6b852204a4d0758ebd632d8a88b966d">SVF::CmpStmt::FCMP_ULT</a></div><div class="ttdeci">@ FCMP_ULT</div><div class="ttdoc">1 1 0 0 True if unordered or less than</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00902">SVFStatements.h:902</a></div></div>
1081
+ <div class="ttc" id="aclassSVF_1_1GepStmt_html_a6c74f234a6b40bc5292bb14874c2e600"><div class="ttname"><a href="classSVF_1_1GepStmt.html#a6c74f234a6b40bc5292bb14874c2e600">SVF::GepStmt::getAccessPath</a></div><div class="ttdeci">const AccessPath &amp; getAccessPath() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00491">SVFStatements.h:491</a></div></div>
1082
+ <div class="ttc" id="aclassSVF_1_1SVFStructType_html"><div class="ttname"><a href="classSVF_1_1SVFStructType.html">SVF::SVFStructType</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00436">SVFType.h:436</a></div></div>
1083
+ <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_a335922caf105ee72cd9d66a451ae3d4e"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#a335922caf105ee72cd9d66a451ae3d4e">SVF::SVFIR2ItvExeState::getByteOffset</a></div><div class="ttdeci">IntervalValue getByteOffset(const GepStmt *gep)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00354">SVFIR2ItvExeState.cpp:354</a></div></div>
1084
+ <div class="ttc" id="aclassSVF_1_1BinaryOPStmt_html_a2f647224242dd87099104e0fdc994de6a97c70ced12e0f1c5e3c3708b13727e8e"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a97c70ced12e0f1c5e3c3708b13727e8e">SVF::BinaryOPStmt::FAdd</a></div><div class="ttdeci">@ FAdd</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00975">SVFStatements.h:975</a></div></div>
1114
1085
  <div class="ttc" id="aclassSVF_1_1IRGraph_html_a3b417ee79560fd00f4cf80906044c198"><div class="ttname"><a href="classSVF_1_1IRGraph.html#a3b417ee79560fd00f4cf80906044c198">SVF::IRGraph::getBlkPtr</a></div><div class="ttdeci">NodeID getBlkPtr() const</div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#l00170">IRGraph.h:170</a></div></div>
1115
- <div class="ttc" id="aclassSVF_1_1SelectStmt_html_ad4c3e9529176478bb726279a76050e8c"><div class="ttname"><a href="classSVF_1_1SelectStmt.html#ad4c3e9529176478bb726279a76050e8c">SVF::SelectStmt::getCondition</a></div><div class="ttdeci">const SVFVar * getCondition() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00853">SVFStatements.h:853</a></div></div>
1086
+ <div class="ttc" id="aclassSVF_1_1SelectStmt_html_ad4c3e9529176478bb726279a76050e8c"><div class="ttname"><a href="classSVF_1_1SelectStmt.html#ad4c3e9529176478bb726279a76050e8c">SVF::SelectStmt::getCondition</a></div><div class="ttdeci">const SVFVar * getCondition() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00855">SVFStatements.h:855</a></div></div>
1116
1087
  <div class="ttc" id="aclassSVF_1_1IntervalExeState_html_ac72e3ae77e06e0dfc7c2edd2bf765d77"><div class="ttname"><a href="classSVF_1_1IntervalExeState.html#ac72e3ae77e06e0dfc7c2edd2bf765d77">SVF::IntervalExeState::_varToItvVal</a></div><div class="ttdeci">VarToValMap _varToItvVal</div><div class="ttdoc">key: nodeID value: Domain Value</div><div class="ttdef"><b>Definition:</b> <a href="IntervalExeState_8h_source.html#l00068">IntervalExeState.h:68</a></div></div>
1117
1088
  <div class="ttc" id="aclassSVF_1_1SVFType_html_a333e01a9c431c8f53bd2fc597bd5c40ca01274de074f51be05f2ad6b2d0ca9dd6"><div class="ttname"><a href="classSVF_1_1SVFType.html#a333e01a9c431c8f53bd2fc597bd5c40ca01274de074f51be05f2ad6b2d0ca9dd6">SVF::SVFType::SVFFunctionTy</a></div><div class="ttdeci">@ SVFFunctionTy</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00255">SVFType.h:255</a></div></div>
1118
- <div class="ttc" id="aclassSVF_1_1GepStmt_html_afe5ae814b71b59fc03bd672d62a5fab7"><div class="ttname"><a href="classSVF_1_1GepStmt.html#afe5ae814b71b59fc03bd672d62a5fab7">SVF::GepStmt::getConstantFieldIdx</a></div><div class="ttdeci">APOffset getConstantFieldIdx() const</div><div class="ttdoc">Field index of the gep statement if it access the field of a struct.</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00519">SVFStatements.h:519</a></div></div>
1119
- <div class="ttc" id="aclassSVF_1_1CmpStmt_html_ad8e01744bfd98d584661025ce59338aca56a20e408f9639234e4a11036764a38f"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca56a20e408f9639234e4a11036764a38f">SVF::CmpStmt::ICMP_ULE</a></div><div class="ttdeci">@ ICMP_ULE</div><div class="ttdoc">unsigned less or equal</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00912">SVFStatements.h:912</a></div></div>
1089
+ <div class="ttc" id="aclassSVF_1_1GepStmt_html_afe5ae814b71b59fc03bd672d62a5fab7"><div class="ttname"><a href="classSVF_1_1GepStmt.html#afe5ae814b71b59fc03bd672d62a5fab7">SVF::GepStmt::getConstantFieldIdx</a></div><div class="ttdeci">APOffset getConstantFieldIdx() const</div><div class="ttdoc">Field index of the gep statement if it access the field of a struct.</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00521">SVFStatements.h:521</a></div></div>
1090
+ <div class="ttc" id="aclassSVF_1_1CmpStmt_html_ad8e01744bfd98d584661025ce59338aca56a20e408f9639234e4a11036764a38f"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca56a20e408f9639234e4a11036764a38f">SVF::CmpStmt::ICMP_ULE</a></div><div class="ttdeci">@ ICMP_ULE</div><div class="ttdoc">unsigned less or equal</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00914">SVFStatements.h:914</a></div></div>
1120
1091
  <div class="ttc" id="aclassSVF_1_1SVFConstantInt_html"><div class="ttname"><a href="classSVF_1_1SVFConstantInt.html">SVF::SVFConstantInt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00955">SVFValue.h:955</a></div></div>
1121
1092
  <div class="ttc" id="aclassSVF_1_1SVFConstantFP_html"><div class="ttname"><a href="classSVF_1_1SVFConstantFP.html">SVF::SVFConstantFP</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00989">SVFValue.h:989</a></div></div>
1122
- <div class="ttc" id="aclassSVF_1_1BinaryOPStmt_html_a2f647224242dd87099104e0fdc994de6a787e5771d6e70f3cbec3e2a33f5a4e8a"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a787e5771d6e70f3cbec3e2a33f5a4e8a">SVF::BinaryOPStmt::Mul</a></div><div class="ttdeci">@ Mul</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00976">SVFStatements.h:976</a></div></div>
1123
- <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_aed2e41879bae8389c49e69356b7aaac5"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#aed2e41879bae8389c49e69356b7aaac5">SVF::SVFIR2ItvExeState::translateStore</a></div><div class="ttdeci">void translateStore(const StoreStmt *store)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00800">SVFIR2ItvExeState.cpp:800</a></div></div>
1093
+ <div class="ttc" id="aclassSVF_1_1BinaryOPStmt_html_a2f647224242dd87099104e0fdc994de6a787e5771d6e70f3cbec3e2a33f5a4e8a"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a787e5771d6e70f3cbec3e2a33f5a4e8a">SVF::BinaryOPStmt::Mul</a></div><div class="ttdeci">@ Mul</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00978">SVFStatements.h:978</a></div></div>
1094
+ <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_aed2e41879bae8389c49e69356b7aaac5"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#aed2e41879bae8389c49e69356b7aaac5">SVF::SVFIR2ItvExeState::translateStore</a></div><div class="ttdeci">void translateStore(const StoreStmt *store)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00826">SVFIR2ItvExeState.cpp:826</a></div></div>
1124
1095
  <div class="ttc" id="aclassSVF_1_1IntervalValue_html_adac2dc2c9f744a071ad3f0175ed40cd9"><div class="ttname"><a href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">SVF::IntervalValue::ub</a></div><div class="ttdeci">const NumericLiteral &amp; ub() const</div><div class="ttdoc">Return the upper bound.</div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00225">IntervalValue.h:225</a></div></div>
1125
- <div class="ttc" id="aclassSVF_1_1CmpStmt_html_ad8e01744bfd98d584661025ce59338aca2793f23e72e3ff432bf193adf0f1b021"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca2793f23e72e3ff432bf193adf0f1b021">SVF::CmpStmt::FCMP_UEQ</a></div><div class="ttdeci">@ FCMP_UEQ</div><div class="ttdoc">1 0 0 1 True if unordered or equal</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00897">SVFStatements.h:897</a></div></div>
1096
+ <div class="ttc" id="aclassSVF_1_1CmpStmt_html_ad8e01744bfd98d584661025ce59338aca2793f23e72e3ff432bf193adf0f1b021"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca2793f23e72e3ff432bf193adf0f1b021">SVF::CmpStmt::FCMP_UEQ</a></div><div class="ttdeci">@ FCMP_UEQ</div><div class="ttdoc">1 0 0 1 True if unordered or equal</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00899">SVFStatements.h:899</a></div></div>
1126
1097
  <div class="ttc" id="aclassSVF_1_1IntervalExeState_html"><div class="ttname"><a href="classSVF_1_1IntervalExeState.html">SVF::IntervalExeState</a></div><div class="ttdef"><b>Definition:</b> <a href="IntervalExeState_8h_source.html#l00055">IntervalExeState.h:55</a></div></div>
1127
- <div class="ttc" id="aclassSVF_1_1CmpStmt_html_ad8e01744bfd98d584661025ce59338acafa5a0ab60aff74a8d653c3f9fac04936"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acafa5a0ab60aff74a8d653c3f9fac04936">SVF::CmpStmt::ICMP_EQ</a></div><div class="ttdeci">@ ICMP_EQ</div><div class="ttdoc">equal</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00907">SVFStatements.h:907</a></div></div>
1128
- <div class="ttc" id="aclassSVF_1_1CmpStmt_html_ad8e01744bfd98d584661025ce59338aca2a3ce0c02931984d92d70356efc49193"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca2a3ce0c02931984d92d70356efc49193">SVF::CmpStmt::FCMP_ONE</a></div><div class="ttdeci">@ FCMP_ONE</div><div class="ttdoc">0 1 1 0 True if ordered and operands are unequal</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00894">SVFStatements.h:894</a></div></div>
1129
- <div class="ttc" id="aclassSVF_1_1CmpStmt_html_ad8e01744bfd98d584661025ce59338acac0e2d9db5453eb8be7543fb4315003da"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acac0e2d9db5453eb8be7543fb4315003da">SVF::CmpStmt::FCMP_UGE</a></div><div class="ttdeci">@ FCMP_UGE</div><div class="ttdoc">1 0 1 1 True if unordered, greater than, or equal</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00899">SVFStatements.h:899</a></div></div>
1098
+ <div class="ttc" id="aclassSVF_1_1CmpStmt_html_ad8e01744bfd98d584661025ce59338acafa5a0ab60aff74a8d653c3f9fac04936"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acafa5a0ab60aff74a8d653c3f9fac04936">SVF::CmpStmt::ICMP_EQ</a></div><div class="ttdeci">@ ICMP_EQ</div><div class="ttdoc">equal</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00909">SVFStatements.h:909</a></div></div>
1099
+ <div class="ttc" id="aclassSVF_1_1CmpStmt_html_ad8e01744bfd98d584661025ce59338aca2a3ce0c02931984d92d70356efc49193"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca2a3ce0c02931984d92d70356efc49193">SVF::CmpStmt::FCMP_ONE</a></div><div class="ttdeci">@ FCMP_ONE</div><div class="ttdoc">0 1 1 0 True if ordered and operands are unequal</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00896">SVFStatements.h:896</a></div></div>
1100
+ <div class="ttc" id="aclassSVF_1_1CmpStmt_html_ad8e01744bfd98d584661025ce59338acac0e2d9db5453eb8be7543fb4315003da"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acac0e2d9db5453eb8be7543fb4315003da">SVF::CmpStmt::FCMP_UGE</a></div><div class="ttdeci">@ FCMP_UGE</div><div class="ttdoc">1 0 1 1 True if unordered, greater than, or equal</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00901">SVFStatements.h:901</a></div></div>
1130
1101
  <div class="ttc" id="aclassSVF_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>
1102
+ <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_a6e4e3eeca9d25fb5eab496faeb6264c3"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#a6e4e3eeca9d25fb5eab496faeb6264c3">SVF::SVFIR2ItvExeState::getItvOfFlattenedElemIndex</a></div><div class="ttdeci">IntervalValue getItvOfFlattenedElemIndex(const GepStmt *gep)</div><div class="ttdoc">Return the offset expression of a GepStmt.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00387">SVFIR2ItvExeState.cpp:387</a></div></div>
1131
1103
  <div class="ttc" id="aclassSVF_1_1IntervalExeState_html_a92b1b163493a74a31d30a261128edd05"><div class="ttname"><a href="classSVF_1_1IntervalExeState.html#a92b1b163493a74a31d30a261128edd05">SVF::IntervalExeState::globalES</a></div><div class="ttdeci">static IntervalExeState globalES</div><div class="ttdef"><b>Definition:</b> <a href="IntervalExeState_8h_source.html#l00064">IntervalExeState.h:64</a></div></div>
1132
- <div class="ttc" id="aclassSVF_1_1LoadStmt_html"><div class="ttname"><a href="classSVF_1_1LoadStmt.html">SVF::LoadStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00423">SVFStatements.h:423</a></div></div>
1104
+ <div class="ttc" id="aclassSVF_1_1LoadStmt_html"><div class="ttname"><a href="classSVF_1_1LoadStmt.html">SVF::LoadStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00424">SVFStatements.h:424</a></div></div>
1133
1105
  <div class="ttc" id="aclassSVF_1_1IntervalValue_html"><div class="ttname"><a href="classSVF_1_1IntervalValue.html">SVF::IntervalValue</a></div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00043">IntervalValue.h:43</a></div></div>
1134
- <div class="ttc" id="aclassSVF_1_1GepStmt_html_acce9e813dbca30e0264dac6c89ea72af"><div class="ttname"><a href="classSVF_1_1GepStmt.html#acce9e813dbca30e0264dac6c89ea72af">SVF::GepStmt::getOffsetVarAndGepTypePairVec</a></div><div class="ttdeci">const AccessPath::OffsetVarAndGepTypePairs getOffsetVarAndGepTypePairVec() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00494">SVFStatements.h:494</a></div></div>
1135
1106
  <div class="ttc" id="aclassSVF_1_1AddressValue_html_a269a73753a7b495eb08bb0c9c0a58dc0"><div class="ttname"><a href="classSVF_1_1AddressValue.html#a269a73753a7b495eb08bb0c9c0a58dc0">SVF::AddressValue::hasIntersect</a></div><div class="ttdeci">bool hasIntersect(const AddressValue &amp;other)</div><div class="ttdef"><b>Definition:</b> <a href="AddressValue_8h_source.html#l00175">AddressValue.h:175</a></div></div>
1136
1107
  <div class="ttc" id="aclassSVF_1_1SymbolTableInfo_html_a267169023fc4f8dd66b145f7231fec11"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#a267169023fc4f8dd66b145f7231fec11">SVF::SymbolTableInfo::SymbolInfo</a></div><div class="ttdeci">static SymbolTableInfo * SymbolInfo()</div><div class="ttdoc">Singleton design here to make sure we only have one instance during any analysis.</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00081">SymbolTableInfo.cpp:81</a></div></div>
1137
1108
  <div class="ttc" id="aclassSVF_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#l00406">GenericGraph.h:406</a></div></div>
1138
- <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_afcf2f81101f1b9580d82b5c2efb83999"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#afcf2f81101f1b9580d82b5c2efb83999">SVF::SVFIR2ItvExeState::translateCopy</a></div><div class="ttdeci">void translateCopy(const CopyStmt *copy)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00829">SVFIR2ItvExeState.cpp:829</a></div></div>
1109
+ <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_afcf2f81101f1b9580d82b5c2efb83999"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#afcf2f81101f1b9580d82b5c2efb83999">SVF::SVFIR2ItvExeState::translateCopy</a></div><div class="ttdeci">void translateCopy(const CopyStmt *copy)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00855">SVFIR2ItvExeState.cpp:855</a></div></div>
1110
+ <div class="ttc" id="aclassSVF_1_1GepStmt_html_ab6f37c073e4755c4b8bb3ed6365687f4"><div class="ttname"><a href="classSVF_1_1GepStmt.html#ab6f37c073e4755c4b8bb3ed6365687f4">SVF::GepStmt::isConstantOffset</a></div><div class="ttdeci">bool isConstantOffset() const</div><div class="ttdoc">Return TRUE if this is a constant location set.</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00501">SVFStatements.h:501</a></div></div>
1139
1111
  <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_af80d7665d9815a80ffdba92c3ba029d1"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#af80d7665d9815a80ffdba92c3ba029d1">SVF::SVFIR2ItvExeState::moveToGlobal</a></div><div class="ttdeci">void moveToGlobal()</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00059">SVFIR2ItvExeState.cpp:59</a></div></div>
1140
1112
  <div class="ttc" id="anamespaceSVF_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="SVFType_8h_source.html#l00052">SVFType.h:52</a></div></div>
1141
1113
  <div class="ttc" id="aclassSVF_1_1AddressValue_html_aa7291f4b74bb824fb38b8c383fa0b6a0"><div class="ttname"><a href="classSVF_1_1AddressValue.html#aa7291f4b74bb824fb38b8c383fa0b6a0">SVF::AddressValue::empty</a></div><div class="ttdeci">bool empty() const</div><div class="ttdef"><b>Definition:</b> <a href="AddressValue_8h_source.html#l00113">AddressValue.h:113</a></div></div>
1142
1114
  <div class="ttc" id="aclassSVF_1_1MemObj_html_a2f70e9c830b18f25c56b530722f106c4"><div class="ttname"><a href="classSVF_1_1MemObj.html#a2f70e9c830b18f25c56b530722f106c4">SVF::MemObj::getValue</a></div><div class="ttdeci">const SVFValue * 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#l00406">SymbolTableInfo.h:406</a></div></div>
1143
- <div class="ttc" id="aclassSVF_1_1GepStmt_html"><div class="ttname"><a href="classSVF_1_1GepStmt.html">SVF::GepStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00460">SVFStatements.h:460</a></div></div>
1115
+ <div class="ttc" id="aclassSVF_1_1GepStmt_html"><div class="ttname"><a href="classSVF_1_1GepStmt.html">SVF::GepStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00461">SVFStatements.h:461</a></div></div>
1144
1116
  <div class="ttc" id="aclassSVF_1_1SVFType_html_a333e01a9c431c8f53bd2fc597bd5c40cae8c18603570fa65fa5a9aabdf2f5d0a1"><div class="ttname"><a href="classSVF_1_1SVFType.html#a333e01a9c431c8f53bd2fc597bd5c40cae8c18603570fa65fa5a9aabdf2f5d0a1">SVF::SVFType::SVFPointerTy</a></div><div class="ttdeci">@ SVFPointerTy</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00253">SVFType.h:253</a></div></div>
1145
1117
  <div class="ttc" id="aclassSVF_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#l00174">IRGraph.h:174</a></div></div>
1146
1118
  <div class="ttc" id="aclassSVF_1_1AddressValue_html_a40c67147606ab95dd3318d0fe821d8c0"><div class="ttname"><a href="classSVF_1_1AddressValue.html#a40c67147606ab95dd3318d0fe821d8c0">SVF::AddressValue::insert</a></div><div class="ttdeci">std::pair&lt; AddressValue::AddrSet::iterator, bool &gt; insert(u32_t id)</div><div class="ttdef"><b>Definition:</b> <a href="AddressValue_8h_source.html#l00123">AddressValue.h:123</a></div></div>
1147
- <div class="ttc" id="aclassSVF_1_1BinaryOPStmt_html_a2f647224242dd87099104e0fdc994de6a05348a0e3f232ac552bb3ca56525c448"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a05348a0e3f232ac552bb3ca56525c448">SVF::BinaryOPStmt::FSub</a></div><div class="ttdeci">@ FSub</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00975">SVFStatements.h:975</a></div></div>
1119
+ <div class="ttc" id="aclassSVF_1_1BinaryOPStmt_html_a2f647224242dd87099104e0fdc994de6a05348a0e3f232ac552bb3ca56525c448"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a05348a0e3f232ac552bb3ca56525c448">SVF::BinaryOPStmt::FSub</a></div><div class="ttdeci">@ FSub</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00977">SVFStatements.h:977</a></div></div>
1148
1120
  <div class="ttc" id="aclassSVF_1_1IntervalValue_html_aa027be2f9243ce4cae799b265b019443"><div class="ttname"><a href="classSVF_1_1IntervalValue.html#aa027be2f9243ce4cae799b265b019443">SVF::IntervalValue::bottom</a></div><div class="ttdeci">static IntervalValue bottom()</div><div class="ttdoc">Create the bottom IntervalValue.</div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00089">IntervalValue.h:89</a></div></div>
1149
- <div class="ttc" id="aclassSVF_1_1CmpStmt_html_ad8e01744bfd98d584661025ce59338aca5c4576ce636e323cbc3aa322480c5d2c"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca5c4576ce636e323cbc3aa322480c5d2c">SVF::CmpStmt::FCMP_OGE</a></div><div class="ttdeci">@ FCMP_OGE</div><div class="ttdoc">0 0 1 1 True if ordered and greater than or equal</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00891">SVFStatements.h:891</a></div></div>
1121
+ <div class="ttc" id="aclassSVF_1_1CmpStmt_html_ad8e01744bfd98d584661025ce59338aca5c4576ce636e323cbc3aa322480c5d2c"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca5c4576ce636e323cbc3aa322480c5d2c">SVF::CmpStmt::FCMP_OGE</a></div><div class="ttdeci">@ FCMP_OGE</div><div class="ttdoc">0 0 1 1 True if ordered and greater than or equal</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00893">SVFStatements.h:893</a></div></div>
1150
1122
  <div class="ttc" id="acJSON_8cpp_html_a95bf816579e97b6f33bdb5e25ed6d5de"><div class="ttname"><a href="cJSON_8cpp.html#a95bf816579e97b6f33bdb5e25ed6d5de">offset</a></div><div class="ttdeci">buffer offset</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8cpp_source.html#l01113">cJSON.cpp:1113</a></div></div>
1151
- <div class="ttc" id="aclassSVF_1_1CmpStmt_html_ad8e01744bfd98d584661025ce59338aca3873c41e060b95cb37eac587402b597c"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca3873c41e060b95cb37eac587402b597c">SVF::CmpStmt::FCMP_UGT</a></div><div class="ttdeci">@ FCMP_UGT</div><div class="ttdoc">1 0 1 0 True if unordered or greater than</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00898">SVFStatements.h:898</a></div></div>
1152
- <div class="ttc" id="aclassSVF_1_1BinaryOPStmt_html_a2f647224242dd87099104e0fdc994de6ad2db0456c9943dd75aa091cb19040448"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6ad2db0456c9943dd75aa091cb19040448">SVF::BinaryOPStmt::SRem</a></div><div class="ttdeci">@ SRem</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00982">SVFStatements.h:982</a></div></div>
1153
- <div class="ttc" id="aclassSVF_1_1CmpStmt_html_ad8e01744bfd98d584661025ce59338aca6eef834451ec753add639be49c51f03f"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca6eef834451ec753add639be49c51f03f">SVF::CmpStmt::ICMP_NE</a></div><div class="ttdeci">@ ICMP_NE</div><div class="ttdoc">not equal</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00908">SVFStatements.h:908</a></div></div>
1123
+ <div class="ttc" id="aclassSVF_1_1CmpStmt_html_ad8e01744bfd98d584661025ce59338aca3873c41e060b95cb37eac587402b597c"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca3873c41e060b95cb37eac587402b597c">SVF::CmpStmt::FCMP_UGT</a></div><div class="ttdeci">@ FCMP_UGT</div><div class="ttdoc">1 0 1 0 True if unordered or greater than</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00900">SVFStatements.h:900</a></div></div>
1124
+ <div class="ttc" id="aclassSVF_1_1BinaryOPStmt_html_a2f647224242dd87099104e0fdc994de6ad2db0456c9943dd75aa091cb19040448"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6ad2db0456c9943dd75aa091cb19040448">SVF::BinaryOPStmt::SRem</a></div><div class="ttdeci">@ SRem</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00984">SVFStatements.h:984</a></div></div>
1125
+ <div class="ttc" id="aclassSVF_1_1CmpStmt_html_ad8e01744bfd98d584661025ce59338aca6eef834451ec753add639be49c51f03f"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca6eef834451ec753add639be49c51f03f">SVF::CmpStmt::ICMP_NE</a></div><div class="ttdeci">@ ICMP_NE</div><div class="ttdoc">not equal</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00910">SVFStatements.h:910</a></div></div>
1126
+ <div class="ttc" id="aclassSVF_1_1AccessPath_html_a98dfa824a51134c3f72a5d153240d378"><div class="ttname"><a href="classSVF_1_1AccessPath.html#a98dfa824a51134c3f72a5d153240d378">SVF::AccessPath::IdxVarAndGepTypePair</a></div><div class="ttdeci">std::pair&lt; const SVFVar *, const SVFType * &gt; IdxVarAndGepTypePair</div><div class="ttdef"><b>Definition:</b> <a href="AccessPath_8h_source.html#l00064">AccessPath.h:64</a></div></div>
1154
1127
  <div class="ttc" id="aclassSVF_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#l00533">SymbolTableInfo.cpp:533</a></div></div>
1155
- <div class="ttc" id="aclassSVF_1_1CmpStmt_html_aa6a21fb1cfbc263bb38651176c495632"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#aa6a21fb1cfbc263bb38651176c495632">SVF::CmpStmt::getPredicate</a></div><div class="ttdeci">u32_t getPredicate() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00945">SVFStatements.h:945</a></div></div>
1156
- <div class="ttc" id="aclassSVF_1_1SVFValue_html_a4a0cfe3a8f37d33ffcdca3d66026dcc3"><div class="ttname"><a href="classSVF_1_1SVFValue.html#a4a0cfe3a8f37d33ffcdca3d66026dcc3">SVF::SVFValue::toString</a></div><div class="ttdeci">std::string toString() const</div><div class="ttdoc">Needs to be implemented by a SVF front end.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l01281">LLVMUtil.cpp:1281</a></div></div>
1128
+ <div class="ttc" id="aclassSVF_1_1CmpStmt_html_aa6a21fb1cfbc263bb38651176c495632"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#aa6a21fb1cfbc263bb38651176c495632">SVF::CmpStmt::getPredicate</a></div><div class="ttdeci">u32_t getPredicate() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00947">SVFStatements.h:947</a></div></div>
1129
+ <div class="ttc" id="aclassSVF_1_1SVFValue_html_a4a0cfe3a8f37d33ffcdca3d66026dcc3"><div class="ttname"><a href="classSVF_1_1SVFValue.html#a4a0cfe3a8f37d33ffcdca3d66026dcc3">SVF::SVFValue::toString</a></div><div class="ttdeci">std::string toString() const</div><div class="ttdoc">Needs to be implemented by a SVF front end.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l01272">LLVMUtil.cpp:1272</a></div></div>
1157
1130
  <div class="ttc" id="aclassSVF_1_1AddressValue_html"><div class="ttname"><a href="classSVF_1_1AddressValue.html">SVF::AddressValue</a></div><div class="ttdef"><b>Definition:</b> <a href="AddressValue_8h_source.html#l00041">AddressValue.h:41</a></div></div>
1158
- <div class="ttc" id="aclassSVF_1_1SelectStmt_html_a537c03b08444da34c26b9e989bb0e568"><div class="ttname"><a href="classSVF_1_1SelectStmt.html#a537c03b08444da34c26b9e989bb0e568">SVF::SelectStmt::getTrueValue</a></div><div class="ttdeci">const SVFVar * getTrueValue() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00857">SVFStatements.h:857</a></div></div>
1159
- <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_af5d05c5316127cfe8d975a3a0a23798b"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#af5d05c5316127cfe8d975a3a0a23798b">SVF::SVFIR2ItvExeState::initSVFVar</a></div><div class="ttdeci">void initSVFVar(u32_t varId)</div><div class="ttdoc">Init SVFVar.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00465">SVFIR2ItvExeState.cpp:465</a></div></div>
1131
+ <div class="ttc" id="aclassSVF_1_1SelectStmt_html_a537c03b08444da34c26b9e989bb0e568"><div class="ttname"><a href="classSVF_1_1SelectStmt.html#a537c03b08444da34c26b9e989bb0e568">SVF::SelectStmt::getTrueValue</a></div><div class="ttdeci">const SVFVar * getTrueValue() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00859">SVFStatements.h:859</a></div></div>
1132
+ <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_af5d05c5316127cfe8d975a3a0a23798b"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#af5d05c5316127cfe8d975a3a0a23798b">SVF::SVFIR2ItvExeState::initSVFVar</a></div><div class="ttdeci">void initSVFVar(u32_t varId)</div><div class="ttdoc">Init SVFVar.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00491">SVFIR2ItvExeState.cpp:491</a></div></div>
1160
1133
  <div class="ttc" id="acJSON_8cpp_html_a7669ee67a0563250c1efaa24d130e1ac"><div class="ttname"><a href="cJSON_8cpp.html#a7669ee67a0563250c1efaa24d130e1ac">copy</a></div><div class="ttdeci">copy</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8cpp_source.html#l00414">cJSON.cpp:414</a></div></div>
1161
- <div class="ttc" id="aclassSVF_1_1BinaryOPStmt_html_ad0a7c5e87355d7a83176343322db448f"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html#ad0a7c5e87355d7a83176343322db448f">SVF::BinaryOPStmt::getOpcode</a></div><div class="ttdeci">u32_t getOpcode() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l01015">SVFStatements.h:1015</a></div></div>
1134
+ <div class="ttc" id="aclassSVF_1_1BinaryOPStmt_html_ad0a7c5e87355d7a83176343322db448f"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html#ad0a7c5e87355d7a83176343322db448f">SVF::BinaryOPStmt::getOpcode</a></div><div class="ttdeci">u32_t getOpcode() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l01017">SVFStatements.h:1017</a></div></div>
1162
1135
  <div class="ttc" id="aclassSVF_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#l00353">SVFVariables.h:353</a></div></div>
1163
1136
  <div class="ttc" id="aclassSVF_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>
1164
- <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_a646fa58f61db6abd98d0a04af1fab88d"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#a646fa58f61db6abd98d0a04af1fab88d">SVF::SVFIR2ItvExeState::initObjVar</a></div><div class="ttdeci">void initObjVar(const ObjVar *objVar, u32_t varId)</div><div class="ttdoc">Init ObjVar.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00419">SVFIR2ItvExeState.cpp:419</a></div></div>
1137
+ <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_a646fa58f61db6abd98d0a04af1fab88d"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#a646fa58f61db6abd98d0a04af1fab88d">SVF::SVFIR2ItvExeState::initObjVar</a></div><div class="ttdeci">void initObjVar(const ObjVar *objVar, u32_t varId)</div><div class="ttdoc">Init ObjVar.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00459">SVFIR2ItvExeState.cpp:459</a></div></div>
1165
1138
  <div class="ttc" id="acJSON_8h_html_ac76cea59d438ba893d2f82aabb367d14"><div class="ttname"><a href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a></div><div class="ttdeci">cJSON * item</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8h_source.html#l00222">cJSON.h:222</a></div></div>
1166
- <div class="ttc" id="aclassSVF_1_1BinaryOPStmt_html_a2f647224242dd87099104e0fdc994de6a7a4ce4e97992d92ac044456e66821552"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a7a4ce4e97992d92ac044456e66821552">SVF::BinaryOPStmt::SDiv</a></div><div class="ttdeci">@ SDiv</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00979">SVFStatements.h:979</a></div></div>
1139
+ <div class="ttc" id="aclassSVF_1_1BinaryOPStmt_html_a2f647224242dd87099104e0fdc994de6a7a4ce4e97992d92ac044456e66821552"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a7a4ce4e97992d92ac044456e66821552">SVF::BinaryOPStmt::SDiv</a></div><div class="ttdeci">@ SDiv</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00981">SVFStatements.h:981</a></div></div>
1167
1140
  <div class="ttc" id="aclassSVF_1_1AssignStmt_html_a98f731be7be9bc8e7fd09f5c2204c840"><div class="ttname"><a href="classSVF_1_1AssignStmt.html#a98f731be7be9bc8e7fd09f5c2204c840">SVF::AssignStmt::getLHSVarID</a></div><div class="ttdeci">NodeID getLHSVarID() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00302">SVFStatements.h:302</a></div></div>
1168
- <div class="ttc" id="aclassSVF_1_1MultiOpndStmt_html_af300571886b7aa2d84b0a70851c99bc3"><div class="ttname"><a href="classSVF_1_1MultiOpndStmt.html#af300571886b7aa2d84b0a70851c99bc3">SVF::MultiOpndStmt::getOpVarNum</a></div><div class="ttdeci">u32_t getOpVarNum() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00724">SVFStatements.h:724</a></div></div>
1141
+ <div class="ttc" id="aclassSVF_1_1MultiOpndStmt_html_af300571886b7aa2d84b0a70851c99bc3"><div class="ttname"><a href="classSVF_1_1MultiOpndStmt.html#af300571886b7aa2d84b0a70851c99bc3">SVF::MultiOpndStmt::getOpVarNum</a></div><div class="ttdeci">u32_t getOpVarNum() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00726">SVFStatements.h:726</a></div></div>
1169
1142
  <div class="ttc" id="aclassSVF_1_1IntervalValue_html_a977128211266b93e58e298a7ac29a059"><div class="ttname"><a href="classSVF_1_1IntervalValue.html#a977128211266b93e58e298a7ac29a059">SVF::IntervalValue::isTop</a></div><div class="ttdeci">bool isTop() const override</div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00055">IntervalValue.h:55</a></div></div>
1170
1143
  <div class="ttc" id="aclassSVF_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>
1171
- <div class="ttc" id="aclassSVF_1_1CmpStmt_html_ad8e01744bfd98d584661025ce59338acaeeae52f8d195815edfb8c85037d246d6"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acaeeae52f8d195815edfb8c85037d246d6">SVF::CmpStmt::ICMP_SLE</a></div><div class="ttdeci">@ ICMP_SLE</div><div class="ttdoc">signed less or equal</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00916">SVFStatements.h:916</a></div></div>
1144
+ <div class="ttc" id="aclassSVF_1_1CmpStmt_html_ad8e01744bfd98d584661025ce59338acaeeae52f8d195815edfb8c85037d246d6"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acaeeae52f8d195815edfb8c85037d246d6">SVF::CmpStmt::ICMP_SLE</a></div><div class="ttdeci">@ ICMP_SLE</div><div class="ttdoc">signed less or equal</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00918">SVFStatements.h:918</a></div></div>
1172
1145
  <div class="ttc" id="aclassSVF_1_1Options_html_aaab923c093730b1670a54f09340b1bd5"><div class="ttname"><a href="classSVF_1_1Options.html#aaab923c093730b1670a54f09340b1bd5">SVF::Options::MaxFieldLimit</a></div><div class="ttdeci">static const Option&lt; u32_t &gt; MaxFieldLimit</div><div class="ttdoc">Maximum number of field derivations for an object.</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00038">Options.h:38</a></div></div>
1173
1146
  <div class="ttc" id="anamespaceSVF_html_a43a65e0d33af3c743294f7a1139d2301"><div class="ttname"><a href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">SVF::NodeID</a></div><div class="ttdeci">unsigned NodeID</div><div class="ttdef"><b>Definition:</b> <a href="svf-llvm_2tools_2MTA_2MTAResultValidator_8h_source.html#l00020">MTAResultValidator.h:20</a></div></div>
1174
1147
  <div class="ttc" id="aclassSVF_1_1SVFVar_html_ab6f95d3e7e099d75cfc9645ebc037047"><div class="ttname"><a href="classSVF_1_1SVFVar.html#ab6f95d3e7e099d75cfc9645ebc037047">SVF::SVFVar::getType</a></div><div class="ttdeci">virtual const SVFType * getType() const</div><div class="ttdoc">Return type of the value.</div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00107">SVFVariables.h:107</a></div></div>
1175
- <div class="ttc" id="aclassSVF_1_1CmpStmt_html_ad8e01744bfd98d584661025ce59338acac5a87d53b1ad255cec18b3784cd81f80"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acac5a87d53b1ad255cec18b3784cd81f80">SVF::CmpStmt::ICMP_SGE</a></div><div class="ttdeci">@ ICMP_SGE</div><div class="ttdoc">signed greater or equal</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00914">SVFStatements.h:914</a></div></div>
1148
+ <div class="ttc" id="aclassSVF_1_1CmpStmt_html_ad8e01744bfd98d584661025ce59338acac5a87d53b1ad255cec18b3784cd81f80"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acac5a87d53b1ad255cec18b3784cd81f80">SVF::CmpStmt::ICMP_SGE</a></div><div class="ttdeci">@ ICMP_SGE</div><div class="ttdoc">signed greater or equal</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00916">SVFStatements.h:916</a></div></div>
1176
1149
  <div class="ttc" id="aclassSVF_1_1MultiOpndStmt_html_a71a530eb9fa9f7e273e471b4a75a039e"><div class="ttname"><a href="classSVF_1_1MultiOpndStmt.html#a71a530eb9fa9f7e273e471b4a75a039e">SVF::MultiOpndStmt::getResID</a></div><div class="ttdeci">NodeID getResID() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8cpp_source.html#l00289">SVFStatements.cpp:289</a></div></div>
1150
+ <div class="ttc" id="aclassSVF_1_1GepStmt_html_a0572909694bf47d9448a0f1e5e14a50b"><div class="ttname"><a href="classSVF_1_1GepStmt.html#a0572909694bf47d9448a0f1e5e14a50b">SVF::GepStmt::getOffsetVarAndGepTypePairVec</a></div><div class="ttdeci">const AccessPath::IdxVarAndGepTypePairs getOffsetVarAndGepTypePairVec() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00496">SVFStatements.h:496</a></div></div>
1177
1151
  <div class="ttc" id="aclassSVF_1_1AddressValue_html_a04456fe47889dd8f1b712255c9598fe9"><div class="ttname"><a href="classSVF_1_1AddressValue.html#a04456fe47889dd8f1b712255c9598fe9">SVF::AddressValue::equals</a></div><div class="ttdeci">bool equals(const AddressValue &amp;rhs) const</div><div class="ttdef"><b>Definition:</b> <a href="AddressValue_8h_source.html#l00087">AddressValue.h:87</a></div></div>
1178
1152
  <div class="ttc" id="anamespaceSVF_html_ad781b0b14e89773e774072b280658ef3"><div class="ttname"><a href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">SVF::s64_t</a></div><div class="ttdeci">signed long long s64_t</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00054">SVFType.h:54</a></div></div>
1153
+ <div class="ttc" id="aclassSVF_1_1IntervalValue_html_ae081b5c462f8ed5b306719822e35cea9"><div class="ttname"><a href="classSVF_1_1IntervalValue.html#ae081b5c462f8ed5b306719822e35cea9">SVF::IntervalValue::getNumeral</a></div><div class="ttdeci">s64_t getNumeral() const</div><div class="ttdoc">Return.</div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00263">IntervalValue.h:263</a></div></div>
1154
+ <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_a678a5278fd485eea65093add11b8a7c3"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#a678a5278fd485eea65093add11b8a7c3">SVF::SVFIR2ItvExeState::getItvOfFlattenedElemIndexFromGepTypePair</a></div><div class="ttdeci">IntervalValue getItvOfFlattenedElemIndexFromGepTypePair(const AccessPath::IdxVarAndGepTypePair &amp;gep_pair, const GepStmt *gep)</div><div class="ttdoc">Return the Index offset from one gep param offset.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00268">SVFIR2ItvExeState.cpp:268</a></div></div>
1179
1155
  <div class="ttc" id="aclassSVF_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#l00380">SymbolTableInfo.h:380</a></div></div>
1180
- <div class="ttc" id="aclassSVF_1_1SVFConstantInt_html_a73f04bdfc19261b65164b98787bc2ed4"><div class="ttname"><a href="classSVF_1_1SVFConstantInt.html#a73f04bdfc19261b65164b98787bc2ed4">SVF::SVFConstantInt::getSExtValue</a></div><div class="ttdeci">s64_t getSExtValue() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00983">SVFValue.h:983</a></div></div>
1181
- <div class="ttc" id="aclassSVF_1_1CmpStmt_html_ad8e01744bfd98d584661025ce59338aca8d59d9d7f39bb9c8b1e3dcebe0c5dc48"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca8d59d9d7f39bb9c8b1e3dcebe0c5dc48">SVF::CmpStmt::ICMP_UGT</a></div><div class="ttdeci">@ ICMP_UGT</div><div class="ttdoc">unsigned greater than</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00909">SVFStatements.h:909</a></div></div>
1182
- <div class="ttc" id="aclassSVF_1_1BinaryOPStmt_html_a2f647224242dd87099104e0fdc994de6a0df258a85e260bcb9534ae1b650e1856"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a0df258a85e260bcb9534ae1b650e1856">SVF::BinaryOPStmt::And</a></div><div class="ttdeci">@ And</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00987">SVFStatements.h:987</a></div></div>
1183
- <div class="ttc" id="aclassSVF_1_1AccessPath_html_acefbd7faec2833144b07c5bb96eb6f84"><div class="ttname"><a href="classSVF_1_1AccessPath.html#acefbd7faec2833144b07c5bb96eb6f84">SVF::AccessPath::VarAndGepTypePair</a></div><div class="ttdeci">std::pair&lt; const SVFVar *, const SVFType * &gt; VarAndGepTypePair</div><div class="ttdef"><b>Definition:</b> <a href="AccessPath_8h_source.html#l00064">AccessPath.h:64</a></div></div>
1156
+ <div class="ttc" id="aclassSVF_1_1CmpStmt_html_ad8e01744bfd98d584661025ce59338aca8d59d9d7f39bb9c8b1e3dcebe0c5dc48"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca8d59d9d7f39bb9c8b1e3dcebe0c5dc48">SVF::CmpStmt::ICMP_UGT</a></div><div class="ttdeci">@ ICMP_UGT</div><div class="ttdoc">unsigned greater than</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00911">SVFStatements.h:911</a></div></div>
1157
+ <div class="ttc" id="aclassSVF_1_1BinaryOPStmt_html_a2f647224242dd87099104e0fdc994de6a0df258a85e260bcb9534ae1b650e1856"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a0df258a85e260bcb9534ae1b650e1856">SVF::BinaryOPStmt::And</a></div><div class="ttdeci">@ And</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00989">SVFStatements.h:989</a></div></div>
1184
1158
  <div class="ttc" id="aclassSVF_1_1IntervalValue_html_a3771eb932069dcad8212009efc411b99"><div class="ttname"><a href="classSVF_1_1IntervalValue.html#a3771eb932069dcad8212009efc411b99">SVF::IntervalValue::join_with</a></div><div class="ttdeci">void join_with(const IntervalValue &amp;other)</div><div class="ttdoc">Current IntervalValue joins with another IntervalValue.</div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00345">IntervalValue.h:345</a></div></div>
1185
1159
  <div class="ttc" id="aclassSVF_1_1SVFType_html_a333e01a9c431c8f53bd2fc597bd5c40ca77e52ad9bebff282f40383f468fe856d"><div class="ttname"><a href="classSVF_1_1SVFType.html#a333e01a9c431c8f53bd2fc597bd5c40ca77e52ad9bebff282f40383f468fe856d">SVF::SVFType::SVFStructTy</a></div><div class="ttdeci">@ SVFStructTy</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00256">SVFType.h:256</a></div></div>
1186
- <div class="ttc" id="aclassSVF_1_1CmpStmt_html_ad8e01744bfd98d584661025ce59338aca7234c9a242034a71d0bdcb54aeec6da7"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca7234c9a242034a71d0bdcb54aeec6da7">SVF::CmpStmt::FCMP_TRUE</a></div><div class="ttdeci">@ FCMP_TRUE</div><div class="ttdoc">1 1 1 1 Always true (always folded)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00903">SVFStatements.h:903</a></div></div>
1160
+ <div class="ttc" id="aclassSVF_1_1CmpStmt_html_ad8e01744bfd98d584661025ce59338aca7234c9a242034a71d0bdcb54aeec6da7"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca7234c9a242034a71d0bdcb54aeec6da7">SVF::CmpStmt::FCMP_TRUE</a></div><div class="ttdeci">@ FCMP_TRUE</div><div class="ttdoc">1 1 1 1 Always true (always folded)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00905">SVFStatements.h:905</a></div></div>
1187
1161
  <div class="ttc" id="anamespaceSVF_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="SVFType_8h_source.html#l00051">SVFType.h:51</a></div></div>
1188
1162
  <div class="ttc" id="aclassSVF_1_1StInfo_html_a55e5fd85f232c1867c5c6a73646d53eb"><div class="ttname"><a href="classSVF_1_1StInfo.html#a55e5fd85f232c1867c5c6a73646d53eb">SVF::StInfo::getFlattenedElemIdxVec</a></div><div class="ttdeci">std::vector&lt; u32_t &gt; &amp; getFlattenedElemIdxVec()</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00184">SVFType.h:184</a></div></div>
1189
1163
  <div class="ttc" id="anamespaceSVF_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#l00056">SVFUtil.h:56</a></div></div>
1190
1164
  <div class="ttc" id="aclassSVF_1_1IntervalExeState_html_a36e15d9d95908b74fcf321e30a9cdebe"><div class="ttname"><a href="classSVF_1_1IntervalExeState.html#a36e15d9d95908b74fcf321e30a9cdebe">SVF::IntervalExeState::getVAddrs</a></div><div class="ttdeci">VAddrs &amp; getVAddrs(u32_t id) override</div><div class="ttdef"><b>Definition:</b> <a href="IntervalExeState_8h_source.html#l00154">IntervalExeState.h:154</a></div></div>
1191
1165
  <div class="ttc" id="aclassSVF_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#l00528">SymbolTableInfo.cpp:528</a></div></div>
1192
- <div class="ttc" id="aclassSVF_1_1BinaryOPStmt_html_a2f647224242dd87099104e0fdc994de6a06926877b6c25931a409224497753862"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a06926877b6c25931a409224497753862">SVF::BinaryOPStmt::Add</a></div><div class="ttdeci">@ Add</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00972">SVFStatements.h:972</a></div></div>
1166
+ <div class="ttc" id="aclassSVF_1_1BinaryOPStmt_html_a2f647224242dd87099104e0fdc994de6a06926877b6c25931a409224497753862"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a06926877b6c25931a409224497753862">SVF::BinaryOPStmt::Add</a></div><div class="ttdeci">@ Add</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00974">SVFStatements.h:974</a></div></div>
1193
1167
  <div class="ttc" id="aclassSVF_1_1AddressValue_html_aed0b4789beda4980e4e215a65350f323"><div class="ttname"><a href="classSVF_1_1AddressValue.html#aed0b4789beda4980e4e215a65350f323">SVF::AddressValue::begin</a></div><div class="ttdeci">AddrSet::const_iterator begin() const</div><div class="ttdef"><b>Definition:</b> <a href="AddressValue_8h_source.html#l00103">AddressValue.h:103</a></div></div>
1194
- <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_a61d288c8dc621a0578faa5ff784f4b6e"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#a61d288c8dc621a0578faa5ff784f4b6e">SVF::SVFIR2ItvExeState::initValVar</a></div><div class="ttdeci">void initValVar(const ValVar *valVar, u32_t varId)</div><div class="ttdoc">Init ValVar.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00382">SVFIR2ItvExeState.cpp:382</a></div></div>
1168
+ <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_a61d288c8dc621a0578faa5ff784f4b6e"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#a61d288c8dc621a0578faa5ff784f4b6e">SVF::SVFIR2ItvExeState::initValVar</a></div><div class="ttdeci">void initValVar(const ValVar *valVar, u32_t varId)</div><div class="ttdoc">Init ValVar.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00423">SVFIR2ItvExeState.cpp:423</a></div></div>
1195
1169
  <!-- start footer part -->
1196
1170
  <hr class="footer"/><address class="footer"><small>
1197
1171
  Generated by &#160;<a href="http://www.doxygen.org/index.html">