svf-tools 1.0.830 → 1.0.832

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 (362) hide show
  1. package/SVF-doxygen/html/AccessPath_8cpp_source.html +220 -228
  2. package/SVF-doxygen/html/AccessPath_8h_source.html +9 -9
  3. package/SVF-doxygen/html/AndersenSFR_8cpp_source.html +1 -1
  4. package/SVF-doxygen/html/Andersen_8cpp_source.html +1 -1
  5. package/SVF-doxygen/html/CFLAlias_8cpp_source.html +1 -1
  6. package/SVF-doxygen/html/CFLGraphBuilder_8cpp_source.html +1 -1
  7. package/SVF-doxygen/html/CHGBuilder_8cpp_source.html +8 -8
  8. package/SVF-doxygen/html/ConsG_8cpp_source.html +1 -1
  9. package/SVF-doxygen/html/ConsG_8h_source.html +1 -1
  10. package/SVF-doxygen/html/ContextDDA_8cpp_source.html +1 -1
  11. package/SVF-doxygen/html/ContextDDA_8h_source.html +1 -1
  12. package/SVF-doxygen/html/CxtStmt_8h_source.html +1 -1
  13. package/SVF-doxygen/html/DCHG_8cpp_source.html +1 -1
  14. package/SVF-doxygen/html/DDAClient_8cpp_source.html +2 -2
  15. package/SVF-doxygen/html/DDAStat_8cpp_source.html +1 -1
  16. package/SVF-doxygen/html/DDAVFSolver_8h_source.html +4 -4
  17. package/SVF-doxygen/html/FlowDDA_8cpp_source.html +1 -1
  18. package/SVF-doxygen/html/FlowDDA_8h_source.html +1 -1
  19. package/SVF-doxygen/html/FlowSensitiveStat_8cpp_source.html +1 -1
  20. package/SVF-doxygen/html/ICFG_8cpp_source.html +1 -1
  21. package/SVF-doxygen/html/IRGraph_8h_source.html +2 -2
  22. package/SVF-doxygen/html/LLVMModule_8cpp_source.html +7 -7
  23. package/SVF-doxygen/html/LLVMUtil_8cpp_source.html +369 -402
  24. package/SVF-doxygen/html/LLVMUtil_8h.html +3 -10
  25. package/SVF-doxygen/html/LLVMUtil_8h_source.html +350 -392
  26. package/SVF-doxygen/html/LockResultValidator_8cpp_source.html +1 -1
  27. package/SVF-doxygen/html/MHP_8cpp_source.html +1 -1
  28. package/SVF-doxygen/html/MemRegion_8cpp_source.html +3 -3
  29. package/SVF-doxygen/html/MemSSA_8cpp_source.html +1 -1
  30. package/SVF-doxygen/html/PointerAnalysisImpl_8cpp_source.html +4 -4
  31. package/SVF-doxygen/html/PointerAnalysis_8cpp_source.html +358 -362
  32. package/SVF-doxygen/html/PointerAnalysis_8h_source.html +13 -13
  33. package/SVF-doxygen/html/SVFIR2ConsExeState_8cpp_source.html +5 -5
  34. package/SVF-doxygen/html/SVFIR2ItvExeState_8cpp_source.html +6 -6
  35. package/SVF-doxygen/html/SVFIRBuilder_8cpp_source.html +13 -13
  36. package/SVF-doxygen/html/SVFIRExtAPI_8cpp_source.html +1 -1
  37. package/SVF-doxygen/html/SVFIR_8cpp_source.html +1 -1
  38. package/SVF-doxygen/html/SVFIR_8h_source.html +1 -1
  39. package/SVF-doxygen/html/SVFStat_8cpp_source.html +12 -12
  40. package/SVF-doxygen/html/SVFStatements_8cpp_source.html +1 -1
  41. package/SVF-doxygen/html/SVFStatements_8h_source.html +2 -2
  42. package/SVF-doxygen/html/SVFType_8cpp_source.html +38 -39
  43. package/SVF-doxygen/html/SVFType_8h_source.html +5 -5
  44. package/SVF-doxygen/html/SVFValue_8cpp_source.html +1 -1
  45. package/SVF-doxygen/html/SVFValue_8h_source.html +1 -1
  46. package/SVF-doxygen/html/SVFVariables_8cpp_source.html +1 -1
  47. package/SVF-doxygen/html/SVFVariables_8h_source.html +1 -1
  48. package/SVF-doxygen/html/SaberSVFGBuilder_8cpp_source.html +1 -1
  49. package/SVF-doxygen/html/Steensgaard_8cpp_source.html +1 -1
  50. package/SVF-doxygen/html/SymbolTableBuilder_8cpp_source.html +199 -199
  51. package/SVF-doxygen/html/SymbolTableBuilder_8h_source.html +4 -4
  52. package/SVF-doxygen/html/SymbolTableInfo_8cpp_source.html +318 -322
  53. package/SVF-doxygen/html/SymbolTableInfo_8h_source.html +33 -33
  54. package/SVF-doxygen/html/ThreadCallGraph_8cpp_source.html +1 -1
  55. package/SVF-doxygen/html/VersionedFlowSensitiveStat_8cpp_source.html +1 -1
  56. package/SVF-doxygen/html/classSVF_1_1AccessPath.html +200 -209
  57. package/SVF-doxygen/html/classSVF_1_1ActualINSVFGNode.html +1 -1
  58. package/SVF-doxygen/html/classSVF_1_1ActualOUTSVFGNode.html +1 -1
  59. package/SVF-doxygen/html/classSVF_1_1AddrStmt.html +1 -1
  60. package/SVF-doxygen/html/classSVF_1_1AliasDDAClient.html +1 -1
  61. package/SVF-doxygen/html/classSVF_1_1Andersen.html +1 -1
  62. package/SVF-doxygen/html/classSVF_1_1AndersenSFR.html +1 -1
  63. package/SVF-doxygen/html/classSVF_1_1BVDataPTAImpl.html +4 -4
  64. package/SVF-doxygen/html/classSVF_1_1BinaryOPStmt.html +1 -1
  65. package/SVF-doxygen/html/classSVF_1_1BinaryOPVFGNode.html +1 -1
  66. package/SVF-doxygen/html/classSVF_1_1BranchStmt.html +1 -1
  67. package/SVF-doxygen/html/classSVF_1_1CFLAlias.html +3 -3
  68. package/SVF-doxygen/html/classSVF_1_1CHGBuilder.html +8 -8
  69. package/SVF-doxygen/html/classSVF_1_1CallCFGEdge.html +1 -1
  70. package/SVF-doxygen/html/classSVF_1_1CallPE.html +1 -1
  71. package/SVF-doxygen/html/classSVF_1_1CmpStmt.html +1 -1
  72. package/SVF-doxygen/html/classSVF_1_1CmpVFGNode.html +1 -1
  73. package/SVF-doxygen/html/classSVF_1_1ContextDDA.html +2 -2
  74. package/SVF-doxygen/html/classSVF_1_1CopyStmt.html +1 -1
  75. package/SVF-doxygen/html/classSVF_1_1CxtStmt.html +1 -1
  76. package/SVF-doxygen/html/classSVF_1_1CxtThread.html +1 -1
  77. package/SVF-doxygen/html/classSVF_1_1CxtThreadStmt.html +1 -1
  78. package/SVF-doxygen/html/classSVF_1_1DCHGraph.html +1 -1
  79. package/SVF-doxygen/html/classSVF_1_1DDAStat.html +1 -1
  80. package/SVF-doxygen/html/classSVF_1_1DDAVFSolver.html +1 -1
  81. package/SVF-doxygen/html/classSVF_1_1DoubleFreeChecker.html +1 -1
  82. package/SVF-doxygen/html/classSVF_1_1FIObjVar.html +1 -1
  83. package/SVF-doxygen/html/classSVF_1_1FlowDDA.html +2 -2
  84. package/SVF-doxygen/html/classSVF_1_1FlowSensitive.html +1 -1
  85. package/SVF-doxygen/html/classSVF_1_1FlowSensitiveStat.html +1 -1
  86. package/SVF-doxygen/html/classSVF_1_1ForkJoinAnalysis.html +1 -1
  87. package/SVF-doxygen/html/classSVF_1_1FunptrDDAClient.html +1 -1
  88. package/SVF-doxygen/html/classSVF_1_1GepObjVar.html +2 -2
  89. package/SVF-doxygen/html/classSVF_1_1GepStmt.html +3 -3
  90. package/SVF-doxygen/html/classSVF_1_1GepValVar.html +1 -1
  91. package/SVF-doxygen/html/classSVF_1_1ICFG.html +1 -1
  92. package/SVF-doxygen/html/classSVF_1_1IRGraph.html +2 -2
  93. package/SVF-doxygen/html/classSVF_1_1InterMSSAPHISVFGNode.html +1 -1
  94. package/SVF-doxygen/html/classSVF_1_1InterPHIVFGNode.html +1 -1
  95. package/SVF-doxygen/html/classSVF_1_1IntraCFGEdge.html +1 -1
  96. package/SVF-doxygen/html/classSVF_1_1IntraICFGNode.html +1 -1
  97. package/SVF-doxygen/html/classSVF_1_1IntraPHIVFGNode.html +1 -1
  98. package/SVF-doxygen/html/classSVF_1_1LLVMModuleSet.html +7 -7
  99. package/SVF-doxygen/html/classSVF_1_1LeakChecker.html +1 -1
  100. package/SVF-doxygen/html/classSVF_1_1LoadStmt.html +1 -1
  101. package/SVF-doxygen/html/classSVF_1_1LockResultValidator.html +1 -1
  102. package/SVF-doxygen/html/classSVF_1_1MHP.html +1 -1
  103. package/SVF-doxygen/html/classSVF_1_1MRGenerator.html +3 -3
  104. package/SVF-doxygen/html/classSVF_1_1MTAResultValidator.html +1 -1
  105. package/SVF-doxygen/html/classSVF_1_1MemObj.html +121 -121
  106. package/SVF-doxygen/html/classSVF_1_1MemSSA.html +1 -1
  107. package/SVF-doxygen/html/classSVF_1_1ObjTypeInfo.html +28 -28
  108. package/SVF-doxygen/html/classSVF_1_1ObjVar.html +2 -2
  109. package/SVF-doxygen/html/classSVF_1_1PHIVFGNode.html +1 -1
  110. package/SVF-doxygen/html/classSVF_1_1PhiStmt.html +1 -1
  111. package/SVF-doxygen/html/classSVF_1_1PointerAnalysis.html +336 -340
  112. package/SVF-doxygen/html/classSVF_1_1RetCFGEdge.html +1 -1
  113. package/SVF-doxygen/html/classSVF_1_1RetPE.html +1 -1
  114. package/SVF-doxygen/html/classSVF_1_1SVFArrayType.html +4 -4
  115. package/SVF-doxygen/html/classSVF_1_1SVFFunctionType.html +4 -4
  116. package/SVF-doxygen/html/classSVF_1_1SVFIR.html +1 -1
  117. package/SVF-doxygen/html/classSVF_1_1SVFIR2ConsExeState.html +4 -4
  118. package/SVF-doxygen/html/classSVF_1_1SVFIR2ItvExeState.html +6 -6
  119. package/SVF-doxygen/html/classSVF_1_1SVFIRBuilder.html +16 -16
  120. package/SVF-doxygen/html/classSVF_1_1SVFIntegerType.html +7 -7
  121. package/SVF-doxygen/html/classSVF_1_1SVFOtherType.html +4 -4
  122. package/SVF-doxygen/html/classSVF_1_1SVFPointerType.html +2 -4
  123. package/SVF-doxygen/html/classSVF_1_1SVFStat.html +12 -12
  124. package/SVF-doxygen/html/classSVF_1_1SVFStructType.html +4 -4
  125. package/SVF-doxygen/html/classSVF_1_1SVFValue.html +23 -23
  126. package/SVF-doxygen/html/classSVF_1_1SaberSVFGBuilder.html +1 -1
  127. package/SVF-doxygen/html/classSVF_1_1SelectStmt.html +1 -1
  128. package/SVF-doxygen/html/classSVF_1_1Steensgaard.html +1 -1
  129. package/SVF-doxygen/html/classSVF_1_1StoreStmt.html +1 -1
  130. package/SVF-doxygen/html/classSVF_1_1SymbolTableBuilder.html +196 -196
  131. package/SVF-doxygen/html/classSVF_1_1SymbolTableInfo.html +103 -107
  132. package/SVF-doxygen/html/classSVF_1_1TCT.html +1 -1
  133. package/SVF-doxygen/html/classSVF_1_1TDForkPE.html +1 -1
  134. package/SVF-doxygen/html/classSVF_1_1TDJoinPE.html +1 -1
  135. package/SVF-doxygen/html/classSVF_1_1ThreadCallGraph.html +1 -1
  136. package/SVF-doxygen/html/classSVF_1_1TypeAnalysis.html +2 -2
  137. package/SVF-doxygen/html/classSVF_1_1UnaryOPStmt.html +1 -1
  138. package/SVF-doxygen/html/classSVF_1_1UnaryOPVFGNode.html +1 -1
  139. package/SVF-doxygen/html/classSVF_1_1ValVar.html +1 -1
  140. package/SVF-doxygen/html/classSVF_1_1VersionedFlowSensitiveStat.html +1 -1
  141. package/SVF-doxygen/html/namespaceSVF_1_1LLVMUtil.html +526 -669
  142. package/SVF-doxygen/html/namespacemembers_func_g.html +0 -6
  143. package/SVF-doxygen/html/namespacemembers_func_i.html +9 -9
  144. package/SVF-doxygen/html/namespacemembers_g.html +4 -10
  145. package/SVF-doxygen/html/namespacemembers_i.html +7 -7
  146. package/SVF-doxygen/html/search/all_10.js +324 -324
  147. package/SVF-doxygen/html/search/all_11.js +223 -223
  148. package/SVF-doxygen/html/search/all_12.js +553 -553
  149. package/SVF-doxygen/html/search/all_13.js +192 -192
  150. package/SVF-doxygen/html/search/all_14.js +67 -67
  151. package/SVF-doxygen/html/search/all_15.js +167 -167
  152. package/SVF-doxygen/html/search/all_16.js +63 -63
  153. package/SVF-doxygen/html/search/all_17.js +1 -1
  154. package/SVF-doxygen/html/search/all_18.js +1 -1
  155. package/SVF-doxygen/html/search/all_19.js +11 -11
  156. package/SVF-doxygen/html/search/all_1a.js +172 -172
  157. package/SVF-doxygen/html/search/all_7.js +246 -248
  158. package/SVF-doxygen/html/search/all_8.js +198 -198
  159. package/SVF-doxygen/html/search/all_9.js +607 -607
  160. package/SVF-doxygen/html/search/all_a.js +46 -46
  161. package/SVF-doxygen/html/search/all_b.js +26 -26
  162. package/SVF-doxygen/html/search/all_c.js +115 -115
  163. package/SVF-doxygen/html/search/all_d.js +198 -198
  164. package/SVF-doxygen/html/search/all_e.js +207 -207
  165. package/SVF-doxygen/html/search/all_f.js +116 -116
  166. package/SVF-doxygen/html/search/classes_0.js +26 -26
  167. package/SVF-doxygen/html/search/classes_1.js +9 -9
  168. package/SVF-doxygen/html/search/classes_10.js +73 -73
  169. package/SVF-doxygen/html/search/classes_11.js +15 -15
  170. package/SVF-doxygen/html/search/classes_12.js +2 -2
  171. package/SVF-doxygen/html/search/classes_13.js +10 -10
  172. package/SVF-doxygen/html/search/classes_14.js +14 -14
  173. package/SVF-doxygen/html/search/classes_15.js +1 -1
  174. package/SVF-doxygen/html/search/classes_2.js +80 -80
  175. package/SVF-doxygen/html/search/classes_3.js +37 -37
  176. package/SVF-doxygen/html/search/classes_4.js +9 -9
  177. package/SVF-doxygen/html/search/classes_5.js +28 -28
  178. package/SVF-doxygen/html/search/classes_6.js +104 -104
  179. package/SVF-doxygen/html/search/classes_7.js +34 -34
  180. package/SVF-doxygen/html/search/classes_8.js +56 -56
  181. package/SVF-doxygen/html/search/classes_9.js +1 -1
  182. package/SVF-doxygen/html/search/classes_a.js +12 -12
  183. package/SVF-doxygen/html/search/classes_b.js +29 -29
  184. package/SVF-doxygen/html/search/classes_c.js +6 -6
  185. package/SVF-doxygen/html/search/classes_d.js +18 -18
  186. package/SVF-doxygen/html/search/classes_e.js +36 -36
  187. package/SVF-doxygen/html/search/classes_f.js +25 -25
  188. package/SVF-doxygen/html/search/defines_0.js +3 -3
  189. package/SVF-doxygen/html/search/defines_1.js +2 -2
  190. package/SVF-doxygen/html/search/defines_2.js +30 -30
  191. package/SVF-doxygen/html/search/defines_3.js +21 -21
  192. package/SVF-doxygen/html/search/defines_4.js +2 -2
  193. package/SVF-doxygen/html/search/defines_5.js +4 -4
  194. package/SVF-doxygen/html/search/defines_6.js +2 -2
  195. package/SVF-doxygen/html/search/defines_7.js +5 -5
  196. package/SVF-doxygen/html/search/defines_8.js +11 -11
  197. package/SVF-doxygen/html/search/defines_9.js +9 -9
  198. package/SVF-doxygen/html/search/defines_a.js +2 -2
  199. package/SVF-doxygen/html/search/defines_b.js +1 -1
  200. package/SVF-doxygen/html/search/defines_c.js +3 -3
  201. package/SVF-doxygen/html/search/defines_d.js +2 -2
  202. package/SVF-doxygen/html/search/defines_e.js +7 -7
  203. package/SVF-doxygen/html/search/defines_f.js +3 -3
  204. package/SVF-doxygen/html/search/enums_0.js +3 -3
  205. package/SVF-doxygen/html/search/enums_1.js +2 -2
  206. package/SVF-doxygen/html/search/enums_10.js +1 -1
  207. package/SVF-doxygen/html/search/enums_11.js +1 -1
  208. package/SVF-doxygen/html/search/enums_2.js +8 -8
  209. package/SVF-doxygen/html/search/enums_3.js +1 -1
  210. package/SVF-doxygen/html/search/enums_4.js +3 -3
  211. package/SVF-doxygen/html/search/enums_5.js +1 -1
  212. package/SVF-doxygen/html/search/enums_6.js +2 -2
  213. package/SVF-doxygen/html/search/enums_7.js +2 -2
  214. package/SVF-doxygen/html/search/enums_8.js +4 -4
  215. package/SVF-doxygen/html/search/enums_9.js +1 -1
  216. package/SVF-doxygen/html/search/enums_a.js +1 -1
  217. package/SVF-doxygen/html/search/enums_b.js +7 -7
  218. package/SVF-doxygen/html/search/enums_c.js +1 -1
  219. package/SVF-doxygen/html/search/enums_d.js +4 -4
  220. package/SVF-doxygen/html/search/enums_e.js +2 -2
  221. package/SVF-doxygen/html/search/enums_f.js +4 -4
  222. package/SVF-doxygen/html/search/enumvalues_0.js +14 -14
  223. package/SVF-doxygen/html/search/enumvalues_1.js +14 -14
  224. package/SVF-doxygen/html/search/enumvalues_10.js +35 -35
  225. package/SVF-doxygen/html/search/enumvalues_11.js +3 -3
  226. package/SVF-doxygen/html/search/enumvalues_12.js +10 -10
  227. package/SVF-doxygen/html/search/enumvalues_13.js +1 -1
  228. package/SVF-doxygen/html/search/enumvalues_14.js +1 -1
  229. package/SVF-doxygen/html/search/enumvalues_15.js +3 -3
  230. package/SVF-doxygen/html/search/enumvalues_2.js +36 -36
  231. package/SVF-doxygen/html/search/enumvalues_3.js +13 -13
  232. package/SVF-doxygen/html/search/enumvalues_4.js +2 -2
  233. package/SVF-doxygen/html/search/enumvalues_5.js +47 -47
  234. package/SVF-doxygen/html/search/enumvalues_6.js +6 -6
  235. package/SVF-doxygen/html/search/enumvalues_7.js +9 -9
  236. package/SVF-doxygen/html/search/enumvalues_8.js +23 -23
  237. package/SVF-doxygen/html/search/enumvalues_9.js +6 -6
  238. package/SVF-doxygen/html/search/enumvalues_a.js +15 -15
  239. package/SVF-doxygen/html/search/enumvalues_b.js +11 -11
  240. package/SVF-doxygen/html/search/enumvalues_c.js +5 -5
  241. package/SVF-doxygen/html/search/enumvalues_d.js +18 -18
  242. package/SVF-doxygen/html/search/enumvalues_e.js +9 -9
  243. package/SVF-doxygen/html/search/enumvalues_f.js +45 -45
  244. package/SVF-doxygen/html/search/files_0.js +13 -13
  245. package/SVF-doxygen/html/search/files_1.js +7 -7
  246. package/SVF-doxygen/html/search/files_10.js +8 -8
  247. package/SVF-doxygen/html/search/files_11.js +8 -8
  248. package/SVF-doxygen/html/search/files_12.js +2 -2
  249. package/SVF-doxygen/html/search/files_2.js +55 -55
  250. package/SVF-doxygen/html/search/files_3.js +14 -14
  251. package/SVF-doxygen/html/search/files_4.js +5 -5
  252. package/SVF-doxygen/html/search/files_5.js +13 -13
  253. package/SVF-doxygen/html/search/files_6.js +9 -9
  254. package/SVF-doxygen/html/search/files_7.js +14 -14
  255. package/SVF-doxygen/html/search/files_8.js +13 -13
  256. package/SVF-doxygen/html/search/files_9.js +18 -18
  257. package/SVF-doxygen/html/search/files_a.js +3 -3
  258. package/SVF-doxygen/html/search/files_b.js +2 -2
  259. package/SVF-doxygen/html/search/files_c.js +20 -20
  260. package/SVF-doxygen/html/search/files_d.js +4 -4
  261. package/SVF-doxygen/html/search/files_e.js +62 -62
  262. package/SVF-doxygen/html/search/files_f.js +8 -8
  263. package/SVF-doxygen/html/search/functions_0.js +13 -13
  264. package/SVF-doxygen/html/search/functions_1.js +360 -360
  265. package/SVF-doxygen/html/search/functions_10.js +140 -140
  266. package/SVF-doxygen/html/search/functions_11.js +139 -139
  267. package/SVF-doxygen/html/search/functions_12.js +288 -288
  268. package/SVF-doxygen/html/search/functions_13.js +59 -59
  269. package/SVF-doxygen/html/search/functions_14.js +39 -39
  270. package/SVF-doxygen/html/search/functions_15.js +71 -71
  271. package/SVF-doxygen/html/search/functions_16.js +32 -32
  272. package/SVF-doxygen/html/search/functions_17.js +3 -3
  273. package/SVF-doxygen/html/search/functions_18.js +172 -172
  274. package/SVF-doxygen/html/search/functions_2.js +89 -89
  275. package/SVF-doxygen/html/search/functions_3.js +258 -258
  276. package/SVF-doxygen/html/search/functions_4.js +78 -78
  277. package/SVF-doxygen/html/search/functions_5.js +53 -53
  278. package/SVF-doxygen/html/search/functions_6.js +60 -60
  279. package/SVF-doxygen/html/search/functions_7.js +855 -857
  280. package/SVF-doxygen/html/search/functions_8.js +149 -149
  281. package/SVF-doxygen/html/search/functions_9.js +423 -423
  282. package/SVF-doxygen/html/search/functions_a.js +30 -30
  283. package/SVF-doxygen/html/search/functions_b.js +2 -2
  284. package/SVF-doxygen/html/search/functions_c.js +25 -25
  285. package/SVF-doxygen/html/search/functions_d.js +79 -79
  286. package/SVF-doxygen/html/search/functions_e.js +35 -35
  287. package/SVF-doxygen/html/search/functions_f.js +56 -56
  288. package/SVF-doxygen/html/search/namespaces_0.js +1 -1
  289. package/SVF-doxygen/html/search/namespaces_1.js +7 -7
  290. package/SVF-doxygen/html/search/related_0.js +2 -2
  291. package/SVF-doxygen/html/search/related_1.js +2 -2
  292. package/SVF-doxygen/html/search/related_2.js +2 -2
  293. package/SVF-doxygen/html/search/related_3.js +2 -2
  294. package/SVF-doxygen/html/search/related_4.js +2 -2
  295. package/SVF-doxygen/html/search/related_5.js +1 -1
  296. package/SVF-doxygen/html/search/related_6.js +2 -2
  297. package/SVF-doxygen/html/search/related_7.js +4 -4
  298. package/SVF-doxygen/html/search/related_8.js +2 -2
  299. package/SVF-doxygen/html/search/related_9.js +4 -4
  300. package/SVF-doxygen/html/search/related_a.js +19 -19
  301. package/SVF-doxygen/html/search/related_b.js +4 -4
  302. package/SVF-doxygen/html/search/related_c.js +2 -2
  303. package/SVF-doxygen/html/search/related_d.js +12 -12
  304. package/SVF-doxygen/html/search/related_e.js +2 -2
  305. package/SVF-doxygen/html/search/related_f.js +2 -2
  306. package/SVF-doxygen/html/search/typedefs_0.js +19 -19
  307. package/SVF-doxygen/html/search/typedefs_1.js +26 -26
  308. package/SVF-doxygen/html/search/typedefs_10.js +61 -61
  309. package/SVF-doxygen/html/search/typedefs_11.js +13 -13
  310. package/SVF-doxygen/html/search/typedefs_12.js +11 -11
  311. package/SVF-doxygen/html/search/typedefs_13.js +33 -33
  312. package/SVF-doxygen/html/search/typedefs_14.js +8 -8
  313. package/SVF-doxygen/html/search/typedefs_2.js +129 -129
  314. package/SVF-doxygen/html/search/typedefs_3.js +39 -39
  315. package/SVF-doxygen/html/search/typedefs_4.js +17 -17
  316. package/SVF-doxygen/html/search/typedefs_5.js +41 -41
  317. package/SVF-doxygen/html/search/typedefs_6.js +56 -56
  318. package/SVF-doxygen/html/search/typedefs_7.js +44 -44
  319. package/SVF-doxygen/html/search/typedefs_8.js +1 -1
  320. package/SVF-doxygen/html/search/typedefs_9.js +6 -6
  321. package/SVF-doxygen/html/search/typedefs_a.js +29 -29
  322. package/SVF-doxygen/html/search/typedefs_b.js +29 -29
  323. package/SVF-doxygen/html/search/typedefs_c.js +41 -41
  324. package/SVF-doxygen/html/search/typedefs_d.js +14 -14
  325. package/SVF-doxygen/html/search/typedefs_e.js +52 -52
  326. package/SVF-doxygen/html/search/typedefs_f.js +14 -14
  327. package/SVF-doxygen/html/search/variables_0.js +151 -151
  328. package/SVF-doxygen/html/search/variables_1.js +75 -75
  329. package/SVF-doxygen/html/search/variables_10.js +97 -97
  330. package/SVF-doxygen/html/search/variables_11.js +44 -44
  331. package/SVF-doxygen/html/search/variables_12.js +92 -92
  332. package/SVF-doxygen/html/search/variables_13.js +76 -76
  333. package/SVF-doxygen/html/search/variables_14.js +14 -14
  334. package/SVF-doxygen/html/search/variables_15.js +48 -48
  335. package/SVF-doxygen/html/search/variables_16.js +9 -9
  336. package/SVF-doxygen/html/search/variables_17.js +1 -1
  337. package/SVF-doxygen/html/search/variables_18.js +2 -2
  338. package/SVF-doxygen/html/search/variables_2.js +38 -38
  339. package/SVF-doxygen/html/search/variables_3.js +142 -142
  340. package/SVF-doxygen/html/search/variables_4.js +55 -55
  341. package/SVF-doxygen/html/search/variables_5.js +37 -37
  342. package/SVF-doxygen/html/search/variables_6.js +66 -66
  343. package/SVF-doxygen/html/search/variables_7.js +34 -34
  344. package/SVF-doxygen/html/search/variables_8.js +7 -7
  345. package/SVF-doxygen/html/search/variables_9.js +78 -78
  346. package/SVF-doxygen/html/search/variables_a.js +4 -4
  347. package/SVF-doxygen/html/search/variables_b.js +10 -10
  348. package/SVF-doxygen/html/search/variables_c.js +45 -45
  349. package/SVF-doxygen/html/search/variables_d.js +56 -56
  350. package/SVF-doxygen/html/search/variables_e.js +123 -123
  351. package/SVF-doxygen/html/search/variables_f.js +30 -30
  352. package/SVF-doxygen/html/structSVF_1_1DOTGraphTraits_3_01ConstraintGraph_01_5_01_4.html +1 -1
  353. package/SVF-doxygen/html/svf-ex_8cpp.html +1 -1
  354. package/SVF-doxygen/html/svf-ex_8cpp_source.html +1 -1
  355. package/package.json +1 -1
  356. package/svf/lib/MemoryModel/AccessPath.cpp +3 -12
  357. package/svf/lib/MemoryModel/PointerAnalysis.cpp +0 -3
  358. package/svf/lib/SVFIR/SVFType.cpp +1 -2
  359. package/svf/lib/SVFIR/SymbolTableInfo.cpp +1 -5
  360. package/svf-llvm/include/SVF-LLVM/LLVMUtil.h +1 -34
  361. package/svf-llvm/lib/LLVMUtil.cpp +1 -32
  362. package/svf-llvm/lib/SymbolTableBuilder.cpp +8 -8
