svf-tools 1.0.890 → 1.0.892

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 (343) hide show
  1. package/SVF-doxygen/html/AbstractExecution_8cpp_source.html +451 -450
  2. package/SVF-doxygen/html/AbstractExecution_8h_source.html +11 -11
  3. package/SVF-doxygen/html/AccessPath_8cpp_source.html +150 -147
  4. package/SVF-doxygen/html/AccessPath_8h_source.html +6 -6
  5. package/SVF-doxygen/html/Andersen_8cpp_source.html +1 -1
  6. package/SVF-doxygen/html/BufOverflowChecker_8cpp_source.html +426 -425
  7. package/SVF-doxygen/html/BufOverflowChecker_8h_source.html +2 -2
  8. package/SVF-doxygen/html/CFLAlias_8cpp_source.html +1 -1
  9. package/SVF-doxygen/html/ConsG_8cpp_source.html +1 -1
  10. package/SVF-doxygen/html/CppUtil_8cpp_source.html +4 -4
  11. package/SVF-doxygen/html/CxtStmt_8h_source.html +1 -1
  12. package/SVF-doxygen/html/DCHG_8cpp_source.html +1 -1
  13. package/SVF-doxygen/html/DDAClient_8cpp_source.html +1 -1
  14. package/SVF-doxygen/html/ICFGBuilder_8cpp_source.html +1 -1
  15. package/SVF-doxygen/html/ICFGSimplification_8cpp_source.html +43 -44
  16. package/SVF-doxygen/html/ICFGWTO_8h_source.html +4 -4
  17. package/SVF-doxygen/html/ICFG_8cpp_source.html +1 -1
  18. package/SVF-doxygen/html/LLVMModule_8cpp_source.html +556 -556
  19. package/SVF-doxygen/html/LLVMModule_8h_source.html +15 -15
  20. package/SVF-doxygen/html/LLVMUtil_8cpp_source.html +552 -525
  21. package/SVF-doxygen/html/LLVMUtil_8h.html +2 -0
  22. package/SVF-doxygen/html/LLVMUtil_8h_source.html +55 -52
  23. package/SVF-doxygen/html/LockResultValidator_8cpp_source.html +1 -1
  24. package/SVF-doxygen/html/MHP_8cpp_source.html +1 -1
  25. package/SVF-doxygen/html/MTAAnnotator_8cpp_source.html +1 -1
  26. package/SVF-doxygen/html/MTAResultValidator_8cpp_source.html +1 -1
  27. package/SVF-doxygen/html/MemSSA_8cpp_source.html +1 -1
  28. package/SVF-doxygen/html/ObjTypeInference_8cpp.html +1 -1
  29. package/SVF-doxygen/html/ObjTypeInference_8cpp_source.html +3 -3
  30. package/SVF-doxygen/html/PointerAnalysis_8cpp_source.html +1 -1
  31. package/SVF-doxygen/html/SVFIR2ItvExeState_8cpp_source.html +828 -827
  32. package/SVF-doxygen/html/SVFIR2ItvExeState_8h_source.html +20 -20
  33. package/SVF-doxygen/html/SVFIRBuilder_8cpp_source.html +7 -7
  34. package/SVF-doxygen/html/SVFIRBuilder_8h_source.html +1 -1
  35. package/SVF-doxygen/html/SVFIRExtAPI_8cpp_source.html +2 -2
  36. package/SVF-doxygen/html/SVFStatements_8cpp_source.html +1 -1
  37. package/SVF-doxygen/html/SVFStatements_8h_source.html +1 -1
  38. package/SVF-doxygen/html/SVFValue_8cpp_source.html +1 -1
  39. package/SVF-doxygen/html/SVFValue_8h_source.html +1 -1
  40. package/SVF-doxygen/html/SVFVariables_8cpp_source.html +1 -1
  41. package/SVF-doxygen/html/Steensgaard_8cpp_source.html +1 -1
  42. package/SVF-doxygen/html/SymbolTableBuilder_8cpp_source.html +9 -9
  43. package/SVF-doxygen/html/SymbolTableInfo_8cpp_source.html +1 -1
  44. package/SVF-doxygen/html/WTO_8h.html +1 -0
  45. package/SVF-doxygen/html/WTO_8h_source.html +812 -811
  46. package/SVF-doxygen/html/ae_8cpp.html +46 -47
  47. package/SVF-doxygen/html/ae_8cpp_source.html +46 -47
  48. package/SVF-doxygen/html/classSVF_1_1AEAPI.html +432 -431
  49. package/SVF-doxygen/html/classSVF_1_1AbstractExecution.html +22 -22
  50. package/SVF-doxygen/html/classSVF_1_1AccessPath.html +136 -133
  51. package/SVF-doxygen/html/classSVF_1_1ActualINSVFGNode.html +1 -1
  52. package/SVF-doxygen/html/classSVF_1_1ActualOUTSVFGNode.html +1 -1
  53. package/SVF-doxygen/html/classSVF_1_1AddrStmt.html +1 -1
  54. package/SVF-doxygen/html/classSVF_1_1AliasDDAClient.html +1 -1
  55. package/SVF-doxygen/html/classSVF_1_1Andersen.html +1 -1
  56. package/SVF-doxygen/html/classSVF_1_1BinaryOPStmt.html +1 -1
  57. package/SVF-doxygen/html/classSVF_1_1BinaryOPVFGNode.html +1 -1
  58. package/SVF-doxygen/html/classSVF_1_1BranchStmt.html +1 -1
  59. package/SVF-doxygen/html/classSVF_1_1BufOverflowCheckerAPI.html +82 -81
  60. package/SVF-doxygen/html/classSVF_1_1CFLAlias.html +1 -1
  61. package/SVF-doxygen/html/classSVF_1_1CallCFGEdge.html +1 -1
  62. package/SVF-doxygen/html/classSVF_1_1CallPE.html +1 -1
  63. package/SVF-doxygen/html/classSVF_1_1CmpStmt.html +1 -1
  64. package/SVF-doxygen/html/classSVF_1_1CmpVFGNode.html +1 -1
  65. package/SVF-doxygen/html/classSVF_1_1CopyStmt.html +1 -1
  66. package/SVF-doxygen/html/classSVF_1_1CxtStmt.html +1 -1
  67. package/SVF-doxygen/html/classSVF_1_1CxtThread.html +1 -1
  68. package/SVF-doxygen/html/classSVF_1_1CxtThreadStmt.html +1 -1
  69. package/SVF-doxygen/html/classSVF_1_1DCHGraph.html +1 -1
  70. package/SVF-doxygen/html/classSVF_1_1DoubleFreeChecker.html +1 -1
  71. package/SVF-doxygen/html/classSVF_1_1FIObjVar.html +1 -1
  72. package/SVF-doxygen/html/classSVF_1_1ForkJoinAnalysis.html +1 -1
  73. package/SVF-doxygen/html/classSVF_1_1GepObjVar.html +1 -1
  74. package/SVF-doxygen/html/classSVF_1_1GepStmt.html +2 -2
  75. package/SVF-doxygen/html/classSVF_1_1GepValVar.html +1 -1
  76. package/SVF-doxygen/html/classSVF_1_1ICFG.html +1 -1
  77. package/SVF-doxygen/html/classSVF_1_1ICFGBuilder.html +1 -1
  78. package/SVF-doxygen/html/classSVF_1_1ICFGSimplification.html +43 -44
  79. package/SVF-doxygen/html/classSVF_1_1InterMSSAPHISVFGNode.html +1 -1
  80. package/SVF-doxygen/html/classSVF_1_1InterPHIVFGNode.html +1 -1
  81. package/SVF-doxygen/html/classSVF_1_1IntraCFGEdge.html +1 -1
  82. package/SVF-doxygen/html/classSVF_1_1IntraICFGNode.html +1 -1
  83. package/SVF-doxygen/html/classSVF_1_1IntraPHIVFGNode.html +1 -1
  84. package/SVF-doxygen/html/classSVF_1_1LLVMModuleSet.html +538 -538
  85. package/SVF-doxygen/html/classSVF_1_1LeakChecker.html +1 -1
  86. package/SVF-doxygen/html/classSVF_1_1LoadStmt.html +1 -1
  87. package/SVF-doxygen/html/classSVF_1_1LockResultValidator.html +1 -1
  88. package/SVF-doxygen/html/classSVF_1_1MHP.html +1 -1
  89. package/SVF-doxygen/html/classSVF_1_1MTAAnnotator.html +1 -1
  90. package/SVF-doxygen/html/classSVF_1_1MTAResultValidator.html +1 -1
  91. package/SVF-doxygen/html/classSVF_1_1MemObj.html +1 -1
  92. package/SVF-doxygen/html/classSVF_1_1MemSSA.html +1 -1
  93. package/SVF-doxygen/html/classSVF_1_1ObjTypeInference.html +3 -3
  94. package/SVF-doxygen/html/classSVF_1_1ObjVar.html +1 -1
  95. package/SVF-doxygen/html/classSVF_1_1PHIVFGNode.html +1 -1
  96. package/SVF-doxygen/html/classSVF_1_1PhiStmt.html +1 -1
  97. package/SVF-doxygen/html/classSVF_1_1PointerAnalysis.html +1 -1
  98. package/SVF-doxygen/html/classSVF_1_1RaceResultValidator.html +1 -1
  99. package/SVF-doxygen/html/classSVF_1_1RetCFGEdge.html +1 -1
  100. package/SVF-doxygen/html/classSVF_1_1RetPE.html +1 -1
  101. package/SVF-doxygen/html/classSVF_1_1SVFIR2ItvExeState.html +792 -791
  102. package/SVF-doxygen/html/classSVF_1_1SVFIRBuilder.html +8 -8
  103. package/SVF-doxygen/html/classSVF_1_1SVFValue.html +23 -23
  104. package/SVF-doxygen/html/classSVF_1_1SelectStmt.html +1 -1
  105. package/SVF-doxygen/html/classSVF_1_1Steensgaard.html +1 -1
  106. package/SVF-doxygen/html/classSVF_1_1StoreStmt.html +1 -1
  107. package/SVF-doxygen/html/classSVF_1_1SymbolTableBuilder.html +8 -8
  108. package/SVF-doxygen/html/classSVF_1_1TCT.html +1 -1
  109. package/SVF-doxygen/html/classSVF_1_1TDForkPE.html +1 -1
  110. package/SVF-doxygen/html/classSVF_1_1TDJoinPE.html +1 -1
  111. package/SVF-doxygen/html/classSVF_1_1UnaryOPStmt.html +1 -1
  112. package/SVF-doxygen/html/classSVF_1_1UnaryOPVFGNode.html +1 -1
  113. package/SVF-doxygen/html/classSVF_1_1ValVar.html +1 -1
  114. package/SVF-doxygen/html/classSVF_1_1WTO.html +253 -253
  115. package/SVF-doxygen/html/classSVF_1_1WTOComponent.html +21 -21
  116. package/SVF-doxygen/html/classSVF_1_1WTOComponentVisitor.html +3 -3
  117. package/SVF-doxygen/html/classSVF_1_1WTOCycle.html +61 -61
  118. package/SVF-doxygen/html/classSVF_1_1WTOCycleDepth.html +115 -115
  119. package/SVF-doxygen/html/classSVF_1_1WTONode.html +31 -31
  120. package/SVF-doxygen/html/classSVF_1_1WTO_1_1WTOCycleDepthBuilder.html +31 -31
  121. package/SVF-doxygen/html/globals_vars.html +3 -3
  122. package/SVF-doxygen/html/globals_z.html +3 -3
  123. package/SVF-doxygen/html/namespaceSVF_1_1LLVMUtil.html +529 -483
  124. package/SVF-doxygen/html/namespaceSVF_1_1cppUtil.html +2 -2
  125. package/SVF-doxygen/html/namespacemembers_func_r.html +3 -0
  126. package/SVF-doxygen/html/namespacemembers_r.html +3 -0
  127. package/SVF-doxygen/html/search/all_11.js +54 -53
  128. package/SVF-doxygen/html/search/all_12.js +570 -570
  129. package/SVF-doxygen/html/search/all_13.js +207 -207
  130. package/SVF-doxygen/html/search/all_14.js +70 -70
  131. package/SVF-doxygen/html/search/all_15.js +176 -176
  132. package/SVF-doxygen/html/search/all_16.js +77 -77
  133. package/SVF-doxygen/html/search/all_17.js +1 -1
  134. package/SVF-doxygen/html/search/all_18.js +1 -1
  135. package/SVF-doxygen/html/search/all_19.js +26 -26
  136. package/SVF-doxygen/html/search/all_1a.js +180 -180
  137. package/SVF-doxygen/html/search/classes_0.js +29 -29
  138. package/SVF-doxygen/html/search/classes_1.js +12 -12
  139. package/SVF-doxygen/html/search/classes_10.js +74 -74
  140. package/SVF-doxygen/html/search/classes_11.js +14 -14
  141. package/SVF-doxygen/html/search/classes_12.js +2 -2
  142. package/SVF-doxygen/html/search/classes_13.js +10 -10
  143. package/SVF-doxygen/html/search/classes_14.js +19 -19
  144. package/SVF-doxygen/html/search/classes_15.js +1 -1
  145. package/SVF-doxygen/html/search/classes_2.js +73 -73
  146. package/SVF-doxygen/html/search/classes_3.js +35 -35
  147. package/SVF-doxygen/html/search/classes_4.js +8 -8
  148. package/SVF-doxygen/html/search/classes_5.js +28 -28
  149. package/SVF-doxygen/html/search/classes_6.js +98 -98
  150. package/SVF-doxygen/html/search/classes_7.js +38 -38
  151. package/SVF-doxygen/html/search/classes_8.js +59 -59
  152. package/SVF-doxygen/html/search/classes_9.js +1 -1
  153. package/SVF-doxygen/html/search/classes_a.js +12 -12
  154. package/SVF-doxygen/html/search/classes_b.js +29 -29
  155. package/SVF-doxygen/html/search/classes_c.js +6 -6
  156. package/SVF-doxygen/html/search/classes_d.js +19 -19
  157. package/SVF-doxygen/html/search/classes_e.js +36 -36
  158. package/SVF-doxygen/html/search/classes_f.js +25 -25
  159. package/SVF-doxygen/html/search/defines_0.js +3 -3
  160. package/SVF-doxygen/html/search/defines_1.js +3 -3
  161. package/SVF-doxygen/html/search/defines_10.js +2 -2
  162. package/SVF-doxygen/html/search/defines_2.js +30 -30
  163. package/SVF-doxygen/html/search/defines_3.js +20 -20
  164. package/SVF-doxygen/html/search/defines_4.js +3 -3
  165. package/SVF-doxygen/html/search/defines_5.js +4 -4
  166. package/SVF-doxygen/html/search/defines_6.js +2 -2
  167. package/SVF-doxygen/html/search/defines_7.js +5 -5
  168. package/SVF-doxygen/html/search/defines_8.js +11 -11
  169. package/SVF-doxygen/html/search/defines_9.js +9 -9
  170. package/SVF-doxygen/html/search/defines_a.js +2 -2
  171. package/SVF-doxygen/html/search/defines_b.js +1 -1
  172. package/SVF-doxygen/html/search/defines_c.js +4 -4
  173. package/SVF-doxygen/html/search/defines_d.js +2 -2
  174. package/SVF-doxygen/html/search/defines_e.js +8 -8
  175. package/SVF-doxygen/html/search/defines_f.js +4 -4
  176. package/SVF-doxygen/html/search/enums_0.js +4 -4
  177. package/SVF-doxygen/html/search/enums_1.js +2 -2
  178. package/SVF-doxygen/html/search/enums_10.js +1 -1
  179. package/SVF-doxygen/html/search/enums_11.js +1 -1
  180. package/SVF-doxygen/html/search/enums_2.js +8 -8
  181. package/SVF-doxygen/html/search/enums_3.js +1 -1
  182. package/SVF-doxygen/html/search/enums_4.js +4 -4
  183. package/SVF-doxygen/html/search/enums_5.js +1 -1
  184. package/SVF-doxygen/html/search/enums_6.js +2 -2
  185. package/SVF-doxygen/html/search/enums_7.js +2 -2
  186. package/SVF-doxygen/html/search/enums_8.js +4 -4
  187. package/SVF-doxygen/html/search/enums_9.js +1 -1
  188. package/SVF-doxygen/html/search/enums_a.js +1 -1
  189. package/SVF-doxygen/html/search/enums_b.js +7 -7
  190. package/SVF-doxygen/html/search/enums_c.js +1 -1
  191. package/SVF-doxygen/html/search/enums_d.js +4 -4
  192. package/SVF-doxygen/html/search/enums_e.js +2 -2
  193. package/SVF-doxygen/html/search/enums_f.js +4 -4
  194. package/SVF-doxygen/html/search/enumvalues_0.js +15 -15
  195. package/SVF-doxygen/html/search/enumvalues_1.js +15 -15
  196. package/SVF-doxygen/html/search/enumvalues_10.js +35 -35
  197. package/SVF-doxygen/html/search/enumvalues_11.js +4 -4
  198. package/SVF-doxygen/html/search/enumvalues_12.js +10 -10
  199. package/SVF-doxygen/html/search/enumvalues_13.js +1 -1
  200. package/SVF-doxygen/html/search/enumvalues_14.js +1 -1
  201. package/SVF-doxygen/html/search/enumvalues_15.js +3 -3
  202. package/SVF-doxygen/html/search/enumvalues_2.js +36 -36
  203. package/SVF-doxygen/html/search/enumvalues_3.js +13 -13
  204. package/SVF-doxygen/html/search/enumvalues_4.js +2 -2
  205. package/SVF-doxygen/html/search/enumvalues_5.js +47 -47
  206. package/SVF-doxygen/html/search/enumvalues_6.js +6 -6
  207. package/SVF-doxygen/html/search/enumvalues_7.js +8 -8
  208. package/SVF-doxygen/html/search/enumvalues_8.js +23 -23
  209. package/SVF-doxygen/html/search/enumvalues_9.js +6 -6
  210. package/SVF-doxygen/html/search/enumvalues_a.js +17 -17
  211. package/SVF-doxygen/html/search/enumvalues_b.js +11 -11
  212. package/SVF-doxygen/html/search/enumvalues_c.js +5 -5
  213. package/SVF-doxygen/html/search/enumvalues_d.js +18 -18
  214. package/SVF-doxygen/html/search/enumvalues_e.js +9 -9
  215. package/SVF-doxygen/html/search/enumvalues_f.js +47 -47
  216. package/SVF-doxygen/html/search/files_0.js +16 -16
  217. package/SVF-doxygen/html/search/files_1.js +9 -9
  218. package/SVF-doxygen/html/search/files_10.js +8 -8
  219. package/SVF-doxygen/html/search/files_11.js +8 -8
  220. package/SVF-doxygen/html/search/files_12.js +2 -2
  221. package/SVF-doxygen/html/search/files_2.js +53 -53
  222. package/SVF-doxygen/html/search/files_3.js +14 -14
  223. package/SVF-doxygen/html/search/files_4.js +5 -5
  224. package/SVF-doxygen/html/search/files_5.js +13 -13
  225. package/SVF-doxygen/html/search/files_6.js +10 -10
  226. package/SVF-doxygen/html/search/files_7.js +17 -17
  227. package/SVF-doxygen/html/search/files_8.js +13 -13
  228. package/SVF-doxygen/html/search/files_9.js +18 -18
  229. package/SVF-doxygen/html/search/files_a.js +3 -3
  230. package/SVF-doxygen/html/search/files_b.js +4 -4
  231. package/SVF-doxygen/html/search/files_c.js +20 -20
  232. package/SVF-doxygen/html/search/files_d.js +4 -4
  233. package/SVF-doxygen/html/search/files_e.js +62 -62
  234. package/SVF-doxygen/html/search/files_f.js +8 -8
  235. package/SVF-doxygen/html/search/functions_0.js +13 -13
  236. package/SVF-doxygen/html/search/functions_1.js +369 -369
  237. package/SVF-doxygen/html/search/functions_10.js +140 -140
  238. package/SVF-doxygen/html/search/functions_11.js +140 -139
  239. package/SVF-doxygen/html/search/functions_12.js +299 -299
  240. package/SVF-doxygen/html/search/functions_13.js +73 -73
  241. package/SVF-doxygen/html/search/functions_14.js +41 -41
  242. package/SVF-doxygen/html/search/functions_15.js +72 -72
  243. package/SVF-doxygen/html/search/functions_16.js +38 -38
  244. package/SVF-doxygen/html/search/functions_17.js +3 -3
  245. package/SVF-doxygen/html/search/functions_18.js +180 -180
  246. package/SVF-doxygen/html/search/functions_2.js +95 -95
  247. package/SVF-doxygen/html/search/functions_3.js +261 -261
  248. package/SVF-doxygen/html/search/functions_4.js +84 -84
  249. package/SVF-doxygen/html/search/functions_5.js +57 -57
  250. package/SVF-doxygen/html/search/functions_6.js +65 -65
  251. package/SVF-doxygen/html/search/functions_7.js +863 -863
  252. package/SVF-doxygen/html/search/functions_8.js +162 -162
  253. package/SVF-doxygen/html/search/functions_9.js +439 -439
  254. package/SVF-doxygen/html/search/functions_a.js +30 -30
  255. package/SVF-doxygen/html/search/functions_b.js +2 -2
  256. package/SVF-doxygen/html/search/functions_c.js +25 -25
  257. package/SVF-doxygen/html/search/functions_d.js +82 -82
  258. package/SVF-doxygen/html/search/functions_e.js +36 -36
  259. package/SVF-doxygen/html/search/functions_f.js +58 -58
  260. package/SVF-doxygen/html/search/namespaces_0.js +1 -1
  261. package/SVF-doxygen/html/search/namespaces_1.js +7 -7
  262. package/SVF-doxygen/html/search/related_0.js +4 -4
  263. package/SVF-doxygen/html/search/related_1.js +2 -2
  264. package/SVF-doxygen/html/search/related_2.js +2 -2
  265. package/SVF-doxygen/html/search/related_3.js +2 -2
  266. package/SVF-doxygen/html/search/related_4.js +2 -2
  267. package/SVF-doxygen/html/search/related_5.js +1 -1
  268. package/SVF-doxygen/html/search/related_6.js +2 -2
  269. package/SVF-doxygen/html/search/related_7.js +5 -5
  270. package/SVF-doxygen/html/search/related_8.js +2 -2
  271. package/SVF-doxygen/html/search/related_9.js +4 -4
  272. package/SVF-doxygen/html/search/related_a.js +19 -19
  273. package/SVF-doxygen/html/search/related_b.js +4 -4
  274. package/SVF-doxygen/html/search/related_c.js +2 -2
  275. package/SVF-doxygen/html/search/related_d.js +12 -12
  276. package/SVF-doxygen/html/search/related_e.js +2 -2
  277. package/SVF-doxygen/html/search/related_f.js +2 -2
  278. package/SVF-doxygen/html/search/typedefs_0.js +19 -19
  279. package/SVF-doxygen/html/search/typedefs_1.js +27 -27
  280. package/SVF-doxygen/html/search/typedefs_10.js +63 -63
  281. package/SVF-doxygen/html/search/typedefs_11.js +13 -13
  282. package/SVF-doxygen/html/search/typedefs_12.js +11 -11
  283. package/SVF-doxygen/html/search/typedefs_13.js +40 -40
  284. package/SVF-doxygen/html/search/typedefs_14.js +11 -11
  285. package/SVF-doxygen/html/search/typedefs_2.js +125 -125
  286. package/SVF-doxygen/html/search/typedefs_3.js +39 -39
  287. package/SVF-doxygen/html/search/typedefs_4.js +17 -17
  288. package/SVF-doxygen/html/search/typedefs_5.js +42 -42
  289. package/SVF-doxygen/html/search/typedefs_6.js +54 -54
  290. package/SVF-doxygen/html/search/typedefs_7.js +47 -47
  291. package/SVF-doxygen/html/search/typedefs_8.js +1 -1
  292. package/SVF-doxygen/html/search/typedefs_9.js +6 -6
  293. package/SVF-doxygen/html/search/typedefs_a.js +29 -29
  294. package/SVF-doxygen/html/search/typedefs_b.js +29 -29
  295. package/SVF-doxygen/html/search/typedefs_c.js +41 -41
  296. package/SVF-doxygen/html/search/typedefs_d.js +15 -15
  297. package/SVF-doxygen/html/search/typedefs_e.js +52 -52
  298. package/SVF-doxygen/html/search/typedefs_f.js +14 -14
  299. package/SVF-doxygen/html/search/variables_0.js +177 -177
  300. package/SVF-doxygen/html/search/variables_1.js +76 -76
  301. package/SVF-doxygen/html/search/variables_10.js +98 -98
  302. package/SVF-doxygen/html/search/variables_11.js +46 -46
  303. package/SVF-doxygen/html/search/variables_12.js +93 -93
  304. package/SVF-doxygen/html/search/variables_13.js +76 -76
  305. package/SVF-doxygen/html/search/variables_14.js +14 -14
  306. package/SVF-doxygen/html/search/variables_15.js +49 -49
  307. package/SVF-doxygen/html/search/variables_16.js +11 -11
  308. package/SVF-doxygen/html/search/variables_17.js +1 -1
  309. package/SVF-doxygen/html/search/variables_18.js +17 -17
  310. package/SVF-doxygen/html/search/variables_2.js +41 -41
  311. package/SVF-doxygen/html/search/variables_3.js +142 -142
  312. package/SVF-doxygen/html/search/variables_4.js +51 -51
  313. package/SVF-doxygen/html/search/variables_5.js +39 -39
  314. package/SVF-doxygen/html/search/variables_6.js +66 -66
  315. package/SVF-doxygen/html/search/variables_7.js +34 -34
  316. package/SVF-doxygen/html/search/variables_8.js +8 -8
  317. package/SVF-doxygen/html/search/variables_9.js +79 -79
  318. package/SVF-doxygen/html/search/variables_a.js +4 -4
  319. package/SVF-doxygen/html/search/variables_b.js +10 -10
  320. package/SVF-doxygen/html/search/variables_c.js +45 -45
  321. package/SVF-doxygen/html/search/variables_d.js +57 -57
  322. package/SVF-doxygen/html/search/variables_e.js +123 -123
  323. package/SVF-doxygen/html/search/variables_f.js +31 -31
  324. package/SVF-doxygen/html/structSVF_1_1DOTGraphTraits_3_01ConstraintGraph_01_5_01_4.html +1 -1
  325. package/SVF-doxygen/html/structSVF_1_1has__edgetype.html +1 -1
  326. package/SVF-doxygen/html/structSVF_1_1has__edgetype_3_01T_00_01std_1_1void__t_3_01typename_01T_1_1EdgeType_01_4_01_4.html +1 -1
  327. package/SVF-doxygen/html/structSVF_1_1has__nodetype.html +1 -1
  328. package/SVF-doxygen/html/structSVF_1_1has__nodetype_3_01T_00_01std_1_1void__t_3_01typename_01T_1_1NodeType_01_4_01_4.html +1 -1
  329. package/SVF-doxygen/html/svf-ex_8cpp.html +12 -12
  330. package/SVF-doxygen/html/svf-ex_8cpp_source.html +12 -12
  331. package/SVF-doxygen/html/svf_2include_2MTA_2MTAResultValidator_8h_source.html +1 -1
  332. package/package.json +1 -1
  333. package/svf/include/Graphs/WTO.h +1 -0
  334. package/svf/lib/AE/Svfexe/AbstractExecution.cpp +1 -0
  335. package/svf/lib/AE/Svfexe/BufOverflowChecker.cpp +1 -0
  336. package/svf/lib/AE/Svfexe/ICFGSimplification.cpp +1 -2
  337. package/svf/lib/AE/Svfexe/SVFIR2ItvExeState.cpp +1 -0
  338. package/svf/lib/MemoryModel/AccessPath.cpp +4 -1
  339. package/svf-llvm/include/SVF-LLVM/LLVMUtil.h +2 -0
  340. package/svf-llvm/lib/LLVMModule.cpp +3 -4
  341. package/svf-llvm/lib/LLVMUtil.cpp +29 -2
  342. package/svf-llvm/lib/SVFIRBuilder.cpp +1 -1
  343. package/svf-llvm/tools/AE/ae.cpp +1 -2
