svf-tools 1.0.768 → 1.0.770

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 (503) hide show
  1. package/SVF-doxygen/html/html/AccessPath_8cpp_source.html +163 -130
  2. package/SVF-doxygen/html/html/AccessPath_8h_source.html +47 -45
  3. package/SVF-doxygen/html/html/AddressValue_8h_source.html +1 -1
  4. package/SVF-doxygen/html/html/Andersen_8cpp_source.html +1 -1
  5. package/SVF-doxygen/html/html/CFGrammar_8cpp_source.html +3 -3
  6. package/SVF-doxygen/html/html/CFLAlias_8cpp_source.html +1 -1
  7. package/SVF-doxygen/html/html/CHGBuilder_8cpp_source.html +9 -9
  8. package/SVF-doxygen/html/html/CommandLine_8h_source.html +1 -1
  9. package/SVF-doxygen/html/html/ConsExeState_8cpp_source.html +1 -1
  10. package/SVF-doxygen/html/html/ConsExeState_8h_source.html +1 -1
  11. package/SVF-doxygen/html/html/ConsG_8cpp_source.html +9 -9
  12. package/SVF-doxygen/html/html/ContextDDA_8cpp_source.html +1 -1
  13. package/SVF-doxygen/html/html/CoreBitVector_8cpp_source.html +1 -1
  14. package/SVF-doxygen/html/html/CxtStmt_8h_source.html +1 -1
  15. package/SVF-doxygen/html/html/DCHG_8cpp_source.html +2 -2
  16. package/SVF-doxygen/html/html/DDAClient_8cpp_source.html +1 -1
  17. package/SVF-doxygen/html/html/DPItem_8h_source.html +1 -1
  18. package/SVF-doxygen/html/html/ExeState_8h_source.html +1 -1
  19. package/SVF-doxygen/html/html/ExtAPI_8cpp.html +1 -1
  20. package/SVF-doxygen/html/html/ExtAPI_8cpp_source.html +60 -67
  21. package/SVF-doxygen/html/html/ExtAPI_8h_source.html +9 -9
  22. package/SVF-doxygen/html/html/FlowDDA_8cpp_source.html +1 -1
  23. package/SVF-doxygen/html/html/FlowSensitive_8cpp_source.html +1 -1
  24. package/SVF-doxygen/html/html/GenericGraph_8h_source.html +1 -1
  25. package/SVF-doxygen/html/html/ICFGBuilder_8cpp_source.html +2 -2
  26. package/SVF-doxygen/html/html/ICFGEdge_8h_source.html +2 -2
  27. package/SVF-doxygen/html/html/ICFG_8cpp_source.html +3 -3
  28. package/SVF-doxygen/html/html/IRGraph_8cpp_source.html +2 -2
  29. package/SVF-doxygen/html/html/IntervalExeState_8h_source.html +1 -1
  30. package/SVF-doxygen/html/html/IntervalValue_8h_source.html +1 -1
  31. package/SVF-doxygen/html/html/LLVMModule_8cpp_source.html +19 -19
  32. package/SVF-doxygen/html/html/LLVMUtil_8cpp_source.html +1108 -1111
  33. package/SVF-doxygen/html/html/LLVMUtil_8h.html +2 -0
  34. package/SVF-doxygen/html/html/LLVMUtil_8h_source.html +191 -172
  35. package/SVF-doxygen/html/html/LockResultValidator_8cpp_source.html +1 -1
  36. package/SVF-doxygen/html/html/MHP_8cpp_source.html +1 -1
  37. package/SVF-doxygen/html/html/MemRegion_8cpp_source.html +1 -1
  38. package/SVF-doxygen/html/html/MemSSA_8cpp_source.html +3 -3
  39. package/SVF-doxygen/html/html/NumericLiteral_8h_source.html +1 -1
  40. package/SVF-doxygen/html/html/PAGBuilderFromFile_8cpp_source.html +2 -2
  41. package/SVF-doxygen/html/html/PTACallGraph_8cpp_source.html +2 -2
  42. package/SVF-doxygen/html/html/PointerAnalysis_8cpp_source.html +1 -1
  43. package/SVF-doxygen/html/html/PointsTo_8cpp_source.html +1 -1
  44. package/SVF-doxygen/html/html/RelExeState_8h_source.html +1 -1
  45. package/SVF-doxygen/html/html/SVFFileSystem_8cpp_source.html +13 -13
  46. package/SVF-doxygen/html/html/SVFFileSystem_8h_source.html +13 -13
  47. package/SVF-doxygen/html/html/SVFGBuilder_8cpp_source.html +1 -1
  48. package/SVF-doxygen/html/html/SVFGOPT_8h_source.html +1 -1
  49. package/SVF-doxygen/html/html/SVFG_8cpp_source.html +2 -2
  50. package/SVF-doxygen/html/html/SVFIR2ConsExeState_8cpp_source.html +56 -56
  51. package/SVF-doxygen/html/html/SVFIR2ConsExeState_8h_source.html +6 -6
  52. package/SVF-doxygen/html/html/SVFIR2ItvExeState_8cpp_source.html +831 -749
  53. package/SVF-doxygen/html/html/SVFIR2ItvExeState_8h_source.html +138 -127
  54. package/SVF-doxygen/html/html/SVFIR2Relation_8cpp_source.html +33 -33
  55. package/SVF-doxygen/html/html/SVFIRBuilder_8cpp_source.html +11 -11
  56. package/SVF-doxygen/html/html/SVFIRBuilder_8h_source.html +11 -11
  57. package/SVF-doxygen/html/html/SVFIRExtAPI_8cpp_source.html +11 -12
  58. package/SVF-doxygen/html/html/SVFIR_8cpp_source.html +15 -15
  59. package/SVF-doxygen/html/html/SVFIR_8h_source.html +11 -11
  60. package/SVF-doxygen/html/html/SVFStatements_8cpp_source.html +20 -20
  61. package/SVF-doxygen/html/html/SVFStatements_8h_source.html +806 -799
  62. package/SVF-doxygen/html/html/SVFType_8h_source.html +1 -1
  63. package/SVF-doxygen/html/html/SVFUtil_8cpp_source.html +1 -1
  64. package/SVF-doxygen/html/html/SVFUtil_8h.html +0 -12
  65. package/SVF-doxygen/html/html/SVFUtil_8h_source.html +300 -333
  66. package/SVF-doxygen/html/html/SVFValue_8cpp_source.html +1 -1
  67. package/SVF-doxygen/html/html/SVFValue_8h_source.html +2 -2
  68. package/SVF-doxygen/html/html/SVFVariables_8cpp_source.html +1 -1
  69. package/SVF-doxygen/html/html/SaberCondAllocator_8cpp_source.html +8 -8
  70. package/SVF-doxygen/html/html/SaberCondAllocator_8h_source.html +2 -2
  71. package/SVF-doxygen/html/html/SparseBitVector_8h_source.html +1 -1
  72. package/SVF-doxygen/html/html/Steensgaard_8cpp_source.html +1 -1
  73. package/SVF-doxygen/html/html/SymState_8cpp_source.html +1 -1
  74. package/SVF-doxygen/html/html/SymState_8h_source.html +1 -1
  75. package/SVF-doxygen/html/html/SymbolTableBuilder_8cpp_source.html +52 -62
  76. package/SVF-doxygen/html/html/SymbolTableBuilder_8h_source.html +3 -3
  77. package/SVF-doxygen/html/html/SymbolTableInfo_8cpp_source.html +1 -1
  78. package/SVF-doxygen/html/html/VFGNode_8h_source.html +7 -7
  79. package/SVF-doxygen/html/html/VFG_8cpp_source.html +15 -15
  80. package/SVF-doxygen/html/html/VFG_8h_source.html +10 -10
  81. package/SVF-doxygen/html/html/WTO_8h_source.html +1 -1
  82. package/SVF-doxygen/html/html/cJSON_8cpp.html +3 -2
  83. package/SVF-doxygen/html/html/cJSON_8cpp_source.html +3 -2
  84. package/SVF-doxygen/html/html/classOption.html +1 -1
  85. package/SVF-doxygen/html/html/classSVF_1_1AccessPath-members.html +27 -26
  86. package/SVF-doxygen/html/html/classSVF_1_1AccessPath.html +179 -124
  87. package/SVF-doxygen/html/html/classSVF_1_1ActualINSVFGNode.html +1 -1
  88. package/SVF-doxygen/html/html/classSVF_1_1ActualOUTSVFGNode.html +1 -1
  89. package/SVF-doxygen/html/html/classSVF_1_1AddrStmt.html +1 -1
  90. package/SVF-doxygen/html/html/classSVF_1_1AddressValue.html +1 -1
  91. package/SVF-doxygen/html/html/classSVF_1_1AliasDDAClient.html +1 -1
  92. package/SVF-doxygen/html/html/classSVF_1_1Andersen.html +1 -1
  93. package/SVF-doxygen/html/html/classSVF_1_1BinaryOPStmt.html +69 -69
  94. package/SVF-doxygen/html/html/classSVF_1_1BinaryOPVFGNode.html +1 -1
  95. package/SVF-doxygen/html/html/classSVF_1_1BranchStmt.html +52 -52
  96. package/SVF-doxygen/html/html/classSVF_1_1BranchVFGNode.html +3 -3
  97. package/SVF-doxygen/html/html/classSVF_1_1CFBasicBlockGWTO.html +1 -1
  98. package/SVF-doxygen/html/html/classSVF_1_1CFBasicBlockGWTOCycle.html +1 -1
  99. package/SVF-doxygen/html/html/classSVF_1_1CFLAlias.html +1 -1
  100. package/SVF-doxygen/html/html/classSVF_1_1CHGBuilder.html +9 -9
  101. package/SVF-doxygen/html/html/classSVF_1_1CallCFGEdge.html +1 -1
  102. package/SVF-doxygen/html/html/classSVF_1_1CallPE.html +36 -36
  103. package/SVF-doxygen/html/html/classSVF_1_1CmpStmt.html +98 -98
  104. package/SVF-doxygen/html/html/classSVF_1_1CmpVFGNode.html +1 -1
  105. package/SVF-doxygen/html/html/classSVF_1_1ConsExeState.html +1 -1
  106. package/SVF-doxygen/html/html/classSVF_1_1ConstraintGraph.html +8 -8
  107. package/SVF-doxygen/html/html/classSVF_1_1ContextCond.html +1 -1
  108. package/SVF-doxygen/html/html/classSVF_1_1ContextDDA.html +1 -1
  109. package/SVF-doxygen/html/html/classSVF_1_1CopyStmt.html +1 -1
  110. package/SVF-doxygen/html/html/classSVF_1_1CoreBitVector.html +1 -1
  111. package/SVF-doxygen/html/html/classSVF_1_1CxtDPItem.html +1 -1
  112. package/SVF-doxygen/html/html/classSVF_1_1CxtStmt.html +1 -1
  113. package/SVF-doxygen/html/html/classSVF_1_1CxtThread.html +1 -1
  114. package/SVF-doxygen/html/html/classSVF_1_1CxtThreadStmt.html +1 -1
  115. package/SVF-doxygen/html/html/classSVF_1_1DCHGraph.html +2 -2
  116. package/SVF-doxygen/html/html/classSVF_1_1DoubleFreeChecker.html +1 -1
  117. package/SVF-doxygen/html/html/classSVF_1_1ExeState.html +1 -1
  118. package/SVF-doxygen/html/html/classSVF_1_1ExtAPI-members.html +1 -1
  119. package/SVF-doxygen/html/html/classSVF_1_1ExtAPI.html +51 -56
  120. package/SVF-doxygen/html/html/classSVF_1_1FIObjVar.html +1 -1
  121. package/SVF-doxygen/html/html/classSVF_1_1FlowDDA.html +1 -1
  122. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive.html +1 -1
  123. package/SVF-doxygen/html/html/classSVF_1_1ForkJoinAnalysis.html +1 -1
  124. package/SVF-doxygen/html/html/classSVF_1_1GepObjVar.html +1 -1
  125. package/SVF-doxygen/html/html/classSVF_1_1GepStmt-members.html +96 -95
  126. package/SVF-doxygen/html/html/classSVF_1_1GepStmt.html +55 -20
  127. package/SVF-doxygen/html/html/classSVF_1_1GepValVar.html +1 -1
  128. package/SVF-doxygen/html/html/classSVF_1_1GrammarBase.html +3 -3
  129. package/SVF-doxygen/html/html/classSVF_1_1ICFG.html +3 -3
  130. package/SVF-doxygen/html/html/classSVF_1_1ICFGBuilder.html +3 -3
  131. package/SVF-doxygen/html/html/classSVF_1_1InterMSSAPHISVFGNode.html +1 -1
  132. package/SVF-doxygen/html/html/classSVF_1_1InterPHIVFGNode.html +1 -1
  133. package/SVF-doxygen/html/html/classSVF_1_1IntervalExeState.html +1 -1
  134. package/SVF-doxygen/html/html/classSVF_1_1IntervalValue.html +1 -1
  135. package/SVF-doxygen/html/html/classSVF_1_1IntraCFGEdge.html +1 -1
  136. package/SVF-doxygen/html/html/classSVF_1_1IntraICFGNode.html +1 -1
  137. package/SVF-doxygen/html/html/classSVF_1_1IntraPHIVFGNode.html +1 -1
  138. package/SVF-doxygen/html/html/classSVF_1_1LLVMModuleSet.html +19 -19
  139. package/SVF-doxygen/html/html/classSVF_1_1LeakChecker.html +1 -1
  140. package/SVF-doxygen/html/html/classSVF_1_1LoadStmt.html +1 -1
  141. package/SVF-doxygen/html/html/classSVF_1_1LockResultValidator.html +1 -1
  142. package/SVF-doxygen/html/html/classSVF_1_1MHP.html +1 -1
  143. package/SVF-doxygen/html/html/classSVF_1_1MRGenerator.html +1 -1
  144. package/SVF-doxygen/html/html/classSVF_1_1MTAResultValidator.html +1 -1
  145. package/SVF-doxygen/html/html/classSVF_1_1MemObj.html +1 -1
  146. package/SVF-doxygen/html/html/classSVF_1_1MemSSA.html +3 -3
  147. package/SVF-doxygen/html/html/classSVF_1_1MultiOpndStmt.html +48 -48
  148. package/SVF-doxygen/html/html/classSVF_1_1NumericLiteral.html +1 -1
  149. package/SVF-doxygen/html/html/classSVF_1_1ObjVar.html +1 -1
  150. package/SVF-doxygen/html/html/classSVF_1_1PAGBuilderFromFile.html +2 -2
  151. package/SVF-doxygen/html/html/classSVF_1_1PHIVFGNode.html +1 -1
  152. package/SVF-doxygen/html/html/classSVF_1_1PTACallGraphEdge.html +1 -1
  153. package/SVF-doxygen/html/html/classSVF_1_1PTACallGraphNode.html +1 -1
  154. package/SVF-doxygen/html/html/classSVF_1_1PhiStmt.html +47 -47
  155. package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.html +1 -1
  156. package/SVF-doxygen/html/html/classSVF_1_1PointsTo.html +1 -1
  157. package/SVF-doxygen/html/html/classSVF_1_1PointsTo_1_1PointsToIterator.html +1 -1
  158. package/SVF-doxygen/html/html/classSVF_1_1RelExeState.html +1 -1
  159. package/SVF-doxygen/html/html/classSVF_1_1RetCFGEdge.html +1 -1
  160. package/SVF-doxygen/html/html/classSVF_1_1RetPE.html +36 -36
  161. package/SVF-doxygen/html/html/classSVF_1_1SVFFunction.html +1 -1
  162. package/SVF-doxygen/html/html/classSVF_1_1SVFG.html +2 -2
  163. package/SVF-doxygen/html/html/classSVF_1_1SVFGBuilder.html +1 -1
  164. package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT.html +1 -1
  165. package/SVF-doxygen/html/html/classSVF_1_1SVFGlobalValue.html +1 -1
  166. package/SVF-doxygen/html/html/classSVF_1_1SVFIR.html +14 -14
  167. package/SVF-doxygen/html/html/classSVF_1_1SVFIR2ConsExeState.html +49 -49
  168. package/SVF-doxygen/html/html/classSVF_1_1SVFIR2ItvExeState-members.html +45 -42
  169. package/SVF-doxygen/html/html/classSVF_1_1SVFIR2ItvExeState.html +962 -780
  170. package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder.html +21 -22
  171. package/SVF-doxygen/html/html/classSVF_1_1SVFIRReader.html +2 -2
  172. package/SVF-doxygen/html/html/classSVF_1_1SVFOtherType.html +1 -1
  173. package/SVF-doxygen/html/html/classSVF_1_1SVFStructType.html +1 -1
  174. package/SVF-doxygen/html/html/classSVF_1_1SVFValue.html +24 -24
  175. package/SVF-doxygen/html/html/classSVF_1_1SaberCondAllocator.html +8 -8
  176. package/SVF-doxygen/html/html/classSVF_1_1SelectStmt.html +39 -39
  177. package/SVF-doxygen/html/html/classSVF_1_1SparseBitVector.html +1 -1
  178. package/SVF-doxygen/html/html/classSVF_1_1Steensgaard.html +1 -1
  179. package/SVF-doxygen/html/html/classSVF_1_1StoreStmt.html +1 -1
  180. package/SVF-doxygen/html/html/classSVF_1_1SymState.html +1 -1
  181. package/SVF-doxygen/html/html/classSVF_1_1SymbolTableBuilder.html +51 -61
  182. package/SVF-doxygen/html/html/classSVF_1_1TCT.html +1 -1
  183. package/SVF-doxygen/html/html/classSVF_1_1TDForkPE.html +23 -23
  184. package/SVF-doxygen/html/html/classSVF_1_1TDJoinPE.html +22 -22
  185. package/SVF-doxygen/html/html/classSVF_1_1UnaryOPStmt.html +45 -45
  186. package/SVF-doxygen/html/html/classSVF_1_1UnaryOPVFGNode.html +1 -1
  187. package/SVF-doxygen/html/html/classSVF_1_1VFG.html +15 -15
  188. package/SVF-doxygen/html/html/classSVF_1_1ValVar.html +1 -1
  189. package/SVF-doxygen/html/html/classSVF_1_1iter__adaptor__base.html +1 -1
  190. package/SVF-doxygen/html/html/classSVF_1_1iter__facade__base_1_1ReferenceProxy.html +1 -1
  191. package/SVF-doxygen/html/html/classSVF_1_1iter__range.html +1 -1
  192. package/SVF-doxygen/html/html/classSVF_1_1mapped__iter.html +1 -1
  193. package/SVF-doxygen/html/html/classSVF_1_1pointer__iterator.html +1 -1
  194. package/SVF-doxygen/html/html/extapi_8c.html +1487 -302
  195. package/SVF-doxygen/html/html/extapi_8c_source.html +1120 -1164
  196. package/SVF-doxygen/html/html/functions_a.html +14 -11
  197. package/SVF-doxygen/html/html/functions_c.html +24 -21
  198. package/SVF-doxygen/html/html/functions_f.html +3 -3
  199. package/SVF-doxygen/html/html/functions_func.html +9 -6
  200. package/SVF-doxygen/html/html/functions_func_c.html +19 -16
  201. package/SVF-doxygen/html/html/functions_func_g.html +24 -15
  202. package/SVF-doxygen/html/html/functions_func_h.html +1 -1
  203. package/SVF-doxygen/html/html/functions_func_p.html +1 -1
  204. package/SVF-doxygen/html/html/functions_func_s.html +2 -2
  205. package/SVF-doxygen/html/html/functions_g.html +24 -15
  206. package/SVF-doxygen/html/html/functions_h.html +1 -1
  207. package/SVF-doxygen/html/html/functions_i.html +3 -3
  208. package/SVF-doxygen/html/html/functions_l.html +5 -5
  209. package/SVF-doxygen/html/html/functions_o.html +7 -7
  210. package/SVF-doxygen/html/html/functions_p.html +12 -12
  211. package/SVF-doxygen/html/html/functions_r.html +4 -2
  212. package/SVF-doxygen/html/html/functions_s.html +18 -18
  213. package/SVF-doxygen/html/html/functions_v.html +6 -6
  214. package/SVF-doxygen/html/html/functions_w.html +9 -9
  215. package/SVF-doxygen/html/html/globals.html +20 -2
  216. package/SVF-doxygen/html/html/globals_a.html +3 -0
  217. package/SVF-doxygen/html/html/globals_b.html +10 -4
  218. package/SVF-doxygen/html/html/globals_c.html +8 -4
  219. package/SVF-doxygen/html/html/globals_d.html +9 -0
  220. package/SVF-doxygen/html/html/globals_defs.html +3 -0
  221. package/SVF-doxygen/html/html/globals_func.html +18 -399
  222. package/SVF-doxygen/html/html/globals_func_a.html +91 -0
  223. package/SVF-doxygen/html/html/globals_func_b.html +14 -20
  224. package/SVF-doxygen/html/html/globals_func_c.html +16 -849
  225. package/SVF-doxygen/html/html/globals_func_d.html +14 -275
  226. package/SVF-doxygen/html/html/globals_func_e.html +8 -97
  227. package/SVF-doxygen/html/html/globals_func_f.html +17 -20
  228. package/SVF-doxygen/html/html/globals_func_g.html +72 -25
  229. package/SVF-doxygen/html/html/globals_func_h.html +9 -6
  230. package/SVF-doxygen/html/html/globals_func_i.html +49 -31
  231. package/SVF-doxygen/html/html/globals_func_j.html +79 -0
  232. package/SVF-doxygen/html/html/globals_func_l.html +15 -9
  233. package/SVF-doxygen/html/html/globals_func_m.html +13 -87
  234. package/SVF-doxygen/html/html/globals_func_n.html +79 -0
  235. package/SVF-doxygen/html/html/globals_func_p.html +13 -22
  236. package/SVF-doxygen/html/html/globals_func_r.html +16 -28
  237. package/SVF-doxygen/html/html/globals_func_s.html +32 -128
  238. package/SVF-doxygen/html/html/globals_func_t.html +18 -9
  239. package/SVF-doxygen/html/html/globals_func_u.html +8 -18
  240. package/SVF-doxygen/html/html/globals_func_w.html +8 -5
  241. package/SVF-doxygen/html/html/globals_func_z.html +10 -73
  242. package/SVF-doxygen/html/html/globals_g.html +54 -0
  243. package/SVF-doxygen/html/html/globals_l.html +6 -0
  244. package/SVF-doxygen/html/html/globals_n.html +5 -2
  245. package/SVF-doxygen/html/html/globals_p.html +4 -1
  246. package/SVF-doxygen/html/html/globals_r.html +11 -8
  247. package/SVF-doxygen/html/html/globals_s.html +6 -0
  248. package/SVF-doxygen/html/html/globals_t.html +6 -0
  249. package/SVF-doxygen/html/html/globals_z.html +3 -0
  250. package/SVF-doxygen/html/html/iterator_8h_source.html +1 -1
  251. package/SVF-doxygen/html/html/iterator__range_8h_source.html +1 -1
  252. package/SVF-doxygen/html/html/menudata.js +20 -17
  253. package/SVF-doxygen/html/html/namespaceSVF.html +1 -1
  254. package/SVF-doxygen/html/html/namespaceSVF_1_1LLVMUtil.html +1058 -1014
  255. package/SVF-doxygen/html/html/namespaceSVF_1_1SVFUtil.html +206 -383
  256. package/SVF-doxygen/html/html/namespacemembers_func_i.html +2 -11
  257. package/SVF-doxygen/html/html/namespacemembers_func_s.html +3 -0
  258. package/SVF-doxygen/html/html/namespacemembers_i.html +5 -14
  259. package/SVF-doxygen/html/html/namespacemembers_s.html +3 -0
  260. package/SVF-doxygen/html/html/search/all_0.js +158 -152
  261. package/SVF-doxygen/html/html/search/all_1.js +478 -476
  262. package/SVF-doxygen/html/html/search/all_10.js +324 -323
  263. package/SVF-doxygen/html/html/search/all_11.js +213 -212
  264. package/SVF-doxygen/html/html/search/all_12.js +539 -536
  265. package/SVF-doxygen/html/html/search/all_13.js +190 -188
  266. package/SVF-doxygen/html/html/search/all_14.js +66 -66
  267. package/SVF-doxygen/html/html/search/all_15.js +170 -170
  268. package/SVF-doxygen/html/html/search/all_16.js +60 -60
  269. package/SVF-doxygen/html/html/search/all_17.js +1 -1
  270. package/SVF-doxygen/html/html/search/all_18.js +1 -1
  271. package/SVF-doxygen/html/html/search/all_19.js +11 -10
  272. package/SVF-doxygen/html/html/search/all_1a.js +169 -169
  273. package/SVF-doxygen/html/html/search/all_2.js +161 -159
  274. package/SVF-doxygen/html/html/search/all_3.js +628 -626
  275. package/SVF-doxygen/html/html/search/all_4.js +229 -226
  276. package/SVF-doxygen/html/html/search/all_5.js +117 -117
  277. package/SVF-doxygen/html/html/search/all_6.js +224 -224
  278. package/SVF-doxygen/html/html/search/all_7.js +1020 -999
  279. package/SVF-doxygen/html/html/search/all_8.js +191 -191
  280. package/SVF-doxygen/html/html/search/all_9.js +602 -605
  281. package/SVF-doxygen/html/html/search/all_a.js +46 -46
  282. package/SVF-doxygen/html/html/search/all_b.js +26 -26
  283. package/SVF-doxygen/html/html/search/all_c.js +116 -114
  284. package/SVF-doxygen/html/html/search/all_d.js +196 -196
  285. package/SVF-doxygen/html/html/search/all_e.js +206 -205
  286. package/SVF-doxygen/html/html/search/all_f.js +116 -116
  287. package/SVF-doxygen/html/html/search/classes_0.js +26 -26
  288. package/SVF-doxygen/html/html/search/classes_1.js +9 -9
  289. package/SVF-doxygen/html/html/search/classes_10.js +73 -73
  290. package/SVF-doxygen/html/html/search/classes_11.js +15 -15
  291. package/SVF-doxygen/html/html/search/classes_12.js +2 -2
  292. package/SVF-doxygen/html/html/search/classes_13.js +10 -10
  293. package/SVF-doxygen/html/html/search/classes_14.js +14 -14
  294. package/SVF-doxygen/html/html/search/classes_15.js +1 -1
  295. package/SVF-doxygen/html/html/search/classes_2.js +76 -76
  296. package/SVF-doxygen/html/html/search/classes_3.js +35 -35
  297. package/SVF-doxygen/html/html/search/classes_4.js +8 -8
  298. package/SVF-doxygen/html/html/search/classes_5.js +28 -28
  299. package/SVF-doxygen/html/html/search/classes_6.js +98 -98
  300. package/SVF-doxygen/html/html/search/classes_7.js +33 -33
  301. package/SVF-doxygen/html/html/search/classes_8.js +56 -56
  302. package/SVF-doxygen/html/html/search/classes_9.js +1 -1
  303. package/SVF-doxygen/html/html/search/classes_a.js +12 -12
  304. package/SVF-doxygen/html/html/search/classes_b.js +29 -29
  305. package/SVF-doxygen/html/html/search/classes_c.js +6 -6
  306. package/SVF-doxygen/html/html/search/classes_d.js +18 -18
  307. package/SVF-doxygen/html/html/search/classes_e.js +36 -36
  308. package/SVF-doxygen/html/html/search/classes_f.js +25 -25
  309. package/SVF-doxygen/html/html/search/defines_0.js +3 -3
  310. package/SVF-doxygen/html/html/search/defines_1.js +2 -2
  311. package/SVF-doxygen/html/html/search/defines_2.js +30 -30
  312. package/SVF-doxygen/html/html/search/defines_3.js +20 -20
  313. package/SVF-doxygen/html/html/search/defines_4.js +3 -3
  314. package/SVF-doxygen/html/html/search/defines_5.js +4 -4
  315. package/SVF-doxygen/html/html/search/defines_6.js +2 -2
  316. package/SVF-doxygen/html/html/search/defines_7.js +5 -5
  317. package/SVF-doxygen/html/html/search/defines_8.js +11 -11
  318. package/SVF-doxygen/html/html/search/defines_9.js +9 -9
  319. package/SVF-doxygen/html/html/search/defines_a.js +2 -2
  320. package/SVF-doxygen/html/html/search/defines_b.js +1 -1
  321. package/SVF-doxygen/html/html/search/defines_c.js +3 -3
  322. package/SVF-doxygen/html/html/search/defines_d.js +2 -2
  323. package/SVF-doxygen/html/html/search/defines_e.js +7 -6
  324. package/SVF-doxygen/html/html/search/defines_f.js +3 -3
  325. package/SVF-doxygen/html/html/search/enums_0.js +3 -3
  326. package/SVF-doxygen/html/html/search/enums_1.js +2 -2
  327. package/SVF-doxygen/html/html/search/enums_10.js +1 -1
  328. package/SVF-doxygen/html/html/search/enums_11.js +1 -1
  329. package/SVF-doxygen/html/html/search/enums_2.js +8 -8
  330. package/SVF-doxygen/html/html/search/enums_3.js +1 -1
  331. package/SVF-doxygen/html/html/search/enums_4.js +3 -3
  332. package/SVF-doxygen/html/html/search/enums_5.js +1 -1
  333. package/SVF-doxygen/html/html/search/enums_6.js +2 -2
  334. package/SVF-doxygen/html/html/search/enums_7.js +2 -2
  335. package/SVF-doxygen/html/html/search/enums_8.js +4 -4
  336. package/SVF-doxygen/html/html/search/enums_9.js +1 -1
  337. package/SVF-doxygen/html/html/search/enums_a.js +1 -1
  338. package/SVF-doxygen/html/html/search/enums_b.js +7 -7
  339. package/SVF-doxygen/html/html/search/enums_c.js +1 -1
  340. package/SVF-doxygen/html/html/search/enums_d.js +4 -4
  341. package/SVF-doxygen/html/html/search/enums_e.js +2 -2
  342. package/SVF-doxygen/html/html/search/enums_f.js +4 -4
  343. package/SVF-doxygen/html/html/search/enumvalues_0.js +14 -14
  344. package/SVF-doxygen/html/html/search/enumvalues_1.js +14 -14
  345. package/SVF-doxygen/html/html/search/enumvalues_10.js +35 -35
  346. package/SVF-doxygen/html/html/search/enumvalues_11.js +3 -3
  347. package/SVF-doxygen/html/html/search/enumvalues_12.js +10 -10
  348. package/SVF-doxygen/html/html/search/enumvalues_13.js +1 -1
  349. package/SVF-doxygen/html/html/search/enumvalues_14.js +1 -1
  350. package/SVF-doxygen/html/html/search/enumvalues_15.js +3 -3
  351. package/SVF-doxygen/html/html/search/enumvalues_2.js +36 -36
  352. package/SVF-doxygen/html/html/search/enumvalues_3.js +13 -13
  353. package/SVF-doxygen/html/html/search/enumvalues_4.js +2 -2
  354. package/SVF-doxygen/html/html/search/enumvalues_5.js +47 -47
  355. package/SVF-doxygen/html/html/search/enumvalues_6.js +6 -6
  356. package/SVF-doxygen/html/html/search/enumvalues_7.js +9 -9
  357. package/SVF-doxygen/html/html/search/enumvalues_8.js +23 -23
  358. package/SVF-doxygen/html/html/search/enumvalues_9.js +6 -6
  359. package/SVF-doxygen/html/html/search/enumvalues_a.js +15 -15
  360. package/SVF-doxygen/html/html/search/enumvalues_b.js +11 -11
  361. package/SVF-doxygen/html/html/search/enumvalues_c.js +5 -5
  362. package/SVF-doxygen/html/html/search/enumvalues_d.js +18 -18
  363. package/SVF-doxygen/html/html/search/enumvalues_e.js +9 -9
  364. package/SVF-doxygen/html/html/search/enumvalues_f.js +45 -45
  365. package/SVF-doxygen/html/html/search/files_0.js +13 -13
  366. package/SVF-doxygen/html/html/search/files_1.js +7 -7
  367. package/SVF-doxygen/html/html/search/files_10.js +8 -8
  368. package/SVF-doxygen/html/html/search/files_11.js +8 -8
  369. package/SVF-doxygen/html/html/search/files_12.js +2 -2
  370. package/SVF-doxygen/html/html/search/files_2.js +49 -49
  371. package/SVF-doxygen/html/html/search/files_3.js +14 -14
  372. package/SVF-doxygen/html/html/search/files_4.js +5 -5
  373. package/SVF-doxygen/html/html/search/files_5.js +13 -13
  374. package/SVF-doxygen/html/html/search/files_6.js +9 -9
  375. package/SVF-doxygen/html/html/search/files_7.js +14 -14
  376. package/SVF-doxygen/html/html/search/files_8.js +13 -13
  377. package/SVF-doxygen/html/html/search/files_9.js +18 -18
  378. package/SVF-doxygen/html/html/search/files_a.js +3 -3
  379. package/SVF-doxygen/html/html/search/files_b.js +2 -2
  380. package/SVF-doxygen/html/html/search/files_c.js +20 -20
  381. package/SVF-doxygen/html/html/search/files_d.js +4 -4
  382. package/SVF-doxygen/html/html/search/files_e.js +62 -62
  383. package/SVF-doxygen/html/html/search/files_f.js +8 -8
  384. package/SVF-doxygen/html/html/search/functions_0.js +12 -6
  385. package/SVF-doxygen/html/html/search/functions_1.js +350 -348
  386. package/SVF-doxygen/html/html/search/functions_10.js +140 -139
  387. package/SVF-doxygen/html/html/search/functions_11.js +127 -126
  388. package/SVF-doxygen/html/html/search/functions_12.js +275 -273
  389. package/SVF-doxygen/html/html/search/functions_13.js +58 -56
  390. package/SVF-doxygen/html/html/search/functions_14.js +38 -38
  391. package/SVF-doxygen/html/html/search/functions_15.js +71 -71
  392. package/SVF-doxygen/html/html/search/functions_16.js +29 -29
  393. package/SVF-doxygen/html/html/search/functions_17.js +3 -2
  394. package/SVF-doxygen/html/html/search/functions_18.js +169 -169
  395. package/SVF-doxygen/html/html/search/functions_2.js +84 -82
  396. package/SVF-doxygen/html/html/search/functions_3.js +253 -251
  397. package/SVF-doxygen/html/html/search/functions_4.js +74 -71
  398. package/SVF-doxygen/html/html/search/functions_5.js +51 -51
  399. package/SVF-doxygen/html/html/search/functions_6.js +58 -58
  400. package/SVF-doxygen/html/html/search/functions_7.js +840 -819
  401. package/SVF-doxygen/html/html/search/functions_8.js +143 -143
  402. package/SVF-doxygen/html/html/search/functions_9.js +422 -425
  403. package/SVF-doxygen/html/html/search/functions_a.js +30 -30
  404. package/SVF-doxygen/html/html/search/functions_b.js +2 -2
  405. package/SVF-doxygen/html/html/search/functions_c.js +26 -24
  406. package/SVF-doxygen/html/html/search/functions_d.js +77 -77
  407. package/SVF-doxygen/html/html/search/functions_e.js +35 -34
  408. package/SVF-doxygen/html/html/search/functions_f.js +56 -56
  409. package/SVF-doxygen/html/html/search/namespaces_0.js +1 -1
  410. package/SVF-doxygen/html/html/search/namespaces_1.js +7 -7
  411. package/SVF-doxygen/html/html/search/related_0.js +2 -2
  412. package/SVF-doxygen/html/html/search/related_1.js +1 -1
  413. package/SVF-doxygen/html/html/search/related_2.js +2 -2
  414. package/SVF-doxygen/html/html/search/related_3.js +2 -2
  415. package/SVF-doxygen/html/html/search/related_4.js +2 -2
  416. package/SVF-doxygen/html/html/search/related_5.js +1 -1
  417. package/SVF-doxygen/html/html/search/related_6.js +2 -2
  418. package/SVF-doxygen/html/html/search/related_7.js +4 -4
  419. package/SVF-doxygen/html/html/search/related_8.js +2 -2
  420. package/SVF-doxygen/html/html/search/related_9.js +4 -4
  421. package/SVF-doxygen/html/html/search/related_a.js +19 -19
  422. package/SVF-doxygen/html/html/search/related_b.js +4 -4
  423. package/SVF-doxygen/html/html/search/related_c.js +1 -1
  424. package/SVF-doxygen/html/html/search/related_d.js +11 -11
  425. package/SVF-doxygen/html/html/search/related_e.js +2 -2
  426. package/SVF-doxygen/html/html/search/related_f.js +2 -2
  427. package/SVF-doxygen/html/html/search/typedefs_0.js +18 -18
  428. package/SVF-doxygen/html/html/search/typedefs_1.js +25 -25
  429. package/SVF-doxygen/html/html/search/typedefs_10.js +60 -60
  430. package/SVF-doxygen/html/html/search/typedefs_11.js +13 -13
  431. package/SVF-doxygen/html/html/search/typedefs_12.js +11 -11
  432. package/SVF-doxygen/html/html/search/typedefs_13.js +35 -35
  433. package/SVF-doxygen/html/html/search/typedefs_14.js +8 -8
  434. package/SVF-doxygen/html/html/search/typedefs_2.js +126 -126
  435. package/SVF-doxygen/html/html/search/typedefs_3.js +39 -39
  436. package/SVF-doxygen/html/html/search/typedefs_4.js +16 -16
  437. package/SVF-doxygen/html/html/search/typedefs_5.js +41 -41
  438. package/SVF-doxygen/html/html/search/typedefs_6.js +52 -52
  439. package/SVF-doxygen/html/html/search/typedefs_7.js +40 -40
  440. package/SVF-doxygen/html/html/search/typedefs_8.js +1 -1
  441. package/SVF-doxygen/html/html/search/typedefs_9.js +6 -6
  442. package/SVF-doxygen/html/html/search/typedefs_a.js +29 -29
  443. package/SVF-doxygen/html/html/search/typedefs_b.js +29 -29
  444. package/SVF-doxygen/html/html/search/typedefs_c.js +40 -40
  445. package/SVF-doxygen/html/html/search/typedefs_d.js +15 -15
  446. package/SVF-doxygen/html/html/search/typedefs_e.js +52 -52
  447. package/SVF-doxygen/html/html/search/typedefs_f.js +14 -14
  448. package/SVF-doxygen/html/html/search/variables_0.js +147 -147
  449. package/SVF-doxygen/html/html/search/variables_1.js +75 -75
  450. package/SVF-doxygen/html/html/search/variables_10.js +97 -97
  451. package/SVF-doxygen/html/html/search/variables_11.js +46 -46
  452. package/SVF-doxygen/html/html/search/variables_12.js +92 -92
  453. package/SVF-doxygen/html/html/search/variables_13.js +75 -75
  454. package/SVF-doxygen/html/html/search/variables_14.js +14 -14
  455. package/SVF-doxygen/html/html/search/variables_15.js +48 -48
  456. package/SVF-doxygen/html/html/search/variables_16.js +9 -9
  457. package/SVF-doxygen/html/html/search/variables_17.js +1 -1
  458. package/SVF-doxygen/html/html/search/variables_18.js +2 -2
  459. package/SVF-doxygen/html/html/search/variables_2.js +34 -34
  460. package/SVF-doxygen/html/html/search/variables_3.js +141 -141
  461. package/SVF-doxygen/html/html/search/variables_4.js +55 -55
  462. package/SVF-doxygen/html/html/search/variables_5.js +38 -38
  463. package/SVF-doxygen/html/html/search/variables_6.js +66 -66
  464. package/SVF-doxygen/html/html/search/variables_7.js +33 -33
  465. package/SVF-doxygen/html/html/search/variables_8.js +7 -7
  466. package/SVF-doxygen/html/html/search/variables_9.js +77 -77
  467. package/SVF-doxygen/html/html/search/variables_a.js +4 -4
  468. package/SVF-doxygen/html/html/search/variables_b.js +10 -10
  469. package/SVF-doxygen/html/html/search/variables_c.js +45 -45
  470. package/SVF-doxygen/html/html/search/variables_d.js +56 -56
  471. package/SVF-doxygen/html/html/search/variables_e.js +123 -123
  472. package/SVF-doxygen/html/html/search/variables_f.js +30 -30
  473. package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01ConstraintGraph_01_5_01_4.html +1 -1
  474. package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01IRGraph_01_5_01_4.html +2 -2
  475. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1is__iterable.html +1 -1
  476. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1is__iterable_3_01T_00_01void__t_3_01decltype_07std_1_1begin_07std_1_1dec794949348c8e1e00603fd8633b6dd1f3.html +1 -1
  477. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1is__map.html +1 -1
  478. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1is__map_3_01std_1_1map_3_01Ts_8_8_8_01_4_01_4.html +1 -1
  479. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1is__map_3_01std_1_1unordered__map_3_01Ts_8_8_8_01_4_01_4.html +1 -1
  480. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1is__sequence__container.html +1 -1
  481. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1is__sequence__container_3_01std_1_1deque_3_01Ts_8_8_8_01_4_01_4.html +1 -1
  482. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1is__sequence__container_3_01std_1_1list_3_01Ts_8_8_8_01_4_01_4.html +1 -1
  483. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1is__sequence__container_3_01std_1_1vector_3_01Ts_8_8_8_01_4_01_4.html +1 -1
  484. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1is__set.html +1 -1
  485. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1is__set_3_01std_1_1set_3_01Ts_8_8_8_01_4_01_4.html +1 -1
  486. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1is__set_3_01std_1_1unordered__set_3_01Ts_8_8_8_01_4_01_4.html +1 -1
  487. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1make__void.html +2 -2
  488. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1AccessPath_01_4.html +8 -8
  489. package/SVF-doxygen/html/html/svf-ex_8cpp.html +1 -1
  490. package/SVF-doxygen/html/html/svf-ex_8cpp_source.html +1 -1
  491. package/package.json +1 -1
  492. package/svf/include/AbstractExecution/SVFIR2ItvExeState.h +14 -0
  493. package/svf/include/MemoryModel/AccessPath.h +6 -0
  494. package/svf/include/SVFIR/SVFStatements.h +10 -0
  495. package/svf/include/Util/SVFUtil.h +0 -34
  496. package/svf/lib/AbstractExecution/SVFIR2ItvExeState.cpp +154 -75
  497. package/svf/lib/MemoryModel/AccessPath.cpp +39 -0
  498. package/svf/lib/Util/ExtAPI.cpp +0 -6
  499. package/svf-llvm/include/SVF-LLVM/LLVMUtil.h +19 -2
  500. package/svf-llvm/lib/LLVMUtil.cpp +0 -2
  501. package/svf-llvm/lib/SVFIRExtAPI.cpp +1 -1
  502. package/svf-llvm/lib/SymbolTableBuilder.cpp +0 -9
  503. package/svf-llvm/lib/extapi.c +210 -295