@@ -416,26 +416,26 @@ Friends</h2></td></tr>
416
416
 
417
417
  <p>Check relations of two location sets. </p>
418
418
 
419
- <p class="definition">Definition at line <a class="el" href="AccessPath_8cpp_source.html#l00305">305</a> of file <a class="el" href="AccessPath_8cpp_source.html">AccessPath.cpp</a>.</p>
420
- <div class="fragment"><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160;{</div>
421
- <div class="line"><a name="l00307"></a><span class="lineno"> 307</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>
422
- <div class="line"><a name="l00308"></a><span class="lineno"> 308</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>
423
- <div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; <span class="keywordflow">if</span> (lhsLocations.<a class="code" href="classSVF_1_1SparseBitVector.html#a16756e0545fd3d50ab89f45a2e83bb79">intersects</a>(rhsLocations))</div>
424
- <div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; {</div>
425
- <div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; <span class="keywordflow">if</span> (lhsLocations == rhsLocations)</div>
426
- <div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1AccessPath.html#aabb6c9600fac408f36b9fde013597245ab1ba3a42758473e5ff427ba36147a56a">Same</a>;</div>
427
- <div class="line"><a name="l00313"></a><span class="lineno"> 313</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>
428
- <div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1AccessPath.html#aabb6c9600fac408f36b9fde013597245a52a64f855e6233e88b319cf2f3442f14">Superset</a>;</div>
429
- <div class="line"><a name="l00315"></a><span class="lineno"> 315</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>
430
- <div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1AccessPath.html#aabb6c9600fac408f36b9fde013597245a45bfb1e14fd39a700dba1243afe022e4">Subset</a>;</div>
431
- <div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; <span class="keywordflow">else</span></div>
432
- <div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1AccessPath.html#aabb6c9600fac408f36b9fde013597245afbdf7000b827f7d8590e5f0997e0d59a">Overlap</a>;</div>
433
- <div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; }</div>
434
- <div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; <span class="keywordflow">else</span></div>
435
- <div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; {</div>
436
- <div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1AccessPath.html#aabb6c9600fac408f36b9fde013597245acb3c4a3f685068e391025eb01ebf061d">NonOverlap</a>;</div>
437
- <div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; }</div>
438
- <div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160;}</div>
419
+ <p class="definition">Definition at line <a class="el" href="AccessPath_8cpp_source.html#l00296">296</a> of file <a class="el" href="AccessPath_8cpp_source.html">AccessPath.cpp</a>.</p>
420
+ <div class="fragment"><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160;{</div>
421
+ <div class="line"><a name="l00298"></a><span class="lineno"> 298</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>
422
+ <div class="line"><a name="l00299"></a><span class="lineno"> 299</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>
423
+ <div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; <span class="keywordflow">if</span> (lhsLocations.<a class="code" href="classSVF_1_1SparseBitVector.html#a16756e0545fd3d50ab89f45a2e83bb79">intersects</a>(rhsLocations))</div>
424
+ <div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; {</div>
425
+ <div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; <span class="keywordflow">if</span> (lhsLocations == rhsLocations)</div>
426
+ <div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1AccessPath.html#aabb6c9600fac408f36b9fde013597245ab1ba3a42758473e5ff427ba36147a56a">Same</a>;</div>
427
+ <div class="line"><a name="l00304"></a><span class="lineno"> 304</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>
428
+ <div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1AccessPath.html#aabb6c9600fac408f36b9fde013597245a52a64f855e6233e88b319cf2f3442f14">Superset</a>;</div>
429
+ <div class="line"><a name="l00306"></a><span class="lineno"> 306</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>
430
+ <div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1AccessPath.html#aabb6c9600fac408f36b9fde013597245a45bfb1e14fd39a700dba1243afe022e4">Subset</a>;</div>
431
+ <div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; <span class="keywordflow">else</span></div>
432
+ <div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1AccessPath.html#aabb6c9600fac408f36b9fde013597245afbdf7000b827f7d8590e5f0997e0d59a">Overlap</a>;</div>
433
+ <div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; }</div>
434
+ <div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; <span class="keywordflow">else</span></div>
435
+ <div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; {</div>
436
+ <div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1AccessPath.html#aabb6c9600fac408f36b9fde013597245acb3c4a3f685068e391025eb01ebf061d">NonOverlap</a>;</div>
437
+ <div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; }</div>
438
+ <div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160;}</div>
439
439
  </div><!-- fragment -->
