svf-tools 1.0.768 → 1.0.769

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 (308) hide show
  1. package/SVF-doxygen/html/html/AccessPath_8cpp_source.html +163 -130
  2. package/SVF-doxygen/html/html/AccessPath_8h_source.html +47 -45
  3. package/SVF-doxygen/html/html/ConsG_8cpp_source.html +8 -8
  4. package/SVF-doxygen/html/html/ContextDDA_8cpp_source.html +1 -1
  5. package/SVF-doxygen/html/html/DCHG_8cpp_source.html +1 -1
  6. package/SVF-doxygen/html/html/FlowDDA_8cpp_source.html +1 -1
  7. package/SVF-doxygen/html/html/FlowSensitive_8cpp_source.html +1 -1
  8. package/SVF-doxygen/html/html/ICFGEdge_8h_source.html +2 -2
  9. package/SVF-doxygen/html/html/ICFG_8cpp_source.html +2 -2
  10. package/SVF-doxygen/html/html/IRGraph_8cpp_source.html +2 -2
  11. package/SVF-doxygen/html/html/LLVMModule_8cpp_source.html +3 -3
  12. package/SVF-doxygen/html/html/LLVMUtil_8cpp_source.html +1 -1
  13. package/SVF-doxygen/html/html/LLVMUtil_8h.html +2 -0
  14. package/SVF-doxygen/html/html/LLVMUtil_8h_source.html +146 -126
  15. package/SVF-doxygen/html/html/PAGBuilderFromFile_8cpp_source.html +2 -2
  16. package/SVF-doxygen/html/html/SVFFileSystem_8cpp_source.html +11 -11
  17. package/SVF-doxygen/html/html/SVFFileSystem_8h_source.html +11 -11
  18. package/SVF-doxygen/html/html/SVFIR2ConsExeState_8cpp_source.html +55 -55
  19. package/SVF-doxygen/html/html/SVFIR2ConsExeState_8h_source.html +6 -6
  20. package/SVF-doxygen/html/html/SVFIR2ItvExeState_8cpp_source.html +830 -748
  21. package/SVF-doxygen/html/html/SVFIR2ItvExeState_8h_source.html +138 -127
  22. package/SVF-doxygen/html/html/SVFIR2Relation_8cpp_source.html +33 -33
  23. package/SVF-doxygen/html/html/SVFIRBuilder_8cpp_source.html +4 -4
  24. package/SVF-doxygen/html/html/SVFIRBuilder_8h_source.html +11 -11
  25. package/SVF-doxygen/html/html/SVFIRExtAPI_8cpp_source.html +1 -1
  26. package/SVF-doxygen/html/html/SVFIR_8cpp_source.html +14 -14
  27. package/SVF-doxygen/html/html/SVFIR_8h_source.html +11 -11
  28. package/SVF-doxygen/html/html/SVFStatements_8cpp_source.html +19 -19
  29. package/SVF-doxygen/html/html/SVFStatements_8h_source.html +806 -799
  30. package/SVF-doxygen/html/html/SaberCondAllocator_8cpp_source.html +7 -7
  31. package/SVF-doxygen/html/html/SaberCondAllocator_8h_source.html +2 -2
  32. package/SVF-doxygen/html/html/SymbolTableBuilder_8cpp_source.html +2 -2
  33. package/SVF-doxygen/html/html/VFGNode_8h_source.html +7 -7
  34. package/SVF-doxygen/html/html/VFG_8cpp_source.html +15 -15
  35. package/SVF-doxygen/html/html/VFG_8h_source.html +10 -10
  36. package/SVF-doxygen/html/html/classSVF_1_1AccessPath-members.html +27 -26
  37. package/SVF-doxygen/html/html/classSVF_1_1AccessPath.html +179 -124
  38. package/SVF-doxygen/html/html/classSVF_1_1BinaryOPStmt.html +68 -68
  39. package/SVF-doxygen/html/html/classSVF_1_1BranchStmt.html +51 -51
  40. package/SVF-doxygen/html/html/classSVF_1_1BranchVFGNode.html +3 -3
  41. package/SVF-doxygen/html/html/classSVF_1_1CallPE.html +35 -35
  42. package/SVF-doxygen/html/html/classSVF_1_1CmpStmt.html +97 -97
  43. package/SVF-doxygen/html/html/classSVF_1_1ConstraintGraph.html +8 -8
  44. package/SVF-doxygen/html/html/classSVF_1_1ContextDDA.html +1 -1
  45. package/SVF-doxygen/html/html/classSVF_1_1DCHGraph.html +1 -1
  46. package/SVF-doxygen/html/html/classSVF_1_1FlowDDA.html +1 -1
  47. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive.html +1 -1
  48. package/SVF-doxygen/html/html/classSVF_1_1GepStmt-members.html +96 -95
  49. package/SVF-doxygen/html/html/classSVF_1_1GepStmt.html +54 -19
  50. package/SVF-doxygen/html/html/classSVF_1_1ICFG.html +2 -2
  51. package/SVF-doxygen/html/html/classSVF_1_1LLVMModuleSet.html +3 -3
  52. package/SVF-doxygen/html/html/classSVF_1_1MultiOpndStmt.html +48 -48
  53. package/SVF-doxygen/html/html/classSVF_1_1PAGBuilderFromFile.html +2 -2
  54. package/SVF-doxygen/html/html/classSVF_1_1PhiStmt.html +46 -46
  55. package/SVF-doxygen/html/html/classSVF_1_1RetPE.html +35 -35
  56. package/SVF-doxygen/html/html/classSVF_1_1SVFIR.html +13 -13
  57. package/SVF-doxygen/html/html/classSVF_1_1SVFIR2ConsExeState.html +49 -49
  58. package/SVF-doxygen/html/html/classSVF_1_1SVFIR2ItvExeState-members.html +45 -42
  59. package/SVF-doxygen/html/html/classSVF_1_1SVFIR2ItvExeState.html +961 -779
  60. package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder.html +5 -5
  61. package/SVF-doxygen/html/html/classSVF_1_1SaberCondAllocator.html +7 -7
  62. package/SVF-doxygen/html/html/classSVF_1_1SelectStmt.html +38 -38
  63. package/SVF-doxygen/html/html/classSVF_1_1SymbolTableBuilder.html +2 -2
  64. package/SVF-doxygen/html/html/classSVF_1_1TDForkPE.html +22 -22
  65. package/SVF-doxygen/html/html/classSVF_1_1TDJoinPE.html +21 -21
  66. package/SVF-doxygen/html/html/classSVF_1_1UnaryOPStmt.html +44 -44
  67. package/SVF-doxygen/html/html/classSVF_1_1VFG.html +15 -15
  68. package/SVF-doxygen/html/html/functions_a.html +14 -11
  69. package/SVF-doxygen/html/html/functions_c.html +24 -21
  70. package/SVF-doxygen/html/html/functions_f.html +3 -3
  71. package/SVF-doxygen/html/html/functions_func.html +9 -6
  72. package/SVF-doxygen/html/html/functions_func_c.html +19 -16
  73. package/SVF-doxygen/html/html/functions_func_g.html +24 -15
  74. package/SVF-doxygen/html/html/functions_func_p.html +1 -1
  75. package/SVF-doxygen/html/html/functions_func_s.html +2 -2
  76. package/SVF-doxygen/html/html/functions_g.html +24 -15
  77. package/SVF-doxygen/html/html/functions_i.html +3 -3
  78. package/SVF-doxygen/html/html/functions_l.html +5 -5
  79. package/SVF-doxygen/html/html/functions_o.html +7 -7
  80. package/SVF-doxygen/html/html/functions_p.html +12 -12
  81. package/SVF-doxygen/html/html/functions_r.html +4 -2
  82. package/SVF-doxygen/html/html/functions_s.html +18 -18
  83. package/SVF-doxygen/html/html/functions_v.html +6 -6
  84. package/SVF-doxygen/html/html/functions_w.html +9 -9
  85. package/SVF-doxygen/html/html/namespaceSVF_1_1LLVMUtil.html +78 -31
  86. package/SVF-doxygen/html/html/namespacemembers_func_s.html +3 -0
  87. package/SVF-doxygen/html/html/namespacemembers_s.html +3 -0
  88. package/SVF-doxygen/html/html/search/all_1.js +459 -458
  89. package/SVF-doxygen/html/html/search/all_10.js +323 -323
  90. package/SVF-doxygen/html/html/search/all_11.js +212 -212
  91. package/SVF-doxygen/html/html/search/all_12.js +537 -536
  92. package/SVF-doxygen/html/html/search/all_13.js +188 -188
  93. package/SVF-doxygen/html/html/search/all_14.js +66 -66
  94. package/SVF-doxygen/html/html/search/all_15.js +170 -170
  95. package/SVF-doxygen/html/html/search/all_16.js +60 -60
  96. package/SVF-doxygen/html/html/search/all_17.js +1 -1
  97. package/SVF-doxygen/html/html/search/all_18.js +1 -1
  98. package/SVF-doxygen/html/html/search/all_19.js +10 -10
  99. package/SVF-doxygen/html/html/search/all_1a.js +169 -169
  100. package/SVF-doxygen/html/html/search/all_2.js +159 -159
  101. package/SVF-doxygen/html/html/search/all_3.js +627 -626
  102. package/SVF-doxygen/html/html/search/all_4.js +226 -226
  103. package/SVF-doxygen/html/html/search/all_5.js +117 -117
  104. package/SVF-doxygen/html/html/search/all_6.js +224 -224
  105. package/SVF-doxygen/html/html/search/all_7.js +1002 -999
  106. package/SVF-doxygen/html/html/search/all_8.js +191 -191
  107. package/SVF-doxygen/html/html/search/all_9.js +605 -605
  108. package/SVF-doxygen/html/html/search/all_a.js +46 -46
  109. package/SVF-doxygen/html/html/search/all_b.js +26 -26
  110. package/SVF-doxygen/html/html/search/all_c.js +114 -114
  111. package/SVF-doxygen/html/html/search/all_d.js +196 -196
  112. package/SVF-doxygen/html/html/search/all_e.js +205 -205
  113. package/SVF-doxygen/html/html/search/all_f.js +116 -116
  114. package/SVF-doxygen/html/html/search/classes_0.js +26 -26
  115. package/SVF-doxygen/html/html/search/classes_1.js +9 -9
  116. package/SVF-doxygen/html/html/search/classes_10.js +73 -73
  117. package/SVF-doxygen/html/html/search/classes_11.js +15 -15
  118. package/SVF-doxygen/html/html/search/classes_12.js +2 -2
  119. package/SVF-doxygen/html/html/search/classes_13.js +10 -10
  120. package/SVF-doxygen/html/html/search/classes_14.js +14 -14
  121. package/SVF-doxygen/html/html/search/classes_15.js +1 -1
  122. package/SVF-doxygen/html/html/search/classes_2.js +76 -76
  123. package/SVF-doxygen/html/html/search/classes_3.js +35 -35
  124. package/SVF-doxygen/html/html/search/classes_4.js +8 -8
  125. package/SVF-doxygen/html/html/search/classes_5.js +28 -28
  126. package/SVF-doxygen/html/html/search/classes_6.js +98 -98
  127. package/SVF-doxygen/html/html/search/classes_7.js +33 -33
  128. package/SVF-doxygen/html/html/search/classes_8.js +56 -56
  129. package/SVF-doxygen/html/html/search/classes_9.js +1 -1
  130. package/SVF-doxygen/html/html/search/classes_a.js +12 -12
  131. package/SVF-doxygen/html/html/search/classes_b.js +29 -29
  132. package/SVF-doxygen/html/html/search/classes_c.js +6 -6
  133. package/SVF-doxygen/html/html/search/classes_d.js +18 -18
  134. package/SVF-doxygen/html/html/search/classes_e.js +36 -36
  135. package/SVF-doxygen/html/html/search/classes_f.js +25 -25
  136. package/SVF-doxygen/html/html/search/defines_0.js +3 -3
  137. package/SVF-doxygen/html/html/search/defines_1.js +2 -2
  138. package/SVF-doxygen/html/html/search/defines_2.js +30 -30
  139. package/SVF-doxygen/html/html/search/defines_3.js +20 -20
  140. package/SVF-doxygen/html/html/search/defines_4.js +3 -3
  141. package/SVF-doxygen/html/html/search/defines_5.js +4 -4
  142. package/SVF-doxygen/html/html/search/defines_6.js +2 -2
  143. package/SVF-doxygen/html/html/search/defines_7.js +5 -5
  144. package/SVF-doxygen/html/html/search/defines_8.js +11 -11
  145. package/SVF-doxygen/html/html/search/defines_9.js +9 -9
  146. package/SVF-doxygen/html/html/search/defines_a.js +2 -2
  147. package/SVF-doxygen/html/html/search/defines_b.js +1 -1
  148. package/SVF-doxygen/html/html/search/defines_c.js +3 -3
  149. package/SVF-doxygen/html/html/search/defines_d.js +2 -2
  150. package/SVF-doxygen/html/html/search/defines_e.js +6 -6
  151. package/SVF-doxygen/html/html/search/defines_f.js +3 -3
  152. package/SVF-doxygen/html/html/search/enums_0.js +3 -3
  153. package/SVF-doxygen/html/html/search/enums_1.js +2 -2
  154. package/SVF-doxygen/html/html/search/enums_10.js +1 -1
  155. package/SVF-doxygen/html/html/search/enums_11.js +1 -1
  156. package/SVF-doxygen/html/html/search/enums_2.js +8 -8
  157. package/SVF-doxygen/html/html/search/enums_3.js +1 -1
  158. package/SVF-doxygen/html/html/search/enums_4.js +3 -3
  159. package/SVF-doxygen/html/html/search/enums_5.js +1 -1
  160. package/SVF-doxygen/html/html/search/enums_6.js +2 -2
  161. package/SVF-doxygen/html/html/search/enums_7.js +2 -2
  162. package/SVF-doxygen/html/html/search/enums_8.js +4 -4
  163. package/SVF-doxygen/html/html/search/enums_9.js +1 -1
  164. package/SVF-doxygen/html/html/search/enums_a.js +1 -1
  165. package/SVF-doxygen/html/html/search/enums_b.js +7 -7
  166. package/SVF-doxygen/html/html/search/enums_c.js +1 -1
  167. package/SVF-doxygen/html/html/search/enums_d.js +4 -4
  168. package/SVF-doxygen/html/html/search/enums_e.js +2 -2
  169. package/SVF-doxygen/html/html/search/enums_f.js +4 -4
  170. package/SVF-doxygen/html/html/search/enumvalues_0.js +14 -14
  171. package/SVF-doxygen/html/html/search/enumvalues_1.js +14 -14
  172. package/SVF-doxygen/html/html/search/enumvalues_10.js +35 -35
  173. package/SVF-doxygen/html/html/search/enumvalues_11.js +3 -3
  174. package/SVF-doxygen/html/html/search/enumvalues_12.js +10 -10
  175. package/SVF-doxygen/html/html/search/enumvalues_13.js +1 -1
  176. package/SVF-doxygen/html/html/search/enumvalues_14.js +1 -1
  177. package/SVF-doxygen/html/html/search/enumvalues_15.js +3 -3
  178. package/SVF-doxygen/html/html/search/enumvalues_2.js +36 -36
  179. package/SVF-doxygen/html/html/search/enumvalues_3.js +13 -13
  180. package/SVF-doxygen/html/html/search/enumvalues_4.js +2 -2
  181. package/SVF-doxygen/html/html/search/enumvalues_5.js +47 -47
  182. package/SVF-doxygen/html/html/search/enumvalues_6.js +6 -6
  183. package/SVF-doxygen/html/html/search/enumvalues_7.js +9 -9
  184. package/SVF-doxygen/html/html/search/enumvalues_8.js +23 -23
  185. package/SVF-doxygen/html/html/search/enumvalues_9.js +6 -6
  186. package/SVF-doxygen/html/html/search/enumvalues_a.js +15 -15
  187. package/SVF-doxygen/html/html/search/enumvalues_b.js +11 -11
  188. package/SVF-doxygen/html/html/search/enumvalues_c.js +5 -5
  189. package/SVF-doxygen/html/html/search/enumvalues_d.js +18 -18
  190. package/SVF-doxygen/html/html/search/enumvalues_e.js +9 -9
  191. package/SVF-doxygen/html/html/search/enumvalues_f.js +45 -45
  192. package/SVF-doxygen/html/html/search/files_0.js +13 -13
  193. package/SVF-doxygen/html/html/search/files_1.js +7 -7
  194. package/SVF-doxygen/html/html/search/files_10.js +8 -8
  195. package/SVF-doxygen/html/html/search/files_11.js +8 -8
  196. package/SVF-doxygen/html/html/search/files_12.js +2 -2
  197. package/SVF-doxygen/html/html/search/files_2.js +49 -49
  198. package/SVF-doxygen/html/html/search/files_3.js +14 -14
  199. package/SVF-doxygen/html/html/search/files_4.js +5 -5
  200. package/SVF-doxygen/html/html/search/files_5.js +13 -13
  201. package/SVF-doxygen/html/html/search/files_6.js +9 -9
  202. package/SVF-doxygen/html/html/search/files_7.js +14 -14
  203. package/SVF-doxygen/html/html/search/files_8.js +13 -13
  204. package/SVF-doxygen/html/html/search/files_9.js +18 -18
  205. package/SVF-doxygen/html/html/search/files_a.js +3 -3
  206. package/SVF-doxygen/html/html/search/files_b.js +2 -2
  207. package/SVF-doxygen/html/html/search/files_c.js +20 -20
  208. package/SVF-doxygen/html/html/search/files_d.js +4 -4
  209. package/SVF-doxygen/html/html/search/files_e.js +62 -62
  210. package/SVF-doxygen/html/html/search/files_f.js +8 -8
  211. package/SVF-doxygen/html/html/search/functions_0.js +6 -6
  212. package/SVF-doxygen/html/html/search/functions_1.js +349 -348
  213. package/SVF-doxygen/html/html/search/functions_10.js +139 -139
  214. package/SVF-doxygen/html/html/search/functions_11.js +126 -126
  215. package/SVF-doxygen/html/html/search/functions_12.js +274 -273
  216. package/SVF-doxygen/html/html/search/functions_13.js +56 -56
  217. package/SVF-doxygen/html/html/search/functions_14.js +38 -38
  218. package/SVF-doxygen/html/html/search/functions_15.js +71 -71
  219. package/SVF-doxygen/html/html/search/functions_16.js +29 -29
  220. package/SVF-doxygen/html/html/search/functions_17.js +2 -2
  221. package/SVF-doxygen/html/html/search/functions_18.js +169 -169
  222. package/SVF-doxygen/html/html/search/functions_2.js +82 -82
  223. package/SVF-doxygen/html/html/search/functions_3.js +252 -251
  224. package/SVF-doxygen/html/html/search/functions_4.js +71 -71
  225. package/SVF-doxygen/html/html/search/functions_5.js +51 -51
  226. package/SVF-doxygen/html/html/search/functions_6.js +58 -58
  227. package/SVF-doxygen/html/html/search/functions_7.js +822 -819
  228. package/SVF-doxygen/html/html/search/functions_8.js +143 -143
  229. package/SVF-doxygen/html/html/search/functions_9.js +425 -425
  230. package/SVF-doxygen/html/html/search/functions_a.js +30 -30
  231. package/SVF-doxygen/html/html/search/functions_b.js +2 -2
  232. package/SVF-doxygen/html/html/search/functions_c.js +24 -24
  233. package/SVF-doxygen/html/html/search/functions_d.js +77 -77
  234. package/SVF-doxygen/html/html/search/functions_e.js +34 -34
  235. package/SVF-doxygen/html/html/search/functions_f.js +56 -56
  236. package/SVF-doxygen/html/html/search/namespaces_0.js +1 -1
  237. package/SVF-doxygen/html/html/search/namespaces_1.js +7 -7
  238. package/SVF-doxygen/html/html/search/related_0.js +2 -2
  239. package/SVF-doxygen/html/html/search/related_1.js +1 -1
  240. package/SVF-doxygen/html/html/search/related_2.js +2 -2
  241. package/SVF-doxygen/html/html/search/related_3.js +2 -2
  242. package/SVF-doxygen/html/html/search/related_4.js +2 -2
  243. package/SVF-doxygen/html/html/search/related_5.js +1 -1
  244. package/SVF-doxygen/html/html/search/related_6.js +2 -2
  245. package/SVF-doxygen/html/html/search/related_7.js +4 -4
  246. package/SVF-doxygen/html/html/search/related_8.js +2 -2
  247. package/SVF-doxygen/html/html/search/related_9.js +4 -4
  248. package/SVF-doxygen/html/html/search/related_a.js +19 -19
  249. package/SVF-doxygen/html/html/search/related_b.js +4 -4
  250. package/SVF-doxygen/html/html/search/related_c.js +1 -1
  251. package/SVF-doxygen/html/html/search/related_d.js +11 -11
  252. package/SVF-doxygen/html/html/search/related_e.js +2 -2
  253. package/SVF-doxygen/html/html/search/related_f.js +2 -2
  254. package/SVF-doxygen/html/html/search/typedefs_0.js +18 -18
  255. package/SVF-doxygen/html/html/search/typedefs_1.js +25 -25
  256. package/SVF-doxygen/html/html/search/typedefs_10.js +60 -60
  257. package/SVF-doxygen/html/html/search/typedefs_11.js +13 -13
  258. package/SVF-doxygen/html/html/search/typedefs_12.js +11 -11
  259. package/SVF-doxygen/html/html/search/typedefs_13.js +35 -35
  260. package/SVF-doxygen/html/html/search/typedefs_14.js +8 -8
  261. package/SVF-doxygen/html/html/search/typedefs_2.js +126 -126
  262. package/SVF-doxygen/html/html/search/typedefs_3.js +39 -39
  263. package/SVF-doxygen/html/html/search/typedefs_4.js +16 -16
  264. package/SVF-doxygen/html/html/search/typedefs_5.js +41 -41
  265. package/SVF-doxygen/html/html/search/typedefs_6.js +52 -52
  266. package/SVF-doxygen/html/html/search/typedefs_7.js +40 -40
  267. package/SVF-doxygen/html/html/search/typedefs_8.js +1 -1
  268. package/SVF-doxygen/html/html/search/typedefs_9.js +6 -6
  269. package/SVF-doxygen/html/html/search/typedefs_a.js +29 -29
  270. package/SVF-doxygen/html/html/search/typedefs_b.js +29 -29
  271. package/SVF-doxygen/html/html/search/typedefs_c.js +40 -40
  272. package/SVF-doxygen/html/html/search/typedefs_d.js +15 -15
  273. package/SVF-doxygen/html/html/search/typedefs_e.js +52 -52
  274. package/SVF-doxygen/html/html/search/typedefs_f.js +14 -14
  275. package/SVF-doxygen/html/html/search/variables_0.js +147 -147
  276. package/SVF-doxygen/html/html/search/variables_1.js +75 -75
  277. package/SVF-doxygen/html/html/search/variables_10.js +97 -97
  278. package/SVF-doxygen/html/html/search/variables_11.js +46 -46
  279. package/SVF-doxygen/html/html/search/variables_12.js +92 -92
  280. package/SVF-doxygen/html/html/search/variables_13.js +75 -75
  281. package/SVF-doxygen/html/html/search/variables_14.js +14 -14
  282. package/SVF-doxygen/html/html/search/variables_15.js +48 -48
  283. package/SVF-doxygen/html/html/search/variables_16.js +9 -9
  284. package/SVF-doxygen/html/html/search/variables_17.js +1 -1
  285. package/SVF-doxygen/html/html/search/variables_18.js +2 -2
  286. package/SVF-doxygen/html/html/search/variables_2.js +34 -34
  287. package/SVF-doxygen/html/html/search/variables_3.js +141 -141
  288. package/SVF-doxygen/html/html/search/variables_4.js +55 -55
  289. package/SVF-doxygen/html/html/search/variables_5.js +38 -38
  290. package/SVF-doxygen/html/html/search/variables_6.js +66 -66
  291. package/SVF-doxygen/html/html/search/variables_7.js +33 -33
  292. package/SVF-doxygen/html/html/search/variables_8.js +7 -7
  293. package/SVF-doxygen/html/html/search/variables_9.js +77 -77
  294. package/SVF-doxygen/html/html/search/variables_a.js +4 -4
  295. package/SVF-doxygen/html/html/search/variables_b.js +10 -10
  296. package/SVF-doxygen/html/html/search/variables_c.js +45 -45
  297. package/SVF-doxygen/html/html/search/variables_d.js +56 -56
  298. package/SVF-doxygen/html/html/search/variables_e.js +123 -123
  299. package/SVF-doxygen/html/html/search/variables_f.js +30 -30
  300. package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01IRGraph_01_5_01_4.html +2 -2
  301. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1AccessPath_01_4.html +8 -8
  302. package/package.json +1 -1
  303. package/svf/include/AbstractExecution/SVFIR2ItvExeState.h +14 -0
  304. package/svf/include/MemoryModel/AccessPath.h +6 -0
  305. package/svf/include/SVFIR/SVFStatements.h +10 -0
  306. package/svf/lib/AbstractExecution/SVFIR2ItvExeState.cpp +154 -75
  307. package/svf/lib/MemoryModel/AccessPath.cpp +39 -0
  308. package/svf-llvm/include/SVF-LLVM/LLVMUtil.h +17 -0
