svf-tools 1.0.813 → 1.0.815

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 (270) hide show
  1. package/SVF-doxygen/html/AccessPath_8cpp_source.html +124 -121
  2. package/SVF-doxygen/html/AccessPath_8h_source.html +97 -88
  3. package/SVF-doxygen/html/Andersen_8cpp_source.html +1 -1
  4. package/SVF-doxygen/html/ConsGEdge_8h_source.html +2 -2
  5. package/SVF-doxygen/html/ContextDDA_8cpp_source.html +184 -183
  6. package/SVF-doxygen/html/ContextDDA_8h_source.html +5 -5
  7. package/SVF-doxygen/html/FlowDDA_8cpp_source.html +2 -2
  8. package/SVF-doxygen/html/FlowSensitive_8cpp_source.html +2 -2
  9. package/SVF-doxygen/html/SVFIR2ConsExeState_8cpp_source.html +191 -190
  10. package/SVF-doxygen/html/SVFIR2ConsExeState_8h_source.html +4 -4
  11. package/SVF-doxygen/html/SVFIR2ItvExeState_8cpp_source.html +695 -688
  12. package/SVF-doxygen/html/SVFIR2ItvExeState_8h_source.html +15 -15
  13. package/SVF-doxygen/html/SVFIRBuilder_8cpp_source.html +883 -881
  14. package/SVF-doxygen/html/SVFIRBuilder_8h_source.html +32 -32
  15. package/SVF-doxygen/html/SVFIRExtAPI_8cpp_source.html +120 -118
  16. package/SVF-doxygen/html/SVFIR_8cpp_source.html +2 -2
  17. package/SVF-doxygen/html/SVFStatements_8h_source.html +5 -5
  18. package/SVF-doxygen/html/SVFVariables_8h_source.html +2 -2
  19. package/SVF-doxygen/html/classSVF_1_1AccessPath-members.html +7 -5
  20. package/SVF-doxygen/html/classSVF_1_1AccessPath.html +237 -162
  21. package/SVF-doxygen/html/classSVF_1_1Andersen.html +1 -1
  22. package/SVF-doxygen/html/classSVF_1_1ContextDDA.html +176 -175
  23. package/SVF-doxygen/html/classSVF_1_1FlowDDA.html +2 -2
  24. package/SVF-doxygen/html/classSVF_1_1FlowSensitive.html +2 -2
  25. package/SVF-doxygen/html/classSVF_1_1GepStmt-members.html +1 -1
  26. package/SVF-doxygen/html/classSVF_1_1GepStmt.html +9 -9
  27. package/SVF-doxygen/html/classSVF_1_1GepValVar.html +2 -2
  28. package/SVF-doxygen/html/classSVF_1_1NormalGepCGEdge.html +2 -2
  29. package/SVF-doxygen/html/classSVF_1_1SVFIR.html +2 -2
  30. package/SVF-doxygen/html/classSVF_1_1SVFIR2ConsExeState.html +186 -185
  31. package/SVF-doxygen/html/classSVF_1_1SVFIR2ItvExeState.html +667 -660
  32. package/SVF-doxygen/html/classSVF_1_1SVFIRBuilder.html +942 -938
  33. package/SVF-doxygen/html/functions_a.html +1 -1
  34. package/SVF-doxygen/html/functions_func.html +1 -1
  35. package/SVF-doxygen/html/functions_func_g.html +22 -17
  36. package/SVF-doxygen/html/functions_func_p.html +1 -1
  37. package/SVF-doxygen/html/functions_g.html +20 -12
  38. package/SVF-doxygen/html/functions_i.html +1 -1
  39. package/SVF-doxygen/html/functions_o.html +7 -7
  40. package/SVF-doxygen/html/functions_p.html +11 -11
  41. package/SVF-doxygen/html/functions_r.html +2 -2
  42. package/SVF-doxygen/html/functions_s.html +17 -17
  43. package/SVF-doxygen/html/functions_v.html +7 -9
  44. package/SVF-doxygen/html/functions_vars_g.html +3 -0
  45. package/SVF-doxygen/html/functions_w.html +1 -1
  46. package/SVF-doxygen/html/search/all_1.js +1 -1
  47. package/SVF-doxygen/html/search/all_10.js +324 -324
  48. package/SVF-doxygen/html/search/all_11.js +222 -222
  49. package/SVF-doxygen/html/search/all_12.js +544 -544
  50. package/SVF-doxygen/html/search/all_13.js +191 -191
  51. package/SVF-doxygen/html/search/all_14.js +67 -67
  52. package/SVF-doxygen/html/search/all_15.js +167 -167
  53. package/SVF-doxygen/html/search/all_16.js +63 -63
  54. package/SVF-doxygen/html/search/all_17.js +1 -1
  55. package/SVF-doxygen/html/search/all_18.js +1 -1
  56. package/SVF-doxygen/html/search/all_19.js +11 -11
  57. package/SVF-doxygen/html/search/all_1a.js +172 -172
  58. package/SVF-doxygen/html/search/all_7.js +891 -888
  59. package/SVF-doxygen/html/search/all_8.js +197 -197
  60. package/SVF-doxygen/html/search/all_9.js +607 -607
  61. package/SVF-doxygen/html/search/all_a.js +46 -46
  62. package/SVF-doxygen/html/search/all_b.js +26 -26
  63. package/SVF-doxygen/html/search/all_c.js +116 -116
  64. package/SVF-doxygen/html/search/all_d.js +196 -196
  65. package/SVF-doxygen/html/search/all_e.js +207 -207
  66. package/SVF-doxygen/html/search/all_f.js +115 -115
  67. package/SVF-doxygen/html/search/classes_0.js +26 -26
  68. package/SVF-doxygen/html/search/classes_1.js +9 -9
  69. package/SVF-doxygen/html/search/classes_10.js +73 -73
  70. package/SVF-doxygen/html/search/classes_11.js +15 -15
  71. package/SVF-doxygen/html/search/classes_12.js +2 -2
  72. package/SVF-doxygen/html/search/classes_13.js +10 -10
  73. package/SVF-doxygen/html/search/classes_14.js +14 -14
  74. package/SVF-doxygen/html/search/classes_15.js +1 -1
  75. package/SVF-doxygen/html/search/classes_2.js +80 -80
  76. package/SVF-doxygen/html/search/classes_3.js +37 -37
  77. package/SVF-doxygen/html/search/classes_4.js +9 -9
  78. package/SVF-doxygen/html/search/classes_5.js +28 -28
  79. package/SVF-doxygen/html/search/classes_6.js +104 -104
  80. package/SVF-doxygen/html/search/classes_7.js +33 -33
  81. package/SVF-doxygen/html/search/classes_8.js +56 -56
  82. package/SVF-doxygen/html/search/classes_9.js +1 -1
  83. package/SVF-doxygen/html/search/classes_a.js +12 -12
  84. package/SVF-doxygen/html/search/classes_b.js +29 -29
  85. package/SVF-doxygen/html/search/classes_c.js +6 -6
  86. package/SVF-doxygen/html/search/classes_d.js +18 -18
  87. package/SVF-doxygen/html/search/classes_e.js +36 -36
  88. package/SVF-doxygen/html/search/classes_f.js +25 -25
  89. package/SVF-doxygen/html/search/defines_0.js +3 -3
  90. package/SVF-doxygen/html/search/defines_1.js +2 -2
  91. package/SVF-doxygen/html/search/defines_2.js +30 -30
  92. package/SVF-doxygen/html/search/defines_3.js +21 -21
  93. package/SVF-doxygen/html/search/defines_4.js +2 -2
  94. package/SVF-doxygen/html/search/defines_5.js +4 -4
  95. package/SVF-doxygen/html/search/defines_6.js +2 -2
  96. package/SVF-doxygen/html/search/defines_7.js +5 -5
  97. package/SVF-doxygen/html/search/defines_8.js +11 -11
  98. package/SVF-doxygen/html/search/defines_9.js +9 -9
  99. package/SVF-doxygen/html/search/defines_a.js +2 -2
  100. package/SVF-doxygen/html/search/defines_b.js +1 -1
  101. package/SVF-doxygen/html/search/defines_c.js +3 -3
  102. package/SVF-doxygen/html/search/defines_d.js +2 -2
  103. package/SVF-doxygen/html/search/defines_e.js +7 -7
  104. package/SVF-doxygen/html/search/defines_f.js +3 -3
  105. package/SVF-doxygen/html/search/enums_0.js +3 -3
  106. package/SVF-doxygen/html/search/enums_1.js +2 -2
  107. package/SVF-doxygen/html/search/enums_10.js +1 -1
  108. package/SVF-doxygen/html/search/enums_11.js +1 -1
  109. package/SVF-doxygen/html/search/enums_2.js +8 -8
  110. package/SVF-doxygen/html/search/enums_3.js +1 -1
  111. package/SVF-doxygen/html/search/enums_4.js +3 -3
  112. package/SVF-doxygen/html/search/enums_5.js +1 -1
  113. package/SVF-doxygen/html/search/enums_6.js +2 -2
  114. package/SVF-doxygen/html/search/enums_7.js +2 -2
  115. package/SVF-doxygen/html/search/enums_8.js +4 -4
  116. package/SVF-doxygen/html/search/enums_9.js +1 -1
  117. package/SVF-doxygen/html/search/enums_a.js +1 -1
  118. package/SVF-doxygen/html/search/enums_b.js +7 -7
  119. package/SVF-doxygen/html/search/enums_c.js +1 -1
  120. package/SVF-doxygen/html/search/enums_d.js +4 -4
  121. package/SVF-doxygen/html/search/enums_e.js +2 -2
  122. package/SVF-doxygen/html/search/enums_f.js +4 -4
  123. package/SVF-doxygen/html/search/enumvalues_0.js +14 -14
  124. package/SVF-doxygen/html/search/enumvalues_1.js +14 -14
  125. package/SVF-doxygen/html/search/enumvalues_10.js +35 -35
  126. package/SVF-doxygen/html/search/enumvalues_11.js +3 -3
  127. package/SVF-doxygen/html/search/enumvalues_12.js +10 -10
  128. package/SVF-doxygen/html/search/enumvalues_13.js +1 -1
  129. package/SVF-doxygen/html/search/enumvalues_14.js +1 -1
  130. package/SVF-doxygen/html/search/enumvalues_15.js +3 -3
  131. package/SVF-doxygen/html/search/enumvalues_2.js +36 -36
  132. package/SVF-doxygen/html/search/enumvalues_3.js +13 -13
  133. package/SVF-doxygen/html/search/enumvalues_4.js +2 -2
  134. package/SVF-doxygen/html/search/enumvalues_5.js +47 -47
  135. package/SVF-doxygen/html/search/enumvalues_6.js +6 -6
  136. package/SVF-doxygen/html/search/enumvalues_7.js +9 -9
  137. package/SVF-doxygen/html/search/enumvalues_8.js +23 -23
  138. package/SVF-doxygen/html/search/enumvalues_9.js +6 -6
  139. package/SVF-doxygen/html/search/enumvalues_a.js +15 -15
  140. package/SVF-doxygen/html/search/enumvalues_b.js +11 -11
  141. package/SVF-doxygen/html/search/enumvalues_c.js +5 -5
  142. package/SVF-doxygen/html/search/enumvalues_d.js +18 -18
  143. package/SVF-doxygen/html/search/enumvalues_e.js +9 -9
  144. package/SVF-doxygen/html/search/enumvalues_f.js +45 -45
  145. package/SVF-doxygen/html/search/files_0.js +13 -13
  146. package/SVF-doxygen/html/search/files_1.js +7 -7
  147. package/SVF-doxygen/html/search/files_10.js +8 -8
  148. package/SVF-doxygen/html/search/files_11.js +8 -8
  149. package/SVF-doxygen/html/search/files_12.js +2 -2
  150. package/SVF-doxygen/html/search/files_2.js +55 -55
  151. package/SVF-doxygen/html/search/files_3.js +14 -14
  152. package/SVF-doxygen/html/search/files_4.js +5 -5
  153. package/SVF-doxygen/html/search/files_5.js +13 -13
  154. package/SVF-doxygen/html/search/files_6.js +9 -9
  155. package/SVF-doxygen/html/search/files_7.js +14 -14
  156. package/SVF-doxygen/html/search/files_8.js +13 -13
  157. package/SVF-doxygen/html/search/files_9.js +18 -18
  158. package/SVF-doxygen/html/search/files_a.js +3 -3
  159. package/SVF-doxygen/html/search/files_b.js +2 -2
  160. package/SVF-doxygen/html/search/files_c.js +20 -20
  161. package/SVF-doxygen/html/search/files_d.js +4 -4
  162. package/SVF-doxygen/html/search/files_e.js +62 -62
  163. package/SVF-doxygen/html/search/files_f.js +8 -8
  164. package/SVF-doxygen/html/search/functions_0.js +12 -12
  165. package/SVF-doxygen/html/search/functions_1.js +360 -360
  166. package/SVF-doxygen/html/search/functions_10.js +140 -140
  167. package/SVF-doxygen/html/search/functions_11.js +138 -138
  168. package/SVF-doxygen/html/search/functions_12.js +279 -279
  169. package/SVF-doxygen/html/search/functions_13.js +59 -59
  170. package/SVF-doxygen/html/search/functions_14.js +39 -39
  171. package/SVF-doxygen/html/search/functions_15.js +71 -71
  172. package/SVF-doxygen/html/search/functions_16.js +32 -32
  173. package/SVF-doxygen/html/search/functions_17.js +3 -3
  174. package/SVF-doxygen/html/search/functions_18.js +172 -172
  175. package/SVF-doxygen/html/search/functions_2.js +87 -87
  176. package/SVF-doxygen/html/search/functions_3.js +257 -257
  177. package/SVF-doxygen/html/search/functions_4.js +75 -75
  178. package/SVF-doxygen/html/search/functions_5.js +53 -53
  179. package/SVF-doxygen/html/search/functions_6.js +59 -59
  180. package/SVF-doxygen/html/search/functions_7.js +854 -852
  181. package/SVF-doxygen/html/search/functions_8.js +149 -149
  182. package/SVF-doxygen/html/search/functions_9.js +423 -423
  183. package/SVF-doxygen/html/search/functions_a.js +30 -30
  184. package/SVF-doxygen/html/search/functions_b.js +2 -2
  185. package/SVF-doxygen/html/search/functions_c.js +26 -26
  186. package/SVF-doxygen/html/search/functions_d.js +77 -77
  187. package/SVF-doxygen/html/search/functions_e.js +35 -35
  188. package/SVF-doxygen/html/search/functions_f.js +56 -56
  189. package/SVF-doxygen/html/search/namespaces_0.js +1 -1
  190. package/SVF-doxygen/html/search/namespaces_1.js +7 -7
  191. package/SVF-doxygen/html/search/related_0.js +2 -2
  192. package/SVF-doxygen/html/search/related_1.js +2 -2
  193. package/SVF-doxygen/html/search/related_2.js +2 -2
  194. package/SVF-doxygen/html/search/related_3.js +2 -2
  195. package/SVF-doxygen/html/search/related_4.js +2 -2
  196. package/SVF-doxygen/html/search/related_5.js +1 -1
  197. package/SVF-doxygen/html/search/related_6.js +2 -2
  198. package/SVF-doxygen/html/search/related_7.js +4 -4
  199. package/SVF-doxygen/html/search/related_8.js +2 -2
  200. package/SVF-doxygen/html/search/related_9.js +4 -4
  201. package/SVF-doxygen/html/search/related_a.js +19 -19
  202. package/SVF-doxygen/html/search/related_b.js +4 -4
  203. package/SVF-doxygen/html/search/related_c.js +1 -1
  204. package/SVF-doxygen/html/search/related_d.js +12 -12
  205. package/SVF-doxygen/html/search/related_e.js +2 -2
  206. package/SVF-doxygen/html/search/related_f.js +2 -2
  207. package/SVF-doxygen/html/search/typedefs_0.js +19 -19
  208. package/SVF-doxygen/html/search/typedefs_1.js +26 -26
  209. package/SVF-doxygen/html/search/typedefs_10.js +61 -61
  210. package/SVF-doxygen/html/search/typedefs_11.js +13 -13
  211. package/SVF-doxygen/html/search/typedefs_12.js +11 -11
  212. package/SVF-doxygen/html/search/typedefs_13.js +33 -33
  213. package/SVF-doxygen/html/search/typedefs_14.js +8 -8
  214. package/SVF-doxygen/html/search/typedefs_2.js +129 -129
  215. package/SVF-doxygen/html/search/typedefs_3.js +39 -39
  216. package/SVF-doxygen/html/search/typedefs_4.js +17 -17
  217. package/SVF-doxygen/html/search/typedefs_5.js +41 -41
  218. package/SVF-doxygen/html/search/typedefs_6.js +55 -55
  219. package/SVF-doxygen/html/search/typedefs_7.js +44 -44
  220. package/SVF-doxygen/html/search/typedefs_8.js +1 -1
  221. package/SVF-doxygen/html/search/typedefs_9.js +6 -6
  222. package/SVF-doxygen/html/search/typedefs_a.js +29 -29
  223. package/SVF-doxygen/html/search/typedefs_b.js +29 -29
  224. package/SVF-doxygen/html/search/typedefs_c.js +41 -41
  225. package/SVF-doxygen/html/search/typedefs_d.js +14 -14
  226. package/SVF-doxygen/html/search/typedefs_e.js +52 -52
  227. package/SVF-doxygen/html/search/typedefs_f.js +14 -14
  228. package/SVF-doxygen/html/search/variables_0.js +151 -151
  229. package/SVF-doxygen/html/search/variables_1.js +75 -75
  230. package/SVF-doxygen/html/search/variables_10.js +97 -97
  231. package/SVF-doxygen/html/search/variables_11.js +44 -44
  232. package/SVF-doxygen/html/search/variables_12.js +92 -92
  233. package/SVF-doxygen/html/search/variables_13.js +75 -75
  234. package/SVF-doxygen/html/search/variables_14.js +14 -14
  235. package/SVF-doxygen/html/search/variables_15.js +48 -48
  236. package/SVF-doxygen/html/search/variables_16.js +9 -9
  237. package/SVF-doxygen/html/search/variables_17.js +1 -1
  238. package/SVF-doxygen/html/search/variables_18.js +2 -2
  239. package/SVF-doxygen/html/search/variables_2.js +38 -38
  240. package/SVF-doxygen/html/search/variables_3.js +142 -142
  241. package/SVF-doxygen/html/search/variables_4.js +55 -55
  242. package/SVF-doxygen/html/search/variables_5.js +37 -37
  243. package/SVF-doxygen/html/search/variables_6.js +66 -66
  244. package/SVF-doxygen/html/search/variables_7.js +34 -33
  245. package/SVF-doxygen/html/search/variables_8.js +7 -7
  246. package/SVF-doxygen/html/search/variables_9.js +78 -78
  247. package/SVF-doxygen/html/search/variables_a.js +4 -4
  248. package/SVF-doxygen/html/search/variables_b.js +10 -10
  249. package/SVF-doxygen/html/search/variables_c.js +45 -45
  250. package/SVF-doxygen/html/search/variables_d.js +56 -56
  251. package/SVF-doxygen/html/search/variables_e.js +123 -123
  252. package/SVF-doxygen/html/search/variables_f.js +29 -29
  253. package/SVF-doxygen/html/structstd_1_1hash_3_01SVF_1_1AccessPath_01_4.html +10 -10
  254. package/SVF-doxygen/html/svf-ex_8cpp.html +11 -11
  255. package/SVF-doxygen/html/svf-ex_8cpp_source.html +11 -11
  256. package/package.json +1 -1
  257. package/svf/include/Graphs/ConsGEdge.h +1 -1
  258. package/svf/include/MemoryModel/AccessPath.h +14 -5
  259. package/svf/include/SVFIR/SVFStatements.h +2 -2
  260. package/svf/include/SVFIR/SVFVariables.h +1 -1
  261. package/svf/lib/AbstractExecution/SVFIR2ConsExeState.cpp +2 -1
  262. package/svf/lib/AbstractExecution/SVFIR2ItvExeState.cpp +4 -0
  263. package/svf/lib/DDA/ContextDDA.cpp +2 -1
  264. package/svf/lib/DDA/FlowDDA.cpp +1 -1
  265. package/svf/lib/MemoryModel/AccessPath.cpp +7 -5
  266. package/svf/lib/SVFIR/SVFIR.cpp +1 -1
  267. package/svf/lib/WPA/Andersen.cpp +1 -1
  268. package/svf/lib/WPA/FlowSensitive.cpp +1 -1
  269. package/svf-llvm/lib/SVFIRBuilder.cpp +6 -4
  270. package/svf-llvm/lib/SVFIRExtAPI.cpp +7 -5