440
440
  </div>
441
441
  </div>
@@ -465,12 +465,12 @@ Friends</h2></td></tr>
465
465
  <p>Compute all possible locations according to offset and number-stride pairs. </p>
466
466
  <p>Compute all possible locations according to offset and number-stride pairs. </p>
467
467
 
468
- <p class="definition">Definition at line <a class="el" href="AccessPath_8cpp_source.html#l00263">263</a> of file <a class="el" href="AccessPath_8cpp_source.html">AccessPath.cpp</a>.</p>
469
- <div class="fragment"><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160;{</div>
470
- <div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a> result;</div>
471
- <div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; result.<a class="code" href="classSVF_1_1SparseBitVector.html#a61bd86909a141f9de873d92c0f904832">set</a>(<a class="code" href="classSVF_1_1AccessPath.html#a5427d08c9eb9d86e66c2bff6aeba6bac">getConstantStructFldIdx</a>());</div>
472
- <div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; <span class="keywordflow">return</span> result;</div>
473
- <div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160;}</div>
468
+ <p class="definition">Definition at line <a class="el" href="AccessPath_8cpp_source.html#l00254">254</a> of file <a class="el" href="AccessPath_8cpp_source.html">AccessPath.cpp</a>.</p>
469
+ <div class="fragment"><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160;{</div>
470
+ <div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a> result;</div>
471
+ <div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; result.<a class="code" href="classSVF_1_1SparseBitVector.html#a61bd86909a141f9de873d92c0f904832">set</a>(<a class="code" href="classSVF_1_1AccessPath.html#a5427d08c9eb9d86e66c2bff6aeba6bac">getConstantStructFldIdx</a>());</div>
472
+ <div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; <span class="keywordflow">return</span> result;</div>
473
+ <div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160;}</div>
474
474
  </div><!-- fragment -->