@@ -149,130 +149,162 @@ $(function() {
149
149
  <div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; }</div>
150
150
  <div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;}</div>
151
151
  <div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; </div>
152
- <div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; </div>
153
- <div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;<span class="comment">// struct inner{ int rollNumber; float percentage;};</span></div>
154
- <div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;<span class="comment">// struct Student { struct inner rollNumber; char studentName[10][3];}</span></div>
155
- <div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;<span class="comment">// char x = studentRecord[1].studentName[3][2];</span></div>
156
- <div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; </div>
157
- <div class="line"><a name="l00118"></a><span class="lineno"><a class="line" href="classSVF_1_1AccessPath.html#ae746362c42da05a641ae062658e40651"> 118</a></span>&#160;<a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> <a class="code" href="classSVF_1_1AccessPath.html#ae746362c42da05a641ae062658e40651">AccessPath::computeConstantOffset</a>()<span class="keyword"> const</span></div>
158
- <div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;<span class="keyword"></span>{</div>
159
- <div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; </div>
160
- <div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; assert(isConstantOffset() &amp;&amp; <span class="stringliteral">&quot;not a constant offset&quot;</span>);</div>
161
- <div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; </div>
162
- <div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="keywordflow">if</span>(offsetVarAndGepTypePairs.empty())</div>
163
- <div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <span class="keywordflow">return</span> getConstantFieldIdx();</div>
164
- <div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; </div>
165
- <div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> totalConstOffset = 0;</div>
166
- <div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = offsetVarAndGepTypePairs.size() - 1; i &gt;= 0; i--)</div>
167
- <div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; {</div>
168
- <div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFValue.html">SVFValue</a>* value = offsetVarAndGepTypePairs[i].first-&gt;getValue();</div>
169
- <div class="line"><a name="l00130"></a><span class="lineno"> 130</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> = offsetVarAndGepTypePairs[i].second;</div>
170
- <div class="line"><a name="l00131"></a><span class="lineno"> 131</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>
171
- <div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; assert(op &amp;&amp; <span class="stringliteral">&quot;not a constant offset?&quot;</span>);</div>
172
- <div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>==<span class="keyword">nullptr</span>)</div>
173
- <div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; {</div>
174
- <div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; totalConstOffset += op-&gt;<a class="code" href="classSVF_1_1SVFConstantInt.html#a73f04bdfc19261b65164b98787bc2ed4">getSExtValue</a>();</div>
175
- <div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="keywordflow">continue</span>;</div>
176
- <div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; }</div>
177
- <div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; </div>
178
- <div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <span class="keywordflow">if</span>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFPointerType.html">SVFPointerType</a>* pty = SVFUtil::dyn_cast&lt;SVFPointerType&gt;(<a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>))</div>
179
- <div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; totalConstOffset += op-&gt;<a class="code" href="classSVF_1_1SVFConstantInt.html#a73f04bdfc19261b65164b98787bc2ed4">getSExtValue</a>() * getElementNum(pty-&gt;getPtrElementType());</div>
180
- <div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <span class="keywordflow">else</span></div>
181
- <div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; {</div>
182
- <div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> <a class="code" href="cJSON_8cpp.html#a95bf816579e97b6f33bdb5e25ed6d5de">offset</a> = op-&gt;<a class="code" href="classSVF_1_1SVFConstantInt.html#a73f04bdfc19261b65164b98787bc2ed4">getSExtValue</a>();</div>
183
- <div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="cJSON_8cpp.html#a95bf816579e97b6f33bdb5e25ed6d5de">offset</a> &gt;= 0)</div>
184
- <div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; {</div>
185
- <div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> flattenOffset =</div>
186
- <div class="line"><a name="l00147"></a><span class="lineno"> 147</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>(<a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>,</div>
187
- <div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <a class="code" href="cJSON_8cpp.html#a95bf816579e97b6f33bdb5e25ed6d5de">offset</a>);</div>
188
- <div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; totalConstOffset += flattenOffset;</div>
189
- <div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; }</div>
190
- <div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <span class="keywordflow">else</span></div>
191
- <div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; totalConstOffset += <a class="code" href="cJSON_8cpp.html#a95bf816579e97b6f33bdb5e25ed6d5de">offset</a>;</div>
192
- <div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; }</div>
193
- <div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; }</div>
194
- <div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <span class="keywordflow">return</span> totalConstOffset;</div>
195
- <div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;}</div>
196
- <div class="line"><a name="l00160"></a><span class="lineno"><a class="line" href="classSVF_1_1AccessPath.html#a76222b6571e46e8a8bd5c8c597c8ffaf"> 160</a></span>&#160;<a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a> <a class="code" href="classSVF_1_1AccessPath.html#a76222b6571e46e8a8bd5c8c597c8ffaf">AccessPath::computeAllLocations</a>()<span class="keyword"> const</span></div>
197
- <div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;<span class="keyword"></span>{</div>
198
- <div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a> result;</div>
199
- <div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; result.<a class="code" href="classSVF_1_1SparseBitVector.html#a61bd86909a141f9de873d92c0f904832">set</a>(getConstantFieldIdx());</div>
200
- <div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <span class="keywordflow">return</span> result;</div>
201
- <div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;}</div>
202
- <div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; </div>
203
- <div class="line"><a name="l00167"></a><span class="lineno"><a class="line" href="classSVF_1_1AccessPath.html#a6591b6092a829b0c874754b649087aa2"> 167</a></span>&#160;<a class="code" href="classSVF_1_1AccessPath.html">AccessPath</a> <a class="code" href="classSVF_1_1AccessPath.html#a6591b6092a829b0c874754b649087aa2">AccessPath::operator+</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1AccessPath.html">AccessPath</a>&amp; rhs)<span class="keyword"> const</span></div>
204
- <div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;<span class="keyword"></span>{</div>
205
- <div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <a class="code" href="classSVF_1_1AccessPath.html">AccessPath</a> ap(rhs);</div>
206
- <div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; ap.<a class="code" href="classSVF_1_1AccessPath.html#aa1747064a0833855a5848ebf4a4d65fa">fldIdx</a> += getConstantFieldIdx();</div>
207
- <div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">auto</span> &amp;<a class="code" href="cJSON_8cpp.html#a009ef1d888ab6dbe77e6b42b0b39f1ae">p</a> : ap.<a class="code" href="classSVF_1_1AccessPath.html#ab0641554924d44f16c2831cac63ccf8b">getOffsetVarAndGepTypePairVec</a>())</div>
208
- <div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; ap.<a class="code" href="classSVF_1_1AccessPath.html#a2358a8194b5e2c4bcbb5218dee7fcbcd">addOffsetVarAndGepTypePair</a>(<a class="code" href="cJSON_8cpp.html#a009ef1d888ab6dbe77e6b42b0b39f1ae">p</a>.first, <a class="code" href="cJSON_8cpp.html#a009ef1d888ab6dbe77e6b42b0b39f1ae">p</a>.second);</div>
209
- <div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; </div>
210
- <div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <span class="keywordflow">return</span> ap;</div>
211
- <div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;}</div>
212
- <div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; </div>
213
- <div class="line"><a name="l00177"></a><span class="lineno"><a class="line" href="classSVF_1_1AccessPath.html#ae0f38a5f473af89678db2755667c3421"> 177</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1AccessPath.html#ae0f38a5f473af89678db2755667c3421">AccessPath::operator&lt; </a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1AccessPath.html">AccessPath</a>&amp; rhs)<span class="keyword"> const</span></div>
214
- <div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;<span class="keyword"></span>{</div>
215
- <div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <span class="keywordflow">if</span> (fldIdx != rhs.<a class="code" href="classSVF_1_1AccessPath.html#aa1747064a0833855a5848ebf4a4d65fa">fldIdx</a>)</div>
216
- <div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <span class="keywordflow">return</span> (fldIdx &lt; rhs.<a class="code" href="classSVF_1_1AccessPath.html#aa1747064a0833855a5848ebf4a4d65fa">fldIdx</a>);</div>
217
- <div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <span class="keywordflow">else</span></div>
218
- <div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; {</div>
219
- <div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1AccessPath.html#a73ba2fd20ff0e21a2f09a3396f2596f8">OffsetVarAndGepTypePairs</a>&amp; pairVec = getOffsetVarAndGepTypePairVec();</div>
220
- <div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1AccessPath.html#a73ba2fd20ff0e21a2f09a3396f2596f8">OffsetVarAndGepTypePairs</a>&amp; rhsPairVec = rhs.<a class="code" href="classSVF_1_1AccessPath.html#ab0641554924d44f16c2831cac63ccf8b">getOffsetVarAndGepTypePairVec</a>();</div>
221
- <div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; <span class="keywordflow">if</span> (pairVec.size() != rhsPairVec.size())</div>
222
- <div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; <span class="keywordflow">return</span> (pairVec.size() &lt; rhsPairVec.size());</div>
223
- <div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <span class="keywordflow">else</span></div>
224
- <div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; {</div>
225
- <div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; OffsetVarAndGepTypePairs::const_iterator it = pairVec.begin();</div>
226
- <div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; OffsetVarAndGepTypePairs::const_iterator rhsIt = rhsPairVec.begin();</div>
227
- <div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="keywordflow">for</span> (; it != pairVec.end() &amp;&amp; rhsIt != rhsPairVec.end(); ++it, ++rhsIt)</div>
228
- <div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; {</div>
229
- <div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <span class="keywordflow">return</span> (*it) &lt; (*rhsIt);</div>
230
- <div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; }</div>
231
- <div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; </div>
232
- <div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
233
- <div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; }</div>
234
- <div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; }</div>
235
- <div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160;}</div>
236
- <div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; </div>
237
- <div class="line"><a name="l00201"></a><span class="lineno"><a class="line" href="classSVF_1_1AccessPath.html#a98b8b3428479259fbafd9e527ecc09bb"> 201</a></span>&#160;<a class="code" href="classSVF_1_1AccessPath.html#aabb6c9600fac408f36b9fde013597245">SVF::AccessPath::LSRelation</a> <a class="code" href="classSVF_1_1AccessPath.html#a98b8b3428479259fbafd9e527ecc09bb">AccessPath::checkRelation</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1AccessPath.html">AccessPath</a>&amp; LHS, <span class="keyword">const</span> <a class="code" href="classSVF_1_1AccessPath.html">AccessPath</a>&amp; RHS)</div>
238
- <div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160;{</div>
239
- <div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a> lhsLocations = LHS.<a class="code" href="classSVF_1_1AccessPath.html#a76222b6571e46e8a8bd5c8c597c8ffaf">computeAllLocations</a>();</div>
240
- <div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a> rhsLocations = RHS.<a class="code" href="classSVF_1_1AccessPath.html#a76222b6571e46e8a8bd5c8c597c8ffaf">computeAllLocations</a>();</div>
241
- <div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <span class="keywordflow">if</span> (lhsLocations.<a class="code" href="classSVF_1_1SparseBitVector.html#a16756e0545fd3d50ab89f45a2e83bb79">intersects</a>(rhsLocations))</div>
242
- <div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; {</div>
243
- <div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <span class="keywordflow">if</span> (lhsLocations == rhsLocations)</div>
244
- <div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; <span class="keywordflow">return</span> Same;</div>
245
- <div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (lhsLocations.<a class="code" href="classSVF_1_1SparseBitVector.html#abbd0e0cf759fad7858224ed8a63aade8">contains</a>(rhsLocations))</div>
246
- <div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; <span class="keywordflow">return</span> Superset;</div>
247
- <div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (rhsLocations.<a class="code" href="classSVF_1_1SparseBitVector.html#abbd0e0cf759fad7858224ed8a63aade8">contains</a>(lhsLocations))</div>
248
- <div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <span class="keywordflow">return</span> Subset;</div>
249
- <div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; <span class="keywordflow">else</span></div>
250
- <div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; <span class="keywordflow">return</span> Overlap;</div>
251
- <div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; }</div>
252
- <div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; <span class="keywordflow">else</span></div>
253
- <div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; {</div>
254
- <div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; <span class="keywordflow">return</span> NonOverlap;</div>
255
- <div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; }</div>
256
- <div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160;}</div>
257
- <div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; </div>
258
- <div class="line"><a name="l00223"></a><span class="lineno"><a class="line" href="classSVF_1_1AccessPath.html#a4519477605a58d5821d05951a88abcd0"> 223</a></span>&#160;<a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="classSVF_1_1AccessPath.html#a4519477605a58d5821d05951a88abcd0">AccessPath::dump</a>()<span class="keyword"> const</span></div>
259
- <div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160;<span class="keyword"></span>{</div>
260
- <div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> str;</div>
261
- <div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; std::stringstream rawstr(str);</div>
262
- <div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; </div>
263
- <div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot;AccessPath\tField_Index: &quot;</span> &lt;&lt; getConstantFieldIdx();</div>
264
- <div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot;,\tNum-Stride: {&quot;</span>;</div>
265
- <div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1AccessPath.html#a73ba2fd20ff0e21a2f09a3396f2596f8">OffsetVarAndGepTypePairs</a>&amp; vec = getOffsetVarAndGepTypePairVec();</div>
266
- <div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; OffsetVarAndGepTypePairs::const_iterator it = vec.begin();</div>
267
- <div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; OffsetVarAndGepTypePairs::const_iterator eit = vec.end();</div>
268
- <div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; <span class="keywordflow">for</span> (; it != eit; ++it)</div>
269
- <div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; {</div>
270
- <div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* ty = it-&gt;second;</div>
271
- <div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot; (Svf var: &quot;</span> &lt;&lt; it-&gt;first-&gt;<a class="code" href="classSVF_1_1SVFType.html#a9035ac13134de4647d63507cd80ca3d6">toString</a>() &lt;&lt; <span class="stringliteral">&quot;, Iter type: &quot;</span> &lt;&lt; *ty &lt;&lt; <span class="stringliteral">&quot;)&quot;</span>;</div>
152
+ <div class="line"><a name="l00097"></a><span class="lineno"><a class="line" href="classSVF_1_1AccessPath.html#afca303a7a5bde9a8ef56ae728d414553"> 97</a></span>&#160;<a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> <a class="code" href="classSVF_1_1AccessPath.html#afca303a7a5bde9a8ef56ae728d414553">AccessPath::computeConstantByteOffset</a>(<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> elemBytesize)<span class="keyword"> const</span></div>
153
+ <div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;<span class="keyword"></span>{</div>
154
+ <div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; assert(isConstantOffset() &amp;&amp; <span class="stringliteral">&quot;not a constant offset&quot;</span>);</div>
155
+ <div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; </div>
156
+ <div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keywordflow">if</span>(offsetVarAndGepTypePairs.empty())</div>
157
+ <div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <span class="keywordflow">return</span> getConstantFieldIdx() * elemBytesize;</div>
158
+ <div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; </div>
159
+ <div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> totalConstOffset = 0;</div>
160
+ <div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = offsetVarAndGepTypePairs.size() - 1; i &gt;= 0; i--)</div>
161
+ <div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; {</div>
162
+ <div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFValue.html">SVFValue</a>* value = offsetVarAndGepTypePairs[i].first-&gt;getValue();</div>
163
+ <div class="line"><a name="l00108"></a><span class="lineno"> 108</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> = offsetVarAndGepTypePairs[i].second;</div>
164
+ <div class="line"><a name="l00109"></a><span class="lineno"> 109</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>
165
+ <div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; assert(op &amp;&amp; <span class="stringliteral">&quot;not a constant offset?&quot;</span>);</div>
166
+ <div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>==<span class="keyword">nullptr</span>)</div>
167
+ <div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; {</div>
168
+ <div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; totalConstOffset += op-&gt;<a class="code" href="classSVF_1_1SVFConstantInt.html#a73f04bdfc19261b65164b98787bc2ed4">getSExtValue</a>() * elemBytesize;</div>
169
+ <div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="keywordflow">continue</span>;</div>
170
+ <div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; }</div>
171
+ <div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; </div>
172
+ <div class="line"><a name="l00117"></a><span class="lineno"> 117</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>
173
+ <div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; totalConstOffset += op-&gt;<a class="code" href="classSVF_1_1SVFConstantInt.html#a73f04bdfc19261b65164b98787bc2ed4">getSExtValue</a>() * getElementNum(pty-&gt;getPtrElementType()) * elemBytesize;</div>
174
+ <div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <span class="keywordflow">else</span></div>
175
+ <div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; {</div>
176
+ <div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> <a class="code" href="cJSON_8cpp.html#a95bf816579e97b6f33bdb5e25ed6d5de">offset</a> = op-&gt;<a class="code" href="classSVF_1_1SVFConstantInt.html#a73f04bdfc19261b65164b98787bc2ed4">getSExtValue</a>();</div>
177
+ <div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="comment">// if getByteOffset is false, it will retrieve flatten idx</span></div>
178
+ <div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; totalConstOffset += <a class="code" href="cJSON_8cpp.html#a95bf816579e97b6f33bdb5e25ed6d5de">offset</a> * elemBytesize;</div>
179
+ <div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; }</div>
180
+ <div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; }</div>
181
+ <div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <span class="keywordflow">return</span> totalConstOffset;</div>
182
+ <div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;}</div>
183
+ <div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; </div>
184
+ <div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; </div>
185
+ <div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;<span class="comment">// struct inner{ int rollNumber; float percentage;};</span></div>
186
+ <div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;<span class="comment">// struct Student { struct inner rollNumber; char studentName[10][3];}</span></div>
187
+ <div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;<span class="comment">// char x = studentRecord[1].studentName[3][2];</span></div>
188
+ <div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; </div>
189
+ <div class="line"><a name="l00157"></a><span class="lineno"><a class="line" href="classSVF_1_1AccessPath.html#ae746362c42da05a641ae062658e40651"> 157</a></span>&#160;<a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> <a class="code" href="classSVF_1_1AccessPath.html#ae746362c42da05a641ae062658e40651">AccessPath::computeConstantOffset</a>()<span class="keyword"> const</span></div>
190
+ <div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;<span class="keyword"></span>{</div>
191
+ <div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; </div>
192
+ <div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; assert(isConstantOffset() &amp;&amp; <span class="stringliteral">&quot;not a constant offset&quot;</span>);</div>
193
+ <div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; </div>
194
+ <div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <span class="keywordflow">if</span>(offsetVarAndGepTypePairs.empty())</div>
195
+ <div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="keywordflow">return</span> getConstantFieldIdx();</div>
196
+ <div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; </div>
197
+ <div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; <a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> totalConstOffset = 0;</div>
198
+ <div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = offsetVarAndGepTypePairs.size() - 1; i &gt;= 0; i--)</div>
199
+ <div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; {</div>
200
+ <div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFValue.html">SVFValue</a>* value = offsetVarAndGepTypePairs[i].first-&gt;getValue();</div>
201
+ <div class="line"><a name="l00169"></a><span class="lineno"> 169</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> = offsetVarAndGepTypePairs[i].second;</div>
202
+ <div class="line"><a name="l00170"></a><span class="lineno"> 170</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>
203
+ <div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; assert(op &amp;&amp; <span class="stringliteral">&quot;not a constant offset?&quot;</span>);</div>
204
+ <div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>==<span class="keyword">nullptr</span>)</div>
205
+ <div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; {</div>
206
+ <div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; totalConstOffset += op-&gt;<a class="code" href="classSVF_1_1SVFConstantInt.html#a73f04bdfc19261b65164b98787bc2ed4">getSExtValue</a>();</div>
207
+ <div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <span class="keywordflow">continue</span>;</div>
208
+ <div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; }</div>
209
+ <div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; </div>
210
+ <div class="line"><a name="l00178"></a><span class="lineno"> 178</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>
211
+ <div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; totalConstOffset += op-&gt;<a class="code" href="classSVF_1_1SVFConstantInt.html#a73f04bdfc19261b65164b98787bc2ed4">getSExtValue</a>() * getElementNum(pty-&gt;getPtrElementType());</div>
212
+ <div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <span class="keywordflow">else</span></div>
213
+ <div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; {</div>
214
+ <div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> <a class="code" href="cJSON_8cpp.html#a95bf816579e97b6f33bdb5e25ed6d5de">offset</a> = op-&gt;<a class="code" href="classSVF_1_1SVFConstantInt.html#a73f04bdfc19261b65164b98787bc2ed4">getSExtValue</a>();</div>
215
+ <div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="cJSON_8cpp.html#a95bf816579e97b6f33bdb5e25ed6d5de">offset</a> &gt;= 0)</div>
216
+ <div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; {</div>
217
+ <div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> flattenOffset =</div>
218
+ <div class="line"><a name="l00186"></a><span class="lineno"> 186</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>(<a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>,</div>
219
+ <div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <a class="code" href="cJSON_8cpp.html#a95bf816579e97b6f33bdb5e25ed6d5de">offset</a>);</div>
220
+ <div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; totalConstOffset += flattenOffset;</div>
221
+ <div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; }</div>
222
+ <div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; <span class="keywordflow">else</span></div>
223
+ <div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; totalConstOffset += <a class="code" href="cJSON_8cpp.html#a95bf816579e97b6f33bdb5e25ed6d5de">offset</a>;</div>
224
+ <div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; }</div>
225
+ <div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; }</div>
226
+ <div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; <span class="keywordflow">return</span> totalConstOffset;</div>
227
+ <div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;}</div>
228
+ <div class="line"><a name="l00199"></a><span class="lineno"><a class="line" href="classSVF_1_1AccessPath.html#a76222b6571e46e8a8bd5c8c597c8ffaf"> 199</a></span>&#160;<a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a> <a class="code" href="classSVF_1_1AccessPath.html#a76222b6571e46e8a8bd5c8c597c8ffaf">AccessPath::computeAllLocations</a>()<span class="keyword"> const</span></div>
229
+ <div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;<span class="keyword"></span>{</div>
230
+ <div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a> result;</div>
231
+ <div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; result.<a class="code" href="classSVF_1_1SparseBitVector.html#a61bd86909a141f9de873d92c0f904832">set</a>(getConstantFieldIdx());</div>
232
+ <div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; <span class="keywordflow">return</span> result;</div>
233
+ <div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;}</div>
234
+ <div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; </div>
235
+ <div class="line"><a name="l00206"></a><span class="lineno"><a class="line" href="classSVF_1_1AccessPath.html#a6591b6092a829b0c874754b649087aa2"> 206</a></span>&#160;<a class="code" href="classSVF_1_1AccessPath.html">AccessPath</a> <a class="code" href="classSVF_1_1AccessPath.html#a6591b6092a829b0c874754b649087aa2">AccessPath::operator+</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1AccessPath.html">AccessPath</a>&amp; rhs)<span class="keyword"> const</span></div>
236
+ <div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160;<span class="keyword"></span>{</div>
237
+ <div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; <a class="code" href="classSVF_1_1AccessPath.html">AccessPath</a> ap(rhs);</div>
238
+ <div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; ap.<a class="code" href="classSVF_1_1AccessPath.html#aa1747064a0833855a5848ebf4a4d65fa">fldIdx</a> += getConstantFieldIdx();</div>
239
+ <div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">auto</span> &amp;<a class="code" href="cJSON_8cpp.html#a009ef1d888ab6dbe77e6b42b0b39f1ae">p</a> : ap.<a class="code" href="classSVF_1_1AccessPath.html#ab0641554924d44f16c2831cac63ccf8b">getOffsetVarAndGepTypePairVec</a>())</div>
240
+ <div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; ap.<a class="code" href="classSVF_1_1AccessPath.html#a2358a8194b5e2c4bcbb5218dee7fcbcd">addOffsetVarAndGepTypePair</a>(<a class="code" href="cJSON_8cpp.html#a009ef1d888ab6dbe77e6b42b0b39f1ae">p</a>.first, <a class="code" href="cJSON_8cpp.html#a009ef1d888ab6dbe77e6b42b0b39f1ae">p</a>.second);</div>
241
+ <div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; </div>
242
+ <div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; <span class="keywordflow">return</span> ap;</div>
243
+ <div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160;}</div>
244
+ <div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; </div>
245
+ <div class="line"><a name="l00216"></a><span class="lineno"><a class="line" href="classSVF_1_1AccessPath.html#ae0f38a5f473af89678db2755667c3421"> 216</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1AccessPath.html#ae0f38a5f473af89678db2755667c3421">AccessPath::operator&lt; </a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1AccessPath.html">AccessPath</a>&amp; rhs)<span class="keyword"> const</span></div>
246
+ <div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160;<span class="keyword"></span>{</div>
247
+ <div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; <span class="keywordflow">if</span> (fldIdx != rhs.<a class="code" href="classSVF_1_1AccessPath.html#aa1747064a0833855a5848ebf4a4d65fa">fldIdx</a>)</div>
248
+ <div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; <span class="keywordflow">return</span> (fldIdx &lt; rhs.<a class="code" href="classSVF_1_1AccessPath.html#aa1747064a0833855a5848ebf4a4d65fa">fldIdx</a>);</div>
249
+ <div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; <span class="keywordflow">else</span></div>
250
+ <div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; {</div>
251
+ <div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1AccessPath.html#a73ba2fd20ff0e21a2f09a3396f2596f8">OffsetVarAndGepTypePairs</a>&amp; pairVec = getOffsetVarAndGepTypePairVec();</div>
252
+ <div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1AccessPath.html#a73ba2fd20ff0e21a2f09a3396f2596f8">OffsetVarAndGepTypePairs</a>&amp; rhsPairVec = rhs.<a class="code" href="classSVF_1_1AccessPath.html#ab0641554924d44f16c2831cac63ccf8b">getOffsetVarAndGepTypePairVec</a>();</div>
253
+ <div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; <span class="keywordflow">if</span> (pairVec.size() != rhsPairVec.size())</div>
254
+ <div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; <span class="keywordflow">return</span> (pairVec.size() &lt; rhsPairVec.size());</div>
255
+ <div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; <span class="keywordflow">else</span></div>
256
+ <div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; {</div>
257
+ <div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; OffsetVarAndGepTypePairs::const_iterator it = pairVec.begin();</div>
258
+ <div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; OffsetVarAndGepTypePairs::const_iterator rhsIt = rhsPairVec.begin();</div>
259
+ <div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; <span class="keywordflow">for</span> (; it != pairVec.end() &amp;&amp; rhsIt != rhsPairVec.end(); ++it, ++rhsIt)</div>
260
+ <div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; {</div>
261
+ <div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; <span class="keywordflow">return</span> (*it) &lt; (*rhsIt);</div>
262
+ <div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; }</div>
263
+ <div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; </div>
264
+ <div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
265
+ <div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; }</div>
272
266
  <div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; }</div>
273
- <div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot; }\n&quot;</span>;</div>
274
- <div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; <span class="keywordflow">return</span> rawstr.str();</div>
275
- <div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160;}</div>
267
+ <div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160;}</div>
268
+ <div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; </div>
269
+ <div class="line"><a name="l00240"></a><span class="lineno"><a class="line" href="classSVF_1_1AccessPath.html#a98b8b3428479259fbafd9e527ecc09bb"> 240</a></span>&#160;<a class="code" href="classSVF_1_1AccessPath.html#aabb6c9600fac408f36b9fde013597245">SVF::AccessPath::LSRelation</a> <a class="code" href="classSVF_1_1AccessPath.html#a98b8b3428479259fbafd9e527ecc09bb">AccessPath::checkRelation</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1AccessPath.html">AccessPath</a>&amp; LHS, <span class="keyword">const</span> <a class="code" href="classSVF_1_1AccessPath.html">AccessPath</a>&amp; RHS)</div>
270
+ <div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160;{</div>
271
+ <div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a> lhsLocations = LHS.<a class="code" href="classSVF_1_1AccessPath.html#a76222b6571e46e8a8bd5c8c597c8ffaf">computeAllLocations</a>();</div>
272
+ <div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a> rhsLocations = RHS.<a class="code" href="classSVF_1_1AccessPath.html#a76222b6571e46e8a8bd5c8c597c8ffaf">computeAllLocations</a>();</div>
273
+ <div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; <span class="keywordflow">if</span> (lhsLocations.<a class="code" href="classSVF_1_1SparseBitVector.html#a16756e0545fd3d50ab89f45a2e83bb79">intersects</a>(rhsLocations))</div>
274
+ <div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; {</div>
275
+ <div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; <span class="keywordflow">if</span> (lhsLocations == rhsLocations)</div>
276
+ <div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; <span class="keywordflow">return</span> Same;</div>
277
+ <div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (lhsLocations.<a class="code" href="classSVF_1_1SparseBitVector.html#abbd0e0cf759fad7858224ed8a63aade8">contains</a>(rhsLocations))</div>
278
+ <div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; <span class="keywordflow">return</span> Superset;</div>
279
+ <div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (rhsLocations.<a class="code" href="classSVF_1_1SparseBitVector.html#abbd0e0cf759fad7858224ed8a63aade8">contains</a>(lhsLocations))</div>
280
+ <div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; <span class="keywordflow">return</span> Subset;</div>
281
+ <div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; <span class="keywordflow">else</span></div>
282
+ <div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; <span class="keywordflow">return</span> Overlap;</div>
283
+ <div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; }</div>
284
+ <div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; <span class="keywordflow">else</span></div>
285
+ <div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; {</div>
286
+ <div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; <span class="keywordflow">return</span> NonOverlap;</div>
287
+ <div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; }</div>
288
+ <div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160;}</div>
289
+ <div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; </div>
290
+ <div class="line"><a name="l00262"></a><span class="lineno"><a class="line" href="classSVF_1_1AccessPath.html#a4519477605a58d5821d05951a88abcd0"> 262</a></span>&#160;<a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="classSVF_1_1AccessPath.html#a4519477605a58d5821d05951a88abcd0">AccessPath::dump</a>()<span class="keyword"> const</span></div>
291
+ <div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160;<span class="keyword"></span>{</div>
292
+ <div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> str;</div>
293
+ <div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; std::stringstream rawstr(str);</div>
294
+ <div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; </div>
295
+ <div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot;AccessPath\tField_Index: &quot;</span> &lt;&lt; getConstantFieldIdx();</div>
296
+ <div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot;,\tNum-Stride: {&quot;</span>;</div>
297
+ <div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1AccessPath.html#a73ba2fd20ff0e21a2f09a3396f2596f8">OffsetVarAndGepTypePairs</a>&amp; vec = getOffsetVarAndGepTypePairVec();</div>
298
+ <div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; OffsetVarAndGepTypePairs::const_iterator it = vec.begin();</div>
299
+ <div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; OffsetVarAndGepTypePairs::const_iterator eit = vec.end();</div>
300
+ <div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; <span class="keywordflow">for</span> (; it != eit; ++it)</div>
301
+ <div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; {</div>
302
+ <div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* ty = it-&gt;second;</div>
303
+ <div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot; (Svf var: &quot;</span> &lt;&lt; it-&gt;first-&gt;<a class="code" href="classSVF_1_1SVFType.html#a9035ac13134de4647d63507cd80ca3d6">toString</a>() &lt;&lt; <span class="stringliteral">&quot;, Iter type: &quot;</span> &lt;&lt; *ty &lt;&lt; <span class="stringliteral">&quot;)&quot;</span>;</div>
304
+ <div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; }</div>
305
+ <div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot; }\n&quot;</span>;</div>
306
+ <div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; <span class="keywordflow">return</span> rawstr.str();</div>
307
+ <div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160;}</div>
276
308
  </div><!-- fragment --></div><!-- contents -->
