svf-tools 1.0.330 → 1.0.334

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 (320) hide show
  1. package/SVF-doxygen/html/html/AndersenSFR_8cpp_source.html +4 -4
  2. package/SVF-doxygen/html/html/Andersen_8cpp_source.html +4 -4
  3. package/SVF-doxygen/html/html/CSC_8cpp_source.html +2 -3
  4. package/SVF-doxygen/html/html/ConsGEdge_8h_source.html +4 -4
  5. package/SVF-doxygen/html/html/ConsGNode_8h_source.html +5 -5
  6. package/SVF-doxygen/html/html/ConsG_8cpp_source.html +17 -8
  7. package/SVF-doxygen/html/html/ConsG_8h_source.html +4 -4
  8. package/SVF-doxygen/html/html/ContextDDA_8cpp_source.html +6 -6
  9. package/SVF-doxygen/html/html/DCHG_8cpp_source.html +2 -2
  10. package/SVF-doxygen/html/html/DCHG_8h_source.html +5 -4
  11. package/SVF-doxygen/html/html/DDAVFSolver_8h_source.html +6 -6
  12. package/SVF-doxygen/html/html/FlowDDA_8cpp_source.html +3 -3
  13. package/SVF-doxygen/html/html/FlowSensitiveStat_8cpp_source.html +3 -3
  14. package/SVF-doxygen/html/html/FlowSensitiveTBHC_8cpp_source.html +3 -3
  15. package/SVF-doxygen/html/html/FlowSensitive_8cpp_source.html +1 -1
  16. package/SVF-doxygen/html/html/Graph2Json_8cpp_source.html +3 -3
  17. package/SVF-doxygen/html/html/ICFGNode_8h_source.html +3 -3
  18. package/SVF-doxygen/html/html/IRAnnotator_8h_source.html +6 -7
  19. package/SVF-doxygen/html/html/IRGraph_8cpp_source.html +3 -3
  20. package/SVF-doxygen/html/html/IRGraph_8h_source.html +1 -1
  21. package/SVF-doxygen/html/html/LocationSet_8cpp.html +1 -0
  22. package/SVF-doxygen/html/html/LocationSet_8cpp_source.html +12 -15
  23. package/SVF-doxygen/html/html/LocationSet_8h.html +1 -1
  24. package/SVF-doxygen/html/html/LocationSet_8h_source.html +26 -40
  25. package/SVF-doxygen/html/html/MSSAMuChi_8h_source.html +2 -2
  26. package/SVF-doxygen/html/html/MemRegion_8cpp_source.html +9 -9
  27. package/SVF-doxygen/html/html/MemRegion_8h_source.html +2 -2
  28. package/SVF-doxygen/html/html/MemSSA_8cpp_source.html +2 -2
  29. package/SVF-doxygen/html/html/MemSSA_8h_source.html +2 -2
  30. package/SVF-doxygen/html/html/OfflineConsG_8cpp_source.html +1 -1
  31. package/SVF-doxygen/html/html/PAGBuilderFromFile_8cpp_source.html +4 -4
  32. package/SVF-doxygen/html/html/PTAStat_8cpp_source.html +14 -14
  33. package/SVF-doxygen/html/html/PointerAnalysisImpl_8cpp_source.html +6 -6
  34. package/SVF-doxygen/html/html/PointerAnalysis_8cpp_source.html +5 -5
  35. package/SVF-doxygen/html/html/PointerAnalysis_8h_source.html +6 -6
  36. package/SVF-doxygen/html/html/SVFG_8cpp_source.html +1 -1
  37. package/SVF-doxygen/html/html/SVFIRBuilder_8cpp_source.html +11 -12
  38. package/SVF-doxygen/html/html/SVFIRBuilder_8h_source.html +50 -50
  39. package/SVF-doxygen/html/html/SVFIR_8cpp_source.html +34 -34
  40. package/SVF-doxygen/html/html/SVFIR_8h_source.html +29 -29
  41. package/SVF-doxygen/html/html/SVFStatements_8cpp_source.html +1 -1
  42. package/SVF-doxygen/html/html/SVFStatements_8h.html +14 -12
  43. package/SVF-doxygen/html/html/SVFStatements_8h_source.html +132 -124
  44. package/SVF-doxygen/html/html/SVFVariables_8cpp_source.html +2 -2
  45. package/SVF-doxygen/html/html/SVFVariables_8h.html +1 -1
  46. package/SVF-doxygen/html/html/SVFVariables_8h_source.html +70 -70
  47. package/SVF-doxygen/html/html/SaberSVFGBuilder_8cpp_source.html +3 -3
  48. package/SVF-doxygen/html/html/SymbolTableBuilder_8cpp_source.html +21 -21
  49. package/SVF-doxygen/html/html/SymbolTableBuilder_8h_source.html +1 -1
  50. package/SVF-doxygen/html/html/SymbolTableInfo_8cpp_source.html +52 -53
  51. package/SVF-doxygen/html/html/SymbolTableInfo_8h_source.html +72 -75
  52. package/SVF-doxygen/html/html/ThreadCallGraph_8cpp_source.html +3 -3
  53. package/SVF-doxygen/html/html/TypeBasedHeapCloning_8cpp_source.html +13 -13
  54. package/SVF-doxygen/html/html/TypeBasedHeapCloning_8h_source.html +2 -2
  55. package/SVF-doxygen/html/html/VFGNode_8h_source.html +11 -11
  56. package/SVF-doxygen/html/html/VFG_8cpp_source.html +18 -18
  57. package/SVF-doxygen/html/html/VFG_8h_source.html +17 -16
  58. package/SVF-doxygen/html/html/VersionedFlowSensitiveStat_8cpp_source.html +3 -3
  59. package/SVF-doxygen/html/html/annotated.html +267 -266
  60. package/SVF-doxygen/html/html/classSVF_1_1AddrStmt-members.html +16 -10
  61. package/SVF-doxygen/html/html/classSVF_1_1AddrStmt.html +36 -14
  62. package/SVF-doxygen/html/html/classSVF_1_1AddrStmt.png +0 -0
  63. package/SVF-doxygen/html/html/classSVF_1_1AndersenBase.html +4 -4
  64. package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR.html +6 -6
  65. package/SVF-doxygen/html/html/classSVF_1_1AssignStmt-members.html +145 -0
  66. package/SVF-doxygen/html/html/classSVF_1_1AssignStmt.html +770 -0
  67. package/SVF-doxygen/html/html/classSVF_1_1AssignStmt.png +0 -0
  68. package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl.html +9 -9
  69. package/SVF-doxygen/html/html/classSVF_1_1BinaryOPStmt-members.html +7 -11
  70. package/SVF-doxygen/html/html/classSVF_1_1BinaryOPStmt.html +19 -138
  71. package/SVF-doxygen/html/html/classSVF_1_1BranchStmt-members.html +2 -2
  72. package/SVF-doxygen/html/html/classSVF_1_1BranchStmt.html +39 -39
  73. package/SVF-doxygen/html/html/classSVF_1_1BranchVFGNode.html +3 -3
  74. package/SVF-doxygen/html/html/classSVF_1_1CSC.html +2 -3
  75. package/SVF-doxygen/html/html/classSVF_1_1CallBlockNode-members.html +4 -4
  76. package/SVF-doxygen/html/html/classSVF_1_1CallBlockNode.html +4 -4
  77. package/SVF-doxygen/html/html/classSVF_1_1CallPE-members.html +19 -13
  78. package/SVF-doxygen/html/html/classSVF_1_1CallPE.html +43 -21
  79. package/SVF-doxygen/html/html/classSVF_1_1CallPE.png +0 -0
  80. package/SVF-doxygen/html/html/classSVF_1_1CloneDummyObjVar.html +11 -11
  81. package/SVF-doxygen/html/html/classSVF_1_1CloneFIObjVar.html +11 -11
  82. package/SVF-doxygen/html/html/classSVF_1_1CloneGepObjVar-members.html +64 -63
  83. package/SVF-doxygen/html/html/classSVF_1_1CloneGepObjVar.html +44 -41
  84. package/SVF-doxygen/html/html/classSVF_1_1CloneGepObjVar.png +0 -0
  85. package/SVF-doxygen/html/html/classSVF_1_1CmpStmt-members.html +7 -11
  86. package/SVF-doxygen/html/html/classSVF_1_1CmpStmt.html +20 -139
  87. package/SVF-doxygen/html/html/classSVF_1_1ConstraintGraph.html +20 -13
  88. package/SVF-doxygen/html/html/classSVF_1_1ConstraintNode-members.html +26 -26
  89. package/SVF-doxygen/html/html/classSVF_1_1ConstraintNode.html +43 -43
  90. package/SVF-doxygen/html/html/classSVF_1_1ContextDDA.html +5 -5
  91. package/SVF-doxygen/html/html/classSVF_1_1CopyStmt-members.html +16 -10
  92. package/SVF-doxygen/html/html/classSVF_1_1CopyStmt.html +36 -14
  93. package/SVF-doxygen/html/html/classSVF_1_1CopyStmt.png +0 -0
  94. package/SVF-doxygen/html/html/classSVF_1_1DCHEdge-members.html +3 -3
  95. package/SVF-doxygen/html/html/classSVF_1_1DCHEdge.html +19 -19
  96. package/SVF-doxygen/html/html/classSVF_1_1DCHGraph.html +2 -2
  97. package/SVF-doxygen/html/html/classSVF_1_1DDAVFSolver.html +1 -1
  98. package/SVF-doxygen/html/html/classSVF_1_1DummyObjVar.html +11 -11
  99. package/SVF-doxygen/html/html/classSVF_1_1DummyValVar.html +11 -11
  100. package/SVF-doxygen/html/html/classSVF_1_1FIObjVar.html +13 -13
  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.html +3 -3
  104. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive.html +2 -2
  105. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveStat.html +3 -3
  106. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveTBHC.html +7 -7
  107. package/SVF-doxygen/html/html/classSVF_1_1FunEntryBlockNode-members.html +2 -2
  108. package/SVF-doxygen/html/html/classSVF_1_1FunEntryBlockNode.html +4 -4
  109. package/SVF-doxygen/html/html/classSVF_1_1FunExitBlockNode-members.html +2 -2
  110. package/SVF-doxygen/html/html/classSVF_1_1FunExitBlockNode.html +4 -4
  111. package/SVF-doxygen/html/html/classSVF_1_1GenericEdge.html +3 -9
  112. package/SVF-doxygen/html/html/classSVF_1_1GenericEdge.png +0 -0
  113. package/SVF-doxygen/html/html/classSVF_1_1GenericNode.html +22 -23
  114. package/SVF-doxygen/html/html/classSVF_1_1GenericNode.png +0 -0
  115. package/SVF-doxygen/html/html/classSVF_1_1GepObjVar-members.html +173 -0
  116. package/SVF-doxygen/html/html/classSVF_1_1GepObjVar.html +813 -0
  117. package/SVF-doxygen/html/html/classSVF_1_1GepObjVar.png +0 -0
  118. package/SVF-doxygen/html/html/classSVF_1_1GepStmt-members.html +23 -15
  119. package/SVF-doxygen/html/html/classSVF_1_1GepStmt.html +166 -69
  120. package/SVF-doxygen/html/html/classSVF_1_1GepStmt.png +0 -0
  121. package/SVF-doxygen/html/html/classSVF_1_1GepValVar-members.html +8 -8
  122. package/SVF-doxygen/html/html/classSVF_1_1GepValVar.html +12 -12
  123. package/SVF-doxygen/html/html/classSVF_1_1GlobalBlockNode-members.html +2 -2
  124. package/SVF-doxygen/html/html/classSVF_1_1GlobalBlockNode.html +4 -4
  125. package/SVF-doxygen/html/html/classSVF_1_1ICFGNode-members.html +2 -2
  126. package/SVF-doxygen/html/html/classSVF_1_1ICFGNode.html +10 -10
  127. package/SVF-doxygen/html/html/classSVF_1_1ICFGPrinter.html +3 -3
  128. package/SVF-doxygen/html/html/classSVF_1_1IRAnnotator-members.html +1 -1
  129. package/SVF-doxygen/html/html/classSVF_1_1IRAnnotator.html +8 -8
  130. package/SVF-doxygen/html/html/classSVF_1_1InterBlockNode-members.html +2 -2
  131. package/SVF-doxygen/html/html/classSVF_1_1InterBlockNode.html +4 -4
  132. package/SVF-doxygen/html/html/classSVF_1_1IntraBlockNode-members.html +2 -2
  133. package/SVF-doxygen/html/html/classSVF_1_1IntraBlockNode.html +4 -4
  134. package/SVF-doxygen/html/html/classSVF_1_1LoadStmt-members.html +16 -10
  135. package/SVF-doxygen/html/html/classSVF_1_1LoadStmt.html +36 -14
  136. package/SVF-doxygen/html/html/classSVF_1_1LoadStmt.png +0 -0
  137. package/SVF-doxygen/html/html/classSVF_1_1LocationSet-members.html +17 -21
  138. package/SVF-doxygen/html/html/classSVF_1_1LocationSet.html +150 -326
  139. package/SVF-doxygen/html/html/classSVF_1_1MRGenerator.html +14 -14
  140. package/SVF-doxygen/html/html/classSVF_1_1MemObj.html +84 -84
  141. package/SVF-doxygen/html/html/classSVF_1_1MemSSA.html +6 -6
  142. package/SVF-doxygen/html/html/classSVF_1_1MultiOpndStmt-members.html +36 -29
  143. package/SVF-doxygen/html/html/classSVF_1_1MultiOpndStmt.html +250 -31
  144. package/SVF-doxygen/html/html/classSVF_1_1NormalGepCGEdge-members.html +2 -2
  145. package/SVF-doxygen/html/html/classSVF_1_1NormalGepCGEdge.html +14 -14
  146. package/SVF-doxygen/html/html/classSVF_1_1NormalGepStmt-members.html +51 -46
  147. package/SVF-doxygen/html/html/classSVF_1_1NormalGepStmt.html +53 -93
  148. package/SVF-doxygen/html/html/classSVF_1_1NormalGepStmt.png +0 -0
  149. package/SVF-doxygen/html/html/classSVF_1_1ObjTypeInfo.html +96 -96
  150. package/SVF-doxygen/html/html/classSVF_1_1ObjVar.html +5 -5
  151. package/SVF-doxygen/html/html/classSVF_1_1ObjVar.png +0 -0
  152. package/SVF-doxygen/html/html/classSVF_1_1PAGBuilderFromFile.html +5 -5
  153. package/SVF-doxygen/html/html/classSVF_1_1PTAStat.html +14 -14
  154. package/SVF-doxygen/html/html/classSVF_1_1PhiStmt-members.html +5 -9
  155. package/SVF-doxygen/html/html/classSVF_1_1PhiStmt.html +18 -137
  156. package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.html +8 -8
  157. package/SVF-doxygen/html/html/classSVF_1_1RetBlockNode-members.html +2 -2
  158. package/SVF-doxygen/html/html/classSVF_1_1RetBlockNode.html +4 -4
  159. package/SVF-doxygen/html/html/classSVF_1_1RetPE-members.html +16 -10
  160. package/SVF-doxygen/html/html/classSVF_1_1RetPE.html +43 -21
  161. package/SVF-doxygen/html/html/classSVF_1_1RetPE.png +0 -0
  162. package/SVF-doxygen/html/html/classSVF_1_1RetPN.html +11 -11
  163. package/SVF-doxygen/html/html/classSVF_1_1SVFG.html +1 -1
  164. package/SVF-doxygen/html/html/classSVF_1_1SVFIR-members.html +1 -1
  165. package/SVF-doxygen/html/html/classSVF_1_1SVFIR.html +67 -59
  166. package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder-members.html +1 -1
  167. package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder.html +133 -128
  168. package/SVF-doxygen/html/html/classSVF_1_1SVFStmt.html +12 -8
  169. package/SVF-doxygen/html/html/classSVF_1_1SVFStmt.png +0 -0
  170. package/SVF-doxygen/html/html/classSVF_1_1SVFVar.html +4 -4
  171. package/SVF-doxygen/html/html/classSVF_1_1SVFVar.png +0 -0
  172. package/SVF-doxygen/html/html/classSVF_1_1SaberSVFGBuilder.html +3 -3
  173. package/SVF-doxygen/html/html/classSVF_1_1StInfo-members.html +11 -14
  174. package/SVF-doxygen/html/html/classSVF_1_1StInfo.html +70 -168
  175. package/SVF-doxygen/html/html/classSVF_1_1StoreStmt-members.html +16 -10
  176. package/SVF-doxygen/html/html/classSVF_1_1StoreStmt.html +36 -14
  177. package/SVF-doxygen/html/html/classSVF_1_1StoreStmt.png +0 -0
  178. package/SVF-doxygen/html/html/classSVF_1_1SymbolTableBuilder.html +30 -30
  179. package/SVF-doxygen/html/html/classSVF_1_1SymbolTableInfo-members.html +59 -60
  180. package/SVF-doxygen/html/html/classSVF_1_1SymbolTableInfo.html +118 -146
  181. package/SVF-doxygen/html/html/classSVF_1_1TDForkPE-members.html +18 -12
  182. package/SVF-doxygen/html/html/classSVF_1_1TDForkPE.html +35 -13
  183. package/SVF-doxygen/html/html/classSVF_1_1TDForkPE.png +0 -0
  184. package/SVF-doxygen/html/html/classSVF_1_1TDJoinPE-members.html +17 -11
  185. package/SVF-doxygen/html/html/classSVF_1_1TDJoinPE.html +35 -13
  186. package/SVF-doxygen/html/html/classSVF_1_1TDJoinPE.png +0 -0
  187. package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraph.html +3 -3
  188. package/SVF-doxygen/html/html/classSVF_1_1TypeBasedHeapCloning.html +18 -18
  189. package/SVF-doxygen/html/html/classSVF_1_1UnaryOPStmt-members.html +2 -2
  190. package/SVF-doxygen/html/html/classSVF_1_1UnaryOPStmt.html +32 -32
  191. package/SVF-doxygen/html/html/classSVF_1_1VFG.html +27 -27
  192. package/SVF-doxygen/html/html/classSVF_1_1VarArgPN.html +11 -11
  193. package/SVF-doxygen/html/html/classSVF_1_1VariantGepStmt-members.html +52 -45
  194. package/SVF-doxygen/html/html/classSVF_1_1VariantGepStmt.html +56 -25
  195. package/SVF-doxygen/html/html/classSVF_1_1VariantGepStmt.png +0 -0
  196. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitiveStat.html +3 -3
  197. package/SVF-doxygen/html/html/classes.html +93 -95
  198. package/SVF-doxygen/html/html/functions_a.html +22 -16
  199. package/SVF-doxygen/html/html/functions_b.html +1 -5
  200. package/SVF-doxygen/html/html/functions_c.html +21 -22
  201. package/SVF-doxygen/html/html/functions_d.html +1 -1
  202. package/SVF-doxygen/html/html/functions_e.html +0 -16
  203. package/SVF-doxygen/html/html/functions_f.html +21 -19
  204. package/SVF-doxygen/html/html/functions_func.html +21 -15
  205. package/SVF-doxygen/html/html/functions_func_c.html +26 -25
  206. package/SVF-doxygen/html/html/functions_func_d.html +1 -1
  207. package/SVF-doxygen/html/html/functions_func_e.html +2 -8
  208. package/SVF-doxygen/html/html/functions_func_f.html +4 -4
  209. package/SVF-doxygen/html/html/functions_func_g.html +67 -80
  210. package/SVF-doxygen/html/html/functions_func_i.html +11 -14
  211. package/SVF-doxygen/html/html/functions_func_o.html +5 -3
  212. package/SVF-doxygen/html/html/functions_func_s.html +7 -10
  213. package/SVF-doxygen/html/html/functions_func_t.html +2 -1
  214. package/SVF-doxygen/html/html/functions_func_w.html +1 -1
  215. package/SVF-doxygen/html/html/functions_g.html +67 -80
  216. package/SVF-doxygen/html/html/functions_i.html +6 -9
  217. package/SVF-doxygen/html/html/functions_l.html +7 -7
  218. package/SVF-doxygen/html/html/functions_m.html +1 -1
  219. package/SVF-doxygen/html/html/functions_n.html +4 -7
  220. package/SVF-doxygen/html/html/functions_o.html +21 -14
  221. package/SVF-doxygen/html/html/functions_p.html +21 -15
  222. package/SVF-doxygen/html/html/functions_r.html +1 -1
  223. package/SVF-doxygen/html/html/functions_s.html +11 -16
  224. package/SVF-doxygen/html/html/functions_t.html +9 -8
  225. package/SVF-doxygen/html/html/functions_type_e.html +0 -4
  226. package/SVF-doxygen/html/html/functions_type_o.html +3 -0
  227. package/SVF-doxygen/html/html/functions_vars_b.html +1 -5
  228. package/SVF-doxygen/html/html/functions_vars_e.html +0 -6
  229. package/SVF-doxygen/html/html/functions_vars_f.html +9 -7
  230. package/SVF-doxygen/html/html/functions_vars_l.html +2 -2
  231. package/SVF-doxygen/html/html/functions_vars_n.html +0 -3
  232. package/SVF-doxygen/html/html/functions_vars_o.html +3 -3
  233. package/SVF-doxygen/html/html/functions_w.html +6 -10
  234. package/SVF-doxygen/html/html/hierarchy.html +81 -80
  235. package/SVF-doxygen/html/html/namespaceSVF.html +5 -3
  236. package/SVF-doxygen/html/html/search/all_1.js +7 -5
  237. package/SVF-doxygen/html/html/search/all_10.js +12 -12
  238. package/SVF-doxygen/html/html/search/all_12.js +1 -1
  239. package/SVF-doxygen/html/html/search/all_13.js +8 -9
  240. package/SVF-doxygen/html/html/search/all_14.js +4 -4
  241. package/SVF-doxygen/html/html/search/all_16.js +2 -2
  242. package/SVF-doxygen/html/html/search/all_17.js +2 -2
  243. package/SVF-doxygen/html/html/search/all_2.js +2 -3
  244. package/SVF-doxygen/html/html/search/all_3.js +2 -2
  245. package/SVF-doxygen/html/html/search/all_4.js +1 -1
  246. package/SVF-doxygen/html/html/search/all_5.js +0 -5
  247. package/SVF-doxygen/html/html/search/all_6.js +6 -5
  248. package/SVF-doxygen/html/html/search/all_7.js +23 -27
  249. package/SVF-doxygen/html/html/search/all_9.js +1 -2
  250. package/SVF-doxygen/html/html/search/all_c.js +4 -4
  251. package/SVF-doxygen/html/html/search/all_d.js +2 -2
  252. package/SVF-doxygen/html/html/search/all_e.js +3 -4
  253. package/SVF-doxygen/html/html/search/all_f.js +4 -3
  254. package/SVF-doxygen/html/html/search/classes_0.js +2 -1
  255. package/SVF-doxygen/html/html/search/classes_5.js +1 -1
  256. package/SVF-doxygen/html/html/search/classes_6.js +1 -1
  257. package/SVF-doxygen/html/html/search/functions_0.js +7 -5
  258. package/SVF-doxygen/html/html/search/functions_10.js +3 -4
  259. package/SVF-doxygen/html/html/search/functions_11.js +1 -1
  260. package/SVF-doxygen/html/html/search/functions_13.js +1 -1
  261. package/SVF-doxygen/html/html/search/functions_14.js +1 -1
  262. package/SVF-doxygen/html/html/search/functions_2.js +2 -2
  263. package/SVF-doxygen/html/html/search/functions_3.js +1 -1
  264. package/SVF-doxygen/html/html/search/functions_4.js +0 -2
  265. package/SVF-doxygen/html/html/search/functions_5.js +1 -1
  266. package/SVF-doxygen/html/html/search/functions_6.js +23 -27
  267. package/SVF-doxygen/html/html/search/functions_8.js +1 -2
  268. package/SVF-doxygen/html/html/search/functions_a.js +1 -1
  269. package/SVF-doxygen/html/html/search/functions_b.js +1 -1
  270. package/SVF-doxygen/html/html/search/functions_d.js +1 -1
  271. package/SVF-doxygen/html/html/search/functions_e.js +1 -1
  272. package/SVF-doxygen/html/html/search/typedefs_4.js +0 -1
  273. package/SVF-doxygen/html/html/search/typedefs_e.js +1 -0
  274. package/SVF-doxygen/html/html/search/variables_14.js +1 -1
  275. package/SVF-doxygen/html/html/search/variables_2.js +2 -3
  276. package/SVF-doxygen/html/html/search/variables_5.js +0 -2
  277. package/SVF-doxygen/html/html/search/variables_6.js +5 -4
  278. package/SVF-doxygen/html/html/search/variables_c.js +1 -1
  279. package/SVF-doxygen/html/html/search/variables_e.js +2 -3
  280. package/SVF-doxygen/html/html/search/variables_f.js +2 -2
  281. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01ConstraintGraph_01_5_01_4.html +1 -1
  282. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01IRGraph_01_5_01_4.html +3 -3
  283. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01OfflineConsG_01_5_01_4.html +1 -1
  284. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1LocationSet_01_4.html +5 -5
  285. package/include/Graphs/ConsG.h +1 -1
  286. package/include/Graphs/ConsGEdge.h +2 -2
  287. package/include/Graphs/ICFGNode.h +2 -2
  288. package/include/Graphs/VFG.h +4 -4
  289. package/include/MemoryModel/LocationSet.h +39 -126
  290. package/include/MemoryModel/SVFIR.h +2 -2
  291. package/include/MemoryModel/SVFStatements.h +378 -308
  292. package/include/MemoryModel/SVFVariables.h +20 -14
  293. package/include/MemoryModel/SymbolTableInfo.h +27 -25
  294. package/include/SVF-FE/DCHG.h +3 -3
  295. package/include/SVF-FE/SVFIRBuilder.h +2 -2
  296. package/include/Util/IRAnnotator.h +3 -3
  297. package/lib/DDA/ContextDDA.cpp +1 -1
  298. package/lib/Graphs/ConsG.cpp +26 -26
  299. package/lib/Graphs/IRGraph.cpp +1 -1
  300. package/lib/Graphs/OfflineConsG.cpp +1 -1
  301. package/lib/Graphs/VFG.cpp +10 -10
  302. package/lib/MSSA/MemRegion.cpp +5 -5
  303. package/lib/MemoryModel/LocationSet.cpp +53 -95
  304. package/lib/MemoryModel/PAGBuilderFromFile.cpp +1 -1
  305. package/lib/MemoryModel/PointerAnalysisImpl.cpp +4 -4
  306. package/lib/MemoryModel/SVFIR.cpp +11 -11
  307. package/lib/MemoryModel/SVFStatements.cpp +11 -11
  308. package/lib/MemoryModel/SVFVariables.cpp +3 -3
  309. package/lib/MemoryModel/SymbolTableInfo.cpp +37 -64
  310. package/lib/SABER/SaberSVFGBuilder.cpp +1 -1
  311. package/lib/SVF-FE/DCHG.cpp +1 -1
  312. package/lib/SVF-FE/Graph2Json.cpp +1 -1
  313. package/lib/SVF-FE/SVFIRBuilder.cpp +10 -11
  314. package/lib/SVF-FE/SymbolTableBuilder.cpp +4 -4
  315. package/lib/Util/TypeBasedHeapCloning.cpp +11 -11
  316. package/lib/WPA/Andersen.cpp +1 -1
  317. package/lib/WPA/AndersenSFR.cpp +3 -3
  318. package/lib/WPA/CSC.cpp +2 -2
  319. package/lib/WPA/FlowSensitiveTBHC.cpp +6 -6
  320. package/package.json +1 -1