475
475
  </div>
476
476
  </div>
@@ -500,45 +500,45 @@ Friends</h2></td></tr>
500
500
  <p>for (1) structType: struct.DEST structField = 0, flattenIdx = 0, type2: int structField = 1, flattenIdx = 1, type2: char[10] structField = 2, flattenIdx = 11, type2: int[5]</p>
501
501
  <p>for (2) i = 0, op: 0, type: [10 x i8]*(Ptr), type2: [10 x i8](Arr) i = 1, op: 8, type: [10 x i8](Arr), type2: i8</p>
502
502
 
503
- <p class="definition">Definition at line <a class="el" href="AccessPath_8cpp_source.html#l00098">98</a> of file <a class="el" href="AccessPath_8cpp_source.html">AccessPath.cpp</a>.</p>
504
- <div class="fragment"><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;{</div>
505
- <div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; assert(<a class="code" href="classSVF_1_1AccessPath.html#a403312192a96a9fd5e7d071481592a7f">isConstantOffset</a>() &amp;&amp; <span class="stringliteral">&quot;not a constant offset&quot;</span>);</div>
506
- <div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; </div>
507
- <div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> totalConstOffset = 0;</div>
508
- <div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = <a class="code" href="classSVF_1_1AccessPath.html#a47855e8ab3bba692f443903b58618229">idxOperandPairs</a>.size() - 1; i &gt;= 0; i--)</div>
509
- <div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; {</div>
510
- <div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="comment">// (2) %arrayidx = getelementptr inbounds [10 x i8], [10 x i8]* %b, i64 0, i64 8</span></div>
511
- <div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFValue.html">SVFValue</a>* value = <a class="code" href="classSVF_1_1AccessPath.html#a47855e8ab3bba692f443903b58618229">idxOperandPairs</a>[i].first-&gt;getValue();</div>
512
- <div class="line"><a name="l00115"></a><span class="lineno"> 115</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> = <a class="code" href="classSVF_1_1AccessPath.html#a47855e8ab3bba692f443903b58618229">idxOperandPairs</a>[i].second;</div>
513
- <div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; assert(<a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a> &amp;&amp; <span class="stringliteral">&quot;this GepStmt comes from ExternalAPI cannot call this api&quot;</span>);</div>
514
- <div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* type2 = <a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>;</div>
515
- <div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFArrayType.html">SVFArrayType</a>* arrType = SVFUtil::dyn_cast&lt;SVFArrayType&gt;(<a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>))</div>
516
- <div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; {</div>
517
- <div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; type2 = arrType-&gt;getTypeOfElement();</div>
518
- <div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; }</div>
519
- <div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa&lt;SVFPointerType&gt;(<a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>))</div>
520
- <div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; {</div>
521
- <div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; type2 = <a class="code" href="classSVF_1_1AccessPath.html#a7b4921dea37246f0f08dffa7db384a61">gepSrcPointeeType</a>();</div>
522
- <div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; }</div>
523
- <div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; </div>
524
- <div class="line"><a name="l00133"></a><span class="lineno"> 133</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>
525
- <div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStructType.html">SVFStructType</a>* structType = SVFUtil::dyn_cast&lt;SVFStructType&gt;(<a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>))</div>
526
- <div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; {</div>
527
- <div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> structField = 0; structField &lt; (<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a>)op-&gt;<a class="code" href="classSVF_1_1SVFConstantInt.html#a73f04bdfc19261b65164b98787bc2ed4">getSExtValue</a>(); ++structField)</div>
528
- <div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; {</div>
529
- <div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> flattenIdx = structType-&gt;getTypeInfo()-&gt;getFlattenedFieldIdxVec()[structField];</div>
530
- <div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; type2 = structType-&gt;<a class="code" href="classSVF_1_1SVFType.html#a05850c17c2dbe42e5602dc8c9a70f3bd">getTypeInfo</a>()-&gt;<a class="code" href="classSVF_1_1StInfo.html#a055697f565cb9d73b41110090fe50159">getOriginalElemType</a>(flattenIdx);</div>
531
- <div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; totalConstOffset += type2-&gt;<a class="code" href="classSVF_1_1SVFType.html#a95b8031f1e15d49c7d68628be1d05aae">getByteSize</a>();</div>
532
- <div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; }</div>
533
- <div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; }</div>
534
- <div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; <span class="keywordflow">else</span></div>
535
- <div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; {</div>
536
- <div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; totalConstOffset += op-&gt;<a class="code" href="classSVF_1_1SVFConstantInt.html#a73f04bdfc19261b65164b98787bc2ed4">getSExtValue</a>() * type2-&gt;<a class="code" href="classSVF_1_1SVFType.html#a95b8031f1e15d49c7d68628be1d05aae">getByteSize</a>();</div>
537
- <div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; }</div>
538
- <div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; }</div>
539
- <div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; totalConstOffset = <a class="code" href="classSVF_1_1Options.html#aaab923c093730b1670a54f09340b1bd5">Options::MaxFieldLimit</a>() &gt; totalConstOffset? totalConstOffset: <a class="code" href="classSVF_1_1Options.html#aaab923c093730b1670a54f09340b1bd5">Options::MaxFieldLimit</a>();</div>
540
- <div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <span class="keywordflow">return</span> totalConstOffset;</div>
541
- <div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;}</div>
503
+ <p class="definition">Definition at line <a class="el" href="AccessPath_8cpp_source.html#l00089">89</a> of file <a class="el" href="AccessPath_8cpp_source.html">AccessPath.cpp</a>.</p>
504
+ <div class="fragment"><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;{</div>
505
+ <div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; assert(<a class="code" href="classSVF_1_1AccessPath.html#a403312192a96a9fd5e7d071481592a7f">isConstantOffset</a>() &amp;&amp; <span class="stringliteral">&quot;not a constant offset&quot;</span>);</div>
506
+ <div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; </div>
507
+ <div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> totalConstOffset = 0;</div>
508
+ <div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = <a class="code" href="classSVF_1_1AccessPath.html#a47855e8ab3bba692f443903b58618229">idxOperandPairs</a>.size() - 1; i &gt;= 0; i--)</div>
509
+ <div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; {</div>
510
+ <div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="comment">// (2) %arrayidx = getelementptr inbounds [10 x i8], [10 x i8]* %b, i64 0, i64 8</span></div>
511
+ <div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFValue.html">SVFValue</a>* value = <a class="code" href="classSVF_1_1AccessPath.html#a47855e8ab3bba692f443903b58618229">idxOperandPairs</a>[i].first-&gt;getValue();</div>
512
+ <div class="line"><a name="l00106"></a><span class="lineno"> 106</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> = <a class="code" href="classSVF_1_1AccessPath.html#a47855e8ab3bba692f443903b58618229">idxOperandPairs</a>[i].second;</div>
513
+ <div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; assert(<a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a> &amp;&amp; <span class="stringliteral">&quot;this GepStmt comes from ExternalAPI cannot call this api&quot;</span>);</div>
514
+ <div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* type2 = <a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>;</div>
515
+ <div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFArrayType.html">SVFArrayType</a>* arrType = SVFUtil::dyn_cast&lt;SVFArrayType&gt;(<a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>))</div>
516
+ <div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; {</div>
517
+ <div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; type2 = arrType-&gt;getTypeOfElement();</div>
518
+ <div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; }</div>
519
+ <div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa&lt;SVFPointerType&gt;(<a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>))</div>
520
+ <div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; {</div>
521
+ <div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; type2 = <a class="code" href="classSVF_1_1AccessPath.html#a7b4921dea37246f0f08dffa7db384a61">gepSrcPointeeType</a>();</div>
522
+ <div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; }</div>
523
+ <div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; </div>
524
+ <div class="line"><a name="l00124"></a><span class="lineno"> 124</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>
525
+ <div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStructType.html">SVFStructType</a>* structType = SVFUtil::dyn_cast&lt;SVFStructType&gt;(<a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>))</div>
526
+ <div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; {</div>
527
+ <div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> structField = 0; structField &lt; (<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a>)op-&gt;<a class="code" href="classSVF_1_1SVFConstantInt.html#a73f04bdfc19261b65164b98787bc2ed4">getSExtValue</a>(); ++structField)</div>
528
+ <div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; {</div>
529
+ <div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> flattenIdx = structType-&gt;getTypeInfo()-&gt;getFlattenedFieldIdxVec()[structField];</div>
530
+ <div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; type2 = structType-&gt;<a class="code" href="classSVF_1_1SVFType.html#a05850c17c2dbe42e5602dc8c9a70f3bd">getTypeInfo</a>()-&gt;<a class="code" href="classSVF_1_1StInfo.html#a055697f565cb9d73b41110090fe50159">getOriginalElemType</a>(flattenIdx);</div>
531
+ <div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; totalConstOffset += type2-&gt;<a class="code" href="classSVF_1_1SVFType.html#a95b8031f1e15d49c7d68628be1d05aae">getByteSize</a>();</div>
532
+ <div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; }</div>
533
+ <div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; }</div>
534
+ <div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <span class="keywordflow">else</span></div>
535
+ <div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; {</div>
536
+ <div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; totalConstOffset += op-&gt;<a class="code" href="classSVF_1_1SVFConstantInt.html#a73f04bdfc19261b65164b98787bc2ed4">getSExtValue</a>() * type2-&gt;<a class="code" href="classSVF_1_1SVFType.html#a95b8031f1e15d49c7d68628be1d05aae">getByteSize</a>();</div>
537
+ <div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; }</div>
538
+ <div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; }</div>
539
+ <div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; totalConstOffset = <a class="code" href="classSVF_1_1Options.html#aaab923c093730b1670a54f09340b1bd5">Options::MaxFieldLimit</a>() &gt; totalConstOffset? totalConstOffset: <a class="code" href="classSVF_1_1Options.html#aaab923c093730b1670a54f09340b1bd5">Options::MaxFieldLimit</a>();</div>
540
+ <div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <span class="keywordflow">return</span> totalConstOffset;</div>
541
+ <div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;}</div>
542
542
  </div><!-- fragment -->
