svf-tools 1.0.328 → 1.0.332

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 (281) hide show
  1. package/SVF-doxygen/html/html/AndersenHCD_8cpp_source.html +1 -1
  2. package/SVF-doxygen/html/html/AndersenSCD_8cpp_source.html +1 -1
  3. package/SVF-doxygen/html/html/AndersenSFR_8cpp_source.html +7 -7
  4. package/SVF-doxygen/html/html/AndersenSFR_8h_source.html +4 -4
  5. package/SVF-doxygen/html/html/AndersenWaveDiff_8cpp_source.html +1 -1
  6. package/SVF-doxygen/html/html/Andersen_8cpp_source.html +38 -38
  7. package/SVF-doxygen/html/html/Andersen_8h_source.html +6 -6
  8. package/SVF-doxygen/html/html/CSC_8cpp_source.html +2 -3
  9. package/SVF-doxygen/html/html/ConsGEdge_8h_source.html +3 -3
  10. package/SVF-doxygen/html/html/ConsGNode_8h_source.html +5 -5
  11. package/SVF-doxygen/html/html/ConsG_8cpp_source.html +2 -2
  12. package/SVF-doxygen/html/html/ConsG_8h_source.html +4 -4
  13. package/SVF-doxygen/html/html/ContextDDA_8cpp_source.html +6 -6
  14. package/SVF-doxygen/html/html/ContextDDA_8h_source.html +1 -1
  15. package/SVF-doxygen/html/html/DDAClient_8cpp_source.html +1 -1
  16. package/SVF-doxygen/html/html/DDAStat_8cpp_source.html +1 -1
  17. package/SVF-doxygen/html/html/DDAVFSolver_8h_source.html +6 -6
  18. package/SVF-doxygen/html/html/FSMPTA_8cpp_source.html +1 -1
  19. package/SVF-doxygen/html/html/FlowDDA_8cpp_source.html +2 -2
  20. package/SVF-doxygen/html/html/FlowDDA_8h_source.html +2 -2
  21. package/SVF-doxygen/html/html/FlowSensitiveStat_8cpp_source.html +3 -3
  22. package/SVF-doxygen/html/html/FlowSensitiveTBHC_8cpp_source.html +3 -3
  23. package/SVF-doxygen/html/html/FlowSensitive_8cpp_source.html +1 -1
  24. package/SVF-doxygen/html/html/ICFGNode_8h_source.html +3 -3
  25. package/SVF-doxygen/html/html/IRAnnotator_8h_source.html +6 -7
  26. package/SVF-doxygen/html/html/IRGraph_8cpp_source.html +1 -1
  27. package/SVF-doxygen/html/html/IRGraph_8h_source.html +1 -1
  28. package/SVF-doxygen/html/html/LocationSet_8cpp.html +1 -0
  29. package/SVF-doxygen/html/html/LocationSet_8cpp_source.html +12 -15
  30. package/SVF-doxygen/html/html/LocationSet_8h.html +1 -1
  31. package/SVF-doxygen/html/html/LocationSet_8h_source.html +26 -40
  32. package/SVF-doxygen/html/html/MemRegion_8cpp_source.html +5 -5
  33. package/SVF-doxygen/html/html/OfflineConsG_8cpp_source.html +1 -1
  34. package/SVF-doxygen/html/html/PAGBuilderFromFile_8cpp_source.html +2 -2
  35. package/SVF-doxygen/html/html/PTAStat_8cpp_source.html +15 -15
  36. package/SVF-doxygen/html/html/PointerAnalysisImpl_8cpp_source.html +10 -10
  37. package/SVF-doxygen/html/html/PointerAnalysisImpl_8h_source.html +2 -2
  38. package/SVF-doxygen/html/html/PointerAnalysis_8cpp_source.html +28 -29
  39. package/SVF-doxygen/html/html/PointerAnalysis_8h_source.html +29 -29
  40. package/SVF-doxygen/html/html/SVFIRBuilder_8cpp_source.html +12 -4
  41. package/SVF-doxygen/html/html/SVFIRBuilder_8h_source.html +71 -70
  42. package/SVF-doxygen/html/html/SVFIR_8cpp_source.html +12 -12
  43. package/SVF-doxygen/html/html/SVFIR_8h_source.html +12 -12
  44. package/SVF-doxygen/html/html/SVFStatements_8h_source.html +3 -3
  45. package/SVF-doxygen/html/html/SVFVariables_8cpp_source.html +2 -2
  46. package/SVF-doxygen/html/html/SVFVariables_8h.html +1 -1
  47. package/SVF-doxygen/html/html/SVFVariables_8h_source.html +69 -69
  48. package/SVF-doxygen/html/html/SaberSVFGBuilder_8cpp_source.html +4 -4
  49. package/SVF-doxygen/html/html/Steensgaard_8h_source.html +1 -1
  50. package/SVF-doxygen/html/html/SymbolTableBuilder_8cpp_source.html +21 -21
  51. package/SVF-doxygen/html/html/SymbolTableBuilder_8h_source.html +1 -1
  52. package/SVF-doxygen/html/html/SymbolTableInfo_8cpp_source.html +52 -63
  53. package/SVF-doxygen/html/html/SymbolTableInfo_8h_source.html +72 -79
  54. package/SVF-doxygen/html/html/ThreadCallGraph_8cpp_source.html +3 -3
  55. package/SVF-doxygen/html/html/TypeAnalysis_8cpp_source.html +2 -2
  56. package/SVF-doxygen/html/html/TypeBasedHeapCloning_8cpp_source.html +13 -13
  57. package/SVF-doxygen/html/html/TypeBasedHeapCloning_8h_source.html +2 -2
  58. package/SVF-doxygen/html/html/VersionedFlowSensitiveStat_8cpp_source.html +3 -3
  59. package/SVF-doxygen/html/html/annotated.html +6 -6
  60. package/SVF-doxygen/html/html/classSVF_1_1Andersen-members.html +1 -1
  61. package/SVF-doxygen/html/html/classSVF_1_1Andersen.html +79 -79
  62. package/SVF-doxygen/html/html/classSVF_1_1AndersenBase-members.html +1 -1
  63. package/SVF-doxygen/html/html/classSVF_1_1AndersenBase.html +23 -24
  64. package/SVF-doxygen/html/html/classSVF_1_1AndersenHCD-members.html +1 -1
  65. package/SVF-doxygen/html/html/classSVF_1_1AndersenHCD.html +9 -9
  66. package/SVF-doxygen/html/html/classSVF_1_1AndersenHLCD-members.html +1 -1
  67. package/SVF-doxygen/html/html/classSVF_1_1AndersenHLCD.html +4 -4
  68. package/SVF-doxygen/html/html/classSVF_1_1AndersenLCD-members.html +1 -1
  69. package/SVF-doxygen/html/html/classSVF_1_1AndersenLCD.html +11 -11
  70. package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD-members.html +1 -1
  71. package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD.html +13 -13
  72. package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR-members.html +1 -1
  73. package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR.html +13 -13
  74. package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff-members.html +1 -1
  75. package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff.html +11 -11
  76. package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl-members.html +1 -1
  77. package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl.html +17 -17
  78. package/SVF-doxygen/html/html/classSVF_1_1CSC.html +2 -3
  79. package/SVF-doxygen/html/html/classSVF_1_1CallBlockNode-members.html +4 -4
  80. package/SVF-doxygen/html/html/classSVF_1_1CallBlockNode.html +4 -4
  81. package/SVF-doxygen/html/html/classSVF_1_1CloneDummyObjVar.html +11 -11
  82. package/SVF-doxygen/html/html/classSVF_1_1CloneFIObjVar.html +11 -11
  83. package/SVF-doxygen/html/html/classSVF_1_1CloneGepObjVar-members.html +56 -55
  84. package/SVF-doxygen/html/html/classSVF_1_1CloneGepObjVar.html +44 -41
  85. package/SVF-doxygen/html/html/classSVF_1_1CloneGepObjVar.png +0 -0
  86. package/SVF-doxygen/html/html/classSVF_1_1CondPTAImpl-members.html +1 -1
  87. package/SVF-doxygen/html/html/classSVF_1_1CondPTAImpl.html +7 -7
  88. package/SVF-doxygen/html/html/classSVF_1_1ConstraintGraph.html +3 -3
  89. package/SVF-doxygen/html/html/classSVF_1_1ConstraintNode-members.html +26 -26
  90. package/SVF-doxygen/html/html/classSVF_1_1ConstraintNode.html +43 -43
  91. package/SVF-doxygen/html/html/classSVF_1_1ContextDDA-members.html +1 -1
  92. package/SVF-doxygen/html/html/classSVF_1_1ContextDDA.html +9 -9
  93. package/SVF-doxygen/html/html/classSVF_1_1DDAPass.html +3 -3
  94. package/SVF-doxygen/html/html/classSVF_1_1DDAStat.html +1 -1
  95. package/SVF-doxygen/html/html/classSVF_1_1DDAVFSolver.html +1 -1
  96. package/SVF-doxygen/html/html/classSVF_1_1DummyObjVar.html +11 -11
  97. package/SVF-doxygen/html/html/classSVF_1_1DummyValVar.html +11 -11
  98. package/SVF-doxygen/html/html/classSVF_1_1FIObjVar.html +13 -13
  99. package/SVF-doxygen/html/html/classSVF_1_1FSMPTA-members.html +1 -1
  100. package/SVF-doxygen/html/html/classSVF_1_1FSMPTA.html +4 -4
  101. package/SVF-doxygen/html/html/classSVF_1_1FlattenedFieldInfo-members.html +85 -0
  102. package/SVF-doxygen/html/html/classSVF_1_1FlattenedFieldInfo.html +254 -0
  103. package/SVF-doxygen/html/html/classSVF_1_1FlowDDA-members.html +1 -1
  104. package/SVF-doxygen/html/html/classSVF_1_1FlowDDA.html +7 -7
  105. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive-members.html +1 -1
  106. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive.html +9 -9
  107. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveStat.html +3 -3
  108. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveTBHC-members.html +1 -1
  109. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveTBHC.html +10 -10
  110. package/SVF-doxygen/html/html/classSVF_1_1FunEntryBlockNode-members.html +2 -2
  111. package/SVF-doxygen/html/html/classSVF_1_1FunEntryBlockNode.html +4 -4
  112. package/SVF-doxygen/html/html/classSVF_1_1FunExitBlockNode-members.html +2 -2
  113. package/SVF-doxygen/html/html/classSVF_1_1FunExitBlockNode.html +4 -4
  114. package/SVF-doxygen/html/html/classSVF_1_1FunptrDDAClient.html +1 -1
  115. package/SVF-doxygen/html/html/classSVF_1_1GenericNode.html +22 -23
  116. package/SVF-doxygen/html/html/classSVF_1_1GenericNode.png +0 -0
  117. package/SVF-doxygen/html/html/classSVF_1_1GepObjPN.html +3 -3
  118. package/SVF-doxygen/html/html/classSVF_1_1GepObjVar-members.html +173 -0
  119. package/SVF-doxygen/html/html/classSVF_1_1GepObjVar.html +813 -0
  120. package/SVF-doxygen/html/html/classSVF_1_1GepObjVar.png +0 -0
  121. package/SVF-doxygen/html/html/classSVF_1_1GepValVar.html +2 -2
  122. package/SVF-doxygen/html/html/classSVF_1_1GlobalBlockNode-members.html +2 -2
  123. package/SVF-doxygen/html/html/classSVF_1_1GlobalBlockNode.html +4 -4
  124. package/SVF-doxygen/html/html/classSVF_1_1ICFGNode-members.html +2 -2
  125. package/SVF-doxygen/html/html/classSVF_1_1ICFGNode.html +10 -10
  126. package/SVF-doxygen/html/html/classSVF_1_1IRAnnotator-members.html +1 -1
  127. package/SVF-doxygen/html/html/classSVF_1_1IRAnnotator.html +8 -8
  128. package/SVF-doxygen/html/html/classSVF_1_1InterBlockNode-members.html +2 -2
  129. package/SVF-doxygen/html/html/classSVF_1_1InterBlockNode.html +4 -4
  130. package/SVF-doxygen/html/html/classSVF_1_1IntraBlockNode-members.html +2 -2
  131. package/SVF-doxygen/html/html/classSVF_1_1IntraBlockNode.html +4 -4
  132. package/SVF-doxygen/html/html/classSVF_1_1LocationSet-members.html +17 -21
  133. package/SVF-doxygen/html/html/classSVF_1_1LocationSet.html +150 -326
  134. package/SVF-doxygen/html/html/classSVF_1_1MRGenerator.html +6 -6
  135. package/SVF-doxygen/html/html/classSVF_1_1MemObj.html +84 -84
  136. package/SVF-doxygen/html/html/classSVF_1_1NormalGepCGEdge.html +2 -2
  137. package/SVF-doxygen/html/html/classSVF_1_1NormalGepStmt.html +2 -2
  138. package/SVF-doxygen/html/html/classSVF_1_1ObjTypeInfo.html +96 -96
  139. package/SVF-doxygen/html/html/classSVF_1_1ObjVar.html +5 -5
  140. package/SVF-doxygen/html/html/classSVF_1_1ObjVar.png +0 -0
  141. package/SVF-doxygen/html/html/classSVF_1_1PAGBuilderFromFile.html +2 -2
  142. package/SVF-doxygen/html/html/classSVF_1_1PTAStat.html +15 -15
  143. package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis-members.html +1 -1
  144. package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.html +75 -73
  145. package/SVF-doxygen/html/html/classSVF_1_1RetBlockNode-members.html +2 -2
  146. package/SVF-doxygen/html/html/classSVF_1_1RetBlockNode.html +4 -4
  147. package/SVF-doxygen/html/html/classSVF_1_1RetPN.html +11 -11
  148. package/SVF-doxygen/html/html/classSVF_1_1SVFIR.html +26 -26
  149. package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder-members.html +57 -56
  150. package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder.html +302 -230
  151. package/SVF-doxygen/html/html/classSVF_1_1SVFVar.html +4 -4
  152. package/SVF-doxygen/html/html/classSVF_1_1SVFVar.png +0 -0
  153. package/SVF-doxygen/html/html/classSVF_1_1SaberSVFGBuilder.html +4 -4
  154. package/SVF-doxygen/html/html/classSVF_1_1StInfo-members.html +11 -14
  155. package/SVF-doxygen/html/html/classSVF_1_1StInfo.html +70 -168
  156. package/SVF-doxygen/html/html/classSVF_1_1Steensgaard-members.html +1 -1
  157. package/SVF-doxygen/html/html/classSVF_1_1Steensgaard.html +4 -4
  158. package/SVF-doxygen/html/html/classSVF_1_1SymbolTableBuilder.html +30 -30
  159. package/SVF-doxygen/html/html/classSVF_1_1SymbolTableInfo-members.html +20 -24
  160. package/SVF-doxygen/html/html/classSVF_1_1SymbolTableInfo.html +109 -291
  161. package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraph.html +3 -3
  162. package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis-members.html +1 -1
  163. package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis.html +9 -9
  164. package/SVF-doxygen/html/html/classSVF_1_1TypeBasedHeapCloning.html +18 -18
  165. package/SVF-doxygen/html/html/classSVF_1_1VarArgPN.html +11 -11
  166. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive-members.html +1 -1
  167. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive.html +3 -3
  168. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitiveStat.html +3 -3
  169. package/SVF-doxygen/html/html/classes.html +6 -6
  170. package/SVF-doxygen/html/html/functions_a.html +15 -12
  171. package/SVF-doxygen/html/html/functions_b.html +1 -5
  172. package/SVF-doxygen/html/html/functions_c.html +19 -20
  173. package/SVF-doxygen/html/html/functions_d.html +1 -1
  174. package/SVF-doxygen/html/html/functions_e.html +0 -16
  175. package/SVF-doxygen/html/html/functions_f.html +21 -19
  176. package/SVF-doxygen/html/html/functions_func.html +14 -11
  177. package/SVF-doxygen/html/html/functions_func_c.html +16 -17
  178. package/SVF-doxygen/html/html/functions_func_d.html +1 -1
  179. package/SVF-doxygen/html/html/functions_func_e.html +2 -8
  180. package/SVF-doxygen/html/html/functions_func_f.html +4 -4
  181. package/SVF-doxygen/html/html/functions_func_g.html +43 -65
  182. package/SVF-doxygen/html/html/functions_func_i.html +11 -14
  183. package/SVF-doxygen/html/html/functions_func_s.html +6 -9
  184. package/SVF-doxygen/html/html/functions_func_t.html +1 -1
  185. package/SVF-doxygen/html/html/functions_func_w.html +1 -1
  186. package/SVF-doxygen/html/html/functions_g.html +44 -66
  187. package/SVF-doxygen/html/html/functions_i.html +6 -9
  188. package/SVF-doxygen/html/html/functions_l.html +4 -4
  189. package/SVF-doxygen/html/html/functions_n.html +4 -7
  190. package/SVF-doxygen/html/html/functions_o.html +25 -20
  191. package/SVF-doxygen/html/html/functions_p.html +12 -16
  192. package/SVF-doxygen/html/html/functions_s.html +17 -20
  193. package/SVF-doxygen/html/html/functions_t.html +6 -8
  194. package/SVF-doxygen/html/html/functions_type_e.html +0 -4
  195. package/SVF-doxygen/html/html/functions_type_o.html +3 -0
  196. package/SVF-doxygen/html/html/functions_vars_b.html +1 -5
  197. package/SVF-doxygen/html/html/functions_vars_c.html +1 -1
  198. package/SVF-doxygen/html/html/functions_vars_e.html +0 -6
  199. package/SVF-doxygen/html/html/functions_vars_f.html +9 -7
  200. package/SVF-doxygen/html/html/functions_vars_l.html +1 -1
  201. package/SVF-doxygen/html/html/functions_vars_n.html +0 -3
  202. package/SVF-doxygen/html/html/functions_vars_o.html +2 -2
  203. package/SVF-doxygen/html/html/functions_w.html +6 -10
  204. package/SVF-doxygen/html/html/hierarchy.html +64 -64
  205. package/SVF-doxygen/html/html/namespaceSVF.html +3 -3
  206. package/SVF-doxygen/html/html/search/all_1.js +4 -3
  207. package/SVF-doxygen/html/html/search/all_10.js +6 -6
  208. package/SVF-doxygen/html/html/search/all_12.js +1 -1
  209. package/SVF-doxygen/html/html/search/all_13.js +4 -5
  210. package/SVF-doxygen/html/html/search/all_14.js +6 -6
  211. package/SVF-doxygen/html/html/search/all_15.js +1 -1
  212. package/SVF-doxygen/html/html/search/all_17.js +2 -2
  213. package/SVF-doxygen/html/html/search/all_2.js +2 -3
  214. package/SVF-doxygen/html/html/search/all_3.js +5 -5
  215. package/SVF-doxygen/html/html/search/all_4.js +1 -1
  216. package/SVF-doxygen/html/html/search/all_5.js +0 -5
  217. package/SVF-doxygen/html/html/search/all_6.js +6 -5
  218. package/SVF-doxygen/html/html/search/all_7.js +16 -24
  219. package/SVF-doxygen/html/html/search/all_9.js +2 -3
  220. package/SVF-doxygen/html/html/search/all_c.js +4 -4
  221. package/SVF-doxygen/html/html/search/all_e.js +1 -2
  222. package/SVF-doxygen/html/html/search/all_f.js +5 -4
  223. package/SVF-doxygen/html/html/search/classes_5.js +1 -1
  224. package/SVF-doxygen/html/html/search/classes_6.js +1 -1
  225. package/SVF-doxygen/html/html/search/functions_0.js +4 -3
  226. package/SVF-doxygen/html/html/search/functions_10.js +2 -3
  227. package/SVF-doxygen/html/html/search/functions_11.js +1 -1
  228. package/SVF-doxygen/html/html/search/functions_14.js +1 -1
  229. package/SVF-doxygen/html/html/search/functions_2.js +3 -3
  230. package/SVF-doxygen/html/html/search/functions_3.js +1 -1
  231. package/SVF-doxygen/html/html/search/functions_4.js +0 -2
  232. package/SVF-doxygen/html/html/search/functions_5.js +1 -1
  233. package/SVF-doxygen/html/html/search/functions_6.js +16 -24
  234. package/SVF-doxygen/html/html/search/functions_8.js +1 -2
  235. package/SVF-doxygen/html/html/search/functions_a.js +1 -1
  236. package/SVF-doxygen/html/html/search/functions_e.js +1 -1
  237. package/SVF-doxygen/html/html/search/typedefs_4.js +0 -1
  238. package/SVF-doxygen/html/html/search/typedefs_e.js +1 -0
  239. package/SVF-doxygen/html/html/search/variables_14.js +2 -2
  240. package/SVF-doxygen/html/html/search/variables_15.js +1 -1
  241. package/SVF-doxygen/html/html/search/variables_2.js +2 -3
  242. package/SVF-doxygen/html/html/search/variables_3.js +1 -1
  243. package/SVF-doxygen/html/html/search/variables_5.js +0 -2
  244. package/SVF-doxygen/html/html/search/variables_6.js +5 -4
  245. package/SVF-doxygen/html/html/search/variables_c.js +1 -1
  246. package/SVF-doxygen/html/html/search/variables_e.js +0 -1
  247. package/SVF-doxygen/html/html/search/variables_f.js +1 -1
  248. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01ConstraintGraph_01_5_01_4.html +1 -1
  249. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01IRGraph_01_5_01_4.html +1 -1
  250. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01OfflineConsG_01_5_01_4.html +1 -1
  251. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1LocationSet_01_4.html +5 -5
  252. package/include/Graphs/ConsG.h +1 -1
  253. package/include/Graphs/ConsGEdge.h +1 -1
  254. package/include/Graphs/ICFGNode.h +2 -2
  255. package/include/MemoryModel/LocationSet.h +39 -126
  256. package/include/MemoryModel/PointerAnalysis.h +1 -1
  257. package/include/MemoryModel/SVFIR.h +1 -1
  258. package/include/MemoryModel/SVFStatements.h +1 -1
  259. package/include/MemoryModel/SVFVariables.h +17 -11
  260. package/include/MemoryModel/SymbolTableInfo.h +27 -31
  261. package/include/SVF-FE/SVFIRBuilder.h +6 -1
  262. package/include/Util/IRAnnotator.h +3 -3
  263. package/lib/DDA/ContextDDA.cpp +1 -1
  264. package/lib/Graphs/ConsG.cpp +1 -1
  265. package/lib/Graphs/IRGraph.cpp +1 -1
  266. package/lib/Graphs/OfflineConsG.cpp +1 -1
  267. package/lib/MemoryModel/LocationSet.cpp +53 -95
  268. package/lib/MemoryModel/PointerAnalysis.cpp +4 -2
  269. package/lib/MemoryModel/PointerAnalysisImpl.cpp +4 -4
  270. package/lib/MemoryModel/SVFIR.cpp +4 -4
  271. package/lib/MemoryModel/SVFVariables.cpp +2 -2
  272. package/lib/MemoryModel/SymbolTableInfo.cpp +36 -210
  273. package/lib/SABER/SaberSVFGBuilder.cpp +1 -1
  274. package/lib/SVF-FE/SVFIRBuilder.cpp +136 -8
  275. package/lib/SVF-FE/SymbolTableBuilder.cpp +4 -4
  276. package/lib/Util/TypeBasedHeapCloning.cpp +10 -10
  277. package/lib/WPA/Andersen.cpp +1 -5
  278. package/lib/WPA/AndersenSFR.cpp +2 -2
  279. package/lib/WPA/CSC.cpp +1 -1
  280. package/lib/WPA/FlowSensitiveTBHC.cpp +6 -6
  281. package/package.json +1 -1