@@ -73,12 +73,14 @@ $(function() {
73
73
  <tr><td class="entry"><a class="el" href="classSVF_1_1AddrStmt.html#a0fa28f3a081cd6d32801ab245b6e95ae">AddrStmt</a>()</td><td class="entry"><a class="el" href="classSVF_1_1AddrStmt.html">SVF::AddrStmt</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
74
74
  <tr class="even"><td class="entry"><a class="el" href="classSVF_1_1AddrStmt.html#a2576465276cd68b6d2029e1838c3b487">AddrStmt</a>(const AddrStmt &amp;)</td><td class="entry"><a class="el" href="classSVF_1_1AddrStmt.html">SVF::AddrStmt</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
75
75
  <tr><td class="entry"><a class="el" href="classSVF_1_1AddrStmt.html#a42caa75acb42ce8e290c1278622f139c">AddrStmt</a>(SVFVar *s, SVFVar *d)</td><td class="entry"><a class="el" href="classSVF_1_1AddrStmt.html">SVF::AddrStmt</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_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad58f5e59c55e1ffd23b83d16224fed13">BinaryOp</a> enum value</td><td class="entry"><a class="el" href="classSVF_1_1SVFStmt.html">SVF::SVFStmt</a></td><td class="entry"></td></tr>
77
- <tr><td class="entry"><a class="el" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad52703e3ec09b6a4f565e5d82279b6a3">Branch</a> enum value</td><td class="entry"><a class="el" href="classSVF_1_1SVFStmt.html">SVF::SVFStmt</a></td><td class="entry"></td></tr>
78
- <tr class="even"><td class="entry"><a class="el" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a97ca16eba4c5f92e16388f0cdbcfcc00">Call</a> enum value</td><td class="entry"><a class="el" href="classSVF_1_1SVFStmt.html">SVF::SVFStmt</a></td><td class="entry"></td></tr>
79
- <tr><td class="entry"><a class="el" href="classSVF_1_1AddrStmt.html#a32e129c9f7aa16be8c5c8569989f691f">classof</a>(const AddrStmt *)</td><td class="entry"><a class="el" href="classSVF_1_1AddrStmt.html">SVF::AddrStmt</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
80
- <tr class="even"><td class="entry"><a class="el" href="classSVF_1_1AddrStmt.html#aeec83dc4e79ee62c92c75aa778a475ad">classof</a>(const SVFStmt *edge)</td><td class="entry"><a class="el" href="classSVF_1_1AddrStmt.html">SVF::AddrStmt</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
81
- <tr><td class="entry"><a class="el" href="classSVF_1_1AddrStmt.html#a6876ffc2c97c5ba64155891b55a7884c">classof</a>(const GenericPAGEdgeTy *edge)</td><td class="entry"><a class="el" href="classSVF_1_1AddrStmt.html">SVF::AddrStmt</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
76
+ <tr class="even"><td class="entry"><a class="el" href="classSVF_1_1AssignStmt.html#aff4c35109790daed3c6170c985153620">AssignStmt</a>(SVFVar *s, SVFVar *d, GEdgeFlag k)</td><td class="entry"><a class="el" href="classSVF_1_1AssignStmt.html">SVF::AssignStmt</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span></td></tr>
77
+ <tr><td class="entry"><a class="el" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad58f5e59c55e1ffd23b83d16224fed13">BinaryOp</a> enum value</td><td class="entry"><a class="el" href="classSVF_1_1SVFStmt.html">SVF::SVFStmt</a></td><td class="entry"></td></tr>
78
+ <tr class="even"><td class="entry"><a class="el" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad52703e3ec09b6a4f565e5d82279b6a3">Branch</a> enum value</td><td class="entry"><a class="el" href="classSVF_1_1SVFStmt.html">SVF::SVFStmt</a></td><td class="entry"></td></tr>
79
+ <tr><td class="entry"><a class="el" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a97ca16eba4c5f92e16388f0cdbcfcc00">Call</a> enum value</td><td class="entry"><a class="el" href="classSVF_1_1SVFStmt.html">SVF::SVFStmt</a></td><td class="entry"></td></tr>
80
+ <tr class="even"><td class="entry"><a class="el" href="classSVF_1_1AddrStmt.html#a32e129c9f7aa16be8c5c8569989f691f">classof</a>(const AddrStmt *)</td><td class="entry"><a class="el" href="classSVF_1_1AddrStmt.html">SVF::AddrStmt</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
81
+ <tr><td class="entry"><a class="el" href="classSVF_1_1AddrStmt.html#aeec83dc4e79ee62c92c75aa778a475ad">classof</a>(const SVFStmt *edge)</td><td class="entry"><a class="el" href="classSVF_1_1AddrStmt.html">SVF::AddrStmt</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
82
+ <tr class="even"><td class="entry"><a class="el" href="classSVF_1_1AddrStmt.html#a6876ffc2c97c5ba64155891b55a7884c">classof</a>(const GenericPAGEdgeTy *edge)</td><td class="entry"><a class="el" href="classSVF_1_1AddrStmt.html">SVF::AddrStmt</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
83
+ <tr><td class="entry"><a class="el" href="classSVF_1_1AssignStmt.html#a4f94b6731f324e44fc4d4e06d7acdbf7">SVF::AssignStmt::classof</a>(const AssignStmt *)</td><td class="entry"><a class="el" href="classSVF_1_1AssignStmt.html">SVF::AssignStmt</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
82
84
  <tr class="even"><td class="entry"><a class="el" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a610d6662d1814cffbf23db29e7e620c0">Cmp</a> enum value</td><td class="entry"><a class="el" href="classSVF_1_1SVFStmt.html">SVF::SVFStmt</a></td><td class="entry"></td></tr>
83
85
  <tr><td class="entry"><a class="el" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad3469cdfb64f05163b5310b731b221da">Copy</a> enum value</td><td class="entry"><a class="el" href="classSVF_1_1SVFStmt.html">SVF::SVFStmt</a></td><td class="entry"></td></tr>
84
86
  <tr class="even"><td class="entry"><a class="el" href="classSVF_1_1GenericEdge.html#a93dec4c27088242a4b1b6aa82cea46b9">EdgeKindMask</a></td><td class="entry"><a class="el" href="classSVF_1_1GenericEdge.html">SVF::GenericEdge&lt; NodeTy &gt;</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">static</span></td></tr>
@@ -88,14 +90,18 @@ $(function() {
88
90
  <tr class="even"><td class="entry"><a class="el" href="classSVF_1_1GenericEdge.html#a7eb93c9018c80057672a8ce71615dc0d">GEdgeKind</a> typedef</td><td class="entry"><a class="el" href="classSVF_1_1GenericEdge.html">SVF::GenericEdge&lt; NodeTy &gt;</a></td><td class="entry"></td></tr>
89
91
  <tr><td class="entry"><a class="el" href="classSVF_1_1GenericEdge.html#a6764973569c281d483afab17a75cb4dc">GenericEdge</a>(NodeTy *s, NodeTy *d, GEdgeFlag k)</td><td class="entry"><a class="el" href="classSVF_1_1GenericEdge.html">SVF::GenericEdge&lt; NodeTy &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
90
92
  <tr class="even"><td class="entry"><a class="el" href="classSVF_1_1SVFStmt.html#a793c53e0b4f9a58099c096f0a0856495">getBB</a>() const</td><td class="entry"><a class="el" href="classSVF_1_1SVFStmt.html">SVF::SVFStmt</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
91
- <tr><td class="entry"><a class="el" href="classSVF_1_1GenericEdge.html#ad9edb45e74ae675d9da82f5acf02d56e">getDstID</a>() const</td><td class="entry"><a class="el" href="classSVF_1_1GenericEdge.html">SVF::GenericEdge&lt; NodeTy &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
92
- <tr class="even"><td class="entry"><a class="el" href="classSVF_1_1GenericEdge.html#aeaa31a2c8479e831b36ce2e2582ceb86">getDstNode</a>() const</td><td class="entry"><a class="el" href="classSVF_1_1GenericEdge.html">SVF::GenericEdge&lt; NodeTy &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
93
+ <tr><td class="entry"><a class="el" href="classSVF_1_1GenericEdge.html#ad9edb45e74ae675d9da82f5acf02d56e">SVF::SVFStmt::getDstID</a>() const</td><td class="entry"><a class="el" href="classSVF_1_1GenericEdge.html">SVF::GenericEdge&lt; NodeTy &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
94
+ <tr class="even"><td class="entry"><a class="el" href="classSVF_1_1GenericEdge.html#aeaa31a2c8479e831b36ce2e2582ceb86">SVF::SVFStmt::getDstNode</a>() const</td><td class="entry"><a class="el" href="classSVF_1_1GenericEdge.html">SVF::GenericEdge&lt; NodeTy &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
93
95
  <tr><td class="entry"><a class="el" href="classSVF_1_1SVFStmt.html#af7bb0d687fc61cae1de639c88e472491">getEdgeID</a>() const</td><td class="entry"><a class="el" href="classSVF_1_1SVFStmt.html">SVF::SVFStmt</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
94
96
  <tr class="even"><td class="entry"><a class="el" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() const</td><td class="entry"><a class="el" href="classSVF_1_1GenericEdge.html">SVF::GenericEdge&lt; NodeTy &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
95
97
  <tr><td class="entry"><a class="el" href="classSVF_1_1SVFStmt.html#aa809a57c8cdaaa35dfc3cc0f3b33b52b">getICFGNode</a>() const</td><td class="entry"><a class="el" href="classSVF_1_1SVFStmt.html">SVF::SVFStmt</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
96
98
  <tr class="even"><td class="entry"><a class="el" href="classSVF_1_1SVFStmt.html#a86628ea173dec4934322f5d1caf2e1db">getInst</a>() const</td><td class="entry"><a class="el" href="classSVF_1_1SVFStmt.html">SVF::SVFStmt</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
97
- <tr><td class="entry"><a class="el" href="classSVF_1_1GenericEdge.html#ae6792506a0150a9400d635eceab7f9e7">getSrcID</a>() const</td><td class="entry"><a class="el" href="classSVF_1_1GenericEdge.html">SVF::GenericEdge&lt; NodeTy &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
98
- <tr class="even"><td class="entry"><a class="el" href="classSVF_1_1GenericEdge.html#ab47ca533c415841ef75456cbad439589">getSrcNode</a>() const</td><td class="entry"><a class="el" href="classSVF_1_1GenericEdge.html">SVF::GenericEdge&lt; NodeTy &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
99
+ <tr><td class="entry"><a class="el" href="classSVF_1_1AssignStmt.html#a973a2b79da223275ed6a1831837b89c7">getLHSVar</a>() const</td><td class="entry"><a class="el" href="classSVF_1_1AssignStmt.html">SVF::AssignStmt</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
100
+ <tr class="even"><td class="entry"><a class="el" href="classSVF_1_1AssignStmt.html#a98f731be7be9bc8e7fd09f5c2204c840">getLHSVarID</a>() const</td><td class="entry"><a class="el" href="classSVF_1_1AssignStmt.html">SVF::AssignStmt</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
101
+ <tr><td class="entry"><a class="el" href="classSVF_1_1AssignStmt.html#ad03d28d16754c9049dd4d0ad3b6c1e28">getRHSVar</a>() const</td><td class="entry"><a class="el" href="classSVF_1_1AssignStmt.html">SVF::AssignStmt</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
102
+ <tr class="even"><td class="entry"><a class="el" href="classSVF_1_1AssignStmt.html#a4cec89489e82c60c287cae3327f3f01d">getRHSVarID</a>() const</td><td class="entry"><a class="el" href="classSVF_1_1AssignStmt.html">SVF::AssignStmt</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
103
+ <tr><td class="entry"><a class="el" href="classSVF_1_1GenericEdge.html#ae6792506a0150a9400d635eceab7f9e7">SVF::SVFStmt::getSrcID</a>() const</td><td class="entry"><a class="el" href="classSVF_1_1GenericEdge.html">SVF::GenericEdge&lt; NodeTy &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
104
+ <tr class="even"><td class="entry"><a class="el" href="classSVF_1_1GenericEdge.html#ab47ca533c415841ef75456cbad439589">SVF::SVFStmt::getSrcNode</a>() const</td><td class="entry"><a class="el" href="classSVF_1_1GenericEdge.html">SVF::GenericEdge&lt; NodeTy &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
99
105
  <tr><td class="entry"><a class="el" href="classSVF_1_1SVFStmt.html#a65ee8b43a3a4999eb112a197d1a9f882">getValue</a>() const</td><td class="entry"><a class="el" href="classSVF_1_1SVFStmt.html">SVF::SVFStmt</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
100
106
  <tr class="even"><td class="entry"><a class="el" href="classSVF_1_1SVFStmt.html#a0b6c03af568b70903da6b200ac86c951">isPTAEdge</a>() const</td><td class="entry"><a class="el" href="classSVF_1_1SVFStmt.html">SVF::SVFStmt</a></td><td class="entry"></td></tr>
101
107
  <tr><td class="entry"><a class="el" href="classSVF_1_1SVFStmt.html#a93fc6c4c991931c78c48500c2db50f66">KindToSVFStmtMapTy</a> typedef</td><td class="entry"><a class="el" href="classSVF_1_1SVFStmt.html">SVF::SVFStmt</a></td><td class="entry"></td></tr>
@@ -78,6 +78,7 @@ Inheritance diagram for SVF::AddrStmt:</div>
78
78
  <div class="center">
79
79
  <img src="classSVF_1_1AddrStmt.png" usemap="#SVF::AddrStmt_map" alt=""/>
80
80
  <map id="SVF::AddrStmt_map" name="SVF::AddrStmt_map">
81
+ <area href="classSVF_1_1AssignStmt.html" alt="SVF::AssignStmt" shape="rect" coords="0,112,187,136"/>
81
82
  <area href="classSVF_1_1SVFStmt.html" alt="SVF::SVFStmt" shape="rect" coords="0,56,187,80"/>
82
83
  <area href="classSVF_1_1GenericEdge.html" alt="SVF::GenericEdge&lt; NodeTy &gt;" shape="rect" coords="0,0,187,24"/>
83
84
  </map>
@@ -90,6 +91,15 @@ Public Member Functions</h2></td></tr>
90
91
  <tr class="separator:a42caa75acb42ce8e290c1278622f139c"><td class="memSeparator" colspan="2">&#160;</td></tr>
91
92
  <tr class="memitem:abf9453ed58c6946640a85be31512c0e8"><td class="memItemLeft" align="right" valign="top">virtual const std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1AddrStmt.html#abf9453ed58c6946640a85be31512c0e8">toString</a> () const override</td></tr>
92
93
  <tr class="separator:abf9453ed58c6946640a85be31512c0e8"><td class="memSeparator" colspan="2">&#160;</td></tr>
94
+ <tr class="inherit_header pub_methods_classSVF_1_1AssignStmt"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classSVF_1_1AssignStmt')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classSVF_1_1AssignStmt.html">SVF::AssignStmt</a></td></tr>
95
+ <tr class="memitem:ad03d28d16754c9049dd4d0ad3b6c1e28 inherit pub_methods_classSVF_1_1AssignStmt"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1SVFVar.html">SVFVar</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1AssignStmt.html#ad03d28d16754c9049dd4d0ad3b6c1e28">getRHSVar</a> () const</td></tr>
96
+ <tr class="separator:ad03d28d16754c9049dd4d0ad3b6c1e28 inherit pub_methods_classSVF_1_1AssignStmt"><td class="memSeparator" colspan="2">&#160;</td></tr>
97
+ <tr class="memitem:a973a2b79da223275ed6a1831837b89c7 inherit pub_methods_classSVF_1_1AssignStmt"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1SVFVar.html">SVFVar</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1AssignStmt.html#a973a2b79da223275ed6a1831837b89c7">getLHSVar</a> () const</td></tr>
98
+ <tr class="separator:a973a2b79da223275ed6a1831837b89c7 inherit pub_methods_classSVF_1_1AssignStmt"><td class="memSeparator" colspan="2">&#160;</td></tr>
99
+ <tr class="memitem:a4cec89489e82c60c287cae3327f3f01d inherit pub_methods_classSVF_1_1AssignStmt"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1AssignStmt.html#a4cec89489e82c60c287cae3327f3f01d">getRHSVarID</a> () const</td></tr>
100
+ <tr class="separator:a4cec89489e82c60c287cae3327f3f01d inherit pub_methods_classSVF_1_1AssignStmt"><td class="memSeparator" colspan="2">&#160;</td></tr>
101
+ <tr class="memitem:a98f731be7be9bc8e7fd09f5c2204c840 inherit pub_methods_classSVF_1_1AssignStmt"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1AssignStmt.html#a98f731be7be9bc8e7fd09f5c2204c840">getLHSVarID</a> () const</td></tr>
102
+ <tr class="separator:a98f731be7be9bc8e7fd09f5c2204c840 inherit pub_methods_classSVF_1_1AssignStmt"><td class="memSeparator" colspan="2">&#160;</td></tr>
93
103
  <tr class="inherit_header pub_methods_classSVF_1_1SVFStmt"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classSVF_1_1SVFStmt')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classSVF_1_1SVFStmt.html">SVF::SVFStmt</a></td></tr>
94
104
  <tr class="memitem:a47102f72115d41bff899b1b2ffec75b1 inherit pub_methods_classSVF_1_1SVFStmt"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SVFStmt.html#a47102f72115d41bff899b1b2ffec75b1">SVFStmt</a> (<a class="el" href="classSVF_1_1SVFVar.html">SVFVar</a> *s, <a class="el" href="classSVF_1_1SVFVar.html">SVFVar</a> *d, <a class="el" href="classSVF_1_1GenericEdge.html#aab8892b73370c32b48621cd1d0cce614">GEdgeFlag</a> k)</td></tr>
95
105
  <tr class="memdesc:a47102f72115d41bff899b1b2ffec75b1 inherit pub_methods_classSVF_1_1SVFStmt"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor. <a href="classSVF_1_1SVFStmt.html#a47102f72115d41bff899b1b2ffec75b1">More...</a><br /></td></tr>
@@ -149,6 +159,14 @@ Static Public Member Functions</h2></td></tr>
149
159
  <tr class="separator:aeec83dc4e79ee62c92c75aa778a475ad"><td class="memSeparator" colspan="2">&#160;</td></tr>
150
160
  <tr class="memitem:a6876ffc2c97c5ba64155891b55a7884c"><td class="memItemLeft" align="right" valign="top">static bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1AddrStmt.html#a6876ffc2c97c5ba64155891b55a7884c">classof</a> (const <a class="el" href="namespaceSVF.html#ab502ff5e204678640c1081d104f60971">GenericPAGEdgeTy</a> *edge)</td></tr>
151
161
  <tr class="separator:a6876ffc2c97c5ba64155891b55a7884c"><td class="memSeparator" colspan="2">&#160;</td></tr>
162
+ <tr class="inherit_header pub_static_methods_classSVF_1_1AssignStmt"><td colspan="2" onclick="javascript:toggleInherit('pub_static_methods_classSVF_1_1AssignStmt')"><img src="closed.png" alt="-"/>&#160;Static Public Member Functions inherited from <a class="el" href="classSVF_1_1AssignStmt.html">SVF::AssignStmt</a></td></tr>
163
+ <tr class="memitem:a4f94b6731f324e44fc4d4e06d7acdbf7 inherit pub_static_methods_classSVF_1_1AssignStmt"><td class="memItemLeft" align="right" valign="top">static bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1AssignStmt.html#a4f94b6731f324e44fc4d4e06d7acdbf7">classof</a> (const <a class="el" href="classSVF_1_1AssignStmt.html">AssignStmt</a> *)</td></tr>
164
+ <tr class="memdesc:a4f94b6731f324e44fc4d4e06d7acdbf7 inherit pub_static_methods_classSVF_1_1AssignStmt"><td class="mdescLeft">&#160;</td><td class="mdescRight">Methods for support type inquiry through isa, cast, and dyn_cast: <a href="classSVF_1_1AssignStmt.html#a4f94b6731f324e44fc4d4e06d7acdbf7">More...</a><br /></td></tr>
165
+ <tr class="separator:a4f94b6731f324e44fc4d4e06d7acdbf7 inherit pub_static_methods_classSVF_1_1AssignStmt"><td class="memSeparator" colspan="2">&#160;</td></tr>
166
+ <tr class="memitem:ad5e2d41b8cd548628b59227368388ed0 inherit pub_static_methods_classSVF_1_1AssignStmt"><td class="memItemLeft" align="right" valign="top">static bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1AssignStmt.html#ad5e2d41b8cd548628b59227368388ed0">classof</a> (const <a class="el" href="classSVF_1_1SVFStmt.html">SVFStmt</a> *edge)</td></tr>
167
+ <tr class="separator:ad5e2d41b8cd548628b59227368388ed0 inherit pub_static_methods_classSVF_1_1AssignStmt"><td class="memSeparator" colspan="2">&#160;</td></tr>
168
+ <tr class="memitem:a8b2837153dcf9f7e2adc3b30b2dd0245 inherit pub_static_methods_classSVF_1_1AssignStmt"><td class="memItemLeft" align="right" valign="top">static bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1AssignStmt.html#a8b2837153dcf9f7e2adc3b30b2dd0245">classof</a> (const <a class="el" href="namespaceSVF.html#ab502ff5e204678640c1081d104f60971">GenericPAGEdgeTy</a> *edge)</td></tr>
169
+ <tr class="separator:a8b2837153dcf9f7e2adc3b30b2dd0245 inherit pub_static_methods_classSVF_1_1AssignStmt"><td class="memSeparator" colspan="2">&#160;</td></tr>
152
170
  <tr class="inherit_header pub_static_methods_classSVF_1_1SVFStmt"><td colspan="2" onclick="javascript:toggleInherit('pub_static_methods_classSVF_1_1SVFStmt')"><img src="closed.png" alt="-"/>&#160;Static Public Member Functions inherited from <a class="el" href="classSVF_1_1SVFStmt.html">SVF::SVFStmt</a></td></tr>
153
171
  <tr class="memitem:a3b20523aed66ac8943d7d00ff777137b inherit pub_static_methods_classSVF_1_1SVFStmt"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classSVF_1_1GenericEdge.html#aab8892b73370c32b48621cd1d0cce614">GEdgeFlag</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SVFStmt.html#a3b20523aed66ac8943d7d00ff777137b">makeEdgeFlagWithAddionalOpnd</a> (<a class="el" href="classSVF_1_1GenericEdge.html#a7eb93c9018c80057672a8ce71615dc0d">GEdgeKind</a> k, const <a class="el" href="classSVF_1_1SVFVar.html">SVFVar</a> *var)</td></tr>
154
172
  <tr class="memdesc:a3b20523aed66ac8943d7d00ff777137b inherit pub_static_methods_classSVF_1_1SVFStmt"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compute the unique edgeFlag value from edge kind and second variable operand for <a class="el" href="classSVF_1_1MultiOpndStmt.html">MultiOpndStmt</a>. <a href="classSVF_1_1SVFStmt.html#a3b20523aed66ac8943d7d00ff777137b">More...</a><br /></td></tr>
@@ -224,6 +242,10 @@ Additional Inherited Members</h2></td></tr>
224
242
  <tr class="memitem:aa306e817648ab5def47e83473e99b3d3 inherit pub_static_attribs_classSVF_1_1SVFStmt"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="namespaceSVF.html#a2db29836a72e8d86e9baa6d8d55d2978">Size_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SVFStmt.html#aa306e817648ab5def47e83473e99b3d3">totalEdgeNum</a></td></tr>
225
243
  <tr class="memdesc:aa306e817648ab5def47e83473e99b3d3 inherit pub_static_attribs_classSVF_1_1SVFStmt"><td class="mdescLeft">&#160;</td><td class="mdescRight">Total edge number. <a href="classSVF_1_1SVFStmt.html#aa306e817648ab5def47e83473e99b3d3">More...</a><br /></td></tr>
226
244
  <tr class="separator:aa306e817648ab5def47e83473e99b3d3 inherit pub_static_attribs_classSVF_1_1SVFStmt"><td class="memSeparator" colspan="2">&#160;</td></tr>
245
+ <tr class="inherit_header pro_methods_classSVF_1_1AssignStmt"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classSVF_1_1AssignStmt')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classSVF_1_1AssignStmt.html">SVF::AssignStmt</a></td></tr>
246
+ <tr class="memitem:aff4c35109790daed3c6170c985153620 inherit pro_methods_classSVF_1_1AssignStmt"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1AssignStmt.html#aff4c35109790daed3c6170c985153620">AssignStmt</a> (<a class="el" href="classSVF_1_1SVFVar.html">SVFVar</a> *s, <a class="el" href="classSVF_1_1SVFVar.html">SVFVar</a> *d, <a class="el" href="classSVF_1_1GenericEdge.html#aab8892b73370c32b48621cd1d0cce614">GEdgeFlag</a> k)</td></tr>
247
+ <tr class="memdesc:aff4c35109790daed3c6170c985153620 inherit pro_methods_classSVF_1_1AssignStmt"><td class="mdescLeft">&#160;</td><td class="mdescRight">constructor <a href="classSVF_1_1AssignStmt.html#aff4c35109790daed3c6170c985153620">More...</a><br /></td></tr>
248
+ <tr class="separator:aff4c35109790daed3c6170c985153620 inherit pro_methods_classSVF_1_1AssignStmt"><td class="memSeparator" colspan="2">&#160;</td></tr>
227
249
  <tr class="inherit_header pro_static_attribs_classSVF_1_1GenericEdge"><td colspan="2" onclick="javascript:toggleInherit('pro_static_attribs_classSVF_1_1GenericEdge')"><img src="closed.png" alt="-"/>&#160;Static Protected Attributes inherited from <a class="el" href="classSVF_1_1GenericEdge.html">SVF::GenericEdge&lt; NodeTy &gt;</a></td></tr>
228
250
  <tr class="memitem:af1c2fd4b5ef1d7b7605572bf2489c298 inherit pro_static_attribs_classSVF_1_1GenericEdge"><td class="memItemLeft" align="right" valign="top">static constexpr unsigned char&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1GenericEdge.html#af1c2fd4b5ef1d7b7605572bf2489c298">EdgeKindMaskBits</a> = 8</td></tr>
229
251
  <tr class="memdesc:af1c2fd4b5ef1d7b7605572bf2489c298 inherit pro_static_attribs_classSVF_1_1GenericEdge"><td class="mdescLeft">&#160;</td><td class="mdescRight">We use the lower 8 bits to denote edge kind. <a href="classSVF_1_1GenericEdge.html#af1c2fd4b5ef1d7b7605572bf2489c298">More...</a><br /></td></tr>
@@ -234,7 +256,7 @@ Additional Inherited Members</h2></td></tr>
234
256
  <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
235
257
  <div class="textblock"><p>Address statement (memory allocations) </p>
236
258
 
237
- <p class="definition">Definition at line <a class="el" href="SVFStatements_8h_source.html#l00197">197</a> of file <a class="el" href="SVFStatements_8h_source.html">SVFStatements.h</a>.</p>
259
+ <p class="definition">Definition at line <a class="el" href="SVFStatements_8h_source.html#l00269">269</a> of file <a class="el" href="SVFStatements_8h_source.html">SVFStatements.h</a>.</p>
238
260
  </div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
239
261
  <a id="a0fa28f3a081cd6d32801ab245b6e95ae"></a>
240
262
  <h2 class="memtitle"><span class="permalink"><a href="#a0fa28f3a081cd6d32801ab245b6e95ae">&#9670;&nbsp;</a></span>AddrStmt() <span class="overload">[1/3]</span></h2>
@@ -327,9 +349,9 @@ Additional Inherited Members</h2></td></tr>
327
349
 
328
350
  <p>constructor </p>
329
351
 
330
- <p class="definition">Definition at line <a class="el" href="SVFStatements_8h_source.html#l00221">221</a> of file <a class="el" href="SVFStatements_8h_source.html">SVFStatements.h</a>.</p>
331
- <div class="fragment"><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; : <a class="code" href="classSVF_1_1SVFStmt.html#a47102f72115d41bff899b1b2ffec75b1">SVFStmt</a>(s,d,<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a0a9a0f650e864e89b7cbb3dc8c8aa197">SVFStmt::Addr</a>)</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; {</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; }</div><div class="ttc" id="classSVF_1_1SVFStmt_html_a0ab8621e75e75f03425c323b3ed62ce9a0a9a0f650e864e89b7cbb3dc8c8aa197"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a0a9a0f650e864e89b7cbb3dc8c8aa197">SVF::SVFStmt::Addr</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00056">SVFStatements.h:56</a></div></div>
332
- <div class="ttc" id="classSVF_1_1SVFStmt_html_a47102f72115d41bff899b1b2ffec75b1"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a47102f72115d41bff899b1b2ffec75b1">SVF::SVFStmt::SVFStmt</a></div><div class="ttdeci">SVFStmt(SVFVar *s, SVFVar *d, GEdgeFlag k)</div><div class="ttdoc">Constructor. </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8cpp_source.html#l00046">SVFStatements.cpp:46</a></div></div>
352
+ <p class="definition">Definition at line <a class="el" href="SVFStatements_8h_source.html#l00294">294</a> of file <a class="el" href="SVFStatements_8h_source.html">SVFStatements.h</a>.</p>
353
+ <div class="fragment"><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; : <a class="code" href="classSVF_1_1AssignStmt.html#abc65520cc2b9608c97374829eb475c57">AssignStmt</a>(s,d,<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a0a9a0f650e864e89b7cbb3dc8c8aa197">SVFStmt::Addr</a>)</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; {</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; }</div><div class="ttc" id="classSVF_1_1SVFStmt_html_a0ab8621e75e75f03425c323b3ed62ce9a0a9a0f650e864e89b7cbb3dc8c8aa197"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a0a9a0f650e864e89b7cbb3dc8c8aa197">SVF::SVFStmt::Addr</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00056">SVFStatements.h:56</a></div></div>
354
+ <div class="ttc" id="classSVF_1_1AssignStmt_html_abc65520cc2b9608c97374829eb475c57"><div class="ttname"><a href="classSVF_1_1AssignStmt.html#abc65520cc2b9608c97374829eb475c57">SVF::AssignStmt::AssignStmt</a></div><div class="ttdeci">AssignStmt()</div><div class="ttdoc">place holder </div></div>
333
355
  </div><!-- fragment -->
334
356
  </div>
335
357
  </div>
@@ -360,8 +382,8 @@ Additional Inherited Members</h2></td></tr>
360
382
 
361
383
  <p>Methods for support type inquiry through isa, cast, and dyn_cast: </p>
362
384
 
363
- <p class="definition">Definition at line <a class="el" href="SVFStatements_8h_source.html#l00206">206</a> of file <a class="el" href="SVFStatements_8h_source.html">SVFStatements.h</a>.</p>
364
- <div class="fragment"><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; {</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; }</div></div><!-- fragment -->
385
+ <p class="definition">Definition at line <a class="el" href="SVFStatements_8h_source.html#l00279">279</a> of file <a class="el" href="SVFStatements_8h_source.html">SVFStatements.h</a>.</p>
386
+ <div class="fragment"><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; {</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; }</div></div><!-- fragment -->
365
387
  </div>
366
388
  </div>
367
389
  <a id="aeec83dc4e79ee62c92c75aa778a475ad"></a>
@@ -388,8 +410,8 @@ Additional Inherited Members</h2></td></tr>
388
410
  </table>
389
411
  </div><div class="memdoc">
390
412
 
391
- <p class="definition">Definition at line <a class="el" href="SVFStatements_8h_source.html#l00210">210</a> of file <a class="el" href="SVFStatements_8h_source.html">SVFStatements.h</a>.</p>
392
- <div class="fragment"><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; {</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <span class="keywordflow">return</span> edge-&gt;getEdgeKind() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a0a9a0f650e864e89b7cbb3dc8c8aa197">SVFStmt::Addr</a>;</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; }</div><div class="ttc" id="classSVF_1_1SVFStmt_html_a0ab8621e75e75f03425c323b3ed62ce9a0a9a0f650e864e89b7cbb3dc8c8aa197"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a0a9a0f650e864e89b7cbb3dc8c8aa197">SVF::SVFStmt::Addr</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00056">SVFStatements.h:56</a></div></div>
413
+ <p class="definition">Definition at line <a class="el" href="SVFStatements_8h_source.html#l00283">283</a> of file <a class="el" href="SVFStatements_8h_source.html">SVFStatements.h</a>.</p>
414
+ <div class="fragment"><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; {</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; <span class="keywordflow">return</span> edge-&gt;getEdgeKind() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a0a9a0f650e864e89b7cbb3dc8c8aa197">SVFStmt::Addr</a>;</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; }</div><div class="ttc" id="classSVF_1_1SVFStmt_html_a0ab8621e75e75f03425c323b3ed62ce9a0a9a0f650e864e89b7cbb3dc8c8aa197"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a0a9a0f650e864e89b7cbb3dc8c8aa197">SVF::SVFStmt::Addr</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00056">SVFStatements.h:56</a></div></div>
393
415
  </div><!-- fragment -->
394
416
  </div>
395
417
  </div>
@@ -417,8 +439,8 @@ Additional Inherited Members</h2></td></tr>
417
439
  </table>
418
440
  </div><div class="memdoc">
419
441
 
420
- <p class="definition">Definition at line <a class="el" href="SVFStatements_8h_source.html#l00214">214</a> of file <a class="el" href="SVFStatements_8h_source.html">SVFStatements.h</a>.</p>
421
- <div class="fragment"><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; {</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; <span class="keywordflow">return</span> edge-&gt;getEdgeKind() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a0a9a0f650e864e89b7cbb3dc8c8aa197">SVFStmt::Addr</a>;</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; }</div><div class="ttc" id="classSVF_1_1SVFStmt_html_a0ab8621e75e75f03425c323b3ed62ce9a0a9a0f650e864e89b7cbb3dc8c8aa197"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a0a9a0f650e864e89b7cbb3dc8c8aa197">SVF::SVFStmt::Addr</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00056">SVFStatements.h:56</a></div></div>
442
+ <p class="definition">Definition at line <a class="el" href="SVFStatements_8h_source.html#l00287">287</a> of file <a class="el" href="SVFStatements_8h_source.html">SVFStatements.h</a>.</p>
443
+ <div class="fragment"><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; {</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; <span class="keywordflow">return</span> edge-&gt;getEdgeKind() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a0a9a0f650e864e89b7cbb3dc8c8aa197">SVFStmt::Addr</a>;</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; }</div><div class="ttc" id="classSVF_1_1SVFStmt_html_a0ab8621e75e75f03425c323b3ed62ce9a0a9a0f650e864e89b7cbb3dc8c8aa197"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a0a9a0f650e864e89b7cbb3dc8c8aa197">SVF::SVFStmt::Addr</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00056">SVFStatements.h:56</a></div></div>
422
444
  </div><!-- fragment -->
423
445
  </div>
424
446
  </div>
@@ -473,14 +495,14 @@ Additional Inherited Members</h2></td></tr>
473
495
  </table>
474
496
  </div><div class="memdoc">
475
497
 
476
- <p>Reimplemented from <a class="el" href="classSVF_1_1SVFStmt.html#ad0b4dbe87e009518f22360c48b0d0c22">SVF::SVFStmt</a>.</p>
498
+ <p>Implements <a class="el" href="classSVF_1_1AssignStmt.html#abbe582a24bf4b42284f78eab5b18a90a">SVF::AssignStmt</a>.</p>
477
499
 
478
500
  <p class="definition">Definition at line <a class="el" href="SVFStatements_8cpp_source.html#l00068">68</a> of file <a class="el" href="SVFStatements_8cpp_source.html">SVFStatements.cpp</a>.</p>
479
- <div class="fragment"><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; {</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; std::string str;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <a class="code" href="namespaceSVF.html#a726981481ac082dcda3e4921416b65a0">raw_string_ostream</a> rawstr(str);</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot;AddrStmt: [&quot;</span> &lt;&lt; <a class="code" href="classSVF_1_1GenericEdge.html#ad9edb45e74ae675d9da82f5acf02d56e">getDstID</a>() &lt;&lt; <span class="stringliteral">&quot;&lt;--&quot;</span> &lt;&lt; <a class="code" href="classSVF_1_1GenericEdge.html#ae6792506a0150a9400d635eceab7f9e7">getSrcID</a>() &lt;&lt; <span class="stringliteral">&quot;]\t&quot;</span>;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Options.html#a8eba08052f7af57b762155a58844480c">Options::PAGDotGraphShorter</a>) {</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; }</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; rawstr &lt;&lt; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a7486fd8e5350879ed1cbd835c0d4e191">value2String</a>(<a class="code" href="classSVF_1_1SVFStmt.html#a65ee8b43a3a4999eb112a197d1a9f882">getValue</a>());</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="keywordflow">return</span> rawstr.str();</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;}</div><div class="ttc" id="classSVF_1_1GenericEdge_html_ad9edb45e74ae675d9da82f5acf02d56e"><div class="ttname"><a href="classSVF_1_1GenericEdge.html#ad9edb45e74ae675d9da82f5acf02d56e">SVF::GenericEdge::getDstID</a></div><div class="ttdeci">NodeID getDstID() const</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00077">GenericGraph.h:77</a></div></div>
480
- <div class="ttc" id="classSVF_1_1SVFStmt_html_a65ee8b43a3a4999eb112a197d1a9f882"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a65ee8b43a3a4999eb112a197d1a9f882">SVF::SVFStmt::getValue</a></div><div class="ttdeci">const Value * getValue() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00116">SVFStatements.h:116</a></div></div>
481
- <div class="ttc" id="classSVF_1_1GenericEdge_html_ae6792506a0150a9400d635eceab7f9e7"><div class="ttname"><a href="classSVF_1_1GenericEdge.html#ae6792506a0150a9400d635eceab7f9e7">SVF::GenericEdge::getSrcID</a></div><div class="ttdeci">NodeID getSrcID() const</div><div class="ttdoc">get methods of the components </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00073">GenericGraph.h:73</a></div></div>
501
+ <div class="fragment"><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; {</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; std::string str;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <a class="code" href="namespaceSVF.html#a726981481ac082dcda3e4921416b65a0">raw_string_ostream</a> rawstr(str);</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot;AddrStmt: [&quot;</span> &lt;&lt; <a class="code" href="classSVF_1_1AssignStmt.html#a98f731be7be9bc8e7fd09f5c2204c840">getLHSVarID</a>() &lt;&lt; <span class="stringliteral">&quot;&lt;--&quot;</span> &lt;&lt; <a class="code" href="classSVF_1_1AssignStmt.html#a4cec89489e82c60c287cae3327f3f01d">getRHSVarID</a>() &lt;&lt; <span class="stringliteral">&quot;]\t&quot;</span>;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Options.html#a8eba08052f7af57b762155a58844480c">Options::PAGDotGraphShorter</a>) {</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; }</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; rawstr &lt;&lt; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a7486fd8e5350879ed1cbd835c0d4e191">value2String</a>(<a class="code" href="classSVF_1_1SVFStmt.html#a65ee8b43a3a4999eb112a197d1a9f882">getValue</a>());</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="keywordflow">return</span> rawstr.str();</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;}</div><div class="ttc" id="classSVF_1_1SVFStmt_html_a65ee8b43a3a4999eb112a197d1a9f882"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a65ee8b43a3a4999eb112a197d1a9f882">SVF::SVFStmt::getValue</a></div><div class="ttdeci">const Value * getValue() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00116">SVFStatements.h:116</a></div></div>
502
+ <div class="ttc" id="classSVF_1_1AssignStmt_html_a4cec89489e82c60c287cae3327f3f01d"><div class="ttname"><a href="classSVF_1_1AssignStmt.html#a4cec89489e82c60c287cae3327f3f01d">SVF::AssignStmt::getRHSVarID</a></div><div class="ttdeci">NodeID getRHSVarID() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00256">SVFStatements.h:256</a></div></div>
482
503
  <div class="ttc" id="classSVF_1_1Options_html_a8eba08052f7af57b762155a58844480c"><div class="ttname"><a href="classSVF_1_1Options.html#a8eba08052f7af57b762155a58844480c">SVF::Options::PAGDotGraphShorter</a></div><div class="ttdeci">static const llvm::cl::opt&lt; bool &gt; PAGDotGraphShorter</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00134">Options.h:134</a></div></div>
483
504
  <div class="ttc" id="namespaceSVF_html_a726981481ac082dcda3e4921416b65a0"><div class="ttname"><a href="namespaceSVF.html#a726981481ac082dcda3e4921416b65a0">SVF::raw_string_ostream</a></div><div class="ttdeci">llvm::raw_string_ostream raw_string_ostream</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00100">BasicTypes.h:100</a></div></div>
505
+ <div class="ttc" id="classSVF_1_1AssignStmt_html_a98f731be7be9bc8e7fd09f5c2204c840"><div class="ttname"><a href="classSVF_1_1AssignStmt.html#a98f731be7be9bc8e7fd09f5c2204c840">SVF::AssignStmt::getLHSVarID</a></div><div class="ttdeci">NodeID getLHSVarID() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00259">SVFStatements.h:259</a></div></div>
484
506
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a7486fd8e5350879ed1cbd835c0d4e191"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a7486fd8e5350879ed1cbd835c0d4e191">SVF::SVFUtil::value2String</a></div><div class="ttdeci">const std::string value2String(const Value *value)</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8cpp_source.html#l00388">SVFUtil.cpp:388</a></div></div>
485
507
  </div><!-- fragment -->
486
508
  </div>
@@ -1069,7 +1069,7 @@ Additional Inherited Members</h2></td></tr>
1069
1069
  <p>Reimplemented from <a class="el" href="classSVF_1_1BVDataPTAImpl.html#a2026cffd7043208333083ed1a6603e7b">SVF::BVDataPTAImpl</a>.</p>
1070
1070
 
1071
1071
  <p class="definition">Definition at line <a class="el" href="Andersen_8cpp_source.html#l00160">160</a> of file <a class="el" href="Andersen_8cpp_source.html">Andersen.cpp</a>.</p>
1072
- <div class="fragment"><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;{</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <a class="code" href="classSVF_1_1SVFIR.html#ab6abb822445c9b3f5cb2b7206042e940">SVFIR::MemObjToFieldsMap</a> &amp;memToFieldsMap = <a class="code" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>-&gt;<a class="code" href="classSVF_1_1SVFIR.html#a6f46446d667258b32ddc1ccab48f651c">getMemToFieldsMap</a>();</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <a class="code" href="classSVF_1_1SVFIR.html#aa5b08d987b37d35e73de88da10a97bc4">SVFIR::NodeLocationSetMap</a> &amp;GepObjVarMap = <a class="code" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>-&gt;<a class="code" href="classSVF_1_1SVFIR.html#a77e3c407ea3990413e371589aa468963">getGepObjNodeMap</a>();</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; <span class="comment">// clear GepObjVarMap/memToFieldsMap/nodeToSubsMap/nodeToRepMap</span></div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; <span class="comment">// for redundant gepnodes and remove those nodes from pag</span></div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> n: <a class="code" href="classSVF_1_1AndersenBase.html#a6c3d6b4c004d9e43690c3807502eed74">redundantGepNodes</a>) {</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> base = <a class="code" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>-&gt;<a class="code" href="classSVF_1_1SVFIR.html#a77a6bb9335aa12d29825af1b5ea07e08">getBaseObjVar</a>(n);</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <a class="code" href="classSVF_1_1GepObjPN.html">GepObjPN</a> *gepNode = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">SVFUtil::dyn_cast</a>&lt;<a class="code" href="classSVF_1_1GepObjPN.html">GepObjPN</a>&gt;(<a class="code" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>-&gt;<a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(n));</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(gepNode &amp;&amp; <span class="stringliteral">&quot;Not a gep node in redundantGepNodes set&quot;</span>);</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1LocationSet.html">LocationSet</a> ls = gepNode-&gt;<a class="code" href="classSVF_1_1GepObjPN.html#aeb05e3a512e89c7af36c675e0efeec7e">getLocationSet</a>();</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; GepObjVarMap.erase(std::make_pair(base, ls));</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; memToFieldsMap[base].reset(n);</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <a class="code" href="classSVF_1_1AndersenBase.html#aebfe0c7238eb24f74f105b950b86cb5e">cleanConsCG</a>(n);</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <a class="code" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>-&gt;<a class="code" href="classSVF_1_1GenericGraph.html#a1817b65e76052f11e36a67d6b9efd915">removeGNode</a>(gepNode);</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; }</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;}</div><div class="ttc" id="classSVF_1_1SVFIR_html_aa5b08d987b37d35e73de88da10a97bc4"><div class="ttname"><a href="classSVF_1_1SVFIR.html#aa5b08d987b37d35e73de88da10a97bc4">SVF::SVFIR::NodeLocationSetMap</a></div><div class="ttdeci">Map&lt; NodeLocationSet, NodeID &gt; NodeLocationSetMap</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00069">SVFIR.h:69</a></div></div>
1072
+ <div class="fragment"><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;{</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <a class="code" href="classSVF_1_1SVFIR.html#ab6abb822445c9b3f5cb2b7206042e940">SVFIR::MemObjToFieldsMap</a> &amp;memToFieldsMap = <a class="code" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>-&gt;<a class="code" href="classSVF_1_1SVFIR.html#a6f46446d667258b32ddc1ccab48f651c">getMemToFieldsMap</a>();</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <a class="code" href="classSVF_1_1SVFIR.html#aa5b08d987b37d35e73de88da10a97bc4">SVFIR::NodeLocationSetMap</a> &amp;GepObjVarMap = <a class="code" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>-&gt;<a class="code" href="classSVF_1_1SVFIR.html#a77e3c407ea3990413e371589aa468963">getGepObjNodeMap</a>();</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; <span class="comment">// clear GepObjVarMap/memToFieldsMap/nodeToSubsMap/nodeToRepMap</span></div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; <span class="comment">// for redundant gepnodes and remove those nodes from pag</span></div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> n: <a class="code" href="classSVF_1_1AndersenBase.html#a6c3d6b4c004d9e43690c3807502eed74">redundantGepNodes</a>) {</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> base = <a class="code" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>-&gt;<a class="code" href="classSVF_1_1SVFIR.html#a77a6bb9335aa12d29825af1b5ea07e08">getBaseObjVar</a>(n);</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <a class="code" href="classSVF_1_1GepObjVar.html">GepObjVar</a> *gepNode = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">SVFUtil::dyn_cast</a>&lt;<a class="code" href="classSVF_1_1GepObjVar.html">GepObjVar</a>&gt;(<a class="code" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>-&gt;<a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(n));</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(gepNode &amp;&amp; <span class="stringliteral">&quot;Not a gep node in redundantGepNodes set&quot;</span>);</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1LocationSet.html">LocationSet</a> ls = gepNode-&gt;<a class="code" href="classSVF_1_1GepObjVar.html#a553e648804b39c503e7288dd0434c339">getLocationSet</a>();</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; GepObjVarMap.erase(std::make_pair(base, ls));</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; memToFieldsMap[base].reset(n);</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <a class="code" href="classSVF_1_1AndersenBase.html#aebfe0c7238eb24f74f105b950b86cb5e">cleanConsCG</a>(n);</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <a class="code" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>-&gt;<a class="code" href="classSVF_1_1GenericGraph.html#a1817b65e76052f11e36a67d6b9efd915">removeGNode</a>(gepNode);</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; }</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;}</div><div class="ttc" id="classSVF_1_1SVFIR_html_aa5b08d987b37d35e73de88da10a97bc4"><div class="ttname"><a href="classSVF_1_1SVFIR.html#aa5b08d987b37d35e73de88da10a97bc4">SVF::SVFIR::NodeLocationSetMap</a></div><div class="ttdeci">Map&lt; NodeLocationSet, NodeID &gt; NodeLocationSetMap</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00069">SVFIR.h:69</a></div></div>
1073
1073
  <div class="ttc" id="classSVF_1_1SVFIR_html_a6f46446d667258b32ddc1ccab48f651c"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a6f46446d667258b32ddc1ccab48f651c">SVF::SVFIR::getMemToFieldsMap</a></div><div class="ttdeci">MemObjToFieldsMap &amp; getMemToFieldsMap()</div><div class="ttdoc">Return memToFieldsMap. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00122">SVFIR.h:122</a></div></div>
1074
1074
  <div class="ttc" id="classSVF_1_1AndersenBase_html_aebfe0c7238eb24f74f105b950b86cb5e"><div class="ttname"><a href="classSVF_1_1AndersenBase.html#aebfe0c7238eb24f74f105b950b86cb5e">SVF::AndersenBase::cleanConsCG</a></div><div class="ttdeci">void cleanConsCG(NodeID id)</div><div class="ttdoc">remove redundant gepnodes in constraint graph </div><div class="ttdef"><b>Definition:</b> <a href="Andersen_8cpp_source.html#l00151">Andersen.cpp:151</a></div></div>
1075
1075
  <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>
@@ -1077,14 +1077,14 @@ Additional Inherited Members</h2></td></tr>
1077
1077
  <div class="ttc" id="classSVF_1_1SVFIR_html_a77a6bb9335aa12d29825af1b5ea07e08"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a77a6bb9335aa12d29825af1b5ea07e08">SVF::SVFIR::getBaseObjVar</a></div><div class="ttdeci">NodeID getBaseObjVar(NodeID id) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00442">SVFIR.h:442</a></div></div>
1078
1078
  <div class="ttc" id="classSVF_1_1AndersenBase_html_a6c3d6b4c004d9e43690c3807502eed74"><div class="ttname"><a href="classSVF_1_1AndersenBase.html#a6c3d6b4c004d9e43690c3807502eed74">SVF::AndersenBase::redundantGepNodes</a></div><div class="ttdeci">NodeBS redundantGepNodes</div><div class="ttdef"><b>Definition:</b> <a href="Andersen_8h_source.html#l00118">Andersen.h:118</a></div></div>
1079
1079
  <div class="ttc" id="classSVF_1_1SVFIR_html_ab6abb822445c9b3f5cb2b7206042e940"><div class="ttname"><a href="classSVF_1_1SVFIR.html#ab6abb822445c9b3f5cb2b7206042e940">SVF::SVFIR::MemObjToFieldsMap</a></div><div class="ttdeci">Map&lt; NodeID, NodeBS &gt; MemObjToFieldsMap</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00055">SVFIR.h:55</a></div></div>
1080
+ <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>
1080
1081
  <div class="ttc" id="classSVF_1_1SVFIR_html_a77e3c407ea3990413e371589aa468963"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a77e3c407ea3990413e371589aa468963">SVF::SVFIR::getGepObjNodeMap</a></div><div class="ttdeci">NodeLocationSetMap &amp; getGepObjNodeMap()</div><div class="ttdoc">Return GepObjVarMap. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00127">SVFIR.h:127</a></div></div>
1081
- <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>
1082
- <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>
1082
+ <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>
1083
1083
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a8182be247907420db00837cef9bcfa70"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">SVF::SVFUtil::dyn_cast</a></div><div class="ttdeci">LLVM_NODISCARD std::enable_if&lt;!is_simple_type&lt; Y &gt;::value, typename cast_retty&lt; X, const Y &gt;::ret_type &gt;::type dyn_cast(const Y &amp;Val)</div><div class="ttdef"><b>Definition:</b> <a href="Casting_8h_source.html#l00343">Casting.h:343</a></div></div>
1084
+ <div class="ttc" id="classSVF_1_1GepObjVar_html_a553e648804b39c503e7288dd0434c339"><div class="ttname"><a href="classSVF_1_1GepObjVar.html#a553e648804b39c503e7288dd0434c339">SVF::GepObjVar::getLocationSet</a></div><div class="ttdeci">const LocationSet &amp; getLocationSet() const</div><div class="ttdoc">offset of the mem object </div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00489">SVFVariables.h:489</a></div></div>
1084
1085
  <div class="ttc" id="classSVF_1_1GenericGraph_html_a1817b65e76052f11e36a67d6b9efd915"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#a1817b65e76052f11e36a67d6b9efd915">SVF::GenericGraph::removeGNode</a></div><div class="ttdeci">void removeGNode(NodeType *node)</div><div class="ttdoc">Delete a node. </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00402">GenericGraph.h:402</a></div></div>
1085
1086
  <div class="ttc" id="classSVF_1_1PointerAnalysis_html_adc7f5c71efb9cd1bec4f5ca9127654c3"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">SVF::PointerAnalysis::pag</a></div><div class="ttdeci">static SVFIR * pag</div><div class="ttdoc">SVFIR. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00147">PointerAnalysis.h:147</a></div></div>
1086
1087
  <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>
1087
- <div class="ttc" id="classSVF_1_1GepObjPN_html_aeb05e3a512e89c7af36c675e0efeec7e"><div class="ttname"><a href="classSVF_1_1GepObjPN.html#aeb05e3a512e89c7af36c675e0efeec7e">SVF::GepObjPN::getLocationSet</a></div><div class="ttdeci">const LocationSet &amp; getLocationSet() const</div><div class="ttdoc">offset of the mem object </div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00489">SVFVariables.h:489</a></div></div>
1088
1088
  </div><!-- fragment -->
1089
1089
  </div>
1090
1090
  </div>
@@ -1045,19 +1045,19 @@ Additional Inherited Members</h2></td></tr>
1045
1045
  </div><div class="memdoc">
1046
1046
 
1047
1047
  <p class="definition">Definition at line <a class="el" href="AndersenSFR_8cpp_source.html#l00119">119</a> of file <a class="el" href="AndersenSFR_8cpp_source.html">AndersenSFR.cpp</a>.</p>
1048
- <div class="fragment"><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;{</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <a class="code" href="classSVF_1_1AndersenBase.html#ad21fc4e60abc4e6030880f8197e1c93f">numOfFieldExpand</a>++;</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="keywordflow">while</span> (!initials.empty())</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; {</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> init = *initials.begin();</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; initials.erase(init);</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1AndersenBase.html#ae21e38a06a4397d11cdd17b0f8f282fd">consCG</a>-&gt;<a class="code" href="classSVF_1_1ConstraintGraph.html#a8ba74f82c1e796f2888ba34bc8355ce9">isBlkObjOrConstantObj</a>(init))</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; expandPts.<a class="code" href="classSVF_1_1PointsTo.html#ab196d86cfb48d1c5d27a0c03c7497afa">set</a>(init);</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; {</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <a class="code" href="classSVF_1_1SVFVar.html">PAGNode</a>* initPN = <a class="code" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>-&gt;<a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(init);</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1MemObj.html">MemObj</a>* obj = <a class="code" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>-&gt;<a class="code" href="classSVF_1_1SVFIR.html#af76a55c3b8255a81a566bdce35ffc749">getBaseObj</a>(init);</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a2db29836a72e8d86e9baa6d8d55d2978">Size_t</a> maxLimit = obj-&gt;<a class="code" href="classSVF_1_1MemObj.html#afccbd809fe7c2acf4741383987036807">getMaxFieldOffsetLimit</a>();</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <a class="code" href="namespaceSVF.html#a2db29836a72e8d86e9baa6d8d55d2978">Size_t</a> initOffset;</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1GepObjPN.html">GepObjPN</a> *gepNode = SVFUtil::dyn_cast&lt;GepObjPN&gt;(initPN))</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; initOffset = gepNode-&gt;getLocationSet().getOffset();</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa&lt;FIObjVar&gt;(initPN) || SVFUtil::isa&lt;DummyObjVar&gt;(initPN))</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; initOffset = 0;</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<span class="keyword">false</span> &amp;&amp; <span class="stringliteral">&quot;Not an object node!!&quot;</span>);</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set&lt;Size_t&gt;</a> offsets;</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; offsets.insert(offset);</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <span class="comment">// calculate offsets</span></div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; <span class="keywordtype">bool</span> loopFlag = <span class="keyword">true</span>;</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <span class="keywordflow">while</span> (loopFlag)</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; {</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; loopFlag = <span class="keyword">false</span>;</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">auto</span> _f : offsets)</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">auto</span> _s : strides)</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; {</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <a class="code" href="namespaceSVF.html#a2db29836a72e8d86e9baa6d8d55d2978">Size_t</a> _f1 = _f + _s;</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; loopFlag = (offsets.find(_f1) == offsets.end()) &amp;&amp; (initOffset + _f1 &lt; maxLimit);</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="keywordflow">if</span> (loopFlag)</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; offsets.insert(_f1);</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; }</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; }</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <span class="comment">// get gep objs</span></div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#a2db29836a72e8d86e9baa6d8d55d2978">Size_t</a> _f : offsets)</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; {</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> gepId = <a class="code" href="classSVF_1_1AndersenBase.html#ae21e38a06a4397d11cdd17b0f8f282fd">consCG</a>-&gt;<a class="code" href="classSVF_1_1ConstraintGraph.html#a3f727a2822fb18a14ce9e10c6534cf5a">getGepObjVar</a>(init, <a class="code" href="classSVF_1_1LocationSet.html">LocationSet</a>(_f));</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; initials.erase(gepId); <span class="comment">// gep id in initials should be removed to avoid redundant derivation</span></div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; expandPts.<a class="code" href="classSVF_1_1PointsTo.html#ab196d86cfb48d1c5d27a0c03c7497afa">set</a>(gepId);</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; }</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; }</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; }</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160;}</div><div class="ttc" id="classSVF_1_1ConstraintGraph_html_a8ba74f82c1e796f2888ba34bc8355ce9"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a8ba74f82c1e796f2888ba34bc8355ce9">SVF::ConstraintGraph::isBlkObjOrConstantObj</a></div><div class="ttdeci">bool isBlkObjOrConstantObj(NodeID id)</div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8h_source.html#l00309">ConsG.h:309</a></div></div>
1049
- <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#l00415">SymbolTableInfo.h:415</a></div></div>
1048
+ <div class="fragment"><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;{</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <a class="code" href="classSVF_1_1AndersenBase.html#ad21fc4e60abc4e6030880f8197e1c93f">numOfFieldExpand</a>++;</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="keywordflow">while</span> (!initials.empty())</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; {</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> init = *initials.begin();</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; initials.erase(init);</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1AndersenBase.html#ae21e38a06a4397d11cdd17b0f8f282fd">consCG</a>-&gt;<a class="code" href="classSVF_1_1ConstraintGraph.html#a8ba74f82c1e796f2888ba34bc8355ce9">isBlkObjOrConstantObj</a>(init))</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; expandPts.<a class="code" href="classSVF_1_1PointsTo.html#ab196d86cfb48d1c5d27a0c03c7497afa">set</a>(init);</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; {</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <a class="code" href="classSVF_1_1SVFVar.html">PAGNode</a>* initPN = <a class="code" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>-&gt;<a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(init);</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1MemObj.html">MemObj</a>* obj = <a class="code" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>-&gt;<a class="code" href="classSVF_1_1SVFIR.html#af76a55c3b8255a81a566bdce35ffc749">getBaseObj</a>(init);</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a2db29836a72e8d86e9baa6d8d55d2978">Size_t</a> maxLimit = obj-&gt;<a class="code" href="classSVF_1_1MemObj.html#afccbd809fe7c2acf4741383987036807">getMaxFieldOffsetLimit</a>();</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <a class="code" href="namespaceSVF.html#a2db29836a72e8d86e9baa6d8d55d2978">Size_t</a> initOffset;</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1GepObjVar.html">GepObjVar</a> *gepNode = SVFUtil::dyn_cast&lt;GepObjVar&gt;(initPN))</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; initOffset = gepNode-&gt;getFieldOffset();</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa&lt;FIObjVar&gt;(initPN) || SVFUtil::isa&lt;DummyObjVar&gt;(initPN))</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; initOffset = 0;</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<span class="keyword">false</span> &amp;&amp; <span class="stringliteral">&quot;Not an object node!!&quot;</span>);</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set&lt;Size_t&gt;</a> offsets;</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; offsets.insert(offset);</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <span class="comment">// calculate offsets</span></div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; <span class="keywordtype">bool</span> loopFlag = <span class="keyword">true</span>;</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <span class="keywordflow">while</span> (loopFlag)</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; {</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; loopFlag = <span class="keyword">false</span>;</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">auto</span> _f : offsets)</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">auto</span> _s : strides)</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; {</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <a class="code" href="namespaceSVF.html#a2db29836a72e8d86e9baa6d8d55d2978">Size_t</a> _f1 = _f + _s;</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; loopFlag = (offsets.find(_f1) == offsets.end()) &amp;&amp; (initOffset + _f1 &lt; maxLimit);</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="keywordflow">if</span> (loopFlag)</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; offsets.insert(_f1);</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; }</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; }</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <span class="comment">// get gep objs</span></div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#a2db29836a72e8d86e9baa6d8d55d2978">Size_t</a> _f : offsets)</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; {</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> gepId = <a class="code" href="classSVF_1_1AndersenBase.html#ae21e38a06a4397d11cdd17b0f8f282fd">consCG</a>-&gt;<a class="code" href="classSVF_1_1ConstraintGraph.html#a3f727a2822fb18a14ce9e10c6534cf5a">getGepObjVar</a>(init, <a class="code" href="classSVF_1_1LocationSet.html">LocationSet</a>(_f));</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; initials.erase(gepId); <span class="comment">// gep id in initials should be removed to avoid redundant derivation</span></div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; expandPts.<a class="code" href="classSVF_1_1PointsTo.html#ab196d86cfb48d1c5d27a0c03c7497afa">set</a>(gepId);</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; }</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; }</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; }</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160;}</div><div class="ttc" id="classSVF_1_1ConstraintGraph_html_a8ba74f82c1e796f2888ba34bc8355ce9"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a8ba74f82c1e796f2888ba34bc8355ce9">SVF::ConstraintGraph::isBlkObjOrConstantObj</a></div><div class="ttdeci">bool isBlkObjOrConstantObj(NodeID id)</div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8h_source.html#l00309">ConsG.h:309</a></div></div>
1049
+ <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>
1050
1050
  <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>
1051
1051
  <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>
1052
1052
  <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>
1053
1053
  <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>
1054
1054
  <div class="ttc" id="namespaceSVF_html_af739db846e47ba6b2fd15eaad31ab7fb"><div class="ttname"><a href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">SVF::Set</a></div><div class="ttdeci">std::unordered_set&lt; Key, Hash, KeyEqual, Allocator &gt; Set</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00095">SVFBasicTypes.h:95</a></div></div>
1055
1055
  <div class="ttc" id="namespaceSVF_html_a2db29836a72e8d86e9baa6d8d55d2978"><div class="ttname"><a href="namespaceSVF.html#a2db29836a72e8d86e9baa6d8d55d2978">SVF::Size_t</a></div><div class="ttdeci">signed long Size_t</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00078">SVFBasicTypes.h:78</a></div></div>
1056
- <div class="ttc" id="classSVF_1_1MemObj_html_afccbd809fe7c2acf4741383987036807"><div class="ttname"><a href="classSVF_1_1MemObj.html#afccbd809fe7c2acf4741383987036807">SVF::MemObj::getMaxFieldOffsetLimit</a></div><div class="ttdeci">Size_t getMaxFieldOffsetLimit() const</div><div class="ttdoc">Get max field offset limit. </div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00670">SymbolTableInfo.cpp:670</a></div></div>
1056
+ <div class="ttc" id="classSVF_1_1MemObj_html_afccbd809fe7c2acf4741383987036807"><div class="ttname"><a href="classSVF_1_1MemObj.html#afccbd809fe7c2acf4741383987036807">SVF::MemObj::getMaxFieldOffsetLimit</a></div><div class="ttdeci">Size_t getMaxFieldOffsetLimit() const</div><div class="ttdoc">Get max field offset limit. </div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00643">SymbolTableInfo.cpp:643</a></div></div>
1057
+ <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>
1057
1058
  <div class="ttc" id="classSVF_1_1PointsTo_html_ab196d86cfb48d1c5d27a0c03c7497afa"><div class="ttname"><a href="classSVF_1_1PointsTo.html#ab196d86cfb48d1c5d27a0c03c7497afa">SVF::PointsTo::set</a></div><div class="ttdeci">void set(u32_t n)</div><div class="ttdoc">Inserts n in the set. </div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8cpp_source.html#l00149">PointsTo.cpp:149</a></div></div>
1058
1059
  <div class="ttc" id="classSVF_1_1ConstraintGraph_html_a3f727a2822fb18a14ce9e10c6534cf5a"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a3f727a2822fb18a14ce9e10c6534cf5a">SVF::ConstraintGraph::getGepObjVar</a></div><div class="ttdeci">NodeID getGepObjVar(NodeID id, const LocationSet &amp;ls)</div><div class="ttdoc">Get a field of a memory object. </div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8h_source.html#l00327">ConsG.h:327</a></div></div>
1059
- <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>
1060
- <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>
1060
+ <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>
1061
1061
  <div class="ttc" id="classSVF_1_1PointerAnalysis_html_adc7f5c71efb9cd1bec4f5ca9127654c3"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">SVF::PointerAnalysis::pag</a></div><div class="ttdeci">static SVFIR * pag</div><div class="ttdoc">SVFIR. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00147">PointerAnalysis.h:147</a></div></div>
1062
1062
  <div class="ttc" id="classSVF_1_1AndersenBase_html_ae21e38a06a4397d11cdd17b0f8f282fd"><div class="ttname"><a href="classSVF_1_1AndersenBase.html#ae21e38a06a4397d11cdd17b0f8f282fd">SVF::AndersenBase::consCG</a></div><div class="ttdeci">ConstraintGraph * consCG</div><div class="ttdoc">Constraint Graph. </div><div class="ttdef"><b>Definition:</b> <a href="Andersen_8h_source.html#l00143">Andersen.h:143</a></div></div>
1063
1063
  <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>
@@ -1192,7 +1192,7 @@ Additional Inherited Members</h2></td></tr>
1192
1192
  <p>Propagate point-to set via a gep edge, using SFR </p>
1193
1193
 
1194
1194
  <p class="definition">Definition at line <a class="el" href="AndersenSFR_8cpp_source.html#l00083">83</a> of file <a class="el" href="AndersenSFR_8cpp_source.html">AndersenSFR.cpp</a>.</p>
1195
- <div class="fragment"><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;{</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <a class="code" href="classSVF_1_1ConstraintNode.html">ConstraintNode</a>* dst = edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#aeaa31a2c8479e831b36ce2e2582ceb86">getDstNode</a>();</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> dstId = dst-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>();</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="keywordflow">if</span> (!dst-&gt;<a class="code" href="classSVF_1_1ConstraintNode.html#a873ba0c14dc57bd603c4a6b4d73e4278">strides</a>.empty() &amp;&amp; SVFUtil::isa&lt;NormalGepCGEdge&gt;(edge)) <span class="comment">// dst is in pwc</span></div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; {</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a> tmpDstPts;</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a> srcInits = pts - <a class="code" href="classSVF_1_1Andersen.html#a187285a5bdf9422d9188b2b11b667639">getPts</a>(dstId);</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="keywordflow">if</span> (!srcInits.<a class="code" href="classSVF_1_1PointsTo.html#ac4688413177b49b37dbbfd3ed188d59b">empty</a>())</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; {</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <a class="code" href="namespaceSVF.html#a212231734fa43d5c7414137deaac7df3">NodeSet</a> sortSrcInits;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> ptd : srcInits)</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; sortSrcInits.insert(ptd);</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <a class="code" href="namespaceSVF.html#a2db29836a72e8d86e9baa6d8d55d2978">Size_t</a> offset = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">SVFUtil::dyn_cast</a>&lt;<a class="code" href="classSVF_1_1NormalGepCGEdge.html">NormalGepCGEdge</a>&gt;(edge)-&gt;getOffset();</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <a class="code" href="classSVF_1_1AndersenSFR.html#a78e48b3c3db39470ab47b92bbc577e7e">fieldExpand</a>(sortSrcInits, offset, dst-&gt;<a class="code" href="classSVF_1_1ConstraintNode.html#a873ba0c14dc57bd603c4a6b4d73e4278">strides</a>, tmpDstPts);</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; }</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Andersen.html#ab7dadfd4d810be4863f03ed996b3b3c4">unionPts</a>(dstId, tmpDstPts))</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; {</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <a class="code" href="classSVF_1_1WPASolver.html#a4af1c3e72f5af96c4facff672108da58">pushIntoWorklist</a>(dstId);</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; }</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; }</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1Andersen.html#ac6b1efcaadfed48c226701ecf6bac55e">Andersen::processGepPts</a>(pts, edge);</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;}</div><div class="ttc" id="classSVF_1_1WPASolver_html_a4af1c3e72f5af96c4facff672108da58"><div class="ttname"><a href="classSVF_1_1WPASolver.html#a4af1c3e72f5af96c4facff672108da58">SVF::WPASolver::pushIntoWorklist</a></div><div class="ttdeci">virtual void pushIntoWorklist(NodeID id)</div><div class="ttdef"><b>Definition:</b> <a href="WPASolver_8h_source.html#l00162">WPASolver.h:162</a></div></div>
1195
+ <div class="fragment"><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;{</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <a class="code" href="classSVF_1_1ConstraintNode.html">ConstraintNode</a>* dst = edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#aeaa31a2c8479e831b36ce2e2582ceb86">getDstNode</a>();</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> dstId = dst-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>();</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="keywordflow">if</span> (!dst-&gt;<a class="code" href="classSVF_1_1ConstraintNode.html#a873ba0c14dc57bd603c4a6b4d73e4278">strides</a>.empty() &amp;&amp; SVFUtil::isa&lt;NormalGepCGEdge&gt;(edge)) <span class="comment">// dst is in pwc</span></div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; {</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a> tmpDstPts;</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a> srcInits = pts - <a class="code" href="classSVF_1_1Andersen.html#a187285a5bdf9422d9188b2b11b667639">getPts</a>(dstId);</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="keywordflow">if</span> (!srcInits.<a class="code" href="classSVF_1_1PointsTo.html#ac4688413177b49b37dbbfd3ed188d59b">empty</a>())</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; {</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <a class="code" href="namespaceSVF.html#a212231734fa43d5c7414137deaac7df3">NodeSet</a> sortSrcInits;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> ptd : srcInits)</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; sortSrcInits.insert(ptd);</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <a class="code" href="namespaceSVF.html#a2db29836a72e8d86e9baa6d8d55d2978">Size_t</a> offset = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">SVFUtil::dyn_cast</a>&lt;<a class="code" href="classSVF_1_1NormalGepCGEdge.html">NormalGepCGEdge</a>&gt;(edge)-&gt;getFieldOffset();</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <a class="code" href="classSVF_1_1AndersenSFR.html#a78e48b3c3db39470ab47b92bbc577e7e">fieldExpand</a>(sortSrcInits, offset, dst-&gt;<a class="code" href="classSVF_1_1ConstraintNode.html#a873ba0c14dc57bd603c4a6b4d73e4278">strides</a>, tmpDstPts);</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; }</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Andersen.html#ab7dadfd4d810be4863f03ed996b3b3c4">unionPts</a>(dstId, tmpDstPts))</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; {</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <a class="code" href="classSVF_1_1WPASolver.html#a4af1c3e72f5af96c4facff672108da58">pushIntoWorklist</a>(dstId);</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; }</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; }</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1Andersen.html#ac6b1efcaadfed48c226701ecf6bac55e">Andersen::processGepPts</a>(pts, edge);</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;}</div><div class="ttc" id="classSVF_1_1WPASolver_html_a4af1c3e72f5af96c4facff672108da58"><div class="ttname"><a href="classSVF_1_1WPASolver.html#a4af1c3e72f5af96c4facff672108da58">SVF::WPASolver::pushIntoWorklist</a></div><div class="ttdeci">virtual void pushIntoWorklist(NodeID id)</div><div class="ttdef"><b>Definition:</b> <a href="WPASolver_8h_source.html#l00162">WPASolver.h:162</a></div></div>
1196
1196
  <div class="ttc" id="classSVF_1_1Andersen_html_a187285a5bdf9422d9188b2b11b667639"><div class="ttname"><a href="classSVF_1_1Andersen.html#a187285a5bdf9422d9188b2b11b667639">SVF::Andersen::getPts</a></div><div class="ttdeci">virtual const PointsTo &amp; getPts(NodeID id)</div><div class="ttdoc">Operation of points-to set. </div><div class="ttdef"><b>Definition:</b> <a href="Andersen_8h_source.html#l00216">Andersen.h:216</a></div></div>
1197
1197
  <div class="ttc" id="namespaceSVF_html_a212231734fa43d5c7414137deaac7df3"><div class="ttname"><a href="namespaceSVF.html#a212231734fa43d5c7414137deaac7df3">SVF::NodeSet</a></div><div class="ttdeci">Set&lt; NodeID &gt; NodeSet</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00114">SVFBasicTypes.h:114</a></div></div>
1198
1198
  <div class="ttc" id="classSVF_1_1Andersen_html_ab7dadfd4d810be4863f03ed996b3b3c4"><div class="ttname"><a href="classSVF_1_1Andersen.html#ab7dadfd4d810be4863f03ed996b3b3c4">SVF::Andersen::unionPts</a></div><div class="ttdeci">virtual bool unionPts(NodeID id, const PointsTo &amp;target)</div><div class="ttdef"><b>Definition:</b> <a href="Andersen_8h_source.html#l00220">Andersen.h:220</a></div></div>