543
543
  </div>
544
544
  </div>
@@ -562,58 +562,58 @@ Friends</h2></td></tr>
562
562
  <p>Return accumulated constant offset</p>
563
563
  <p>"value" is the offset variable (must be a constant) "type" is the location where we want to compute offset Given a vector: [(value1,type1), (value2,type2), (value3,type3)] totalConstOffset = flattenOffset(value1,type1) * flattenOffset(value2,type2) + flattenOffset(value3,type3) For a pointer type (e.g., t1 is PointerType), we will retrieve the pointee type and times the offset, i.e., getElementNum(t1) X off1 %5 = getelementptr inbounds struct.Student, struct.Student* %4, i64 1 value1: i64 1 type1: struct.Student* computeConstantOffset = 32 %6 = getelementptr inbounds struct.Student, struct.Student* %5, i32 0, i32 1 value1: i32 0 type1: struct.Student* value2: i32 1 type2: struct.Student = type { struct.inner, [10 x [3 x i8]] } computeConstantOffset = 2 %7 = getelementptr inbounds [10 x [3 x i8]], [10 x [3 x i8]]* %6, i64 0, i64 3 value1: i64 0 type1: [10 x [3 x i8]]* value2: i64 3 type2: [10 x [3 x i8]] computeConstantOffset = 9 %8 = getelementptr inbounds [3 x i8], [3 x i8]* %7, i64 0, i64 2 value1: i64 0 type1: [3 x i8]* value2: i64 2 type2: [3 x i8] computeConstantOffset = 2 </p>
564
564
 