@@ -201,7 +201,7 @@ $(function() {
201
201
  <div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> structByteOffset = 0;</div>
202
202
  <div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFConstantInt.html">SVFConstantInt</a> *op = SVFUtil::dyn_cast&lt;SVFConstantInt&gt;(idxValue))</div>
203
203
  <div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; {</div>
204
- <div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> structField = 0; structField &lt; (<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a>)op-&gt;getSExtValue(); ++structField)</div>
204
+ <div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> structField = 0; structField &lt; (<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a>) op-&gt;getSExtValue(); ++structField)</div>
205
205
  <div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; {</div>
206
206
  <div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> flattenIdx = idxOperandType-&gt;<a class="code" href="classSVF_1_1SVFType.html#a05850c17c2dbe42e5602dc8c9a70f3bd">getTypeInfo</a>()-&gt;<a class="code" href="classSVF_1_1StInfo.html#aaf05447c20c9f90eea64ab6e88d6ab05">getFlattenedFieldIdxVec</a>()[structField];</div>
207
207
  <div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; structByteOffset += idxOperandType-&gt;<a class="code" href="classSVF_1_1SVFType.html#a05850c17c2dbe42e5602dc8c9a70f3bd">getTypeInfo</a>()-&gt;<a class="code" href="classSVF_1_1StInfo.html#a055697f565cb9d73b41110090fe50159">getOriginalElemType</a>(flattenIdx)-&gt;<a class="code" href="classSVF_1_1SVFType.html#a95b8031f1e15d49c7d68628be1d05aae">getByteSize</a>();</div>
@@ -209,147 +209,150 @@ $(function() {
209
209
  <div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <span class="keywordflow">return</span> structByteOffset;</div>
210
210
  <div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; }</div>
211
211
  <div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="keywordflow">else</span></div>
212
- <div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; assert(<span class="keyword">false</span> &amp;&amp; <span class="stringliteral">&quot;struct type can only pair with constant idx&quot;</span>);</div>
213
- <div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;}</div>
214
- <div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; </div>
215
- <div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; </div>
216
- <div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160;<span class="comment">// struct inner{ int rollNumber; float percentage;};</span></div>
217
- <div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;<span class="comment">// struct Student { struct inner rollNumber; char studentName[10][3];}</span></div>
218
- <div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160;<span class="comment">// char x = studentRecord[1].studentName[3][2];</span></div>
219
- <div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; </div>
220
- <div class="line"><a name="l00209"></a><span class="lineno"><a class="line" href="classSVF_1_1AccessPath.html#ae746362c42da05a641ae062658e40651"> 209</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>
221
- <div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;<span class="keyword"></span>{</div>
222
- <div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; </div>
223
- <div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; assert(isConstantOffset() &amp;&amp; <span class="stringliteral">&quot;not a constant offset&quot;</span>);</div>
224
- <div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; </div>
225
- <div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; <a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> totalConstOffset = 0;</div>
226
- <div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; <span class="comment">//After the model-const and model-array options are turned on,</span></div>
227
- <div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; <span class="comment">// the gepstmt offset generated by the array on the global</span></div>
228
- <div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; <span class="comment">// node will be saved in getConstantStructFldIdx</span></div>
229
- <div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; <span class="keywordflow">if</span> (idxOperandPairs.size() == 0)</div>
230
- <div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; <span class="keywordflow">return</span> getConstantStructFldIdx();</div>
231
- <div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = idxOperandPairs.size() - 1; i &gt;= 0; i--)</div>
232
- <div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; {</div>
233
- <div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFValue.html">SVFValue</a>* value = idxOperandPairs[i].first-&gt;getValue();</div>
234
- <div class="line"><a name="l00223"></a><span class="lineno"> 223</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>
235
- <div class="line"><a name="l00224"></a><span class="lineno"> 224</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>
236
- <div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; assert(op &amp;&amp; <span class="stringliteral">&quot;not a constant offset?&quot;</span>);</div>
237
- <div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>==<span class="keyword">nullptr</span>)</div>
238
- <div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; {</div>
239
- <div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; totalConstOffset += op-&gt;<a class="code" href="classSVF_1_1SVFConstantInt.html#a73f04bdfc19261b65164b98787bc2ed4">getSExtValue</a>();</div>
240
- <div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; <span class="keywordflow">continue</span>;</div>
241
- <div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; }</div>
242
- <div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; </div>
243
- <div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; <span class="keywordflow">if</span>(SVFUtil::isa&lt;SVFPointerType&gt;(<a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>))</div>
244
- <div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; totalConstOffset += op-&gt;<a class="code" href="classSVF_1_1SVFConstantInt.html#a73f04bdfc19261b65164b98787bc2ed4">getSExtValue</a>() * getElementNum(gepPointeeType);</div>
245
- <div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; <span class="keywordflow">else</span></div>
246
- <div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; {</div>
247
- <div class="line"><a name="l00236"></a><span class="lineno"> 236</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>
248
- <div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="cJSON_8cpp.html#a95bf816579e97b6f33bdb5e25ed6d5de">offset</a> &gt;= 0)</div>
249
- <div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; {</div>
250
- <div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; <span class="keyword">const</span> std::vector&lt;u32_t&gt;&amp; so = <a class="code" href="classSVF_1_1SymbolTableInfo.html#a267169023fc4f8dd66b145f7231fec11">SymbolTableInfo::SymbolInfo</a>()-&gt;<a class="code" href="classSVF_1_1SymbolTableInfo.html#a5dc699aa85fe879eb4b2c9109cf3030d">getTypeInfo</a>(<a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>)-&gt;<a class="code" href="classSVF_1_1StInfo.html#a55e5fd85f232c1867c5c6a73646d53eb">getFlattenedElemIdxVec</a>();</div>
251
- <div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; <span class="comment">// if offset is larger than the size of getFlattenedElemIdxVec (overflow)</span></div>
252
- <div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; <span class="comment">// set offset the last index of getFlattenedElemIdxVec to avoid assertion</span></div>
253
- <div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="cJSON_8cpp.html#a95bf816579e97b6f33bdb5e25ed6d5de">offset</a> &gt;= (<a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a>)so.size())</div>
254
- <div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; {</div>
255
- <div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">SVFUtil::errs</a>() &lt;&lt; <span class="stringliteral">&quot;It is overflow access, we access the last idx\n&quot;</span>;</div>
256
- <div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; <a class="code" href="cJSON_8cpp.html#a95bf816579e97b6f33bdb5e25ed6d5de">offset</a> = so.size() - 1;</div>
257
- <div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; }</div>
258
- <div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; <span class="keywordflow">else</span></div>
259
- <div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; {</div>
260
- <div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; </div>
261
- <div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; }</div>
262
- <div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; </div>
263
- <div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> flattenOffset =</div>
264
- <div class="line"><a name="l00253"></a><span class="lineno"> 253</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>
265
- <div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; <a class="code" href="cJSON_8cpp.html#a95bf816579e97b6f33bdb5e25ed6d5de">offset</a>);</div>
266
- <div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; totalConstOffset += flattenOffset;</div>
267
- <div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; }</div>
268
- <div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; }</div>
269
- <div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; }</div>
270
- <div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; <span class="keywordflow">return</span> totalConstOffset;</div>
271
- <div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160;}</div>
272
- <div class="line"><a name="l00264"></a><span class="lineno"><a class="line" href="classSVF_1_1AccessPath.html#a76222b6571e46e8a8bd5c8c597c8ffaf"> 264</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>
273
- <div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160;<span class="keyword"></span>{</div>
274
- <div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a> result;</div>
275
- <div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; result.<a class="code" href="classSVF_1_1SparseBitVector.html#a61bd86909a141f9de873d92c0f904832">set</a>(getConstantStructFldIdx());</div>
276
- <div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; <span class="keywordflow">return</span> result;</div>
277
- <div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160;}</div>
278
- <div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; </div>
279
- <div class="line"><a name="l00271"></a><span class="lineno"><a class="line" href="classSVF_1_1AccessPath.html#a6591b6092a829b0c874754b649087aa2"> 271</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>
280
- <div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160;<span class="keyword"></span>{</div>
281
- <div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; assert(gepPointeeType == rhs.<a class="code" href="classSVF_1_1AccessPath.html#a7b4921dea37246f0f08dffa7db384a61">gepSrcPointeeType</a>() &amp;&amp; <span class="stringliteral">&quot;source element type not match&quot;</span>);</div>
282
- <div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; <a class="code" href="classSVF_1_1AccessPath.html">AccessPath</a> ap(rhs);</div>
283
- <div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; ap.<a class="code" href="classSVF_1_1AccessPath.html#aa1747064a0833855a5848ebf4a4d65fa">fldIdx</a> += getConstantStructFldIdx();</div>
284
- <div class="line"><a name="l00276"></a><span class="lineno"> 276</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>
285
- <div class="line"><a name="l00277"></a><span class="lineno"> 277</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>
286
- <div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; </div>
287
- <div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; <span class="keywordflow">return</span> ap;</div>
288
- <div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160;}</div>
212
+ <div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; {</div>
213
+ <div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; assert(<span class="keyword">false</span> &amp;&amp; <span class="stringliteral">&quot;struct type can only pair with constant idx&quot;</span>);</div>
214
+ <div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; abort();</div>
215
+ <div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; }</div>
216
+ <div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;}</div>
217
+ <div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; </div>
218
+ <div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; </div>
219
+ <div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160;<span class="comment">// struct inner{ int rollNumber; float percentage;};</span></div>
220
+ <div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;<span class="comment">// struct Student { struct inner rollNumber; char studentName[10][3];}</span></div>
221
+ <div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;<span class="comment">// char x = studentRecord[1].studentName[3][2];</span></div>
222
+ <div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; </div>
223
+ <div class="line"><a name="l00212"></a><span class="lineno"><a class="line" href="classSVF_1_1AccessPath.html#ae746362c42da05a641ae062658e40651"> 212</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>
224
+ <div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160;<span class="keyword"></span>{</div>
225
+ <div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; </div>
226
+ <div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; assert(isConstantOffset() &amp;&amp; <span class="stringliteral">&quot;not a constant offset&quot;</span>);</div>
227
+ <div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; </div>
228
+ <div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; <a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> totalConstOffset = 0;</div>
229
+ <div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; <span class="comment">//After the model-const and model-array options are turned on,</span></div>
230
+ <div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; <span class="comment">// the gepstmt offset generated by the array on the global</span></div>
231
+ <div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; <span class="comment">// node will be saved in getConstantStructFldIdx</span></div>
232
+ <div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; <span class="keywordflow">if</span> (idxOperandPairs.size() == 0)</div>
233
+ <div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; <span class="keywordflow">return</span> getConstantStructFldIdx();</div>
234
+ <div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = idxOperandPairs.size() - 1; i &gt;= 0; i--)</div>
235
+ <div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; {</div>
236
+ <div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFValue.html">SVFValue</a>* value = idxOperandPairs[i].first-&gt;getValue();</div>
237
+ <div class="line"><a name="l00226"></a><span class="lineno"> 226</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>
238
+ <div class="line"><a name="l00227"></a><span class="lineno"> 227</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>
239
+ <div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; assert(op &amp;&amp; <span class="stringliteral">&quot;not a constant offset?&quot;</span>);</div>
240
+ <div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>==<span class="keyword">nullptr</span>)</div>
241
+ <div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; {</div>
242
+ <div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; totalConstOffset += op-&gt;<a class="code" href="classSVF_1_1SVFConstantInt.html#a73f04bdfc19261b65164b98787bc2ed4">getSExtValue</a>();</div>
243
+ <div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; <span class="keywordflow">continue</span>;</div>
244
+ <div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; }</div>
245
+ <div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; </div>
246
+ <div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; <span class="keywordflow">if</span>(SVFUtil::isa&lt;SVFPointerType&gt;(<a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>))</div>
247
+ <div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; totalConstOffset += op-&gt;<a class="code" href="classSVF_1_1SVFConstantInt.html#a73f04bdfc19261b65164b98787bc2ed4">getSExtValue</a>() * getElementNum(gepPointeeType);</div>
248
+ <div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; <span class="keywordflow">else</span></div>
249
+ <div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; {</div>
250
+ <div class="line"><a name="l00239"></a><span class="lineno"> 239</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>
251
+ <div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="cJSON_8cpp.html#a95bf816579e97b6f33bdb5e25ed6d5de">offset</a> &gt;= 0)</div>
252
+ <div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; {</div>
253
+ <div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; <span class="keyword">const</span> std::vector&lt;u32_t&gt;&amp; so = <a class="code" href="classSVF_1_1SymbolTableInfo.html#a267169023fc4f8dd66b145f7231fec11">SymbolTableInfo::SymbolInfo</a>()-&gt;<a class="code" href="classSVF_1_1SymbolTableInfo.html#a5dc699aa85fe879eb4b2c9109cf3030d">getTypeInfo</a>(<a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>)-&gt;<a class="code" href="classSVF_1_1StInfo.html#a55e5fd85f232c1867c5c6a73646d53eb">getFlattenedElemIdxVec</a>();</div>
254
+ <div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; <span class="comment">// if offset is larger than the size of getFlattenedElemIdxVec (overflow)</span></div>
255
+ <div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; <span class="comment">// set offset the last index of getFlattenedElemIdxVec to avoid assertion</span></div>
256
+ <div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="cJSON_8cpp.html#a95bf816579e97b6f33bdb5e25ed6d5de">offset</a> &gt;= (<a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a>)so.size())</div>
257
+ <div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; {</div>
258
+ <div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">SVFUtil::errs</a>() &lt;&lt; <span class="stringliteral">&quot;It is overflow access, we access the last idx\n&quot;</span>;</div>
259
+ <div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; <a class="code" href="cJSON_8cpp.html#a95bf816579e97b6f33bdb5e25ed6d5de">offset</a> = so.size() - 1;</div>
260
+ <div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; }</div>
261
+ <div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; <span class="keywordflow">else</span></div>
262
+ <div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; {</div>
263
+ <div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; </div>
264
+ <div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; }</div>
265
+ <div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; </div>
266
+ <div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> flattenOffset =</div>
267
+ <div class="line"><a name="l00256"></a><span class="lineno"> 256</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>
268
+ <div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; <a class="code" href="cJSON_8cpp.html#a95bf816579e97b6f33bdb5e25ed6d5de">offset</a>);</div>
269
+ <div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; totalConstOffset += flattenOffset;</div>
270
+ <div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; }</div>
271
+ <div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; }</div>
272
+ <div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; }</div>
273
+ <div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; <span class="keywordflow">return</span> totalConstOffset;</div>
274
+ <div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160;}</div>
275
+ <div class="line"><a name="l00267"></a><span class="lineno"><a class="line" href="classSVF_1_1AccessPath.html#a76222b6571e46e8a8bd5c8c597c8ffaf"> 267</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>
276
+ <div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160;<span class="keyword"></span>{</div>
277
+ <div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a> result;</div>
278
+ <div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; result.<a class="code" href="classSVF_1_1SparseBitVector.html#a61bd86909a141f9de873d92c0f904832">set</a>(getConstantStructFldIdx());</div>
279
+ <div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; <span class="keywordflow">return</span> result;</div>
280
+ <div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160;}</div>
281
+ <div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; </div>
282
+ <div class="line"><a name="l00274"></a><span class="lineno"><a class="line" href="classSVF_1_1AccessPath.html#a6591b6092a829b0c874754b649087aa2"> 274</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>
283
+ <div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160;<span class="keyword"></span>{</div>
284
+ <div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; assert(gepPointeeType == rhs.<a class="code" href="classSVF_1_1AccessPath.html#a7b4921dea37246f0f08dffa7db384a61">gepSrcPointeeType</a>() &amp;&amp; <span class="stringliteral">&quot;source element type not match&quot;</span>);</div>
285
+ <div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; <a class="code" href="classSVF_1_1AccessPath.html">AccessPath</a> ap(rhs);</div>
286
+ <div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; ap.<a class="code" href="classSVF_1_1AccessPath.html#aa1747064a0833855a5848ebf4a4d65fa">fldIdx</a> += getConstantStructFldIdx();</div>
287
+ <div class="line"><a name="l00279"></a><span class="lineno"> 279</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>
288
+ <div class="line"><a name="l00280"></a><span class="lineno"> 280</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>
289
289
  <div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; </div>
290
- <div class="line"><a name="l00282"></a><span class="lineno"><a class="line" href="classSVF_1_1AccessPath.html#ae0f38a5f473af89678db2755667c3421"> 282</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>
291
- <div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160;<span class="keyword"></span>{</div>
292
- <div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; <span class="keywordflow">if</span> (fldIdx != rhs.<a class="code" href="classSVF_1_1AccessPath.html#aa1747064a0833855a5848ebf4a4d65fa">fldIdx</a>)</div>
293
- <div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; <span class="keywordflow">return</span> (fldIdx &lt; rhs.<a class="code" href="classSVF_1_1AccessPath.html#aa1747064a0833855a5848ebf4a4d65fa">fldIdx</a>);</div>
294
- <div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; <span class="keywordflow">else</span></div>
295
- <div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; {</div>
296
- <div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1AccessPath.html#a04ca154a70f40999a6a28c505bfd942d">IdxOperandPairs</a>&amp; pairVec = getIdxOperandPairVec();</div>
297
- <div class="line"><a name="l00289"></a><span class="lineno"> 289</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>
298
- <div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; <span class="keywordflow">if</span> (pairVec.size() != rhsPairVec.size())</div>
299
- <div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; <span class="keywordflow">return</span> (pairVec.size() &lt; rhsPairVec.size());</div>
300
- <div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; <span class="keywordflow">else</span></div>
301
- <div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; {</div>
302
- <div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; IdxOperandPairs::const_iterator it = pairVec.begin();</div>
303
- <div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; IdxOperandPairs::const_iterator rhsIt = rhsPairVec.begin();</div>
304
- <div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; <span class="keywordflow">for</span> (; it != pairVec.end() &amp;&amp; rhsIt != rhsPairVec.end(); ++it, ++rhsIt)</div>
305
- <div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; {</div>
306
- <div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; <span class="keywordflow">return</span> (*it) &lt; (*rhsIt);</div>
307
- <div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; }</div>
308
- <div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; </div>
309
- <div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
310
- <div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; }</div>
311
- <div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; }</div>
312
- <div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160;}</div>
313
- <div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; </div>
314
- <div class="line"><a name="l00306"></a><span class="lineno"><a class="line" href="classSVF_1_1AccessPath.html#a98b8b3428479259fbafd9e527ecc09bb"> 306</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>
315
- <div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160;{</div>
316
- <div class="line"><a name="l00308"></a><span class="lineno"> 308</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>
317
- <div class="line"><a name="l00309"></a><span class="lineno"> 309</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>
318
- <div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; <span class="keywordflow">if</span> (lhsLocations.<a class="code" href="classSVF_1_1SparseBitVector.html#a16756e0545fd3d50ab89f45a2e83bb79">intersects</a>(rhsLocations))</div>
319
- <div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; {</div>
320
- <div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; <span class="keywordflow">if</span> (lhsLocations == rhsLocations)</div>
321
- <div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; <span class="keywordflow">return</span> Same;</div>
322
- <div class="line"><a name="l00314"></a><span class="lineno"> 314</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>
323
- <div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; <span class="keywordflow">return</span> Superset;</div>
324
- <div class="line"><a name="l00316"></a><span class="lineno"> 316</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>
325
- <div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; <span class="keywordflow">return</span> Subset;</div>
326
- <div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; <span class="keywordflow">else</span></div>
327
- <div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; <span class="keywordflow">return</span> Overlap;</div>
328
- <div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; }</div>
329
- <div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; <span class="keywordflow">else</span></div>
330
- <div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; {</div>
331
- <div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; <span class="keywordflow">return</span> NonOverlap;</div>
332
- <div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; }</div>
333
- <div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160;}</div>
334
- <div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; </div>
335
- <div class="line"><a name="l00328"></a><span class="lineno"><a class="line" href="classSVF_1_1AccessPath.html#a4519477605a58d5821d05951a88abcd0"> 328</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>
336
- <div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160;<span class="keyword"></span>{</div>
337
- <div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> str;</div>
338
- <div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160; std::stringstream rawstr(str);</div>
339
- <div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; </div>
340
- <div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot;AccessPath\tField_Index: &quot;</span> &lt;&lt; getConstantStructFldIdx();</div>
341
- <div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot;,\tNum-Stride: {&quot;</span>;</div>
342
- <div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1AccessPath.html#a04ca154a70f40999a6a28c505bfd942d">IdxOperandPairs</a>&amp; vec = getIdxOperandPairVec();</div>
343
- <div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; IdxOperandPairs::const_iterator it = vec.begin();</div>
344
- <div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; IdxOperandPairs::const_iterator eit = vec.end();</div>
345
- <div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; <span class="keywordflow">for</span> (; it != eit; ++it)</div>
346
- <div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; {</div>
347
- <div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* ty = it-&gt;second;</div>
348
- <div class="line"><a name="l00341"></a><span class="lineno"> 341</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>
349
- <div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160; }</div>
350
- <div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot; }\n&quot;</span>;</div>
351
- <div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; <span class="keywordflow">return</span> rawstr.str();</div>
352
- <div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160;}</div>
290
+ <div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; <span class="keywordflow">return</span> ap;</div>
291
+ <div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160;}</div>
292
+ <div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; </div>
293
+ <div class="line"><a name="l00285"></a><span class="lineno"><a class="line" href="classSVF_1_1AccessPath.html#ae0f38a5f473af89678db2755667c3421"> 285</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>
294
+ <div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160;<span class="keyword"></span>{</div>
295
+ <div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; <span class="keywordflow">if</span> (fldIdx != rhs.<a class="code" href="classSVF_1_1AccessPath.html#aa1747064a0833855a5848ebf4a4d65fa">fldIdx</a>)</div>
296
+ <div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; <span class="keywordflow">return</span> (fldIdx &lt; rhs.<a class="code" href="classSVF_1_1AccessPath.html#aa1747064a0833855a5848ebf4a4d65fa">fldIdx</a>);</div>
297
+ <div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; <span class="keywordflow">else</span></div>
298
+ <div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; {</div>
299
+ <div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1AccessPath.html#a04ca154a70f40999a6a28c505bfd942d">IdxOperandPairs</a>&amp; pairVec = getIdxOperandPairVec();</div>
300
+ <div class="line"><a name="l00292"></a><span class="lineno"> 292</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>
301
+ <div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; <span class="keywordflow">if</span> (pairVec.size() != rhsPairVec.size())</div>
302
+ <div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; <span class="keywordflow">return</span> (pairVec.size() &lt; rhsPairVec.size());</div>
303
+ <div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; <span class="keywordflow">else</span></div>
304
+ <div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; {</div>
305
+ <div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; IdxOperandPairs::const_iterator it = pairVec.begin();</div>
306
+ <div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; IdxOperandPairs::const_iterator rhsIt = rhsPairVec.begin();</div>
307
+ <div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; <span class="keywordflow">for</span> (; it != pairVec.end() &amp;&amp; rhsIt != rhsPairVec.end(); ++it, ++rhsIt)</div>
308
+ <div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; {</div>
309
+ <div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; <span class="keywordflow">return</span> (*it) &lt; (*rhsIt);</div>
310
+ <div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; }</div>
311
+ <div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; </div>
312
+ <div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
313
+ <div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; }</div>
314
+ <div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; }</div>
315
+ <div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160;}</div>
316
+ <div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; </div>
317
+ <div class="line"><a name="l00309"></a><span class="lineno"><a class="line" href="classSVF_1_1AccessPath.html#a98b8b3428479259fbafd9e527ecc09bb"> 309</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>
318
+ <div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160;{</div>
319
+ <div class="line"><a name="l00311"></a><span class="lineno"> 311</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>
320
+ <div class="line"><a name="l00312"></a><span class="lineno"> 312</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>
321
+ <div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; <span class="keywordflow">if</span> (lhsLocations.<a class="code" href="classSVF_1_1SparseBitVector.html#a16756e0545fd3d50ab89f45a2e83bb79">intersects</a>(rhsLocations))</div>
322
+ <div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; {</div>
323
+ <div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; <span class="keywordflow">if</span> (lhsLocations == rhsLocations)</div>
324
+ <div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; <span class="keywordflow">return</span> Same;</div>
325
+ <div class="line"><a name="l00317"></a><span class="lineno"> 317</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>
326
+ <div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; <span class="keywordflow">return</span> Superset;</div>
327
+ <div class="line"><a name="l00319"></a><span class="lineno"> 319</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>
328
+ <div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; <span class="keywordflow">return</span> Subset;</div>
329
+ <div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; <span class="keywordflow">else</span></div>
330
+ <div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; <span class="keywordflow">return</span> Overlap;</div>
331
+ <div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; }</div>
332
+ <div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; <span class="keywordflow">else</span></div>
333
+ <div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; {</div>
334
+ <div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; <span class="keywordflow">return</span> NonOverlap;</div>
335
+ <div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; }</div>
336
+ <div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160;}</div>
337
+ <div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; </div>
338
+ <div class="line"><a name="l00331"></a><span class="lineno"><a class="line" href="classSVF_1_1AccessPath.html#a4519477605a58d5821d05951a88abcd0"> 331</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>
339
+ <div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160;<span class="keyword"></span>{</div>
340
+ <div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> str;</div>
341
+ <div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; std::stringstream rawstr(str);</div>
342
+ <div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; </div>
343
+ <div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot;AccessPath\tField_Index: &quot;</span> &lt;&lt; getConstantStructFldIdx();</div>
344
+ <div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot;,\tNum-Stride: {&quot;</span>;</div>
345
+ <div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1AccessPath.html#a04ca154a70f40999a6a28c505bfd942d">IdxOperandPairs</a>&amp; vec = getIdxOperandPairVec();</div>
346
+ <div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; IdxOperandPairs::const_iterator it = vec.begin();</div>
347
+ <div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; IdxOperandPairs::const_iterator eit = vec.end();</div>
348
+ <div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; <span class="keywordflow">for</span> (; it != eit; ++it)</div>
349
+ <div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160; {</div>
350
+ <div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* ty = it-&gt;second;</div>
351
+ <div class="line"><a name="l00344"></a><span class="lineno"> 344</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>
352
+ <div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; }</div>
353
+ <div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot; }\n&quot;</span>;</div>
354
+ <div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160; <span class="keywordflow">return</span> rawstr.str();</div>
355
+ <div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160;}</div>
353
356
  </div><!-- fragment --></div><!-- contents -->