@@ -149,130 +149,162 @@ $(function() {
149
149
  <div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; }</div>
150
150
  <div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;}</div>
151
151
  <div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; </div>
152
- <div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; </div>
153
- <div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;<span class="comment">// struct inner{ int rollNumber; float percentage;};</span></div>
154
- <div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;<span class="comment">// struct Student { struct inner rollNumber; char studentName[10][3];}</span></div>
155
- <div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;<span class="comment">// char x = studentRecord[1].studentName[3][2];</span></div>
156
- <div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; </div>
157
- <div class="line"><a name="l00118"></a><span class="lineno"><a class="line" href="classSVF_1_1AccessPath.html#ae746362c42da05a641ae062658e40651"> 118</a></span>&#160;<a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> <a class="code" href="classSVF_1_1AccessPath.html#ae746362c42da05a641ae062658e40651">AccessPath::computeConstantOffset</a>()<span class="keyword"> const</span></div>
158
- <div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;<span class="keyword"></span>{</div>
159
- <div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; </div>
160
- <div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; assert(isConstantOffset() &amp;&amp; <span class="stringliteral">&quot;not a constant offset&quot;</span>);</div>
161
- <div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; </div>
162
- <div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="keywordflow">if</span>(offsetVarAndGepTypePairs.empty())</div>
163
- <div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <span class="keywordflow">return</span> getConstantFieldIdx();</div>
164
- <div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; </div>
165
- <div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> totalConstOffset = 0;</div>
166
- <div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = offsetVarAndGepTypePairs.size() - 1; i &gt;= 0; i--)</div>
167
- <div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; {</div>
168
- <div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFValue.html">SVFValue</a>* value = offsetVarAndGepTypePairs[i].first-&gt;getValue();</div>
169
- <div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* <a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a> = offsetVarAndGepTypePairs[i].second;</div>
170
- <div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFConstantInt.html">SVFConstantInt</a>* op = SVFUtil::dyn_cast&lt;SVFConstantInt&gt;(value);</div>
171
- <div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; assert(op &amp;&amp; <span class="stringliteral">&quot;not a constant offset?&quot;</span>);</div>
172
- <div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>==<span class="keyword">nullptr</span>)</div>
173
- <div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; {</div>
174
- <div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; totalConstOffset += op-&gt;<a class="code" href="classSVF_1_1SVFConstantInt.html#a73f04bdfc19261b65164b98787bc2ed4">getSExtValue</a>();</div>
175
- <div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="keywordflow">continue</span>;</div>
176
- <div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; }</div>
177
- <div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; </div>
178
- <div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <span class="keywordflow">if</span>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFPointerType.html">SVFPointerType</a>* pty = SVFUtil::dyn_cast&lt;SVFPointerType&gt;(<a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>))</div>
179
- <div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; totalConstOffset += op-&gt;<a class="code" href="classSVF_1_1SVFConstantInt.html#a73f04bdfc19261b65164b98787bc2ed4">getSExtValue</a>() * getElementNum(pty-&gt;getPtrElementType());</div>
180
- <div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <span class="keywordflow">else</span></div>
181
- <div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; {</div>
182
- <div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> <a class="code" href="cJSON_8cpp.html#a95bf816579e97b6f33bdb5e25ed6d5de">offset</a> = op-&gt;<a class="code" href="classSVF_1_1SVFConstantInt.html#a73f04bdfc19261b65164b98787bc2ed4">getSExtValue</a>();</div>
183
- <div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="cJSON_8cpp.html#a95bf816579e97b6f33bdb5e25ed6d5de">offset</a> &gt;= 0)</div>
184
- <div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; {</div>
185
- <div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> flattenOffset =</div>
186
- <div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; <a class="code" href="classSVF_1_1SymbolTableInfo.html#a267169023fc4f8dd66b145f7231fec11">SymbolTableInfo::SymbolInfo</a>()-&gt;<a class="code" href="classSVF_1_1SymbolTableInfo.html#a24df52313f8093bb651ae9da972cd663">getFlattenedElemIdx</a>(<a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>,</div>
187
- <div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <a class="code" href="cJSON_8cpp.html#a95bf816579e97b6f33bdb5e25ed6d5de">offset</a>);</div>
188
- <div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; totalConstOffset += flattenOffset;</div>
189
- <div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; }</div>
190
- <div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <span class="keywordflow">else</span></div>
191
- <div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; totalConstOffset += <a class="code" href="cJSON_8cpp.html#a95bf816579e97b6f33bdb5e25ed6d5de">offset</a>;</div>
192
- <div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; }</div>
193
- <div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; }</div>
194
- <div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <span class="keywordflow">return</span> totalConstOffset;</div>
195
- <div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;}</div>
196
- <div class="line"><a name="l00160"></a><span class="lineno"><a class="line" href="classSVF_1_1AccessPath.html#a76222b6571e46e8a8bd5c8c597c8ffaf"> 160</a></span>&#160;<a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a> <a class="code" href="classSVF_1_1AccessPath.html#a76222b6571e46e8a8bd5c8c597c8ffaf">AccessPath::computeAllLocations</a>()<span class="keyword"> const</span></div>
197
- <div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;<span class="keyword"></span>{</div>
198
- <div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a> result;</div>
199
- <div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; result.<a class="code" href="classSVF_1_1SparseBitVector.html#a61bd86909a141f9de873d92c0f904832">set</a>(getConstantFieldIdx());</div>
200
- <div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <span class="keywordflow">return</span> result;</div>
201
- <div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;}</div>
202
- <div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; </div>
203
- <div class="line"><a name="l00167"></a><span class="lineno"><a class="line" href="classSVF_1_1AccessPath.html#a6591b6092a829b0c874754b649087aa2"> 167</a></span>&#160;<a class="code" href="classSVF_1_1AccessPath.html">AccessPath</a> <a class="code" href="classSVF_1_1AccessPath.html#a6591b6092a829b0c874754b649087aa2">AccessPath::operator+</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1AccessPath.html">AccessPath</a>&amp; rhs)<span class="keyword"> const</span></div>
204
- <div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;<span class="keyword"></span>{</div>
205
- <div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <a class="code" href="classSVF_1_1AccessPath.html">AccessPath</a> ap(rhs);</div>
206
- <div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; ap.<a class="code" href="classSVF_1_1AccessPath.html#aa1747064a0833855a5848ebf4a4d65fa">fldIdx</a> += getConstantFieldIdx();</div>
207
- <div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">auto</span> &amp;<a class="code" href="cJSON_8cpp.html#a009ef1d888ab6dbe77e6b42b0b39f1ae">p</a> : ap.<a class="code" href="classSVF_1_1AccessPath.html#ab0641554924d44f16c2831cac63ccf8b">getOffsetVarAndGepTypePairVec</a>())</div>
208
- <div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; ap.<a class="code" href="classSVF_1_1AccessPath.html#a2358a8194b5e2c4bcbb5218dee7fcbcd">addOffsetVarAndGepTypePair</a>(<a class="code" href="cJSON_8cpp.html#a009ef1d888ab6dbe77e6b42b0b39f1ae">p</a>.first, <a class="code" href="cJSON_8cpp.html#a009ef1d888ab6dbe77e6b42b0b39f1ae">p</a>.second);</div>
209
- <div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; </div>
210
- <div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <span class="keywordflow">return</span> ap;</div>
211
- <div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;}</div>
212
- <div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; </div>
213
- <div class="line"><a name="l00177"></a><span class="lineno"><a class="line" href="classSVF_1_1AccessPath.html#ae0f38a5f473af89678db2755667c3421"> 177</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1AccessPath.html#ae0f38a5f473af89678db2755667c3421">AccessPath::operator&lt; </a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1AccessPath.html">AccessPath</a>&amp; rhs)<span class="keyword"> const</span></div>
214
- <div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;<span class="keyword"></span>{</div>
215
- <div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <span class="keywordflow">if</span> (fldIdx != rhs.<a class="code" href="classSVF_1_1AccessPath.html#aa1747064a0833855a5848ebf4a4d65fa">fldIdx</a>)</div>
216
- <div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <span class="keywordflow">return</span> (fldIdx &lt; rhs.<a class="code" href="classSVF_1_1AccessPath.html#aa1747064a0833855a5848ebf4a4d65fa">fldIdx</a>);</div>
217
- <div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <span class="keywordflow">else</span></div>
218
- <div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; {</div>
219
- <div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1AccessPath.html#a73ba2fd20ff0e21a2f09a3396f2596f8">OffsetVarAndGepTypePairs</a>&amp; pairVec = getOffsetVarAndGepTypePairVec();</div>
220
- <div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1AccessPath.html#a73ba2fd20ff0e21a2f09a3396f2596f8">OffsetVarAndGepTypePairs</a>&amp; rhsPairVec = rhs.<a class="code" href="classSVF_1_1AccessPath.html#ab0641554924d44f16c2831cac63ccf8b">getOffsetVarAndGepTypePairVec</a>();</div>
221
- <div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; <span class="keywordflow">if</span> (pairVec.size() != rhsPairVec.size())</div>
222
- <div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; <span class="keywordflow">return</span> (pairVec.size() &lt; rhsPairVec.size());</div>
223
- <div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <span class="keywordflow">else</span></div>
224
- <div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; {</div>
225
- <div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; OffsetVarAndGepTypePairs::const_iterator it = pairVec.begin();</div>
226
- <div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; OffsetVarAndGepTypePairs::const_iterator rhsIt = rhsPairVec.begin();</div>
227
- <div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="keywordflow">for</span> (; it != pairVec.end() &amp;&amp; rhsIt != rhsPairVec.end(); ++it, ++rhsIt)</div>
228
- <div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; {</div>
229
- <div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <span class="keywordflow">return</span> (*it) &lt; (*rhsIt);</div>
230
- <div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; }</div>
231
- <div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; </div>
232
- <div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
233
- <div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; }</div>
234
- <div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; }</div>
235
- <div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160;}</div>
236
- <div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; </div>
237
- <div class="line"><a name="l00201"></a><span class="lineno"><a class="line" href="classSVF_1_1AccessPath.html#a98b8b3428479259fbafd9e527ecc09bb"> 201</a></span>&#160;<a class="code" href="classSVF_1_1AccessPath.html#aabb6c9600fac408f36b9fde013597245">SVF::AccessPath::LSRelation</a> <a class="code" href="classSVF_1_1AccessPath.html#a98b8b3428479259fbafd9e527ecc09bb">AccessPath::checkRelation</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1AccessPath.html">AccessPath</a>&amp; LHS, <span class="keyword">const</span> <a class="code" href="classSVF_1_1AccessPath.html">AccessPath</a>&amp; RHS)</div>
238
- <div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160;{</div>
239
- <div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a> lhsLocations = LHS.<a class="code" href="classSVF_1_1AccessPath.html#a76222b6571e46e8a8bd5c8c597c8ffaf">computeAllLocations</a>();</div>
240
- <div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a> rhsLocations = RHS.<a class="code" href="classSVF_1_1AccessPath.html#a76222b6571e46e8a8bd5c8c597c8ffaf">computeAllLocations</a>();</div>
241
- <div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <span class="keywordflow">if</span> (lhsLocations.<a class="code" href="classSVF_1_1SparseBitVector.html#a16756e0545fd3d50ab89f45a2e83bb79">intersects</a>(rhsLocations))</div>
242
- <div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; {</div>
243
- <div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <span class="keywordflow">if</span> (lhsLocations == rhsLocations)</div>
244
- <div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; <span class="keywordflow">return</span> Same;</div>
245
- <div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (lhsLocations.<a class="code" href="classSVF_1_1SparseBitVector.html#abbd0e0cf759fad7858224ed8a63aade8">contains</a>(rhsLocations))</div>
246
- <div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; <span class="keywordflow">return</span> Superset;</div>
247
- <div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (rhsLocations.<a class="code" href="classSVF_1_1SparseBitVector.html#abbd0e0cf759fad7858224ed8a63aade8">contains</a>(lhsLocations))</div>
248
- <div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <span class="keywordflow">return</span> Subset;</div>
249
- <div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; <span class="keywordflow">else</span></div>
250
- <div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; <span class="keywordflow">return</span> Overlap;</div>
251
- <div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; }</div>
252
- <div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; <span class="keywordflow">else</span></div>
253
- <div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; {</div>
254
- <div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; <span class="keywordflow">return</span> NonOverlap;</div>
255
- <div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; }</div>
256
- <div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160;}</div>
257
- <div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; </div>
258
- <div class="line"><a name="l00223"></a><span class="lineno"><a class="line" href="classSVF_1_1AccessPath.html#a4519477605a58d5821d05951a88abcd0"> 223</a></span>&#160;<a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="classSVF_1_1AccessPath.html#a4519477605a58d5821d05951a88abcd0">AccessPath::dump</a>()<span class="keyword"> const</span></div>
259
- <div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160;<span class="keyword"></span>{</div>
260
- <div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> str;</div>
261
- <div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; std::stringstream rawstr(str);</div>
262
- <div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; </div>
263
- <div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot;AccessPath\tField_Index: &quot;</span> &lt;&lt; getConstantFieldIdx();</div>
264
- <div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot;,\tNum-Stride: {&quot;</span>;</div>
265
- <div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1AccessPath.html#a73ba2fd20ff0e21a2f09a3396f2596f8">OffsetVarAndGepTypePairs</a>&amp; vec = getOffsetVarAndGepTypePairVec();</div>
266
- <div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; OffsetVarAndGepTypePairs::const_iterator it = vec.begin();</div>
267
- <div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; OffsetVarAndGepTypePairs::const_iterator eit = vec.end();</div>
268
- <div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; <span class="keywordflow">for</span> (; it != eit; ++it)</div>
269
- <div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; {</div>
270
- <div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* ty = it-&gt;second;</div>
271
- <div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot; (Svf var: &quot;</span> &lt;&lt; it-&gt;first-&gt;<a class="code" href="classSVF_1_1SVFType.html#a9035ac13134de4647d63507cd80ca3d6">toString</a>() &lt;&lt; <span class="stringliteral">&quot;, Iter type: &quot;</span> &lt;&lt; *ty &lt;&lt; <span class="stringliteral">&quot;)&quot;</span>;</div>
152
+ <div class="line"><a name="l00097"></a><span class="lineno"><a class="line" href="classSVF_1_1AccessPath.html#afca303a7a5bde9a8ef56ae728d414553"> 97</a></span>&#160;<a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> <a class="code" href="classSVF_1_1AccessPath.html#afca303a7a5bde9a8ef56ae728d414553">AccessPath::computeConstantByteOffset</a>(<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> elemBytesize)<span class="keyword"> const</span></div>
153
+ <div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;<span class="keyword"></span>{</div>
154
+ <div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; assert(isConstantOffset() &amp;&amp; <span class="stringliteral">&quot;not a constant offset&quot;</span>);</div>
155
+ <div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; </div>
156
+ <div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keywordflow">if</span>(offsetVarAndGepTypePairs.empty())</div>
157
+ <div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <span class="keywordflow">return</span> getConstantFieldIdx() * elemBytesize;</div>
158
+ <div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; </div>
159
+ <div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> totalConstOffset = 0;</div>
160
+ <div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = offsetVarAndGepTypePairs.size() - 1; i &gt;= 0; i--)</div>
161
+ <div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; {</div>
162
+ <div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFValue.html">SVFValue</a>* value = offsetVarAndGepTypePairs[i].first-&gt;getValue();</div>
163
+ <div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* <a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a> = offsetVarAndGepTypePairs[i].second;</div>
164
+ <div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFConstantInt.html">SVFConstantInt</a>* op = SVFUtil::dyn_cast&lt;SVFConstantInt&gt;(value);</div>
165
+ <div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; assert(op &amp;&amp; <span class="stringliteral">&quot;not a constant offset?&quot;</span>);</div>
166
+ <div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>==<span class="keyword">nullptr</span>)</div>
167
+ <div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; {</div>
168
+ <div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; totalConstOffset += op-&gt;<a class="code" href="classSVF_1_1SVFConstantInt.html#a73f04bdfc19261b65164b98787bc2ed4">getSExtValue</a>() * elemBytesize;</div>
169
+ <div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="keywordflow">continue</span>;</div>
170
+ <div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; }</div>
171
+ <div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; </div>
172
+ <div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="keywordflow">if</span>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFPointerType.html">SVFPointerType</a>* pty = SVFUtil::dyn_cast&lt;SVFPointerType&gt;(<a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>))</div>
173
+ <div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; totalConstOffset += op-&gt;<a class="code" href="classSVF_1_1SVFConstantInt.html#a73f04bdfc19261b65164b98787bc2ed4">getSExtValue</a>() * getElementNum(pty-&gt;getPtrElementType()) * elemBytesize;</div>
174
+ <div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <span class="keywordflow">else</span></div>
175
+ <div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; {</div>
176
+ <div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> <a class="code" href="cJSON_8cpp.html#a95bf816579e97b6f33bdb5e25ed6d5de">offset</a> = op-&gt;<a class="code" href="classSVF_1_1SVFConstantInt.html#a73f04bdfc19261b65164b98787bc2ed4">getSExtValue</a>();</div>
177
+ <div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="comment">// if getByteOffset is false, it will retrieve flatten idx</span></div>
178
+ <div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; totalConstOffset += <a class="code" href="cJSON_8cpp.html#a95bf816579e97b6f33bdb5e25ed6d5de">offset</a> * elemBytesize;</div>
179
+ <div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; }</div>
180
+ <div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; }</div>
181
+ <div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <span class="keywordflow">return</span> totalConstOffset;</div>
182
+ <div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;}</div>
183
+ <div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; </div>
184
+ <div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; </div>
185
+ <div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;<span class="comment">// struct inner{ int rollNumber; float percentage;};</span></div>
186
+ <div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;<span class="comment">// struct Student { struct inner rollNumber; char studentName[10][3];}</span></div>
187
+ <div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;<span class="comment">// char x = studentRecord[1].studentName[3][2];</span></div>
188
+ <div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; </div>
189
+ <div class="line"><a name="l00157"></a><span class="lineno"><a class="line" href="classSVF_1_1AccessPath.html#ae746362c42da05a641ae062658e40651"> 157</a></span>&#160;<a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> <a class="code" href="classSVF_1_1AccessPath.html#ae746362c42da05a641ae062658e40651">AccessPath::computeConstantOffset</a>()<span class="keyword"> const</span></div>
190
+ <div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;<span class="keyword"></span>{</div>
191
+ <div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; </div>
192
+ <div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; assert(isConstantOffset() &amp;&amp; <span class="stringliteral">&quot;not a constant offset&quot;</span>);</div>
193
+ <div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; </div>
194
+ <div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <span class="keywordflow">if</span>(offsetVarAndGepTypePairs.empty())</div>
195
+ <div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="keywordflow">return</span> getConstantFieldIdx();</div>
196
+ <div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; </div>
197
+ <div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; <a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> totalConstOffset = 0;</div>
198
+ <div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = offsetVarAndGepTypePairs.size() - 1; i &gt;= 0; i--)</div>
199
+ <div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; {</div>
200
+ <div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFValue.html">SVFValue</a>* value = offsetVarAndGepTypePairs[i].first-&gt;getValue();</div>
201
+ <div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* <a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a> = offsetVarAndGepTypePairs[i].second;</div>
202
+ <div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFConstantInt.html">SVFConstantInt</a>* op = SVFUtil::dyn_cast&lt;SVFConstantInt&gt;(value);</div>
203
+ <div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; assert(op &amp;&amp; <span class="stringliteral">&quot;not a constant offset?&quot;</span>);</div>
204
+ <div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>==<span class="keyword">nullptr</span>)</div>
205
+ <div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; {</div>
206
+ <div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; totalConstOffset += op-&gt;<a class="code" href="classSVF_1_1SVFConstantInt.html#a73f04bdfc19261b65164b98787bc2ed4">getSExtValue</a>();</div>
207
+ <div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <span class="keywordflow">continue</span>;</div>
208
+ <div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; }</div>
209
+ <div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; </div>
210
+ <div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; <span class="keywordflow">if</span>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFPointerType.html">SVFPointerType</a>* pty = SVFUtil::dyn_cast&lt;SVFPointerType&gt;(<a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>))</div>
211
+ <div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; totalConstOffset += op-&gt;<a class="code" href="classSVF_1_1SVFConstantInt.html#a73f04bdfc19261b65164b98787bc2ed4">getSExtValue</a>() * getElementNum(pty-&gt;getPtrElementType());</div>
212
+ <div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <span class="keywordflow">else</span></div>
213
+ <div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; {</div>
214
+ <div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> <a class="code" href="cJSON_8cpp.html#a95bf816579e97b6f33bdb5e25ed6d5de">offset</a> = op-&gt;<a class="code" href="classSVF_1_1SVFConstantInt.html#a73f04bdfc19261b65164b98787bc2ed4">getSExtValue</a>();</div>
215
+ <div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="cJSON_8cpp.html#a95bf816579e97b6f33bdb5e25ed6d5de">offset</a> &gt;= 0)</div>
216
+ <div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; {</div>
217
+ <div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> flattenOffset =</div>
218
+ <div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; <a class="code" href="classSVF_1_1SymbolTableInfo.html#a267169023fc4f8dd66b145f7231fec11">SymbolTableInfo::SymbolInfo</a>()-&gt;<a class="code" href="classSVF_1_1SymbolTableInfo.html#a24df52313f8093bb651ae9da972cd663">getFlattenedElemIdx</a>(<a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>,</div>
219
+ <div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <a class="code" href="cJSON_8cpp.html#a95bf816579e97b6f33bdb5e25ed6d5de">offset</a>);</div>
220
+ <div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; totalConstOffset += flattenOffset;</div>
221
+ <div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; }</div>
222
+ <div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; <span class="keywordflow">else</span></div>
223
+ <div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; totalConstOffset += <a class="code" href="cJSON_8cpp.html#a95bf816579e97b6f33bdb5e25ed6d5de">offset</a>;</div>
224
+ <div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; }</div>
225
+ <div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; }</div>
226
+ <div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; <span class="keywordflow">return</span> totalConstOffset;</div>
227
+ <div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;}</div>
228
+ <div class="line"><a name="l00199"></a><span class="lineno"><a class="line" href="classSVF_1_1AccessPath.html#a76222b6571e46e8a8bd5c8c597c8ffaf"> 199</a></span>&#160;<a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a> <a class="code" href="classSVF_1_1AccessPath.html#a76222b6571e46e8a8bd5c8c597c8ffaf">AccessPath::computeAllLocations</a>()<span class="keyword"> const</span></div>
229
+ <div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;<span class="keyword"></span>{</div>
230
+ <div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a> result;</div>
231
+ <div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; result.<a class="code" href="classSVF_1_1SparseBitVector.html#a61bd86909a141f9de873d92c0f904832">set</a>(getConstantFieldIdx());</div>
232
+ <div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; <span class="keywordflow">return</span> result;</div>
233
+ <div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;}</div>
234
+ <div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; </div>
235
+ <div class="line"><a name="l00206"></a><span class="lineno"><a class="line" href="classSVF_1_1AccessPath.html#a6591b6092a829b0c874754b649087aa2"> 206</a></span>&#160;<a class="code" href="classSVF_1_1AccessPath.html">AccessPath</a> <a class="code" href="classSVF_1_1AccessPath.html#a6591b6092a829b0c874754b649087aa2">AccessPath::operator+</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1AccessPath.html">AccessPath</a>&amp; rhs)<span class="keyword"> const</span></div>
236
+ <div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160;<span class="keyword"></span>{</div>
237
+ <div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; <a class="code" href="classSVF_1_1AccessPath.html">AccessPath</a> ap(rhs);</div>
238
+ <div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; ap.<a class="code" href="classSVF_1_1AccessPath.html#aa1747064a0833855a5848ebf4a4d65fa">fldIdx</a> += getConstantFieldIdx();</div>
239
+ <div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">auto</span> &amp;<a class="code" href="cJSON_8cpp.html#a009ef1d888ab6dbe77e6b42b0b39f1ae">p</a> : ap.<a class="code" href="classSVF_1_1AccessPath.html#ab0641554924d44f16c2831cac63ccf8b">getOffsetVarAndGepTypePairVec</a>())</div>
240
+ <div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; ap.<a class="code" href="classSVF_1_1AccessPath.html#a2358a8194b5e2c4bcbb5218dee7fcbcd">addOffsetVarAndGepTypePair</a>(<a class="code" href="cJSON_8cpp.html#a009ef1d888ab6dbe77e6b42b0b39f1ae">p</a>.first, <a class="code" href="cJSON_8cpp.html#a009ef1d888ab6dbe77e6b42b0b39f1ae">p</a>.second);</div>
241
+ <div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; </div>
242
+ <div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; <span class="keywordflow">return</span> ap;</div>
243
+ <div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160;}</div>
244
+ <div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; </div>
245
+ <div class="line"><a name="l00216"></a><span class="lineno"><a class="line" href="classSVF_1_1AccessPath.html#ae0f38a5f473af89678db2755667c3421"> 216</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1AccessPath.html#ae0f38a5f473af89678db2755667c3421">AccessPath::operator&lt; </a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1AccessPath.html">AccessPath</a>&amp; rhs)<span class="keyword"> const</span></div>
246
+ <div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160;<span class="keyword"></span>{</div>
247
+ <div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; <span class="keywordflow">if</span> (fldIdx != rhs.<a class="code" href="classSVF_1_1AccessPath.html#aa1747064a0833855a5848ebf4a4d65fa">fldIdx</a>)</div>
248
+ <div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; <span class="keywordflow">return</span> (fldIdx &lt; rhs.<a class="code" href="classSVF_1_1AccessPath.html#aa1747064a0833855a5848ebf4a4d65fa">fldIdx</a>);</div>
249
+ <div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; <span class="keywordflow">else</span></div>
250
+ <div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; {</div>
251
+ <div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1AccessPath.html#a73ba2fd20ff0e21a2f09a3396f2596f8">OffsetVarAndGepTypePairs</a>&amp; pairVec = getOffsetVarAndGepTypePairVec();</div>
252
+ <div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1AccessPath.html#a73ba2fd20ff0e21a2f09a3396f2596f8">OffsetVarAndGepTypePairs</a>&amp; rhsPairVec = rhs.<a class="code" href="classSVF_1_1AccessPath.html#ab0641554924d44f16c2831cac63ccf8b">getOffsetVarAndGepTypePairVec</a>();</div>
253
+ <div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; <span class="keywordflow">if</span> (pairVec.size() != rhsPairVec.size())</div>
254
+ <div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; <span class="keywordflow">return</span> (pairVec.size() &lt; rhsPairVec.size());</div>
255
+ <div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; <span class="keywordflow">else</span></div>
256
+ <div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; {</div>
257
+ <div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; OffsetVarAndGepTypePairs::const_iterator it = pairVec.begin();</div>
258
+ <div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; OffsetVarAndGepTypePairs::const_iterator rhsIt = rhsPairVec.begin();</div>
259
+ <div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; <span class="keywordflow">for</span> (; it != pairVec.end() &amp;&amp; rhsIt != rhsPairVec.end(); ++it, ++rhsIt)</div>
260
+ <div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; {</div>
261
+ <div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; <span class="keywordflow">return</span> (*it) &lt; (*rhsIt);</div>
262
+ <div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; }</div>
263
+ <div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; </div>
264
+ <div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
265
+ <div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; }</div>
272
266
  <div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; }</div>
273
- <div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot; }\n&quot;</span>;</div>
274
- <div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; <span class="keywordflow">return</span> rawstr.str();</div>
275
- <div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160;}</div>
267
+ <div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160;}</div>
268
+ <div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; </div>
269
+ <div class="line"><a name="l00240"></a><span class="lineno"><a class="line" href="classSVF_1_1AccessPath.html#a98b8b3428479259fbafd9e527ecc09bb"> 240</a></span>&#160;<a class="code" href="classSVF_1_1AccessPath.html#aabb6c9600fac408f36b9fde013597245">SVF::AccessPath::LSRelation</a> <a class="code" href="classSVF_1_1AccessPath.html#a98b8b3428479259fbafd9e527ecc09bb">AccessPath::checkRelation</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1AccessPath.html">AccessPath</a>&amp; LHS, <span class="keyword">const</span> <a class="code" href="classSVF_1_1AccessPath.html">AccessPath</a>&amp; RHS)</div>
270
+ <div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160;{</div>
271
+ <div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a> lhsLocations = LHS.<a class="code" href="classSVF_1_1AccessPath.html#a76222b6571e46e8a8bd5c8c597c8ffaf">computeAllLocations</a>();</div>
272
+ <div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a> rhsLocations = RHS.<a class="code" href="classSVF_1_1AccessPath.html#a76222b6571e46e8a8bd5c8c597c8ffaf">computeAllLocations</a>();</div>
273
+ <div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; <span class="keywordflow">if</span> (lhsLocations.<a class="code" href="classSVF_1_1SparseBitVector.html#a16756e0545fd3d50ab89f45a2e83bb79">intersects</a>(rhsLocations))</div>
274
+ <div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; {</div>
275
+ <div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; <span class="keywordflow">if</span> (lhsLocations == rhsLocations)</div>
276
+ <div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; <span class="keywordflow">return</span> Same;</div>
277
+ <div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (lhsLocations.<a class="code" href="classSVF_1_1SparseBitVector.html#abbd0e0cf759fad7858224ed8a63aade8">contains</a>(rhsLocations))</div>
278
+ <div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; <span class="keywordflow">return</span> Superset;</div>
279
+ <div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (rhsLocations.<a class="code" href="classSVF_1_1SparseBitVector.html#abbd0e0cf759fad7858224ed8a63aade8">contains</a>(lhsLocations))</div>
280
+ <div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; <span class="keywordflow">return</span> Subset;</div>
281
+ <div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; <span class="keywordflow">else</span></div>
282
+ <div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; <span class="keywordflow">return</span> Overlap;</div>
283
+ <div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; }</div>
284
+ <div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; <span class="keywordflow">else</span></div>
285
+ <div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; {</div>
286
+ <div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; <span class="keywordflow">return</span> NonOverlap;</div>
287
+ <div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; }</div>
288
+ <div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160;}</div>
289
+ <div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; </div>
290
+ <div class="line"><a name="l00262"></a><span class="lineno"><a class="line" href="classSVF_1_1AccessPath.html#a4519477605a58d5821d05951a88abcd0"> 262</a></span>&#160;<a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="classSVF_1_1AccessPath.html#a4519477605a58d5821d05951a88abcd0">AccessPath::dump</a>()<span class="keyword"> const</span></div>
291
+ <div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160;<span class="keyword"></span>{</div>
292
+ <div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> str;</div>
293
+ <div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; std::stringstream rawstr(str);</div>
294
+ <div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; </div>
295
+ <div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot;AccessPath\tField_Index: &quot;</span> &lt;&lt; getConstantFieldIdx();</div>
296
+ <div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot;,\tNum-Stride: {&quot;</span>;</div>
297
+ <div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1AccessPath.html#a73ba2fd20ff0e21a2f09a3396f2596f8">OffsetVarAndGepTypePairs</a>&amp; vec = getOffsetVarAndGepTypePairVec();</div>
298
+ <div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; OffsetVarAndGepTypePairs::const_iterator it = vec.begin();</div>
299
+ <div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; OffsetVarAndGepTypePairs::const_iterator eit = vec.end();</div>
300
+ <div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; <span class="keywordflow">for</span> (; it != eit; ++it)</div>
301
+ <div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; {</div>
302
+ <div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* ty = it-&gt;second;</div>
303
+ <div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot; (Svf var: &quot;</span> &lt;&lt; it-&gt;first-&gt;<a class="code" href="classSVF_1_1SVFType.html#a9035ac13134de4647d63507cd80ca3d6">toString</a>() &lt;&lt; <span class="stringliteral">&quot;, Iter type: &quot;</span> &lt;&lt; *ty &lt;&lt; <span class="stringliteral">&quot;)&quot;</span>;</div>
304
+ <div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; }</div>
305
+ <div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot; }\n&quot;</span>;</div>
306
+ <div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; <span class="keywordflow">return</span> rawstr.str();</div>
307
+ <div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160;}</div>
276
308
  </div><!-- fragment --></div><!-- contents -->