565
- <p class="definition">Definition at line <a class="el" href="AccessPath_8cpp_source.html#l00208">208</a> of file <a class="el" href="AccessPath_8cpp_source.html">AccessPath.cpp</a>.</p>
566
- <div class="fragment"><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;{</div>
567
- <div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; </div>
568
- <div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; assert(<a class="code" href="classSVF_1_1AccessPath.html#a403312192a96a9fd5e7d071481592a7f">isConstantOffset</a>() &amp;&amp; <span class="stringliteral">&quot;not a constant offset&quot;</span>);</div>
569
- <div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; </div>
570
- <div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; <a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> totalConstOffset = 0;</div>
571
- <div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; <span class="comment">//After the model-const and model-array options are turned on,</span></div>
572
- <div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; <span class="comment">// the gepstmt offset generated by the array on the global</span></div>
573
- <div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; <span class="comment">// node will be saved in getConstantStructFldIdx</span></div>
574
- <div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1AccessPath.html#a47855e8ab3bba692f443903b58618229">idxOperandPairs</a>.size() == 0)</div>
575
- <div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1AccessPath.html#a5427d08c9eb9d86e66c2bff6aeba6bac">getConstantStructFldIdx</a>();</div>
576
- <div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = <a class="code" href="classSVF_1_1AccessPath.html#a47855e8ab3bba692f443903b58618229">idxOperandPairs</a>.size() - 1; i &gt;= 0; i--)</div>
577
- <div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; {</div>
578
- <div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFValue.html">SVFValue</a>* value = <a class="code" href="classSVF_1_1AccessPath.html#a47855e8ab3bba692f443903b58618229">idxOperandPairs</a>[i].first-&gt;getValue();</div>
579
- <div class="line"><a name="l00222"></a><span class="lineno"> 222</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> = <a class="code" href="classSVF_1_1AccessPath.html#a47855e8ab3bba692f443903b58618229">idxOperandPairs</a>[i].second;</div>
580
- <div class="line"><a name="l00223"></a><span class="lineno"> 223</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>
581
- <div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; assert(op &amp;&amp; <span class="stringliteral">&quot;not a constant offset?&quot;</span>);</div>
582
- <div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>==<span class="keyword">nullptr</span>)</div>
583
- <div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; {</div>
584
- <div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; totalConstOffset += op-&gt;<a class="code" href="classSVF_1_1SVFConstantInt.html#a73f04bdfc19261b65164b98787bc2ed4">getSExtValue</a>();</div>
585
- <div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; <span class="keywordflow">continue</span>;</div>
586
- <div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; }</div>
587
- <div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; </div>
588
- <div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; <span class="keywordflow">if</span>(SVFUtil::isa&lt;SVFPointerType&gt;(<a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>))</div>
589
- <div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; totalConstOffset += op-&gt;<a class="code" href="classSVF_1_1SVFConstantInt.html#a73f04bdfc19261b65164b98787bc2ed4">getSExtValue</a>() * <a class="code" href="classSVF_1_1AccessPath.html#a3c98f0c5f07109f9da0a8a897aa51d18">getElementNum</a>(<a class="code" href="classSVF_1_1AccessPath.html#a1d75baf851ba9982ac0861c850929985">gepPointeeType</a>);</div>
590
- <div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; <span class="keywordflow">else</span></div>
591
- <div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; {</div>
592
- <div class="line"><a name="l00235"></a><span class="lineno"> 235</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>
593
- <div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="cJSON_8cpp.html#a95bf816579e97b6f33bdb5e25ed6d5de">offset</a> &gt;= 0)</div>
594
- <div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; {</div>
595
- <div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; <span class="keyword">const</span> std::vector&lt;u32_t&gt;&amp; so = <a class="code" href="classSVF_1_1SymbolTableInfo.html#a267169023fc4f8dd66b145f7231fec11">SymbolTableInfo::SymbolInfo</a>()-&gt;<a class="code" href="classSVF_1_1SymbolTableInfo.html#a5dc699aa85fe879eb4b2c9109cf3030d">getTypeInfo</a>(<a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>)-&gt;<a class="code" href="classSVF_1_1StInfo.html#a55e5fd85f232c1867c5c6a73646d53eb">getFlattenedElemIdxVec</a>();</div>
596
- <div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; <span class="comment">// if offset is larger than the size of getFlattenedElemIdxVec (overflow)</span></div>
597
- <div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; <span class="comment">// set offset the last index of getFlattenedElemIdxVec to avoid assertion</span></div>
598
- <div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="cJSON_8cpp.html#a95bf816579e97b6f33bdb5e25ed6d5de">offset</a> &gt;= (<a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a>)so.size())</div>
599
- <div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; {</div>
600
- <div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">SVFUtil::errs</a>() &lt;&lt; <span class="stringliteral">&quot;It is overflow access, we access the last idx\n&quot;</span>;</div>
601
- <div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; <a class="code" href="cJSON_8cpp.html#a95bf816579e97b6f33bdb5e25ed6d5de">offset</a> = so.size() - 1;</div>
602
- <div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; }</div>
603
- <div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; <span class="keywordflow">else</span></div>
604
- <div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; {</div>
605
- <div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; </div>
606
- <div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; }</div>
607
- <div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; </div>
608
- <div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> flattenOffset =</div>
609
- <div class="line"><a name="l00252"></a><span class="lineno"> 252</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>
610
- <div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; <a class="code" href="cJSON_8cpp.html#a95bf816579e97b6f33bdb5e25ed6d5de">offset</a>);</div>
611
- <div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; totalConstOffset += flattenOffset;</div>
612
- <div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; }</div>
613
- <div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; }</div>
614
- <div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; }</div>
615
- <div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; <span class="keywordflow">return</span> totalConstOffset;</div>
616
- <div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160;}</div>
565
+ <p class="definition">Definition at line <a class="el" href="AccessPath_8cpp_source.html#l00199">199</a> of file <a class="el" href="AccessPath_8cpp_source.html">AccessPath.cpp</a>.</p>
566
+ <div class="fragment"><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;{</div>
567
+ <div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; </div>
568
+ <div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; assert(<a class="code" href="classSVF_1_1AccessPath.html#a403312192a96a9fd5e7d071481592a7f">isConstantOffset</a>() &amp;&amp; <span class="stringliteral">&quot;not a constant offset&quot;</span>);</div>
569
+ <div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; </div>
570
+ <div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; <a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> totalConstOffset = 0;</div>
571
+ <div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <span class="comment">//After the model-const and model-array options are turned on,</span></div>
572
+ <div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; <span class="comment">// the gepstmt offset generated by the array on the global</span></div>
573
+ <div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <span class="comment">// node will be saved in getConstantStructFldIdx</span></div>
574
+ <div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1AccessPath.html#a47855e8ab3bba692f443903b58618229">idxOperandPairs</a>.size() == 0)</div>
575
+ <div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1AccessPath.html#a5427d08c9eb9d86e66c2bff6aeba6bac">getConstantStructFldIdx</a>();</div>
576
+ <div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = <a class="code" href="classSVF_1_1AccessPath.html#a47855e8ab3bba692f443903b58618229">idxOperandPairs</a>.size() - 1; i &gt;= 0; i--)</div>
577
+ <div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; {</div>
578
+ <div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFValue.html">SVFValue</a>* value = <a class="code" href="classSVF_1_1AccessPath.html#a47855e8ab3bba692f443903b58618229">idxOperandPairs</a>[i].first-&gt;getValue();</div>
579
+ <div class="line"><a name="l00213"></a><span class="lineno"> 213</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> = <a class="code" href="classSVF_1_1AccessPath.html#a47855e8ab3bba692f443903b58618229">idxOperandPairs</a>[i].second;</div>
580
+ <div class="line"><a name="l00214"></a><span class="lineno"> 214</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>
581
+ <div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; assert(op &amp;&amp; <span class="stringliteral">&quot;not a constant offset?&quot;</span>);</div>
582
+ <div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>==<span class="keyword">nullptr</span>)</div>
583
+ <div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; {</div>
584
+ <div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; totalConstOffset += op-&gt;<a class="code" href="classSVF_1_1SVFConstantInt.html#a73f04bdfc19261b65164b98787bc2ed4">getSExtValue</a>();</div>
585
+ <div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; <span class="keywordflow">continue</span>;</div>
586
+ <div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; }</div>
587
+ <div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; </div>
588
+ <div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; <span class="keywordflow">if</span>(SVFUtil::isa&lt;SVFPointerType&gt;(<a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>))</div>
589
+ <div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; totalConstOffset += op-&gt;<a class="code" href="classSVF_1_1SVFConstantInt.html#a73f04bdfc19261b65164b98787bc2ed4">getSExtValue</a>() * <a class="code" href="classSVF_1_1AccessPath.html#a3c98f0c5f07109f9da0a8a897aa51d18">getElementNum</a>(<a class="code" href="classSVF_1_1AccessPath.html#a1d75baf851ba9982ac0861c850929985">gepPointeeType</a>);</div>
590
+ <div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; <span class="keywordflow">else</span></div>
591
+ <div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; {</div>
592
+ <div class="line"><a name="l00226"></a><span class="lineno"> 226</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>
593
+ <div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="cJSON_8cpp.html#a95bf816579e97b6f33bdb5e25ed6d5de">offset</a> &gt;= 0)</div>
594
+ <div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; {</div>
595
+ <div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; <span class="keyword">const</span> std::vector&lt;u32_t&gt;&amp; so = <a class="code" href="classSVF_1_1SymbolTableInfo.html#a267169023fc4f8dd66b145f7231fec11">SymbolTableInfo::SymbolInfo</a>()-&gt;<a class="code" href="classSVF_1_1SymbolTableInfo.html#a5dc699aa85fe879eb4b2c9109cf3030d">getTypeInfo</a>(<a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>)-&gt;<a class="code" href="classSVF_1_1StInfo.html#a55e5fd85f232c1867c5c6a73646d53eb">getFlattenedElemIdxVec</a>();</div>
596
+ <div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; <span class="comment">// if offset is larger than the size of getFlattenedElemIdxVec (overflow)</span></div>
597
+ <div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; <span class="comment">// set offset the last index of getFlattenedElemIdxVec to avoid assertion</span></div>
598
+ <div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="cJSON_8cpp.html#a95bf816579e97b6f33bdb5e25ed6d5de">offset</a> &gt;= (<a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a>)so.size())</div>
599
+ <div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; {</div>
600
+ <div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">SVFUtil::errs</a>() &lt;&lt; <span class="stringliteral">&quot;It is overflow access, we access the last idx\n&quot;</span>;</div>
601
+ <div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; <a class="code" href="cJSON_8cpp.html#a95bf816579e97b6f33bdb5e25ed6d5de">offset</a> = so.size() - 1;</div>
602
+ <div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; }</div>
603
+ <div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; <span class="keywordflow">else</span></div>
604
+ <div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; {</div>
605
+ <div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; </div>
606
+ <div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; }</div>
607
+ <div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; </div>
608
+ <div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> flattenOffset =</div>
609
+ <div class="line"><a name="l00243"></a><span class="lineno"> 243</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>
610
+ <div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; <a class="code" href="cJSON_8cpp.html#a95bf816579e97b6f33bdb5e25ed6d5de">offset</a>);</div>
611
+ <div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; totalConstOffset += flattenOffset;</div>
612
+ <div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; }</div>
613
+ <div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; }</div>
614
+ <div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; }</div>
615
+ <div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; <span class="keywordflow">return</span> totalConstOffset;</div>
616
+ <div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160;}</div>
617
617
  </div><!-- fragment -->
618
618
  </div>
619
619
  </div>
@@ -634,24 +634,24 @@ Friends</h2></td></tr>
634
634
 
635
635
  <p>Dump location set. </p>
636
636
 
637
- <p class="definition">Definition at line <a class="el" href="AccessPath_8cpp_source.html#l00327">327</a> of file <a class="el" href="AccessPath_8cpp_source.html">AccessPath.cpp</a>.</p>
638
- <div class="fragment"><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160;{</div>
639
- <div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> str;</div>
640
- <div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; std::stringstream rawstr(str);</div>
641
- <div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160; </div>
642
- <div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot;AccessPath\tField_Index: &quot;</span> &lt;&lt; <a class="code" href="classSVF_1_1AccessPath.html#a5427d08c9eb9d86e66c2bff6aeba6bac">getConstantStructFldIdx</a>();</div>
643
- <div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot;,\tNum-Stride: {&quot;</span>;</div>
644
- <div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1AccessPath.html#a04ca154a70f40999a6a28c505bfd942d">IdxOperandPairs</a>&amp; vec = <a class="code" href="classSVF_1_1AccessPath.html#a586c71842e3e4487921aa3384ce9d025">getIdxOperandPairVec</a>();</div>
645
- <div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; IdxOperandPairs::const_iterator it = vec.begin();</div>
646
- <div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; IdxOperandPairs::const_iterator eit = vec.end();</div>
647
- <div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; <span class="keywordflow">for</span> (; it != eit; ++it)</div>
648
- <div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; {</div>
649
- <div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* ty = it-&gt;second;</div>
650
- <div class="line"><a name="l00340"></a><span class="lineno"> 340</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>
651
- <div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; }</div>
652
- <div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot; }\n&quot;</span>;</div>
653
- <div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160; <span class="keywordflow">return</span> rawstr.str();</div>
654
- <div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160;}</div>
637
+ <p class="definition">Definition at line <a class="el" href="AccessPath_8cpp_source.html#l00318">318</a> of file <a class="el" href="AccessPath_8cpp_source.html">AccessPath.cpp</a>.</p>
638
+ <div class="fragment"><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160;{</div>
639
+ <div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> str;</div>
640
+ <div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; std::stringstream rawstr(str);</div>
641
+ <div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; </div>
642
+ <div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot;AccessPath\tField_Index: &quot;</span> &lt;&lt; <a class="code" href="classSVF_1_1AccessPath.html#a5427d08c9eb9d86e66c2bff6aeba6bac">getConstantStructFldIdx</a>();</div>
643
+ <div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot;,\tNum-Stride: {&quot;</span>;</div>
644
+ <div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1AccessPath.html#a04ca154a70f40999a6a28c505bfd942d">IdxOperandPairs</a>&amp; vec = <a class="code" href="classSVF_1_1AccessPath.html#a586c71842e3e4487921aa3384ce9d025">getIdxOperandPairVec</a>();</div>
645
+ <div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; IdxOperandPairs::const_iterator it = vec.begin();</div>
646
+ <div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; IdxOperandPairs::const_iterator eit = vec.end();</div>
647
+ <div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; <span class="keywordflow">for</span> (; it != eit; ++it)</div>
648
+ <div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; {</div>
649
+ <div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* ty = it-&gt;second;</div>
650
+ <div class="line"><a name="l00331"></a><span class="lineno"> 331</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>
651
+ <div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; }</div>
652
+ <div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot; }\n&quot;</span>;</div>
653
+ <div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; <span class="keywordflow">return</span> rawstr.str();</div>
654
+ <div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160;}</div>
655
655
  </div><!-- fragment -->
656
656
  </div>
657
657
  </div>
@@ -734,35 +734,27 @@ Friends</h2></td></tr>
734
734
  </div><div class="memdoc">
735
735
 
736
736
  <p>Return element number of a type. </p>
737
- <p>Return element number of a type (1) StructType or Array, return flattened number elements. (2) PointerType, return the element number of the pointee (3) non-pointer SingleValueType, return 1 </p>
738
- <p>This is a pointer arithmetic</p>
737
+ <p>Return element number of a type (1) StructType or Array, return flattened number elements. (2) non-pointer SingleValueType, return 1 </p>
739
738
 