@@ -219,120 +219,122 @@ $(function() {
219
219
  <div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; </div>
220
220
  <div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; assert(isConstantOffset() &amp;&amp; <span class="stringliteral">&quot;not a constant offset&quot;</span>);</div>
221
221
  <div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; </div>
222
- <div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <span class="keywordflow">if</span>(idxOperandPairs.empty())</div>
223
- <div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; <span class="keywordflow">return</span> getConstantFieldIdx();</div>
224
- <div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; </div>
225
- <div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; <a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> totalConstOffset = 0;</div>
226
- <div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = idxOperandPairs.size() - 1; i &gt;= 0; i--)</div>
227
- <div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; {</div>
228
- <div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFValue.html">SVFValue</a>* value = idxOperandPairs[i].first-&gt;getValue();</div>
229
- <div class="line"><a name="l00219"></a><span class="lineno"> 219</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> = idxOperandPairs[i].second;</div>
230
- <div class="line"><a name="l00220"></a><span class="lineno"> 220</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>
231
- <div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; assert(op &amp;&amp; <span class="stringliteral">&quot;not a constant offset?&quot;</span>);</div>
232
- <div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>==<span class="keyword">nullptr</span>)</div>
233
- <div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; {</div>
234
- <div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; totalConstOffset += op-&gt;<a class="code" href="classSVF_1_1SVFConstantInt.html#a73f04bdfc19261b65164b98787bc2ed4">getSExtValue</a>();</div>
235
- <div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; <span class="keywordflow">continue</span>;</div>
236
- <div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; }</div>
237
- <div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; </div>
238
- <div class="line"><a name="l00228"></a><span class="lineno"> 228</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>
239
- <div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; totalConstOffset += op-&gt;<a class="code" href="classSVF_1_1SVFConstantInt.html#a73f04bdfc19261b65164b98787bc2ed4">getSExtValue</a>() * getElementNum(pty-&gt;getPtrElementType());</div>
240
- <div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; <span class="keywordflow">else</span></div>
241
- <div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; {</div>
242
- <div class="line"><a name="l00232"></a><span class="lineno"> 232</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>
243
- <div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="cJSON_8cpp.html#a95bf816579e97b6f33bdb5e25ed6d5de">offset</a> &gt;= 0)</div>
244
- <div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; {</div>
245
- <div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> flattenOffset =</div>
246
- <div class="line"><a name="l00236"></a><span class="lineno"> 236</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>
247
- <div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; <a class="code" href="cJSON_8cpp.html#a95bf816579e97b6f33bdb5e25ed6d5de">offset</a>);</div>
248
- <div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; totalConstOffset += flattenOffset;</div>
249
- <div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; }</div>
250
- <div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; <span class="keywordflow">else</span></div>
251
- <div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; totalConstOffset += <a class="code" href="cJSON_8cpp.html#a95bf816579e97b6f33bdb5e25ed6d5de">offset</a>;</div>
252
- <div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; }</div>
253
- <div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; }</div>
254
- <div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; <span class="keywordflow">return</span> totalConstOffset;</div>
255
- <div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160;}</div>
256
- <div class="line"><a name="l00249"></a><span class="lineno"><a class="line" href="classSVF_1_1AccessPath.html#a76222b6571e46e8a8bd5c8c597c8ffaf"> 249</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>
257
- <div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160;<span class="keyword"></span>{</div>
258
- <div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a> result;</div>
259
- <div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; result.<a class="code" href="classSVF_1_1SparseBitVector.html#a61bd86909a141f9de873d92c0f904832">set</a>(getConstantFieldIdx());</div>
260
- <div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; <span class="keywordflow">return</span> result;</div>
261
- <div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160;}</div>
262
- <div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; </div>
263
- <div class="line"><a name="l00256"></a><span class="lineno"><a class="line" href="classSVF_1_1AccessPath.html#a6591b6092a829b0c874754b649087aa2"> 256</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>
264
- <div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160;<span class="keyword"></span>{</div>
265
- <div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; <a class="code" href="classSVF_1_1AccessPath.html">AccessPath</a> ap(rhs);</div>
266
- <div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; ap.<a class="code" href="classSVF_1_1AccessPath.html#aa1747064a0833855a5848ebf4a4d65fa">fldIdx</a> += getConstantFieldIdx();</div>
267
- <div class="line"><a name="l00260"></a><span class="lineno"> 260</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#a586c71842e3e4487921aa3384ce9d025">getIdxOperandPairVec</a>())</div>
268
- <div class="line"><a name="l00261"></a><span class="lineno"> 261</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>
269
- <div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; </div>
270
- <div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; <span class="keywordflow">return</span> ap;</div>
271
- <div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160;}</div>
272
- <div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; </div>
273
- <div class="line"><a name="l00266"></a><span class="lineno"><a class="line" href="classSVF_1_1AccessPath.html#ae0f38a5f473af89678db2755667c3421"> 266</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>
274
- <div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160;<span class="keyword"></span>{</div>
275
- <div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; <span class="keywordflow">if</span> (fldIdx != rhs.<a class="code" href="classSVF_1_1AccessPath.html#aa1747064a0833855a5848ebf4a4d65fa">fldIdx</a>)</div>
276
- <div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; <span class="keywordflow">return</span> (fldIdx &lt; rhs.<a class="code" href="classSVF_1_1AccessPath.html#aa1747064a0833855a5848ebf4a4d65fa">fldIdx</a>);</div>
277
- <div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; <span class="keywordflow">else</span></div>
278
- <div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; {</div>
279
- <div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1AccessPath.html#a04ca154a70f40999a6a28c505bfd942d">IdxOperandPairs</a>&amp; pairVec = getIdxOperandPairVec();</div>
280
- <div class="line"><a name="l00273"></a><span class="lineno"> 273</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>
281
- <div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; <span class="keywordflow">if</span> (pairVec.size() != rhsPairVec.size())</div>
282
- <div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; <span class="keywordflow">return</span> (pairVec.size() &lt; rhsPairVec.size());</div>
283
- <div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; <span class="keywordflow">else</span></div>
284
- <div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; {</div>
285
- <div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; IdxOperandPairs::const_iterator it = pairVec.begin();</div>
286
- <div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; IdxOperandPairs::const_iterator rhsIt = rhsPairVec.begin();</div>
287
- <div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; <span class="keywordflow">for</span> (; it != pairVec.end() &amp;&amp; rhsIt != rhsPairVec.end(); ++it, ++rhsIt)</div>
288
- <div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; {</div>
289
- <div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; <span class="keywordflow">return</span> (*it) &lt; (*rhsIt);</div>
290
- <div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; }</div>
291
- <div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; </div>
292
- <div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
293
- <div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; }</div>
294
- <div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; }</div>
295
- <div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160;}</div>
296
- <div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; </div>
297
- <div class="line"><a name="l00290"></a><span class="lineno"><a class="line" href="classSVF_1_1AccessPath.html#a98b8b3428479259fbafd9e527ecc09bb"> 290</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>
298
- <div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160;{</div>
299
- <div class="line"><a name="l00292"></a><span class="lineno"> 292</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>
300
- <div class="line"><a name="l00293"></a><span class="lineno"> 293</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>
301
- <div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; <span class="keywordflow">if</span> (lhsLocations.<a class="code" href="classSVF_1_1SparseBitVector.html#a16756e0545fd3d50ab89f45a2e83bb79">intersects</a>(rhsLocations))</div>
302
- <div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; {</div>
303
- <div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; <span class="keywordflow">if</span> (lhsLocations == rhsLocations)</div>
304
- <div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; <span class="keywordflow">return</span> Same;</div>
305
- <div class="line"><a name="l00298"></a><span class="lineno"> 298</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>
306
- <div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; <span class="keywordflow">return</span> Superset;</div>
307
- <div class="line"><a name="l00300"></a><span class="lineno"> 300</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>
308
- <div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; <span class="keywordflow">return</span> Subset;</div>
309
- <div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; <span class="keywordflow">else</span></div>
310
- <div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; <span class="keywordflow">return</span> Overlap;</div>
311
- <div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; }</div>
312
- <div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; <span class="keywordflow">else</span></div>
313
- <div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; {</div>
314
- <div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; <span class="keywordflow">return</span> NonOverlap;</div>
315
- <div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; }</div>
316
- <div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160;}</div>
317
- <div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; </div>
318
- <div class="line"><a name="l00312"></a><span class="lineno"><a class="line" href="classSVF_1_1AccessPath.html#a4519477605a58d5821d05951a88abcd0"> 312</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>
319
- <div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160;<span class="keyword"></span>{</div>
320
- <div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> str;</div>
321
- <div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; std::stringstream rawstr(str);</div>
322
- <div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; </div>
323
- <div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot;AccessPath\tField_Index: &quot;</span> &lt;&lt; getConstantFieldIdx();</div>
324
- <div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot;,\tNum-Stride: {&quot;</span>;</div>
325
- <div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1AccessPath.html#a04ca154a70f40999a6a28c505bfd942d">IdxOperandPairs</a>&amp; vec = getIdxOperandPairVec();</div>
326
- <div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; IdxOperandPairs::const_iterator it = vec.begin();</div>
327
- <div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; IdxOperandPairs::const_iterator eit = vec.end();</div>
328
- <div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; <span class="keywordflow">for</span> (; it != eit; ++it)</div>
329
- <div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; {</div>
330
- <div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* ty = it-&gt;second;</div>
331
- <div class="line"><a name="l00325"></a><span class="lineno"> 325</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>
332
- <div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; }</div>
333
- <div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot; }\n&quot;</span>;</div>
334
- <div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; <span class="keywordflow">return</span> rawstr.str();</div>
335
- <div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160;}</div>
222
+ <div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <span class="comment">// source element type is struct</span></div>
223
+ <div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; <span class="keywordflow">if</span>(gepSourceElementType &amp;&amp; gepSourceElementType-&gt;isStructTy())</div>
224
+ <div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; <span class="keywordflow">return</span> getConstantStructFldIdx();</div>
225
+ <div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; </div>
226
+ <div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; <a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> totalConstOffset = 0;</div>
227
+ <div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = idxOperandPairs.size() - 1; i &gt;= 0; i--)</div>
228
+ <div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; {</div>
229
+ <div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFValue.html">SVFValue</a>* value = idxOperandPairs[i].first-&gt;getValue();</div>
230
+ <div class="line"><a name="l00220"></a><span class="lineno"> 220</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> = idxOperandPairs[i].second;</div>
231
+ <div class="line"><a name="l00221"></a><span class="lineno"> 221</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>
232
+ <div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; assert(op &amp;&amp; <span class="stringliteral">&quot;not a constant offset?&quot;</span>);</div>
233
+ <div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>==<span class="keyword">nullptr</span>)</div>
234
+ <div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; {</div>
235
+ <div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; totalConstOffset += op-&gt;<a class="code" href="classSVF_1_1SVFConstantInt.html#a73f04bdfc19261b65164b98787bc2ed4">getSExtValue</a>();</div>
236
+ <div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; <span class="keywordflow">continue</span>;</div>
237
+ <div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; }</div>
238
+ <div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; </div>
239
+ <div class="line"><a name="l00229"></a><span class="lineno"> 229</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>
240
+ <div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; totalConstOffset += op-&gt;<a class="code" href="classSVF_1_1SVFConstantInt.html#a73f04bdfc19261b65164b98787bc2ed4">getSExtValue</a>() * getElementNum(pty-&gt;getPtrElementType());</div>
241
+ <div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; <span class="keywordflow">else</span></div>
242
+ <div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; {</div>
243
+ <div class="line"><a name="l00233"></a><span class="lineno"> 233</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>
244
+ <div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="cJSON_8cpp.html#a95bf816579e97b6f33bdb5e25ed6d5de">offset</a> &gt;= 0)</div>
245
+ <div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; {</div>
246
+ <div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> flattenOffset =</div>
247
+ <div class="line"><a name="l00237"></a><span class="lineno"> 237</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>
248
+ <div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; <a class="code" href="cJSON_8cpp.html#a95bf816579e97b6f33bdb5e25ed6d5de">offset</a>);</div>
249
+ <div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; totalConstOffset += flattenOffset;</div>
250
+ <div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; }</div>
251
+ <div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; <span class="keywordflow">else</span></div>
252
+ <div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; totalConstOffset += <a class="code" href="cJSON_8cpp.html#a95bf816579e97b6f33bdb5e25ed6d5de">offset</a>;</div>
253
+ <div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; }</div>
254
+ <div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; }</div>
255
+ <div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; <span class="keywordflow">return</span> totalConstOffset;</div>
256
+ <div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160;}</div>
257
+ <div class="line"><a name="l00250"></a><span class="lineno"><a class="line" href="classSVF_1_1AccessPath.html#a76222b6571e46e8a8bd5c8c597c8ffaf"> 250</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>
258
+ <div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160;<span class="keyword"></span>{</div>
259
+ <div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a> result;</div>
260
+ <div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; result.<a class="code" href="classSVF_1_1SparseBitVector.html#a61bd86909a141f9de873d92c0f904832">set</a>(getConstantStructFldIdx());</div>
261
+ <div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; <span class="keywordflow">return</span> result;</div>
262
+ <div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160;}</div>
263
+ <div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; </div>
264
+ <div class="line"><a name="l00257"></a><span class="lineno"><a class="line" href="classSVF_1_1AccessPath.html#a6591b6092a829b0c874754b649087aa2"> 257</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>
265
+ <div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160;<span class="keyword"></span>{</div>
266
+ <div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; assert(gepSourceElementType == rhs.<a class="code" href="classSVF_1_1AccessPath.html#a4e7d73c473a54c69fd01692ee0a9cf35">getGepSourceElementType</a>() &amp;&amp; <span class="stringliteral">&quot;source element type not match&quot;</span>);</div>
267
+ <div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; <a class="code" href="classSVF_1_1AccessPath.html">AccessPath</a> ap(rhs);</div>
268
+ <div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; ap.<a class="code" href="classSVF_1_1AccessPath.html#aa1747064a0833855a5848ebf4a4d65fa">fldIdx</a> += getConstantStructFldIdx();</div>
269
+ <div class="line"><a name="l00262"></a><span class="lineno"> 262</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#a586c71842e3e4487921aa3384ce9d025">getIdxOperandPairVec</a>())</div>
270
+ <div class="line"><a name="l00263"></a><span class="lineno"> 263</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>
271
+ <div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; </div>
272
+ <div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; <span class="keywordflow">return</span> ap;</div>
273
+ <div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160;}</div>
274
+ <div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; </div>
275
+ <div class="line"><a name="l00268"></a><span class="lineno"><a class="line" href="classSVF_1_1AccessPath.html#ae0f38a5f473af89678db2755667c3421"> 268</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>
276
+ <div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160;<span class="keyword"></span>{</div>
277
+ <div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; <span class="keywordflow">if</span> (fldIdx != rhs.<a class="code" href="classSVF_1_1AccessPath.html#aa1747064a0833855a5848ebf4a4d65fa">fldIdx</a>)</div>
278
+ <div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; <span class="keywordflow">return</span> (fldIdx &lt; rhs.<a class="code" href="classSVF_1_1AccessPath.html#aa1747064a0833855a5848ebf4a4d65fa">fldIdx</a>);</div>
279
+ <div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; <span class="keywordflow">else</span></div>
280
+ <div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; {</div>
281
+ <div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1AccessPath.html#a04ca154a70f40999a6a28c505bfd942d">IdxOperandPairs</a>&amp; pairVec = getIdxOperandPairVec();</div>
282
+ <div class="line"><a name="l00275"></a><span class="lineno"> 275</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>
283
+ <div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; <span class="keywordflow">if</span> (pairVec.size() != rhsPairVec.size())</div>
284
+ <div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; <span class="keywordflow">return</span> (pairVec.size() &lt; rhsPairVec.size());</div>
285
+ <div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; <span class="keywordflow">else</span></div>
286
+ <div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; {</div>
287
+ <div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; IdxOperandPairs::const_iterator it = pairVec.begin();</div>
288
+ <div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; IdxOperandPairs::const_iterator rhsIt = rhsPairVec.begin();</div>
289
+ <div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; <span class="keywordflow">for</span> (; it != pairVec.end() &amp;&amp; rhsIt != rhsPairVec.end(); ++it, ++rhsIt)</div>
290
+ <div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; {</div>
291
+ <div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; <span class="keywordflow">return</span> (*it) &lt; (*rhsIt);</div>
292
+ <div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; }</div>
293
+ <div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; </div>
294
+ <div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
295
+ <div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; }</div>
296
+ <div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; }</div>
297
+ <div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160;}</div>
298
+ <div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; </div>
299
+ <div class="line"><a name="l00292"></a><span class="lineno"><a class="line" href="classSVF_1_1AccessPath.html#a98b8b3428479259fbafd9e527ecc09bb"> 292</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>
300
+ <div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160;{</div>
301
+ <div class="line"><a name="l00294"></a><span class="lineno"> 294</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>
302
+ <div class="line"><a name="l00295"></a><span class="lineno"> 295</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>
303
+ <div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; <span class="keywordflow">if</span> (lhsLocations.<a class="code" href="classSVF_1_1SparseBitVector.html#a16756e0545fd3d50ab89f45a2e83bb79">intersects</a>(rhsLocations))</div>
304
+ <div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; {</div>
305
+ <div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; <span class="keywordflow">if</span> (lhsLocations == rhsLocations)</div>
306
+ <div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; <span class="keywordflow">return</span> Same;</div>
307
+ <div class="line"><a name="l00300"></a><span class="lineno"> 300</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>
308
+ <div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; <span class="keywordflow">return</span> Superset;</div>
309
+ <div class="line"><a name="l00302"></a><span class="lineno"> 302</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>
310
+ <div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; <span class="keywordflow">return</span> Subset;</div>
311
+ <div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; <span class="keywordflow">else</span></div>
312
+ <div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; <span class="keywordflow">return</span> Overlap;</div>
313
+ <div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; }</div>
314
+ <div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; <span class="keywordflow">else</span></div>
315
+ <div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; {</div>
316
+ <div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; <span class="keywordflow">return</span> NonOverlap;</div>
317
+ <div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; }</div>
318
+ <div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160;}</div>
319
+ <div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; </div>
320
+ <div class="line"><a name="l00314"></a><span class="lineno"><a class="line" href="classSVF_1_1AccessPath.html#a4519477605a58d5821d05951a88abcd0"> 314</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>
321
+ <div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160;<span class="keyword"></span>{</div>
322
+ <div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> str;</div>
323
+ <div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; std::stringstream rawstr(str);</div>
324
+ <div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; </div>
325
+ <div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot;AccessPath\tField_Index: &quot;</span> &lt;&lt; getConstantStructFldIdx();</div>
326
+ <div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot;,\tNum-Stride: {&quot;</span>;</div>
327
+ <div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1AccessPath.html#a04ca154a70f40999a6a28c505bfd942d">IdxOperandPairs</a>&amp; vec = getIdxOperandPairVec();</div>
328
+ <div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; IdxOperandPairs::const_iterator it = vec.begin();</div>
329
+ <div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; IdxOperandPairs::const_iterator eit = vec.end();</div>
330
+ <div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; <span class="keywordflow">for</span> (; it != eit; ++it)</div>
331
+ <div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; {</div>
332
+ <div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* ty = it-&gt;second;</div>
333
+ <div class="line"><a name="l00327"></a><span class="lineno"> 327</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>
334
+ <div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; }</div>
335
+ <div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot; }\n&quot;</span>;</div>
336
+ <div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; <span class="keywordflow">return</span> rawstr.str();</div>
337
+ <div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160;}</div>
336
338
  </div><!-- fragment --></div><!-- contents -->