277
309
  <div class="ttc" id="anamespaceSVF_html_a5c4820681ef340339ddded756eb82ae1"><div class="ttname"><a href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">SVF::APOffset</a></div><div class="ttdeci">s64_t APOffset</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00061">SVFType.h:61</a></div></div>
278
310
  <div class="ttc" id="aclassSVF_1_1SparseBitVector_html_a16756e0545fd3d50ab89f45a2e83bb79"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#a16756e0545fd3d50ab89f45a2e83bb79">SVF::SparseBitVector::intersects</a></div><div class="ttdeci">bool intersects(const SparseBitVector&lt; ElementSize &gt; *RHS) const</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l01031">SparseBitVector.h:1031</a></div></div>
@@ -282,33 +314,34 @@ $(function() {
282
314
  <div class="ttc" id="aclassSVF_1_1SVFPointerType_html"><div class="ttname"><a href="classSVF_1_1SVFPointerType.html">SVF::SVFPointerType</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00332">SVFType.h:332</a></div></div>
283
315
  <div class="ttc" id="anamespaceSVF_html"><div class="ttname"><a href="namespaceSVF.html">SVF</a></div><div class="ttdoc">for isBitcode</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00065">BasicTypes.h:65</a></div></div>
284
316
  <div class="ttc" id="aclassSVF_1_1SparseBitVector_html_a61bd86909a141f9de873d92c0f904832"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#a61bd86909a141f9de873d92c0f904832">SVF::SparseBitVector::set</a></div><div class="ttdeci">void set(unsigned Idx)</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00747">SparseBitVector.h:747</a></div></div>
317
+ <div class="ttc" id="aclassSVF_1_1AccessPath_html_afca303a7a5bde9a8ef56ae728d414553"><div class="ttname"><a href="classSVF_1_1AccessPath.html#afca303a7a5bde9a8ef56ae728d414553">SVF::AccessPath::computeConstantByteOffset</a></div><div class="ttdeci">APOffset computeConstantByteOffset(u32_t elemBytesize) const</div><div class="ttdef"><b>Definition:</b> <a href="AccessPath_8cpp_source.html#l00097">AccessPath.cpp:97</a></div></div>
285
318
  <div class="ttc" id="aAccessPath_8h_html"><div class="ttname"><a href="AccessPath_8h.html">AccessPath.h</a></div></div>
286
- <div class="ttc" id="aclassSVF_1_1AccessPath_html_ae0f38a5f473af89678db2755667c3421"><div class="ttname"><a href="classSVF_1_1AccessPath.html#ae0f38a5f473af89678db2755667c3421">SVF::AccessPath::operator&lt;</a></div><div class="ttdeci">bool operator&lt;(const AccessPath &amp;rhs) const</div><div class="ttdef"><b>Definition:</b> <a href="AccessPath_8cpp_source.html#l00177">AccessPath.cpp:177</a></div></div>
319
+ <div class="ttc" id="aclassSVF_1_1AccessPath_html_ae0f38a5f473af89678db2755667c3421"><div class="ttname"><a href="classSVF_1_1AccessPath.html#ae0f38a5f473af89678db2755667c3421">SVF::AccessPath::operator&lt;</a></div><div class="ttdeci">bool operator&lt;(const AccessPath &amp;rhs) const</div><div class="ttdef"><b>Definition:</b> <a href="AccessPath_8cpp_source.html#l00216">AccessPath.cpp:216</a></div></div>
287
320
  <div class="ttc" id="aclassSVF_1_1AccessPath_html_a2358a8194b5e2c4bcbb5218dee7fcbcd"><div class="ttname"><a href="classSVF_1_1AccessPath.html#a2358a8194b5e2c4bcbb5218dee7fcbcd">SVF::AccessPath::addOffsetVarAndGepTypePair</a></div><div class="ttdeci">bool addOffsetVarAndGepTypePair(const SVFVar *var, const SVFType *gepIterType)</div><div class="ttdef"><b>Definition:</b> <a href="AccessPath_8cpp_source.html#l00042">AccessPath.cpp:42</a></div></div>
288
321
  <div class="ttc" id="aclassSVF_1_1SparseBitVector_html"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html">SVF::SparseBitVector</a></div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00459">SparseBitVector.h:459</a></div></div>
289
- <div class="ttc" id="aclassSVF_1_1AccessPath_html_a76222b6571e46e8a8bd5c8c597c8ffaf"><div class="ttname"><a href="classSVF_1_1AccessPath.html#a76222b6571e46e8a8bd5c8c597c8ffaf">SVF::AccessPath::computeAllLocations</a></div><div class="ttdeci">NodeBS computeAllLocations() const</div><div class="ttdoc">Compute all possible locations according to offset and number-stride pairs.</div><div class="ttdef"><b>Definition:</b> <a href="AccessPath_8cpp_source.html#l00160">AccessPath.cpp:160</a></div></div>
322
+ <div class="ttc" id="aclassSVF_1_1AccessPath_html_a76222b6571e46e8a8bd5c8c597c8ffaf"><div class="ttname"><a href="classSVF_1_1AccessPath.html#a76222b6571e46e8a8bd5c8c597c8ffaf">SVF::AccessPath::computeAllLocations</a></div><div class="ttdeci">NodeBS computeAllLocations() const</div><div class="ttdoc">Compute all possible locations according to offset and number-stride pairs.</div><div class="ttdef"><b>Definition:</b> <a href="AccessPath_8cpp_source.html#l00199">AccessPath.cpp:199</a></div></div>
290
323
  <div class="ttc" id="aclassSVF_1_1AccessPath_html_a3c98f0c5f07109f9da0a8a897aa51d18"><div class="ttname"><a href="classSVF_1_1AccessPath.html#a3c98f0c5f07109f9da0a8a897aa51d18">SVF::AccessPath::getElementNum</a></div><div class="ttdeci">u32_t getElementNum(const SVFType *type) const</div><div class="ttdoc">Return element number of a type.</div><div class="ttdef"><b>Definition:</b> <a href="AccessPath_8cpp_source.html#l00063">AccessPath.cpp:63</a></div></div>
291
324
  <div class="ttc" id="aSVFUtil_8h_html"><div class="ttname"><a href="SVFUtil_8h.html">SVFUtil.h</a></div></div>
292
325
  <div class="ttc" id="aOptions_8h_html"><div class="ttname"><a href="Options_8h.html">Options.h</a></div></div>
293
326
  <div class="ttc" id="aclassSVF_1_1SymbolTableInfo_html_a24df52313f8093bb651ae9da972cd663"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#a24df52313f8093bb651ae9da972cd663">SVF::SymbolTableInfo::getFlattenedElemIdx</a></div><div class="ttdeci">u32_t getFlattenedElemIdx(const SVFType *T, u32_t origId)</div><div class="ttdoc">Flattened element idx of an array or struct by considering stride.</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00181">SymbolTableInfo.cpp:181</a></div></div>
294
- <div class="ttc" id="aclassSVF_1_1AccessPath_html_a98b8b3428479259fbafd9e527ecc09bb"><div class="ttname"><a href="classSVF_1_1AccessPath.html#a98b8b3428479259fbafd9e527ecc09bb">SVF::AccessPath::checkRelation</a></div><div class="ttdeci">LSRelation checkRelation(const AccessPath &amp;LHS, const AccessPath &amp;RHS)</div><div class="ttdoc">Check relations of two location sets.</div><div class="ttdef"><b>Definition:</b> <a href="AccessPath_8cpp_source.html#l00201">AccessPath.cpp:201</a></div></div>
327
+ <div class="ttc" id="aclassSVF_1_1AccessPath_html_a98b8b3428479259fbafd9e527ecc09bb"><div class="ttname"><a href="classSVF_1_1AccessPath.html#a98b8b3428479259fbafd9e527ecc09bb">SVF::AccessPath::checkRelation</a></div><div class="ttdeci">LSRelation checkRelation(const AccessPath &amp;LHS, const AccessPath &amp;RHS)</div><div class="ttdoc">Check relations of two location sets.</div><div class="ttdef"><b>Definition:</b> <a href="AccessPath_8cpp_source.html#l00240">AccessPath.cpp:240</a></div></div>
295
328
  <div class="ttc" id="aclassSVF_1_1SVFValue_html"><div class="ttname"><a href="classSVF_1_1SVFValue.html">SVF::SVFValue</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00150">SVFValue.h:150</a></div></div>
296
329
  <div class="ttc" id="acJSON_8h_html_ad4c68ea99a26b0a98ad9a79982960458"><div class="ttname"><a href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">string</a></div><div class="ttdeci">const char *const string</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8h_source.html#l00172">cJSON.h:172</a></div></div>
297
330
  <div class="ttc" id="aclassSVF_1_1AccessPath_html"><div class="ttname"><a href="classSVF_1_1AccessPath.html">SVF::AccessPath</a></div><div class="ttdef"><b>Definition:</b> <a href="AccessPath_8h_source.html#l00052">AccessPath.h:52</a></div></div>
298
331
  <div class="ttc" id="acJSON_8cpp_html_a3f9a0d3265a6254722587175dac3e4dc"><div class="ttname"><a href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a></div><div class="ttdeci">newitem type</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8cpp_source.html#l02739">cJSON.cpp:2739</a></div></div>
299
332
  <div class="ttc" id="aclassSVF_1_1SVFType_html"><div class="ttname"><a href="classSVF_1_1SVFType.html">SVF::SVFType</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00242">SVFType.h:242</a></div></div>
300
- <div class="ttc" id="aclassSVF_1_1AccessPath_html_ae746362c42da05a641ae062658e40651"><div class="ttname"><a href="classSVF_1_1AccessPath.html#ae746362c42da05a641ae062658e40651">SVF::AccessPath::computeConstantOffset</a></div><div class="ttdeci">APOffset computeConstantOffset() const</div><div class="ttdoc">Return accumulated constant offset given OffsetVarVec.</div><div class="ttdef"><b>Definition:</b> <a href="AccessPath_8cpp_source.html#l00118">AccessPath.cpp:118</a></div></div>
333
+ <div class="ttc" id="aclassSVF_1_1AccessPath_html_ae746362c42da05a641ae062658e40651"><div class="ttname"><a href="classSVF_1_1AccessPath.html#ae746362c42da05a641ae062658e40651">SVF::AccessPath::computeConstantOffset</a></div><div class="ttdeci">APOffset computeConstantOffset() const</div><div class="ttdoc">Return accumulated constant offset given OffsetVarVec.</div><div class="ttdef"><b>Definition:</b> <a href="AccessPath_8cpp_source.html#l00157">AccessPath.cpp:157</a></div></div>
301
334
  <div class="ttc" id="aclassSVF_1_1SVFConstantInt_html"><div class="ttname"><a href="classSVF_1_1SVFConstantInt.html">SVF::SVFConstantInt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00928">SVFValue.h:928</a></div></div>
302
335
  <div class="ttc" id="aclassSVF_1_1SVFVar_html"><div class="ttname"><a href="classSVF_1_1SVFVar.html">SVF::SVFVar</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00045">SVFVariables.h:45</a></div></div>
303
336
  <div class="ttc" id="aclassSVF_1_1SVFType_html_a9035ac13134de4647d63507cd80ca3d6"><div class="ttname"><a href="classSVF_1_1SVFType.html#a9035ac13134de4647d63507cd80ca3d6">SVF::SVFType::toString</a></div><div class="ttdeci">std::string toString() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8cpp_source.html#l00006">SVFType.cpp:6</a></div></div>
304
337
  <div class="ttc" id="aclassSVF_1_1AccessPath_html_ab0641554924d44f16c2831cac63ccf8b"><div class="ttname"><a href="classSVF_1_1AccessPath.html#ab0641554924d44f16c2831cac63ccf8b">SVF::AccessPath::getOffsetVarAndGepTypePairVec</a></div><div class="ttdeci">const OffsetVarAndGepTypePairs &amp; getOffsetVarAndGepTypePairVec() const</div><div class="ttdef"><b>Definition:</b> <a href="AccessPath_8h_source.html#l00106">AccessPath.h:106</a></div></div>
305
338
  <div class="ttc" id="aclassSVF_1_1SymbolTableInfo_html_a267169023fc4f8dd66b145f7231fec11"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#a267169023fc4f8dd66b145f7231fec11">SVF::SymbolTableInfo::SymbolInfo</a></div><div class="ttdeci">static SymbolTableInfo * SymbolInfo()</div><div class="ttdoc">Singleton design here to make sure we only have one instance during any analysis.</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00081">SymbolTableInfo.cpp:81</a></div></div>
306
- <div class="ttc" id="aclassSVF_1_1AccessPath_html_a6591b6092a829b0c874754b649087aa2"><div class="ttname"><a href="classSVF_1_1AccessPath.html#a6591b6092a829b0c874754b649087aa2">SVF::AccessPath::operator+</a></div><div class="ttdeci">AccessPath operator+(const AccessPath &amp;rhs) const</div><div class="ttdoc">Overload operators.</div><div class="ttdef"><b>Definition:</b> <a href="AccessPath_8cpp_source.html#l00167">AccessPath.cpp:167</a></div></div>
339
+ <div class="ttc" id="aclassSVF_1_1AccessPath_html_a6591b6092a829b0c874754b649087aa2"><div class="ttname"><a href="classSVF_1_1AccessPath.html#a6591b6092a829b0c874754b649087aa2">SVF::AccessPath::operator+</a></div><div class="ttdeci">AccessPath operator+(const AccessPath &amp;rhs) const</div><div class="ttdoc">Overload operators.</div><div class="ttdef"><b>Definition:</b> <a href="AccessPath_8cpp_source.html#l00206">AccessPath.cpp:206</a></div></div>
307
340
  <div class="ttc" id="acJSON_8cpp_html_a95bf816579e97b6f33bdb5e25ed6d5de"><div class="ttname"><a href="cJSON_8cpp.html#a95bf816579e97b6f33bdb5e25ed6d5de">offset</a></div><div class="ttdeci">buffer offset</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8cpp_source.html#l01113">cJSON.cpp:1113</a></div></div>
308
341
  <div class="ttc" id="anamespaceSVF_1_1SVFUtil_html_aed0b0b9f035057552a6a82154fd88e61"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVF::SVFUtil::outs</a></div><div class="ttdeci">std::ostream &amp; outs()</div><div class="ttdoc">Overwrite llvm::outs()</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00050">SVFUtil.h:50</a></div></div>
309
342
  <div class="ttc" id="aclassSVF_1_1AccessPath_html_a403312192a96a9fd5e7d071481592a7f"><div class="ttname"><a href="classSVF_1_1AccessPath.html#a403312192a96a9fd5e7d071481592a7f">SVF::AccessPath::isConstantOffset</a></div><div class="ttdeci">bool isConstantOffset() const</div><div class="ttdoc">Return TRUE if this is a constant location set.</div><div class="ttdef"><b>Definition:</b> <a href="AccessPath_8cpp_source.html#l00049">AccessPath.cpp:49</a></div></div>
310
- <div class="ttc" id="aclassSVF_1_1AccessPath_html_aa1747064a0833855a5848ebf4a4d65fa"><div class="ttname"><a href="classSVF_1_1AccessPath.html#aa1747064a0833855a5848ebf4a4d65fa">SVF::AccessPath::fldIdx</a></div><div class="ttdeci">APOffset fldIdx</div><div class="ttdoc">Accumulated Constant Offsets.</div><div class="ttdef"><b>Definition:</b> <a href="AccessPath_8h_source.html#l00141">AccessPath.h:141</a></div></div>
311
- <div class="ttc" id="aclassSVF_1_1AccessPath_html_a4519477605a58d5821d05951a88abcd0"><div class="ttname"><a href="classSVF_1_1AccessPath.html#a4519477605a58d5821d05951a88abcd0">SVF::AccessPath::dump</a></div><div class="ttdeci">std::string dump() const</div><div class="ttdoc">Dump location set.</div><div class="ttdef"><b>Definition:</b> <a href="AccessPath_8cpp_source.html#l00223">AccessPath.cpp:223</a></div></div>
343
+ <div class="ttc" id="aclassSVF_1_1AccessPath_html_aa1747064a0833855a5848ebf4a4d65fa"><div class="ttname"><a href="classSVF_1_1AccessPath.html#aa1747064a0833855a5848ebf4a4d65fa">SVF::AccessPath::fldIdx</a></div><div class="ttdeci">APOffset fldIdx</div><div class="ttdoc">Accumulated Constant Offsets.</div><div class="ttdef"><b>Definition:</b> <a href="AccessPath_8h_source.html#l00147">AccessPath.h:147</a></div></div>
344
+ <div class="ttc" id="aclassSVF_1_1AccessPath_html_a4519477605a58d5821d05951a88abcd0"><div class="ttname"><a href="classSVF_1_1AccessPath.html#a4519477605a58d5821d05951a88abcd0">SVF::AccessPath::dump</a></div><div class="ttdeci">std::string dump() const</div><div class="ttdoc">Dump location set.</div><div class="ttdef"><b>Definition:</b> <a href="AccessPath_8cpp_source.html#l00262">AccessPath.cpp:262</a></div></div>
312
345
  <div class="ttc" id="aclassSVF_1_1AccessPath_html_aabb6c9600fac408f36b9fde013597245"><div class="ttname"><a href="classSVF_1_1AccessPath.html#aabb6c9600fac408f36b9fde013597245">SVF::AccessPath::LSRelation</a></div><div class="ttdeci">LSRelation</div><div class="ttdef"><b>Definition:</b> <a href="AccessPath_8h_source.html#l00059">AccessPath.h:59</a></div></div>
313
346
  <div class="ttc" id="aclassSVF_1_1SVFConstantInt_html_a73f04bdfc19261b65164b98787bc2ed4"><div class="ttname"><a href="classSVF_1_1SVFConstantInt.html#a73f04bdfc19261b65164b98787bc2ed4">SVF::SVFConstantInt::getSExtValue</a></div><div class="ttdeci">s64_t getSExtValue() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00956">SVFValue.h:956</a></div></div>
314
347
  <div class="ttc" id="anamespaceSVF_html_ad42bff8d0a7d60a085aa32d10f4955af"><div class="ttname"><a href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">SVF::u32_t</a></div><div class="ttdeci">unsigned u32_t</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00051">SVFType.h:51</a></div></div>