740
- <p class="definition">Definition at line <a class="el" href="AccessPath_8cpp_source.html#l00063">63</a> of file <a class="el" href="AccessPath_8cpp_source.html">AccessPath.cpp</a>.</p>
741
- <div class="fragment"><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;{</div>
739
+ <p class="definition">Definition at line <a class="el" href="AccessPath_8cpp_source.html#l00062">62</a> of file <a class="el" href="AccessPath_8cpp_source.html">AccessPath.cpp</a>.</p>
740
+ <div class="fragment"><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;{</div>
741
+ <div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; assert(!SVFUtil::isa&lt;SVFPointerType&gt;(<a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>) &amp;&amp; <span class="stringliteral">&quot;can&#39;t be pointer type&quot;</span>);</div>
742
742
  <div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; </div>
743
743
  <div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="keywordflow">if</span> (SVFUtil::isa&lt;SVFArrayType, SVFStructType&gt;(<a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>))</div>
744
744
  <div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; {</div>
745
745
  <div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#a267169023fc4f8dd66b145f7231fec11">SymbolTableInfo::SymbolInfo</a>()-&gt;<a class="code" href="classSVF_1_1SymbolTableInfo.html#a811a3489df0f793c7a5482d31d470a4c">getNumOfFlattenElements</a>(<a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>);</div>
746
746
  <div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; }</div>
747
- <div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>-&gt;isSingleValueType())</div>
747
+ <div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>-&gt;isSingleValueType() || SVFUtil::isa&lt;SVFFunctionType&gt;(<a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>))</div>
748
748
  <div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; {</div>
749
- <div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="comment">// TODO: getPtrElementType to be removed</span></div>
750
- <div class="line"><a name="l00074"></a><span class="lineno"> 74</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>
751
- <div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1AccessPath.html#a3c98f0c5f07109f9da0a8a897aa51d18">getElementNum</a>(pty-&gt;getPtrElementType());</div>
752
- <div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="keywordflow">else</span></div>
753
- <div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="keywordflow">return</span> 1;</div>
754
- <div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; }</div>
755
- <div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa&lt;SVFFunctionType&gt;(<a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>))</div>
756
- <div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; {</div>
757
- <div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="keywordflow">return</span> 1;</div>
758
- <div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; }</div>
759
- <div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <span class="keywordflow">else</span></div>
760
- <div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; {</div>
761
- <div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVFUtil::outs</a>() &lt;&lt; <span class="stringliteral">&quot;GepIter Type&quot;</span> &lt;&lt; *<a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a> &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div>
762
- <div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; assert(<span class="keyword">false</span> &amp;&amp; <span class="stringliteral">&quot;What other types for this gep?&quot;</span>);</div>
763
- <div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; abort();</div>
764
- <div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; }</div>
765
- <div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;}</div>
749
+ <div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keywordflow">return</span> 1;</div>
750
+ <div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; }</div>
751
+ <div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="keywordflow">else</span></div>
752
+ <div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; {</div>
753
+ <div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVFUtil::outs</a>() &lt;&lt; <span class="stringliteral">&quot;GepIter Type&quot;</span> &lt;&lt; *<a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a> &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div>
754
+ <div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; assert(<span class="keyword">false</span> &amp;&amp; <span class="stringliteral">&quot;What other types for this gep?&quot;</span>);</div>
755
+ <div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; abort();</div>
756
+ <div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; }</div>
757
+ <div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;}</div>
766
758
  </div><!-- fragment -->
767
759
  </div>
768
760
  </div>
@@ -825,22 +817,22 @@ Friends</h2></td></tr>
825
817
  <p>Return byte offset from the beginning of the structure to the field where it is located for struct type. </p>
826
818
  <p>Return byte offset from the beginning of the structure to the field where it is located for struct type </p>
827
819
 
828
- <p class="definition">Definition at line <a class="el" href="AccessPath_8cpp_source.html#l00163">163</a> of file <a class="el" href="AccessPath_8cpp_source.html">AccessPath.cpp</a>.</p>
829
- <div class="fragment"><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;{</div>
830
- <div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFValue.html">SVFValue</a>* idxValue = idxOperandVar-&gt;<a class="code" href="classSVF_1_1SVFVar.html#ac2db6304ea5526fb446ae882983beeb0">getValue</a>();</div>
831
- <div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> structByteOffset = 0;</div>
832
- <div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFConstantInt.html">SVFConstantInt</a> *op = SVFUtil::dyn_cast&lt;SVFConstantInt&gt;(idxValue))</div>
833
- <div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; {</div>
834
- <div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> structField = 0; structField &lt; (<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a>)op-&gt;getSExtValue(); ++structField)</div>
835
- <div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; {</div>
836
- <div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> flattenIdx = idxOperandType-&gt;<a class="code" href="classSVF_1_1SVFType.html#a05850c17c2dbe42e5602dc8c9a70f3bd">getTypeInfo</a>()-&gt;<a class="code" href="classSVF_1_1StInfo.html#aaf05447c20c9f90eea64ab6e88d6ab05">getFlattenedFieldIdxVec</a>()[structField];</div>
837
- <div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; structByteOffset += idxOperandType-&gt;<a class="code" href="classSVF_1_1SVFType.html#a05850c17c2dbe42e5602dc8c9a70f3bd">getTypeInfo</a>()-&gt;<a class="code" href="classSVF_1_1StInfo.html#a055697f565cb9d73b41110090fe50159">getOriginalElemType</a>(flattenIdx)-&gt;<a class="code" href="classSVF_1_1SVFType.html#a95b8031f1e15d49c7d68628be1d05aae">getByteSize</a>();</div>
838
- <div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; }</div>
839
- <div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <span class="keywordflow">return</span> structByteOffset;</div>
840
- <div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; }</div>
841
- <div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <span class="keywordflow">else</span></div>
842
- <div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; assert(<span class="keyword">false</span> &amp;&amp; <span class="stringliteral">&quot;struct type can only pair with constant idx&quot;</span>);</div>
843
- <div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;}</div>
820
+ <p class="definition">Definition at line <a class="el" href="AccessPath_8cpp_source.html#l00154">154</a> of file <a class="el" href="AccessPath_8cpp_source.html">AccessPath.cpp</a>.</p>
821
+ <div class="fragment"><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;{</div>
822
+ <div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFValue.html">SVFValue</a>* idxValue = idxOperandVar-&gt;<a class="code" href="classSVF_1_1SVFVar.html#ac2db6304ea5526fb446ae882983beeb0">getValue</a>();</div>
823
+ <div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> structByteOffset = 0;</div>
824
+ <div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFConstantInt.html">SVFConstantInt</a> *op = SVFUtil::dyn_cast&lt;SVFConstantInt&gt;(idxValue))</div>
825
+ <div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; {</div>
826
+ <div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> structField = 0; structField &lt; (<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a>)op-&gt;getSExtValue(); ++structField)</div>
827
+ <div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; {</div>
828
+ <div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> flattenIdx = idxOperandType-&gt;<a class="code" href="classSVF_1_1SVFType.html#a05850c17c2dbe42e5602dc8c9a70f3bd">getTypeInfo</a>()-&gt;<a class="code" href="classSVF_1_1StInfo.html#aaf05447c20c9f90eea64ab6e88d6ab05">getFlattenedFieldIdxVec</a>()[structField];</div>
829
+ <div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; structByteOffset += idxOperandType-&gt;<a class="code" href="classSVF_1_1SVFType.html#a05850c17c2dbe42e5602dc8c9a70f3bd">getTypeInfo</a>()-&gt;<a class="code" href="classSVF_1_1StInfo.html#a055697f565cb9d73b41110090fe50159">getOriginalElemType</a>(flattenIdx)-&gt;<a class="code" href="classSVF_1_1SVFType.html#a95b8031f1e15d49c7d68628be1d05aae">getByteSize</a>();</div>
830
+ <div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; }</div>
831
+ <div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; <span class="keywordflow">return</span> structByteOffset;</div>
832
+ <div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; }</div>
833
+ <div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <span class="keywordflow">else</span></div>
834
+ <div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; assert(<span class="keyword">false</span> &amp;&amp; <span class="stringliteral">&quot;struct type can only pair with constant idx&quot;</span>);</div>
835
+ <div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;}</div>
844
836
  </div><!-- fragment -->
845
837
  </div>
846
838
  </div>
@@ -925,16 +917,16 @@ Friends</h2></td></tr>
925
917
 
926
918
  <p>Overload operators. </p>
927
919
 
928
- <p class="definition">Definition at line <a class="el" href="AccessPath_8cpp_source.html#l00270">270</a> of file <a class="el" href="AccessPath_8cpp_source.html">AccessPath.cpp</a>.</p>
929
- <div class="fragment"><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160;{</div>
930
- <div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; assert(<a class="code" href="classSVF_1_1AccessPath.html#a1d75baf851ba9982ac0861c850929985">gepPointeeType</a> == rhs.<a class="code" href="classSVF_1_1AccessPath.html#a7b4921dea37246f0f08dffa7db384a61">gepSrcPointeeType</a>() &amp;&amp; <span class="stringliteral">&quot;source element type not match&quot;</span>);</div>
931
- <div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; <a class="code" href="classSVF_1_1AccessPath.html">AccessPath</a> ap(rhs);</div>
932
- <div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; ap.fldIdx += <a class="code" href="classSVF_1_1AccessPath.html#a5427d08c9eb9d86e66c2bff6aeba6bac">getConstantStructFldIdx</a>();</div>
933
- <div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">auto</span> &amp;<a class="code" href="cJSON_8cpp.html#a009ef1d888ab6dbe77e6b42b0b39f1ae">p</a> : ap.getIdxOperandPairVec())</div>
934
- <div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; ap.addOffsetVarAndGepTypePair(<a class="code" href="cJSON_8cpp.html#a009ef1d888ab6dbe77e6b42b0b39f1ae">p</a>.first, <a class="code" href="cJSON_8cpp.html#a009ef1d888ab6dbe77e6b42b0b39f1ae">p</a>.second);</div>
935
- <div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; </div>
936
- <div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; <span class="keywordflow">return</span> ap;</div>
937
- <div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160;}</div>
920
+ <p class="definition">Definition at line <a class="el" href="AccessPath_8cpp_source.html#l00261">261</a> of file <a class="el" href="AccessPath_8cpp_source.html">AccessPath.cpp</a>.</p>
921
+ <div class="fragment"><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160;{</div>
922
+ <div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; assert(<a class="code" href="classSVF_1_1AccessPath.html#a1d75baf851ba9982ac0861c850929985">gepPointeeType</a> == rhs.<a class="code" href="classSVF_1_1AccessPath.html#a7b4921dea37246f0f08dffa7db384a61">gepSrcPointeeType</a>() &amp;&amp; <span class="stringliteral">&quot;source element type not match&quot;</span>);</div>
923
+ <div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; <a class="code" href="classSVF_1_1AccessPath.html">AccessPath</a> ap(rhs);</div>
924
+ <div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; ap.fldIdx += <a class="code" href="classSVF_1_1AccessPath.html#a5427d08c9eb9d86e66c2bff6aeba6bac">getConstantStructFldIdx</a>();</div>
925
+ <div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">auto</span> &amp;<a class="code" href="cJSON_8cpp.html#a009ef1d888ab6dbe77e6b42b0b39f1ae">p</a> : ap.getIdxOperandPairVec())</div>
926
+ <div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; ap.addOffsetVarAndGepTypePair(<a class="code" href="cJSON_8cpp.html#a009ef1d888ab6dbe77e6b42b0b39f1ae">p</a>.first, <a class="code" href="cJSON_8cpp.html#a009ef1d888ab6dbe77e6b42b0b39f1ae">p</a>.second);</div>
927
+ <div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; </div>
928
+ <div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; <span class="keywordflow">return</span> ap;</div>
929
+ <div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160;}</div>
938
930
  </div><!-- fragment -->