277
309
  <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>
278
310
  <div class="ttc" id="aclassSVF_1_1SparseBitVector_html_a16756e0545fd3d50ab89f45a2e83bb79"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#a16756e0545fd3d50ab89f45a2e83bb79">SVF::SparseBitVector::intersects</a></div><div class="ttdeci">bool intersects(const SparseBitVector&lt; ElementSize &gt; *RHS) const</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l01031">SparseBitVector.h:1031</a></div></div>
@@ -282,33 +314,34 @@ $(function() {
282
314
  <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#l00332">SVFType.h:332</a></div></div>
283
315
  <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>
284
316
  <div class="ttc" id="aclassSVF_1_1SparseBitVector_html_a61bd86909a141f9de873d92c0f904832"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#a61bd86909a141f9de873d92c0f904832">SVF::SparseBitVector::set</a></div><div class="ttdeci">void set(unsigned Idx)</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00747">SparseBitVector.h:747</a></div></div>
317
+ <div class="ttc" id="aclassSVF_1_1AccessPath_html_afca303a7a5bde9a8ef56ae728d414553"><div class="ttname"><a href="classSVF_1_1AccessPath.html#afca303a7a5bde9a8ef56ae728d414553">SVF::AccessPath::computeConstantByteOffset</a></div><div class="ttdeci">APOffset computeConstantByteOffset(u32_t elemBytesize) const</div><div class="ttdef"><b>Definition:</b> <a href="AccessPath_8cpp_source.html#l00097">AccessPath.cpp:97</a></div></div>
285
318
  <div class="ttc" id="aAccessPath_8h_html"><div class="ttname"><a href="AccessPath_8h.html">AccessPath.h</a></div></div>
286
- <div class="ttc" id="aclassSVF_1_1AccessPath_html_ae0f38a5f473af89678db2755667c3421"><div class="ttname"><a href="classSVF_1_1AccessPath.html#ae0f38a5f473af89678db2755667c3421">SVF::AccessPath::operator&lt;</a></div><div class="ttdeci">bool operator&lt;(const AccessPath &amp;rhs) const</div><div class="ttdef"><b>Definition:</b> <a href="AccessPath_8cpp_source.html#l00177">AccessPath.cpp:177</a></div></div>
319
+ <div class="ttc" id="aclassSVF_1_1AccessPath_html_ae0f38a5f473af89678db2755667c3421"><div class="ttname"><a href="classSVF_1_1AccessPath.html#ae0f38a5f473af89678db2755667c3421">SVF::AccessPath::operator&lt;</a></div><div class="ttdeci">bool operator&lt;(const AccessPath &amp;rhs) const</div><div class="ttdef"><b>Definition:</b> <a href="AccessPath_8cpp_source.html#l00216">AccessPath.cpp:216</a></div></div>
287
320
  <div class="ttc" id="aclassSVF_1_1AccessPath_html_a2358a8194b5e2c4bcbb5218dee7fcbcd"><div class="ttname"><a href="classSVF_1_1AccessPath.html#a2358a8194b5e2c4bcbb5218dee7fcbcd">SVF::AccessPath::addOffsetVarAndGepTypePair</a></div><div class="ttdeci">bool addOffsetVarAndGepTypePair(const SVFVar *var, const SVFType *gepIterType)</div><div class="ttdef"><b>Definition:</b> <a href="AccessPath_8cpp_source.html#l00042">AccessPath.cpp:42</a></div></div>
288
321
  <div class="ttc" id="aclassSVF_1_1SparseBitVector_html"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html">SVF::SparseBitVector</a></div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00459">SparseBitVector.h:459</a></div></div>
289
- <div class="ttc" id="aclassSVF_1_1AccessPath_html_a76222b6571e46e8a8bd5c8c597c8ffaf"><div class="ttname"><a href="classSVF_1_1AccessPath.html#a76222b6571e46e8a8bd5c8c597c8ffaf">SVF::AccessPath::computeAllLocations</a></div><div class="ttdeci">NodeBS computeAllLocations() const</div><div class="ttdoc">Compute all possible locations according to offset and number-stride pairs.</div><div class="ttdef"><b>Definition:</b> <a href="AccessPath_8cpp_source.html#l00160">AccessPath.cpp:160</a></div></div>
322
+ <div class="ttc" id="aclassSVF_1_1AccessPath_html_a76222b6571e46e8a8bd5c8c597c8ffaf"><div class="ttname"><a href="classSVF_1_1AccessPath.html#a76222b6571e46e8a8bd5c8c597c8ffaf">SVF::AccessPath::computeAllLocations</a></div><div class="ttdeci">NodeBS computeAllLocations() const</div><div class="ttdoc">Compute all possible locations according to offset and number-stride pairs.</div><div class="ttdef"><b>Definition:</b> <a href="AccessPath_8cpp_source.html#l00199">AccessPath.cpp:199</a></div></div>
290
323
  <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>
291
324
  <div class="ttc" id="aSVFUtil_8h_html"><div class="ttname"><a href="SVFUtil_8h.html">SVFUtil.h</a></div></div>
292
325
  <div class="ttc" id="aOptions_8h_html"><div class="ttname"><a href="Options_8h.html">Options.h</a></div></div>
293
326
  <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>
294
- <div class="ttc" id="aclassSVF_1_1AccessPath_html_a98b8b3428479259fbafd9e527ecc09bb"><div class="ttname"><a href="classSVF_1_1AccessPath.html#a98b8b3428479259fbafd9e527ecc09bb">SVF::AccessPath::checkRelation</a></div><div class="ttdeci">LSRelation checkRelation(const AccessPath &amp;LHS, const AccessPath &amp;RHS)</div><div class="ttdoc">Check relations of two location sets.</div><div class="ttdef"><b>Definition:</b> <a href="AccessPath_8cpp_source.html#l00201">AccessPath.cpp:201</a></div></div>
327
+ <div class="ttc" id="aclassSVF_1_1AccessPath_html_a98b8b3428479259fbafd9e527ecc09bb"><div class="ttname"><a href="classSVF_1_1AccessPath.html#a98b8b3428479259fbafd9e527ecc09bb">SVF::AccessPath::checkRelation</a></div><div class="ttdeci">LSRelation checkRelation(const AccessPath &amp;LHS, const AccessPath &amp;RHS)</div><div class="ttdoc">Check relations of two location sets.</div><div class="ttdef"><b>Definition:</b> <a href="AccessPath_8cpp_source.html#l00240">AccessPath.cpp:240</a></div></div>
295
328
  <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#l00150">SVFValue.h:150</a></div></div>
296
329
  <div class="ttc" id="acJSON_8h_html_ad4c68ea99a26b0a98ad9a79982960458"><div class="ttname"><a href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">string</a></div><div class="ttdeci">const char *const string</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8h_source.html#l00172">cJSON.h:172</a></div></div>
297
330
  <div class="ttc" id="aclassSVF_1_1AccessPath_html"><div class="ttname"><a href="classSVF_1_1AccessPath.html">SVF::AccessPath</a></div><div class="ttdef"><b>Definition:</b> <a href="AccessPath_8h_source.html#l00052">AccessPath.h:52</a></div></div>
298
331
  <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>
299
332
  <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>
300
- <div class="ttc" id="aclassSVF_1_1AccessPath_html_ae746362c42da05a641ae062658e40651"><div class="ttname"><a href="classSVF_1_1AccessPath.html#ae746362c42da05a641ae062658e40651">SVF::AccessPath::computeConstantOffset</a></div><div class="ttdeci">APOffset computeConstantOffset() const</div><div class="ttdoc">Return accumulated constant offset given OffsetVarVec.</div><div class="ttdef"><b>Definition:</b> <a href="AccessPath_8cpp_source.html#l00118">AccessPath.cpp:118</a></div></div>
333
+ <div class="ttc" id="aclassSVF_1_1AccessPath_html_ae746362c42da05a641ae062658e40651"><div class="ttname"><a href="classSVF_1_1AccessPath.html#ae746362c42da05a641ae062658e40651">SVF::AccessPath::computeConstantOffset</a></div><div class="ttdeci">APOffset computeConstantOffset() const</div><div class="ttdoc">Return accumulated constant offset given OffsetVarVec.</div><div class="ttdef"><b>Definition:</b> <a href="AccessPath_8cpp_source.html#l00157">AccessPath.cpp:157</a></div></div>
301
334
  <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#l00928">SVFValue.h:928</a></div></div>
302
335
  <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>
303
336
  <div class="ttc" id="aclassSVF_1_1SVFType_html_a9035ac13134de4647d63507cd80ca3d6"><div class="ttname"><a href="classSVF_1_1SVFType.html#a9035ac13134de4647d63507cd80ca3d6">SVF::SVFType::toString</a></div><div class="ttdeci">std::string toString() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8cpp_source.html#l00006">SVFType.cpp:6</a></div></div>
304
337
  <div class="ttc" id="aclassSVF_1_1AccessPath_html_ab0641554924d44f16c2831cac63ccf8b"><div class="ttname"><a href="classSVF_1_1AccessPath.html#ab0641554924d44f16c2831cac63ccf8b">SVF::AccessPath::getOffsetVarAndGepTypePairVec</a></div><div class="ttdeci">const OffsetVarAndGepTypePairs &amp; getOffsetVarAndGepTypePairVec() const</div><div class="ttdef"><b>Definition:</b> <a href="AccessPath_8h_source.html#l00106">AccessPath.h:106</a></div></div>
305
338
  <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>
306
- <div class="ttc" id="aclassSVF_1_1AccessPath_html_a6591b6092a829b0c874754b649087aa2"><div class="ttname"><a href="classSVF_1_1AccessPath.html#a6591b6092a829b0c874754b649087aa2">SVF::AccessPath::operator+</a></div><div class="ttdeci">AccessPath operator+(const AccessPath &amp;rhs) const</div><div class="ttdoc">Overload operators.</div><div class="ttdef"><b>Definition:</b> <a href="AccessPath_8cpp_source.html#l00167">AccessPath.cpp:167</a></div></div>
339
+ <div class="ttc" id="aclassSVF_1_1AccessPath_html_a6591b6092a829b0c874754b649087aa2"><div class="ttname"><a href="classSVF_1_1AccessPath.html#a6591b6092a829b0c874754b649087aa2">SVF::AccessPath::operator+</a></div><div class="ttdeci">AccessPath operator+(const AccessPath &amp;rhs) const</div><div class="ttdoc">Overload operators.</div><div class="ttdef"><b>Definition:</b> <a href="AccessPath_8cpp_source.html#l00206">AccessPath.cpp:206</a></div></div>
307
340
  <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>
308
341
  <div class="ttc" id="anamespaceSVF_1_1SVFUtil_html_aed0b0b9f035057552a6a82154fd88e61"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVF::SVFUtil::outs</a></div><div class="ttdeci">std::ostream &amp; outs()</div><div class="ttdoc">Overwrite llvm::outs()</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00050">SVFUtil.h:50</a></div></div>
309
342
  <div class="ttc" id="aclassSVF_1_1AccessPath_html_a403312192a96a9fd5e7d071481592a7f"><div class="ttname"><a href="classSVF_1_1AccessPath.html#a403312192a96a9fd5e7d071481592a7f">SVF::AccessPath::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="AccessPath_8cpp_source.html#l00049">AccessPath.cpp:49</a></div></div>
310
- <div class="ttc" id="aclassSVF_1_1AccessPath_html_aa1747064a0833855a5848ebf4a4d65fa"><div class="ttname"><a href="classSVF_1_1AccessPath.html#aa1747064a0833855a5848ebf4a4d65fa">SVF::AccessPath::fldIdx</a></div><div class="ttdeci">APOffset fldIdx</div><div class="ttdoc">Accumulated Constant Offsets.</div><div class="ttdef"><b>Definition:</b> <a href="AccessPath_8h_source.html#l00141">AccessPath.h:141</a></div></div>
311
- <div class="ttc" id="aclassSVF_1_1AccessPath_html_a4519477605a58d5821d05951a88abcd0"><div class="ttname"><a href="classSVF_1_1AccessPath.html#a4519477605a58d5821d05951a88abcd0">SVF::AccessPath::dump</a></div><div class="ttdeci">std::string dump() const</div><div class="ttdoc">Dump location set.</div><div class="ttdef"><b>Definition:</b> <a href="AccessPath_8cpp_source.html#l00223">AccessPath.cpp:223</a></div></div>
343
+ <div class="ttc" id="aclassSVF_1_1AccessPath_html_aa1747064a0833855a5848ebf4a4d65fa"><div class="ttname"><a href="classSVF_1_1AccessPath.html#aa1747064a0833855a5848ebf4a4d65fa">SVF::AccessPath::fldIdx</a></div><div class="ttdeci">APOffset fldIdx</div><div class="ttdoc">Accumulated Constant Offsets.</div><div class="ttdef"><b>Definition:</b> <a href="AccessPath_8h_source.html#l00147">AccessPath.h:147</a></div></div>
344
+ <div class="ttc" id="aclassSVF_1_1AccessPath_html_a4519477605a58d5821d05951a88abcd0"><div class="ttname"><a href="classSVF_1_1AccessPath.html#a4519477605a58d5821d05951a88abcd0">SVF::AccessPath::dump</a></div><div class="ttdeci">std::string dump() const</div><div class="ttdoc">Dump location set.</div><div class="ttdef"><b>Definition:</b> <a href="AccessPath_8cpp_source.html#l00262">AccessPath.cpp:262</a></div></div>
312
345
  <div class="ttc" id="aclassSVF_1_1AccessPath_html_aabb6c9600fac408f36b9fde013597245"><div class="ttname"><a href="classSVF_1_1AccessPath.html#aabb6c9600fac408f36b9fde013597245">SVF::AccessPath::LSRelation</a></div><div class="ttdeci">LSRelation</div><div class="ttdef"><b>Definition:</b> <a href="AccessPath_8h_source.html#l00059">AccessPath.h:59</a></div></div>
313
346
  <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#l00956">SVFValue.h:956</a></div></div>
314
347
  <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>