337
339
  <div class="ttc" id="aclassSVF_1_1AccessPath_html_a1f279344b4061838d7b3498631bc907c"><div class="ttname"><a href="classSVF_1_1AccessPath.html#a1f279344b4061838d7b3498631bc907c">SVF::AccessPath::getStructFieldOffset</a></div><div class="ttdeci">u32_t getStructFieldOffset(const SVFVar *idxOperandVar, const SVFStructType *idxOperandType) const</div><div class="ttdoc">Return byte offset from the beginning of the structure to the field where it is located for struct ty...</div><div class="ttdef"><b>Definition:</b> <a href="AccessPath_8cpp_source.html#l00162">AccessPath.cpp:162</a></div></div>
338
340
  <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>
@@ -344,16 +346,17 @@ $(function() {
344
346
  <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>
345
347
  <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>
346
348
  <div class="ttc" id="aAccessPath_8h_html"><div class="ttname"><a href="AccessPath_8h.html">AccessPath.h</a></div></div>
347
- <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#l00266">AccessPath.cpp:266</a></div></div>
349
+ <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#l00268">AccessPath.cpp:268</a></div></div>
348
350
  <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>
349
351
  <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>
350
352
  <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>
351
- <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#l00249">AccessPath.cpp:249</a></div></div>
353
+ <div class="ttc" id="aclassSVF_1_1AccessPath_html_a4e7d73c473a54c69fd01692ee0a9cf35"><div class="ttname"><a href="classSVF_1_1AccessPath.html#a4e7d73c473a54c69fd01692ee0a9cf35">SVF::AccessPath::getGepSourceElementType</a></div><div class="ttdeci">const SVFType * getGepSourceElementType() const</div><div class="ttdef"><b>Definition:</b> <a href="AccessPath_8h_source.html#l00112">AccessPath.h:112</a></div></div>
354
+ <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#l00250">AccessPath.cpp:250</a></div></div>
352
355
  <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>
353
356
  <div class="ttc" id="aSVFUtil_8h_html"><div class="ttname"><a href="SVFUtil_8h.html">SVFUtil.h</a></div></div>
354
357
  <div class="ttc" id="aOptions_8h_html"><div class="ttname"><a href="Options_8h.html">Options.h</a></div></div>
355
358
  <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>
356
- <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#l00290">AccessPath.cpp:290</a></div></div>
359
+ <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#l00292">AccessPath.cpp:292</a></div></div>
357
360
  <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>
358
361
  <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>
359
362
  <div class="ttc" id="aclassSVF_1_1SVFArrayType_html"><div class="ttname"><a href="classSVF_1_1SVFArrayType.html">SVF::SVFArrayType</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00469">SVFType.h:469</a></div></div>
@@ -367,15 +370,15 @@ $(function() {
367
370
  <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>
368
371
  <div class="ttc" id="aclassSVF_1_1AccessPath_html_a04ca154a70f40999a6a28c505bfd942d"><div class="ttname"><a href="classSVF_1_1AccessPath.html#a04ca154a70f40999a6a28c505bfd942d">SVF::AccessPath::IdxOperandPairs</a></div><div class="ttdeci">std::vector&lt; IdxOperandPair &gt; IdxOperandPairs</div><div class="ttdef"><b>Definition:</b> <a href="AccessPath_8h_source.html#l00065">AccessPath.h:65</a></div></div>
369
372
  <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>
370
- <div class="ttc" id="aclassSVF_1_1AccessPath_html_a586c71842e3e4487921aa3384ce9d025"><div class="ttname"><a href="classSVF_1_1AccessPath.html#a586c71842e3e4487921aa3384ce9d025">SVF::AccessPath::getIdxOperandPairVec</a></div><div class="ttdeci">const IdxOperandPairs &amp; getIdxOperandPairVec() const</div><div class="ttdef"><b>Definition:</b> <a href="AccessPath_8h_source.html#l00106">AccessPath.h:106</a></div></div>
373
+ <div class="ttc" id="aclassSVF_1_1AccessPath_html_a586c71842e3e4487921aa3384ce9d025"><div class="ttname"><a href="classSVF_1_1AccessPath.html#a586c71842e3e4487921aa3384ce9d025">SVF::AccessPath::getIdxOperandPairVec</a></div><div class="ttdeci">const IdxOperandPairs &amp; getIdxOperandPairVec() const</div><div class="ttdef"><b>Definition:</b> <a href="AccessPath_8h_source.html#l00108">AccessPath.h:108</a></div></div>
371
374
  <div class="ttc" id="aclassSVF_1_1StInfo_html_aaf05447c20c9f90eea64ab6e88d6ab05"><div class="ttname"><a href="classSVF_1_1StInfo.html#aaf05447c20c9f90eea64ab6e88d6ab05">SVF::StInfo::getFlattenedFieldIdxVec</a></div><div class="ttdeci">std::vector&lt; u32_t &gt; &amp; getFlattenedFieldIdxVec()</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00180">SVFType.h:180</a></div></div>
372
375
  <div class="ttc" id="aclassSVF_1_1SVFType_html_a05850c17c2dbe42e5602dc8c9a70f3bd"><div class="ttname"><a href="classSVF_1_1SVFType.html#a05850c17c2dbe42e5602dc8c9a70f3bd">SVF::SVFType::getTypeInfo</a></div><div class="ttdeci">StInfo * getTypeInfo()</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00309">SVFType.h:309</a></div></div>
373
- <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#l00256">AccessPath.cpp:256</a></div></div>
376
+ <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#l00257">AccessPath.cpp:257</a></div></div>
374
377
  <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>
375
378
  <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>
376
379
  <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>
377
- <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#l00168">AccessPath.h:168</a></div></div>
378
- <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#l00312">AccessPath.cpp:312</a></div></div>
380
+ <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#l00174">AccessPath.h:174</a></div></div>
381
+ <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#l00314">AccessPath.cpp:314</a></div></div>
379
382
  <div class="ttc" id="aclassSVF_1_1Options_html_aaab923c093730b1670a54f09340b1bd5"><div class="ttname"><a href="classSVF_1_1Options.html#aaab923c093730b1670a54f09340b1bd5">SVF::Options::MaxFieldLimit</a></div><div class="ttdeci">static const Option&lt; u32_t &gt; MaxFieldLimit</div><div class="ttdoc">Maximum number of field derivations for an object.</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00038">Options.h:38</a></div></div>
380
383
  <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>
381
384
  <div class="ttc" id="aclassSVF_1_1StInfo_html_a055697f565cb9d73b41110090fe50159"><div class="ttname"><a href="classSVF_1_1StInfo.html#a055697f565cb9d73b41110090fe50159">SVF::StInfo::getOriginalElemType</a></div><div class="ttdeci">const SVFType * getOriginalElemType(u32_t fldIdx) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8cpp_source.html#l00026">SVFValue.cpp:26</a></div></div>