939
931
  </div>
940
932
  </div>
@@ -954,29 +946,29 @@ Friends</h2></td></tr>
954
946
  </table>
955
947
  </div><div class="memdoc">
956
948
 
957
- <p class="definition">Definition at line <a class="el" href="AccessPath_8cpp_source.html#l00281">281</a> of file <a class="el" href="AccessPath_8cpp_source.html">AccessPath.cpp</a>.</p>
958
- <div class="fragment"><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160;{</div>
959
- <div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1AccessPath.html#aa1747064a0833855a5848ebf4a4d65fa">fldIdx</a> != rhs.<a class="code" href="classSVF_1_1AccessPath.html#aa1747064a0833855a5848ebf4a4d65fa">fldIdx</a>)</div>
960
- <div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; <span class="keywordflow">return</span> (<a class="code" href="classSVF_1_1AccessPath.html#aa1747064a0833855a5848ebf4a4d65fa">fldIdx</a> &lt; rhs.<a class="code" href="classSVF_1_1AccessPath.html#aa1747064a0833855a5848ebf4a4d65fa">fldIdx</a>);</div>
961
- <div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; <span class="keywordflow">else</span></div>
962
- <div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; {</div>
963
- <div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1AccessPath.html#a04ca154a70f40999a6a28c505bfd942d">IdxOperandPairs</a>&amp; pairVec = <a class="code" href="classSVF_1_1AccessPath.html#a586c71842e3e4487921aa3384ce9d025">getIdxOperandPairVec</a>();</div>
964
- <div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1AccessPath.html#a04ca154a70f40999a6a28c505bfd942d">IdxOperandPairs</a>&amp; rhsPairVec = rhs.<a class="code" href="classSVF_1_1AccessPath.html#a586c71842e3e4487921aa3384ce9d025">getIdxOperandPairVec</a>();</div>
965
- <div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; <span class="keywordflow">if</span> (pairVec.size() != rhsPairVec.size())</div>
966
- <div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; <span class="keywordflow">return</span> (pairVec.size() &lt; rhsPairVec.size());</div>
967
- <div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; <span class="keywordflow">else</span></div>
968
- <div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; {</div>
969
- <div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; IdxOperandPairs::const_iterator it = pairVec.begin();</div>
970
- <div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; IdxOperandPairs::const_iterator rhsIt = rhsPairVec.begin();</div>
971
- <div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; <span class="keywordflow">for</span> (; it != pairVec.end() &amp;&amp; rhsIt != rhsPairVec.end(); ++it, ++rhsIt)</div>
972
- <div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; {</div>
973
- <div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; <span class="keywordflow">return</span> (*it) &lt; (*rhsIt);</div>
974
- <div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; }</div>
975
- <div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; </div>
976
- <div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
977
- <div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; }</div>
978
- <div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; }</div>
979
- <div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160;}</div>
949
+ <p class="definition">Definition at line <a class="el" href="AccessPath_8cpp_source.html#l00272">272</a> of file <a class="el" href="AccessPath_8cpp_source.html">AccessPath.cpp</a>.</p>
950
+ <div class="fragment"><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160;{</div>
951
+ <div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1AccessPath.html#aa1747064a0833855a5848ebf4a4d65fa">fldIdx</a> != rhs.<a class="code" href="classSVF_1_1AccessPath.html#aa1747064a0833855a5848ebf4a4d65fa">fldIdx</a>)</div>
952
+ <div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; <span class="keywordflow">return</span> (<a class="code" href="classSVF_1_1AccessPath.html#aa1747064a0833855a5848ebf4a4d65fa">fldIdx</a> &lt; rhs.<a class="code" href="classSVF_1_1AccessPath.html#aa1747064a0833855a5848ebf4a4d65fa">fldIdx</a>);</div>
953
+ <div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; <span class="keywordflow">else</span></div>
954
+ <div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; {</div>
955
+ <div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1AccessPath.html#a04ca154a70f40999a6a28c505bfd942d">IdxOperandPairs</a>&amp; pairVec = <a class="code" href="classSVF_1_1AccessPath.html#a586c71842e3e4487921aa3384ce9d025">getIdxOperandPairVec</a>();</div>
956
+ <div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1AccessPath.html#a04ca154a70f40999a6a28c505bfd942d">IdxOperandPairs</a>&amp; rhsPairVec = rhs.<a class="code" href="classSVF_1_1AccessPath.html#a586c71842e3e4487921aa3384ce9d025">getIdxOperandPairVec</a>();</div>
957
+ <div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; <span class="keywordflow">if</span> (pairVec.size() != rhsPairVec.size())</div>
958
+ <div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; <span class="keywordflow">return</span> (pairVec.size() &lt; rhsPairVec.size());</div>
959
+ <div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; <span class="keywordflow">else</span></div>
960
+ <div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; {</div>
961
+ <div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; IdxOperandPairs::const_iterator it = pairVec.begin();</div>
962
+ <div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; IdxOperandPairs::const_iterator rhsIt = rhsPairVec.begin();</div>
963
+ <div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; <span class="keywordflow">for</span> (; it != pairVec.end() &amp;&amp; rhsIt != rhsPairVec.end(); ++it, ++rhsIt)</div>
964
+ <div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; {</div>
965
+ <div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; <span class="keywordflow">return</span> (*it) &lt; (*rhsIt);</div>
966
+ <div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; }</div>
967
+ <div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; </div>
968
+ <div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
969
+ <div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; }</div>
970
+ <div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; }</div>
971
+ <div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160;}</div>
980
972
  </div><!-- fragment -->
981
973
  </div>
982
974
  </div>
@@ -1239,13 +1231,12 @@ Friends</h2></td></tr>
1239
1231
  <div class="ttc" id="aclassSVF_1_1AccessPath_html_aabb6c9600fac408f36b9fde013597245afbdf7000b827f7d8590e5f0997e0d59a"><div class="ttname"><a href="classSVF_1_1AccessPath.html#aabb6c9600fac408f36b9fde013597245afbdf7000b827f7d8590e5f0997e0d59a">SVF::AccessPath::Overlap</a></div><div class="ttdeci">@ Overlap</div><div class="ttdef"><b>Definition:</b> <a href="AccessPath_8h_source.html#l00061">AccessPath.h:61</a></div></div>
1240
1232
  <div class="ttc" id="acJSON_8cpp_html_a009ef1d888ab6dbe77e6b42b0b39f1ae"><div class="ttname"><a href="cJSON_8cpp.html#a009ef1d888ab6dbe77e6b42b0b39f1ae">p</a></div><div class="ttdeci">cJSON * p</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8cpp_source.html#l02559">cJSON.cpp:2559</a></div></div>
1241
1233
  <div class="ttc" id="aclassSVF_1_1AccessPath_html_a7b4921dea37246f0f08dffa7db384a61"><div class="ttname"><a href="classSVF_1_1AccessPath.html#a7b4921dea37246f0f08dffa7db384a61">SVF::AccessPath::gepSrcPointeeType</a></div><div class="ttdeci">const SVFType * gepSrcPointeeType() const</div><div class="ttdef"><b>Definition:</b> <a href="AccessPath_8h_source.html#l00112">AccessPath.h:112</a></div></div>
1242
- <div class="ttc" id="aclassSVF_1_1SVFPointerType_html"><div class="ttname"><a href="classSVF_1_1SVFPointerType.html">SVF::SVFPointerType</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00351">SVFType.h:351</a></div></div>
1243
1234
  <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>
1244
1235
  <div class="ttc" id="aclassSVF_1_1SVFVar_html_ac2db6304ea5526fb446ae882983beeb0"><div class="ttname"><a href="classSVF_1_1SVFVar.html#ac2db6304ea5526fb446ae882983beeb0">SVF::SVFVar::getValue</a></div><div class="ttdeci">const SVFValue * getValue() const</div><div class="ttdoc">Get/has methods of the components.</div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00094">SVFVariables.h:94</a></div></div>
1245
1236
  <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>
1246
1237
  <div class="ttc" id="aclassSVF_1_1AccessPath_html_a5427d08c9eb9d86e66c2bff6aeba6bac"><div class="ttname"><a href="classSVF_1_1AccessPath.html#a5427d08c9eb9d86e66c2bff6aeba6bac">SVF::AccessPath::getConstantStructFldIdx</a></div><div class="ttdeci">APOffset getConstantStructFldIdx() const</div><div class="ttdoc">Get methods.</div><div class="ttdef"><b>Definition:</b> <a href="AccessPath_8h_source.html#l00100">AccessPath.h:100</a></div></div>
1247
- <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#l00263">AccessPath.cpp:263</a></div></div>
1248
- <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>
1238
+ <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#l00254">AccessPath.cpp:254</a></div></div>
1239
+ <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#l00062">AccessPath.cpp:62</a></div></div>
1249
1240
  <div class="ttc" id="aclassSVF_1_1AccessPath_html_aabb6c9600fac408f36b9fde013597245ab1ba3a42758473e5ff427ba36147a56a"><div class="ttname"><a href="classSVF_1_1AccessPath.html#aabb6c9600fac408f36b9fde013597245ab1ba3a42758473e5ff427ba36147a56a">SVF::AccessPath::Same</a></div><div class="ttdeci">@ Same</div><div class="ttdef"><b>Definition:</b> <a href="AccessPath_8h_source.html#l00061">AccessPath.h:61</a></div></div>
1250
1241
  <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>
1251
1242
  <div class="ttc" id="aclassSVF_1_1SVFValue_html"><div class="ttname"><a href="classSVF_1_1SVFValue.html">SVF::SVFValue</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00177">SVFValue.h:177</a></div></div>