354
357
  <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#l00164">AccessPath.cpp:164</a></div></div>
355
358
  <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="GeneralType_8h_source.html#l00056">GeneralType.h:56</a></div></div>
@@ -361,16 +364,16 @@ $(function() {
361
364
  <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#l00066">BasicTypes.h:66</a></div></div>
362
365
  <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>
363
366
  <div class="ttc" id="aAccessPath_8h_html"><div class="ttname"><a href="AccessPath_8h.html">AccessPath.h</a></div></div>
364
- <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#l00282">AccessPath.cpp:282</a></div></div>
367
+ <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#l00285">AccessPath.cpp:285</a></div></div>
365
368
  <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>
366
369
  <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>
367
370
  <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>
368
- <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#l00264">AccessPath.cpp:264</a></div></div>
371
+ <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#l00267">AccessPath.cpp:267</a></div></div>
369
372
  <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>
370
373
  <div class="ttc" id="aSVFUtil_8h_html"><div class="ttname"><a href="SVFUtil_8h.html">SVFUtil.h</a></div></div>
371
374
  <div class="ttc" id="aOptions_8h_html"><div class="ttname"><a href="Options_8h.html">Options.h</a></div></div>
372
375
  <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#l00180">SymbolTableInfo.cpp:180</a></div></div>
373
- <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#l00306">AccessPath.cpp:306</a></div></div>
376
+ <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#l00309">AccessPath.cpp:309</a></div></div>
374
377
  <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>
375
378
  <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>
376
379
  <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#l00377">SVFType.h:377</a></div></div>
@@ -379,7 +382,7 @@ $(function() {
379
382
  <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>
380
383
  <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#l00156">SVFType.h:156</a></div></div>
381
384
  <div class="ttc" id="aclassSVF_1_1SVFStructType_html"><div class="ttname"><a href="classSVF_1_1SVFStructType.html">SVF::SVFStructType</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00344">SVFType.h:344</a></div></div>
382
- <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">For example,.</div><div class="ttdef"><b>Definition:</b> <a href="AccessPath_8cpp_source.html#l00209">AccessPath.cpp:209</a></div></div>
385
+ <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">For example,.</div><div class="ttdef"><b>Definition:</b> <a href="AccessPath_8cpp_source.html#l00212">AccessPath.cpp:212</a></div></div>
383
386
  <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#l00966">SVFValue.h:966</a></div></div>
384
387
  <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>
385
388
  <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>
@@ -388,12 +391,12 @@ $(function() {
388
391
  <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>
389
392
  <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#l00094">SVFType.h:94</a></div></div>
390
393
  <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#l00230">SVFType.h:230</a></div></div>
391
- <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#l00271">AccessPath.cpp:271</a></div></div>
394
+ <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#l00274">AccessPath.cpp:274</a></div></div>
392
395
  <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>
393
396
  <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>
394
397
  <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>
395
398
  <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>
396
- <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#l00328">AccessPath.cpp:328</a></div></div>
399
+ <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#l00331">AccessPath.cpp:331</a></div></div>
397
400
  <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>
398
401
  <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>
399
402
  <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>