@@ -73,7 +73,7 @@ $(function() {
73
73
  <tr><td class="entry"><a class="el" href="classSVF_1_1RetBlockNode.html#ad2cd6f6589ce5464d6fbcac49f115714">addActualRet</a>(const SVFVar *ar)</td><td class="entry"><a class="el" href="classSVF_1_1RetBlockNode.html">SVF::RetBlockNode</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
74
74
  <tr class="even"><td class="entry"><a class="el" href="classSVF_1_1GenericNode.html#a93d217b0c9fd8008a2989ca2b4f3fbfb">addIncomingEdge</a>(EdgeType *inEdge)</td><td class="entry"><a class="el" href="classSVF_1_1GenericNode.html">SVF::GenericNode&lt; NodeTy, EdgeTy &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
75
75
  <tr><td class="entry"><a class="el" href="classSVF_1_1GenericNode.html#ae74283fbc788665296a69e56f334557b">addOutgoingEdge</a>(EdgeType *outEdge)</td><td class="entry"><a class="el" href="classSVF_1_1GenericNode.html">SVF::GenericNode&lt; NodeTy, EdgeTy &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
76
- <tr class="even"><td class="entry"><a class="el" href="classSVF_1_1ICFGNode.html#a820364ef4158270478e9c09e11b6c2ea">addPAGEdge</a>(const SVFStmt *edge)</td><td class="entry"><a class="el" href="classSVF_1_1ICFGNode.html">SVF::ICFGNode</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
76
+ <tr class="even"><td class="entry"><a class="el" href="classSVF_1_1ICFGNode.html#a8a133398c691ab3639ceefbc57cd33be">addSVFStmt</a>(const SVFStmt *edge)</td><td class="entry"><a class="el" href="classSVF_1_1ICFGNode.html">SVF::ICFGNode</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
77
77
  <tr><td class="entry"><a class="el" href="classSVF_1_1ICFGNode.html#aff18898b9bbd85d08b00d64d48eea6a5">addVFGNode</a>(const VFGNode *vfgNode)</td><td class="entry"><a class="el" href="classSVF_1_1ICFGNode.html">SVF::ICFGNode</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
78
78
  <tr class="even"><td class="entry"><a class="el" href="classSVF_1_1ICFGNode.html#ad3c5171fed4e28cfd35c1a6fb9697005">bb</a></td><td class="entry"><a class="el" href="classSVF_1_1ICFGNode.html">SVF::ICFGNode</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
79
79
  <tr><td class="entry"><a class="el" href="classSVF_1_1RetBlockNode.html#aa135efaadc44746c585cb295b8b2bf77">callBlockNode</a></td><td class="entry"><a class="el" href="classSVF_1_1RetBlockNode.html">SVF::RetBlockNode</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
@@ -110,7 +110,7 @@ $(function() {
110
110
  <tr class="even"><td class="entry"><a class="el" href="classSVF_1_1GenericNode.html#afc8b5f86d7795b6a0dfc0687d942d79b">getInEdges</a>() const</td><td class="entry"><a class="el" href="classSVF_1_1GenericNode.html">SVF::GenericNode&lt; NodeTy, EdgeTy &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
111
111
  <tr><td class="entry"><a class="el" href="classSVF_1_1GenericNode.html#a391e996d695b114530120723da1d003e">getNodeKind</a>() const</td><td class="entry"><a class="el" href="classSVF_1_1GenericNode.html">SVF::GenericNode&lt; NodeTy, EdgeTy &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
112
112
  <tr class="even"><td class="entry"><a class="el" href="classSVF_1_1GenericNode.html#a2d9cd758d6f8c5189d9b90b74f43e009">getOutEdges</a>() const</td><td class="entry"><a class="el" href="classSVF_1_1GenericNode.html">SVF::GenericNode&lt; NodeTy, EdgeTy &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
113
- <tr><td class="entry"><a class="el" href="classSVF_1_1ICFGNode.html#a23707d08fd5cfcb5db72ff4ef0b864ff">getPAGEdges</a>() const</td><td class="entry"><a class="el" href="classSVF_1_1ICFGNode.html">SVF::ICFGNode</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
113
+ <tr><td class="entry"><a class="el" href="classSVF_1_1ICFGNode.html#a6c68f52dd90728073fb79141df9b0661">getSVFStmts</a>() const</td><td class="entry"><a class="el" href="classSVF_1_1ICFGNode.html">SVF::ICFGNode</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
114
114
  <tr class="even"><td class="entry"><a class="el" href="classSVF_1_1ICFGNode.html#abcc53637a634f7ec92b9c7861b941601">getVFGNodes</a>() const</td><td class="entry"><a class="el" href="classSVF_1_1ICFGNode.html">SVF::ICFGNode</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
115
115
  <tr><td class="entry"><a class="el" href="classSVF_1_1ICFGNode.html#a74f598c1c86b023680bb2685aa8ab376ac93cf90864e69a21cbaefccbd48b8648">GlobalBlock</a> enum value</td><td class="entry"><a class="el" href="classSVF_1_1ICFGNode.html">SVF::ICFGNode</a></td><td class="entry"></td></tr>
116
116
  <tr class="even"><td class="entry"><a class="el" href="classSVF_1_1GenericNode.html#a363b90ab02cce2ebc3ede8e5b7cc141c">GNodeK</a> typedef</td><td class="entry"><a class="el" href="classSVF_1_1GenericNode.html">SVF::GenericNode&lt; NodeTy, EdgeTy &gt;</a></td><td class="entry"></td></tr>
@@ -121,10 +121,10 @@ Public Member Functions</h2></td></tr>
121
121
  <tr class="separator:aff18898b9bbd85d08b00d64d48eea6a5 inherit pub_methods_classSVF_1_1ICFGNode"><td class="memSeparator" colspan="2">&#160;</td></tr>
122
122
  <tr class="memitem:abcc53637a634f7ec92b9c7861b941601 inherit pub_methods_classSVF_1_1ICFGNode"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classSVF_1_1ICFGNode.html#a53a4a33b8ea241f46b37111905a48169">VFGNodeList</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1ICFGNode.html#abcc53637a634f7ec92b9c7861b941601">getVFGNodes</a> () const</td></tr>
123
123
  <tr class="separator:abcc53637a634f7ec92b9c7861b941601 inherit pub_methods_classSVF_1_1ICFGNode"><td class="memSeparator" colspan="2">&#160;</td></tr>
124
- <tr class="memitem:a820364ef4158270478e9c09e11b6c2ea inherit pub_methods_classSVF_1_1ICFGNode"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1ICFGNode.html#a820364ef4158270478e9c09e11b6c2ea">addPAGEdge</a> (const <a class="el" href="classSVF_1_1SVFStmt.html">SVFStmt</a> *edge)</td></tr>
125
- <tr class="separator:a820364ef4158270478e9c09e11b6c2ea inherit pub_methods_classSVF_1_1ICFGNode"><td class="memSeparator" colspan="2">&#160;</td></tr>
126
- <tr class="memitem:a23707d08fd5cfcb5db72ff4ef0b864ff inherit pub_methods_classSVF_1_1ICFGNode"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classSVF_1_1ICFGNode.html#aa84a3724426f08a0e31ecdbc99114072">SVFStmtList</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1ICFGNode.html#a23707d08fd5cfcb5db72ff4ef0b864ff">getPAGEdges</a> () const</td></tr>
127
- <tr class="separator:a23707d08fd5cfcb5db72ff4ef0b864ff inherit pub_methods_classSVF_1_1ICFGNode"><td class="memSeparator" colspan="2">&#160;</td></tr>
124
+ <tr class="memitem:a8a133398c691ab3639ceefbc57cd33be inherit pub_methods_classSVF_1_1ICFGNode"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1ICFGNode.html#a8a133398c691ab3639ceefbc57cd33be">addSVFStmt</a> (const <a class="el" href="classSVF_1_1SVFStmt.html">SVFStmt</a> *edge)</td></tr>
125
+ <tr class="separator:a8a133398c691ab3639ceefbc57cd33be inherit pub_methods_classSVF_1_1ICFGNode"><td class="memSeparator" colspan="2">&#160;</td></tr>
126
+ <tr class="memitem:a6c68f52dd90728073fb79141df9b0661 inherit pub_methods_classSVF_1_1ICFGNode"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classSVF_1_1ICFGNode.html#aa84a3724426f08a0e31ecdbc99114072">SVFStmtList</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1ICFGNode.html#a6c68f52dd90728073fb79141df9b0661">getSVFStmts</a> () const</td></tr>
127
+ <tr class="separator:a6c68f52dd90728073fb79141df9b0661 inherit pub_methods_classSVF_1_1ICFGNode"><td class="memSeparator" colspan="2">&#160;</td></tr>
128
128
  <tr class="inherit_header pub_methods_classSVF_1_1GenericNode"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classSVF_1_1GenericNode')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classSVF_1_1GenericNode.html">SVF::GenericNode&lt; NodeTy, EdgeTy &gt;</a></td></tr>
129
129
  <tr class="memitem:acdca5baae3e9e4208a60322fec9c9d3f inherit pub_methods_classSVF_1_1GenericNode"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1GenericNode.html#acdca5baae3e9e4208a60322fec9c9d3f">GenericNode</a> (<a class="el" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> i, <a class="el" href="classSVF_1_1GenericNode.html#a363b90ab02cce2ebc3ede8e5b7cc141c">GNodeK</a> k)</td></tr>
130
130
  <tr class="memdesc:acdca5baae3e9e4208a60322fec9c9d3f inherit pub_methods_classSVF_1_1GenericNode"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor. <a href="classSVF_1_1GenericNode.html#acdca5baae3e9e4208a60322fec9c9d3f">More...</a><br /></td></tr>
@@ -291,7 +291,7 @@ Additional Inherited Members</h2></td></tr>
291
291
  </table>
292
292
  <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
293
293
  <div class="textblock">
294
- <p class="definition">Definition at line <a class="el" href="SVFVariables_8h_source.html#l00574">574</a> of file <a class="el" href="SVFVariables_8h_source.html">SVFVariables.h</a>.</p>
294
+ <p class="definition">Definition at line <a class="el" href="SVFVariables_8h_source.html#l00580">580</a> of file <a class="el" href="SVFVariables_8h_source.html">SVFVariables.h</a>.</p>
295
295
  </div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
296
296
  <a id="ac551c1aaf9ec3cb77814aa4664d61a23"></a>
297
297
  <h2 class="memtitle"><span class="permalink"><a href="#ac551c1aaf9ec3cb77814aa4664d61a23">&#9670;&nbsp;</a></span>RetPN()</h2>
@@ -329,8 +329,8 @@ Additional Inherited Members</h2></td></tr>
329
329
 
330
330
  <p>Constructor. </p>
331
331
 
332
- <p class="definition">Definition at line <a class="el" href="SVFVariables_8h_source.html#l00595">595</a> of file <a class="el" href="SVFVariables_8h_source.html">SVFVariables.h</a>.</p>
333
- <div class="fragment"><div class="line"><a name="l00595"></a><span class="lineno"> 595</span>&#160; :</div><div class="line"><a name="l00596"></a><span class="lineno"> 596</span>&#160; <a class="code" href="classSVF_1_1SVFVar.html#a24daf5faa4b1d159c193e61951d17414">SVFVar</a>(val-&gt;getLLVMFun(), i, <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffa5de2a8fce9a85f31818d58992b381b98">RetNode</a>)</div><div class="line"><a name="l00597"></a><span class="lineno"> 597</span>&#160; {</div><div class="line"><a name="l00598"></a><span class="lineno"> 598</span>&#160; }</div><div class="ttc" id="classSVF_1_1SVFVar_html_a24daf5faa4b1d159c193e61951d17414"><div class="ttname"><a href="classSVF_1_1SVFVar.html#a24daf5faa4b1d159c193e61951d17414">SVF::SVFVar::SVFVar</a></div><div class="ttdeci">SVFVar(const Value *val, NodeID i, PNODEK k)</div><div class="ttdoc">address-taken pointer </div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8cpp_source.html#l00040">SVFVariables.cpp:40</a></div></div>
332
+ <p class="definition">Definition at line <a class="el" href="SVFVariables_8h_source.html#l00601">601</a> of file <a class="el" href="SVFVariables_8h_source.html">SVFVariables.h</a>.</p>
333
+ <div class="fragment"><div class="line"><a name="l00601"></a><span class="lineno"> 601</span>&#160; :</div><div class="line"><a name="l00602"></a><span class="lineno"> 602</span>&#160; <a class="code" href="classSVF_1_1SVFVar.html#a24daf5faa4b1d159c193e61951d17414">SVFVar</a>(val-&gt;getLLVMFun(), i, <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffa5de2a8fce9a85f31818d58992b381b98">RetNode</a>)</div><div class="line"><a name="l00603"></a><span class="lineno"> 603</span>&#160; {</div><div class="line"><a name="l00604"></a><span class="lineno"> 604</span>&#160; }</div><div class="ttc" id="classSVF_1_1SVFVar_html_a24daf5faa4b1d159c193e61951d17414"><div class="ttname"><a href="classSVF_1_1SVFVar.html#a24daf5faa4b1d159c193e61951d17414">SVF::SVFVar::SVFVar</a></div><div class="ttdeci">SVFVar(const Value *val, NodeID i, PNODEK k)</div><div class="ttdoc">address-taken pointer </div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8cpp_source.html#l00040">SVFVariables.cpp:40</a></div></div>
334
334
  <div class="ttc" id="classSVF_1_1SVFVar_html_a283f7c0c2eaae07c6865f73a0daafeffa5de2a8fce9a85f31818d58992b381b98"><div class="ttname"><a href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffa5de2a8fce9a85f31818d58992b381b98">SVF::SVFVar::RetNode</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00064">SVFVariables.h:64</a></div></div>
335
335
  </div><!-- fragment -->
336
336
  </div>
@@ -360,8 +360,8 @@ Additional Inherited Members</h2></td></tr>
360
360
  </table>
361
361
  </div><div class="memdoc">
362
362
 
363
- <p class="definition">Definition at line <a class="el" href="SVFVariables_8h_source.html#l00580">580</a> of file <a class="el" href="SVFVariables_8h_source.html">SVFVariables.h</a>.</p>
364
- <div class="fragment"><div class="line"><a name="l00581"></a><span class="lineno"> 581</span>&#160; {</div><div class="line"><a name="l00582"></a><span class="lineno"> 582</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00583"></a><span class="lineno"> 583</span>&#160; }</div></div><!-- fragment -->
363
+ <p class="definition">Definition at line <a class="el" href="SVFVariables_8h_source.html#l00586">586</a> of file <a class="el" href="SVFVariables_8h_source.html">SVFVariables.h</a>.</p>
364
+ <div class="fragment"><div class="line"><a name="l00587"></a><span class="lineno"> 587</span>&#160; {</div><div class="line"><a name="l00588"></a><span class="lineno"> 588</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00589"></a><span class="lineno"> 589</span>&#160; }</div></div><!-- fragment -->
365
365
  </div>
366
366
  </div>
367
367
  <a id="a5e9d174902aa6dcfae418697363967b9"></a>
@@ -388,8 +388,8 @@ Additional Inherited Members</h2></td></tr>
388
388
  </table>
389
389
  </div><div class="memdoc">
390
390
 
391
- <p class="definition">Definition at line <a class="el" href="SVFVariables_8h_source.html#l00584">584</a> of file <a class="el" href="SVFVariables_8h_source.html">SVFVariables.h</a>.</p>
392
- <div class="fragment"><div class="line"><a name="l00585"></a><span class="lineno"> 585</span>&#160; {</div><div class="line"><a name="l00586"></a><span class="lineno"> 586</span>&#160; <span class="keywordflow">return</span> node-&gt;getNodeKind() == <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffa5de2a8fce9a85f31818d58992b381b98">SVFVar::RetNode</a>;</div><div class="line"><a name="l00587"></a><span class="lineno"> 587</span>&#160; }</div><div class="ttc" id="classSVF_1_1SVFVar_html_a283f7c0c2eaae07c6865f73a0daafeffa5de2a8fce9a85f31818d58992b381b98"><div class="ttname"><a href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffa5de2a8fce9a85f31818d58992b381b98">SVF::SVFVar::RetNode</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00064">SVFVariables.h:64</a></div></div>
391
+ <p class="definition">Definition at line <a class="el" href="SVFVariables_8h_source.html#l00590">590</a> of file <a class="el" href="SVFVariables_8h_source.html">SVFVariables.h</a>.</p>
392
+ <div class="fragment"><div class="line"><a name="l00591"></a><span class="lineno"> 591</span>&#160; {</div><div class="line"><a name="l00592"></a><span class="lineno"> 592</span>&#160; <span class="keywordflow">return</span> node-&gt;getNodeKind() == <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffa5de2a8fce9a85f31818d58992b381b98">SVFVar::RetNode</a>;</div><div class="line"><a name="l00593"></a><span class="lineno"> 593</span>&#160; }</div><div class="ttc" id="classSVF_1_1SVFVar_html_a283f7c0c2eaae07c6865f73a0daafeffa5de2a8fce9a85f31818d58992b381b98"><div class="ttname"><a href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffa5de2a8fce9a85f31818d58992b381b98">SVF::SVFVar::RetNode</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00064">SVFVariables.h:64</a></div></div>
393
393
  </div><!-- fragment -->
394
394
  </div>
395
395
  </div>
@@ -417,8 +417,8 @@ Additional Inherited Members</h2></td></tr>
417
417
  </table>
418
418
  </div><div class="memdoc">
419
419
 
420
- <p class="definition">Definition at line <a class="el" href="SVFVariables_8h_source.html#l00588">588</a> of file <a class="el" href="SVFVariables_8h_source.html">SVFVariables.h</a>.</p>
421
- <div class="fragment"><div class="line"><a name="l00589"></a><span class="lineno"> 589</span>&#160; {</div><div class="line"><a name="l00590"></a><span class="lineno"> 590</span>&#160; <span class="keywordflow">return</span> node-&gt;getNodeKind() == <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffa5de2a8fce9a85f31818d58992b381b98">SVFVar::RetNode</a>;</div><div class="line"><a name="l00591"></a><span class="lineno"> 591</span>&#160; }</div><div class="ttc" id="classSVF_1_1SVFVar_html_a283f7c0c2eaae07c6865f73a0daafeffa5de2a8fce9a85f31818d58992b381b98"><div class="ttname"><a href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffa5de2a8fce9a85f31818d58992b381b98">SVF::SVFVar::RetNode</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00064">SVFVariables.h:64</a></div></div>
420
+ <p class="definition">Definition at line <a class="el" href="SVFVariables_8h_source.html#l00594">594</a> of file <a class="el" href="SVFVariables_8h_source.html">SVFVariables.h</a>.</p>
421
+ <div class="fragment"><div class="line"><a name="l00595"></a><span class="lineno"> 595</span>&#160; {</div><div class="line"><a name="l00596"></a><span class="lineno"> 596</span>&#160; <span class="keywordflow">return</span> node-&gt;getNodeKind() == <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffa5de2a8fce9a85f31818d58992b381b98">SVFVar::RetNode</a>;</div><div class="line"><a name="l00597"></a><span class="lineno"> 597</span>&#160; }</div><div class="ttc" id="classSVF_1_1SVFVar_html_a283f7c0c2eaae07c6865f73a0daafeffa5de2a8fce9a85f31818d58992b381b98"><div class="ttname"><a href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffa5de2a8fce9a85f31818d58992b381b98">SVF::SVFVar::RetNode</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00064">SVFVariables.h:64</a></div></div>
422
422
  </div><!-- fragment -->
423
423
  </div>
424
424
  </div>
@@ -449,8 +449,8 @@ Additional Inherited Members</h2></td></tr>
449
449
 
450
450
  <p>Implements <a class="el" href="classSVF_1_1SVFVar.html#a54b2a5ed3ed21e54eaf04182f0338333">SVF::SVFVar</a>.</p>
451
451
 
452
- <p class="definition">Definition at line <a class="el" href="SVFVariables_8h_source.html#l00601">601</a> of file <a class="el" href="SVFVariables_8h_source.html">SVFVariables.h</a>.</p>
453
- <div class="fragment"><div class="line"><a name="l00602"></a><span class="lineno"> 602</span>&#160; {</div><div class="line"><a name="l00603"></a><span class="lineno"> 603</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFVar.html#a7deb494ac20ed56fca31a4f1fd92deea">value</a>-&gt;getName().str() + <span class="stringliteral">&quot;_ret&quot;</span>;</div><div class="line"><a name="l00604"></a><span class="lineno"> 604</span>&#160; }</div><div class="ttc" id="classSVF_1_1SVFVar_html_a7deb494ac20ed56fca31a4f1fd92deea"><div class="ttname"><a href="classSVF_1_1SVFVar.html#a7deb494ac20ed56fca31a4f1fd92deea">SVF::SVFVar::value</a></div><div class="ttdeci">const Value * value</div><div class="ttdoc">value of this SVFIR node </div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00078">SVFVariables.h:78</a></div></div>
452
+ <p class="definition">Definition at line <a class="el" href="SVFVariables_8h_source.html#l00607">607</a> of file <a class="el" href="SVFVariables_8h_source.html">SVFVariables.h</a>.</p>
453
+ <div class="fragment"><div class="line"><a name="l00608"></a><span class="lineno"> 608</span>&#160; {</div><div class="line"><a name="l00609"></a><span class="lineno"> 609</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFVar.html#a7deb494ac20ed56fca31a4f1fd92deea">value</a>-&gt;getName().str() + <span class="stringliteral">&quot;_ret&quot;</span>;</div><div class="line"><a name="l00610"></a><span class="lineno"> 610</span>&#160; }</div><div class="ttc" id="classSVF_1_1SVFVar_html_a7deb494ac20ed56fca31a4f1fd92deea"><div class="ttname"><a href="classSVF_1_1SVFVar.html#a7deb494ac20ed56fca31a4f1fd92deea">SVF::SVFVar::value</a></div><div class="ttdeci">const Value * value</div><div class="ttdoc">value of this SVFIR node </div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00078">SVFVariables.h:78</a></div></div>
454
454
  </div><!-- fragment -->
455
455
  </div>
456
456
  </div>
@@ -1682,7 +1682,7 @@ Additional Inherited Members</h2></td></tr>
1682
1682
 
1683
1683
  <p class="definition">Definition at line <a class="el" href="SVFIR_8h_source.html#l00574">574</a> of file <a class="el" href="SVFIR_8h_source.html">SVFIR.h</a>.</p>
1684
1684
  <div class="fragment"><div class="line"><a name="l00575"></a><span class="lineno"> 575</span>&#160; {</div><div class="line"><a name="l00576"></a><span class="lineno"> 576</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#a267169023fc4f8dd66b145f7231fec11">SymbolTableInfo::SymbolInfo</a>()-&gt;<a class="code" href="classSVF_1_1SymbolTableInfo.html#a8e40c578ccdd3a108a10a191a309bd18">createDummyObj</a>(i,type);</div><div class="line"><a name="l00577"></a><span class="lineno"> 577</span>&#160; }</div><div class="ttc" id="classSVF_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#l00059">SymbolTableInfo.cpp:59</a></div></div>
1685
- <div class="ttc" id="classSVF_1_1SymbolTableInfo_html_a8e40c578ccdd3a108a10a191a309bd18"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#a8e40c578ccdd3a108a10a191a309bd18">SVF::SymbolTableInfo::createDummyObj</a></div><div class="ttdeci">const MemObj * createDummyObj(SymID symId, const Type *type)</div><div class="ttdoc">Can only be invoked by SVFIR::addDummyNode() when creaing SVFIR from file. </div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00479">SymbolTableInfo.cpp:479</a></div></div>
1685
+ <div class="ttc" id="classSVF_1_1SymbolTableInfo_html_a8e40c578ccdd3a108a10a191a309bd18"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#a8e40c578ccdd3a108a10a191a309bd18">SVF::SymbolTableInfo::createDummyObj</a></div><div class="ttdeci">const MemObj * createDummyObj(SymID symId, const Type *type)</div><div class="ttdoc">Can only be invoked by SVFIR::addDummyNode() when creaing SVFIR from file. </div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00317">SymbolTableInfo.cpp:317</a></div></div>
1686
1686
  </div><!-- fragment -->
1687
1687
  </div>
1688
1688
  </div>
@@ -1847,9 +1847,9 @@ Additional Inherited Members</h2></td></tr>
1847
1847
  <div class="fragment"><div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160;{</div><div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160; <span class="comment">//assert(findPAGNode(i) == false &amp;&amp; &quot;this node should not be created before&quot;);</span></div><div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> base = obj-&gt;<a class="code" href="classSVF_1_1MemObj.html#a3ab6f65ffbf6442daac4d3f70f2d3cb1">getId</a>();</div><div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160; <a class="code" href="classSVF_1_1SVFIR.html#a3c014227661d8976714772205611c252">memToFieldsMap</a>[base].set(obj-&gt;<a class="code" href="classSVF_1_1MemObj.html#a3ab6f65ffbf6442daac4d3f70f2d3cb1">getId</a>());</div><div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160; <a class="code" href="classSVF_1_1FIObjVar.html">FIObjVar</a> *node = <span class="keyword">new</span> <a class="code" href="classSVF_1_1FIObjVar.html">FIObjVar</a>(obj-&gt;<a class="code" href="classSVF_1_1MemObj.html#a4da54ef60231d2e6c26669226b99d2f3">getValue</a>(), obj-&gt;<a class="code" href="classSVF_1_1MemObj.html#a3ab6f65ffbf6442daac4d3f70f2d3cb1">getId</a>(), obj);</div><div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFIR.html#a83bc8ecf4c5d10af10af3c8c44b9882d">addObjNode</a>(obj-&gt;<a class="code" href="classSVF_1_1MemObj.html#a4da54ef60231d2e6c26669226b99d2f3">getValue</a>(), node, obj-&gt;<a class="code" href="classSVF_1_1MemObj.html#a3ab6f65ffbf6442daac4d3f70f2d3cb1">getId</a>());</div><div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160;}</div><div class="ttc" id="classSVF_1_1SVFIR_html_a3c014227661d8976714772205611c252"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a3c014227661d8976714772205611c252">SVF::SVFIR::memToFieldsMap</a></div><div class="ttdeci">MemObjToFieldsMap memToFieldsMap</div><div class="ttdoc">Map a mem object id to all its fields. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00080">SVFIR.h:80</a></div></div>
1848
1848
  <div class="ttc" id="namespaceSVF_html_a43a65e0d33af3c743294f7a1139d2301"><div class="ttname"><a href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">SVF::NodeID</a></div><div class="ttdeci">unsigned NodeID</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8h_source.html#l00018">MTAResultValidator.h:18</a></div></div>
1849
1849
  <div class="ttc" id="classSVF_1_1SVFIR_html_a83bc8ecf4c5d10af10af3c8c44b9882d"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a83bc8ecf4c5d10af10af3c8c44b9882d">SVF::SVFIR::addObjNode</a></div><div class="ttdeci">NodeID addObjNode(const Value *val, NodeID i)</div><div class="ttdoc">Add a memory obj node. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00536">SVFIR.h:536</a></div></div>
1850
- <div class="ttc" id="classSVF_1_1FIObjVar_html"><div class="ttname"><a href="classSVF_1_1FIObjVar.html">SVF::FIObjVar</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00527">SVFVariables.h:527</a></div></div>
1851
- <div class="ttc" id="classSVF_1_1MemObj_html_a3ab6f65ffbf6442daac4d3f70f2d3cb1"><div class="ttname"><a href="classSVF_1_1MemObj.html#a3ab6f65ffbf6442daac4d3f70f2d3cb1">SVF::MemObj::getId</a></div><div class="ttdeci">SymID getId() const</div><div class="ttdoc">Get the memory object id. </div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00451">SymbolTableInfo.h:451</a></div></div>
1852
- <div class="ttc" id="classSVF_1_1MemObj_html_a4da54ef60231d2e6c26669226b99d2f3"><div class="ttname"><a href="classSVF_1_1MemObj.html#a4da54ef60231d2e6c26669226b99d2f3">SVF::MemObj::getValue</a></div><div class="ttdeci">const Value * getValue() const</div><div class="ttdoc">Get the reference value to this object. </div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00445">SymbolTableInfo.h:445</a></div></div>
1850
+ <div class="ttc" id="classSVF_1_1FIObjVar_html"><div class="ttname"><a href="classSVF_1_1FIObjVar.html">SVF::FIObjVar</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00533">SVFVariables.h:533</a></div></div>
1851
+ <div class="ttc" id="classSVF_1_1MemObj_html_a3ab6f65ffbf6442daac4d3f70f2d3cb1"><div class="ttname"><a href="classSVF_1_1MemObj.html#a3ab6f65ffbf6442daac4d3f70f2d3cb1">SVF::MemObj::getId</a></div><div class="ttdeci">SymID getId() const</div><div class="ttdoc">Get the memory object id. </div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00448">SymbolTableInfo.h:448</a></div></div>
1852
+ <div class="ttc" id="classSVF_1_1MemObj_html_a4da54ef60231d2e6c26669226b99d2f3"><div class="ttname"><a href="classSVF_1_1MemObj.html#a4da54ef60231d2e6c26669226b99d2f3">SVF::MemObj::getValue</a></div><div class="ttdeci">const Value * getValue() const</div><div class="ttdoc">Get the reference value to this object. </div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00442">SymbolTableInfo.h:442</a></div></div>
1853
1853
  </div><!-- fragment -->
1854
1854
  </div>
1855
1855
  </div>
@@ -1980,18 +1980,18 @@ Additional Inherited Members</h2></td></tr>
1980
1980
  <p>Add a field obj node, this method can only invoked by getGepObjVar </p>
1981
1981
 
1982
1982
  <p class="definition">Definition at line <a class="el" href="SVFIR_8cpp_source.html#l00429">429</a> of file <a class="el" href="SVFIR_8cpp_source.html">SVFIR.cpp</a>.</p>
1983
- <div class="fragment"><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160;{</div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160; <span class="comment">//assert(findPAGNode(i) == false &amp;&amp; &quot;this node should not be created before&quot;);</span></div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> base = obj-&gt;<a class="code" href="classSVF_1_1MemObj.html#a3ab6f65ffbf6442daac4d3f70f2d3cb1">getId</a>();</div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(0==<a class="code" href="classSVF_1_1SVFIR.html#a148b51118eeba8117e033fea84b56be8">GepObjVarMap</a>.count(std::make_pair(base, ls))</div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160; &amp;&amp; <span class="stringliteral">&quot;this node should not be created before&quot;</span>);</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160;</div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> gepId = <a class="code" href="classSVF_1_1NodeIDAllocator.html#a2bd3ca30fc9669d9a0327544bdb4557b">NodeIDAllocator::get</a>()-&gt;<a class="code" href="classSVF_1_1NodeIDAllocator.html#abaff066537f06c4891c199ebfc9624e3">allocateGepObjectId</a>(base, ls.<a class="code" href="classSVF_1_1LocationSet.html#ab85c3707152e03722bd631b2525f223e">getOffset</a>(), <a class="code" href="classSVF_1_1StInfo.html#ad6e599717952f8ccc2771cd72254b6b2">StInfo::getMaxFieldLimit</a>());</div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160; <a class="code" href="classSVF_1_1SVFIR.html#a148b51118eeba8117e033fea84b56be8">GepObjVarMap</a>[std::make_pair(base, ls)] = gepId;</div><div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160; <a class="code" href="classSVF_1_1GepObjPN.html">GepObjPN</a> *node = <span class="keyword">new</span> <a class="code" href="classSVF_1_1GepObjPN.html">GepObjPN</a>(obj, gepId, ls);</div><div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160; <a class="code" href="classSVF_1_1SVFIR.html#a3c014227661d8976714772205611c252">memToFieldsMap</a>[base].set(gepId);</div><div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFIR.html#a83bc8ecf4c5d10af10af3c8c44b9882d">addObjNode</a>(obj-&gt;<a class="code" href="classSVF_1_1MemObj.html#a4da54ef60231d2e6c26669226b99d2f3">getValue</a>(), node, gepId);</div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160;}</div><div class="ttc" id="classSVF_1_1SVFIR_html_a3c014227661d8976714772205611c252"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a3c014227661d8976714772205611c252">SVF::SVFIR::memToFieldsMap</a></div><div class="ttdeci">MemObjToFieldsMap memToFieldsMap</div><div class="ttdoc">Map a mem object id to all its fields. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00080">SVFIR.h:80</a></div></div>
1983
+ <div class="fragment"><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160;{</div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160; <span class="comment">//assert(findPAGNode(i) == false &amp;&amp; &quot;this node should not be created before&quot;);</span></div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> base = obj-&gt;<a class="code" href="classSVF_1_1MemObj.html#a3ab6f65ffbf6442daac4d3f70f2d3cb1">getId</a>();</div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(0==<a class="code" href="classSVF_1_1SVFIR.html#a148b51118eeba8117e033fea84b56be8">GepObjVarMap</a>.count(std::make_pair(base, ls))</div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160; &amp;&amp; <span class="stringliteral">&quot;this node should not be created before&quot;</span>);</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160;</div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> gepId = <a class="code" href="classSVF_1_1NodeIDAllocator.html#a2bd3ca30fc9669d9a0327544bdb4557b">NodeIDAllocator::get</a>()-&gt;<a class="code" href="classSVF_1_1NodeIDAllocator.html#abaff066537f06c4891c199ebfc9624e3">allocateGepObjectId</a>(base, ls.<a class="code" href="classSVF_1_1LocationSet.html#ac098bc95299002b9016684fa7f2799ca">accumulateConstantOffset</a>(), <a class="code" href="classSVF_1_1StInfo.html#ad6e599717952f8ccc2771cd72254b6b2">StInfo::getMaxFieldLimit</a>());</div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160; <a class="code" href="classSVF_1_1SVFIR.html#a148b51118eeba8117e033fea84b56be8">GepObjVarMap</a>[std::make_pair(base, ls)] = gepId;</div><div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160; <a class="code" href="classSVF_1_1GepObjVar.html">GepObjVar</a> *node = <span class="keyword">new</span> <a class="code" href="classSVF_1_1GepObjVar.html">GepObjVar</a>(obj, gepId, ls);</div><div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160; <a class="code" href="classSVF_1_1SVFIR.html#a3c014227661d8976714772205611c252">memToFieldsMap</a>[base].set(gepId);</div><div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFIR.html#a83bc8ecf4c5d10af10af3c8c44b9882d">addObjNode</a>(obj-&gt;<a class="code" href="classSVF_1_1MemObj.html#a4da54ef60231d2e6c26669226b99d2f3">getValue</a>(), node, gepId);</div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160;}</div><div class="ttc" id="classSVF_1_1SVFIR_html_a3c014227661d8976714772205611c252"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a3c014227661d8976714772205611c252">SVF::SVFIR::memToFieldsMap</a></div><div class="ttdeci">MemObjToFieldsMap memToFieldsMap</div><div class="ttdoc">Map a mem object id to all its fields. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00080">SVFIR.h:80</a></div></div>
1984
1984
  <div class="ttc" id="namespaceSVF_html_a43a65e0d33af3c743294f7a1139d2301"><div class="ttname"><a href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">SVF::NodeID</a></div><div class="ttdeci">unsigned NodeID</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8h_source.html#l00018">MTAResultValidator.h:18</a></div></div>
1985
1985
  <div class="ttc" id="util_8h_html_a07d17d6d5d1074c0969bc5d3c3d1d84a"><div class="ttname"><a href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a></div><div class="ttdeci">#define assert(ex)</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00141">util.h:141</a></div></div>
1986
1986
  <div class="ttc" id="classSVF_1_1NodeIDAllocator_html_abaff066537f06c4891c199ebfc9624e3"><div class="ttname"><a href="classSVF_1_1NodeIDAllocator.html#abaff066537f06c4891c199ebfc9624e3">SVF::NodeIDAllocator::allocateGepObjectId</a></div><div class="ttdeci">NodeID allocateGepObjectId(NodeID base, u32_t offset, u32_t maxFieldLimit)</div><div class="ttdef"><b>Definition:</b> <a href="NodeIDAllocator_8cpp_source.html#l00082">NodeIDAllocator.cpp:82</a></div></div>
1987
1987
  <div class="ttc" id="classSVF_1_1SVFIR_html_a83bc8ecf4c5d10af10af3c8c44b9882d"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a83bc8ecf4c5d10af10af3c8c44b9882d">SVF::SVFIR::addObjNode</a></div><div class="ttdeci">NodeID addObjNode(const Value *val, NodeID i)</div><div class="ttdoc">Add a memory obj node. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00536">SVFIR.h:536</a></div></div>
1988
- <div class="ttc" id="classSVF_1_1StInfo_html_ad6e599717952f8ccc2771cd72254b6b2"><div class="ttname"><a href="classSVF_1_1StInfo.html#ad6e599717952f8ccc2771cd72254b6b2">SVF::StInfo::getMaxFieldLimit</a></div><div class="ttdeci">static u32_t getMaxFieldLimit()</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00541">SymbolTableInfo.h:541</a></div></div>
1988
+ <div class="ttc" id="classSVF_1_1StInfo_html_ad6e599717952f8ccc2771cd72254b6b2"><div class="ttname"><a href="classSVF_1_1StInfo.html#ad6e599717952f8ccc2771cd72254b6b2">SVF::StInfo::getMaxFieldLimit</a></div><div class="ttdeci">static u32_t getMaxFieldLimit()</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00534">SymbolTableInfo.h:534</a></div></div>
1989
+ <div class="ttc" id="classSVF_1_1GepObjVar_html"><div class="ttname"><a href="classSVF_1_1GepObjVar.html">SVF::GepObjVar</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00451">SVFVariables.h:451</a></div></div>
1989
1990
  <div class="ttc" id="classSVF_1_1SVFIR_html_a148b51118eeba8117e033fea84b56be8"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a148b51118eeba8117e033fea84b56be8">SVF::SVFIR::GepObjVarMap</a></div><div class="ttdeci">NodeLocationSetMap GepObjVarMap</div><div class="ttdoc">Map a pair&lt;base,off&gt; to a gep obj node id. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00079">SVFIR.h:79</a></div></div>
1990
- <div class="ttc" id="classSVF_1_1LocationSet_html_ab85c3707152e03722bd631b2525f223e"><div class="ttname"><a href="classSVF_1_1LocationSet.html#ab85c3707152e03722bd631b2525f223e">SVF::LocationSet::getOffset</a></div><div class="ttdeci">Size_t getOffset() const</div><div class="ttdoc">Get methods. </div><div class="ttdef"><b>Definition:</b> <a href="LocationSet_8h_source.html#l00193">LocationSet.h:193</a></div></div>
1991
- <div class="ttc" id="classSVF_1_1MemObj_html_a3ab6f65ffbf6442daac4d3f70f2d3cb1"><div class="ttname"><a href="classSVF_1_1MemObj.html#a3ab6f65ffbf6442daac4d3f70f2d3cb1">SVF::MemObj::getId</a></div><div class="ttdeci">SymID getId() const</div><div class="ttdoc">Get the memory object id. </div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00451">SymbolTableInfo.h:451</a></div></div>
1991
+ <div class="ttc" id="classSVF_1_1MemObj_html_a3ab6f65ffbf6442daac4d3f70f2d3cb1"><div class="ttname"><a href="classSVF_1_1MemObj.html#a3ab6f65ffbf6442daac4d3f70f2d3cb1">SVF::MemObj::getId</a></div><div class="ttdeci">SymID getId() const</div><div class="ttdoc">Get the memory object id. </div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00448">SymbolTableInfo.h:448</a></div></div>
1992
1992
  <div class="ttc" id="classSVF_1_1NodeIDAllocator_html_a2bd3ca30fc9669d9a0327544bdb4557b"><div class="ttname"><a href="classSVF_1_1NodeIDAllocator.html#a2bd3ca30fc9669d9a0327544bdb4557b">SVF::NodeIDAllocator::get</a></div><div class="ttdeci">static NodeIDAllocator * get(void)</div><div class="ttdoc">Return (singleton) allocator. </div><div class="ttdef"><b>Definition:</b> <a href="NodeIDAllocator_8cpp_source.html#l00025">NodeIDAllocator.cpp:25</a></div></div>
1993
- <div class="ttc" id="classSVF_1_1GepObjPN_html"><div class="ttname"><a href="classSVF_1_1GepObjPN.html">SVF::GepObjPN</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00451">SVFVariables.h:451</a></div></div>
1994
- <div class="ttc" id="classSVF_1_1MemObj_html_a4da54ef60231d2e6c26669226b99d2f3"><div class="ttname"><a href="classSVF_1_1MemObj.html#a4da54ef60231d2e6c26669226b99d2f3">SVF::MemObj::getValue</a></div><div class="ttdeci">const Value * getValue() const</div><div class="ttdoc">Get the reference value to this object. </div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00445">SymbolTableInfo.h:445</a></div></div>
1993
+ <div class="ttc" id="classSVF_1_1MemObj_html_a4da54ef60231d2e6c26669226b99d2f3"><div class="ttname"><a href="classSVF_1_1MemObj.html#a4da54ef60231d2e6c26669226b99d2f3">SVF::MemObj::getValue</a></div><div class="ttdeci">const Value * getValue() const</div><div class="ttdoc">Get the reference value to this object. </div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00442">SymbolTableInfo.h:442</a></div></div>
1994
+ <div class="ttc" id="classSVF_1_1LocationSet_html_ac098bc95299002b9016684fa7f2799ca"><div class="ttname"><a href="classSVF_1_1LocationSet.html#ac098bc95299002b9016684fa7f2799ca">SVF::LocationSet::accumulateConstantOffset</a></div><div class="ttdeci">Size_t accumulateConstantOffset() const</div><div class="ttdoc">Get methods. </div><div class="ttdef"><b>Definition:</b> <a href="LocationSet_8h_source.html#l00154">LocationSet.h:154</a></div></div>
1995
1995
  </div><!-- fragment -->
1996
1996
  </div>
1997
1997
  </div>
@@ -2299,7 +2299,7 @@ Additional Inherited Members</h2></td></tr>
2299
2299
  <div class="ttc" id="classSVF_1_1IRGraph_html_a722f32d0a0a3bafdd97fc74819d2621e"><div class="ttname"><a href="classSVF_1_1IRGraph.html#a722f32d0a0a3bafdd97fc74819d2621e">SVF::IRGraph::addEdge</a></div><div class="ttdeci">bool addEdge(SVFVar *src, SVFVar *dst, SVFStmt *edge)</div><div class="ttdoc">Add an edge into the graph. </div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8cpp_source.html#l00044">IRGraph.cpp:44</a></div></div>
2300
2300
  <div class="ttc" id="classSVF_1_1SVFStmt_html_a0ab8621e75e75f03425c323b3ed62ce9ac2089ffeab3f27354b2094758c805746"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ac2089ffeab3f27354b2094758c805746">SVF::SVFStmt::NormalGep</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00056">SVFStatements.h:56</a></div></div>
2301
2301
  <div class="ttc" id="classSVF_1_1NormalGepStmt_html"><div class="ttname"><a href="classSVF_1_1NormalGepStmt.html">SVF::NormalGepStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00709">SVFStatements.h:709</a></div></div>
2302
- <div class="ttc" id="classSVF_1_1LocationSet_html"><div class="ttname"><a href="classSVF_1_1LocationSet.html">SVF::LocationSet</a></div><div class="ttdef"><b>Definition:</b> <a href="LocationSet_8h_source.html#l00093">LocationSet.h:93</a></div></div>
2302
+ <div class="ttc" id="classSVF_1_1LocationSet_html"><div class="ttname"><a href="classSVF_1_1LocationSet.html">SVF::LocationSet</a></div><div class="ttdef"><b>Definition:</b> <a href="LocationSet_8h_source.html#l00072">LocationSet.h:72</a></div></div>
2303
2303
  <div class="ttc" id="classSVF_1_1SVFIR_html_a292b5a477c1f87777730b591c271e523"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a292b5a477c1f87777730b591c271e523">SVF::SVFIR::addToStmt2TypeMap</a></div><div class="ttdeci">void addToStmt2TypeMap(SVFStmt *edge)</div><div class="ttdoc">Map a SVFStatement type to a set of corresponding SVF statements. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00482">SVFIR.h:482</a></div></div>
2304
2304
  <div class="ttc" id="classSVF_1_1IRGraph_html_abe0ab797a3da420e4d2f9136d64fb407"><div class="ttname"><a href="classSVF_1_1IRGraph.html#abe0ab797a3da420e4d2f9136d64fb407">SVF::IRGraph::hasNonlabeledEdge</a></div><div class="ttdeci">SVFStmt * hasNonlabeledEdge(SVFVar *src, SVFVar *dst, SVFStmt::PEDGEK kind)</div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8cpp_source.html#l00059">IRGraph.cpp:59</a></div></div>
2305
2305
  <div class="ttc" id="classSVF_1_1GenericGraph_html_a43c9c773bfa17abf481c33073e30d01b"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">SVF::GenericGraph&lt; SVFVar, SVFStmt &gt;::getGNode</a></div><div class="ttdeci">NodeType * getGNode(NodeID id) const</div><div class="ttdoc">Get a node. </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00387">GenericGraph.h:387</a></div></div>
@@ -3226,7 +3226,7 @@ Additional Inherited Members</h2></td></tr>
3226
3226
  <p class="definition">Definition at line <a class="el" href="SVFIR_8cpp_source.html#l00458">458</a> of file <a class="el" href="SVFIR_8cpp_source.html">SVFIR.cpp</a>.</p>
3227
3227
  <div class="fragment"><div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160;{</div><div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> base = obj-&gt;<a class="code" href="classSVF_1_1MemObj.html#a3ab6f65ffbf6442daac4d3f70f2d3cb1">getId</a>();</div><div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFIR.html#a3c014227661d8976714772205611c252">memToFieldsMap</a>[base];</div><div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160;}</div><div class="ttc" id="classSVF_1_1SVFIR_html_a3c014227661d8976714772205611c252"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a3c014227661d8976714772205611c252">SVF::SVFIR::memToFieldsMap</a></div><div class="ttdeci">MemObjToFieldsMap memToFieldsMap</div><div class="ttdoc">Map a mem object id to all its fields. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00080">SVFIR.h:80</a></div></div>
3228
3228
  <div class="ttc" id="namespaceSVF_html_a43a65e0d33af3c743294f7a1139d2301"><div class="ttname"><a href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">SVF::NodeID</a></div><div class="ttdeci">unsigned NodeID</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8h_source.html#l00018">MTAResultValidator.h:18</a></div></div>
3229
- <div class="ttc" id="classSVF_1_1MemObj_html_a3ab6f65ffbf6442daac4d3f70f2d3cb1"><div class="ttname"><a href="classSVF_1_1MemObj.html#a3ab6f65ffbf6442daac4d3f70f2d3cb1">SVF::MemObj::getId</a></div><div class="ttdeci">SymID getId() const</div><div class="ttdoc">Get the memory object id. </div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00451">SymbolTableInfo.h:451</a></div></div>
3229
+ <div class="ttc" id="classSVF_1_1MemObj_html_a3ab6f65ffbf6442daac4d3f70f2d3cb1"><div class="ttname"><a href="classSVF_1_1MemObj.html#a3ab6f65ffbf6442daac4d3f70f2d3cb1">SVF::MemObj::getId</a></div><div class="ttdeci">SymID getId() const</div><div class="ttdoc">Get the memory object id. </div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00448">SymbolTableInfo.h:448</a></div></div>
3230
3230
  </div><!-- fragment -->
3231
3231
  </div>
3232
3232
  </div>
@@ -3345,7 +3345,7 @@ Additional Inherited Members</h2></td></tr>
3345
3345
 
3346
3346
  <p class="definition">Definition at line <a class="el" href="SVFIR_8h_source.html#l00442">442</a> of file <a class="el" href="SVFIR_8h_source.html">SVFIR.h</a>.</p>
3347
3347
  <div class="fragment"><div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160; {</div><div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFIR.html#af76a55c3b8255a81a566bdce35ffc749">getBaseObj</a>(<span class="keywordtype">id</span>)-&gt;<a class="code" href="classSVF_1_1MemObj.html#a3ab6f65ffbf6442daac4d3f70f2d3cb1">getId</a>();</div><div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160; }</div><div class="ttc" id="classSVF_1_1SVFIR_html_af76a55c3b8255a81a566bdce35ffc749"><div class="ttname"><a href="classSVF_1_1SVFIR.html#af76a55c3b8255a81a566bdce35ffc749">SVF::SVFIR::getBaseObj</a></div><div class="ttdeci">const MemObj * getBaseObj(NodeID id) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00446">SVFIR.h:446</a></div></div>
3348
- <div class="ttc" id="classSVF_1_1MemObj_html_a3ab6f65ffbf6442daac4d3f70f2d3cb1"><div class="ttname"><a href="classSVF_1_1MemObj.html#a3ab6f65ffbf6442daac4d3f70f2d3cb1">SVF::MemObj::getId</a></div><div class="ttdeci">SymID getId() const</div><div class="ttdoc">Get the memory object id. </div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00451">SymbolTableInfo.h:451</a></div></div>
3348
+ <div class="ttc" id="classSVF_1_1MemObj_html_a3ab6f65ffbf6442daac4d3f70f2d3cb1"><div class="ttname"><a href="classSVF_1_1MemObj.html#a3ab6f65ffbf6442daac4d3f70f2d3cb1">SVF::MemObj::getId</a></div><div class="ttdeci">SymID getId() const</div><div class="ttdoc">Get the memory object id. </div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00448">SymbolTableInfo.h:448</a></div></div>
3349
3349
  </div><!-- fragment -->
3350
3350
  </div>
3351
3351
  </div>
@@ -3582,13 +3582,13 @@ Additional Inherited Members</h2></td></tr>
3582
3582
  <p>Get all fields object nodes of an object If this object is collapsed into one field insensitive object Then only return this field insensitive object </p>
3583
3583
 
3584
3584
  <p class="definition">Definition at line <a class="el" href="SVFIR_8cpp_source.html#l00480">480</a> of file <a class="el" href="SVFIR_8cpp_source.html">SVFIR.cpp</a>.</p>
3585
- <div class="fragment"><div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160;{</div><div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* node = <a class="code" href="classSVF_1_1SVFIR.html#aaf86146b5e765d1f278b6d812bf913f5">pag</a>-&gt;<a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(<span class="keywordtype">id</span>);</div><div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(SVFUtil::isa&lt;ObjVar&gt;(node) &amp;&amp; <span class="stringliteral">&quot;need an object node&quot;</span>);</div><div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1MemObj.html">MemObj</a>* mem = SVFUtil::cast&lt;ObjVar&gt;(node)-&gt;<a class="code" href="classSVF_1_1IRGraph.html#a4f5792216c6f38c32dac5074862ffc50">getMemObj</a>();</div><div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160; <span class="keywordflow">if</span>(mem-&gt;<a class="code" href="classSVF_1_1MemObj.html#a41d85883d44ad77832b020455951c6fc">isFieldInsensitive</a>())</div><div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160; {</div><div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160; <a class="code" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a> bs;</div><div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160; bs.set(<a class="code" href="classSVF_1_1SVFIR.html#a2878e202045b7f2c817185e8bf95d354">getFIObjVar</a>(mem));</div><div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160; <span class="keywordflow">return</span> bs;</div><div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160; }</div><div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFIR.html#a7276e82b4648ed0e1b3d1b8b37b24089">getAllFieldsObjVars</a>(mem);</div><div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160;}</div><div class="ttc" id="classSVF_1_1MemObj_html"><div class="ttname"><a href="classSVF_1_1MemObj.html">SVF::MemObj</a></div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00421">SymbolTableInfo.h:421</a></div></div>
3585
+ <div class="fragment"><div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160;{</div><div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* node = <a class="code" href="classSVF_1_1SVFIR.html#aaf86146b5e765d1f278b6d812bf913f5">pag</a>-&gt;<a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(<span class="keywordtype">id</span>);</div><div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(SVFUtil::isa&lt;ObjVar&gt;(node) &amp;&amp; <span class="stringliteral">&quot;need an object node&quot;</span>);</div><div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1MemObj.html">MemObj</a>* mem = SVFUtil::cast&lt;ObjVar&gt;(node)-&gt;<a class="code" href="classSVF_1_1IRGraph.html#a4f5792216c6f38c32dac5074862ffc50">getMemObj</a>();</div><div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160; <span class="keywordflow">if</span>(mem-&gt;<a class="code" href="classSVF_1_1MemObj.html#a41d85883d44ad77832b020455951c6fc">isFieldInsensitive</a>())</div><div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160; {</div><div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160; <a class="code" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a> bs;</div><div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160; bs.set(<a class="code" href="classSVF_1_1SVFIR.html#a2878e202045b7f2c817185e8bf95d354">getFIObjVar</a>(mem));</div><div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160; <span class="keywordflow">return</span> bs;</div><div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160; }</div><div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFIR.html#a7276e82b4648ed0e1b3d1b8b37b24089">getAllFieldsObjVars</a>(mem);</div><div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160;}</div><div class="ttc" id="classSVF_1_1MemObj_html"><div class="ttname"><a href="classSVF_1_1MemObj.html">SVF::MemObj</a></div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00418">SymbolTableInfo.h:418</a></div></div>
3586
3586
  <div class="ttc" id="classSVF_1_1SVFIR_html_aaf86146b5e765d1f278b6d812bf913f5"><div class="ttname"><a href="classSVF_1_1SVFIR.html#aaf86146b5e765d1f278b6d812bf913f5">SVF::SVFIR::pag</a></div><div class="ttdeci">static SVFIR * pag</div><div class="ttdoc">Singleton pattern here to enable instance of SVFIR can only be created once. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00087">SVFIR.h:87</a></div></div>
3587
3587
  <div class="ttc" id="util_8h_html_a07d17d6d5d1074c0969bc5d3c3d1d84a"><div class="ttname"><a href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a></div><div class="ttdeci">#define assert(ex)</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00141">util.h:141</a></div></div>
3588
3588
  <div class="ttc" id="classSVF_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#l00046">SVFVariables.h:46</a></div></div>
3589
3589
  <div class="ttc" id="classSVF_1_1IRGraph_html_a4f5792216c6f38c32dac5074862ffc50"><div class="ttname"><a href="classSVF_1_1IRGraph.html#a4f5792216c6f38c32dac5074862ffc50">SVF::IRGraph::getMemObj</a></div><div class="ttdeci">const MemObj * getMemObj(const Value *val) const</div><div class="ttdoc">get MemObj according to LLVM value </div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#l00089">IRGraph.h:89</a></div></div>
3590
3590
  <div class="ttc" id="classSVF_1_1SVFIR_html_a7276e82b4648ed0e1b3d1b8b37b24089"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a7276e82b4648ed0e1b3d1b8b37b24089">SVF::SVFIR::getAllFieldsObjVars</a></div><div class="ttdeci">NodeBS &amp; getAllFieldsObjVars(const MemObj *obj)</div><div class="ttdoc">Get all fields of an object. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8cpp_source.html#l00458">SVFIR.cpp:458</a></div></div>
3591
- <div class="ttc" id="classSVF_1_1MemObj_html_a41d85883d44ad77832b020455951c6fc"><div class="ttname"><a href="classSVF_1_1MemObj.html#a41d85883d44ad77832b020455951c6fc">SVF::MemObj::isFieldInsensitive</a></div><div class="ttdeci">bool isFieldInsensitive() const</div><div class="ttdoc">Return true if its field limit is 0. </div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00823">SymbolTableInfo.cpp:823</a></div></div>
3591
+ <div class="ttc" id="classSVF_1_1MemObj_html_a41d85883d44ad77832b020455951c6fc"><div class="ttname"><a href="classSVF_1_1MemObj.html#a41d85883d44ad77832b020455951c6fc">SVF::MemObj::isFieldInsensitive</a></div><div class="ttdeci">bool isFieldInsensitive() const</div><div class="ttdoc">Return true if its field limit is 0. </div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00649">SymbolTableInfo.cpp:649</a></div></div>
3592
3592
  <div class="ttc" id="classSVF_1_1SVFIR_html_a2878e202045b7f2c817185e8bf95d354"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a2878e202045b7f2c817185e8bf95d354">SVF::SVFIR::getFIObjVar</a></div><div class="ttdeci">NodeID getFIObjVar(const MemObj *obj) const</div><div class="ttdoc">Get a field-insensitive obj SVFIR node according to a mem obj. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00377">SVFIR.h:377</a></div></div>
3593
3593
  <div class="ttc" id="namespaceSVF_html_a740396763e377643790c8b803ab3e4ea"><div class="ttname"><a href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">SVF::NodeBS</a></div><div class="ttdeci">llvm::SparseBitVector NodeBS</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00086">SVFBasicTypes.h:86</a></div></div>
3594
3594
  <div class="ttc" id="classSVF_1_1GenericGraph_html_a43c9c773bfa17abf481c33073e30d01b"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">SVF::GenericGraph::getGNode</a></div><div class="ttdeci">NodeType * getGNode(NodeID id) const</div><div class="ttdoc">Get a node. </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00387">GenericGraph.h:387</a></div></div>
@@ -3902,17 +3902,17 @@ Additional Inherited Members</h2></td></tr>
3902
3902
  <p>if this obj is field-insensitive, just return the field-insensitive node. </p>
3903
3903
 
3904
3904
  <p class="definition">Definition at line <a class="el" href="SVFIR_8cpp_source.html#l00405">405</a> of file <a class="el" href="SVFIR_8cpp_source.html">SVFIR.cpp</a>.</p>
3905
- <div class="fragment"><div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160;{</div><div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> base = obj-&gt;<a class="code" href="classSVF_1_1MemObj.html#a3ab6f65ffbf6442daac4d3f70f2d3cb1">getId</a>();</div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160;</div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160; <span class="keywordflow">if</span> (obj-&gt;<a class="code" href="classSVF_1_1MemObj.html#a41d85883d44ad77832b020455951c6fc">isFieldInsensitive</a>())</div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFIR.html#a2878e202045b7f2c817185e8bf95d354">getFIObjVar</a>(obj);</div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160;</div><div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160; <a class="code" href="classSVF_1_1LocationSet.html">LocationSet</a> newLS = <a class="code" href="classSVF_1_1SymbolTableInfo.html#a267169023fc4f8dd66b145f7231fec11">SymbolTableInfo::SymbolInfo</a>()-&gt;<a class="code" href="classSVF_1_1SymbolTableInfo.html#a480a7565dcb5d9a94f4b0ffb44b127ee">getModulusOffset</a>(obj,ls);</div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160;</div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; <span class="comment">// Base and first field are the same memory location.</span></div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Options.html#a8dc477d83a142a62b63207f6f240f224">Options::FirstFieldEqBase</a> &amp;&amp; newLS.<a class="code" href="classSVF_1_1LocationSet.html#ab85c3707152e03722bd631b2525f223e">getOffset</a>() == 0) <span class="keywordflow">return</span> base;</div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160;</div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160; NodeLocationSetMap::iterator iter = <a class="code" href="classSVF_1_1SVFIR.html#a148b51118eeba8117e033fea84b56be8">GepObjVarMap</a>.find(std::make_pair(base, newLS));</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160; <span class="keywordflow">if</span> (iter == <a class="code" href="classSVF_1_1SVFIR.html#a148b51118eeba8117e033fea84b56be8">GepObjVarMap</a>.end())</div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFIR.html#a1ac1e7752e98abff7054f4caa709260d">addGepObjNode</a>(obj, newLS);</div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160; <span class="keywordflow">return</span> iter-&gt;second;</div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160;</div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160;}</div><div class="ttc" id="classSVF_1_1SymbolTableInfo_html_a480a7565dcb5d9a94f4b0ffb44b127ee"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#a480a7565dcb5d9a94f4b0ffb44b127ee">SVF::SymbolTableInfo::getModulusOffset</a></div><div class="ttdeci">virtual LocationSet getModulusOffset(const MemObj *obj, const LocationSet &amp;ls)</div><div class="ttdoc">Given an offset from a Gep Instruction, return it modulus offset by considering memory layout...</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00353">SymbolTableInfo.cpp:353</a></div></div>
3905
+ <div class="fragment"><div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160;{</div><div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> base = obj-&gt;<a class="code" href="classSVF_1_1MemObj.html#a3ab6f65ffbf6442daac4d3f70f2d3cb1">getId</a>();</div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160;</div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160; <span class="keywordflow">if</span> (obj-&gt;<a class="code" href="classSVF_1_1MemObj.html#a41d85883d44ad77832b020455951c6fc">isFieldInsensitive</a>())</div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFIR.html#a2878e202045b7f2c817185e8bf95d354">getFIObjVar</a>(obj);</div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160;</div><div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160; <a class="code" href="classSVF_1_1LocationSet.html">LocationSet</a> newLS = <a class="code" href="classSVF_1_1SymbolTableInfo.html#a267169023fc4f8dd66b145f7231fec11">SymbolTableInfo::SymbolInfo</a>()-&gt;<a class="code" href="classSVF_1_1SymbolTableInfo.html#a480a7565dcb5d9a94f4b0ffb44b127ee">getModulusOffset</a>(obj,ls);</div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160;</div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; <span class="comment">// Base and first field are the same memory location.</span></div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Options.html#a8dc477d83a142a62b63207f6f240f224">Options::FirstFieldEqBase</a> &amp;&amp; newLS.<a class="code" href="classSVF_1_1LocationSet.html#ac098bc95299002b9016684fa7f2799ca">accumulateConstantOffset</a>() == 0) <span class="keywordflow">return</span> base;</div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160;</div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160; NodeLocationSetMap::iterator iter = <a class="code" href="classSVF_1_1SVFIR.html#a148b51118eeba8117e033fea84b56be8">GepObjVarMap</a>.find(std::make_pair(base, newLS));</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160; <span class="keywordflow">if</span> (iter == <a class="code" href="classSVF_1_1SVFIR.html#a148b51118eeba8117e033fea84b56be8">GepObjVarMap</a>.end())</div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFIR.html#a1ac1e7752e98abff7054f4caa709260d">addGepObjNode</a>(obj, newLS);</div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160; <span class="keywordflow">return</span> iter-&gt;second;</div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160;</div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160;}</div><div class="ttc" id="classSVF_1_1SymbolTableInfo_html_a480a7565dcb5d9a94f4b0ffb44b127ee"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#a480a7565dcb5d9a94f4b0ffb44b127ee">SVF::SymbolTableInfo::getModulusOffset</a></div><div class="ttdeci">virtual LocationSet getModulusOffset(const MemObj *obj, const LocationSet &amp;ls)</div><div class="ttdoc">Given an offset from a Gep Instruction, return it modulus offset by considering memory layout...</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00191">SymbolTableInfo.cpp:191</a></div></div>
3906
3906
  <div class="ttc" id="namespaceSVF_html_a43a65e0d33af3c743294f7a1139d2301"><div class="ttname"><a href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">SVF::NodeID</a></div><div class="ttdeci">unsigned NodeID</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8h_source.html#l00018">MTAResultValidator.h:18</a></div></div>
3907
3907
  <div class="ttc" id="classSVF_1_1SVFIR_html_a1ac1e7752e98abff7054f4caa709260d"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a1ac1e7752e98abff7054f4caa709260d">SVF::SVFIR::addGepObjNode</a></div><div class="ttdeci">NodeID addGepObjNode(const MemObj *obj, const LocationSet &amp;ls)</div><div class="ttdoc">Add a field obj node, this method can only invoked by getGepObjVar. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8cpp_source.html#l00429">SVFIR.cpp:429</a></div></div>
3908
3908
  <div class="ttc" id="classSVF_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#l00059">SymbolTableInfo.cpp:59</a></div></div>
3909
3909
  <div class="ttc" id="classSVF_1_1SVFIR_html_a148b51118eeba8117e033fea84b56be8"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a148b51118eeba8117e033fea84b56be8">SVF::SVFIR::GepObjVarMap</a></div><div class="ttdeci">NodeLocationSetMap GepObjVarMap</div><div class="ttdoc">Map a pair&lt;base,off&gt; to a gep obj node id. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00079">SVFIR.h:79</a></div></div>
3910
3910
  <div class="ttc" id="classSVF_1_1Options_html_a8dc477d83a142a62b63207f6f240f224"><div class="ttname"><a href="classSVF_1_1Options.html#a8dc477d83a142a62b63207f6f240f224">SVF::Options::FirstFieldEqBase</a></div><div class="ttdeci">static const llvm::cl::opt&lt; bool &gt; FirstFieldEqBase</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00113">Options.h:113</a></div></div>
3911
- <div class="ttc" id="classSVF_1_1LocationSet_html_ab85c3707152e03722bd631b2525f223e"><div class="ttname"><a href="classSVF_1_1LocationSet.html#ab85c3707152e03722bd631b2525f223e">SVF::LocationSet::getOffset</a></div><div class="ttdeci">Size_t getOffset() const</div><div class="ttdoc">Get methods. </div><div class="ttdef"><b>Definition:</b> <a href="LocationSet_8h_source.html#l00193">LocationSet.h:193</a></div></div>
3912
- <div class="ttc" id="classSVF_1_1MemObj_html_a41d85883d44ad77832b020455951c6fc"><div class="ttname"><a href="classSVF_1_1MemObj.html#a41d85883d44ad77832b020455951c6fc">SVF::MemObj::isFieldInsensitive</a></div><div class="ttdeci">bool isFieldInsensitive() const</div><div class="ttdoc">Return true if its field limit is 0. </div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00823">SymbolTableInfo.cpp:823</a></div></div>
3911
+ <div class="ttc" id="classSVF_1_1MemObj_html_a41d85883d44ad77832b020455951c6fc"><div class="ttname"><a href="classSVF_1_1MemObj.html#a41d85883d44ad77832b020455951c6fc">SVF::MemObj::isFieldInsensitive</a></div><div class="ttdeci">bool isFieldInsensitive() const</div><div class="ttdoc">Return true if its field limit is 0. </div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00649">SymbolTableInfo.cpp:649</a></div></div>
3913
3912
  <div class="ttc" id="classSVF_1_1SVFIR_html_a2878e202045b7f2c817185e8bf95d354"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a2878e202045b7f2c817185e8bf95d354">SVF::SVFIR::getFIObjVar</a></div><div class="ttdeci">NodeID getFIObjVar(const MemObj *obj) const</div><div class="ttdoc">Get a field-insensitive obj SVFIR node according to a mem obj. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00377">SVFIR.h:377</a></div></div>
3914
- <div class="ttc" id="classSVF_1_1MemObj_html_a3ab6f65ffbf6442daac4d3f70f2d3cb1"><div class="ttname"><a href="classSVF_1_1MemObj.html#a3ab6f65ffbf6442daac4d3f70f2d3cb1">SVF::MemObj::getId</a></div><div class="ttdeci">SymID getId() const</div><div class="ttdoc">Get the memory object id. </div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00451">SymbolTableInfo.h:451</a></div></div>
3915
- <div class="ttc" id="classSVF_1_1LocationSet_html"><div class="ttname"><a href="classSVF_1_1LocationSet.html">SVF::LocationSet</a></div><div class="ttdef"><b>Definition:</b> <a href="LocationSet_8h_source.html#l00093">LocationSet.h:93</a></div></div>
3913
+ <div class="ttc" id="classSVF_1_1MemObj_html_a3ab6f65ffbf6442daac4d3f70f2d3cb1"><div class="ttname"><a href="classSVF_1_1MemObj.html#a3ab6f65ffbf6442daac4d3f70f2d3cb1">SVF::MemObj::getId</a></div><div class="ttdeci">SymID getId() const</div><div class="ttdoc">Get the memory object id. </div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00448">SymbolTableInfo.h:448</a></div></div>
3914
+ <div class="ttc" id="classSVF_1_1LocationSet_html"><div class="ttname"><a href="classSVF_1_1LocationSet.html">SVF::LocationSet</a></div><div class="ttdef"><b>Definition:</b> <a href="LocationSet_8h_source.html#l00072">LocationSet.h:72</a></div></div>
3915
+ <div class="ttc" id="classSVF_1_1LocationSet_html_ac098bc95299002b9016684fa7f2799ca"><div class="ttname"><a href="classSVF_1_1LocationSet.html#ac098bc95299002b9016684fa7f2799ca">SVF::LocationSet::accumulateConstantOffset</a></div><div class="ttdeci">Size_t accumulateConstantOffset() const</div><div class="ttdoc">Get methods. </div><div class="ttdef"><b>Definition:</b> <a href="LocationSet_8h_source.html#l00154">LocationSet.h:154</a></div></div>
3916
3916
  </div><!-- fragment -->
3917
3917
  </div>
3918
3918
  </div>
@@ -3946,12 +3946,12 @@ Additional Inherited Members</h2></td></tr>
3946
3946
  <p>Given an object node, find its field object node </p>
3947
3947
 
3948
3948
  <p class="definition">Definition at line <a class="el" href="SVFIR_8cpp_source.html#l00383">383</a> of file <a class="el" href="SVFIR_8cpp_source.html">SVFIR.cpp</a>.</p>
3949
- <div class="fragment"><div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160;{</div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160; <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* node = <a class="code" href="classSVF_1_1SVFIR.html#aaf86146b5e765d1f278b6d812bf913f5">pag</a>-&gt;<a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(<span class="keywordtype">id</span>);</div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1GepObjPN.html">GepObjPN</a>* gepNode = SVFUtil::dyn_cast&lt;GepObjPN&gt;(node))</div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFIR.html#a20c0c65af266ac876cb722aee6e87101">getGepObjVar</a>(gepNode-&gt;getMemObj(), gepNode-&gt;getLocationSet() + ls);</div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1FIObjVar.html">FIObjVar</a>* baseNode = SVFUtil::dyn_cast&lt;FIObjVar&gt;(node))</div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFIR.html#a20c0c65af266ac876cb722aee6e87101">getGepObjVar</a>(baseNode-&gt;getMemObj(), ls);</div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1DummyObjVar.html">DummyObjVar</a>* baseNode = SVFUtil::dyn_cast&lt;DummyObjVar&gt;(node))</div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFIR.html#a20c0c65af266ac876cb722aee6e87101">getGepObjVar</a>(baseNode-&gt;getMemObj(), ls);</div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160; {</div><div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<span class="keyword">false</span> &amp;&amp; <span class="stringliteral">&quot;new gep obj node kind?&quot;</span>);</div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160; <span class="keywordflow">return</span> id;</div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160; }</div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160;}</div><div class="ttc" id="classSVF_1_1SVFIR_html_aaf86146b5e765d1f278b6d812bf913f5"><div class="ttname"><a href="classSVF_1_1SVFIR.html#aaf86146b5e765d1f278b6d812bf913f5">SVF::SVFIR::pag</a></div><div class="ttdeci">static SVFIR * pag</div><div class="ttdoc">Singleton pattern here to enable instance of SVFIR can only be created once. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00087">SVFIR.h:87</a></div></div>
3949
+ <div class="fragment"><div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160;{</div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160; <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* node = <a class="code" href="classSVF_1_1SVFIR.html#aaf86146b5e765d1f278b6d812bf913f5">pag</a>-&gt;<a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(<span class="keywordtype">id</span>);</div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1GepObjVar.html">GepObjVar</a>* gepNode = SVFUtil::dyn_cast&lt;GepObjVar&gt;(node))</div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFIR.html#a20c0c65af266ac876cb722aee6e87101">getGepObjVar</a>(gepNode-&gt;getMemObj(), gepNode-&gt;getLocationSet() + ls);</div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1FIObjVar.html">FIObjVar</a>* baseNode = SVFUtil::dyn_cast&lt;FIObjVar&gt;(node))</div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFIR.html#a20c0c65af266ac876cb722aee6e87101">getGepObjVar</a>(baseNode-&gt;getMemObj(), ls);</div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1DummyObjVar.html">DummyObjVar</a>* baseNode = SVFUtil::dyn_cast&lt;DummyObjVar&gt;(node))</div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFIR.html#a20c0c65af266ac876cb722aee6e87101">getGepObjVar</a>(baseNode-&gt;getMemObj(), ls);</div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160; {</div><div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<span class="keyword">false</span> &amp;&amp; <span class="stringliteral">&quot;new gep obj node kind?&quot;</span>);</div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160; <span class="keywordflow">return</span> id;</div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160; }</div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160;}</div><div class="ttc" id="classSVF_1_1SVFIR_html_aaf86146b5e765d1f278b6d812bf913f5"><div class="ttname"><a href="classSVF_1_1SVFIR.html#aaf86146b5e765d1f278b6d812bf913f5">SVF::SVFIR::pag</a></div><div class="ttdeci">static SVFIR * pag</div><div class="ttdoc">Singleton pattern here to enable instance of SVFIR can only be created once. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00087">SVFIR.h:87</a></div></div>
3950
3950
  <div class="ttc" id="util_8h_html_a07d17d6d5d1074c0969bc5d3c3d1d84a"><div class="ttname"><a href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a></div><div class="ttdeci">#define assert(ex)</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00141">util.h:141</a></div></div>
3951
3951
  <div class="ttc" id="classSVF_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#l00046">SVFVariables.h:46</a></div></div>
3952
- <div class="ttc" id="classSVF_1_1DummyObjVar_html"><div class="ttname"><a href="classSVF_1_1DummyObjVar.html">SVF::DummyObjVar</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00693">SVFVariables.h:693</a></div></div>
3953
- <div class="ttc" id="classSVF_1_1FIObjVar_html"><div class="ttname"><a href="classSVF_1_1FIObjVar.html">SVF::FIObjVar</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00527">SVFVariables.h:527</a></div></div>
3954
- <div class="ttc" id="classSVF_1_1GepObjPN_html"><div class="ttname"><a href="classSVF_1_1GepObjPN.html">SVF::GepObjPN</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00451">SVFVariables.h:451</a></div></div>
3952
+ <div class="ttc" id="classSVF_1_1DummyObjVar_html"><div class="ttname"><a href="classSVF_1_1DummyObjVar.html">SVF::DummyObjVar</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00699">SVFVariables.h:699</a></div></div>
3953
+ <div class="ttc" id="classSVF_1_1GepObjVar_html"><div class="ttname"><a href="classSVF_1_1GepObjVar.html">SVF::GepObjVar</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00451">SVFVariables.h:451</a></div></div>
3954
+ <div class="ttc" id="classSVF_1_1FIObjVar_html"><div class="ttname"><a href="classSVF_1_1FIObjVar.html">SVF::FIObjVar</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00533">SVFVariables.h:533</a></div></div>
3955
3955
  <div class="ttc" id="classSVF_1_1GenericGraph_html_a43c9c773bfa17abf481c33073e30d01b"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">SVF::GenericGraph::getGNode</a></div><div class="ttdeci">NodeType * getGNode(NodeID id) const</div><div class="ttdoc">Get a node. </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00387">GenericGraph.h:387</a></div></div>
3956
3956
  <div class="ttc" id="classSVF_1_1SVFIR_html_a20c0c65af266ac876cb722aee6e87101"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a20c0c65af266ac876cb722aee6e87101">SVF::SVFIR::getGepObjVar</a></div><div class="ttdeci">NodeID getGepObjVar(const MemObj *obj, const LocationSet &amp;ls)</div><div class="ttdoc">Get a field SVFIR Object node according to base mem obj and offset. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8cpp_source.html#l00405">SVFIR.cpp:405</a></div></div>
3957
3957
  </div><!-- fragment -->
@@ -4246,7 +4246,7 @@ Additional Inherited Members</h2></td></tr>
4246
4246
  <div class="ttc" id="classSVF_1_1SVFStmt_html_a0ab8621e75e75f03425c323b3ed62ce9ac2089ffeab3f27354b2094758c805746"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ac2089ffeab3f27354b2094758c805746">SVF::SVFStmt::NormalGep</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00056">SVFStatements.h:56</a></div></div>
4247
4247
  <div class="ttc" id="classSVF_1_1SVFVar_html_a76964ef7d4842a469d7720881499d8a6"><div class="ttname"><a href="classSVF_1_1SVFVar.html#a76964ef7d4842a469d7720881499d8a6">SVF::SVFVar::getIncomingEdges</a></div><div class="ttdeci">SVFStmt::SVFStmtSetTy &amp; getIncomingEdges(SVFStmt::PEDGEK kind)</div><div class="ttdoc">Get incoming SVFIR statements (edges) </div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00161">SVFVariables.h:161</a></div></div>
4248
4248
  <div class="ttc" id="classSVF_1_1NormalGepStmt_html"><div class="ttname"><a href="classSVF_1_1NormalGepStmt.html">SVF::NormalGepStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00709">SVFStatements.h:709</a></div></div>
4249
- <div class="ttc" id="classSVF_1_1LocationSet_html"><div class="ttname"><a href="classSVF_1_1LocationSet.html">SVF::LocationSet</a></div><div class="ttdef"><b>Definition:</b> <a href="LocationSet_8h_source.html#l00093">LocationSet.h:93</a></div></div>
4249
+ <div class="ttc" id="classSVF_1_1LocationSet_html"><div class="ttname"><a href="classSVF_1_1LocationSet.html">SVF::LocationSet</a></div><div class="ttdef"><b>Definition:</b> <a href="LocationSet_8h_source.html#l00072">LocationSet.h:72</a></div></div>
4250
4250
  <div class="ttc" id="classSVF_1_1GenericGraph_html_a43c9c773bfa17abf481c33073e30d01b"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">SVF::GenericGraph&lt; SVFVar, SVFStmt &gt;::getGNode</a></div><div class="ttdeci">NodeType * getGNode(NodeID id) const</div><div class="ttdoc">Get a node. </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00387">GenericGraph.h:387</a></div></div>
4251
4251
  <div class="ttc" id="classSVF_1_1SVFStmt_html"><div class="ttname"><a href="classSVF_1_1SVFStmt.html">SVF::SVFStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00047">SVFStatements.h:47</a></div></div>
4252
4252
  </div><!-- fragment -->
@@ -4914,7 +4914,7 @@ Additional Inherited Members</h2></td></tr>
4914
4914
  </div><div class="memdoc">
4915
4915
 
4916
4916
  <p class="definition">Definition at line <a class="el" href="SVFIR_8h_source.html#l00414">414</a> of file <a class="el" href="SVFIR_8h_source.html">SVFIR.h</a>.</p>
4917
- <div class="fragment"><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; {</div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; SVFVar* node = <a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(<span class="keywordtype">id</span>);</div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; <span class="keywordflow">if</span> (FIObjVar* fiNode = SVFUtil::dyn_cast&lt;FIObjVar&gt;(node))</div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160; {</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160; <span class="keywordflow">return</span> (fiNode-&gt;getMemObj()-&gt;hasPtrObj() == <span class="keyword">false</span>);</div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; }</div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (GepObjPN* gepNode = SVFUtil::dyn_cast&lt;GepObjPN&gt;(node))</div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160; {</div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160; <span class="keywordflow">return</span> (gepNode-&gt;getMemObj()-&gt;isNonPtrFieldObj(gepNode-&gt;getLocationSet()));</div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160; }</div><div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa&lt;DummyObjVar&gt;(node))</div><div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160; {</div><div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160; }</div><div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160; {</div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<span class="keyword">false</span> &amp;&amp; <span class="stringliteral">&quot;expecting a object node&quot;</span>);</div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160; }</div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160; }</div><div class="ttc" id="util_8h_html_a07d17d6d5d1074c0969bc5d3c3d1d84a"><div class="ttname"><a href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a></div><div class="ttdeci">#define assert(ex)</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00141">util.h:141</a></div></div>
4917
+ <div class="fragment"><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; {</div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; SVFVar* node = <a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(<span class="keywordtype">id</span>);</div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; <span class="keywordflow">if</span> (FIObjVar* fiNode = SVFUtil::dyn_cast&lt;FIObjVar&gt;(node))</div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160; {</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160; <span class="keywordflow">return</span> (fiNode-&gt;getMemObj()-&gt;hasPtrObj() == <span class="keyword">false</span>);</div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; }</div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (GepObjVar* gepNode = SVFUtil::dyn_cast&lt;GepObjVar&gt;(node))</div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160; {</div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160; <span class="keywordflow">return</span> (gepNode-&gt;getMemObj()-&gt;isNonPtrFieldObj(gepNode-&gt;getLocationSet()));</div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160; }</div><div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa&lt;DummyObjVar&gt;(node))</div><div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160; {</div><div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160; }</div><div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160; {</div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<span class="keyword">false</span> &amp;&amp; <span class="stringliteral">&quot;expecting a object node&quot;</span>);</div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160; }</div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160; }</div><div class="ttc" id="util_8h_html_a07d17d6d5d1074c0969bc5d3c3d1d84a"><div class="ttname"><a href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a></div><div class="ttdeci">#define assert(ex)</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00141">util.h:141</a></div></div>
4918
4918
  <div class="ttc" id="classSVF_1_1GenericGraph_html_a43c9c773bfa17abf481c33073e30d01b"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">SVF::GenericGraph&lt; SVFVar, SVFStmt &gt;::getGNode</a></div><div class="ttdeci">NodeType * getGNode(NodeID id) const</div><div class="ttdoc">Get a node. </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00387">GenericGraph.h:387</a></div></div>
4919
4919
  </div><!-- fragment -->
4920
4920
  </div>