svf-tools 1.0.321 → 1.0.322

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 (319) hide show
  1. package/SVF-doxygen/html/html/AndersenSFR_8cpp_source.html +1 -1
  2. package/SVF-doxygen/html/html/AndersenStat_8cpp_source.html +1 -1
  3. package/SVF-doxygen/html/html/ConsGNode_8h_source.html +5 -5
  4. package/SVF-doxygen/html/html/ConsG_8cpp_source.html +5 -5
  5. package/SVF-doxygen/html/html/ContextDDA_8cpp_source.html +2 -2
  6. package/SVF-doxygen/html/html/DDAStat_8cpp_source.html +1 -1
  7. package/SVF-doxygen/html/html/FlowDDA_8cpp_source.html +2 -2
  8. package/SVF-doxygen/html/html/FlowSensitiveStat_8cpp_source.html +1 -1
  9. package/SVF-doxygen/html/html/FlowSensitiveTBHC_8cpp_source.html +2 -2
  10. package/SVF-doxygen/html/html/FlowSensitive_8cpp_source.html +2 -2
  11. package/SVF-doxygen/html/html/Graph2Json_8cpp_source.html +3 -3
  12. package/SVF-doxygen/html/html/IRGraph_8cpp_source.html +1 -1
  13. package/SVF-doxygen/html/html/MSSAMuChi_8h_source.html +9 -9
  14. package/SVF-doxygen/html/html/MemRegion_8cpp_source.html +7 -7
  15. package/SVF-doxygen/html/html/MemRegion_8h_source.html +11 -11
  16. package/SVF-doxygen/html/html/MemSSA_8cpp_source.html +9 -9
  17. package/SVF-doxygen/html/html/MemSSA_8h_source.html +11 -11
  18. package/SVF-doxygen/html/html/OfflineConsG_8cpp_source.html +1 -1
  19. package/SVF-doxygen/html/html/PAGBuilderFromFile_8cpp_source.html +1 -1
  20. package/SVF-doxygen/html/html/PTAStat_8cpp_source.html +2 -2
  21. package/SVF-doxygen/html/html/PointerAnalysisImpl_8cpp_source.html +1 -1
  22. package/SVF-doxygen/html/html/PointerAnalysisImpl_8h_source.html +1 -1
  23. package/SVF-doxygen/html/html/PointerAnalysis_8cpp_source.html +2 -2
  24. package/SVF-doxygen/html/html/PointerAnalysis_8h_source.html +1 -1
  25. package/SVF-doxygen/html/html/SVFG_8cpp_source.html +4 -4
  26. package/SVF-doxygen/html/html/SVFIRBuilder_8cpp_source.html +4 -4
  27. package/SVF-doxygen/html/html/SVFIRBuilder_8h_source.html +33 -33
  28. package/SVF-doxygen/html/html/SVFIR_8cpp_source.html +31 -31
  29. package/SVF-doxygen/html/html/SVFIR_8h_source.html +32 -32
  30. package/SVF-doxygen/html/html/SVFStatements_8cpp_source.html +14 -14
  31. package/SVF-doxygen/html/html/SVFStatements_8h.html +11 -11
  32. package/SVF-doxygen/html/html/SVFStatements_8h_source.html +72 -72
  33. package/SVF-doxygen/html/html/SVFVariables_8cpp_source.html +9 -9
  34. package/SVF-doxygen/html/html/SVFVariables_8h.html +9 -9
  35. package/SVF-doxygen/html/html/SVFVariables_8h_source.html +66 -66
  36. package/SVF-doxygen/html/html/SaberSVFGBuilder_8cpp_source.html +1 -1
  37. package/SVF-doxygen/html/html/ThreadCallGraph_8cpp_source.html +2 -2
  38. package/SVF-doxygen/html/html/TypeBasedHeapCloning_8cpp_source.html +8 -8
  39. package/SVF-doxygen/html/html/VFGNode_8h_source.html +11 -11
  40. package/SVF-doxygen/html/html/VFG_8cpp_source.html +16 -16
  41. package/SVF-doxygen/html/html/VFG_8h_source.html +21 -21
  42. package/SVF-doxygen/html/html/VersionedFlowSensitiveStat_8cpp_source.html +1 -1
  43. package/SVF-doxygen/html/html/VersionedFlowSensitive_8cpp_source.html +1 -1
  44. package/SVF-doxygen/html/html/annotated.html +21 -21
  45. package/SVF-doxygen/html/html/classSVF_1_1AddrCGEdge.html +1 -1
  46. package/SVF-doxygen/html/html/classSVF_1_1AddrStmt-members.html +136 -0
  47. package/SVF-doxygen/html/html/classSVF_1_1AddrStmt.html +498 -0
  48. package/SVF-doxygen/html/html/classSVF_1_1AddrStmt.png +0 -0
  49. package/SVF-doxygen/html/html/classSVF_1_1AddrVFGNode-members.html +1 -1
  50. package/SVF-doxygen/html/html/classSVF_1_1AddrVFGNode.html +7 -7
  51. package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR.html +1 -1
  52. package/SVF-doxygen/html/html/classSVF_1_1AndersenStat.html +3 -3
  53. package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl.html +2 -2
  54. package/SVF-doxygen/html/html/classSVF_1_1BinaryOPStmt-members.html +154 -0
  55. package/SVF-doxygen/html/html/classSVF_1_1BinaryOPStmt.html +754 -0
  56. package/SVF-doxygen/html/html/classSVF_1_1BinaryOPStmt.png +0 -0
  57. package/SVF-doxygen/html/html/classSVF_1_1CloneDummyObjVar-members.html +169 -0
  58. package/SVF-doxygen/html/html/classSVF_1_1CloneDummyObjVar.html +537 -0
  59. package/SVF-doxygen/html/html/classSVF_1_1CloneDummyObjVar.png +0 -0
  60. package/SVF-doxygen/html/html/classSVF_1_1CloneFIObjVar-members.html +169 -0
  61. package/SVF-doxygen/html/html/classSVF_1_1CloneFIObjVar.html +547 -0
  62. package/SVF-doxygen/html/html/classSVF_1_1CloneFIObjVar.png +0 -0
  63. package/SVF-doxygen/html/html/classSVF_1_1CloneGepObjVar-members.html +172 -0
  64. package/SVF-doxygen/html/html/classSVF_1_1CloneGepObjVar.html +556 -0
  65. package/SVF-doxygen/html/html/classSVF_1_1CloneGepObjVar.png +0 -0
  66. package/SVF-doxygen/html/html/classSVF_1_1CmpStmt-members.html +74 -22
  67. package/SVF-doxygen/html/html/classSVF_1_1CmpStmt.html +477 -93
  68. package/SVF-doxygen/html/html/classSVF_1_1CmpStmt.png +0 -0
  69. package/SVF-doxygen/html/html/classSVF_1_1CondPTAImpl.html +1 -1
  70. package/SVF-doxygen/html/html/classSVF_1_1ConstraintGraph.html +5 -5
  71. package/SVF-doxygen/html/html/classSVF_1_1ConstraintNode-members.html +26 -26
  72. package/SVF-doxygen/html/html/classSVF_1_1ConstraintNode.html +43 -43
  73. package/SVF-doxygen/html/html/classSVF_1_1ContextDDA.html +3 -3
  74. package/SVF-doxygen/html/html/classSVF_1_1CopyStmt-members.html +56 -21
  75. package/SVF-doxygen/html/html/classSVF_1_1CopyStmt.html +251 -89
  76. package/SVF-doxygen/html/html/classSVF_1_1CopyStmt.png +0 -0
  77. package/SVF-doxygen/html/html/classSVF_1_1CopyVFGNode-members.html +1 -1
  78. package/SVF-doxygen/html/html/classSVF_1_1CopyVFGNode.html +7 -7
  79. package/SVF-doxygen/html/html/classSVF_1_1DDAStat.html +1 -1
  80. package/SVF-doxygen/html/html/classSVF_1_1DistinctMRG-members.html +8 -8
  81. package/SVF-doxygen/html/html/classSVF_1_1DistinctMRG.html +18 -18
  82. package/SVF-doxygen/html/html/classSVF_1_1DummyObjVar-members.html +167 -0
  83. package/SVF-doxygen/html/html/classSVF_1_1DummyObjVar.html +531 -0
  84. package/SVF-doxygen/html/html/classSVF_1_1DummyObjVar.png +0 -0
  85. package/SVF-doxygen/html/html/classSVF_1_1DummyValVar-members.html +165 -0
  86. package/SVF-doxygen/html/html/classSVF_1_1DummyValVar.html +502 -0
  87. package/SVF-doxygen/html/html/classSVF_1_1DummyValVar.png +0 -0
  88. package/SVF-doxygen/html/html/classSVF_1_1FIObjVar-members.html +167 -0
  89. package/SVF-doxygen/html/html/classSVF_1_1FIObjVar.html +577 -0
  90. package/SVF-doxygen/html/html/classSVF_1_1FIObjVar.png +0 -0
  91. package/SVF-doxygen/html/html/classSVF_1_1FlowDDA.html +2 -2
  92. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive.html +2 -2
  93. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveStat.html +2 -2
  94. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveTBHC.html +3 -3
  95. package/SVF-doxygen/html/html/classSVF_1_1GenericEdge.html +6 -6
  96. package/SVF-doxygen/html/html/classSVF_1_1GenericEdge.png +0 -0
  97. package/SVF-doxygen/html/html/classSVF_1_1GenericNode.html +23 -22
  98. package/SVF-doxygen/html/html/classSVF_1_1GenericNode.png +0 -0
  99. package/SVF-doxygen/html/html/classSVF_1_1GepObjPN-members.html +4 -4
  100. package/SVF-doxygen/html/html/classSVF_1_1GepObjPN.html +37 -37
  101. package/SVF-doxygen/html/html/classSVF_1_1GepObjPN.png +0 -0
  102. package/SVF-doxygen/html/html/classSVF_1_1GepStmt-members.html +56 -22
  103. package/SVF-doxygen/html/html/classSVF_1_1GepStmt.html +257 -118
  104. package/SVF-doxygen/html/html/classSVF_1_1GepStmt.png +0 -0
  105. package/SVF-doxygen/html/html/classSVF_1_1GepVFGNode-members.html +1 -1
  106. package/SVF-doxygen/html/html/classSVF_1_1GepVFGNode.html +7 -7
  107. package/SVF-doxygen/html/html/classSVF_1_1GepValVar-members.html +170 -0
  108. package/SVF-doxygen/html/html/classSVF_1_1GepValVar.html +752 -0
  109. package/SVF-doxygen/html/html/classSVF_1_1GepValVar.png +0 -0
  110. package/SVF-doxygen/html/html/classSVF_1_1ICFGPrinter.html +3 -3
  111. package/SVF-doxygen/html/html/classSVF_1_1InterDisjointMRG-members.html +8 -8
  112. package/SVF-doxygen/html/html/classSVF_1_1InterDisjointMRG.html +18 -18
  113. package/SVF-doxygen/html/html/classSVF_1_1IntraDisjointMRG-members.html +8 -8
  114. package/SVF-doxygen/html/html/classSVF_1_1IntraDisjointMRG.html +18 -18
  115. package/SVF-doxygen/html/html/classSVF_1_1LoadMU-members.html +3 -3
  116. package/SVF-doxygen/html/html/classSVF_1_1LoadMU.html +20 -20
  117. package/SVF-doxygen/html/html/classSVF_1_1LoadStmt-members.html +56 -21
  118. package/SVF-doxygen/html/html/classSVF_1_1LoadStmt.html +251 -89
  119. package/SVF-doxygen/html/html/classSVF_1_1LoadStmt.png +0 -0
  120. package/SVF-doxygen/html/html/classSVF_1_1LoadVFGNode-members.html +1 -1
  121. package/SVF-doxygen/html/html/classSVF_1_1LoadVFGNode.html +7 -7
  122. package/SVF-doxygen/html/html/classSVF_1_1MRGenerator-members.html +8 -8
  123. package/SVF-doxygen/html/html/classSVF_1_1MRGenerator.html +63 -63
  124. package/SVF-doxygen/html/html/classSVF_1_1MemSSA-members.html +8 -8
  125. package/SVF-doxygen/html/html/classSVF_1_1MemSSA.html +71 -71
  126. package/SVF-doxygen/html/html/classSVF_1_1MultiOpndStmt.html +3 -3
  127. package/SVF-doxygen/html/html/classSVF_1_1MultiOpndStmt.png +0 -0
  128. package/SVF-doxygen/html/html/classSVF_1_1NormalGepStmt-members.html +141 -0
  129. package/SVF-doxygen/html/html/classSVF_1_1NormalGepStmt.html +647 -0
  130. package/SVF-doxygen/html/html/classSVF_1_1NormalGepStmt.png +0 -0
  131. package/SVF-doxygen/html/html/classSVF_1_1ObjVar-members.html +165 -0
  132. package/SVF-doxygen/html/html/classSVF_1_1ObjVar.html +644 -0
  133. package/SVF-doxygen/html/html/classSVF_1_1ObjVar.png +0 -0
  134. package/SVF-doxygen/html/html/classSVF_1_1PAGBuilderFromFile.html +10 -10
  135. package/SVF-doxygen/html/html/classSVF_1_1PTAStat.html +2 -2
  136. package/SVF-doxygen/html/html/classSVF_1_1PhiStmt-members.html +73 -22
  137. package/SVF-doxygen/html/html/classSVF_1_1PhiStmt.html +445 -98
  138. package/SVF-doxygen/html/html/classSVF_1_1PhiStmt.png +0 -0
  139. package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.html +8 -8
  140. package/SVF-doxygen/html/html/classSVF_1_1SVFG-members.html +9 -9
  141. package/SVF-doxygen/html/html/classSVF_1_1SVFG.html +32 -32
  142. package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT-members.html +9 -9
  143. package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT.html +26 -26
  144. package/SVF-doxygen/html/html/classSVF_1_1SVFIR-members.html +14 -14
  145. package/SVF-doxygen/html/html/classSVF_1_1SVFIR.html +142 -142
  146. package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder-members.html +11 -11
  147. package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder.html +137 -137
  148. package/SVF-doxygen/html/html/classSVF_1_1SVFStmt.html +7 -7
  149. package/SVF-doxygen/html/html/classSVF_1_1SVFStmt.png +0 -0
  150. package/SVF-doxygen/html/html/classSVF_1_1SVFVar.html +13 -13
  151. package/SVF-doxygen/html/html/classSVF_1_1SVFVar.png +0 -0
  152. package/SVF-doxygen/html/html/classSVF_1_1SaberSVFGBuilder.html +1 -1
  153. package/SVF-doxygen/html/html/classSVF_1_1StoreCHI-members.html +3 -3
  154. package/SVF-doxygen/html/html/classSVF_1_1StoreCHI.html +20 -20
  155. package/SVF-doxygen/html/html/classSVF_1_1StoreStmt-members.html +56 -21
  156. package/SVF-doxygen/html/html/classSVF_1_1StoreStmt.html +258 -89
  157. package/SVF-doxygen/html/html/classSVF_1_1StoreStmt.png +0 -0
  158. package/SVF-doxygen/html/html/classSVF_1_1StoreVFGNode-members.html +1 -1
  159. package/SVF-doxygen/html/html/classSVF_1_1StoreVFGNode.html +7 -7
  160. package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraph.html +2 -2
  161. package/SVF-doxygen/html/html/classSVF_1_1TypeBasedHeapCloning.html +20 -20
  162. package/SVF-doxygen/html/html/classSVF_1_1UnaryOPStmt-members.html +146 -0
  163. package/SVF-doxygen/html/html/classSVF_1_1UnaryOPStmt.html +792 -0
  164. package/SVF-doxygen/html/html/classSVF_1_1UnaryOPStmt.png +0 -0
  165. package/SVF-doxygen/html/html/classSVF_1_1VFG-members.html +9 -9
  166. package/SVF-doxygen/html/html/classSVF_1_1VFG.html +69 -69
  167. package/SVF-doxygen/html/html/classSVF_1_1ValVar-members.html +163 -0
  168. package/SVF-doxygen/html/html/classSVF_1_1ValVar.html +521 -0
  169. package/SVF-doxygen/html/html/classSVF_1_1ValVar.png +0 -0
  170. package/SVF-doxygen/html/html/classSVF_1_1VariantGepStmt-members.html +138 -0
  171. package/SVF-doxygen/html/html/classSVF_1_1VariantGepStmt.html +542 -0
  172. package/SVF-doxygen/html/html/classSVF_1_1VariantGepStmt.png +0 -0
  173. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive.html +1 -1
  174. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitiveStat.html +1 -1
  175. package/SVF-doxygen/html/html/classes.html +18 -18
  176. package/SVF-doxygen/html/html/functions_a.html +39 -39
  177. package/SVF-doxygen/html/html/functions_b.html +2 -2
  178. package/SVF-doxygen/html/html/functions_c.html +34 -34
  179. package/SVF-doxygen/html/html/functions_d.html +4 -4
  180. package/SVF-doxygen/html/html/functions_f.html +3 -3
  181. package/SVF-doxygen/html/html/functions_func.html +38 -38
  182. package/SVF-doxygen/html/html/functions_func_b.html +2 -2
  183. package/SVF-doxygen/html/html/functions_func_c.html +30 -30
  184. package/SVF-doxygen/html/html/functions_func_d.html +4 -4
  185. package/SVF-doxygen/html/html/functions_func_f.html +2 -2
  186. package/SVF-doxygen/html/html/functions_func_g.html +49 -49
  187. package/SVF-doxygen/html/html/functions_func_l.html +3 -3
  188. package/SVF-doxygen/html/html/functions_func_n.html +2 -2
  189. package/SVF-doxygen/html/html/functions_func_o.html +15 -15
  190. package/SVF-doxygen/html/html/functions_func_p.html +2 -2
  191. package/SVF-doxygen/html/html/functions_func_s.html +4 -4
  192. package/SVF-doxygen/html/html/functions_func_t.html +20 -20
  193. package/SVF-doxygen/html/html/functions_func_u.html +2 -2
  194. package/SVF-doxygen/html/html/functions_func_v.html +5 -5
  195. package/SVF-doxygen/html/html/functions_g.html +52 -52
  196. package/SVF-doxygen/html/html/functions_i.html +2 -2
  197. package/SVF-doxygen/html/html/functions_l.html +9 -9
  198. package/SVF-doxygen/html/html/functions_m.html +1 -1
  199. package/SVF-doxygen/html/html/functions_n.html +2 -2
  200. package/SVF-doxygen/html/html/functions_o.html +17 -17
  201. package/SVF-doxygen/html/html/functions_p.html +4 -4
  202. package/SVF-doxygen/html/html/functions_s.html +7 -7
  203. package/SVF-doxygen/html/html/functions_t.html +20 -20
  204. package/SVF-doxygen/html/html/functions_type_c.html +1 -1
  205. package/SVF-doxygen/html/html/functions_type_l.html +3 -3
  206. package/SVF-doxygen/html/html/functions_type_p.html +1 -1
  207. package/SVF-doxygen/html/html/functions_type_s.html +3 -3
  208. package/SVF-doxygen/html/html/functions_u.html +2 -2
  209. package/SVF-doxygen/html/html/functions_v.html +5 -5
  210. package/SVF-doxygen/html/html/functions_vars_f.html +1 -1
  211. package/SVF-doxygen/html/html/functions_vars_g.html +1 -1
  212. package/SVF-doxygen/html/html/functions_vars_i.html +2 -2
  213. package/SVF-doxygen/html/html/functions_vars_l.html +2 -2
  214. package/SVF-doxygen/html/html/functions_vars_m.html +1 -1
  215. package/SVF-doxygen/html/html/functions_vars_o.html +3 -3
  216. package/SVF-doxygen/html/html/functions_w.html +5 -9
  217. package/SVF-doxygen/html/html/hierarchy.html +65 -65
  218. package/SVF-doxygen/html/html/namespaceSVF.html +23 -23
  219. package/SVF-doxygen/html/html/search/all_1.js +37 -37
  220. package/SVF-doxygen/html/html/search/all_10.js +2 -2
  221. package/SVF-doxygen/html/html/search/all_13.js +6 -6
  222. package/SVF-doxygen/html/html/search/all_14.js +1 -1
  223. package/SVF-doxygen/html/html/search/all_15.js +1 -1
  224. package/SVF-doxygen/html/html/search/all_16.js +2 -2
  225. package/SVF-doxygen/html/html/search/all_17.js +1 -1
  226. package/SVF-doxygen/html/html/search/all_2.js +1 -1
  227. package/SVF-doxygen/html/html/search/all_3.js +8 -8
  228. package/SVF-doxygen/html/html/search/all_4.js +2 -2
  229. package/SVF-doxygen/html/html/search/all_6.js +2 -2
  230. package/SVF-doxygen/html/html/search/all_7.js +26 -26
  231. package/SVF-doxygen/html/html/search/all_9.js +1 -1
  232. package/SVF-doxygen/html/html/search/all_c.js +7 -7
  233. package/SVF-doxygen/html/html/search/all_d.js +1 -1
  234. package/SVF-doxygen/html/html/search/all_e.js +1 -1
  235. package/SVF-doxygen/html/html/search/all_f.js +3 -3
  236. package/SVF-doxygen/html/html/search/classes_0.js +1 -1
  237. package/SVF-doxygen/html/html/search/classes_1.js +1 -1
  238. package/SVF-doxygen/html/html/search/classes_11.js +1 -1
  239. package/SVF-doxygen/html/html/search/classes_12.js +2 -2
  240. package/SVF-doxygen/html/html/search/classes_2.js +5 -5
  241. package/SVF-doxygen/html/html/search/classes_3.js +2 -2
  242. package/SVF-doxygen/html/html/search/classes_5.js +1 -1
  243. package/SVF-doxygen/html/html/search/classes_6.js +2 -2
  244. package/SVF-doxygen/html/html/search/classes_9.js +1 -1
  245. package/SVF-doxygen/html/html/search/classes_b.js +1 -1
  246. package/SVF-doxygen/html/html/search/classes_c.js +1 -1
  247. package/SVF-doxygen/html/html/search/classes_d.js +1 -1
  248. package/SVF-doxygen/html/html/search/classes_f.js +1 -1
  249. package/SVF-doxygen/html/html/search/functions_0.js +37 -37
  250. package/SVF-doxygen/html/html/search/functions_1.js +1 -1
  251. package/SVF-doxygen/html/html/search/functions_10.js +3 -3
  252. package/SVF-doxygen/html/html/search/functions_11.js +1 -1
  253. package/SVF-doxygen/html/html/search/functions_12.js +1 -1
  254. package/SVF-doxygen/html/html/search/functions_13.js +2 -2
  255. package/SVF-doxygen/html/html/search/functions_2.js +7 -7
  256. package/SVF-doxygen/html/html/search/functions_3.js +2 -2
  257. package/SVF-doxygen/html/html/search/functions_5.js +1 -1
  258. package/SVF-doxygen/html/html/search/functions_6.js +25 -25
  259. package/SVF-doxygen/html/html/search/functions_a.js +3 -3
  260. package/SVF-doxygen/html/html/search/functions_c.js +1 -1
  261. package/SVF-doxygen/html/html/search/functions_d.js +2 -2
  262. package/SVF-doxygen/html/html/search/functions_e.js +1 -1
  263. package/SVF-doxygen/html/html/search/typedefs_11.js +3 -3
  264. package/SVF-doxygen/html/html/search/typedefs_2.js +1 -1
  265. package/SVF-doxygen/html/html/search/typedefs_b.js +3 -3
  266. package/SVF-doxygen/html/html/search/typedefs_f.js +1 -1
  267. package/SVF-doxygen/html/html/search/variables_6.js +1 -1
  268. package/SVF-doxygen/html/html/search/variables_7.js +1 -1
  269. package/SVF-doxygen/html/html/search/variables_9.js +1 -1
  270. package/SVF-doxygen/html/html/search/variables_c.js +1 -1
  271. package/SVF-doxygen/html/html/search/variables_d.js +1 -1
  272. package/SVF-doxygen/html/html/search/variables_f.js +1 -1
  273. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01ConstraintGraph_01_5_01_4.html +2 -2
  274. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01IRGraph_01_5_01_4.html +2 -2
  275. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01OfflineConsG_01_5_01_4.html +2 -2
  276. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01SVFG_01_5_01_4.html +1 -1
  277. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01VFG_01_5_01_4.html +1 -1
  278. package/include/Graphs/ICFGNode.h +1 -1
  279. package/include/Graphs/VFG.h +9 -9
  280. package/include/Graphs/VFGNode.h +6 -6
  281. package/include/MSSA/MSSAMuChi.h +6 -6
  282. package/include/MSSA/MemRegion.h +8 -8
  283. package/include/MSSA/MemSSA.h +10 -10
  284. package/include/MemoryModel/PointerAnalysis.h +1 -1
  285. package/include/MemoryModel/PointerAnalysisImpl.h +2 -2
  286. package/include/MemoryModel/SVFIR.h +28 -28
  287. package/include/MemoryModel/SVFStatements.h +68 -68
  288. package/include/MemoryModel/SVFVariables.h +39 -39
  289. package/include/SVF-FE/SVFIRBuilder.h +22 -22
  290. package/lib/DDA/ContextDDA.cpp +4 -4
  291. package/lib/DDA/DDAStat.cpp +1 -1
  292. package/lib/DDA/FlowDDA.cpp +2 -2
  293. package/lib/Graphs/ConsG.cpp +12 -12
  294. package/lib/Graphs/IRGraph.cpp +15 -15
  295. package/lib/Graphs/OfflineConsG.cpp +8 -8
  296. package/lib/Graphs/SVFG.cpp +8 -8
  297. package/lib/Graphs/ThreadCallGraph.cpp +2 -2
  298. package/lib/Graphs/VFG.cpp +15 -15
  299. package/lib/MSSA/MemRegion.cpp +6 -6
  300. package/lib/MSSA/MemSSA.cpp +6 -6
  301. package/lib/MemoryModel/PAGBuilderFromFile.cpp +3 -3
  302. package/lib/MemoryModel/PointerAnalysis.cpp +9 -9
  303. package/lib/MemoryModel/PointerAnalysisImpl.cpp +2 -2
  304. package/lib/MemoryModel/SVFIR.cpp +44 -44
  305. package/lib/MemoryModel/SVFStatements.cpp +24 -24
  306. package/lib/MemoryModel/SVFVariables.cpp +19 -19
  307. package/lib/SABER/SaberSVFGBuilder.cpp +2 -2
  308. package/lib/SVF-FE/Graph2Json.cpp +1 -1
  309. package/lib/SVF-FE/SVFIRBuilder.cpp +5 -5
  310. package/lib/Util/PTAStat.cpp +1 -1
  311. package/lib/Util/TypeBasedHeapCloning.cpp +19 -19
  312. package/lib/WPA/AndersenSFR.cpp +1 -1
  313. package/lib/WPA/AndersenStat.cpp +3 -3
  314. package/lib/WPA/FlowSensitive.cpp +2 -2
  315. package/lib/WPA/FlowSensitiveStat.cpp +2 -2
  316. package/lib/WPA/FlowSensitiveTBHC.cpp +4 -4
  317. package/lib/WPA/VersionedFlowSensitive.cpp +1 -1
  318. package/lib/WPA/VersionedFlowSensitiveStat.cpp +1 -1
  319. package/package.json +1 -1
@@ -66,22 +66,22 @@ $(function() {
66
66
  <div class="title">SVFVariables.h</div> </div>
67
67
  </div><!--header-->
68
68
  <div class="contents">
69
- <a href="SVFVariables_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">//===- SVFSymbols.h -- SVF Variables------------------------//</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">// SVF: Static Value-Flow Analysis</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// Copyright (C) &lt;2013-&gt; &lt;Yulei Sui&gt;</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// This program is free software: you can redistribute it and/or modify</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">// the Free Software Foundation, either version 3 of the License, or</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// (at your option) any later version.</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// GNU General Public License for more details.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// along with this program. If not, see &lt;http://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">//===----------------------------------------------------------------------===//</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment"> * SVFVariables.h</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment"> * Created on: Nov 11, 2013</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="comment"> * Author: Yulei Sui</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#ifndef OBJECTANDSYMBOL_H_</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#define OBJECTANDSYMBOL_H_</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="GenericGraph_8h.html">Graphs/GenericGraph.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="SymbolTableInfo_8h.html">MemoryModel/SymbolTableInfo.h</a>&quot;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="LLVMUtil_8h.html">SVF-FE/LLVMUtil.h</a>&quot;</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="SVFStatements_8h.html">MemoryModel/SVFStatements.h</a>&quot;</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespaceSVF.html">SVF</a></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;{</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno"><a class="line" href="namespaceSVF.html#a8d5e9e5137b04659ded32330e128df34"> 41</a></span>&#160;<span class="keyword">class </span><a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="comment"> * SVFIR node</span></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="keyword">typedef</span> <a class="code" href="classSVF_1_1GenericNode.html">GenericNode&lt;SVFVar,SVFStmt&gt;</a> <a class="code" href="namespaceSVF.html#a8d5e9e5137b04659ded32330e128df34">GenericPAGNodeTy</a>;</div><div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFVar.html"> 46</a></span>&#160;<span class="keyword">class </span><a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a> : <span class="keyword">public</span> GenericPAGNodeTy</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;{</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeff"> 60</a></span>&#160; <span class="keyword">enum</span> <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeff">PNODEK</a></div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; {</div><div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffa32d22852d39756992f87bd02def75f66"> 62</a></span>&#160; <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffa32d22852d39756992f87bd02def75f66">ValNode</a>,</div><div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffae21504009be26916ccdfcb5de42e3e11"> 63</a></span>&#160; <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffae21504009be26916ccdfcb5de42e3e11">ObjNode</a>,</div><div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffa5de2a8fce9a85f31818d58992b381b98"> 64</a></span>&#160; <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffa5de2a8fce9a85f31818d58992b381b98">RetNode</a>,</div><div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffa5a13a457f037424f61e74165a9cdcebf"> 65</a></span>&#160; <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffa5a13a457f037424f61e74165a9cdcebf">VarargNode</a>,</div><div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffa288e3f5d01c94d5c5d685d43f08a6c4a"> 66</a></span>&#160; <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffa288e3f5d01c94d5c5d685d43f08a6c4a">GepValNode</a>,</div><div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffaf3364b22f497146f06d1f4175a839f4f"> 67</a></span>&#160; <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffaf3364b22f497146f06d1f4175a839f4f">GepObjNode</a>,</div><div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffaabe491b0a744825250b97f407962c4a6"> 68</a></span>&#160; <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffaabe491b0a744825250b97f407962c4a6">FIObjNode</a>,</div><div class="line"><a name="l00069"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffa8299ae0d09f1b19411cb07cd79a2bae8"> 69</a></span>&#160; <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffa8299ae0d09f1b19411cb07cd79a2bae8">DummyValNode</a>,</div><div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffa1ab625ecaf51446246dcc2944d6559af"> 70</a></span>&#160; <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffa1ab625ecaf51446246dcc2944d6559af">DummyObjNode</a>,</div><div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffabf9e21e7cbec690ad318a68cd5d756dc"> 71</a></span>&#160; <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffabf9e21e7cbec690ad318a68cd5d756dc">CloneGepObjNode</a>, <span class="comment">// NOTE: only used for TBHC.</span></div><div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffa2ca0654308fd181afcb1f20519a0247a"> 72</a></span>&#160; <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffa2ca0654308fd181afcb1f20519a0247a">CloneFIObjNode</a>, <span class="comment">// NOTE: only used for TBHC.</span></div><div class="line"><a name="l00073"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffab85277a3daeecc24c99b3da86108e482"> 73</a></span>&#160; <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffab85277a3daeecc24c99b3da86108e482">CloneDummyObjNode</a> <span class="comment">// NOTE: only used for TBHC.</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;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;<span class="keyword">protected</span>:</div><div class="line"><a name="l00078"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFVar.html#a7deb494ac20ed56fca31a4f1fd92deea"> 78</a></span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* <a class="code" href="classSVF_1_1SVFVar.html#a7deb494ac20ed56fca31a4f1fd92deea">value</a>; </div><div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFVar.html#a49fd453200fcf98b4e13e3f630774401"> 79</a></span>&#160; <a class="code" href="classSVF_1_1SVFStmt.html#a47a67e8aaae7059e353841a40b89e936">SVFStmt::PAGKindToEdgeSetMapTy</a> <a class="code" href="classSVF_1_1SVFVar.html#a49fd453200fcf98b4e13e3f630774401">InEdgeKindToSetMap</a>;</div><div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFVar.html#a08ef88f516402ce512eb3cb7dab9271d"> 80</a></span>&#160; <a class="code" href="classSVF_1_1SVFStmt.html#a47a67e8aaae7059e353841a40b89e936">SVFStmt::PAGKindToEdgeSetMapTy</a> <a class="code" href="classSVF_1_1SVFVar.html#a08ef88f516402ce512eb3cb7dab9271d">OutEdgeKindToSetMap</a>;</div><div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFVar.html#afeb667f2af988479e93a6067c4e6e622"> 81</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SVFVar.html#afeb667f2af988479e93a6067c4e6e622">isTLPointer</a>; </div><div class="line"><a name="l00082"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFVar.html#a307c0f4d90308d5f77977d5635cad65d"> 82</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SVFVar.html#a307c0f4d90308d5f77977d5635cad65d">isATPointer</a>; </div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <a class="code" href="classSVF_1_1SVFVar.html#a24daf5faa4b1d159c193e61951d17414">SVFVar</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* val, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> i, <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeff">PNODEK</a> k);</div><div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFVar.html#ab76f9dea1559bd9b10b870dbc7bb454a"> 88</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="classSVF_1_1SVFVar.html#ab76f9dea1559bd9b10b870dbc7bb454a">~SVFVar</a>()</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; }</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;</div><div class="line"><a name="l00094"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFVar.html#afaa33caa8d2a306f6741d9d066243e40"> 94</a></span>&#160; <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* <a class="code" href="classSVF_1_1SVFVar.html#afaa33caa8d2a306f6741d9d066243e40">getValue</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>((this-&gt;<a class="code" href="classSVF_1_1GenericNode.html#a391e996d695b114530120723da1d003e">getNodeKind</a>() != <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffa8299ae0d09f1b19411cb07cd79a2bae8">DummyValNode</a> &amp;&amp; this-&gt;<a class="code" href="classSVF_1_1GenericNode.html#a391e996d695b114530120723da1d003e">getNodeKind</a>() != <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffa1ab625ecaf51446246dcc2944d6559af">DummyObjNode</a>) &amp;&amp; <span class="stringliteral">&quot;dummy node do not have value!&quot;</span>);</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>((<a class="code" href="classSVF_1_1SymbolTableInfo.html#a2fc4bfb83b71a4c14e16168382cb8f5d">SymbolTableInfo::isBlkObjOrConstantObj</a>(this-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>())==<span class="keyword">false</span>) &amp;&amp; <span class="stringliteral">&quot;blackhole and constant obj do not have value&quot;</span>);</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(value &amp;&amp; <span class="stringliteral">&quot;value is null (GepObjNode whose basenode is a DummyObj?)&quot;</span>);</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFVar.html#a7deb494ac20ed56fca31a4f1fd92deea">value</a>;</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; }</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;</div><div class="line"><a name="l00103"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFVar.html#adaaf24b8b6ec06476cea112533c24066"> 103</a></span>&#160; <span class="keyword">inline</span> <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a>* <a class="code" href="classSVF_1_1SVFVar.html#adaaf24b8b6ec06476cea112533c24066">getType</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <span class="keywordflow">if</span> (value)</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <span class="keywordflow">return</span> value-&gt;getType();</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; }</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;</div><div class="line"><a name="l00110"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFVar.html#a1ace69053c2c4436fd78d5624bd0086a"> 110</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SVFVar.html#a1ace69053c2c4436fd78d5624bd0086a">hasValue</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="keywordflow">return</span> value!=<span class="keyword">nullptr</span>;</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; }</div><div class="line"><a name="l00115"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFVar.html#a3b61042079a6c9dc395f38925c6a1271"> 115</a></span>&#160; <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SVFVar.html#a3b61042079a6c9dc395f38925c6a1271">isPointer</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFVar.html#a60bed99a7fd939873118698b058ccc4a">isTopLevelPtr</a>() || <a class="code" href="classSVF_1_1SVFVar.html#a482652e097c8e7921b4db2e75eb71efc">isAddressTakenPtr</a>();</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; }</div><div class="line"><a name="l00120"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFVar.html#a60bed99a7fd939873118698b058ccc4a"> 120</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SVFVar.html#a60bed99a7fd939873118698b058ccc4a">isTopLevelPtr</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFVar.html#afeb667f2af988479e93a6067c4e6e622">isTLPointer</a>;</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; }</div><div class="line"><a name="l00125"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFVar.html#a482652e097c8e7921b4db2e75eb71efc"> 125</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SVFVar.html#a482652e097c8e7921b4db2e75eb71efc">isAddressTakenPtr</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFVar.html#a307c0f4d90308d5f77977d5635cad65d">isATPointer</a>;</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; }</div><div class="line"><a name="l00131"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFVar.html#ab51b134720986c39fce7f033a49df6f0"> 131</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SVFVar.html#ab51b134720986c39fce7f033a49df6f0">isConstantData</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SVFVar.html#a1ace69053c2c4436fd78d5624bd0086a">hasValue</a>())</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a9e85d445e8b7b205134acd3874bba388">SVFUtil::isConstantData</a>(value);</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; }</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SVFVar.html#acf194658d2cbdaf3f26f2af6c325fad7">isIsolatedNode</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> std::string <a class="code" href="classSVF_1_1SVFVar.html#a54b2a5ed3ed21e54eaf04182f0338333">getValueName</a>() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;</div><div class="line"><a name="l00146"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFVar.html#a53439a493963d16e5a1b5ed36ab6d33e"> 146</a></span>&#160; <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* <a class="code" href="classSVF_1_1SVFVar.html#a53439a493963d16e5a1b5ed36ab6d33e">getFunction</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <span class="keywordflow">if</span>(value)</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; <span class="keywordflow">if</span>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a>* inst = SVFUtil::dyn_cast&lt;Instruction&gt;(value))</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <span class="keywordflow">return</span> inst-&gt;getParent()-&gt;getParent();</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a58cdfbc4160cae08745b67844ac29801">Argument</a>* arg = SVFUtil::dyn_cast&lt;Argument&gt;(value))</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <span class="keywordflow">return</span> arg-&gt;getParent();</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* fun = SVFUtil::dyn_cast&lt;Function&gt;(value))</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <span class="keywordflow">return</span> fun;</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; }</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</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="l00161"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFVar.html#a0deeb2f08b7681c63ad91a04a4b4c6c9"> 161</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="classSVF_1_1SVFStmt.html#af02857ff13e61f81d332d83eb376bdb4">SVFStmt::PAGEdgeSetTy</a>&amp; <a class="code" href="classSVF_1_1SVFVar.html#a0deeb2f08b7681c63ad91a04a4b4c6c9">getIncomingEdges</a>(<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9">SVFStmt::PEDGEK</a> kind)</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; {</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="keywordflow">return</span> InEdgeKindToSetMap[kind];</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;</div><div class="line"><a name="l00167"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFVar.html#af41e3da7f7d6918f58785446d715fec6"> 167</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="classSVF_1_1SVFStmt.html#af02857ff13e61f81d332d83eb376bdb4">SVFStmt::PAGEdgeSetTy</a>&amp; <a class="code" href="classSVF_1_1SVFVar.html#af41e3da7f7d6918f58785446d715fec6">getOutgoingEdges</a>(<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9">SVFStmt::PEDGEK</a> kind)</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; <span class="keywordflow">return</span> OutEdgeKindToSetMap[kind];</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; }</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;</div><div class="line"><a name="l00173"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFVar.html#a747b2c92c81d32fcd357e80d2d8fe7cc"> 173</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SVFVar.html#a747b2c92c81d32fcd357e80d2d8fe7cc">hasIncomingEdges</a>(<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9">SVFStmt::PEDGEK</a> kind)<span class="keyword"> const</span></div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; SVFStmt::PAGKindToEdgeSetMapTy::const_iterator it = InEdgeKindToSetMap.find(kind);</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <span class="keywordflow">if</span> (it != InEdgeKindToSetMap.end())</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="keywordflow">return</span> (!it-&gt;second.empty());</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; }</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;</div><div class="line"><a name="l00183"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFVar.html#a71e4fd7a1271a17e971ed90044e6da24"> 183</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SVFVar.html#a71e4fd7a1271a17e971ed90044e6da24">hasIncomingVariantGepEdge</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; SVFStmt::PAGKindToEdgeSetMapTy::const_iterator it = InEdgeKindToSetMap.find(<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a6b3a8902fc2aa68428e271012861a2a2">SVFStmt::VariantGep</a>);</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; <span class="keywordflow">if</span> (it != InEdgeKindToSetMap.end())</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; {</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <span class="keywordflow">return</span> (!it-&gt;second.empty());</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; }</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; }</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160;</div><div class="line"><a name="l00194"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFVar.html#ab137b1def56c6539b5048c84dfd92c7b"> 194</a></span>&#160; <span class="keyword">inline</span> SVFStmt::PAGEdgeSetTy::iterator <a class="code" href="classSVF_1_1SVFVar.html#ab137b1def56c6539b5048c84dfd92c7b">getIncomingEdgesBegin</a>(<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9">SVFStmt::PEDGEK</a> kind)<span class="keyword"> const</span></div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; SVFStmt::PAGKindToEdgeSetMapTy::const_iterator it = InEdgeKindToSetMap.find(kind);</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(it!=InEdgeKindToSetMap.end() &amp;&amp; <span class="stringliteral">&quot;The node does not have such kind of edge&quot;</span>);</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; <span class="keywordflow">return</span> it-&gt;second.begin();</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; }</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;</div><div class="line"><a name="l00202"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFVar.html#ab6cfd409bdb445cc1a7e50ed958b7d25"> 202</a></span>&#160; <span class="keyword">inline</span> SVFStmt::PAGEdgeSetTy::iterator <a class="code" href="classSVF_1_1SVFVar.html#ab6cfd409bdb445cc1a7e50ed958b7d25">getIncomingEdgesEnd</a>(<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9">SVFStmt::PEDGEK</a> kind)<span class="keyword"> const</span></div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; SVFStmt::PAGKindToEdgeSetMapTy::const_iterator it = InEdgeKindToSetMap.find(kind);</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(it!=InEdgeKindToSetMap.end() &amp;&amp; <span class="stringliteral">&quot;The node does not have such kind of edge&quot;</span>);</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; <span class="keywordflow">return</span> it-&gt;second.end();</div><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;</div><div class="line"><a name="l00210"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFVar.html#a9b00f9b5f8ad2422162f4396e2d8fa42"> 210</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SVFVar.html#a9b00f9b5f8ad2422162f4396e2d8fa42">hasOutgoingEdges</a>(<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9">SVFStmt::PEDGEK</a> kind)<span class="keyword"> const</span></div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; SVFStmt::PAGKindToEdgeSetMapTy::const_iterator it = OutEdgeKindToSetMap.find(kind);</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; <span class="keywordflow">if</span> (it != OutEdgeKindToSetMap.end())</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; <span class="keywordflow">return</span> (!it-&gt;second.empty());</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; }</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160;</div><div class="line"><a name="l00220"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFVar.html#adb1f35a6f8db19c48cf7fd6c8f4a8ff3"> 220</a></span>&#160; <span class="keyword">inline</span> SVFStmt::PAGEdgeSetTy::iterator <a class="code" href="classSVF_1_1SVFVar.html#adb1f35a6f8db19c48cf7fd6c8f4a8ff3">getOutgoingEdgesBegin</a>(<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9">SVFStmt::PEDGEK</a> kind)<span class="keyword"> const</span></div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; SVFStmt::PAGKindToEdgeSetMapTy::const_iterator it = OutEdgeKindToSetMap.find(kind);</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(it!=OutEdgeKindToSetMap.end() &amp;&amp; <span class="stringliteral">&quot;The node does not have such kind of edge&quot;</span>);</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; <span class="keywordflow">return</span> it-&gt;second.begin();</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; }</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160;</div><div class="line"><a name="l00228"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFVar.html#adec782d2f9d055b0dbcb56f511e75c24"> 228</a></span>&#160; <span class="keyword">inline</span> SVFStmt::PAGEdgeSetTy::iterator <a class="code" href="classSVF_1_1SVFVar.html#adec782d2f9d055b0dbcb56f511e75c24">getOutgoingEdgesEnd</a>(<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9">SVFStmt::PEDGEK</a> kind)<span class="keyword"> const</span></div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; SVFStmt::PAGKindToEdgeSetMapTy::const_iterator it = OutEdgeKindToSetMap.find(kind);</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(it!=OutEdgeKindToSetMap.end() &amp;&amp; <span class="stringliteral">&quot;The node does not have such kind of edge&quot;</span>);</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; <span class="keywordflow">return</span> it-&gt;second.end();</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; }</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160;</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160;</div><div class="line"><a name="l00238"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFVar.html#a9376133075b0d44ff09876af933c8618"> 238</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFVar.html#a9376133075b0d44ff09876af933c8618">addInEdge</a>(<a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a>* inEdge)</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; {</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; <a class="code" href="classSVF_1_1GenericNode.html#a363b90ab02cce2ebc3ede8e5b7cc141c">GNodeK</a> kind = inEdge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>();</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; InEdgeKindToSetMap[kind].insert(inEdge);</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; <a class="code" href="classSVF_1_1GenericNode.html#a93d217b0c9fd8008a2989ca2b4f3fbfb">addIncomingEdge</a>(inEdge);</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; }</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160;</div><div class="line"><a name="l00245"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFVar.html#a21a44c7a30e4e3743f6c3186fd7dbe8f"> 245</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFVar.html#a21a44c7a30e4e3743f6c3186fd7dbe8f">addOutEdge</a>(<a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a>* outEdge)</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; {</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; <a class="code" href="classSVF_1_1GenericNode.html#a363b90ab02cce2ebc3ede8e5b7cc141c">GNodeK</a> kind = outEdge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>();</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; OutEdgeKindToSetMap[kind].insert(outEdge);</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; <a class="code" href="classSVF_1_1GenericNode.html#ae74283fbc788665296a69e56f334557b">addOutgoingEdge</a>(outEdge);</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; }</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160;</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> std::string <a class="code" href="classSVF_1_1SVFVar.html#ada932ef2ae0a3e712174df479c35b0dd">toString</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160;</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFVar.html#aa34b2230655db9c4195e44e1c437bbc6">dump</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160;</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160;</div><div class="line"><a name="l00260"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFVar.html#a985930fc3a53ae8ff5fcb07d378f354b"> 260</a></span>&#160; <span class="keyword">friend</span> <a class="code" href="namespaceSVF.html#a424cc053c29ad7303699c529d1a2cc71">raw_ostream</a>&amp; <a class="code" href="classSVF_1_1SVFVar.html#a985930fc3a53ae8ff5fcb07d378f354b">operator&lt;&lt; </a>(<a class="code" href="namespaceSVF.html#a424cc053c29ad7303699c529d1a2cc71">raw_ostream</a> &amp;o, <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a> &amp;node)</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; {</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; o &lt;&lt; node.<a class="code" href="classSVF_1_1SVFVar.html#ada932ef2ae0a3e712174df479c35b0dd">toString</a>();</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; <span class="keywordflow">return</span> o;</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; }</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160;};</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160;</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160;</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160;</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160;<span class="comment"> * Value(Pointer) node</span></div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00273"></a><span class="lineno"><a class="line" href="classSVF_1_1ValPN.html"> 273</a></span>&#160;<span class="keyword">class </span><a class="code" href="classSVF_1_1ValPN.html">ValPN</a>: <span class="keyword">public</span> <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a></div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160;{</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160;</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160;</div><div class="line"><a name="l00279"></a><span class="lineno"><a class="line" href="classSVF_1_1ValPN.html#a18a9bf26bb76893f0530d484dd0861ae"> 279</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ValPN.html#a18a9bf26bb76893f0530d484dd0861ae">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1ValPN.html">ValPN</a> *)</div><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 class="line"><a name="l00283"></a><span class="lineno"><a class="line" href="classSVF_1_1ValPN.html#ac025b26e23ae0df6727963286309744e"> 283</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ValPN.html#ac025b26e23ae0df6727963286309744e">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a> *node)</div><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> node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#a391e996d695b114530120723da1d003e">getNodeKind</a>() == <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffa32d22852d39756992f87bd02def75f66">SVFVar::ValNode</a> ||</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#a391e996d695b114530120723da1d003e">getNodeKind</a>() == <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffa288e3f5d01c94d5c5d685d43f08a6c4a">SVFVar::GepValNode</a> ||</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#a391e996d695b114530120723da1d003e">getNodeKind</a>() == <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffa8299ae0d09f1b19411cb07cd79a2bae8">SVFVar::DummyValNode</a>;</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; }</div><div class="line"><a name="l00289"></a><span class="lineno"><a class="line" href="classSVF_1_1ValPN.html#a530cc26cbb3562c951575e8437c5ca22"> 289</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ValPN.html#a530cc26cbb3562c951575e8437c5ca22">classof</a>(<span class="keyword">const</span> GenericPAGNodeTy *node)</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; {</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; <span class="keywordflow">return</span> node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#a391e996d695b114530120723da1d003e">getNodeKind</a>() == <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffa32d22852d39756992f87bd02def75f66">SVFVar::ValNode</a> ||</div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#a391e996d695b114530120723da1d003e">getNodeKind</a>() == <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffa288e3f5d01c94d5c5d685d43f08a6c4a">SVFVar::GepValNode</a> ||</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#a391e996d695b114530120723da1d003e">getNodeKind</a>() == <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffa8299ae0d09f1b19411cb07cd79a2bae8">SVFVar::DummyValNode</a>;</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; }</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160;</div><div class="line"><a name="l00298"></a><span class="lineno"><a class="line" href="classSVF_1_1ValPN.html#a1123ae17ef8497f3baa73b15d19a6cf4"> 298</a></span>&#160; <a class="code" href="classSVF_1_1ValPN.html#a1123ae17ef8497f3baa73b15d19a6cf4">ValPN</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* val, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> i, <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeff">PNODEK</a> ty = <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffa32d22852d39756992f87bd02def75f66">ValNode</a>) :</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>(val, i, ty)</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; {</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; }</div><div class="line"><a name="l00303"></a><span class="lineno"><a class="line" href="classSVF_1_1ValPN.html#a6894944b680cfd7a45b1582169517d54"> 303</a></span>&#160; <span class="keyword">inline</span> <span class="keyword">const</span> std::string <a class="code" href="classSVF_1_1ValPN.html#a6894944b680cfd7a45b1582169517d54">getValueName</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SVFVar.html#a7deb494ac20ed56fca31a4f1fd92deea">value</a> &amp;&amp; <a class="code" href="classSVF_1_1SVFVar.html#a7deb494ac20ed56fca31a4f1fd92deea">value</a>-&gt;hasName())</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFVar.html#a7deb494ac20ed56fca31a4f1fd92deea">value</a>-&gt;getName().str();</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;&quot;</span>;</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; }</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160;</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> std::string <a class="code" href="classSVF_1_1SVFVar.html#ada932ef2ae0a3e712174df479c35b0dd">toString</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160;};</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160;</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160;</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160;<span class="comment"> * Memory Object node</span></div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00317"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjPN.html"> 317</a></span>&#160;<span class="keyword">class </span><a class="code" href="classSVF_1_1ObjPN.html">ObjPN</a>: <span class="keyword">public</span> <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a></div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160;{</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160;</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160;<span class="keyword">protected</span>:</div><div class="line"><a name="l00321"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjPN.html#a7ec3165f6b61b089e25447f55ebf86a8"> 321</a></span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1MemObj.html">MemObj</a>* <a class="code" href="classSVF_1_1ObjPN.html#a7ec3165f6b61b089e25447f55ebf86a8">mem</a>; </div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; <a class="code" href="classSVF_1_1ObjPN.html">ObjPN</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* val, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> i, <span class="keyword">const</span> <a class="code" href="classSVF_1_1MemObj.html">MemObj</a>* m, <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeff">PNODEK</a> ty = <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffae21504009be26916ccdfcb5de42e3e11">ObjNode</a>) :</div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>(val, i, ty), mem(m)</div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; {</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; }</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160;</div><div class="line"><a name="l00330"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjPN.html#a5e7e7b1a2d78146e50ec36d99b0a3608"> 330</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ObjPN.html#a5e7e7b1a2d78146e50ec36d99b0a3608">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1ObjPN.html">ObjPN</a> *)</div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160; {</div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; }</div><div class="line"><a name="l00334"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjPN.html#a598c5c77468386ae1044a30af6eb4eef"> 334</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ObjPN.html#a598c5c77468386ae1044a30af6eb4eef">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a> *node)</div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; {</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; <span class="keywordflow">return</span> node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#a391e996d695b114530120723da1d003e">getNodeKind</a>() == <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffae21504009be26916ccdfcb5de42e3e11">SVFVar::ObjNode</a> ||</div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#a391e996d695b114530120723da1d003e">getNodeKind</a>() == <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffaf3364b22f497146f06d1f4175a839f4f">SVFVar::GepObjNode</a> ||</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#a391e996d695b114530120723da1d003e">getNodeKind</a>() == <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffaabe491b0a744825250b97f407962c4a6">SVFVar::FIObjNode</a> ||</div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#a391e996d695b114530120723da1d003e">getNodeKind</a>() == <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffa1ab625ecaf51446246dcc2944d6559af">SVFVar::DummyObjNode</a> ||</div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#a391e996d695b114530120723da1d003e">getNodeKind</a>() == <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffabf9e21e7cbec690ad318a68cd5d756dc">SVFVar::CloneGepObjNode</a> ||</div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#a391e996d695b114530120723da1d003e">getNodeKind</a>() == <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffa2ca0654308fd181afcb1f20519a0247a">SVFVar::CloneFIObjNode</a> ||</div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160; node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#a391e996d695b114530120723da1d003e">getNodeKind</a>() == <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffab85277a3daeecc24c99b3da86108e482">SVFVar::CloneDummyObjNode</a>;</div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160; }</div><div class="line"><a name="l00344"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjPN.html#a3b94e2fc7b83b588b27d5bf33ec72b8f"> 344</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ObjPN.html#a3b94e2fc7b83b588b27d5bf33ec72b8f">classof</a>(<span class="keyword">const</span> GenericPAGNodeTy *node)</div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; {</div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160; <span class="keywordflow">return</span> node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#a391e996d695b114530120723da1d003e">getNodeKind</a>() == <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffae21504009be26916ccdfcb5de42e3e11">SVFVar::ObjNode</a> ||</div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160; node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#a391e996d695b114530120723da1d003e">getNodeKind</a>() == <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffaf3364b22f497146f06d1f4175a839f4f">SVFVar::GepObjNode</a> ||</div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160; node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#a391e996d695b114530120723da1d003e">getNodeKind</a>() == <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffaabe491b0a744825250b97f407962c4a6">SVFVar::FIObjNode</a> ||</div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160; node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#a391e996d695b114530120723da1d003e">getNodeKind</a>() == <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffa1ab625ecaf51446246dcc2944d6559af">SVFVar::DummyObjNode</a> ||</div><div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#a391e996d695b114530120723da1d003e">getNodeKind</a>() == <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffabf9e21e7cbec690ad318a68cd5d756dc">SVFVar::CloneGepObjNode</a> ||</div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#a391e996d695b114530120723da1d003e">getNodeKind</a>() == <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffa2ca0654308fd181afcb1f20519a0247a">SVFVar::CloneFIObjNode</a> ||</div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#a391e996d695b114530120723da1d003e">getNodeKind</a>() == <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffab85277a3daeecc24c99b3da86108e482">SVFVar::CloneDummyObjNode</a>;</div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160; }</div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160;</div><div class="line"><a name="l00357"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjPN.html#a63ee5624271a63c2dc4f7f3ed2dcefdf"> 357</a></span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1MemObj.html">MemObj</a>* <a class="code" href="classSVF_1_1ObjPN.html#a63ee5624271a63c2dc4f7f3ed2dcefdf">getMemObj</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160; <span class="keywordflow">return</span> mem;</div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; }</div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160;</div><div class="line"><a name="l00363"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjPN.html#a7500f73cb499a5aa0d828075b179b709"> 363</a></span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> std::string <a class="code" href="classSVF_1_1ObjPN.html#a7500f73cb499a5aa0d828075b179b709">getValueName</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SVFVar.html#a7deb494ac20ed56fca31a4f1fd92deea">value</a> &amp;&amp; <a class="code" href="classSVF_1_1SVFVar.html#a7deb494ac20ed56fca31a4f1fd92deea">value</a>-&gt;hasName())</div><div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFVar.html#a7deb494ac20ed56fca31a4f1fd92deea">value</a>-&gt;getName().str();</div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;&quot;</span>;</div><div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; }</div><div class="line"><a name="l00370"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjPN.html#ab414eff6a3057b570109081a93fa6539"> 370</a></span>&#160; <span class="keyword">inline</span> <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">llvm::Type</a>* <a class="code" href="classSVF_1_1ObjPN.html#ab414eff6a3057b570109081a93fa6539">getType</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160; <span class="keywordflow">return</span> mem-&gt;<a class="code" href="classSVF_1_1MemObj.html#aa4fa7a1b86d66692ffffeaee0e187216">getType</a>();</div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160; }</div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160;</div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> std::string <a class="code" href="classSVF_1_1SVFVar.html#ada932ef2ae0a3e712174df479c35b0dd">toString</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160;};</div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160;</div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160;</div><div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160;<span class="comment"> * Gep Value (Pointer) node, this node can be dynamic generated for field sensitive analysis</span></div><div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160;<span class="comment"> * e.g. memcpy, temp gep value node needs to be created</span></div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160;<span class="comment"> * Each Gep Value node is connected to base value node via gep edge</span></div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00384"></a><span class="lineno"><a class="line" href="classSVF_1_1GepValPN.html"> 384</a></span>&#160;<span class="keyword">class </span><a class="code" href="classSVF_1_1GepValPN.html">GepValPN</a>: <span class="keyword">public</span> <a class="code" href="classSVF_1_1ValPN.html">ValPN</a></div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160;{</div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160;</div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00388"></a><span class="lineno"><a class="line" href="classSVF_1_1GepValPN.html#afb8bad0c8d61cd59410d99a405dfa9e8"> 388</a></span>&#160; <a class="code" href="classSVF_1_1LocationSet.html">LocationSet</a> <a class="code" href="classSVF_1_1GepValPN.html#afb8bad0c8d61cd59410d99a405dfa9e8">ls</a>; <span class="comment">// LocationSet</span></div><div class="line"><a name="l00389"></a><span class="lineno"><a class="line" href="classSVF_1_1GepValPN.html#a41d083e2ed08dd926a8228df5c42a4d7"> 389</a></span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a> *<a class="code" href="classSVF_1_1GepValPN.html#a41d083e2ed08dd926a8228df5c42a4d7">gepValType</a>;</div><div class="line"><a name="l00390"></a><span class="lineno"><a class="line" href="classSVF_1_1GepValPN.html#a91f678b8dcbac8cc21424074de492569"> 390</a></span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1GepValPN.html#a91f678b8dcbac8cc21424074de492569">fieldIdx</a>;</div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160;</div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160;</div><div class="line"><a name="l00395"></a><span class="lineno"><a class="line" href="classSVF_1_1GepValPN.html#a795658606384952f8e648e154a06700a"> 395</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1GepValPN.html#a795658606384952f8e648e154a06700a">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1GepValPN.html">GepValPN</a> *)</div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160; {</div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160; }</div><div class="line"><a name="l00399"></a><span class="lineno"><a class="line" href="classSVF_1_1GepValPN.html#a9d9febd06c0802c33eab574458e9e771"> 399</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1GepValPN.html#a9d9febd06c0802c33eab574458e9e771">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1ValPN.html">ValPN</a> * node)</div><div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160; {</div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160; <span class="keywordflow">return</span> node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#a391e996d695b114530120723da1d003e">getNodeKind</a>() == <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffa288e3f5d01c94d5c5d685d43f08a6c4a">SVFVar::GepValNode</a>;</div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160; }</div><div class="line"><a name="l00403"></a><span class="lineno"><a class="line" href="classSVF_1_1GepValPN.html#a32ea9876708addd55d43200a67e2fa90"> 403</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1GepValPN.html#a32ea9876708addd55d43200a67e2fa90">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a> *node)</div><div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160; {</div><div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160; <span class="keywordflow">return</span> node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#a391e996d695b114530120723da1d003e">getNodeKind</a>() == <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffa288e3f5d01c94d5c5d685d43f08a6c4a">SVFVar::GepValNode</a>;</div><div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160; }</div><div class="line"><a name="l00407"></a><span class="lineno"><a class="line" href="classSVF_1_1GepValPN.html#a99654aefb5ebc08917a2fb09858ae340"> 407</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1GepValPN.html#a99654aefb5ebc08917a2fb09858ae340">classof</a>(<span class="keyword">const</span> GenericPAGNodeTy *node)</div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160; {</div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160; <span class="keywordflow">return</span> node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#a391e996d695b114530120723da1d003e">getNodeKind</a>() == <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffa288e3f5d01c94d5c5d685d43f08a6c4a">SVFVar::GepValNode</a>;</div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160; }</div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160;</div><div class="line"><a name="l00414"></a><span class="lineno"><a class="line" href="classSVF_1_1GepValPN.html#a02df9e70d4daf4eefaa63b0d26cd06ce"> 414</a></span>&#160; <a class="code" href="classSVF_1_1GepValPN.html#a02df9e70d4daf4eefaa63b0d26cd06ce">GepValPN</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* val, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> i, <span class="keyword">const</span> <a class="code" href="classSVF_1_1LocationSet.html">LocationSet</a>&amp; l, <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a> *ty, <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> idx) :</div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; <a class="code" href="classSVF_1_1ValPN.html">ValPN</a>(val, i, <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffa288e3f5d01c94d5c5d685d43f08a6c4a">GepValNode</a>), ls(l), gepValType(ty), fieldIdx(idx)</div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; {</div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; }</div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160;</div><div class="line"><a name="l00420"></a><span class="lineno"><a class="line" href="classSVF_1_1GepValPN.html#a0f8a17f7624765228e44456d34897d5a"> 420</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1GepValPN.html#a0f8a17f7624765228e44456d34897d5a">getOffset</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160; <span class="keywordflow">return</span> ls.<a class="code" href="classSVF_1_1LocationSet.html#ab85c3707152e03722bd631b2525f223e">getOffset</a>();</div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160; }</div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160;</div><div class="line"><a name="l00426"></a><span class="lineno"><a class="line" href="classSVF_1_1GepValPN.html#a2ca8cf54bf67f76db2acd05cf7dcf1d1"> 426</a></span>&#160; <span class="keyword">inline</span> <span class="keyword">const</span> std::string <a class="code" href="classSVF_1_1GepValPN.html#a2ca8cf54bf67f76db2acd05cf7dcf1d1">getValueName</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SVFVar.html#a7deb494ac20ed56fca31a4f1fd92deea">value</a> &amp;&amp; <a class="code" href="classSVF_1_1SVFVar.html#a7deb494ac20ed56fca31a4f1fd92deea">value</a>-&gt;hasName())</div><div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFVar.html#a7deb494ac20ed56fca31a4f1fd92deea">value</a>-&gt;getName().str() + <span class="stringliteral">&quot;_&quot;</span> + llvm::utostr(getOffset());</div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;offset_&quot;</span> + llvm::utostr(getOffset());</div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160; }</div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160;</div><div class="line"><a name="l00433"></a><span class="lineno"><a class="line" href="classSVF_1_1GepValPN.html#aae597b40c984a5a0226d630f7564cefb"> 433</a></span>&#160; <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a>* <a class="code" href="classSVF_1_1GepValPN.html#aae597b40c984a5a0226d630f7564cefb">getType</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160; <span class="keywordflow">return</span> gepValType;</div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160; }</div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160;</div><div class="line"><a name="l00438"></a><span class="lineno"><a class="line" href="classSVF_1_1GepValPN.html#ab61c3b510838c4654e880e306f3af881"> 438</a></span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1GepValPN.html#ab61c3b510838c4654e880e306f3af881">getFieldIdx</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160; <span class="keywordflow">return</span> fieldIdx;</div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160; }</div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160;</div><div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> std::string <a class="code" href="classSVF_1_1SVFVar.html#ada932ef2ae0a3e712174df479c35b0dd">toString</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160;};</div><div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160;</div><div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160;</div><div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160;<span class="comment"> * Gep Obj node, this is dynamic generated for field sensitive analysis</span></div><div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160;<span class="comment"> * Each gep obj node is one field of a MemObj (base)</span></div><div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00451"></a><span class="lineno"><a class="line" href="classSVF_1_1GepObjPN.html"> 451</a></span>&#160;<span class="keyword">class </span><a class="code" href="classSVF_1_1GepObjPN.html">GepObjPN</a>: <span class="keyword">public</span> <a class="code" href="classSVF_1_1ObjPN.html">ObjPN</a></div><div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160;{</div><div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00454"></a><span class="lineno"><a class="line" href="classSVF_1_1GepObjPN.html#ab7a3961b0a3f6a8cc89c3cd81168180b"> 454</a></span>&#160; <a class="code" href="classSVF_1_1LocationSet.html">LocationSet</a> <a class="code" href="classSVF_1_1GepObjPN.html#ab7a3961b0a3f6a8cc89c3cd81168180b">ls</a>;</div><div class="line"><a name="l00455"></a><span class="lineno"><a class="line" href="classSVF_1_1GepObjPN.html#ae67e495253fc881c24ef21e1f87e2fa6"> 455</a></span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> base = 0;</div><div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160;</div><div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160;</div><div class="line"><a name="l00460"></a><span class="lineno"><a class="line" href="classSVF_1_1GepObjPN.html#a3962464274d0c15ceb0206ebf6fa2b55"> 460</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1GepObjPN.html#a3962464274d0c15ceb0206ebf6fa2b55">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1GepObjPN.html">GepObjPN</a> *)</div><div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160; {</div><div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160; }</div><div class="line"><a name="l00464"></a><span class="lineno"><a class="line" href="classSVF_1_1GepObjPN.html#a71f93295b7052e2098dd15f76c1aaa8c"> 464</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1GepObjPN.html#a71f93295b7052e2098dd15f76c1aaa8c">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1ObjPN.html">ObjPN</a> * node)</div><div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160; {</div><div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160; <span class="keywordflow">return</span> node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#a391e996d695b114530120723da1d003e">getNodeKind</a>() == <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffaf3364b22f497146f06d1f4175a839f4f">SVFVar::GepObjNode</a></div><div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160; || node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#a391e996d695b114530120723da1d003e">getNodeKind</a>() == <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffabf9e21e7cbec690ad318a68cd5d756dc">SVFVar::CloneGepObjNode</a>;</div><div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160; }</div><div class="line"><a name="l00469"></a><span class="lineno"><a class="line" href="classSVF_1_1GepObjPN.html#acc3f9fa7564f419bf6a4ed75cf103eb1"> 469</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1GepObjPN.html#acc3f9fa7564f419bf6a4ed75cf103eb1">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a> *node)</div><div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160; {</div><div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160; <span class="keywordflow">return</span> node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#a391e996d695b114530120723da1d003e">getNodeKind</a>() == <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffaf3364b22f497146f06d1f4175a839f4f">SVFVar::GepObjNode</a></div><div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160; || node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#a391e996d695b114530120723da1d003e">getNodeKind</a>() == <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffabf9e21e7cbec690ad318a68cd5d756dc">SVFVar::CloneGepObjNode</a>;</div><div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160; }</div><div class="line"><a name="l00474"></a><span class="lineno"><a class="line" href="classSVF_1_1GepObjPN.html#aff84e3e6702f0e04ef41aae90d297009"> 474</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1GepObjPN.html#aff84e3e6702f0e04ef41aae90d297009">classof</a>(<span class="keyword">const</span> GenericPAGNodeTy *node)</div><div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160; {</div><div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160; <span class="keywordflow">return</span> node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#a391e996d695b114530120723da1d003e">getNodeKind</a>() == <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffaf3364b22f497146f06d1f4175a839f4f">SVFVar::GepObjNode</a></div><div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160; || node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#a391e996d695b114530120723da1d003e">getNodeKind</a>() == <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffabf9e21e7cbec690ad318a68cd5d756dc">SVFVar::CloneGepObjNode</a>;</div><div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160; }</div><div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160;</div><div class="line"><a name="l00482"></a><span class="lineno"><a class="line" href="classSVF_1_1GepObjPN.html#aadf56cdc45296514f142306e2556dcc1"> 482</a></span>&#160; <a class="code" href="classSVF_1_1GepObjPN.html#aadf56cdc45296514f142306e2556dcc1">GepObjPN</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1MemObj.html">MemObj</a>* mem, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> i, <span class="keyword">const</span> <a class="code" href="classSVF_1_1LocationSet.html">LocationSet</a>&amp; l, <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeff">PNODEK</a> ty = <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffaf3364b22f497146f06d1f4175a839f4f">GepObjNode</a>) :</div><div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160; <a class="code" href="classSVF_1_1ObjPN.html">ObjPN</a>(mem-&gt;<a class="code" href="classSVF_1_1SVFVar.html#afaa33caa8d2a306f6741d9d066243e40">getValue</a>(), i, mem, ty), ls(l)</div><div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160; {</div><div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160; base = mem-&gt;<a class="code" href="classSVF_1_1MemObj.html#a3ab6f65ffbf6442daac4d3f70f2d3cb1">getId</a>();</div><div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160; }</div><div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160;</div><div class="line"><a name="l00489"></a><span class="lineno"><a class="line" href="classSVF_1_1GepObjPN.html#aeb05e3a512e89c7af36c675e0efeec7e"> 489</a></span>&#160; <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1LocationSet.html">LocationSet</a>&amp; <a class="code" href="classSVF_1_1GepObjPN.html#aeb05e3a512e89c7af36c675e0efeec7e">getLocationSet</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160; <span class="keywordflow">return</span> ls;</div><div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160; }</div><div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160;</div><div class="line"><a name="l00495"></a><span class="lineno"><a class="line" href="classSVF_1_1GepObjPN.html#acf31acd60973d04b047fbc2e8d4ad4bf"> 495</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1GepObjPN.html#acf31acd60973d04b047fbc2e8d4ad4bf">setBaseNode</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> base)</div><div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160; {</div><div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160; this-&gt;base = base;</div><div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160; }</div><div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160;</div><div class="line"><a name="l00501"></a><span class="lineno"><a class="line" href="classSVF_1_1GepObjPN.html#aefa0383972a9c68e487ccf989a7e500c"> 501</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1GepObjPN.html#aefa0383972a9c68e487ccf989a7e500c">getBaseNode</a>(<span class="keywordtype">void</span>)<span class="keyword"> const</span></div><div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160; <span class="keywordflow">return</span> base;</div><div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160; }</div><div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160;</div><div class="line"><a name="l00507"></a><span class="lineno"><a class="line" href="classSVF_1_1GepObjPN.html#a685d6a3464890ba08d8d018ce2e8e3ff"> 507</a></span>&#160; <span class="keyword">inline</span> <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">llvm::Type</a>* <a class="code" href="classSVF_1_1GepObjPN.html#a685d6a3464890ba08d8d018ce2e8e3ff">getType</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#a267169023fc4f8dd66b145f7231fec11">SymbolTableInfo::SymbolInfo</a>()-&gt;<a class="code" href="classSVF_1_1SymbolTableInfo.html#a573bd5208467b2f905f5b2b1684feac8">getOrigSubTypeWithByteOffset</a>(mem-&gt;getType(), ls.<a class="code" href="classSVF_1_1LocationSet.html#a5322dcda48d6980c3f7aafa169fcd77d">getByteOffset</a>());</div><div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160; }</div><div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160;</div><div class="line"><a name="l00513"></a><span class="lineno"><a class="line" href="classSVF_1_1GepObjPN.html#a498b7ee3cf8d26fa18062f2bae0749c5"> 513</a></span>&#160; <span class="keyword">inline</span> <span class="keyword">const</span> std::string <a class="code" href="classSVF_1_1GepObjPN.html#a498b7ee3cf8d26fa18062f2bae0749c5">getValueName</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00515"></a><span class="lineno"> 515</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SVFVar.html#a7deb494ac20ed56fca31a4f1fd92deea">value</a> &amp;&amp; <a class="code" href="classSVF_1_1SVFVar.html#a7deb494ac20ed56fca31a4f1fd92deea">value</a>-&gt;hasName())</div><div class="line"><a name="l00516"></a><span class="lineno"> 516</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFVar.html#a7deb494ac20ed56fca31a4f1fd92deea">value</a>-&gt;getName().str() + <span class="stringliteral">&quot;_&quot;</span> + llvm::itostr(ls.<a class="code" href="classSVF_1_1LocationSet.html#ab85c3707152e03722bd631b2525f223e">getOffset</a>());</div><div class="line"><a name="l00517"></a><span class="lineno"> 517</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;offset_&quot;</span> + llvm::itostr(ls.<a class="code" href="classSVF_1_1LocationSet.html#ab85c3707152e03722bd631b2525f223e">getOffset</a>());</div><div class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160; }</div><div class="line"><a name="l00519"></a><span class="lineno"> 519</span>&#160;</div><div class="line"><a name="l00520"></a><span class="lineno"> 520</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> std::string <a class="code" href="classSVF_1_1SVFVar.html#ada932ef2ae0a3e712174df479c35b0dd">toString</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00521"></a><span class="lineno"> 521</span>&#160;};</div><div class="line"><a name="l00522"></a><span class="lineno"> 522</span>&#160;</div><div class="line"><a name="l00523"></a><span class="lineno"> 523</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00524"></a><span class="lineno"> 524</span>&#160;<span class="comment"> * Field-insensitive Gep Obj node, this is dynamic generated for field sensitive analysis</span></div><div class="line"><a name="l00525"></a><span class="lineno"> 525</span>&#160;<span class="comment"> * Each field-insensitive gep obj node represents all fields of a MemObj (base)</span></div><div class="line"><a name="l00526"></a><span class="lineno"> 526</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00527"></a><span class="lineno"><a class="line" href="classSVF_1_1FIObjPN.html"> 527</a></span>&#160;<span class="keyword">class </span><a class="code" href="classSVF_1_1FIObjPN.html">FIObjPN</a>: <span class="keyword">public</span> <a class="code" href="classSVF_1_1ObjPN.html">ObjPN</a></div><div class="line"><a name="l00528"></a><span class="lineno"> 528</span>&#160;{</div><div class="line"><a name="l00529"></a><span class="lineno"> 529</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00530"></a><span class="lineno"> 530</span>&#160;</div><div class="line"><a name="l00532"></a><span class="lineno"> 532</span>&#160;</div><div class="line"><a name="l00533"></a><span class="lineno"><a class="line" href="classSVF_1_1FIObjPN.html#a2c26eb5e25b2ff2f497e9ee40f84f582"> 533</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1FIObjPN.html#a2c26eb5e25b2ff2f497e9ee40f84f582">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1FIObjPN.html">FIObjPN</a> *)</div><div class="line"><a name="l00534"></a><span class="lineno"> 534</span>&#160; {</div><div class="line"><a name="l00535"></a><span class="lineno"> 535</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00536"></a><span class="lineno"> 536</span>&#160; }</div><div class="line"><a name="l00537"></a><span class="lineno"><a class="line" href="classSVF_1_1FIObjPN.html#af7c4e765ec13f3a368d155bd27667832"> 537</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1FIObjPN.html#af7c4e765ec13f3a368d155bd27667832">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1ObjPN.html">ObjPN</a> * node)</div><div class="line"><a name="l00538"></a><span class="lineno"> 538</span>&#160; {</div><div class="line"><a name="l00539"></a><span class="lineno"> 539</span>&#160; <span class="keywordflow">return</span> node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#a391e996d695b114530120723da1d003e">getNodeKind</a>() == <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffaabe491b0a744825250b97f407962c4a6">SVFVar::FIObjNode</a></div><div class="line"><a name="l00540"></a><span class="lineno"> 540</span>&#160; || node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#a391e996d695b114530120723da1d003e">getNodeKind</a>() == <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffa2ca0654308fd181afcb1f20519a0247a">SVFVar::CloneFIObjNode</a>;</div><div class="line"><a name="l00541"></a><span class="lineno"> 541</span>&#160; }</div><div class="line"><a name="l00542"></a><span class="lineno"><a class="line" href="classSVF_1_1FIObjPN.html#a1245f021c468c46d6136599455350b85"> 542</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1FIObjPN.html#a1245f021c468c46d6136599455350b85">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a> *node)</div><div class="line"><a name="l00543"></a><span class="lineno"> 543</span>&#160; {</div><div class="line"><a name="l00544"></a><span class="lineno"> 544</span>&#160; <span class="keywordflow">return</span> node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#a391e996d695b114530120723da1d003e">getNodeKind</a>() == <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffaabe491b0a744825250b97f407962c4a6">SVFVar::FIObjNode</a></div><div class="line"><a name="l00545"></a><span class="lineno"> 545</span>&#160; || node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#a391e996d695b114530120723da1d003e">getNodeKind</a>() == <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffa2ca0654308fd181afcb1f20519a0247a">SVFVar::CloneFIObjNode</a>;</div><div class="line"><a name="l00546"></a><span class="lineno"> 546</span>&#160; }</div><div class="line"><a name="l00547"></a><span class="lineno"><a class="line" href="classSVF_1_1FIObjPN.html#a1014cd45e24e44873acd1d76db92d056"> 547</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1FIObjPN.html#a1014cd45e24e44873acd1d76db92d056">classof</a>(<span class="keyword">const</span> GenericPAGNodeTy *node)</div><div class="line"><a name="l00548"></a><span class="lineno"> 548</span>&#160; {</div><div class="line"><a name="l00549"></a><span class="lineno"> 549</span>&#160; <span class="keywordflow">return</span> node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#a391e996d695b114530120723da1d003e">getNodeKind</a>() == <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffaabe491b0a744825250b97f407962c4a6">SVFVar::FIObjNode</a></div><div class="line"><a name="l00550"></a><span class="lineno"> 550</span>&#160; || node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#a391e996d695b114530120723da1d003e">getNodeKind</a>() == <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffa2ca0654308fd181afcb1f20519a0247a">SVFVar::CloneFIObjNode</a>;</div><div class="line"><a name="l00551"></a><span class="lineno"> 551</span>&#160; }</div><div class="line"><a name="l00553"></a><span class="lineno"> 553</span>&#160;</div><div class="line"><a name="l00555"></a><span class="lineno"><a class="line" href="classSVF_1_1FIObjPN.html#a3fe03b2726ee05df4339737c90d430bb"> 555</a></span>&#160; <a class="code" href="classSVF_1_1FIObjPN.html#a3fe03b2726ee05df4339737c90d430bb">FIObjPN</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* val, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> i, <span class="keyword">const</span> <a class="code" href="classSVF_1_1MemObj.html">MemObj</a>* mem, <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeff">PNODEK</a> ty = <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffaabe491b0a744825250b97f407962c4a6">FIObjNode</a>) :</div><div class="line"><a name="l00556"></a><span class="lineno"> 556</span>&#160; <a class="code" href="classSVF_1_1ObjPN.html">ObjPN</a>(val, i, mem, ty)</div><div class="line"><a name="l00557"></a><span class="lineno"> 557</span>&#160; {</div><div class="line"><a name="l00558"></a><span class="lineno"> 558</span>&#160; }</div><div class="line"><a name="l00559"></a><span class="lineno"> 559</span>&#160;</div><div class="line"><a name="l00561"></a><span class="lineno"><a class="line" href="classSVF_1_1FIObjPN.html#ae5c2e49f3fa0511b7fa00de2a682f0e1"> 561</a></span>&#160; <span class="keyword">inline</span> <span class="keyword">const</span> std::string <a class="code" href="classSVF_1_1FIObjPN.html#ae5c2e49f3fa0511b7fa00de2a682f0e1">getValueName</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00562"></a><span class="lineno"> 562</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00563"></a><span class="lineno"> 563</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SVFVar.html#a7deb494ac20ed56fca31a4f1fd92deea">value</a> &amp;&amp; <a class="code" href="classSVF_1_1SVFVar.html#a7deb494ac20ed56fca31a4f1fd92deea">value</a>-&gt;hasName())</div><div class="line"><a name="l00564"></a><span class="lineno"> 564</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFVar.html#a7deb494ac20ed56fca31a4f1fd92deea">value</a>-&gt;getName().str() + <span class="stringliteral">&quot; (base object)&quot;</span>;</div><div class="line"><a name="l00565"></a><span class="lineno"> 565</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot; (base object)&quot;</span>;</div><div class="line"><a name="l00566"></a><span class="lineno"> 566</span>&#160; }</div><div class="line"><a name="l00567"></a><span class="lineno"> 567</span>&#160;</div><div class="line"><a name="l00568"></a><span class="lineno"> 568</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> std::string <a class="code" href="classSVF_1_1SVFVar.html#ada932ef2ae0a3e712174df479c35b0dd">toString</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00569"></a><span class="lineno"> 569</span>&#160;};</div><div class="line"><a name="l00570"></a><span class="lineno"> 570</span>&#160;</div><div class="line"><a name="l00571"></a><span class="lineno"> 571</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00572"></a><span class="lineno"> 572</span>&#160;<span class="comment"> * Unique Return node of a procedure</span></div><div class="line"><a name="l00573"></a><span class="lineno"> 573</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00574"></a><span class="lineno"><a class="line" href="classSVF_1_1RetPN.html"> 574</a></span>&#160;<span class="keyword">class </span><a class="code" href="classSVF_1_1RetPN.html">RetPN</a>: <span class="keyword">public</span> <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a></div><div class="line"><a name="l00575"></a><span class="lineno"> 575</span>&#160;{</div><div class="line"><a name="l00576"></a><span class="lineno"> 576</span>&#160;</div><div class="line"><a name="l00577"></a><span class="lineno"> 577</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00578"></a><span class="lineno"> 578</span>&#160;</div><div class="line"><a name="l00580"></a><span class="lineno"><a class="line" href="classSVF_1_1RetPN.html#acedd9e576a077f96c0638065d4c70bcf"> 580</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1RetPN.html#acedd9e576a077f96c0638065d4c70bcf">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1RetPN.html">RetPN</a> *)</div><div class="line"><a name="l00581"></a><span class="lineno"> 581</span>&#160; {</div><div class="line"><a name="l00582"></a><span class="lineno"> 582</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00583"></a><span class="lineno"> 583</span>&#160; }</div><div class="line"><a name="l00584"></a><span class="lineno"><a class="line" href="classSVF_1_1RetPN.html#a5e9d174902aa6dcfae418697363967b9"> 584</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1RetPN.html#a5e9d174902aa6dcfae418697363967b9">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a> *node)</div><div class="line"><a name="l00585"></a><span class="lineno"> 585</span>&#160; {</div><div class="line"><a name="l00586"></a><span class="lineno"> 586</span>&#160; <span class="keywordflow">return</span> node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#a391e996d695b114530120723da1d003e">getNodeKind</a>() == <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffa5de2a8fce9a85f31818d58992b381b98">SVFVar::RetNode</a>;</div><div class="line"><a name="l00587"></a><span class="lineno"> 587</span>&#160; }</div><div class="line"><a name="l00588"></a><span class="lineno"><a class="line" href="classSVF_1_1RetPN.html#a69ee6310b7236bc1230fa63440b0f551"> 588</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1RetPN.html#a69ee6310b7236bc1230fa63440b0f551">classof</a>(<span class="keyword">const</span> GenericPAGNodeTy *node)</div><div class="line"><a name="l00589"></a><span class="lineno"> 589</span>&#160; {</div><div class="line"><a name="l00590"></a><span class="lineno"> 590</span>&#160; <span class="keywordflow">return</span> node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#a391e996d695b114530120723da1d003e">getNodeKind</a>() == <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffa5de2a8fce9a85f31818d58992b381b98">SVFVar::RetNode</a>;</div><div class="line"><a name="l00591"></a><span class="lineno"> 591</span>&#160; }</div><div class="line"><a name="l00593"></a><span class="lineno"> 593</span>&#160;</div><div class="line"><a name="l00595"></a><span class="lineno"><a class="line" href="classSVF_1_1RetPN.html#ac551c1aaf9ec3cb77814aa4664d61a23"> 595</a></span>&#160; <a class="code" href="classSVF_1_1RetPN.html#ac551c1aaf9ec3cb77814aa4664d61a23">RetPN</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* val, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> i) :</div><div class="line"><a name="l00596"></a><span class="lineno"> 596</span>&#160; <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>(val-&gt;getLLVMFun(), i, <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffa5de2a8fce9a85f31818d58992b381b98">RetNode</a>)</div><div class="line"><a name="l00597"></a><span class="lineno"> 597</span>&#160; {</div><div class="line"><a name="l00598"></a><span class="lineno"> 598</span>&#160; }</div><div class="line"><a name="l00599"></a><span class="lineno"> 599</span>&#160;</div><div class="line"><a name="l00601"></a><span class="lineno"><a class="line" href="classSVF_1_1RetPN.html#a48c099d2b441b4cc298166e2c5866c8f"> 601</a></span>&#160; <span class="keyword">const</span> std::string <a class="code" href="classSVF_1_1RetPN.html#a48c099d2b441b4cc298166e2c5866c8f">getValueName</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00602"></a><span class="lineno"> 602</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00603"></a><span class="lineno"> 603</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFVar.html#a7deb494ac20ed56fca31a4f1fd92deea">value</a>-&gt;getName().str() + <span class="stringliteral">&quot;_ret&quot;</span>;</div><div class="line"><a name="l00604"></a><span class="lineno"> 604</span>&#160; }</div><div class="line"><a name="l00605"></a><span class="lineno"> 605</span>&#160;</div><div class="line"><a name="l00606"></a><span class="lineno"> 606</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> std::string <a class="code" href="classSVF_1_1SVFVar.html#ada932ef2ae0a3e712174df479c35b0dd">toString</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00607"></a><span class="lineno"> 607</span>&#160;};</div><div class="line"><a name="l00608"></a><span class="lineno"> 608</span>&#160;</div><div class="line"><a name="l00609"></a><span class="lineno"> 609</span>&#160;</div><div class="line"><a name="l00610"></a><span class="lineno"> 610</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00611"></a><span class="lineno"> 611</span>&#160;<span class="comment"> * Unique vararg node of a procedure</span></div><div class="line"><a name="l00612"></a><span class="lineno"> 612</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00613"></a><span class="lineno"><a class="line" href="classSVF_1_1VarArgPN.html"> 613</a></span>&#160;<span class="keyword">class </span><a class="code" href="classSVF_1_1VarArgPN.html">VarArgPN</a>: <span class="keyword">public</span> <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a></div><div class="line"><a name="l00614"></a><span class="lineno"> 614</span>&#160;{</div><div class="line"><a name="l00615"></a><span class="lineno"> 615</span>&#160;</div><div class="line"><a name="l00616"></a><span class="lineno"> 616</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00617"></a><span class="lineno"> 617</span>&#160;</div><div class="line"><a name="l00619"></a><span class="lineno"><a class="line" href="classSVF_1_1VarArgPN.html#acaecf9e9d98c4a14fecee0877a72839c"> 619</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1VarArgPN.html#acaecf9e9d98c4a14fecee0877a72839c">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1VarArgPN.html">VarArgPN</a> *)</div><div class="line"><a name="l00620"></a><span class="lineno"> 620</span>&#160; {</div><div class="line"><a name="l00621"></a><span class="lineno"> 621</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00622"></a><span class="lineno"> 622</span>&#160; }</div><div class="line"><a name="l00623"></a><span class="lineno"><a class="line" href="classSVF_1_1VarArgPN.html#a2adee91065fef72cb8f64924aa83ec0a"> 623</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1VarArgPN.html#a2adee91065fef72cb8f64924aa83ec0a">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a> *node)</div><div class="line"><a name="l00624"></a><span class="lineno"> 624</span>&#160; {</div><div class="line"><a name="l00625"></a><span class="lineno"> 625</span>&#160; <span class="keywordflow">return</span> node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#a391e996d695b114530120723da1d003e">getNodeKind</a>() == <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffa5a13a457f037424f61e74165a9cdcebf">SVFVar::VarargNode</a>;</div><div class="line"><a name="l00626"></a><span class="lineno"> 626</span>&#160; }</div><div class="line"><a name="l00627"></a><span class="lineno"><a class="line" href="classSVF_1_1VarArgPN.html#a7f873a8015eb6a6b30530a7e5a69018d"> 627</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1VarArgPN.html#a7f873a8015eb6a6b30530a7e5a69018d">classof</a>(<span class="keyword">const</span> GenericPAGNodeTy *node)</div><div class="line"><a name="l00628"></a><span class="lineno"> 628</span>&#160; {</div><div class="line"><a name="l00629"></a><span class="lineno"> 629</span>&#160; <span class="keywordflow">return</span> node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#a391e996d695b114530120723da1d003e">getNodeKind</a>() == <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffa5a13a457f037424f61e74165a9cdcebf">SVFVar::VarargNode</a>;</div><div class="line"><a name="l00630"></a><span class="lineno"> 630</span>&#160; }</div><div class="line"><a name="l00632"></a><span class="lineno"> 632</span>&#160;</div><div class="line"><a name="l00634"></a><span class="lineno"><a class="line" href="classSVF_1_1VarArgPN.html#ad6ebe474373838bc6c00e8baaa3f7137"> 634</a></span>&#160; <a class="code" href="classSVF_1_1VarArgPN.html#ad6ebe474373838bc6c00e8baaa3f7137">VarArgPN</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* val, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> i) :</div><div class="line"><a name="l00635"></a><span class="lineno"> 635</span>&#160; <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>(val-&gt;getLLVMFun(), i, <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffa5a13a457f037424f61e74165a9cdcebf">VarargNode</a>)</div><div class="line"><a name="l00636"></a><span class="lineno"> 636</span>&#160; {</div><div class="line"><a name="l00637"></a><span class="lineno"> 637</span>&#160; }</div><div class="line"><a name="l00638"></a><span class="lineno"> 638</span>&#160;</div><div class="line"><a name="l00640"></a><span class="lineno"><a class="line" href="classSVF_1_1VarArgPN.html#aec7ac87f5fff58b24daea998aaf0cc2a"> 640</a></span>&#160; <span class="keyword">inline</span> <span class="keyword">const</span> std::string <a class="code" href="classSVF_1_1VarArgPN.html#aec7ac87f5fff58b24daea998aaf0cc2a">getValueName</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00641"></a><span class="lineno"> 641</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00642"></a><span class="lineno"> 642</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFVar.html#a7deb494ac20ed56fca31a4f1fd92deea">value</a>-&gt;getName().str() + <span class="stringliteral">&quot;_vararg&quot;</span>;</div><div class="line"><a name="l00643"></a><span class="lineno"> 643</span>&#160; }</div><div class="line"><a name="l00644"></a><span class="lineno"> 644</span>&#160;</div><div class="line"><a name="l00645"></a><span class="lineno"> 645</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> std::string <a class="code" href="classSVF_1_1SVFVar.html#ada932ef2ae0a3e712174df479c35b0dd">toString</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00646"></a><span class="lineno"> 646</span>&#160;};</div><div class="line"><a name="l00647"></a><span class="lineno"> 647</span>&#160;</div><div class="line"><a name="l00648"></a><span class="lineno"> 648</span>&#160;</div><div class="line"><a name="l00649"></a><span class="lineno"> 649</span>&#160;</div><div class="line"><a name="l00650"></a><span class="lineno"> 650</span>&#160;</div><div class="line"><a name="l00651"></a><span class="lineno"> 651</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00652"></a><span class="lineno"> 652</span>&#160;<span class="comment"> * Dummy node</span></div><div class="line"><a name="l00653"></a><span class="lineno"> 653</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00654"></a><span class="lineno"><a class="line" href="classSVF_1_1DummyValPN.html"> 654</a></span>&#160;<span class="keyword">class </span><a class="code" href="classSVF_1_1DummyValPN.html">DummyValPN</a>: <span class="keyword">public</span> <a class="code" href="classSVF_1_1ValPN.html">ValPN</a></div><div class="line"><a name="l00655"></a><span class="lineno"> 655</span>&#160;{</div><div class="line"><a name="l00656"></a><span class="lineno"> 656</span>&#160;</div><div class="line"><a name="l00657"></a><span class="lineno"> 657</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00658"></a><span class="lineno"> 658</span>&#160;</div><div class="line"><a name="l00660"></a><span class="lineno"><a class="line" href="classSVF_1_1DummyValPN.html#a4ae220021a948c2755f7dc4947458d8f"> 660</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1DummyValPN.html#a4ae220021a948c2755f7dc4947458d8f">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1DummyValPN.html">DummyValPN</a> *)</div><div class="line"><a name="l00661"></a><span class="lineno"> 661</span>&#160; {</div><div class="line"><a name="l00662"></a><span class="lineno"> 662</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00663"></a><span class="lineno"> 663</span>&#160; }</div><div class="line"><a name="l00664"></a><span class="lineno"><a class="line" href="classSVF_1_1DummyValPN.html#a7e159b59d32827682d5273e816cf8aca"> 664</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1DummyValPN.html#a7e159b59d32827682d5273e816cf8aca">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a> *node)</div><div class="line"><a name="l00665"></a><span class="lineno"> 665</span>&#160; {</div><div class="line"><a name="l00666"></a><span class="lineno"> 666</span>&#160; <span class="keywordflow">return</span> node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#a391e996d695b114530120723da1d003e">getNodeKind</a>() == <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffa8299ae0d09f1b19411cb07cd79a2bae8">SVFVar::DummyValNode</a>;</div><div class="line"><a name="l00667"></a><span class="lineno"> 667</span>&#160; }</div><div class="line"><a name="l00668"></a><span class="lineno"><a class="line" href="classSVF_1_1DummyValPN.html#a62c8bdc6ebc3626f6cd7e743f2475ae0"> 668</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1DummyValPN.html#a62c8bdc6ebc3626f6cd7e743f2475ae0">classof</a>(<span class="keyword">const</span> GenericPAGNodeTy *node)</div><div class="line"><a name="l00669"></a><span class="lineno"> 669</span>&#160; {</div><div class="line"><a name="l00670"></a><span class="lineno"> 670</span>&#160; <span class="keywordflow">return</span> node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#a391e996d695b114530120723da1d003e">getNodeKind</a>() == <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffa8299ae0d09f1b19411cb07cd79a2bae8">SVFVar::DummyValNode</a>;</div><div class="line"><a name="l00671"></a><span class="lineno"> 671</span>&#160; }</div><div class="line"><a name="l00673"></a><span class="lineno"> 673</span>&#160;</div><div class="line"><a name="l00675"></a><span class="lineno"><a class="line" href="classSVF_1_1DummyValPN.html#a952876d7eafcf704435c67ff95f945c6"> 675</a></span>&#160; <a class="code" href="classSVF_1_1DummyValPN.html#a952876d7eafcf704435c67ff95f945c6">DummyValPN</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> i) : <a class="code" href="classSVF_1_1ValPN.html">ValPN</a>(nullptr, i, <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffa8299ae0d09f1b19411cb07cd79a2bae8">DummyValNode</a>)</div><div class="line"><a name="l00676"></a><span class="lineno"> 676</span>&#160; {</div><div class="line"><a name="l00677"></a><span class="lineno"> 677</span>&#160; }</div><div class="line"><a name="l00678"></a><span class="lineno"> 678</span>&#160;</div><div class="line"><a name="l00679"></a><span class="lineno"> 679</span>&#160;</div><div class="line"><a name="l00681"></a><span class="lineno"><a class="line" href="classSVF_1_1DummyValPN.html#ad43ed5282ca6f6cf546e60c37be968c9"> 681</a></span>&#160; <span class="keyword">inline</span> <span class="keyword">const</span> std::string <a class="code" href="classSVF_1_1DummyValPN.html#ad43ed5282ca6f6cf546e60c37be968c9">getValueName</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00682"></a><span class="lineno"> 682</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00683"></a><span class="lineno"> 683</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;dummyVal&quot;</span>;</div><div class="line"><a name="l00684"></a><span class="lineno"> 684</span>&#160; }</div><div class="line"><a name="l00685"></a><span class="lineno"> 685</span>&#160;</div><div class="line"><a name="l00686"></a><span class="lineno"> 686</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> std::string <a class="code" href="classSVF_1_1SVFVar.html#ada932ef2ae0a3e712174df479c35b0dd">toString</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00687"></a><span class="lineno"> 687</span>&#160;};</div><div class="line"><a name="l00688"></a><span class="lineno"> 688</span>&#160;</div><div class="line"><a name="l00689"></a><span class="lineno"> 689</span>&#160;</div><div class="line"><a name="l00690"></a><span class="lineno"> 690</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00691"></a><span class="lineno"> 691</span>&#160;<span class="comment"> * Dummy node</span></div><div class="line"><a name="l00692"></a><span class="lineno"> 692</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00693"></a><span class="lineno"><a class="line" href="classSVF_1_1DummyObjPN.html"> 693</a></span>&#160;<span class="keyword">class </span><a class="code" href="classSVF_1_1DummyObjPN.html">DummyObjPN</a>: <span class="keyword">public</span> <a class="code" href="classSVF_1_1ObjPN.html">ObjPN</a></div><div class="line"><a name="l00694"></a><span class="lineno"> 694</span>&#160;{</div><div class="line"><a name="l00695"></a><span class="lineno"> 695</span>&#160;</div><div class="line"><a name="l00696"></a><span class="lineno"> 696</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00697"></a><span class="lineno"> 697</span>&#160;</div><div class="line"><a name="l00699"></a><span class="lineno"><a class="line" href="classSVF_1_1DummyObjPN.html#a6b241ddcbe32a27b46c3c7c3d92e4c3c"> 699</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1DummyObjPN.html#a6b241ddcbe32a27b46c3c7c3d92e4c3c">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1DummyObjPN.html">DummyObjPN</a> *)</div><div class="line"><a name="l00700"></a><span class="lineno"> 700</span>&#160; {</div><div class="line"><a name="l00701"></a><span class="lineno"> 701</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00702"></a><span class="lineno"> 702</span>&#160; }</div><div class="line"><a name="l00703"></a><span class="lineno"><a class="line" href="classSVF_1_1DummyObjPN.html#a2f05d6a98837ade60ff4c008ee086409"> 703</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1DummyObjPN.html#a2f05d6a98837ade60ff4c008ee086409">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a> *node)</div><div class="line"><a name="l00704"></a><span class="lineno"> 704</span>&#160; {</div><div class="line"><a name="l00705"></a><span class="lineno"> 705</span>&#160; <span class="keywordflow">return</span> node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#a391e996d695b114530120723da1d003e">getNodeKind</a>() == <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffa1ab625ecaf51446246dcc2944d6559af">SVFVar::DummyObjNode</a></div><div class="line"><a name="l00706"></a><span class="lineno"> 706</span>&#160; || node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#a391e996d695b114530120723da1d003e">getNodeKind</a>() == <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffab85277a3daeecc24c99b3da86108e482">SVFVar::CloneDummyObjNode</a>;</div><div class="line"><a name="l00707"></a><span class="lineno"> 707</span>&#160; }</div><div class="line"><a name="l00708"></a><span class="lineno"><a class="line" href="classSVF_1_1DummyObjPN.html#a48af6a89137007ec2b329943a891b09c"> 708</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1DummyObjPN.html#a48af6a89137007ec2b329943a891b09c">classof</a>(<span class="keyword">const</span> GenericPAGNodeTy *node)</div><div class="line"><a name="l00709"></a><span class="lineno"> 709</span>&#160; {</div><div class="line"><a name="l00710"></a><span class="lineno"> 710</span>&#160; <span class="keywordflow">return</span> node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#a391e996d695b114530120723da1d003e">getNodeKind</a>() == <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffa1ab625ecaf51446246dcc2944d6559af">SVFVar::DummyObjNode</a></div><div class="line"><a name="l00711"></a><span class="lineno"> 711</span>&#160; || node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#a391e996d695b114530120723da1d003e">getNodeKind</a>() == <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffab85277a3daeecc24c99b3da86108e482">SVFVar::CloneDummyObjNode</a>;</div><div class="line"><a name="l00712"></a><span class="lineno"> 712</span>&#160; }</div><div class="line"><a name="l00714"></a><span class="lineno"> 714</span>&#160;</div><div class="line"><a name="l00716"></a><span class="lineno"><a class="line" href="classSVF_1_1DummyObjPN.html#ac9b505a9c6176729edf350f1db6874dd"> 716</a></span>&#160; <a class="code" href="classSVF_1_1DummyObjPN.html#ac9b505a9c6176729edf350f1db6874dd">DummyObjPN</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> i,<span class="keyword">const</span> <a class="code" href="classSVF_1_1MemObj.html">MemObj</a>* m, <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeff">PNODEK</a> ty = <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffa1ab625ecaf51446246dcc2944d6559af">DummyObjNode</a>)</div><div class="line"><a name="l00717"></a><span class="lineno"> 717</span>&#160; : <a class="code" href="classSVF_1_1ObjPN.html">ObjPN</a>(nullptr, i, m, ty)</div><div class="line"><a name="l00718"></a><span class="lineno"> 718</span>&#160; {</div><div class="line"><a name="l00719"></a><span class="lineno"> 719</span>&#160; }</div><div class="line"><a name="l00720"></a><span class="lineno"> 720</span>&#160;</div><div class="line"><a name="l00722"></a><span class="lineno"><a class="line" href="classSVF_1_1DummyObjPN.html#a3b3dabed91ed32ee99835324108061c7"> 722</a></span>&#160; <span class="keyword">inline</span> <span class="keyword">const</span> std::string <a class="code" href="classSVF_1_1DummyObjPN.html#a3b3dabed91ed32ee99835324108061c7">getValueName</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00723"></a><span class="lineno"> 723</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00724"></a><span class="lineno"> 724</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;dummyObj&quot;</span>;</div><div class="line"><a name="l00725"></a><span class="lineno"> 725</span>&#160; }</div><div class="line"><a name="l00726"></a><span class="lineno"> 726</span>&#160;</div><div class="line"><a name="l00727"></a><span class="lineno"> 727</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> std::string <a class="code" href="classSVF_1_1SVFVar.html#ada932ef2ae0a3e712174df479c35b0dd">toString</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00728"></a><span class="lineno"> 728</span>&#160;};</div><div class="line"><a name="l00729"></a><span class="lineno"> 729</span>&#160;</div><div class="line"><a name="l00730"></a><span class="lineno"> 730</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00731"></a><span class="lineno"> 731</span>&#160;<span class="comment"> * Clone object node for dummy objects.</span></div><div class="line"><a name="l00732"></a><span class="lineno"> 732</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00733"></a><span class="lineno"><a class="line" href="classSVF_1_1CloneDummyObjPN.html"> 733</a></span>&#160;<span class="keyword">class </span><a class="code" href="classSVF_1_1CloneDummyObjPN.html">CloneDummyObjPN</a>: <span class="keyword">public</span> <a class="code" href="classSVF_1_1DummyObjPN.html">DummyObjPN</a></div><div class="line"><a name="l00734"></a><span class="lineno"> 734</span>&#160;{</div><div class="line"><a name="l00735"></a><span class="lineno"> 735</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00737"></a><span class="lineno"><a class="line" href="classSVF_1_1CloneDummyObjPN.html#a98a1f11f0adc875b9c166dae69875e05"> 737</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1CloneDummyObjPN.html#a98a1f11f0adc875b9c166dae69875e05">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CloneDummyObjPN.html">CloneDummyObjPN</a> *)</div><div class="line"><a name="l00738"></a><span class="lineno"> 738</span>&#160; {</div><div class="line"><a name="l00739"></a><span class="lineno"> 739</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00740"></a><span class="lineno"> 740</span>&#160; }</div><div class="line"><a name="l00741"></a><span class="lineno"><a class="line" href="classSVF_1_1CloneDummyObjPN.html#ad3912fd4f477be5e86f15ca3d0dfc236"> 741</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1CloneDummyObjPN.html#ad3912fd4f477be5e86f15ca3d0dfc236">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a> *node)</div><div class="line"><a name="l00742"></a><span class="lineno"> 742</span>&#160; {</div><div class="line"><a name="l00743"></a><span class="lineno"> 743</span>&#160; <span class="keywordflow">return</span> node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#a391e996d695b114530120723da1d003e">getNodeKind</a>() == <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffab85277a3daeecc24c99b3da86108e482">SVFVar::CloneDummyObjNode</a>;</div><div class="line"><a name="l00744"></a><span class="lineno"> 744</span>&#160; }</div><div class="line"><a name="l00745"></a><span class="lineno"><a class="line" href="classSVF_1_1CloneDummyObjPN.html#a41abb24caedfd04c87a66f5899419121"> 745</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1CloneDummyObjPN.html#a41abb24caedfd04c87a66f5899419121">classof</a>(<span class="keyword">const</span> GenericPAGNodeTy *node)</div><div class="line"><a name="l00746"></a><span class="lineno"> 746</span>&#160; {</div><div class="line"><a name="l00747"></a><span class="lineno"> 747</span>&#160; <span class="keywordflow">return</span> node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#a391e996d695b114530120723da1d003e">getNodeKind</a>() == <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffab85277a3daeecc24c99b3da86108e482">SVFVar::CloneDummyObjNode</a>;</div><div class="line"><a name="l00748"></a><span class="lineno"> 748</span>&#160; }</div><div class="line"><a name="l00750"></a><span class="lineno"> 750</span>&#160;</div><div class="line"><a name="l00752"></a><span class="lineno"><a class="line" href="classSVF_1_1CloneDummyObjPN.html#a6b2a894267716e725332b85b1fdc670c"> 752</a></span>&#160; <a class="code" href="classSVF_1_1CloneDummyObjPN.html#a6b2a894267716e725332b85b1fdc670c">CloneDummyObjPN</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> i, <span class="keyword">const</span> <a class="code" href="classSVF_1_1MemObj.html">MemObj</a>* m, <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeff">PNODEK</a> ty = <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffab85277a3daeecc24c99b3da86108e482">CloneDummyObjNode</a>)</div><div class="line"><a name="l00753"></a><span class="lineno"> 753</span>&#160; : <a class="code" href="classSVF_1_1DummyObjPN.html">DummyObjPN</a>(i, m, ty)</div><div class="line"><a name="l00754"></a><span class="lineno"> 754</span>&#160; {</div><div class="line"><a name="l00755"></a><span class="lineno"> 755</span>&#160; }</div><div class="line"><a name="l00756"></a><span class="lineno"> 756</span>&#160;</div><div class="line"><a name="l00758"></a><span class="lineno"><a class="line" href="classSVF_1_1CloneDummyObjPN.html#a2239f9e2aaa61bed50d0c33d3ad8e0ea"> 758</a></span>&#160; <span class="keyword">inline</span> <span class="keyword">const</span> std::string <a class="code" href="classSVF_1_1CloneDummyObjPN.html#a2239f9e2aaa61bed50d0c33d3ad8e0ea">getValueName</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00759"></a><span class="lineno"> 759</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00760"></a><span class="lineno"> 760</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;clone of &quot;</span> + <a class="code" href="classSVF_1_1ObjPN.html#a7500f73cb499a5aa0d828075b179b709">ObjPN::getValueName</a>();</div><div class="line"><a name="l00761"></a><span class="lineno"> 761</span>&#160; }</div><div class="line"><a name="l00762"></a><span class="lineno"> 762</span>&#160;</div><div class="line"><a name="l00763"></a><span class="lineno"> 763</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> std::string <a class="code" href="classSVF_1_1SVFVar.html#ada932ef2ae0a3e712174df479c35b0dd">toString</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00764"></a><span class="lineno"> 764</span>&#160;};</div><div class="line"><a name="l00765"></a><span class="lineno"> 765</span>&#160;</div><div class="line"><a name="l00766"></a><span class="lineno"> 766</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00767"></a><span class="lineno"> 767</span>&#160;<span class="comment"> * Clone object for GEP objects.</span></div><div class="line"><a name="l00768"></a><span class="lineno"> 768</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00769"></a><span class="lineno"><a class="line" href="classSVF_1_1CloneGepObjPN.html"> 769</a></span>&#160;<span class="keyword">class </span><a class="code" href="classSVF_1_1CloneGepObjPN.html">CloneGepObjPN</a> : <span class="keyword">public</span> <a class="code" href="classSVF_1_1GepObjPN.html">GepObjPN</a></div><div class="line"><a name="l00770"></a><span class="lineno"> 770</span>&#160;{</div><div class="line"><a name="l00771"></a><span class="lineno"> 771</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00773"></a><span class="lineno"><a class="line" href="classSVF_1_1CloneGepObjPN.html#ae4a5fbdb8e39aeac18c03f275ad4f0ff"> 773</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1CloneGepObjPN.html#ae4a5fbdb8e39aeac18c03f275ad4f0ff">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CloneGepObjPN.html">CloneGepObjPN</a> *)</div><div class="line"><a name="l00774"></a><span class="lineno"> 774</span>&#160; {</div><div class="line"><a name="l00775"></a><span class="lineno"> 775</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00776"></a><span class="lineno"> 776</span>&#160; }</div><div class="line"><a name="l00777"></a><span class="lineno"><a class="line" href="classSVF_1_1CloneGepObjPN.html#ae04be94d59e8d352b0ed9f2bab14bec0"> 777</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1CloneGepObjPN.html#ae04be94d59e8d352b0ed9f2bab14bec0">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a> *node)</div><div class="line"><a name="l00778"></a><span class="lineno"> 778</span>&#160; {</div><div class="line"><a name="l00779"></a><span class="lineno"> 779</span>&#160; <span class="keywordflow">return</span> node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#a391e996d695b114530120723da1d003e">getNodeKind</a>() == <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffabf9e21e7cbec690ad318a68cd5d756dc">SVFVar::CloneGepObjNode</a>;</div><div class="line"><a name="l00780"></a><span class="lineno"> 780</span>&#160; }</div><div class="line"><a name="l00781"></a><span class="lineno"><a class="line" href="classSVF_1_1CloneGepObjPN.html#a4480ad91fff13e921cdb44e56027ae9c"> 781</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1CloneGepObjPN.html#a4480ad91fff13e921cdb44e56027ae9c">classof</a>(<span class="keyword">const</span> GenericPAGNodeTy *node)</div><div class="line"><a name="l00782"></a><span class="lineno"> 782</span>&#160; {</div><div class="line"><a name="l00783"></a><span class="lineno"> 783</span>&#160; <span class="keywordflow">return</span> node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#a391e996d695b114530120723da1d003e">getNodeKind</a>() == <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffabf9e21e7cbec690ad318a68cd5d756dc">SVFVar::CloneGepObjNode</a>;</div><div class="line"><a name="l00784"></a><span class="lineno"> 784</span>&#160; }</div><div class="line"><a name="l00786"></a><span class="lineno"> 786</span>&#160;</div><div class="line"><a name="l00788"></a><span class="lineno"><a class="line" href="classSVF_1_1CloneGepObjPN.html#a769b26905b23ccb6aa0895ed49b4345b"> 788</a></span>&#160; <a class="code" href="classSVF_1_1CloneGepObjPN.html#a769b26905b23ccb6aa0895ed49b4345b">CloneGepObjPN</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1MemObj.html">MemObj</a>* mem, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> i, <span class="keyword">const</span> <a class="code" href="classSVF_1_1LocationSet.html">LocationSet</a>&amp; l, <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeff">PNODEK</a> ty = <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffabf9e21e7cbec690ad318a68cd5d756dc">CloneGepObjNode</a>) :</div><div class="line"><a name="l00789"></a><span class="lineno"> 789</span>&#160; <a class="code" href="classSVF_1_1GepObjPN.html">GepObjPN</a>(mem, i, l, ty)</div><div class="line"><a name="l00790"></a><span class="lineno"> 790</span>&#160; {</div><div class="line"><a name="l00791"></a><span class="lineno"> 791</span>&#160; }</div><div class="line"><a name="l00792"></a><span class="lineno"> 792</span>&#160;</div><div class="line"><a name="l00794"></a><span class="lineno"><a class="line" href="classSVF_1_1CloneGepObjPN.html#ae6640a10e3fc58b057ed94f1d4c774ba"> 794</a></span>&#160; <span class="keyword">inline</span> <span class="keyword">const</span> std::string <a class="code" href="classSVF_1_1CloneGepObjPN.html#ae6640a10e3fc58b057ed94f1d4c774ba">getValueName</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00795"></a><span class="lineno"> 795</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00796"></a><span class="lineno"> 796</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;clone (gep) of &quot;</span> + <a class="code" href="classSVF_1_1GepObjPN.html#a498b7ee3cf8d26fa18062f2bae0749c5">GepObjPN::getValueName</a>();</div><div class="line"><a name="l00797"></a><span class="lineno"> 797</span>&#160; }</div><div class="line"><a name="l00798"></a><span class="lineno"> 798</span>&#160;</div><div class="line"><a name="l00799"></a><span class="lineno"> 799</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> std::string <a class="code" href="classSVF_1_1SVFVar.html#ada932ef2ae0a3e712174df479c35b0dd">toString</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00800"></a><span class="lineno"> 800</span>&#160;};</div><div class="line"><a name="l00801"></a><span class="lineno"> 801</span>&#160;</div><div class="line"><a name="l00802"></a><span class="lineno"> 802</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00803"></a><span class="lineno"> 803</span>&#160;<span class="comment"> * Clone object for FI objects.</span></div><div class="line"><a name="l00804"></a><span class="lineno"> 804</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00805"></a><span class="lineno"><a class="line" href="classSVF_1_1CloneFIObjPN.html"> 805</a></span>&#160;<span class="keyword">class </span><a class="code" href="classSVF_1_1CloneFIObjPN.html">CloneFIObjPN</a> : <span class="keyword">public</span> <a class="code" href="classSVF_1_1FIObjPN.html">FIObjPN</a></div><div class="line"><a name="l00806"></a><span class="lineno"> 806</span>&#160;{</div><div class="line"><a name="l00807"></a><span class="lineno"> 807</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00809"></a><span class="lineno"><a class="line" href="classSVF_1_1CloneFIObjPN.html#a25d870401deedea23c29523b02be9357"> 809</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1CloneFIObjPN.html#a25d870401deedea23c29523b02be9357">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CloneFIObjPN.html">CloneFIObjPN</a> *)</div><div class="line"><a name="l00810"></a><span class="lineno"> 810</span>&#160; {</div><div class="line"><a name="l00811"></a><span class="lineno"> 811</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00812"></a><span class="lineno"> 812</span>&#160; }</div><div class="line"><a name="l00813"></a><span class="lineno"><a class="line" href="classSVF_1_1CloneFIObjPN.html#a13aaf7159accd345bdad93c1c3491122"> 813</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1CloneFIObjPN.html#a13aaf7159accd345bdad93c1c3491122">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a> *node)</div><div class="line"><a name="l00814"></a><span class="lineno"> 814</span>&#160; {</div><div class="line"><a name="l00815"></a><span class="lineno"> 815</span>&#160; <span class="keywordflow">return</span> node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#a391e996d695b114530120723da1d003e">getNodeKind</a>() == <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffa2ca0654308fd181afcb1f20519a0247a">SVFVar::CloneFIObjNode</a>;</div><div class="line"><a name="l00816"></a><span class="lineno"> 816</span>&#160; }</div><div class="line"><a name="l00817"></a><span class="lineno"><a class="line" href="classSVF_1_1CloneFIObjPN.html#a4162a2134de52bb0cd0a8ce630881c92"> 817</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1CloneFIObjPN.html#a4162a2134de52bb0cd0a8ce630881c92">classof</a>(<span class="keyword">const</span> GenericPAGNodeTy *node)</div><div class="line"><a name="l00818"></a><span class="lineno"> 818</span>&#160; {</div><div class="line"><a name="l00819"></a><span class="lineno"> 819</span>&#160; <span class="keywordflow">return</span> node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#a391e996d695b114530120723da1d003e">getNodeKind</a>() == <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffa2ca0654308fd181afcb1f20519a0247a">SVFVar::CloneFIObjNode</a>;</div><div class="line"><a name="l00820"></a><span class="lineno"> 820</span>&#160; }</div><div class="line"><a name="l00822"></a><span class="lineno"> 822</span>&#160;</div><div class="line"><a name="l00824"></a><span class="lineno"><a class="line" href="classSVF_1_1CloneFIObjPN.html#a3263e363188007b96bfad127c52e44b7"> 824</a></span>&#160; <a class="code" href="classSVF_1_1CloneFIObjPN.html#a3263e363188007b96bfad127c52e44b7">CloneFIObjPN</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* val, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> i, <span class="keyword">const</span> <a class="code" href="classSVF_1_1MemObj.html">MemObj</a>* mem, <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeff">PNODEK</a> ty = <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffa2ca0654308fd181afcb1f20519a0247a">CloneFIObjNode</a>) :</div><div class="line"><a name="l00825"></a><span class="lineno"> 825</span>&#160; <a class="code" href="classSVF_1_1FIObjPN.html">FIObjPN</a>(val, i, mem, ty)</div><div class="line"><a name="l00826"></a><span class="lineno"> 826</span>&#160; {</div><div class="line"><a name="l00827"></a><span class="lineno"> 827</span>&#160; }</div><div class="line"><a name="l00828"></a><span class="lineno"> 828</span>&#160;</div><div class="line"><a name="l00830"></a><span class="lineno"><a class="line" href="classSVF_1_1CloneFIObjPN.html#a604e88030c2c32408f4fd99a69b97e6b"> 830</a></span>&#160; <span class="keyword">inline</span> <span class="keyword">const</span> std::string <a class="code" href="classSVF_1_1CloneFIObjPN.html#a604e88030c2c32408f4fd99a69b97e6b">getValueName</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00831"></a><span class="lineno"> 831</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00832"></a><span class="lineno"> 832</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;clone (FI) of &quot;</span> + <a class="code" href="classSVF_1_1FIObjPN.html#ae5c2e49f3fa0511b7fa00de2a682f0e1">FIObjPN::getValueName</a>();</div><div class="line"><a name="l00833"></a><span class="lineno"> 833</span>&#160; }</div><div class="line"><a name="l00834"></a><span class="lineno"> 834</span>&#160;</div><div class="line"><a name="l00835"></a><span class="lineno"> 835</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> std::string <a class="code" href="classSVF_1_1SVFVar.html#ada932ef2ae0a3e712174df479c35b0dd">toString</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00836"></a><span class="lineno"> 836</span>&#160;};</div><div class="line"><a name="l00837"></a><span class="lineno"> 837</span>&#160;</div><div class="line"><a name="l00838"></a><span class="lineno"> 838</span>&#160;} <span class="comment">// End namespace SVF</span></div><div class="line"><a name="l00839"></a><span class="lineno"> 839</span>&#160;</div><div class="line"><a name="l00840"></a><span class="lineno"> 840</span>&#160;</div><div class="line"><a name="l00841"></a><span class="lineno"> 841</span>&#160;</div><div class="line"><a name="l00842"></a><span class="lineno"> 842</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* OBJECTANDSYMBOL_H_ */</span><span class="preprocessor"></span></div><div class="ttc" id="classSVF_1_1ValPN_html_a1123ae17ef8497f3baa73b15d19a6cf4"><div class="ttname"><a href="classSVF_1_1ValPN.html#a1123ae17ef8497f3baa73b15d19a6cf4">SVF::ValPN::ValPN</a></div><div class="ttdeci">ValPN(const Value *val, NodeID i, PNODEK ty=ValNode)</div><div class="ttdoc">Constructor. </div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00298">SVFVariables.h:298</a></div></div>
70
- <div class="ttc" id="classSVF_1_1SVFVar_html_a9376133075b0d44ff09876af933c8618"><div class="ttname"><a href="classSVF_1_1SVFVar.html#a9376133075b0d44ff09876af933c8618">SVF::SVFVar::addInEdge</a></div><div class="ttdeci">void addInEdge(SVFStmt *inEdge)</div><div class="ttdoc">add methods of the components </div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00238">SVFVariables.h:238</a></div></div>
71
- <div class="ttc" id="classSVF_1_1FIObjPN_html_a1014cd45e24e44873acd1d76db92d056"><div class="ttname"><a href="classSVF_1_1FIObjPN.html#a1014cd45e24e44873acd1d76db92d056">SVF::FIObjPN::classof</a></div><div class="ttdeci">static bool classof(const GenericPAGNodeTy *node)</div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00547">SVFVariables.h:547</a></div></div>
69
+ <a href="SVFVariables_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">//===- SVFSymbols.h -- SVF Variables------------------------//</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">// SVF: Static Value-Flow Analysis</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// Copyright (C) &lt;2013-&gt; &lt;Yulei Sui&gt;</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// This program is free software: you can redistribute it and/or modify</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">// the Free Software Foundation, either version 3 of the License, or</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// (at your option) any later version.</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// GNU General Public License for more details.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// along with this program. If not, see &lt;http://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">//===----------------------------------------------------------------------===//</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment"> * SVFVariables.h</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment"> * Created on: Nov 11, 2013</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="comment"> * Author: Yulei Sui</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#ifndef OBJECTANDSYMBOL_H_</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#define OBJECTANDSYMBOL_H_</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="GenericGraph_8h.html">Graphs/GenericGraph.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="SymbolTableInfo_8h.html">MemoryModel/SymbolTableInfo.h</a>&quot;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="LLVMUtil_8h.html">SVF-FE/LLVMUtil.h</a>&quot;</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="SVFStatements_8h.html">MemoryModel/SVFStatements.h</a>&quot;</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespaceSVF.html">SVF</a></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;{</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno"><a class="line" href="namespaceSVF.html#a8d5e9e5137b04659ded32330e128df34"> 41</a></span>&#160;<span class="keyword">class </span><a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="comment"> * SVFIR node</span></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="keyword">typedef</span> <a class="code" href="classSVF_1_1GenericNode.html">GenericNode&lt;SVFVar,SVFStmt&gt;</a> <a class="code" href="namespaceSVF.html#a8d5e9e5137b04659ded32330e128df34">GenericPAGNodeTy</a>;</div><div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFVar.html"> 46</a></span>&#160;<span class="keyword">class </span><a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a> : <span class="keyword">public</span> GenericPAGNodeTy</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;{</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeff"> 60</a></span>&#160; <span class="keyword">enum</span> <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeff">PNODEK</a></div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; {</div><div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffa32d22852d39756992f87bd02def75f66"> 62</a></span>&#160; <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffa32d22852d39756992f87bd02def75f66">ValNode</a>,</div><div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffae21504009be26916ccdfcb5de42e3e11"> 63</a></span>&#160; <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffae21504009be26916ccdfcb5de42e3e11">ObjNode</a>,</div><div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffa5de2a8fce9a85f31818d58992b381b98"> 64</a></span>&#160; <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffa5de2a8fce9a85f31818d58992b381b98">RetNode</a>,</div><div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffa5a13a457f037424f61e74165a9cdcebf"> 65</a></span>&#160; <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffa5a13a457f037424f61e74165a9cdcebf">VarargNode</a>,</div><div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffa288e3f5d01c94d5c5d685d43f08a6c4a"> 66</a></span>&#160; <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffa288e3f5d01c94d5c5d685d43f08a6c4a">GepValNode</a>,</div><div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffaf3364b22f497146f06d1f4175a839f4f"> 67</a></span>&#160; <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffaf3364b22f497146f06d1f4175a839f4f">GepObjNode</a>,</div><div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffaabe491b0a744825250b97f407962c4a6"> 68</a></span>&#160; <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffaabe491b0a744825250b97f407962c4a6">FIObjNode</a>,</div><div class="line"><a name="l00069"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffa8299ae0d09f1b19411cb07cd79a2bae8"> 69</a></span>&#160; <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffa8299ae0d09f1b19411cb07cd79a2bae8">DummyValNode</a>,</div><div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffa1ab625ecaf51446246dcc2944d6559af"> 70</a></span>&#160; <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffa1ab625ecaf51446246dcc2944d6559af">DummyObjNode</a>,</div><div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffabf9e21e7cbec690ad318a68cd5d756dc"> 71</a></span>&#160; <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffabf9e21e7cbec690ad318a68cd5d756dc">CloneGepObjNode</a>, <span class="comment">// NOTE: only used for TBHC.</span></div><div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffa2ca0654308fd181afcb1f20519a0247a"> 72</a></span>&#160; <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffa2ca0654308fd181afcb1f20519a0247a">CloneFIObjNode</a>, <span class="comment">// NOTE: only used for TBHC.</span></div><div class="line"><a name="l00073"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffab85277a3daeecc24c99b3da86108e482"> 73</a></span>&#160; <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffab85277a3daeecc24c99b3da86108e482">CloneDummyObjNode</a> <span class="comment">// NOTE: only used for TBHC.</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;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;<span class="keyword">protected</span>:</div><div class="line"><a name="l00078"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFVar.html#a7deb494ac20ed56fca31a4f1fd92deea"> 78</a></span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* <a class="code" href="classSVF_1_1SVFVar.html#a7deb494ac20ed56fca31a4f1fd92deea">value</a>; </div><div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFVar.html#a49fd453200fcf98b4e13e3f630774401"> 79</a></span>&#160; <a class="code" href="classSVF_1_1SVFStmt.html#a47a67e8aaae7059e353841a40b89e936">SVFStmt::PAGKindToEdgeSetMapTy</a> <a class="code" href="classSVF_1_1SVFVar.html#a49fd453200fcf98b4e13e3f630774401">InEdgeKindToSetMap</a>;</div><div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFVar.html#a08ef88f516402ce512eb3cb7dab9271d"> 80</a></span>&#160; <a class="code" href="classSVF_1_1SVFStmt.html#a47a67e8aaae7059e353841a40b89e936">SVFStmt::PAGKindToEdgeSetMapTy</a> <a class="code" href="classSVF_1_1SVFVar.html#a08ef88f516402ce512eb3cb7dab9271d">OutEdgeKindToSetMap</a>;</div><div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFVar.html#afeb667f2af988479e93a6067c4e6e622"> 81</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SVFVar.html#afeb667f2af988479e93a6067c4e6e622">isTLPointer</a>; </div><div class="line"><a name="l00082"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFVar.html#a307c0f4d90308d5f77977d5635cad65d"> 82</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SVFVar.html#a307c0f4d90308d5f77977d5635cad65d">isATPointer</a>; </div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <a class="code" href="classSVF_1_1SVFVar.html#a24daf5faa4b1d159c193e61951d17414">SVFVar</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* val, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> i, <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeff">PNODEK</a> k);</div><div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFVar.html#ab76f9dea1559bd9b10b870dbc7bb454a"> 88</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="classSVF_1_1SVFVar.html#ab76f9dea1559bd9b10b870dbc7bb454a">~SVFVar</a>()</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; }</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;</div><div class="line"><a name="l00094"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFVar.html#afaa33caa8d2a306f6741d9d066243e40"> 94</a></span>&#160; <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* <a class="code" href="classSVF_1_1SVFVar.html#afaa33caa8d2a306f6741d9d066243e40">getValue</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>((this-&gt;<a class="code" href="classSVF_1_1GenericNode.html#a391e996d695b114530120723da1d003e">getNodeKind</a>() != <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffa8299ae0d09f1b19411cb07cd79a2bae8">DummyValNode</a> &amp;&amp; this-&gt;<a class="code" href="classSVF_1_1GenericNode.html#a391e996d695b114530120723da1d003e">getNodeKind</a>() != <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffa1ab625ecaf51446246dcc2944d6559af">DummyObjNode</a>) &amp;&amp; <span class="stringliteral">&quot;dummy node do not have value!&quot;</span>);</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>((<a class="code" href="classSVF_1_1SymbolTableInfo.html#a2fc4bfb83b71a4c14e16168382cb8f5d">SymbolTableInfo::isBlkObjOrConstantObj</a>(this-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>())==<span class="keyword">false</span>) &amp;&amp; <span class="stringliteral">&quot;blackhole and constant obj do not have value&quot;</span>);</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(value &amp;&amp; <span class="stringliteral">&quot;value is null (GepObjNode whose basenode is a DummyObj?)&quot;</span>);</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFVar.html#a7deb494ac20ed56fca31a4f1fd92deea">value</a>;</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; }</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;</div><div class="line"><a name="l00103"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFVar.html#adaaf24b8b6ec06476cea112533c24066"> 103</a></span>&#160; <span class="keyword">inline</span> <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a>* <a class="code" href="classSVF_1_1SVFVar.html#adaaf24b8b6ec06476cea112533c24066">getType</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <span class="keywordflow">if</span> (value)</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <span class="keywordflow">return</span> value-&gt;getType();</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; }</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;</div><div class="line"><a name="l00110"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFVar.html#a1ace69053c2c4436fd78d5624bd0086a"> 110</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SVFVar.html#a1ace69053c2c4436fd78d5624bd0086a">hasValue</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="keywordflow">return</span> value!=<span class="keyword">nullptr</span>;</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; }</div><div class="line"><a name="l00115"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFVar.html#a3b61042079a6c9dc395f38925c6a1271"> 115</a></span>&#160; <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SVFVar.html#a3b61042079a6c9dc395f38925c6a1271">isPointer</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFVar.html#a60bed99a7fd939873118698b058ccc4a">isTopLevelPtr</a>() || <a class="code" href="classSVF_1_1SVFVar.html#a482652e097c8e7921b4db2e75eb71efc">isAddressTakenPtr</a>();</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; }</div><div class="line"><a name="l00120"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFVar.html#a60bed99a7fd939873118698b058ccc4a"> 120</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SVFVar.html#a60bed99a7fd939873118698b058ccc4a">isTopLevelPtr</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFVar.html#afeb667f2af988479e93a6067c4e6e622">isTLPointer</a>;</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; }</div><div class="line"><a name="l00125"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFVar.html#a482652e097c8e7921b4db2e75eb71efc"> 125</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SVFVar.html#a482652e097c8e7921b4db2e75eb71efc">isAddressTakenPtr</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFVar.html#a307c0f4d90308d5f77977d5635cad65d">isATPointer</a>;</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; }</div><div class="line"><a name="l00131"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFVar.html#ab51b134720986c39fce7f033a49df6f0"> 131</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SVFVar.html#ab51b134720986c39fce7f033a49df6f0">isConstantData</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SVFVar.html#a1ace69053c2c4436fd78d5624bd0086a">hasValue</a>())</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a9e85d445e8b7b205134acd3874bba388">SVFUtil::isConstantData</a>(value);</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; }</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SVFVar.html#acf194658d2cbdaf3f26f2af6c325fad7">isIsolatedNode</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> std::string <a class="code" href="classSVF_1_1SVFVar.html#a54b2a5ed3ed21e54eaf04182f0338333">getValueName</a>() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;</div><div class="line"><a name="l00146"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFVar.html#a53439a493963d16e5a1b5ed36ab6d33e"> 146</a></span>&#160; <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* <a class="code" href="classSVF_1_1SVFVar.html#a53439a493963d16e5a1b5ed36ab6d33e">getFunction</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <span class="keywordflow">if</span>(value)</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; <span class="keywordflow">if</span>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a>* inst = SVFUtil::dyn_cast&lt;Instruction&gt;(value))</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <span class="keywordflow">return</span> inst-&gt;getParent()-&gt;getParent();</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a58cdfbc4160cae08745b67844ac29801">Argument</a>* arg = SVFUtil::dyn_cast&lt;Argument&gt;(value))</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <span class="keywordflow">return</span> arg-&gt;getParent();</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* fun = SVFUtil::dyn_cast&lt;Function&gt;(value))</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <span class="keywordflow">return</span> fun;</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; }</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</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="l00161"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFVar.html#a0deeb2f08b7681c63ad91a04a4b4c6c9"> 161</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="classSVF_1_1SVFStmt.html#af02857ff13e61f81d332d83eb376bdb4">SVFStmt::PAGEdgeSetTy</a>&amp; <a class="code" href="classSVF_1_1SVFVar.html#a0deeb2f08b7681c63ad91a04a4b4c6c9">getIncomingEdges</a>(<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9">SVFStmt::PEDGEK</a> kind)</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; {</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="keywordflow">return</span> InEdgeKindToSetMap[kind];</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;</div><div class="line"><a name="l00167"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFVar.html#af41e3da7f7d6918f58785446d715fec6"> 167</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="classSVF_1_1SVFStmt.html#af02857ff13e61f81d332d83eb376bdb4">SVFStmt::PAGEdgeSetTy</a>&amp; <a class="code" href="classSVF_1_1SVFVar.html#af41e3da7f7d6918f58785446d715fec6">getOutgoingEdges</a>(<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9">SVFStmt::PEDGEK</a> kind)</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; <span class="keywordflow">return</span> OutEdgeKindToSetMap[kind];</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; }</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;</div><div class="line"><a name="l00173"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFVar.html#a747b2c92c81d32fcd357e80d2d8fe7cc"> 173</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SVFVar.html#a747b2c92c81d32fcd357e80d2d8fe7cc">hasIncomingEdges</a>(<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9">SVFStmt::PEDGEK</a> kind)<span class="keyword"> const</span></div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; SVFStmt::PAGKindToEdgeSetMapTy::const_iterator it = InEdgeKindToSetMap.find(kind);</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <span class="keywordflow">if</span> (it != InEdgeKindToSetMap.end())</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="keywordflow">return</span> (!it-&gt;second.empty());</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; }</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;</div><div class="line"><a name="l00183"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFVar.html#a71e4fd7a1271a17e971ed90044e6da24"> 183</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SVFVar.html#a71e4fd7a1271a17e971ed90044e6da24">hasIncomingVariantGepEdge</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; SVFStmt::PAGKindToEdgeSetMapTy::const_iterator it = InEdgeKindToSetMap.find(<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a6b3a8902fc2aa68428e271012861a2a2">SVFStmt::VariantGep</a>);</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; <span class="keywordflow">if</span> (it != InEdgeKindToSetMap.end())</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; {</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <span class="keywordflow">return</span> (!it-&gt;second.empty());</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; }</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; }</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160;</div><div class="line"><a name="l00194"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFVar.html#ab137b1def56c6539b5048c84dfd92c7b"> 194</a></span>&#160; <span class="keyword">inline</span> SVFStmt::PAGEdgeSetTy::iterator <a class="code" href="classSVF_1_1SVFVar.html#ab137b1def56c6539b5048c84dfd92c7b">getIncomingEdgesBegin</a>(<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9">SVFStmt::PEDGEK</a> kind)<span class="keyword"> const</span></div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; SVFStmt::PAGKindToEdgeSetMapTy::const_iterator it = InEdgeKindToSetMap.find(kind);</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(it!=InEdgeKindToSetMap.end() &amp;&amp; <span class="stringliteral">&quot;The node does not have such kind of edge&quot;</span>);</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; <span class="keywordflow">return</span> it-&gt;second.begin();</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; }</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;</div><div class="line"><a name="l00202"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFVar.html#ab6cfd409bdb445cc1a7e50ed958b7d25"> 202</a></span>&#160; <span class="keyword">inline</span> SVFStmt::PAGEdgeSetTy::iterator <a class="code" href="classSVF_1_1SVFVar.html#ab6cfd409bdb445cc1a7e50ed958b7d25">getIncomingEdgesEnd</a>(<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9">SVFStmt::PEDGEK</a> kind)<span class="keyword"> const</span></div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; SVFStmt::PAGKindToEdgeSetMapTy::const_iterator it = InEdgeKindToSetMap.find(kind);</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(it!=InEdgeKindToSetMap.end() &amp;&amp; <span class="stringliteral">&quot;The node does not have such kind of edge&quot;</span>);</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; <span class="keywordflow">return</span> it-&gt;second.end();</div><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;</div><div class="line"><a name="l00210"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFVar.html#a9b00f9b5f8ad2422162f4396e2d8fa42"> 210</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SVFVar.html#a9b00f9b5f8ad2422162f4396e2d8fa42">hasOutgoingEdges</a>(<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9">SVFStmt::PEDGEK</a> kind)<span class="keyword"> const</span></div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; SVFStmt::PAGKindToEdgeSetMapTy::const_iterator it = OutEdgeKindToSetMap.find(kind);</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; <span class="keywordflow">if</span> (it != OutEdgeKindToSetMap.end())</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; <span class="keywordflow">return</span> (!it-&gt;second.empty());</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; }</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160;</div><div class="line"><a name="l00220"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFVar.html#adb1f35a6f8db19c48cf7fd6c8f4a8ff3"> 220</a></span>&#160; <span class="keyword">inline</span> SVFStmt::PAGEdgeSetTy::iterator <a class="code" href="classSVF_1_1SVFVar.html#adb1f35a6f8db19c48cf7fd6c8f4a8ff3">getOutgoingEdgesBegin</a>(<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9">SVFStmt::PEDGEK</a> kind)<span class="keyword"> const</span></div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; SVFStmt::PAGKindToEdgeSetMapTy::const_iterator it = OutEdgeKindToSetMap.find(kind);</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(it!=OutEdgeKindToSetMap.end() &amp;&amp; <span class="stringliteral">&quot;The node does not have such kind of edge&quot;</span>);</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; <span class="keywordflow">return</span> it-&gt;second.begin();</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; }</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160;</div><div class="line"><a name="l00228"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFVar.html#adec782d2f9d055b0dbcb56f511e75c24"> 228</a></span>&#160; <span class="keyword">inline</span> SVFStmt::PAGEdgeSetTy::iterator <a class="code" href="classSVF_1_1SVFVar.html#adec782d2f9d055b0dbcb56f511e75c24">getOutgoingEdgesEnd</a>(<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9">SVFStmt::PEDGEK</a> kind)<span class="keyword"> const</span></div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; SVFStmt::PAGKindToEdgeSetMapTy::const_iterator it = OutEdgeKindToSetMap.find(kind);</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(it!=OutEdgeKindToSetMap.end() &amp;&amp; <span class="stringliteral">&quot;The node does not have such kind of edge&quot;</span>);</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; <span class="keywordflow">return</span> it-&gt;second.end();</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; }</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160;</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160;</div><div class="line"><a name="l00238"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFVar.html#a9376133075b0d44ff09876af933c8618"> 238</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFVar.html#a9376133075b0d44ff09876af933c8618">addInEdge</a>(<a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a>* inEdge)</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; {</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; <a class="code" href="classSVF_1_1GenericNode.html#a363b90ab02cce2ebc3ede8e5b7cc141c">GNodeK</a> kind = inEdge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>();</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; InEdgeKindToSetMap[kind].insert(inEdge);</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; <a class="code" href="classSVF_1_1GenericNode.html#a93d217b0c9fd8008a2989ca2b4f3fbfb">addIncomingEdge</a>(inEdge);</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; }</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160;</div><div class="line"><a name="l00245"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFVar.html#a21a44c7a30e4e3743f6c3186fd7dbe8f"> 245</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFVar.html#a21a44c7a30e4e3743f6c3186fd7dbe8f">addOutEdge</a>(<a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a>* outEdge)</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; {</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; <a class="code" href="classSVF_1_1GenericNode.html#a363b90ab02cce2ebc3ede8e5b7cc141c">GNodeK</a> kind = outEdge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>();</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; OutEdgeKindToSetMap[kind].insert(outEdge);</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; <a class="code" href="classSVF_1_1GenericNode.html#ae74283fbc788665296a69e56f334557b">addOutgoingEdge</a>(outEdge);</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; }</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160;</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> std::string <a class="code" href="classSVF_1_1SVFVar.html#ada932ef2ae0a3e712174df479c35b0dd">toString</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160;</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFVar.html#aa34b2230655db9c4195e44e1c437bbc6">dump</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160;</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160;</div><div class="line"><a name="l00260"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFVar.html#a985930fc3a53ae8ff5fcb07d378f354b"> 260</a></span>&#160; <span class="keyword">friend</span> <a class="code" href="namespaceSVF.html#a424cc053c29ad7303699c529d1a2cc71">raw_ostream</a>&amp; <a class="code" href="classSVF_1_1SVFVar.html#a985930fc3a53ae8ff5fcb07d378f354b">operator&lt;&lt; </a>(<a class="code" href="namespaceSVF.html#a424cc053c29ad7303699c529d1a2cc71">raw_ostream</a> &amp;o, <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a> &amp;node)</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; {</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; o &lt;&lt; node.<a class="code" href="classSVF_1_1SVFVar.html#ada932ef2ae0a3e712174df479c35b0dd">toString</a>();</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; <span class="keywordflow">return</span> o;</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; }</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160;};</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160;</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160;</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160;</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160;<span class="comment"> * Value(Pointer) node</span></div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00273"></a><span class="lineno"><a class="line" href="classSVF_1_1ValVar.html"> 273</a></span>&#160;<span class="keyword">class </span><a class="code" href="classSVF_1_1ValVar.html">ValVar</a>: <span class="keyword">public</span> <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a></div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160;{</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160;</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160;</div><div class="line"><a name="l00279"></a><span class="lineno"><a class="line" href="classSVF_1_1ValVar.html#adbbf3c9ff5dcb10ac528d3eb4b69750c"> 279</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ValVar.html#adbbf3c9ff5dcb10ac528d3eb4b69750c">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1ValVar.html">ValVar</a> *)</div><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 class="line"><a name="l00283"></a><span class="lineno"><a class="line" href="classSVF_1_1ValVar.html#a71e5f4eaf74f852d3354ac6b0b65f39c"> 283</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ValVar.html#a71e5f4eaf74f852d3354ac6b0b65f39c">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a> *node)</div><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> node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#a391e996d695b114530120723da1d003e">getNodeKind</a>() == <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffa32d22852d39756992f87bd02def75f66">SVFVar::ValNode</a> ||</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#a391e996d695b114530120723da1d003e">getNodeKind</a>() == <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffa288e3f5d01c94d5c5d685d43f08a6c4a">SVFVar::GepValNode</a> ||</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#a391e996d695b114530120723da1d003e">getNodeKind</a>() == <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffa8299ae0d09f1b19411cb07cd79a2bae8">SVFVar::DummyValNode</a>;</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; }</div><div class="line"><a name="l00289"></a><span class="lineno"><a class="line" href="classSVF_1_1ValVar.html#a371f38564932cc04c6c4a00a99bf6c6a"> 289</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ValVar.html#a371f38564932cc04c6c4a00a99bf6c6a">classof</a>(<span class="keyword">const</span> GenericPAGNodeTy *node)</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; {</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; <span class="keywordflow">return</span> node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#a391e996d695b114530120723da1d003e">getNodeKind</a>() == <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffa32d22852d39756992f87bd02def75f66">SVFVar::ValNode</a> ||</div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#a391e996d695b114530120723da1d003e">getNodeKind</a>() == <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffa288e3f5d01c94d5c5d685d43f08a6c4a">SVFVar::GepValNode</a> ||</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#a391e996d695b114530120723da1d003e">getNodeKind</a>() == <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffa8299ae0d09f1b19411cb07cd79a2bae8">SVFVar::DummyValNode</a>;</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; }</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160;</div><div class="line"><a name="l00298"></a><span class="lineno"><a class="line" href="classSVF_1_1ValVar.html#ae5dc21b3327a100ffe3e0e2c876ba1bb"> 298</a></span>&#160; <a class="code" href="classSVF_1_1ValVar.html#ae5dc21b3327a100ffe3e0e2c876ba1bb">ValVar</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* val, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> i, <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeff">PNODEK</a> ty = <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffa32d22852d39756992f87bd02def75f66">ValNode</a>) :</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>(val, i, ty)</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; {</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; }</div><div class="line"><a name="l00303"></a><span class="lineno"><a class="line" href="classSVF_1_1ValVar.html#aeaccfd3bf5f968ad12d7e1a2426e5faa"> 303</a></span>&#160; <span class="keyword">inline</span> <span class="keyword">const</span> std::string <a class="code" href="classSVF_1_1ValVar.html#aeaccfd3bf5f968ad12d7e1a2426e5faa">getValueName</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SVFVar.html#a7deb494ac20ed56fca31a4f1fd92deea">value</a> &amp;&amp; <a class="code" href="classSVF_1_1SVFVar.html#a7deb494ac20ed56fca31a4f1fd92deea">value</a>-&gt;hasName())</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFVar.html#a7deb494ac20ed56fca31a4f1fd92deea">value</a>-&gt;getName().str();</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;&quot;</span>;</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; }</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160;</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> std::string <a class="code" href="classSVF_1_1SVFVar.html#ada932ef2ae0a3e712174df479c35b0dd">toString</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160;};</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160;</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160;</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160;<span class="comment"> * Memory Object node</span></div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00317"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjVar.html"> 317</a></span>&#160;<span class="keyword">class </span><a class="code" href="classSVF_1_1ObjVar.html">ObjVar</a>: <span class="keyword">public</span> <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a></div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160;{</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160;</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160;<span class="keyword">protected</span>:</div><div class="line"><a name="l00321"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjVar.html#a3d08dc1d15a449ff4b7018da4bfdcb88"> 321</a></span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1MemObj.html">MemObj</a>* <a class="code" href="classSVF_1_1ObjVar.html#a3d08dc1d15a449ff4b7018da4bfdcb88">mem</a>; </div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; <a class="code" href="classSVF_1_1ObjVar.html">ObjVar</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* val, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> i, <span class="keyword">const</span> <a class="code" href="classSVF_1_1MemObj.html">MemObj</a>* m, <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeff">PNODEK</a> ty = <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffae21504009be26916ccdfcb5de42e3e11">ObjNode</a>) :</div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>(val, i, ty), mem(m)</div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; {</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; }</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160;</div><div class="line"><a name="l00330"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjVar.html#ac127d3ee00a6bed2bdba2f24b389eb4b"> 330</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ObjVar.html#ac127d3ee00a6bed2bdba2f24b389eb4b">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1ObjVar.html">ObjVar</a> *)</div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160; {</div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; }</div><div class="line"><a name="l00334"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjVar.html#a78ee2be4a346728be947ce29d3820c13"> 334</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ObjVar.html#a78ee2be4a346728be947ce29d3820c13">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a> *node)</div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; {</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; <span class="keywordflow">return</span> node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#a391e996d695b114530120723da1d003e">getNodeKind</a>() == <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffae21504009be26916ccdfcb5de42e3e11">SVFVar::ObjNode</a> ||</div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#a391e996d695b114530120723da1d003e">getNodeKind</a>() == <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffaf3364b22f497146f06d1f4175a839f4f">SVFVar::GepObjNode</a> ||</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#a391e996d695b114530120723da1d003e">getNodeKind</a>() == <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffaabe491b0a744825250b97f407962c4a6">SVFVar::FIObjNode</a> ||</div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#a391e996d695b114530120723da1d003e">getNodeKind</a>() == <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffa1ab625ecaf51446246dcc2944d6559af">SVFVar::DummyObjNode</a> ||</div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#a391e996d695b114530120723da1d003e">getNodeKind</a>() == <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffabf9e21e7cbec690ad318a68cd5d756dc">SVFVar::CloneGepObjNode</a> ||</div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#a391e996d695b114530120723da1d003e">getNodeKind</a>() == <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffa2ca0654308fd181afcb1f20519a0247a">SVFVar::CloneFIObjNode</a> ||</div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160; node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#a391e996d695b114530120723da1d003e">getNodeKind</a>() == <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffab85277a3daeecc24c99b3da86108e482">SVFVar::CloneDummyObjNode</a>;</div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160; }</div><div class="line"><a name="l00344"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjVar.html#a42b68822afc39d415db8c29079caf9c8"> 344</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ObjVar.html#a42b68822afc39d415db8c29079caf9c8">classof</a>(<span class="keyword">const</span> GenericPAGNodeTy *node)</div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; {</div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160; <span class="keywordflow">return</span> node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#a391e996d695b114530120723da1d003e">getNodeKind</a>() == <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffae21504009be26916ccdfcb5de42e3e11">SVFVar::ObjNode</a> ||</div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160; node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#a391e996d695b114530120723da1d003e">getNodeKind</a>() == <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffaf3364b22f497146f06d1f4175a839f4f">SVFVar::GepObjNode</a> ||</div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160; node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#a391e996d695b114530120723da1d003e">getNodeKind</a>() == <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffaabe491b0a744825250b97f407962c4a6">SVFVar::FIObjNode</a> ||</div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160; node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#a391e996d695b114530120723da1d003e">getNodeKind</a>() == <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffa1ab625ecaf51446246dcc2944d6559af">SVFVar::DummyObjNode</a> ||</div><div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#a391e996d695b114530120723da1d003e">getNodeKind</a>() == <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffabf9e21e7cbec690ad318a68cd5d756dc">SVFVar::CloneGepObjNode</a> ||</div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#a391e996d695b114530120723da1d003e">getNodeKind</a>() == <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffa2ca0654308fd181afcb1f20519a0247a">SVFVar::CloneFIObjNode</a> ||</div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#a391e996d695b114530120723da1d003e">getNodeKind</a>() == <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffab85277a3daeecc24c99b3da86108e482">SVFVar::CloneDummyObjNode</a>;</div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160; }</div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160;</div><div class="line"><a name="l00357"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjVar.html#a6a4feb73b54e602407e35eeb09f55930"> 357</a></span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1MemObj.html">MemObj</a>* <a class="code" href="classSVF_1_1ObjVar.html#a6a4feb73b54e602407e35eeb09f55930">getMemObj</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160; <span class="keywordflow">return</span> mem;</div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; }</div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160;</div><div class="line"><a name="l00363"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjVar.html#ac1609e2e3b6843c6f7992e425771fce3"> 363</a></span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> std::string <a class="code" href="classSVF_1_1ObjVar.html#ac1609e2e3b6843c6f7992e425771fce3">getValueName</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SVFVar.html#a7deb494ac20ed56fca31a4f1fd92deea">value</a> &amp;&amp; <a class="code" href="classSVF_1_1SVFVar.html#a7deb494ac20ed56fca31a4f1fd92deea">value</a>-&gt;hasName())</div><div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFVar.html#a7deb494ac20ed56fca31a4f1fd92deea">value</a>-&gt;getName().str();</div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;&quot;</span>;</div><div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; }</div><div class="line"><a name="l00370"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjVar.html#aa1004c9973fb974ba1e52df80978321d"> 370</a></span>&#160; <span class="keyword">inline</span> <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">llvm::Type</a>* <a class="code" href="classSVF_1_1ObjVar.html#aa1004c9973fb974ba1e52df80978321d">getType</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160; <span class="keywordflow">return</span> mem-&gt;<a class="code" href="classSVF_1_1MemObj.html#aa4fa7a1b86d66692ffffeaee0e187216">getType</a>();</div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160; }</div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160;</div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> std::string <a class="code" href="classSVF_1_1SVFVar.html#ada932ef2ae0a3e712174df479c35b0dd">toString</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160;};</div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160;</div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160;</div><div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160;<span class="comment"> * Gep Value (Pointer) node, this node can be dynamic generated for field sensitive analysis</span></div><div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160;<span class="comment"> * e.g. memcpy, temp gep value node needs to be created</span></div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160;<span class="comment"> * Each Gep Value node is connected to base value node via gep edge</span></div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00384"></a><span class="lineno"><a class="line" href="classSVF_1_1GepValVar.html"> 384</a></span>&#160;<span class="keyword">class </span><a class="code" href="classSVF_1_1GepValVar.html">GepValVar</a>: <span class="keyword">public</span> <a class="code" href="classSVF_1_1ValVar.html">ValVar</a></div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160;{</div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160;</div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00388"></a><span class="lineno"><a class="line" href="classSVF_1_1GepValVar.html#a2ee5e9a2e5a92b32fd81fda09b560ad6"> 388</a></span>&#160; <a class="code" href="classSVF_1_1LocationSet.html">LocationSet</a> <a class="code" href="classSVF_1_1GepValVar.html#a2ee5e9a2e5a92b32fd81fda09b560ad6">ls</a>; <span class="comment">// LocationSet</span></div><div class="line"><a name="l00389"></a><span class="lineno"><a class="line" href="classSVF_1_1GepValVar.html#aaf5f5d3734e1db83c6d4f38d560b2f45"> 389</a></span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a> *<a class="code" href="classSVF_1_1GepValVar.html#aaf5f5d3734e1db83c6d4f38d560b2f45">gepValType</a>;</div><div class="line"><a name="l00390"></a><span class="lineno"><a class="line" href="classSVF_1_1GepValVar.html#a3a808d2401dd62833236b3466de6215d"> 390</a></span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1GepValVar.html#a3a808d2401dd62833236b3466de6215d">fieldIdx</a>;</div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160;</div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160;</div><div class="line"><a name="l00395"></a><span class="lineno"><a class="line" href="classSVF_1_1GepValVar.html#a28e42f01110a2d0a5f1f90bca14c5035"> 395</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1GepValVar.html#a28e42f01110a2d0a5f1f90bca14c5035">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1GepValVar.html">GepValVar</a> *)</div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160; {</div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160; }</div><div class="line"><a name="l00399"></a><span class="lineno"><a class="line" href="classSVF_1_1GepValVar.html#aea2c58dc4124157a23c2cc0fe050f158"> 399</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1GepValVar.html#aea2c58dc4124157a23c2cc0fe050f158">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1ValVar.html">ValVar</a> * node)</div><div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160; {</div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160; <span class="keywordflow">return</span> node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#a391e996d695b114530120723da1d003e">getNodeKind</a>() == <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffa288e3f5d01c94d5c5d685d43f08a6c4a">SVFVar::GepValNode</a>;</div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160; }</div><div class="line"><a name="l00403"></a><span class="lineno"><a class="line" href="classSVF_1_1GepValVar.html#a8f8f8e21cdfcccd7523dc2371c696ad8"> 403</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1GepValVar.html#a8f8f8e21cdfcccd7523dc2371c696ad8">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a> *node)</div><div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160; {</div><div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160; <span class="keywordflow">return</span> node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#a391e996d695b114530120723da1d003e">getNodeKind</a>() == <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffa288e3f5d01c94d5c5d685d43f08a6c4a">SVFVar::GepValNode</a>;</div><div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160; }</div><div class="line"><a name="l00407"></a><span class="lineno"><a class="line" href="classSVF_1_1GepValVar.html#a0aab756122dcce24faf556f0b7057dc1"> 407</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1GepValVar.html#a0aab756122dcce24faf556f0b7057dc1">classof</a>(<span class="keyword">const</span> GenericPAGNodeTy *node)</div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160; {</div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160; <span class="keywordflow">return</span> node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#a391e996d695b114530120723da1d003e">getNodeKind</a>() == <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffa288e3f5d01c94d5c5d685d43f08a6c4a">SVFVar::GepValNode</a>;</div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160; }</div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160;</div><div class="line"><a name="l00414"></a><span class="lineno"><a class="line" href="classSVF_1_1GepValVar.html#a9bad2709e0d82d2d4a8578cc57bdf9f5"> 414</a></span>&#160; <a class="code" href="classSVF_1_1GepValVar.html#a9bad2709e0d82d2d4a8578cc57bdf9f5">GepValVar</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* val, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> i, <span class="keyword">const</span> <a class="code" href="classSVF_1_1LocationSet.html">LocationSet</a>&amp; l, <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a> *ty, <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> idx) :</div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; <a class="code" href="classSVF_1_1ValVar.html">ValVar</a>(val, i, <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffa288e3f5d01c94d5c5d685d43f08a6c4a">GepValNode</a>), ls(l), gepValType(ty), fieldIdx(idx)</div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; {</div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; }</div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160;</div><div class="line"><a name="l00420"></a><span class="lineno"><a class="line" href="classSVF_1_1GepValVar.html#a149d738115af2bcd815306ee6eb91bb3"> 420</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1GepValVar.html#a149d738115af2bcd815306ee6eb91bb3">getOffset</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160; <span class="keywordflow">return</span> ls.<a class="code" href="classSVF_1_1LocationSet.html#ab85c3707152e03722bd631b2525f223e">getOffset</a>();</div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160; }</div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160;</div><div class="line"><a name="l00426"></a><span class="lineno"><a class="line" href="classSVF_1_1GepValVar.html#ae89482e674768298f49e51df4ebe63e3"> 426</a></span>&#160; <span class="keyword">inline</span> <span class="keyword">const</span> std::string <a class="code" href="classSVF_1_1GepValVar.html#ae89482e674768298f49e51df4ebe63e3">getValueName</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SVFVar.html#a7deb494ac20ed56fca31a4f1fd92deea">value</a> &amp;&amp; <a class="code" href="classSVF_1_1SVFVar.html#a7deb494ac20ed56fca31a4f1fd92deea">value</a>-&gt;hasName())</div><div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFVar.html#a7deb494ac20ed56fca31a4f1fd92deea">value</a>-&gt;getName().str() + <span class="stringliteral">&quot;_&quot;</span> + llvm::utostr(getOffset());</div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;offset_&quot;</span> + llvm::utostr(getOffset());</div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160; }</div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160;</div><div class="line"><a name="l00433"></a><span class="lineno"><a class="line" href="classSVF_1_1GepValVar.html#a2760700f067c6a2fbc4e6e626b603bc4"> 433</a></span>&#160; <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a>* <a class="code" href="classSVF_1_1GepValVar.html#a2760700f067c6a2fbc4e6e626b603bc4">getType</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160; <span class="keywordflow">return</span> gepValType;</div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160; }</div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160;</div><div class="line"><a name="l00438"></a><span class="lineno"><a class="line" href="classSVF_1_1GepValVar.html#ae6965dc3d70ff6d1877d29b8e7aa4af8"> 438</a></span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1GepValVar.html#ae6965dc3d70ff6d1877d29b8e7aa4af8">getFieldIdx</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160; <span class="keywordflow">return</span> fieldIdx;</div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160; }</div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160;</div><div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> std::string <a class="code" href="classSVF_1_1SVFVar.html#ada932ef2ae0a3e712174df479c35b0dd">toString</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160;};</div><div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160;</div><div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160;</div><div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160;<span class="comment"> * Gep Obj node, this is dynamic generated for field sensitive analysis</span></div><div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160;<span class="comment"> * Each gep obj node is one field of a MemObj (base)</span></div><div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00451"></a><span class="lineno"><a class="line" href="classSVF_1_1GepObjPN.html"> 451</a></span>&#160;<span class="keyword">class </span><a class="code" href="classSVF_1_1GepObjPN.html">GepObjPN</a>: <span class="keyword">public</span> <a class="code" href="classSVF_1_1ObjVar.html">ObjVar</a></div><div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160;{</div><div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00454"></a><span class="lineno"><a class="line" href="classSVF_1_1GepObjPN.html#ab7a3961b0a3f6a8cc89c3cd81168180b"> 454</a></span>&#160; <a class="code" href="classSVF_1_1LocationSet.html">LocationSet</a> <a class="code" href="classSVF_1_1GepObjPN.html#ab7a3961b0a3f6a8cc89c3cd81168180b">ls</a>;</div><div class="line"><a name="l00455"></a><span class="lineno"><a class="line" href="classSVF_1_1GepObjPN.html#ae67e495253fc881c24ef21e1f87e2fa6"> 455</a></span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> base = 0;</div><div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160;</div><div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160;</div><div class="line"><a name="l00460"></a><span class="lineno"><a class="line" href="classSVF_1_1GepObjPN.html#a3962464274d0c15ceb0206ebf6fa2b55"> 460</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1GepObjPN.html#a3962464274d0c15ceb0206ebf6fa2b55">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1GepObjPN.html">GepObjPN</a> *)</div><div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160; {</div><div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160; }</div><div class="line"><a name="l00464"></a><span class="lineno"><a class="line" href="classSVF_1_1GepObjPN.html#afab6d5a895e3c93776e4e05fd94ec747"> 464</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1GepObjPN.html#afab6d5a895e3c93776e4e05fd94ec747">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1ObjVar.html">ObjVar</a> * node)</div><div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160; {</div><div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160; <span class="keywordflow">return</span> node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#a391e996d695b114530120723da1d003e">getNodeKind</a>() == <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffaf3364b22f497146f06d1f4175a839f4f">SVFVar::GepObjNode</a></div><div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160; || node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#a391e996d695b114530120723da1d003e">getNodeKind</a>() == <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffabf9e21e7cbec690ad318a68cd5d756dc">SVFVar::CloneGepObjNode</a>;</div><div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160; }</div><div class="line"><a name="l00469"></a><span class="lineno"><a class="line" href="classSVF_1_1GepObjPN.html#acc3f9fa7564f419bf6a4ed75cf103eb1"> 469</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1GepObjPN.html#acc3f9fa7564f419bf6a4ed75cf103eb1">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a> *node)</div><div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160; {</div><div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160; <span class="keywordflow">return</span> node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#a391e996d695b114530120723da1d003e">getNodeKind</a>() == <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffaf3364b22f497146f06d1f4175a839f4f">SVFVar::GepObjNode</a></div><div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160; || node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#a391e996d695b114530120723da1d003e">getNodeKind</a>() == <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffabf9e21e7cbec690ad318a68cd5d756dc">SVFVar::CloneGepObjNode</a>;</div><div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160; }</div><div class="line"><a name="l00474"></a><span class="lineno"><a class="line" href="classSVF_1_1GepObjPN.html#aff84e3e6702f0e04ef41aae90d297009"> 474</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1GepObjPN.html#aff84e3e6702f0e04ef41aae90d297009">classof</a>(<span class="keyword">const</span> GenericPAGNodeTy *node)</div><div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160; {</div><div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160; <span class="keywordflow">return</span> node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#a391e996d695b114530120723da1d003e">getNodeKind</a>() == <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffaf3364b22f497146f06d1f4175a839f4f">SVFVar::GepObjNode</a></div><div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160; || node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#a391e996d695b114530120723da1d003e">getNodeKind</a>() == <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffabf9e21e7cbec690ad318a68cd5d756dc">SVFVar::CloneGepObjNode</a>;</div><div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160; }</div><div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160;</div><div class="line"><a name="l00482"></a><span class="lineno"><a class="line" href="classSVF_1_1GepObjPN.html#aadf56cdc45296514f142306e2556dcc1"> 482</a></span>&#160; <a class="code" href="classSVF_1_1GepObjPN.html#aadf56cdc45296514f142306e2556dcc1">GepObjPN</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1MemObj.html">MemObj</a>* mem, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> i, <span class="keyword">const</span> <a class="code" href="classSVF_1_1LocationSet.html">LocationSet</a>&amp; l, <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeff">PNODEK</a> ty = <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffaf3364b22f497146f06d1f4175a839f4f">GepObjNode</a>) :</div><div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160; <a class="code" href="classSVF_1_1ObjVar.html">ObjVar</a>(mem-&gt;<a class="code" href="classSVF_1_1SVFVar.html#afaa33caa8d2a306f6741d9d066243e40">getValue</a>(), i, mem, ty), ls(l)</div><div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160; {</div><div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160; base = mem-&gt;<a class="code" href="classSVF_1_1MemObj.html#a3ab6f65ffbf6442daac4d3f70f2d3cb1">getId</a>();</div><div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160; }</div><div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160;</div><div class="line"><a name="l00489"></a><span class="lineno"><a class="line" href="classSVF_1_1GepObjPN.html#aeb05e3a512e89c7af36c675e0efeec7e"> 489</a></span>&#160; <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1LocationSet.html">LocationSet</a>&amp; <a class="code" href="classSVF_1_1GepObjPN.html#aeb05e3a512e89c7af36c675e0efeec7e">getLocationSet</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160; <span class="keywordflow">return</span> ls;</div><div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160; }</div><div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160;</div><div class="line"><a name="l00495"></a><span class="lineno"><a class="line" href="classSVF_1_1GepObjPN.html#acf31acd60973d04b047fbc2e8d4ad4bf"> 495</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1GepObjPN.html#acf31acd60973d04b047fbc2e8d4ad4bf">setBaseNode</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> base)</div><div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160; {</div><div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160; this-&gt;base = base;</div><div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160; }</div><div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160;</div><div class="line"><a name="l00501"></a><span class="lineno"><a class="line" href="classSVF_1_1GepObjPN.html#aefa0383972a9c68e487ccf989a7e500c"> 501</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1GepObjPN.html#aefa0383972a9c68e487ccf989a7e500c">getBaseNode</a>(<span class="keywordtype">void</span>)<span class="keyword"> const</span></div><div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160; <span class="keywordflow">return</span> base;</div><div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160; }</div><div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160;</div><div class="line"><a name="l00507"></a><span class="lineno"><a class="line" href="classSVF_1_1GepObjPN.html#a685d6a3464890ba08d8d018ce2e8e3ff"> 507</a></span>&#160; <span class="keyword">inline</span> <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">llvm::Type</a>* <a class="code" href="classSVF_1_1GepObjPN.html#a685d6a3464890ba08d8d018ce2e8e3ff">getType</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#a267169023fc4f8dd66b145f7231fec11">SymbolTableInfo::SymbolInfo</a>()-&gt;<a class="code" href="classSVF_1_1SymbolTableInfo.html#a573bd5208467b2f905f5b2b1684feac8">getOrigSubTypeWithByteOffset</a>(mem-&gt;getType(), ls.<a class="code" href="classSVF_1_1LocationSet.html#a5322dcda48d6980c3f7aafa169fcd77d">getByteOffset</a>());</div><div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160; }</div><div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160;</div><div class="line"><a name="l00513"></a><span class="lineno"><a class="line" href="classSVF_1_1GepObjPN.html#a498b7ee3cf8d26fa18062f2bae0749c5"> 513</a></span>&#160; <span class="keyword">inline</span> <span class="keyword">const</span> std::string <a class="code" href="classSVF_1_1GepObjPN.html#a498b7ee3cf8d26fa18062f2bae0749c5">getValueName</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00515"></a><span class="lineno"> 515</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SVFVar.html#a7deb494ac20ed56fca31a4f1fd92deea">value</a> &amp;&amp; <a class="code" href="classSVF_1_1SVFVar.html#a7deb494ac20ed56fca31a4f1fd92deea">value</a>-&gt;hasName())</div><div class="line"><a name="l00516"></a><span class="lineno"> 516</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFVar.html#a7deb494ac20ed56fca31a4f1fd92deea">value</a>-&gt;getName().str() + <span class="stringliteral">&quot;_&quot;</span> + llvm::itostr(ls.<a class="code" href="classSVF_1_1LocationSet.html#ab85c3707152e03722bd631b2525f223e">getOffset</a>());</div><div class="line"><a name="l00517"></a><span class="lineno"> 517</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;offset_&quot;</span> + llvm::itostr(ls.<a class="code" href="classSVF_1_1LocationSet.html#ab85c3707152e03722bd631b2525f223e">getOffset</a>());</div><div class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160; }</div><div class="line"><a name="l00519"></a><span class="lineno"> 519</span>&#160;</div><div class="line"><a name="l00520"></a><span class="lineno"> 520</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> std::string <a class="code" href="classSVF_1_1SVFVar.html#ada932ef2ae0a3e712174df479c35b0dd">toString</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00521"></a><span class="lineno"> 521</span>&#160;};</div><div class="line"><a name="l00522"></a><span class="lineno"> 522</span>&#160;</div><div class="line"><a name="l00523"></a><span class="lineno"> 523</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00524"></a><span class="lineno"> 524</span>&#160;<span class="comment"> * Field-insensitive Gep Obj node, this is dynamic generated for field sensitive analysis</span></div><div class="line"><a name="l00525"></a><span class="lineno"> 525</span>&#160;<span class="comment"> * Each field-insensitive gep obj node represents all fields of a MemObj (base)</span></div><div class="line"><a name="l00526"></a><span class="lineno"> 526</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00527"></a><span class="lineno"><a class="line" href="classSVF_1_1FIObjVar.html"> 527</a></span>&#160;<span class="keyword">class </span><a class="code" href="classSVF_1_1FIObjVar.html">FIObjVar</a>: <span class="keyword">public</span> <a class="code" href="classSVF_1_1ObjVar.html">ObjVar</a></div><div class="line"><a name="l00528"></a><span class="lineno"> 528</span>&#160;{</div><div class="line"><a name="l00529"></a><span class="lineno"> 529</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00530"></a><span class="lineno"> 530</span>&#160;</div><div class="line"><a name="l00532"></a><span class="lineno"> 532</span>&#160;</div><div class="line"><a name="l00533"></a><span class="lineno"><a class="line" href="classSVF_1_1FIObjVar.html#a1801ca6c6cf3367eff5621fa7c788619"> 533</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1FIObjVar.html#a1801ca6c6cf3367eff5621fa7c788619">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1FIObjVar.html">FIObjVar</a> *)</div><div class="line"><a name="l00534"></a><span class="lineno"> 534</span>&#160; {</div><div class="line"><a name="l00535"></a><span class="lineno"> 535</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00536"></a><span class="lineno"> 536</span>&#160; }</div><div class="line"><a name="l00537"></a><span class="lineno"><a class="line" href="classSVF_1_1FIObjVar.html#a07ed7216777acb05861044542cc2fe66"> 537</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1FIObjVar.html#a07ed7216777acb05861044542cc2fe66">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1ObjVar.html">ObjVar</a> * node)</div><div class="line"><a name="l00538"></a><span class="lineno"> 538</span>&#160; {</div><div class="line"><a name="l00539"></a><span class="lineno"> 539</span>&#160; <span class="keywordflow">return</span> node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#a391e996d695b114530120723da1d003e">getNodeKind</a>() == <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffaabe491b0a744825250b97f407962c4a6">SVFVar::FIObjNode</a></div><div class="line"><a name="l00540"></a><span class="lineno"> 540</span>&#160; || node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#a391e996d695b114530120723da1d003e">getNodeKind</a>() == <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffa2ca0654308fd181afcb1f20519a0247a">SVFVar::CloneFIObjNode</a>;</div><div class="line"><a name="l00541"></a><span class="lineno"> 541</span>&#160; }</div><div class="line"><a name="l00542"></a><span class="lineno"><a class="line" href="classSVF_1_1FIObjVar.html#a1f6ba91fe429f55598cef983a2b3a538"> 542</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1FIObjVar.html#a1f6ba91fe429f55598cef983a2b3a538">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a> *node)</div><div class="line"><a name="l00543"></a><span class="lineno"> 543</span>&#160; {</div><div class="line"><a name="l00544"></a><span class="lineno"> 544</span>&#160; <span class="keywordflow">return</span> node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#a391e996d695b114530120723da1d003e">getNodeKind</a>() == <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffaabe491b0a744825250b97f407962c4a6">SVFVar::FIObjNode</a></div><div class="line"><a name="l00545"></a><span class="lineno"> 545</span>&#160; || node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#a391e996d695b114530120723da1d003e">getNodeKind</a>() == <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffa2ca0654308fd181afcb1f20519a0247a">SVFVar::CloneFIObjNode</a>;</div><div class="line"><a name="l00546"></a><span class="lineno"> 546</span>&#160; }</div><div class="line"><a name="l00547"></a><span class="lineno"><a class="line" href="classSVF_1_1FIObjVar.html#a73cd80e57f81d34b6295e110e3d43acc"> 547</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1FIObjVar.html#a73cd80e57f81d34b6295e110e3d43acc">classof</a>(<span class="keyword">const</span> GenericPAGNodeTy *node)</div><div class="line"><a name="l00548"></a><span class="lineno"> 548</span>&#160; {</div><div class="line"><a name="l00549"></a><span class="lineno"> 549</span>&#160; <span class="keywordflow">return</span> node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#a391e996d695b114530120723da1d003e">getNodeKind</a>() == <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffaabe491b0a744825250b97f407962c4a6">SVFVar::FIObjNode</a></div><div class="line"><a name="l00550"></a><span class="lineno"> 550</span>&#160; || node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#a391e996d695b114530120723da1d003e">getNodeKind</a>() == <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffa2ca0654308fd181afcb1f20519a0247a">SVFVar::CloneFIObjNode</a>;</div><div class="line"><a name="l00551"></a><span class="lineno"> 551</span>&#160; }</div><div class="line"><a name="l00553"></a><span class="lineno"> 553</span>&#160;</div><div class="line"><a name="l00555"></a><span class="lineno"><a class="line" href="classSVF_1_1FIObjVar.html#ae77995bc46e4f7b1b17fa86aa601ffae"> 555</a></span>&#160; <a class="code" href="classSVF_1_1FIObjVar.html#ae77995bc46e4f7b1b17fa86aa601ffae">FIObjVar</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* val, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> i, <span class="keyword">const</span> <a class="code" href="classSVF_1_1MemObj.html">MemObj</a>* mem, <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeff">PNODEK</a> ty = <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffaabe491b0a744825250b97f407962c4a6">FIObjNode</a>) :</div><div class="line"><a name="l00556"></a><span class="lineno"> 556</span>&#160; <a class="code" href="classSVF_1_1ObjVar.html">ObjVar</a>(val, i, mem, ty)</div><div class="line"><a name="l00557"></a><span class="lineno"> 557</span>&#160; {</div><div class="line"><a name="l00558"></a><span class="lineno"> 558</span>&#160; }</div><div class="line"><a name="l00559"></a><span class="lineno"> 559</span>&#160;</div><div class="line"><a name="l00561"></a><span class="lineno"><a class="line" href="classSVF_1_1FIObjVar.html#a330b28f8488de9e186bedf73e5576a08"> 561</a></span>&#160; <span class="keyword">inline</span> <span class="keyword">const</span> std::string <a class="code" href="classSVF_1_1FIObjVar.html#a330b28f8488de9e186bedf73e5576a08">getValueName</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00562"></a><span class="lineno"> 562</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00563"></a><span class="lineno"> 563</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SVFVar.html#a7deb494ac20ed56fca31a4f1fd92deea">value</a> &amp;&amp; <a class="code" href="classSVF_1_1SVFVar.html#a7deb494ac20ed56fca31a4f1fd92deea">value</a>-&gt;hasName())</div><div class="line"><a name="l00564"></a><span class="lineno"> 564</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFVar.html#a7deb494ac20ed56fca31a4f1fd92deea">value</a>-&gt;getName().str() + <span class="stringliteral">&quot; (base object)&quot;</span>;</div><div class="line"><a name="l00565"></a><span class="lineno"> 565</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot; (base object)&quot;</span>;</div><div class="line"><a name="l00566"></a><span class="lineno"> 566</span>&#160; }</div><div class="line"><a name="l00567"></a><span class="lineno"> 567</span>&#160;</div><div class="line"><a name="l00568"></a><span class="lineno"> 568</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> std::string <a class="code" href="classSVF_1_1SVFVar.html#ada932ef2ae0a3e712174df479c35b0dd">toString</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00569"></a><span class="lineno"> 569</span>&#160;};</div><div class="line"><a name="l00570"></a><span class="lineno"> 570</span>&#160;</div><div class="line"><a name="l00571"></a><span class="lineno"> 571</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00572"></a><span class="lineno"> 572</span>&#160;<span class="comment"> * Unique Return node of a procedure</span></div><div class="line"><a name="l00573"></a><span class="lineno"> 573</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00574"></a><span class="lineno"><a class="line" href="classSVF_1_1RetPN.html"> 574</a></span>&#160;<span class="keyword">class </span><a class="code" href="classSVF_1_1RetPN.html">RetPN</a>: <span class="keyword">public</span> <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a></div><div class="line"><a name="l00575"></a><span class="lineno"> 575</span>&#160;{</div><div class="line"><a name="l00576"></a><span class="lineno"> 576</span>&#160;</div><div class="line"><a name="l00577"></a><span class="lineno"> 577</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00578"></a><span class="lineno"> 578</span>&#160;</div><div class="line"><a name="l00580"></a><span class="lineno"><a class="line" href="classSVF_1_1RetPN.html#acedd9e576a077f96c0638065d4c70bcf"> 580</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1RetPN.html#acedd9e576a077f96c0638065d4c70bcf">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1RetPN.html">RetPN</a> *)</div><div class="line"><a name="l00581"></a><span class="lineno"> 581</span>&#160; {</div><div class="line"><a name="l00582"></a><span class="lineno"> 582</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00583"></a><span class="lineno"> 583</span>&#160; }</div><div class="line"><a name="l00584"></a><span class="lineno"><a class="line" href="classSVF_1_1RetPN.html#a5e9d174902aa6dcfae418697363967b9"> 584</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1RetPN.html#a5e9d174902aa6dcfae418697363967b9">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a> *node)</div><div class="line"><a name="l00585"></a><span class="lineno"> 585</span>&#160; {</div><div class="line"><a name="l00586"></a><span class="lineno"> 586</span>&#160; <span class="keywordflow">return</span> node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#a391e996d695b114530120723da1d003e">getNodeKind</a>() == <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffa5de2a8fce9a85f31818d58992b381b98">SVFVar::RetNode</a>;</div><div class="line"><a name="l00587"></a><span class="lineno"> 587</span>&#160; }</div><div class="line"><a name="l00588"></a><span class="lineno"><a class="line" href="classSVF_1_1RetPN.html#a69ee6310b7236bc1230fa63440b0f551"> 588</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1RetPN.html#a69ee6310b7236bc1230fa63440b0f551">classof</a>(<span class="keyword">const</span> GenericPAGNodeTy *node)</div><div class="line"><a name="l00589"></a><span class="lineno"> 589</span>&#160; {</div><div class="line"><a name="l00590"></a><span class="lineno"> 590</span>&#160; <span class="keywordflow">return</span> node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#a391e996d695b114530120723da1d003e">getNodeKind</a>() == <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffa5de2a8fce9a85f31818d58992b381b98">SVFVar::RetNode</a>;</div><div class="line"><a name="l00591"></a><span class="lineno"> 591</span>&#160; }</div><div class="line"><a name="l00593"></a><span class="lineno"> 593</span>&#160;</div><div class="line"><a name="l00595"></a><span class="lineno"><a class="line" href="classSVF_1_1RetPN.html#ac551c1aaf9ec3cb77814aa4664d61a23"> 595</a></span>&#160; <a class="code" href="classSVF_1_1RetPN.html#ac551c1aaf9ec3cb77814aa4664d61a23">RetPN</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* val, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> i) :</div><div class="line"><a name="l00596"></a><span class="lineno"> 596</span>&#160; <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>(val-&gt;getLLVMFun(), i, <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffa5de2a8fce9a85f31818d58992b381b98">RetNode</a>)</div><div class="line"><a name="l00597"></a><span class="lineno"> 597</span>&#160; {</div><div class="line"><a name="l00598"></a><span class="lineno"> 598</span>&#160; }</div><div class="line"><a name="l00599"></a><span class="lineno"> 599</span>&#160;</div><div class="line"><a name="l00601"></a><span class="lineno"><a class="line" href="classSVF_1_1RetPN.html#a48c099d2b441b4cc298166e2c5866c8f"> 601</a></span>&#160; <span class="keyword">const</span> std::string <a class="code" href="classSVF_1_1RetPN.html#a48c099d2b441b4cc298166e2c5866c8f">getValueName</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00602"></a><span class="lineno"> 602</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00603"></a><span class="lineno"> 603</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFVar.html#a7deb494ac20ed56fca31a4f1fd92deea">value</a>-&gt;getName().str() + <span class="stringliteral">&quot;_ret&quot;</span>;</div><div class="line"><a name="l00604"></a><span class="lineno"> 604</span>&#160; }</div><div class="line"><a name="l00605"></a><span class="lineno"> 605</span>&#160;</div><div class="line"><a name="l00606"></a><span class="lineno"> 606</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> std::string <a class="code" href="classSVF_1_1SVFVar.html#ada932ef2ae0a3e712174df479c35b0dd">toString</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00607"></a><span class="lineno"> 607</span>&#160;};</div><div class="line"><a name="l00608"></a><span class="lineno"> 608</span>&#160;</div><div class="line"><a name="l00609"></a><span class="lineno"> 609</span>&#160;</div><div class="line"><a name="l00610"></a><span class="lineno"> 610</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00611"></a><span class="lineno"> 611</span>&#160;<span class="comment"> * Unique vararg node of a procedure</span></div><div class="line"><a name="l00612"></a><span class="lineno"> 612</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00613"></a><span class="lineno"><a class="line" href="classSVF_1_1VarArgPN.html"> 613</a></span>&#160;<span class="keyword">class </span><a class="code" href="classSVF_1_1VarArgPN.html">VarArgPN</a>: <span class="keyword">public</span> <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a></div><div class="line"><a name="l00614"></a><span class="lineno"> 614</span>&#160;{</div><div class="line"><a name="l00615"></a><span class="lineno"> 615</span>&#160;</div><div class="line"><a name="l00616"></a><span class="lineno"> 616</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00617"></a><span class="lineno"> 617</span>&#160;</div><div class="line"><a name="l00619"></a><span class="lineno"><a class="line" href="classSVF_1_1VarArgPN.html#acaecf9e9d98c4a14fecee0877a72839c"> 619</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1VarArgPN.html#acaecf9e9d98c4a14fecee0877a72839c">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1VarArgPN.html">VarArgPN</a> *)</div><div class="line"><a name="l00620"></a><span class="lineno"> 620</span>&#160; {</div><div class="line"><a name="l00621"></a><span class="lineno"> 621</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00622"></a><span class="lineno"> 622</span>&#160; }</div><div class="line"><a name="l00623"></a><span class="lineno"><a class="line" href="classSVF_1_1VarArgPN.html#a2adee91065fef72cb8f64924aa83ec0a"> 623</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1VarArgPN.html#a2adee91065fef72cb8f64924aa83ec0a">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a> *node)</div><div class="line"><a name="l00624"></a><span class="lineno"> 624</span>&#160; {</div><div class="line"><a name="l00625"></a><span class="lineno"> 625</span>&#160; <span class="keywordflow">return</span> node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#a391e996d695b114530120723da1d003e">getNodeKind</a>() == <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffa5a13a457f037424f61e74165a9cdcebf">SVFVar::VarargNode</a>;</div><div class="line"><a name="l00626"></a><span class="lineno"> 626</span>&#160; }</div><div class="line"><a name="l00627"></a><span class="lineno"><a class="line" href="classSVF_1_1VarArgPN.html#a7f873a8015eb6a6b30530a7e5a69018d"> 627</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1VarArgPN.html#a7f873a8015eb6a6b30530a7e5a69018d">classof</a>(<span class="keyword">const</span> GenericPAGNodeTy *node)</div><div class="line"><a name="l00628"></a><span class="lineno"> 628</span>&#160; {</div><div class="line"><a name="l00629"></a><span class="lineno"> 629</span>&#160; <span class="keywordflow">return</span> node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#a391e996d695b114530120723da1d003e">getNodeKind</a>() == <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffa5a13a457f037424f61e74165a9cdcebf">SVFVar::VarargNode</a>;</div><div class="line"><a name="l00630"></a><span class="lineno"> 630</span>&#160; }</div><div class="line"><a name="l00632"></a><span class="lineno"> 632</span>&#160;</div><div class="line"><a name="l00634"></a><span class="lineno"><a class="line" href="classSVF_1_1VarArgPN.html#ad6ebe474373838bc6c00e8baaa3f7137"> 634</a></span>&#160; <a class="code" href="classSVF_1_1VarArgPN.html#ad6ebe474373838bc6c00e8baaa3f7137">VarArgPN</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* val, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> i) :</div><div class="line"><a name="l00635"></a><span class="lineno"> 635</span>&#160; <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>(val-&gt;getLLVMFun(), i, <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffa5a13a457f037424f61e74165a9cdcebf">VarargNode</a>)</div><div class="line"><a name="l00636"></a><span class="lineno"> 636</span>&#160; {</div><div class="line"><a name="l00637"></a><span class="lineno"> 637</span>&#160; }</div><div class="line"><a name="l00638"></a><span class="lineno"> 638</span>&#160;</div><div class="line"><a name="l00640"></a><span class="lineno"><a class="line" href="classSVF_1_1VarArgPN.html#aec7ac87f5fff58b24daea998aaf0cc2a"> 640</a></span>&#160; <span class="keyword">inline</span> <span class="keyword">const</span> std::string <a class="code" href="classSVF_1_1VarArgPN.html#aec7ac87f5fff58b24daea998aaf0cc2a">getValueName</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00641"></a><span class="lineno"> 641</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00642"></a><span class="lineno"> 642</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFVar.html#a7deb494ac20ed56fca31a4f1fd92deea">value</a>-&gt;getName().str() + <span class="stringliteral">&quot;_vararg&quot;</span>;</div><div class="line"><a name="l00643"></a><span class="lineno"> 643</span>&#160; }</div><div class="line"><a name="l00644"></a><span class="lineno"> 644</span>&#160;</div><div class="line"><a name="l00645"></a><span class="lineno"> 645</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> std::string <a class="code" href="classSVF_1_1SVFVar.html#ada932ef2ae0a3e712174df479c35b0dd">toString</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00646"></a><span class="lineno"> 646</span>&#160;};</div><div class="line"><a name="l00647"></a><span class="lineno"> 647</span>&#160;</div><div class="line"><a name="l00648"></a><span class="lineno"> 648</span>&#160;</div><div class="line"><a name="l00649"></a><span class="lineno"> 649</span>&#160;</div><div class="line"><a name="l00650"></a><span class="lineno"> 650</span>&#160;</div><div class="line"><a name="l00651"></a><span class="lineno"> 651</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00652"></a><span class="lineno"> 652</span>&#160;<span class="comment"> * Dummy node</span></div><div class="line"><a name="l00653"></a><span class="lineno"> 653</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00654"></a><span class="lineno"><a class="line" href="classSVF_1_1DummyValVar.html"> 654</a></span>&#160;<span class="keyword">class </span><a class="code" href="classSVF_1_1DummyValVar.html">DummyValVar</a>: <span class="keyword">public</span> <a class="code" href="classSVF_1_1ValVar.html">ValVar</a></div><div class="line"><a name="l00655"></a><span class="lineno"> 655</span>&#160;{</div><div class="line"><a name="l00656"></a><span class="lineno"> 656</span>&#160;</div><div class="line"><a name="l00657"></a><span class="lineno"> 657</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00658"></a><span class="lineno"> 658</span>&#160;</div><div class="line"><a name="l00660"></a><span class="lineno"><a class="line" href="classSVF_1_1DummyValVar.html#a06c603907dce56bea44f9a4f9da4d6c7"> 660</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1DummyValVar.html#a06c603907dce56bea44f9a4f9da4d6c7">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1DummyValVar.html">DummyValVar</a> *)</div><div class="line"><a name="l00661"></a><span class="lineno"> 661</span>&#160; {</div><div class="line"><a name="l00662"></a><span class="lineno"> 662</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00663"></a><span class="lineno"> 663</span>&#160; }</div><div class="line"><a name="l00664"></a><span class="lineno"><a class="line" href="classSVF_1_1DummyValVar.html#ac09e183185b178f16547bb355ccb01f3"> 664</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1DummyValVar.html#ac09e183185b178f16547bb355ccb01f3">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a> *node)</div><div class="line"><a name="l00665"></a><span class="lineno"> 665</span>&#160; {</div><div class="line"><a name="l00666"></a><span class="lineno"> 666</span>&#160; <span class="keywordflow">return</span> node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#a391e996d695b114530120723da1d003e">getNodeKind</a>() == <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffa8299ae0d09f1b19411cb07cd79a2bae8">SVFVar::DummyValNode</a>;</div><div class="line"><a name="l00667"></a><span class="lineno"> 667</span>&#160; }</div><div class="line"><a name="l00668"></a><span class="lineno"><a class="line" href="classSVF_1_1DummyValVar.html#abd4bbbbe43db12627923729a9d5a5442"> 668</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1DummyValVar.html#abd4bbbbe43db12627923729a9d5a5442">classof</a>(<span class="keyword">const</span> GenericPAGNodeTy *node)</div><div class="line"><a name="l00669"></a><span class="lineno"> 669</span>&#160; {</div><div class="line"><a name="l00670"></a><span class="lineno"> 670</span>&#160; <span class="keywordflow">return</span> node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#a391e996d695b114530120723da1d003e">getNodeKind</a>() == <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffa8299ae0d09f1b19411cb07cd79a2bae8">SVFVar::DummyValNode</a>;</div><div class="line"><a name="l00671"></a><span class="lineno"> 671</span>&#160; }</div><div class="line"><a name="l00673"></a><span class="lineno"> 673</span>&#160;</div><div class="line"><a name="l00675"></a><span class="lineno"><a class="line" href="classSVF_1_1DummyValVar.html#a39fb5acde002694e91599a67ff3ae99a"> 675</a></span>&#160; <a class="code" href="classSVF_1_1DummyValVar.html#a39fb5acde002694e91599a67ff3ae99a">DummyValVar</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> i) : <a class="code" href="classSVF_1_1ValVar.html">ValVar</a>(nullptr, i, <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffa8299ae0d09f1b19411cb07cd79a2bae8">DummyValNode</a>)</div><div class="line"><a name="l00676"></a><span class="lineno"> 676</span>&#160; {</div><div class="line"><a name="l00677"></a><span class="lineno"> 677</span>&#160; }</div><div class="line"><a name="l00678"></a><span class="lineno"> 678</span>&#160;</div><div class="line"><a name="l00679"></a><span class="lineno"> 679</span>&#160;</div><div class="line"><a name="l00681"></a><span class="lineno"><a class="line" href="classSVF_1_1DummyValVar.html#a188ddcb95f842245fb97362ff8a06efd"> 681</a></span>&#160; <span class="keyword">inline</span> <span class="keyword">const</span> std::string <a class="code" href="classSVF_1_1DummyValVar.html#a188ddcb95f842245fb97362ff8a06efd">getValueName</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00682"></a><span class="lineno"> 682</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00683"></a><span class="lineno"> 683</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;dummyVal&quot;</span>;</div><div class="line"><a name="l00684"></a><span class="lineno"> 684</span>&#160; }</div><div class="line"><a name="l00685"></a><span class="lineno"> 685</span>&#160;</div><div class="line"><a name="l00686"></a><span class="lineno"> 686</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> std::string <a class="code" href="classSVF_1_1SVFVar.html#ada932ef2ae0a3e712174df479c35b0dd">toString</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00687"></a><span class="lineno"> 687</span>&#160;};</div><div class="line"><a name="l00688"></a><span class="lineno"> 688</span>&#160;</div><div class="line"><a name="l00689"></a><span class="lineno"> 689</span>&#160;</div><div class="line"><a name="l00690"></a><span class="lineno"> 690</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00691"></a><span class="lineno"> 691</span>&#160;<span class="comment"> * Dummy node</span></div><div class="line"><a name="l00692"></a><span class="lineno"> 692</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00693"></a><span class="lineno"><a class="line" href="classSVF_1_1DummyObjVar.html"> 693</a></span>&#160;<span class="keyword">class </span><a class="code" href="classSVF_1_1DummyObjVar.html">DummyObjVar</a>: <span class="keyword">public</span> <a class="code" href="classSVF_1_1ObjVar.html">ObjVar</a></div><div class="line"><a name="l00694"></a><span class="lineno"> 694</span>&#160;{</div><div class="line"><a name="l00695"></a><span class="lineno"> 695</span>&#160;</div><div class="line"><a name="l00696"></a><span class="lineno"> 696</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00697"></a><span class="lineno"> 697</span>&#160;</div><div class="line"><a name="l00699"></a><span class="lineno"><a class="line" href="classSVF_1_1DummyObjVar.html#a543ca59bd39740d1080fe4702bc2fd69"> 699</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1DummyObjVar.html#a543ca59bd39740d1080fe4702bc2fd69">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1DummyObjVar.html">DummyObjVar</a> *)</div><div class="line"><a name="l00700"></a><span class="lineno"> 700</span>&#160; {</div><div class="line"><a name="l00701"></a><span class="lineno"> 701</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00702"></a><span class="lineno"> 702</span>&#160; }</div><div class="line"><a name="l00703"></a><span class="lineno"><a class="line" href="classSVF_1_1DummyObjVar.html#a9552d717a869b0ec6678843a56fc8695"> 703</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1DummyObjVar.html#a9552d717a869b0ec6678843a56fc8695">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a> *node)</div><div class="line"><a name="l00704"></a><span class="lineno"> 704</span>&#160; {</div><div class="line"><a name="l00705"></a><span class="lineno"> 705</span>&#160; <span class="keywordflow">return</span> node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#a391e996d695b114530120723da1d003e">getNodeKind</a>() == <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffa1ab625ecaf51446246dcc2944d6559af">SVFVar::DummyObjNode</a></div><div class="line"><a name="l00706"></a><span class="lineno"> 706</span>&#160; || node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#a391e996d695b114530120723da1d003e">getNodeKind</a>() == <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffab85277a3daeecc24c99b3da86108e482">SVFVar::CloneDummyObjNode</a>;</div><div class="line"><a name="l00707"></a><span class="lineno"> 707</span>&#160; }</div><div class="line"><a name="l00708"></a><span class="lineno"><a class="line" href="classSVF_1_1DummyObjVar.html#a6aefb8e6612cb6322e064ac3521fa849"> 708</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1DummyObjVar.html#a6aefb8e6612cb6322e064ac3521fa849">classof</a>(<span class="keyword">const</span> GenericPAGNodeTy *node)</div><div class="line"><a name="l00709"></a><span class="lineno"> 709</span>&#160; {</div><div class="line"><a name="l00710"></a><span class="lineno"> 710</span>&#160; <span class="keywordflow">return</span> node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#a391e996d695b114530120723da1d003e">getNodeKind</a>() == <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffa1ab625ecaf51446246dcc2944d6559af">SVFVar::DummyObjNode</a></div><div class="line"><a name="l00711"></a><span class="lineno"> 711</span>&#160; || node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#a391e996d695b114530120723da1d003e">getNodeKind</a>() == <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffab85277a3daeecc24c99b3da86108e482">SVFVar::CloneDummyObjNode</a>;</div><div class="line"><a name="l00712"></a><span class="lineno"> 712</span>&#160; }</div><div class="line"><a name="l00714"></a><span class="lineno"> 714</span>&#160;</div><div class="line"><a name="l00716"></a><span class="lineno"><a class="line" href="classSVF_1_1DummyObjVar.html#a3dff74bbf50b6a901239d3fd31e0f36c"> 716</a></span>&#160; <a class="code" href="classSVF_1_1DummyObjVar.html#a3dff74bbf50b6a901239d3fd31e0f36c">DummyObjVar</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> i,<span class="keyword">const</span> <a class="code" href="classSVF_1_1MemObj.html">MemObj</a>* m, <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeff">PNODEK</a> ty = <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffa1ab625ecaf51446246dcc2944d6559af">DummyObjNode</a>)</div><div class="line"><a name="l00717"></a><span class="lineno"> 717</span>&#160; : <a class="code" href="classSVF_1_1ObjVar.html">ObjVar</a>(nullptr, i, m, ty)</div><div class="line"><a name="l00718"></a><span class="lineno"> 718</span>&#160; {</div><div class="line"><a name="l00719"></a><span class="lineno"> 719</span>&#160; }</div><div class="line"><a name="l00720"></a><span class="lineno"> 720</span>&#160;</div><div class="line"><a name="l00722"></a><span class="lineno"><a class="line" href="classSVF_1_1DummyObjVar.html#aec23bc498cf78ed065565681e14dd2dd"> 722</a></span>&#160; <span class="keyword">inline</span> <span class="keyword">const</span> std::string <a class="code" href="classSVF_1_1DummyObjVar.html#aec23bc498cf78ed065565681e14dd2dd">getValueName</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00723"></a><span class="lineno"> 723</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00724"></a><span class="lineno"> 724</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;dummyObj&quot;</span>;</div><div class="line"><a name="l00725"></a><span class="lineno"> 725</span>&#160; }</div><div class="line"><a name="l00726"></a><span class="lineno"> 726</span>&#160;</div><div class="line"><a name="l00727"></a><span class="lineno"> 727</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> std::string <a class="code" href="classSVF_1_1SVFVar.html#ada932ef2ae0a3e712174df479c35b0dd">toString</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00728"></a><span class="lineno"> 728</span>&#160;};</div><div class="line"><a name="l00729"></a><span class="lineno"> 729</span>&#160;</div><div class="line"><a name="l00730"></a><span class="lineno"> 730</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00731"></a><span class="lineno"> 731</span>&#160;<span class="comment"> * Clone object node for dummy objects.</span></div><div class="line"><a name="l00732"></a><span class="lineno"> 732</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00733"></a><span class="lineno"><a class="line" href="classSVF_1_1CloneDummyObjVar.html"> 733</a></span>&#160;<span class="keyword">class </span><a class="code" href="classSVF_1_1CloneDummyObjVar.html">CloneDummyObjVar</a>: <span class="keyword">public</span> <a class="code" href="classSVF_1_1DummyObjVar.html">DummyObjVar</a></div><div class="line"><a name="l00734"></a><span class="lineno"> 734</span>&#160;{</div><div class="line"><a name="l00735"></a><span class="lineno"> 735</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00737"></a><span class="lineno"><a class="line" href="classSVF_1_1CloneDummyObjVar.html#a304eeab4eb7c441e49cfa3be008b11f6"> 737</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1CloneDummyObjVar.html#a304eeab4eb7c441e49cfa3be008b11f6">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CloneDummyObjVar.html">CloneDummyObjVar</a> *)</div><div class="line"><a name="l00738"></a><span class="lineno"> 738</span>&#160; {</div><div class="line"><a name="l00739"></a><span class="lineno"> 739</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00740"></a><span class="lineno"> 740</span>&#160; }</div><div class="line"><a name="l00741"></a><span class="lineno"><a class="line" href="classSVF_1_1CloneDummyObjVar.html#a6eb2439f433fe48a338b09a6ab017f7c"> 741</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1CloneDummyObjVar.html#a6eb2439f433fe48a338b09a6ab017f7c">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a> *node)</div><div class="line"><a name="l00742"></a><span class="lineno"> 742</span>&#160; {</div><div class="line"><a name="l00743"></a><span class="lineno"> 743</span>&#160; <span class="keywordflow">return</span> node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#a391e996d695b114530120723da1d003e">getNodeKind</a>() == <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffab85277a3daeecc24c99b3da86108e482">SVFVar::CloneDummyObjNode</a>;</div><div class="line"><a name="l00744"></a><span class="lineno"> 744</span>&#160; }</div><div class="line"><a name="l00745"></a><span class="lineno"><a class="line" href="classSVF_1_1CloneDummyObjVar.html#a982180a5ea7595f2d2320799056ff56d"> 745</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1CloneDummyObjVar.html#a982180a5ea7595f2d2320799056ff56d">classof</a>(<span class="keyword">const</span> GenericPAGNodeTy *node)</div><div class="line"><a name="l00746"></a><span class="lineno"> 746</span>&#160; {</div><div class="line"><a name="l00747"></a><span class="lineno"> 747</span>&#160; <span class="keywordflow">return</span> node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#a391e996d695b114530120723da1d003e">getNodeKind</a>() == <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffab85277a3daeecc24c99b3da86108e482">SVFVar::CloneDummyObjNode</a>;</div><div class="line"><a name="l00748"></a><span class="lineno"> 748</span>&#160; }</div><div class="line"><a name="l00750"></a><span class="lineno"> 750</span>&#160;</div><div class="line"><a name="l00752"></a><span class="lineno"><a class="line" href="classSVF_1_1CloneDummyObjVar.html#a2f2a74296d76349d472a71c4ee069aa0"> 752</a></span>&#160; <a class="code" href="classSVF_1_1CloneDummyObjVar.html#a2f2a74296d76349d472a71c4ee069aa0">CloneDummyObjVar</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> i, <span class="keyword">const</span> <a class="code" href="classSVF_1_1MemObj.html">MemObj</a>* m, <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeff">PNODEK</a> ty = <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffab85277a3daeecc24c99b3da86108e482">CloneDummyObjNode</a>)</div><div class="line"><a name="l00753"></a><span class="lineno"> 753</span>&#160; : <a class="code" href="classSVF_1_1DummyObjVar.html">DummyObjVar</a>(i, m, ty)</div><div class="line"><a name="l00754"></a><span class="lineno"> 754</span>&#160; {</div><div class="line"><a name="l00755"></a><span class="lineno"> 755</span>&#160; }</div><div class="line"><a name="l00756"></a><span class="lineno"> 756</span>&#160;</div><div class="line"><a name="l00758"></a><span class="lineno"><a class="line" href="classSVF_1_1CloneDummyObjVar.html#a2ddf5e4067c537a7dfd9bf74f7195931"> 758</a></span>&#160; <span class="keyword">inline</span> <span class="keyword">const</span> std::string <a class="code" href="classSVF_1_1CloneDummyObjVar.html#a2ddf5e4067c537a7dfd9bf74f7195931">getValueName</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00759"></a><span class="lineno"> 759</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00760"></a><span class="lineno"> 760</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;clone of &quot;</span> + <a class="code" href="classSVF_1_1ObjVar.html#ac1609e2e3b6843c6f7992e425771fce3">ObjVar::getValueName</a>();</div><div class="line"><a name="l00761"></a><span class="lineno"> 761</span>&#160; }</div><div class="line"><a name="l00762"></a><span class="lineno"> 762</span>&#160;</div><div class="line"><a name="l00763"></a><span class="lineno"> 763</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> std::string <a class="code" href="classSVF_1_1SVFVar.html#ada932ef2ae0a3e712174df479c35b0dd">toString</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00764"></a><span class="lineno"> 764</span>&#160;};</div><div class="line"><a name="l00765"></a><span class="lineno"> 765</span>&#160;</div><div class="line"><a name="l00766"></a><span class="lineno"> 766</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00767"></a><span class="lineno"> 767</span>&#160;<span class="comment"> * Clone object for GEP objects.</span></div><div class="line"><a name="l00768"></a><span class="lineno"> 768</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00769"></a><span class="lineno"><a class="line" href="classSVF_1_1CloneGepObjVar.html"> 769</a></span>&#160;<span class="keyword">class </span><a class="code" href="classSVF_1_1CloneGepObjVar.html">CloneGepObjVar</a> : <span class="keyword">public</span> <a class="code" href="classSVF_1_1GepObjPN.html">GepObjPN</a></div><div class="line"><a name="l00770"></a><span class="lineno"> 770</span>&#160;{</div><div class="line"><a name="l00771"></a><span class="lineno"> 771</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00773"></a><span class="lineno"><a class="line" href="classSVF_1_1CloneGepObjVar.html#a5f46eff05b965deeeed531bd9a87b464"> 773</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1CloneGepObjVar.html#a5f46eff05b965deeeed531bd9a87b464">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CloneGepObjVar.html">CloneGepObjVar</a> *)</div><div class="line"><a name="l00774"></a><span class="lineno"> 774</span>&#160; {</div><div class="line"><a name="l00775"></a><span class="lineno"> 775</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00776"></a><span class="lineno"> 776</span>&#160; }</div><div class="line"><a name="l00777"></a><span class="lineno"><a class="line" href="classSVF_1_1CloneGepObjVar.html#a2dc4176254a15071a35f8218036cd5bb"> 777</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1CloneGepObjVar.html#a2dc4176254a15071a35f8218036cd5bb">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a> *node)</div><div class="line"><a name="l00778"></a><span class="lineno"> 778</span>&#160; {</div><div class="line"><a name="l00779"></a><span class="lineno"> 779</span>&#160; <span class="keywordflow">return</span> node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#a391e996d695b114530120723da1d003e">getNodeKind</a>() == <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffabf9e21e7cbec690ad318a68cd5d756dc">SVFVar::CloneGepObjNode</a>;</div><div class="line"><a name="l00780"></a><span class="lineno"> 780</span>&#160; }</div><div class="line"><a name="l00781"></a><span class="lineno"><a class="line" href="classSVF_1_1CloneGepObjVar.html#a705b0eaaa7875c6e059cecd2d77f6968"> 781</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1CloneGepObjVar.html#a705b0eaaa7875c6e059cecd2d77f6968">classof</a>(<span class="keyword">const</span> GenericPAGNodeTy *node)</div><div class="line"><a name="l00782"></a><span class="lineno"> 782</span>&#160; {</div><div class="line"><a name="l00783"></a><span class="lineno"> 783</span>&#160; <span class="keywordflow">return</span> node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#a391e996d695b114530120723da1d003e">getNodeKind</a>() == <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffabf9e21e7cbec690ad318a68cd5d756dc">SVFVar::CloneGepObjNode</a>;</div><div class="line"><a name="l00784"></a><span class="lineno"> 784</span>&#160; }</div><div class="line"><a name="l00786"></a><span class="lineno"> 786</span>&#160;</div><div class="line"><a name="l00788"></a><span class="lineno"><a class="line" href="classSVF_1_1CloneGepObjVar.html#ab2b37ac7064e97665c04c778904e9888"> 788</a></span>&#160; <a class="code" href="classSVF_1_1CloneGepObjVar.html#ab2b37ac7064e97665c04c778904e9888">CloneGepObjVar</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1MemObj.html">MemObj</a>* mem, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> i, <span class="keyword">const</span> <a class="code" href="classSVF_1_1LocationSet.html">LocationSet</a>&amp; l, <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeff">PNODEK</a> ty = <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffabf9e21e7cbec690ad318a68cd5d756dc">CloneGepObjNode</a>) :</div><div class="line"><a name="l00789"></a><span class="lineno"> 789</span>&#160; <a class="code" href="classSVF_1_1GepObjPN.html">GepObjPN</a>(mem, i, l, ty)</div><div class="line"><a name="l00790"></a><span class="lineno"> 790</span>&#160; {</div><div class="line"><a name="l00791"></a><span class="lineno"> 791</span>&#160; }</div><div class="line"><a name="l00792"></a><span class="lineno"> 792</span>&#160;</div><div class="line"><a name="l00794"></a><span class="lineno"><a class="line" href="classSVF_1_1CloneGepObjVar.html#a9d4cf31155950c889b5965566ab3d45e"> 794</a></span>&#160; <span class="keyword">inline</span> <span class="keyword">const</span> std::string <a class="code" href="classSVF_1_1CloneGepObjVar.html#a9d4cf31155950c889b5965566ab3d45e">getValueName</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00795"></a><span class="lineno"> 795</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00796"></a><span class="lineno"> 796</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;clone (gep) of &quot;</span> + <a class="code" href="classSVF_1_1GepObjPN.html#a498b7ee3cf8d26fa18062f2bae0749c5">GepObjPN::getValueName</a>();</div><div class="line"><a name="l00797"></a><span class="lineno"> 797</span>&#160; }</div><div class="line"><a name="l00798"></a><span class="lineno"> 798</span>&#160;</div><div class="line"><a name="l00799"></a><span class="lineno"> 799</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> std::string <a class="code" href="classSVF_1_1SVFVar.html#ada932ef2ae0a3e712174df479c35b0dd">toString</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00800"></a><span class="lineno"> 800</span>&#160;};</div><div class="line"><a name="l00801"></a><span class="lineno"> 801</span>&#160;</div><div class="line"><a name="l00802"></a><span class="lineno"> 802</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00803"></a><span class="lineno"> 803</span>&#160;<span class="comment"> * Clone object for FI objects.</span></div><div class="line"><a name="l00804"></a><span class="lineno"> 804</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00805"></a><span class="lineno"><a class="line" href="classSVF_1_1CloneFIObjVar.html"> 805</a></span>&#160;<span class="keyword">class </span><a class="code" href="classSVF_1_1CloneFIObjVar.html">CloneFIObjVar</a> : <span class="keyword">public</span> <a class="code" href="classSVF_1_1FIObjVar.html">FIObjVar</a></div><div class="line"><a name="l00806"></a><span class="lineno"> 806</span>&#160;{</div><div class="line"><a name="l00807"></a><span class="lineno"> 807</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00809"></a><span class="lineno"><a class="line" href="classSVF_1_1CloneFIObjVar.html#a96a659f0a876b417ebdf6057db65c870"> 809</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1CloneFIObjVar.html#a96a659f0a876b417ebdf6057db65c870">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CloneFIObjVar.html">CloneFIObjVar</a> *)</div><div class="line"><a name="l00810"></a><span class="lineno"> 810</span>&#160; {</div><div class="line"><a name="l00811"></a><span class="lineno"> 811</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00812"></a><span class="lineno"> 812</span>&#160; }</div><div class="line"><a name="l00813"></a><span class="lineno"><a class="line" href="classSVF_1_1CloneFIObjVar.html#a71c3a2f27967bec62f65bed3d38e2c35"> 813</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1CloneFIObjVar.html#a71c3a2f27967bec62f65bed3d38e2c35">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a> *node)</div><div class="line"><a name="l00814"></a><span class="lineno"> 814</span>&#160; {</div><div class="line"><a name="l00815"></a><span class="lineno"> 815</span>&#160; <span class="keywordflow">return</span> node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#a391e996d695b114530120723da1d003e">getNodeKind</a>() == <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffa2ca0654308fd181afcb1f20519a0247a">SVFVar::CloneFIObjNode</a>;</div><div class="line"><a name="l00816"></a><span class="lineno"> 816</span>&#160; }</div><div class="line"><a name="l00817"></a><span class="lineno"><a class="line" href="classSVF_1_1CloneFIObjVar.html#a06ddad01d54e2676c7036c2e901235cb"> 817</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1CloneFIObjVar.html#a06ddad01d54e2676c7036c2e901235cb">classof</a>(<span class="keyword">const</span> GenericPAGNodeTy *node)</div><div class="line"><a name="l00818"></a><span class="lineno"> 818</span>&#160; {</div><div class="line"><a name="l00819"></a><span class="lineno"> 819</span>&#160; <span class="keywordflow">return</span> node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#a391e996d695b114530120723da1d003e">getNodeKind</a>() == <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffa2ca0654308fd181afcb1f20519a0247a">SVFVar::CloneFIObjNode</a>;</div><div class="line"><a name="l00820"></a><span class="lineno"> 820</span>&#160; }</div><div class="line"><a name="l00822"></a><span class="lineno"> 822</span>&#160;</div><div class="line"><a name="l00824"></a><span class="lineno"><a class="line" href="classSVF_1_1CloneFIObjVar.html#adeef2b67999d96aab854b25432ebb348"> 824</a></span>&#160; <a class="code" href="classSVF_1_1CloneFIObjVar.html#adeef2b67999d96aab854b25432ebb348">CloneFIObjVar</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* val, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> i, <span class="keyword">const</span> <a class="code" href="classSVF_1_1MemObj.html">MemObj</a>* mem, <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeff">PNODEK</a> ty = <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffa2ca0654308fd181afcb1f20519a0247a">CloneFIObjNode</a>) :</div><div class="line"><a name="l00825"></a><span class="lineno"> 825</span>&#160; <a class="code" href="classSVF_1_1FIObjVar.html">FIObjVar</a>(val, i, mem, ty)</div><div class="line"><a name="l00826"></a><span class="lineno"> 826</span>&#160; {</div><div class="line"><a name="l00827"></a><span class="lineno"> 827</span>&#160; }</div><div class="line"><a name="l00828"></a><span class="lineno"> 828</span>&#160;</div><div class="line"><a name="l00830"></a><span class="lineno"><a class="line" href="classSVF_1_1CloneFIObjVar.html#abac4095a6a60c321caa40f837a752803"> 830</a></span>&#160; <span class="keyword">inline</span> <span class="keyword">const</span> std::string <a class="code" href="classSVF_1_1CloneFIObjVar.html#abac4095a6a60c321caa40f837a752803">getValueName</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00831"></a><span class="lineno"> 831</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00832"></a><span class="lineno"> 832</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;clone (FI) of &quot;</span> + <a class="code" href="classSVF_1_1FIObjVar.html#a330b28f8488de9e186bedf73e5576a08">FIObjVar::getValueName</a>();</div><div class="line"><a name="l00833"></a><span class="lineno"> 833</span>&#160; }</div><div class="line"><a name="l00834"></a><span class="lineno"> 834</span>&#160;</div><div class="line"><a name="l00835"></a><span class="lineno"> 835</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> std::string <a class="code" href="classSVF_1_1SVFVar.html#ada932ef2ae0a3e712174df479c35b0dd">toString</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00836"></a><span class="lineno"> 836</span>&#160;};</div><div class="line"><a name="l00837"></a><span class="lineno"> 837</span>&#160;</div><div class="line"><a name="l00838"></a><span class="lineno"> 838</span>&#160;} <span class="comment">// End namespace SVF</span></div><div class="line"><a name="l00839"></a><span class="lineno"> 839</span>&#160;</div><div class="line"><a name="l00840"></a><span class="lineno"> 840</span>&#160;</div><div class="line"><a name="l00841"></a><span class="lineno"> 841</span>&#160;</div><div class="line"><a name="l00842"></a><span class="lineno"> 842</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* OBJECTANDSYMBOL_H_ */</span><span class="preprocessor"></span></div><div class="ttc" id="classSVF_1_1SVFVar_html_a9376133075b0d44ff09876af933c8618"><div class="ttname"><a href="classSVF_1_1SVFVar.html#a9376133075b0d44ff09876af933c8618">SVF::SVFVar::addInEdge</a></div><div class="ttdeci">void addInEdge(SVFStmt *inEdge)</div><div class="ttdoc">add methods of the components </div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00238">SVFVariables.h:238</a></div></div>
72
70
  <div class="ttc" id="classSVF_1_1RetPN_html_a69ee6310b7236bc1230fa63440b0f551"><div class="ttname"><a href="classSVF_1_1RetPN.html#a69ee6310b7236bc1230fa63440b0f551">SVF::RetPN::classof</a></div><div class="ttdeci">static bool classof(const GenericPAGNodeTy *node)</div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00588">SVFVariables.h:588</a></div></div>
73
- <div class="ttc" id="classSVF_1_1CloneFIObjPN_html_a25d870401deedea23c29523b02be9357"><div class="ttname"><a href="classSVF_1_1CloneFIObjPN.html#a25d870401deedea23c29523b02be9357">SVF::CloneFIObjPN::classof</a></div><div class="ttdeci">static bool classof(const CloneFIObjPN *)</div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00809">SVFVariables.h:809</a></div></div>
71
+ <div class="ttc" id="classSVF_1_1DummyValVar_html_abd4bbbbe43db12627923729a9d5a5442"><div class="ttname"><a href="classSVF_1_1DummyValVar.html#abd4bbbbe43db12627923729a9d5a5442">SVF::DummyValVar::classof</a></div><div class="ttdeci">static bool classof(const GenericPAGNodeTy *node)</div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00668">SVFVariables.h:668</a></div></div>
74
72
  <div class="ttc" id="classSVF_1_1GenericEdge_html_abe8525c542def8162b094c169a01993b"><div class="ttname"><a href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">SVF::GenericEdge::getEdgeKind</a></div><div class="ttdeci">GEdgeKind getEdgeKind() const</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00081">GenericGraph.h:81</a></div></div>
73
+ <div class="ttc" id="classSVF_1_1ObjVar_html_a78ee2be4a346728be947ce29d3820c13"><div class="ttname"><a href="classSVF_1_1ObjVar.html#a78ee2be4a346728be947ce29d3820c13">SVF::ObjVar::classof</a></div><div class="ttdeci">static bool classof(const SVFVar *node)</div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00334">SVFVariables.h:334</a></div></div>
74
+ <div class="ttc" id="classSVF_1_1ValVar_html_ae5dc21b3327a100ffe3e0e2c876ba1bb"><div class="ttname"><a href="classSVF_1_1ValVar.html#ae5dc21b3327a100ffe3e0e2c876ba1bb">SVF::ValVar::ValVar</a></div><div class="ttdeci">ValVar(const Value *val, NodeID i, PNODEK ty=ValNode)</div><div class="ttdoc">Constructor. </div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00298">SVFVariables.h:298</a></div></div>
75
75
  <div class="ttc" id="classSVF_1_1VarArgPN_html_a7f873a8015eb6a6b30530a7e5a69018d"><div class="ttname"><a href="classSVF_1_1VarArgPN.html#a7f873a8015eb6a6b30530a7e5a69018d">SVF::VarArgPN::classof</a></div><div class="ttdeci">static bool classof(const GenericPAGNodeTy *node)</div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00627">SVFVariables.h:627</a></div></div>
76
+ <div class="ttc" id="classSVF_1_1GepValVar_html_a9bad2709e0d82d2d4a8578cc57bdf9f5"><div class="ttname"><a href="classSVF_1_1GepValVar.html#a9bad2709e0d82d2d4a8578cc57bdf9f5">SVF::GepValVar::GepValVar</a></div><div class="ttdeci">GepValVar(const Value *val, NodeID i, const LocationSet &amp;l, const Type *ty, u32_t idx)</div><div class="ttdoc">Constructor. </div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00414">SVFVariables.h:414</a></div></div>
76
77
  <div class="ttc" id="classSVF_1_1MemObj_html"><div class="ttname"><a href="classSVF_1_1MemObj.html">SVF::MemObj</a></div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00421">SymbolTableInfo.h:421</a></div></div>
77
78
  <div class="ttc" id="classSVF_1_1SVFVar_html_a283f7c0c2eaae07c6865f73a0daafeffaabe491b0a744825250b97f407962c4a6"><div class="ttname"><a href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffaabe491b0a744825250b97f407962c4a6">SVF::SVFVar::FIObjNode</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00068">SVFVariables.h:68</a></div></div>
78
- <div class="ttc" id="classSVF_1_1GepValPN_html_a41d083e2ed08dd926a8228df5c42a4d7"><div class="ttname"><a href="classSVF_1_1GepValPN.html#a41d083e2ed08dd926a8228df5c42a4d7">SVF::GepValPN::gepValType</a></div><div class="ttdeci">const Type * gepValType</div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00389">SVFVariables.h:389</a></div></div>
79
79
  <div class="ttc" id="classSVF_1_1SVFVar_html_a9b00f9b5f8ad2422162f4396e2d8fa42"><div class="ttname"><a href="classSVF_1_1SVFVar.html#a9b00f9b5f8ad2422162f4396e2d8fa42">SVF::SVFVar::hasOutgoingEdges</a></div><div class="ttdeci">bool hasOutgoingEdges(SVFStmt::PEDGEK kind) const</div><div class="ttdoc">Has outgoing SVFIR edges. </div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00210">SVFVariables.h:210</a></div></div>
80
- <div class="ttc" id="classSVF_1_1GepValPN_html_a32ea9876708addd55d43200a67e2fa90"><div class="ttname"><a href="classSVF_1_1GepValPN.html#a32ea9876708addd55d43200a67e2fa90">SVF::GepValPN::classof</a></div><div class="ttdeci">static bool classof(const SVFVar *node)</div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00403">SVFVariables.h:403</a></div></div>
80
+ <div class="ttc" id="classSVF_1_1ValVar_html"><div class="ttname"><a href="classSVF_1_1ValVar.html">SVF::ValVar</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00273">SVFVariables.h:273</a></div></div>
81
81
  <div class="ttc" id="SVFStatements_8h_html"><div class="ttname"><a href="SVFStatements_8h.html">SVFStatements.h</a></div></div>
82
- <div class="ttc" id="classSVF_1_1GepValPN_html_a99654aefb5ebc08917a2fb09858ae340"><div class="ttname"><a href="classSVF_1_1GepValPN.html#a99654aefb5ebc08917a2fb09858ae340">SVF::GepValPN::classof</a></div><div class="ttdeci">static bool classof(const GenericPAGNodeTy *node)</div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00407">SVFVariables.h:407</a></div></div>
82
+ <div class="ttc" id="classSVF_1_1ObjVar_html_ac1609e2e3b6843c6f7992e425771fce3"><div class="ttname"><a href="classSVF_1_1ObjVar.html#ac1609e2e3b6843c6f7992e425771fce3">SVF::ObjVar::getValueName</a></div><div class="ttdeci">virtual const std::string getValueName() const</div><div class="ttdoc">Return name of a LLVM value. </div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00363">SVFVariables.h:363</a></div></div>
83
+ <div class="ttc" id="classSVF_1_1FIObjVar_html_a1f6ba91fe429f55598cef983a2b3a538"><div class="ttname"><a href="classSVF_1_1FIObjVar.html#a1f6ba91fe429f55598cef983a2b3a538">SVF::FIObjVar::classof</a></div><div class="ttdeci">static bool classof(const SVFVar *node)</div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00542">SVFVariables.h:542</a></div></div>
83
84
  <div class="ttc" id="classSVF_1_1GenericNode_html_a363b90ab02cce2ebc3ede8e5b7cc141c"><div class="ttname"><a href="classSVF_1_1GenericNode.html#a363b90ab02cce2ebc3ede8e5b7cc141c">SVF::GenericNode::GNodeK</a></div><div class="ttdeci">s32_t GNodeK</div><div class="ttdoc">Edge kind. </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00135">GenericGraph.h:135</a></div></div>
84
- <div class="ttc" id="classSVF_1_1ObjPN_html_a63ee5624271a63c2dc4f7f3ed2dcefdf"><div class="ttname"><a href="classSVF_1_1ObjPN.html#a63ee5624271a63c2dc4f7f3ed2dcefdf">SVF::ObjPN::getMemObj</a></div><div class="ttdeci">const MemObj * getMemObj() const</div><div class="ttdoc">Return memory object. </div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00357">SVFVariables.h:357</a></div></div>
85
85
  <div class="ttc" id="namespaceSVF_html_a424cc053c29ad7303699c529d1a2cc71"><div class="ttname"><a href="namespaceSVF.html#a424cc053c29ad7303699c529d1a2cc71">SVF::raw_ostream</a></div><div class="ttdeci">llvm::raw_ostream raw_ostream</div><div class="ttdoc">LLVM outputs. </div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00099">BasicTypes.h:99</a></div></div>
86
86
  <div class="ttc" id="classSVF_1_1SVFVar_html_a747b2c92c81d32fcd357e80d2d8fe7cc"><div class="ttname"><a href="classSVF_1_1SVFVar.html#a747b2c92c81d32fcd357e80d2d8fe7cc">SVF::SVFVar::hasIncomingEdges</a></div><div class="ttdeci">bool hasIncomingEdges(SVFStmt::PEDGEK kind) const</div><div class="ttdoc">Has incoming SVFIR edges. </div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00173">SVFVariables.h:173</a></div></div>
87
87
  <div class="ttc" id="classSVF_1_1GepObjPN_html_ab7a3961b0a3f6a8cc89c3cd81168180b"><div class="ttname"><a href="classSVF_1_1GepObjPN.html#ab7a3961b0a3f6a8cc89c3cd81168180b">SVF::GepObjPN::ls</a></div><div class="ttdeci">LocationSet ls</div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00454">SVFVariables.h:454</a></div></div>
@@ -91,152 +91,152 @@ $(function() {
91
91
  <div class="ttc" id="classSVF_1_1SVFStmt_html_a0ab8621e75e75f03425c323b3ed62ce9"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9">SVF::SVFStmt::PEDGEK</a></div><div class="ttdeci">PEDGEK</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00054">SVFStatements.h:54</a></div></div>
92
92
  <div class="ttc" id="namespaceSVF_html_a1d008c0666c145622b81d427be64c52d"><div class="ttname"><a href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">SVF::Type</a></div><div class="ttdeci">llvm::Type Type</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00075">BasicTypes.h:75</a></div></div>
93
93
  <div class="ttc" id="classSVF_1_1SVFVar_html_a24daf5faa4b1d159c193e61951d17414"><div class="ttname"><a href="classSVF_1_1SVFVar.html#a24daf5faa4b1d159c193e61951d17414">SVF::SVFVar::SVFVar</a></div><div class="ttdeci">SVFVar(const Value *val, NodeID i, PNODEK k)</div><div class="ttdoc">address-taken pointer </div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8cpp_source.html#l00040">SVFVariables.cpp:40</a></div></div>
94
+ <div class="ttc" id="classSVF_1_1GepValVar_html_a2760700f067c6a2fbc4e6e626b603bc4"><div class="ttname"><a href="classSVF_1_1GepValVar.html#a2760700f067c6a2fbc4e6e626b603bc4">SVF::GepValVar::getType</a></div><div class="ttdeci">const Type * getType() const</div><div class="ttdoc">Return type of the value. </div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00433">SVFVariables.h:433</a></div></div>
94
95
  <div class="ttc" id="classSVF_1_1SVFVar_html_a08ef88f516402ce512eb3cb7dab9271d"><div class="ttname"><a href="classSVF_1_1SVFVar.html#a08ef88f516402ce512eb3cb7dab9271d">SVF::SVFVar::OutEdgeKindToSetMap</a></div><div class="ttdeci">SVFStmt::PAGKindToEdgeSetMapTy OutEdgeKindToSetMap</div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00080">SVFVariables.h:80</a></div></div>
95
- <div class="ttc" id="classSVF_1_1GepValPN_html_aae597b40c984a5a0226d630f7564cefb"><div class="ttname"><a href="classSVF_1_1GepValPN.html#aae597b40c984a5a0226d630f7564cefb">SVF::GepValPN::getType</a></div><div class="ttdeci">const Type * getType() const</div><div class="ttdoc">Return type of the value. </div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00433">SVFVariables.h:433</a></div></div>
96
96
  <div class="ttc" id="classSVF_1_1LocationSet_html_a5322dcda48d6980c3f7aafa169fcd77d"><div class="ttname"><a href="classSVF_1_1LocationSet.html#a5322dcda48d6980c3f7aafa169fcd77d">SVF::LocationSet::getByteOffset</a></div><div class="ttdeci">Size_t getByteOffset() const</div><div class="ttdef"><b>Definition:</b> <a href="LocationSet_8h_source.html#l00197">LocationSet.h:197</a></div></div>
97
97
  <div class="ttc" id="classSVF_1_1GepObjPN_html_acf31acd60973d04b047fbc2e8d4ad4bf"><div class="ttname"><a href="classSVF_1_1GepObjPN.html#acf31acd60973d04b047fbc2e8d4ad4bf">SVF::GepObjPN::setBaseNode</a></div><div class="ttdeci">void setBaseNode(NodeID base)</div><div class="ttdoc">Set the base object from which this GEP node came from. </div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00495">SVFVariables.h:495</a></div></div>
98
98
  <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>
99
+ <div class="ttc" id="classSVF_1_1FIObjVar_html_ae77995bc46e4f7b1b17fa86aa601ffae"><div class="ttname"><a href="classSVF_1_1FIObjVar.html#ae77995bc46e4f7b1b17fa86aa601ffae">SVF::FIObjVar::FIObjVar</a></div><div class="ttdeci">FIObjVar(const Value *val, NodeID i, const MemObj *mem, PNODEK ty=FIObjNode)</div><div class="ttdoc">Constructor. </div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00555">SVFVariables.h:555</a></div></div>
99
100
  <div class="ttc" id="classSVF_1_1RetPN_html_a5e9d174902aa6dcfae418697363967b9"><div class="ttname"><a href="classSVF_1_1RetPN.html#a5e9d174902aa6dcfae418697363967b9">SVF::RetPN::classof</a></div><div class="ttdeci">static bool classof(const SVFVar *node)</div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00584">SVFVariables.h:584</a></div></div>
100
101
  <div class="ttc" id="classSVF_1_1SVFFunction_html"><div class="ttname"><a href="classSVF_1_1SVFFunction.html">SVF::SVFFunction</a></div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00233">BasicTypes.h:233</a></div></div>
101
102
  <div class="ttc" id="classSVF_1_1GepObjPN_html_acc3f9fa7564f419bf6a4ed75cf103eb1"><div class="ttname"><a href="classSVF_1_1GepObjPN.html#acc3f9fa7564f419bf6a4ed75cf103eb1">SVF::GepObjPN::classof</a></div><div class="ttdeci">static bool classof(const SVFVar *node)</div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00469">SVFVariables.h:469</a></div></div>
102
- <div class="ttc" id="classSVF_1_1CloneDummyObjPN_html_a2239f9e2aaa61bed50d0c33d3ad8e0ea"><div class="ttname"><a href="classSVF_1_1CloneDummyObjPN.html#a2239f9e2aaa61bed50d0c33d3ad8e0ea">SVF::CloneDummyObjPN::getValueName</a></div><div class="ttdeci">const std::string getValueName() const</div><div class="ttdoc">Return name of this node. </div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00758">SVFVariables.h:758</a></div></div>
103
+ <div class="ttc" id="classSVF_1_1ObjVar_html_ac127d3ee00a6bed2bdba2f24b389eb4b"><div class="ttname"><a href="classSVF_1_1ObjVar.html#ac127d3ee00a6bed2bdba2f24b389eb4b">SVF::ObjVar::classof</a></div><div class="ttdeci">static bool classof(const ObjVar *)</div><div class="ttdoc">Methods for support type inquiry through isa, cast, and dyn_cast: </div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00330">SVFVariables.h:330</a></div></div>
104
+ <div class="ttc" id="classSVF_1_1CloneFIObjVar_html"><div class="ttname"><a href="classSVF_1_1CloneFIObjVar.html">SVF::CloneFIObjVar</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00805">SVFVariables.h:805</a></div></div>
103
105
  <div class="ttc" id="classSVF_1_1SVFVar_html_a283f7c0c2eaae07c6865f73a0daafeffabf9e21e7cbec690ad318a68cd5d756dc"><div class="ttname"><a href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffabf9e21e7cbec690ad318a68cd5d756dc">SVF::SVFVar::CloneGepObjNode</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00071">SVFVariables.h:71</a></div></div>
104
- <div class="ttc" id="classSVF_1_1GepValPN_html_a9d9febd06c0802c33eab574458e9e771"><div class="ttname"><a href="classSVF_1_1GepValPN.html#a9d9febd06c0802c33eab574458e9e771">SVF::GepValPN::classof</a></div><div class="ttdeci">static bool classof(const ValPN *node)</div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00399">SVFVariables.h:399</a></div></div>
105
106
  <div class="ttc" id="classSVF_1_1MemObj_html_aa4fa7a1b86d66692ffffeaee0e187216"><div class="ttname"><a href="classSVF_1_1MemObj.html#aa4fa7a1b86d66692ffffeaee0e187216">SVF::MemObj::getType</a></div><div class="ttdeci">const Type * getType() const</div><div class="ttdoc">Get obj type. </div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00787">SymbolTableInfo.cpp:787</a></div></div>
106
107
  <div class="ttc" id="classSVF_1_1RetPN_html_ac551c1aaf9ec3cb77814aa4664d61a23"><div class="ttname"><a href="classSVF_1_1RetPN.html#ac551c1aaf9ec3cb77814aa4664d61a23">SVF::RetPN::RetPN</a></div><div class="ttdeci">RetPN(const SVFFunction *val, NodeID i)</div><div class="ttdoc">Constructor. </div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00595">SVFVariables.h:595</a></div></div>
107
108
  <div class="ttc" id="classSVF_1_1SVFVar_html_ab6cfd409bdb445cc1a7e50ed958b7d25"><div class="ttname"><a href="classSVF_1_1SVFVar.html#ab6cfd409bdb445cc1a7e50ed958b7d25">SVF::SVFVar::getIncomingEdgesEnd</a></div><div class="ttdeci">SVFStmt::PAGEdgeSetTy::iterator getIncomingEdgesEnd(SVFStmt::PEDGEK kind) const</div><div class="ttdoc">Get incoming SVFStmt iterator. </div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00202">SVFVariables.h:202</a></div></div>
108
- <div class="ttc" id="classSVF_1_1FIObjPN_html_a1245f021c468c46d6136599455350b85"><div class="ttname"><a href="classSVF_1_1FIObjPN.html#a1245f021c468c46d6136599455350b85">SVF::FIObjPN::classof</a></div><div class="ttdeci">static bool classof(const SVFVar *node)</div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00542">SVFVariables.h:542</a></div></div>
109
+ <div class="ttc" id="classSVF_1_1GepValVar_html_a0aab756122dcce24faf556f0b7057dc1"><div class="ttname"><a href="classSVF_1_1GepValVar.html#a0aab756122dcce24faf556f0b7057dc1">SVF::GepValVar::classof</a></div><div class="ttdeci">static bool classof(const GenericPAGNodeTy *node)</div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00407">SVFVariables.h:407</a></div></div>
109
110
  <div class="ttc" id="classSVF_1_1SVFVar_html_a283f7c0c2eaae07c6865f73a0daafeffa8299ae0d09f1b19411cb07cd79a2bae8"><div class="ttname"><a href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffa8299ae0d09f1b19411cb07cd79a2bae8">SVF::SVFVar::DummyValNode</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00069">SVFVariables.h:69</a></div></div>
110
- <div class="ttc" id="classSVF_1_1DummyObjPN_html_ac9b505a9c6176729edf350f1db6874dd"><div class="ttname"><a href="classSVF_1_1DummyObjPN.html#ac9b505a9c6176729edf350f1db6874dd">SVF::DummyObjPN::DummyObjPN</a></div><div class="ttdeci">DummyObjPN(NodeID i, const MemObj *m, PNODEK ty=DummyObjNode)</div><div class="ttdoc">Constructor. </div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00716">SVFVariables.h:716</a></div></div>
111
+ <div class="ttc" id="classSVF_1_1GepValVar_html_a2ee5e9a2e5a92b32fd81fda09b560ad6"><div class="ttname"><a href="classSVF_1_1GepValVar.html#a2ee5e9a2e5a92b32fd81fda09b560ad6">SVF::GepValVar::ls</a></div><div class="ttdeci">LocationSet ls</div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00388">SVFVariables.h:388</a></div></div>
111
112
  <div class="ttc" id="classSVF_1_1VarArgPN_html_aec7ac87f5fff58b24daea998aaf0cc2a"><div class="ttname"><a href="classSVF_1_1VarArgPN.html#aec7ac87f5fff58b24daea998aaf0cc2a">SVF::VarArgPN::getValueName</a></div><div class="ttdeci">const std::string getValueName() const</div><div class="ttdoc">Return name of a LLVM value. </div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00640">SVFVariables.h:640</a></div></div>
112
113
  <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>
113
114
  <div class="ttc" id="classSVF_1_1SVFVar_html_adec782d2f9d055b0dbcb56f511e75c24"><div class="ttname"><a href="classSVF_1_1SVFVar.html#adec782d2f9d055b0dbcb56f511e75c24">SVF::SVFVar::getOutgoingEdgesEnd</a></div><div class="ttdeci">SVFStmt::PAGEdgeSetTy::iterator getOutgoingEdgesEnd(SVFStmt::PEDGEK kind) const</div><div class="ttdoc">Get outgoing SVFStmt iterator. </div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00228">SVFVariables.h:228</a></div></div>
115
+ <div class="ttc" id="classSVF_1_1DummyValVar_html_ac09e183185b178f16547bb355ccb01f3"><div class="ttname"><a href="classSVF_1_1DummyValVar.html#ac09e183185b178f16547bb355ccb01f3">SVF::DummyValVar::classof</a></div><div class="ttdeci">static bool classof(const SVFVar *node)</div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00664">SVFVariables.h:664</a></div></div>
116
+ <div class="ttc" id="classSVF_1_1ObjVar_html"><div class="ttname"><a href="classSVF_1_1ObjVar.html">SVF::ObjVar</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00317">SVFVariables.h:317</a></div></div>
114
117
  <div class="ttc" id="classSVF_1_1SVFVar_html_a283f7c0c2eaae07c6865f73a0daafeffaf3364b22f497146f06d1f4175a839f4f"><div class="ttname"><a href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffaf3364b22f497146f06d1f4175a839f4f">SVF::SVFVar::GepObjNode</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00067">SVFVariables.h:67</a></div></div>
115
- <div class="ttc" id="classSVF_1_1CloneGepObjPN_html"><div class="ttname"><a href="classSVF_1_1CloneGepObjPN.html">SVF::CloneGepObjPN</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00769">SVFVariables.h:769</a></div></div>
116
- <div class="ttc" id="classSVF_1_1CloneDummyObjPN_html"><div class="ttname"><a href="classSVF_1_1CloneDummyObjPN.html">SVF::CloneDummyObjPN</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00733">SVFVariables.h:733</a></div></div>
118
+ <div class="ttc" id="classSVF_1_1FIObjVar_html_a07ed7216777acb05861044542cc2fe66"><div class="ttname"><a href="classSVF_1_1FIObjVar.html#a07ed7216777acb05861044542cc2fe66">SVF::FIObjVar::classof</a></div><div class="ttdeci">static bool classof(const ObjVar *node)</div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00537">SVFVariables.h:537</a></div></div>
119
+ <div class="ttc" id="classSVF_1_1DummyObjVar_html_aec23bc498cf78ed065565681e14dd2dd"><div class="ttname"><a href="classSVF_1_1DummyObjVar.html#aec23bc498cf78ed065565681e14dd2dd">SVF::DummyObjVar::getValueName</a></div><div class="ttdeci">const std::string getValueName() const</div><div class="ttdoc">Return name of this node. </div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00722">SVFVariables.h:722</a></div></div>
120
+ <div class="ttc" id="classSVF_1_1DummyObjVar_html"><div class="ttname"><a href="classSVF_1_1DummyObjVar.html">SVF::DummyObjVar</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00693">SVFVariables.h:693</a></div></div>
121
+ <div class="ttc" id="classSVF_1_1GepValVar_html_a8f8f8e21cdfcccd7523dc2371c696ad8"><div class="ttname"><a href="classSVF_1_1GepValVar.html#a8f8f8e21cdfcccd7523dc2371c696ad8">SVF::GepValVar::classof</a></div><div class="ttdeci">static bool classof(const SVFVar *node)</div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00403">SVFVariables.h:403</a></div></div>
122
+ <div class="ttc" id="classSVF_1_1CloneGepObjVar_html_a705b0eaaa7875c6e059cecd2d77f6968"><div class="ttname"><a href="classSVF_1_1CloneGepObjVar.html#a705b0eaaa7875c6e059cecd2d77f6968">SVF::CloneGepObjVar::classof</a></div><div class="ttdeci">static bool classof(const GenericPAGNodeTy *node)</div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00781">SVFVariables.h:781</a></div></div>
123
+ <div class="ttc" id="classSVF_1_1CloneDummyObjVar_html_a2f2a74296d76349d472a71c4ee069aa0"><div class="ttname"><a href="classSVF_1_1CloneDummyObjVar.html#a2f2a74296d76349d472a71c4ee069aa0">SVF::CloneDummyObjVar::CloneDummyObjVar</a></div><div class="ttdeci">CloneDummyObjVar(NodeID i, const MemObj *m, PNODEK ty=CloneDummyObjNode)</div><div class="ttdoc">Constructor. </div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00752">SVFVariables.h:752</a></div></div>
124
+ <div class="ttc" id="classSVF_1_1GepValVar_html_ae89482e674768298f49e51df4ebe63e3"><div class="ttname"><a href="classSVF_1_1GepValVar.html#ae89482e674768298f49e51df4ebe63e3">SVF::GepValVar::getValueName</a></div><div class="ttdeci">const std::string getValueName() const</div><div class="ttdoc">Return name of a LLVM value. </div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00426">SVFVariables.h:426</a></div></div>
117
125
  <div class="ttc" id="classSVF_1_1SVFVar_html_ab76f9dea1559bd9b10b870dbc7bb454a"><div class="ttname"><a href="classSVF_1_1SVFVar.html#ab76f9dea1559bd9b10b870dbc7bb454a">SVF::SVFVar::~SVFVar</a></div><div class="ttdeci">virtual ~SVFVar()</div><div class="ttdoc">Destructor. </div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00088">SVFVariables.h:88</a></div></div>
118
126
  <div class="ttc" id="classSVF_1_1GenericNode_html_a391e996d695b114530120723da1d003e"><div class="ttname"><a href="classSVF_1_1GenericNode.html#a391e996d695b114530120723da1d003e">SVF::GenericNode::getNodeKind</a></div><div class="ttdeci">GNodeK getNodeKind() const</div><div class="ttdoc">Get node kind. </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00171">GenericGraph.h:171</a></div></div>
119
- <div class="ttc" id="classSVF_1_1ValPN_html_ac025b26e23ae0df6727963286309744e"><div class="ttname"><a href="classSVF_1_1ValPN.html#ac025b26e23ae0df6727963286309744e">SVF::ValPN::classof</a></div><div class="ttdeci">static bool classof(const SVFVar *node)</div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00283">SVFVariables.h:283</a></div></div>
127
+ <div class="ttc" id="classSVF_1_1ObjVar_html_a6a4feb73b54e602407e35eeb09f55930"><div class="ttname"><a href="classSVF_1_1ObjVar.html#a6a4feb73b54e602407e35eeb09f55930">SVF::ObjVar::getMemObj</a></div><div class="ttdeci">const MemObj * getMemObj() const</div><div class="ttdoc">Return memory object. </div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00357">SVFVariables.h:357</a></div></div>
128
+ <div class="ttc" id="classSVF_1_1CloneDummyObjVar_html_a6eb2439f433fe48a338b09a6ab017f7c"><div class="ttname"><a href="classSVF_1_1CloneDummyObjVar.html#a6eb2439f433fe48a338b09a6ab017f7c">SVF::CloneDummyObjVar::classof</a></div><div class="ttdeci">static bool classof(const SVFVar *node)</div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00741">SVFVariables.h:741</a></div></div>
120
129
  <div class="ttc" id="classSVF_1_1SVFStmt_html_a0ab8621e75e75f03425c323b3ed62ce9a6b3a8902fc2aa68428e271012861a2a2"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a6b3a8902fc2aa68428e271012861a2a2">SVF::SVFStmt::VariantGep</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00056">SVFStatements.h:56</a></div></div>
121
130
  <div class="ttc" id="classSVF_1_1GepObjPN_html_aefa0383972a9c68e487ccf989a7e500c"><div class="ttname"><a href="classSVF_1_1GepObjPN.html#aefa0383972a9c68e487ccf989a7e500c">SVF::GepObjPN::getBaseNode</a></div><div class="ttdeci">NodeID getBaseNode(void) const</div><div class="ttdoc">Return the base object from which this GEP node came from. </div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00501">SVFVariables.h:501</a></div></div>
122
131
  <div class="ttc" id="namespaceSVF_html_ad42bff8d0a7d60a085aa32d10f4955af"><div class="ttname"><a href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">SVF::u32_t</a></div><div class="ttdeci">unsigned u32_t</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00075">SVFBasicTypes.h:75</a></div></div>
123
- <div class="ttc" id="classSVF_1_1CloneFIObjPN_html_a604e88030c2c32408f4fd99a69b97e6b"><div class="ttname"><a href="classSVF_1_1CloneFIObjPN.html#a604e88030c2c32408f4fd99a69b97e6b">SVF::CloneFIObjPN::getValueName</a></div><div class="ttdeci">const std::string getValueName() const</div><div class="ttdoc">Return name of this node. </div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00830">SVFVariables.h:830</a></div></div>
132
+ <div class="ttc" id="classSVF_1_1CloneFIObjVar_html_adeef2b67999d96aab854b25432ebb348"><div class="ttname"><a href="classSVF_1_1CloneFIObjVar.html#adeef2b67999d96aab854b25432ebb348">SVF::CloneFIObjVar::CloneFIObjVar</a></div><div class="ttdeci">CloneFIObjVar(const Value *val, NodeID i, const MemObj *mem, PNODEK ty=CloneFIObjNode)</div><div class="ttdoc">Constructor. </div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00824">SVFVariables.h:824</a></div></div>
124
133
  <div class="ttc" id="classSVF_1_1SVFVar_html_a3b61042079a6c9dc395f38925c6a1271"><div class="ttname"><a href="classSVF_1_1SVFVar.html#a3b61042079a6c9dc395f38925c6a1271">SVF::SVFVar::isPointer</a></div><div class="ttdeci">virtual bool isPointer() const</div><div class="ttdoc">Whether it is a pointer. </div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00115">SVFVariables.h:115</a></div></div>
125
- <div class="ttc" id="classSVF_1_1FIObjPN_html_a2c26eb5e25b2ff2f497e9ee40f84f582"><div class="ttname"><a href="classSVF_1_1FIObjPN.html#a2c26eb5e25b2ff2f497e9ee40f84f582">SVF::FIObjPN::classof</a></div><div class="ttdeci">static bool classof(const FIObjPN *)</div><div class="ttdoc">Methods for support type inquiry through isa, cast, and dyn_cast: </div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00533">SVFVariables.h:533</a></div></div>
126
134
  <div class="ttc" id="classSVF_1_1RetPN_html_a48c099d2b441b4cc298166e2c5866c8f"><div class="ttname"><a href="classSVF_1_1RetPN.html#a48c099d2b441b4cc298166e2c5866c8f">SVF::RetPN::getValueName</a></div><div class="ttdeci">const std::string getValueName() const</div><div class="ttdoc">Return name of a LLVM value. </div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00601">SVFVariables.h:601</a></div></div>
127
135
  <div class="ttc" id="classSVF_1_1SVFVar_html_a307c0f4d90308d5f77977d5635cad65d"><div class="ttname"><a href="classSVF_1_1SVFVar.html#a307c0f4d90308d5f77977d5635cad65d">SVF::SVFVar::isATPointer</a></div><div class="ttdeci">bool isATPointer</div><div class="ttdoc">top-level pointer </div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00082">SVFVariables.h:82</a></div></div>
128
- <div class="ttc" id="classSVF_1_1CloneGepObjPN_html_a769b26905b23ccb6aa0895ed49b4345b"><div class="ttname"><a href="classSVF_1_1CloneGepObjPN.html#a769b26905b23ccb6aa0895ed49b4345b">SVF::CloneGepObjPN::CloneGepObjPN</a></div><div class="ttdeci">CloneGepObjPN(const MemObj *mem, NodeID i, const LocationSet &amp;l, PNODEK ty=CloneGepObjNode)</div><div class="ttdoc">Constructor. </div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00788">SVFVariables.h:788</a></div></div>
136
+ <div class="ttc" id="classSVF_1_1GepValVar_html"><div class="ttname"><a href="classSVF_1_1GepValVar.html">SVF::GepValVar</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00384">SVFVariables.h:384</a></div></div>
129
137
  <div class="ttc" id="classSVF_1_1SVFVar_html_a283f7c0c2eaae07c6865f73a0daafeffa2ca0654308fd181afcb1f20519a0247a"><div class="ttname"><a href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffa2ca0654308fd181afcb1f20519a0247a">SVF::SVFVar::CloneFIObjNode</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00072">SVFVariables.h:72</a></div></div>
130
- <div class="ttc" id="classSVF_1_1GepValPN_html_a02df9e70d4daf4eefaa63b0d26cd06ce"><div class="ttname"><a href="classSVF_1_1GepValPN.html#a02df9e70d4daf4eefaa63b0d26cd06ce">SVF::GepValPN::GepValPN</a></div><div class="ttdeci">GepValPN(const Value *val, NodeID i, const LocationSet &amp;l, const Type *ty, u32_t idx)</div><div class="ttdoc">Constructor. </div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00414">SVFVariables.h:414</a></div></div>
131
- <div class="ttc" id="classSVF_1_1CloneDummyObjPN_html_a6b2a894267716e725332b85b1fdc670c"><div class="ttname"><a href="classSVF_1_1CloneDummyObjPN.html#a6b2a894267716e725332b85b1fdc670c">SVF::CloneDummyObjPN::CloneDummyObjPN</a></div><div class="ttdeci">CloneDummyObjPN(NodeID i, const MemObj *m, PNODEK ty=CloneDummyObjNode)</div><div class="ttdoc">Constructor. </div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00752">SVFVariables.h:752</a></div></div>
132
- <div class="ttc" id="classSVF_1_1DummyValPN_html_a952876d7eafcf704435c67ff95f945c6"><div class="ttname"><a href="classSVF_1_1DummyValPN.html#a952876d7eafcf704435c67ff95f945c6">SVF::DummyValPN::DummyValPN</a></div><div class="ttdeci">DummyValPN(NodeID i)</div><div class="ttdoc">Constructor. </div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00675">SVFVariables.h:675</a></div></div>
133
- <div class="ttc" id="classSVF_1_1FIObjPN_html"><div class="ttname"><a href="classSVF_1_1FIObjPN.html">SVF::FIObjPN</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00527">SVFVariables.h:527</a></div></div>
138
+ <div class="ttc" id="classSVF_1_1DummyValVar_html_a06c603907dce56bea44f9a4f9da4d6c7"><div class="ttname"><a href="classSVF_1_1DummyValVar.html#a06c603907dce56bea44f9a4f9da4d6c7">SVF::DummyValVar::classof</a></div><div class="ttdeci">static bool classof(const DummyValVar *)</div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00660">SVFVariables.h:660</a></div></div>
134
139
  <div class="ttc" id="classSVF_1_1GepObjPN_html_aff84e3e6702f0e04ef41aae90d297009"><div class="ttname"><a href="classSVF_1_1GepObjPN.html#aff84e3e6702f0e04ef41aae90d297009">SVF::GepObjPN::classof</a></div><div class="ttdeci">static bool classof(const GenericPAGNodeTy *node)</div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00474">SVFVariables.h:474</a></div></div>
135
140
  <div class="ttc" id="classSVF_1_1SVFVar_html_aa34b2230655db9c4195e44e1c437bbc6"><div class="ttname"><a href="classSVF_1_1SVFVar.html#aa34b2230655db9c4195e44e1c437bbc6">SVF::SVFVar::dump</a></div><div class="ttdeci">void dump() const</div><div class="ttdoc">Dump to console for debugging. </div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8cpp_source.html#l00107">SVFVariables.cpp:107</a></div></div>
136
- <div class="ttc" id="classSVF_1_1CloneFIObjPN_html_a4162a2134de52bb0cd0a8ce630881c92"><div class="ttname"><a href="classSVF_1_1CloneFIObjPN.html#a4162a2134de52bb0cd0a8ce630881c92">SVF::CloneFIObjPN::classof</a></div><div class="ttdeci">static bool classof(const GenericPAGNodeTy *node)</div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00817">SVFVariables.h:817</a></div></div>
137
141
  <div class="ttc" id="classSVF_1_1SVFVar_html_a60bed99a7fd939873118698b058ccc4a"><div class="ttname"><a href="classSVF_1_1SVFVar.html#a60bed99a7fd939873118698b058ccc4a">SVF::SVFVar::isTopLevelPtr</a></div><div class="ttdeci">bool isTopLevelPtr() const</div><div class="ttdoc">Whether it is a top-level pointer. </div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00120">SVFVariables.h:120</a></div></div>
138
- <div class="ttc" id="classSVF_1_1CloneGepObjPN_html_ae6640a10e3fc58b057ed94f1d4c774ba"><div class="ttname"><a href="classSVF_1_1CloneGepObjPN.html#ae6640a10e3fc58b057ed94f1d4c774ba">SVF::CloneGepObjPN::getValueName</a></div><div class="ttdeci">const std::string getValueName() const</div><div class="ttdoc">Return name of this node. </div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00794">SVFVariables.h:794</a></div></div>
139
- <div class="ttc" id="classSVF_1_1ObjPN_html_a3b94e2fc7b83b588b27d5bf33ec72b8f"><div class="ttname"><a href="classSVF_1_1ObjPN.html#a3b94e2fc7b83b588b27d5bf33ec72b8f">SVF::ObjPN::classof</a></div><div class="ttdeci">static bool classof(const GenericPAGNodeTy *node)</div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00344">SVFVariables.h:344</a></div></div>
140
142
  <div class="ttc" id="classSVF_1_1SVFVar_html_a482652e097c8e7921b4db2e75eb71efc"><div class="ttname"><a href="classSVF_1_1SVFVar.html#a482652e097c8e7921b4db2e75eb71efc">SVF::SVFVar::isAddressTakenPtr</a></div><div class="ttdeci">bool isAddressTakenPtr() const</div><div class="ttdoc">Whether it is an address-taken pointer. </div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00125">SVFVariables.h:125</a></div></div>
141
143
  <div class="ttc" id="classSVF_1_1SVFVar_html_a71e4fd7a1271a17e971ed90044e6da24"><div class="ttname"><a href="classSVF_1_1SVFVar.html#a71e4fd7a1271a17e971ed90044e6da24">SVF::SVFVar::hasIncomingVariantGepEdge</a></div><div class="ttdeci">bool hasIncomingVariantGepEdge() const</div><div class="ttdoc">Has incoming VariantGepEdges. </div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00183">SVFVariables.h:183</a></div></div>
142
144
  <div class="ttc" id="classSVF_1_1RetPN_html_acedd9e576a077f96c0638065d4c70bcf"><div class="ttname"><a href="classSVF_1_1RetPN.html#acedd9e576a077f96c0638065d4c70bcf">SVF::RetPN::classof</a></div><div class="ttdeci">static bool classof(const RetPN *)</div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00580">SVFVariables.h:580</a></div></div>
143
- <div class="ttc" id="classSVF_1_1DummyValPN_html_a7e159b59d32827682d5273e816cf8aca"><div class="ttname"><a href="classSVF_1_1DummyValPN.html#a7e159b59d32827682d5273e816cf8aca">SVF::DummyValPN::classof</a></div><div class="ttdeci">static bool classof(const SVFVar *node)</div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00664">SVFVariables.h:664</a></div></div>
144
145
  <div class="ttc" id="SymbolTableInfo_8h_html"><div class="ttname"><a href="SymbolTableInfo_8h.html">SymbolTableInfo.h</a></div></div>
145
146
  <div class="ttc" id="namespaceSVF_html_a5faee14fa1dd41447bc73ac365fe33c1"><div class="ttname"><a href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">SVF::Function</a></div><div class="ttdeci">llvm::Function Function</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00076">BasicTypes.h:76</a></div></div>
146
147
  <div class="ttc" id="classSVF_1_1SVFVar_html_a283f7c0c2eaae07c6865f73a0daafeff"><div class="ttname"><a href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeff">SVF::SVFVar::PNODEK</a></div><div class="ttdeci">PNODEK</div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00060">SVFVariables.h:60</a></div></div>
147
148
  <div class="ttc" id="classSVF_1_1SVFVar_html_af41e3da7f7d6918f58785446d715fec6"><div class="ttname"><a href="classSVF_1_1SVFVar.html#af41e3da7f7d6918f58785446d715fec6">SVF::SVFVar::getOutgoingEdges</a></div><div class="ttdeci">SVFStmt::PAGEdgeSetTy &amp; getOutgoingEdges(SVFStmt::PEDGEK kind)</div><div class="ttdoc">Get outgoing SVFIR edges. </div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00167">SVFVariables.h:167</a></div></div>
148
149
  <div class="ttc" id="classSVF_1_1SVFVar_html_ada932ef2ae0a3e712174df479c35b0dd"><div class="ttname"><a href="classSVF_1_1SVFVar.html#ada932ef2ae0a3e712174df479c35b0dd">SVF::SVFVar::toString</a></div><div class="ttdeci">virtual const std::string toString() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8cpp_source.html#l00100">SVFVariables.cpp:100</a></div></div>
149
- <div class="ttc" id="classSVF_1_1FIObjPN_html_a3fe03b2726ee05df4339737c90d430bb"><div class="ttname"><a href="classSVF_1_1FIObjPN.html#a3fe03b2726ee05df4339737c90d430bb">SVF::FIObjPN::FIObjPN</a></div><div class="ttdeci">FIObjPN(const Value *val, NodeID i, const MemObj *mem, PNODEK ty=FIObjNode)</div><div class="ttdoc">Constructor. </div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00555">SVFVariables.h:555</a></div></div>
150
150
  <div class="ttc" id="namespaceSVF_html_a7875172ff434b2210eea7cecfbbd959e"><div class="ttname"><a href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">SVF::Instruction</a></div><div class="ttdeci">llvm::Instruction Instruction</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00079">BasicTypes.h:79</a></div></div>
151
151
  <div class="ttc" id="classSVF_1_1SVFVar_html_a283f7c0c2eaae07c6865f73a0daafeffa1ab625ecaf51446246dcc2944d6559af"><div class="ttname"><a href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffa1ab625ecaf51446246dcc2944d6559af">SVF::SVFVar::DummyObjNode</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00070">SVFVariables.h:70</a></div></div>
152
152
  <div class="ttc" id="classSVF_1_1VarArgPN_html_a2adee91065fef72cb8f64924aa83ec0a"><div class="ttname"><a href="classSVF_1_1VarArgPN.html#a2adee91065fef72cb8f64924aa83ec0a">SVF::VarArgPN::classof</a></div><div class="ttdeci">static bool classof(const SVFVar *node)</div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00623">SVFVariables.h:623</a></div></div>
153
153
  <div class="ttc" id="GenericGraph_8h_html"><div class="ttname"><a href="GenericGraph_8h.html">GenericGraph.h</a></div></div>
154
+ <div class="ttc" id="classSVF_1_1DummyValVar_html_a188ddcb95f842245fb97362ff8a06efd"><div class="ttname"><a href="classSVF_1_1DummyValVar.html#a188ddcb95f842245fb97362ff8a06efd">SVF::DummyValVar::getValueName</a></div><div class="ttdeci">const std::string getValueName() const</div><div class="ttdoc">Return name of this node. </div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00681">SVFVariables.h:681</a></div></div>
155
+ <div class="ttc" id="classSVF_1_1GepValVar_html_ae6965dc3d70ff6d1877d29b8e7aa4af8"><div class="ttname"><a href="classSVF_1_1GepValVar.html#ae6965dc3d70ff6d1877d29b8e7aa4af8">SVF::GepValVar::getFieldIdx</a></div><div class="ttdeci">u32_t getFieldIdx() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00438">SVFVariables.h:438</a></div></div>
156
+ <div class="ttc" id="classSVF_1_1ValVar_html_a371f38564932cc04c6c4a00a99bf6c6a"><div class="ttname"><a href="classSVF_1_1ValVar.html#a371f38564932cc04c6c4a00a99bf6c6a">SVF::ValVar::classof</a></div><div class="ttdeci">static bool classof(const GenericPAGNodeTy *node)</div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00289">SVFVariables.h:289</a></div></div>
154
157
  <div class="ttc" id="classSVF_1_1SymbolTableInfo_html_a2fc4bfb83b71a4c14e16168382cb8f5d"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#a2fc4bfb83b71a4c14e16168382cb8f5d">SVF::SymbolTableInfo::isBlkObjOrConstantObj</a></div><div class="ttdeci">static bool isBlkObjOrConstantObj(NodeID id)</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00206">SymbolTableInfo.h:206</a></div></div>
158
+ <div class="ttc" id="classSVF_1_1GepValVar_html_aaf5f5d3734e1db83c6d4f38d560b2f45"><div class="ttname"><a href="classSVF_1_1GepValVar.html#aaf5f5d3734e1db83c6d4f38d560b2f45">SVF::GepValVar::gepValType</a></div><div class="ttdeci">const Type * gepValType</div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00389">SVFVariables.h:389</a></div></div>
155
159
  <div class="ttc" id="classSVF_1_1SVFVar_html_ab137b1def56c6539b5048c84dfd92c7b"><div class="ttname"><a href="classSVF_1_1SVFVar.html#ab137b1def56c6539b5048c84dfd92c7b">SVF::SVFVar::getIncomingEdgesBegin</a></div><div class="ttdeci">SVFStmt::PAGEdgeSetTy::iterator getIncomingEdgesBegin(SVFStmt::PEDGEK kind) const</div><div class="ttdoc">Get incoming SVFStmt iterator. </div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00194">SVFVariables.h:194</a></div></div>
156
- <div class="ttc" id="classSVF_1_1CloneFIObjPN_html_a13aaf7159accd345bdad93c1c3491122"><div class="ttname"><a href="classSVF_1_1CloneFIObjPN.html#a13aaf7159accd345bdad93c1c3491122">SVF::CloneFIObjPN::classof</a></div><div class="ttdeci">static bool classof(const SVFVar *node)</div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00813">SVFVariables.h:813</a></div></div>
157
- <div class="ttc" id="classSVF_1_1GepValPN_html_a91f678b8dcbac8cc21424074de492569"><div class="ttname"><a href="classSVF_1_1GepValPN.html#a91f678b8dcbac8cc21424074de492569">SVF::GepValPN::fieldIdx</a></div><div class="ttdeci">u32_t fieldIdx</div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00390">SVFVariables.h:390</a></div></div>
158
- <div class="ttc" id="classSVF_1_1DummyObjPN_html_a48af6a89137007ec2b329943a891b09c"><div class="ttname"><a href="classSVF_1_1DummyObjPN.html#a48af6a89137007ec2b329943a891b09c">SVF::DummyObjPN::classof</a></div><div class="ttdeci">static bool classof(const GenericPAGNodeTy *node)</div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00708">SVFVariables.h:708</a></div></div>
159
160
  <div class="ttc" id="classSVF_1_1SVFVar_html_a283f7c0c2eaae07c6865f73a0daafeffae21504009be26916ccdfcb5de42e3e11"><div class="ttname"><a href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffae21504009be26916ccdfcb5de42e3e11">SVF::SVFVar::ObjNode</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00063">SVFVariables.h:63</a></div></div>
160
- <div class="ttc" id="classSVF_1_1ValPN_html_a6894944b680cfd7a45b1582169517d54"><div class="ttname"><a href="classSVF_1_1ValPN.html#a6894944b680cfd7a45b1582169517d54">SVF::ValPN::getValueName</a></div><div class="ttdeci">const std::string getValueName() const</div><div class="ttdoc">Return name of a LLVM value. </div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00303">SVFVariables.h:303</a></div></div>
161
- <div class="ttc" id="classSVF_1_1ValPN_html_a530cc26cbb3562c951575e8437c5ca22"><div class="ttname"><a href="classSVF_1_1ValPN.html#a530cc26cbb3562c951575e8437c5ca22">SVF::ValPN::classof</a></div><div class="ttdeci">static bool classof(const GenericPAGNodeTy *node)</div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00289">SVFVariables.h:289</a></div></div>
162
161
  <div class="ttc" id="namespaceSVF_html_a58cdfbc4160cae08745b67844ac29801"><div class="ttname"><a href="namespaceSVF.html#a58cdfbc4160cae08745b67844ac29801">SVF::Argument</a></div><div class="ttdeci">llvm::Argument Argument</div><div class="ttdoc">LLVM Aliases and constants. </div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00122">BasicTypes.h:122</a></div></div>
163
- <div class="ttc" id="classSVF_1_1GepValPN_html_ab61c3b510838c4654e880e306f3af881"><div class="ttname"><a href="classSVF_1_1GepValPN.html#ab61c3b510838c4654e880e306f3af881">SVF::GepValPN::getFieldIdx</a></div><div class="ttdeci">u32_t getFieldIdx() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00438">SVFVariables.h:438</a></div></div>
162
+ <div class="ttc" id="classSVF_1_1DummyValVar_html_a39fb5acde002694e91599a67ff3ae99a"><div class="ttname"><a href="classSVF_1_1DummyValVar.html#a39fb5acde002694e91599a67ff3ae99a">SVF::DummyValVar::DummyValVar</a></div><div class="ttdeci">DummyValVar(NodeID i)</div><div class="ttdoc">Constructor. </div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00675">SVFVariables.h:675</a></div></div>
164
163
  <div class="ttc" id="classSVF_1_1SVFVar_html_ab51b134720986c39fce7f033a49df6f0"><div class="ttname"><a href="classSVF_1_1SVFVar.html#ab51b134720986c39fce7f033a49df6f0">SVF::SVFVar::isConstantData</a></div><div class="ttdeci">bool isConstantData() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00131">SVFVariables.h:131</a></div></div>
165
164
  <div class="ttc" id="classSVF_1_1GenericNode_html_ae74283fbc788665296a69e56f334557b"><div class="ttname"><a href="classSVF_1_1GenericNode.html#ae74283fbc788665296a69e56f334557b">SVF::GenericNode::addOutgoingEdge</a></div><div class="ttdeci">bool addOutgoingEdge(EdgeType *outEdge)</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00279">GenericGraph.h:279</a></div></div>
166
- <div class="ttc" id="classSVF_1_1GepValPN_html"><div class="ttname"><a href="classSVF_1_1GepValPN.html">SVF::GepValPN</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00384">SVFVariables.h:384</a></div></div>
167
165
  <div class="ttc" id="classSVF_1_1GepObjPN_html_a498b7ee3cf8d26fa18062f2bae0749c5"><div class="ttname"><a href="classSVF_1_1GepObjPN.html#a498b7ee3cf8d26fa18062f2bae0749c5">SVF::GepObjPN::getValueName</a></div><div class="ttdeci">const std::string getValueName() const</div><div class="ttdoc">Return name of a LLVM value. </div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00513">SVFVariables.h:513</a></div></div>
168
- <div class="ttc" id="classSVF_1_1GepValPN_html_a0f8a17f7624765228e44456d34897d5a"><div class="ttname"><a href="classSVF_1_1GepValPN.html#a0f8a17f7624765228e44456d34897d5a">SVF::GepValPN::getOffset</a></div><div class="ttdeci">u32_t getOffset() const</div><div class="ttdoc">offset of the base value node </div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00420">SVFVariables.h:420</a></div></div>
166
+ <div class="ttc" id="classSVF_1_1FIObjVar_html_a330b28f8488de9e186bedf73e5576a08"><div class="ttname"><a href="classSVF_1_1FIObjVar.html#a330b28f8488de9e186bedf73e5576a08">SVF::FIObjVar::getValueName</a></div><div class="ttdeci">const std::string getValueName() const</div><div class="ttdoc">Return name of a LLVM value. </div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00561">SVFVariables.h:561</a></div></div>
167
+ <div class="ttc" id="classSVF_1_1ObjVar_html_a3d08dc1d15a449ff4b7018da4bfdcb88"><div class="ttname"><a href="classSVF_1_1ObjVar.html#a3d08dc1d15a449ff4b7018da4bfdcb88">SVF::ObjVar::mem</a></div><div class="ttdeci">const MemObj * mem</div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00321">SVFVariables.h:321</a></div></div>
168
+ <div class="ttc" id="classSVF_1_1CloneFIObjVar_html_abac4095a6a60c321caa40f837a752803"><div class="ttname"><a href="classSVF_1_1CloneFIObjVar.html#abac4095a6a60c321caa40f837a752803">SVF::CloneFIObjVar::getValueName</a></div><div class="ttdeci">const std::string getValueName() const</div><div class="ttdoc">Return name of this node. </div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00830">SVFVariables.h:830</a></div></div>
169
+ <div class="ttc" id="classSVF_1_1GepValVar_html_aea2c58dc4124157a23c2cc0fe050f158"><div class="ttname"><a href="classSVF_1_1GepValVar.html#aea2c58dc4124157a23c2cc0fe050f158">SVF::GepValVar::classof</a></div><div class="ttdeci">static bool classof(const ValVar *node)</div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00399">SVFVariables.h:399</a></div></div>
169
170
  <div class="ttc" id="classSVF_1_1SVFVar_html_a53439a493963d16e5a1b5ed36ab6d33e"><div class="ttname"><a href="classSVF_1_1SVFVar.html#a53439a493963d16e5a1b5ed36ab6d33e">SVF::SVFVar::getFunction</a></div><div class="ttdeci">virtual const Function * getFunction() const</div><div class="ttdoc">Return the function that this SVFVar resides in. Return nullptr if it is a global or constantexpr nod...</div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00146">SVFVariables.h:146</a></div></div>
170
- <div class="ttc" id="classSVF_1_1CloneDummyObjPN_html_a41abb24caedfd04c87a66f5899419121"><div class="ttname"><a href="classSVF_1_1CloneDummyObjPN.html#a41abb24caedfd04c87a66f5899419121">SVF::CloneDummyObjPN::classof</a></div><div class="ttdeci">static bool classof(const GenericPAGNodeTy *node)</div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00745">SVFVariables.h:745</a></div></div>
171
+ <div class="ttc" id="classSVF_1_1CloneGepObjVar_html_ab2b37ac7064e97665c04c778904e9888"><div class="ttname"><a href="classSVF_1_1CloneGepObjVar.html#ab2b37ac7064e97665c04c778904e9888">SVF::CloneGepObjVar::CloneGepObjVar</a></div><div class="ttdeci">CloneGepObjVar(const MemObj *mem, NodeID i, const LocationSet &amp;l, PNODEK ty=CloneGepObjNode)</div><div class="ttdoc">Constructor. </div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00788">SVFVariables.h:788</a></div></div>
172
+ <div class="ttc" id="classSVF_1_1CloneGepObjVar_html_a2dc4176254a15071a35f8218036cd5bb"><div class="ttname"><a href="classSVF_1_1CloneGepObjVar.html#a2dc4176254a15071a35f8218036cd5bb">SVF::CloneGepObjVar::classof</a></div><div class="ttdeci">static bool classof(const SVFVar *node)</div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00777">SVFVariables.h:777</a></div></div>
171
173
  <div class="ttc" id="classSVF_1_1SVFVar_html_afeb667f2af988479e93a6067c4e6e622"><div class="ttname"><a href="classSVF_1_1SVFVar.html#afeb667f2af988479e93a6067c4e6e622">SVF::SVFVar::isTLPointer</a></div><div class="ttdeci">bool isTLPointer</div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00081">SVFVariables.h:81</a></div></div>
172
174
  <div class="ttc" id="classSVF_1_1SVFVar_html_a1ace69053c2c4436fd78d5624bd0086a"><div class="ttname"><a href="classSVF_1_1SVFVar.html#a1ace69053c2c4436fd78d5624bd0086a">SVF::SVFVar::hasValue</a></div><div class="ttdeci">bool hasValue() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00110">SVFVariables.h:110</a></div></div>
175
+ <div class="ttc" id="classSVF_1_1CloneFIObjVar_html_a96a659f0a876b417ebdf6057db65c870"><div class="ttname"><a href="classSVF_1_1CloneFIObjVar.html#a96a659f0a876b417ebdf6057db65c870">SVF::CloneFIObjVar::classof</a></div><div class="ttdeci">static bool classof(const CloneFIObjVar *)</div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00809">SVFVariables.h:809</a></div></div>
173
176
  <div class="ttc" id="classSVF_1_1SymbolTableInfo_html_a267169023fc4f8dd66b145f7231fec11"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#a267169023fc4f8dd66b145f7231fec11">SVF::SymbolTableInfo::SymbolInfo</a></div><div class="ttdeci">static SymbolTableInfo * SymbolInfo()</div><div class="ttdoc">Singleton design here to make sure we only have one instance during any analysis. ...</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00059">SymbolTableInfo.cpp:59</a></div></div>
174
- <div class="ttc" id="classSVF_1_1ObjPN_html_a5e7e7b1a2d78146e50ec36d99b0a3608"><div class="ttname"><a href="classSVF_1_1ObjPN.html#a5e7e7b1a2d78146e50ec36d99b0a3608">SVF::ObjPN::classof</a></div><div class="ttdeci">static bool classof(const ObjPN *)</div><div class="ttdoc">Methods for support type inquiry through isa, cast, and dyn_cast: </div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00330">SVFVariables.h:330</a></div></div>
175
- <div class="ttc" id="classSVF_1_1FIObjPN_html_af7c4e765ec13f3a368d155bd27667832"><div class="ttname"><a href="classSVF_1_1FIObjPN.html#af7c4e765ec13f3a368d155bd27667832">SVF::FIObjPN::classof</a></div><div class="ttdeci">static bool classof(const ObjPN *node)</div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00537">SVFVariables.h:537</a></div></div>
176
- <div class="ttc" id="classSVF_1_1ObjPN_html"><div class="ttname"><a href="classSVF_1_1ObjPN.html">SVF::ObjPN</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00317">SVFVariables.h:317</a></div></div>
177
- <div class="ttc" id="classSVF_1_1GepValPN_html_a795658606384952f8e648e154a06700a"><div class="ttname"><a href="classSVF_1_1GepValPN.html#a795658606384952f8e648e154a06700a">SVF::GepValPN::classof</a></div><div class="ttdeci">static bool classof(const GepValPN *)</div><div class="ttdoc">Methods for support type inquiry through isa, cast, and dyn_cast: </div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00395">SVFVariables.h:395</a></div></div>
178
- <div class="ttc" id="classSVF_1_1GepObjPN_html_a71f93295b7052e2098dd15f76c1aaa8c"><div class="ttname"><a href="classSVF_1_1GepObjPN.html#a71f93295b7052e2098dd15f76c1aaa8c">SVF::GepObjPN::classof</a></div><div class="ttdeci">static bool classof(const ObjPN *node)</div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00464">SVFVariables.h:464</a></div></div>
177
+ <div class="ttc" id="classSVF_1_1ValVar_html_aeaccfd3bf5f968ad12d7e1a2426e5faa"><div class="ttname"><a href="classSVF_1_1ValVar.html#aeaccfd3bf5f968ad12d7e1a2426e5faa">SVF::ValVar::getValueName</a></div><div class="ttdeci">const std::string getValueName() const</div><div class="ttdoc">Return name of a LLVM value. </div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00303">SVFVariables.h:303</a></div></div>
179
178
  <div class="ttc" id="classSVF_1_1GenericNode_html_a93d217b0c9fd8008a2989ca2b4f3fbfb"><div class="ttname"><a href="classSVF_1_1GenericNode.html#a93d217b0c9fd8008a2989ca2b4f3fbfb">SVF::GenericNode::addIncomingEdge</a></div><div class="ttdeci">bool addIncomingEdge(EdgeType *inEdge)</div><div class="ttdoc">Add incoming and outgoing edges. </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00275">GenericGraph.h:275</a></div></div>
179
+ <div class="ttc" id="classSVF_1_1FIObjVar_html_a73cd80e57f81d34b6295e110e3d43acc"><div class="ttname"><a href="classSVF_1_1FIObjVar.html#a73cd80e57f81d34b6295e110e3d43acc">SVF::FIObjVar::classof</a></div><div class="ttdeci">static bool classof(const GenericPAGNodeTy *node)</div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00547">SVFVariables.h:547</a></div></div>
180
+ <div class="ttc" id="classSVF_1_1ValVar_html_a71e5f4eaf74f852d3354ac6b0b65f39c"><div class="ttname"><a href="classSVF_1_1ValVar.html#a71e5f4eaf74f852d3354ac6b0b65f39c">SVF::ValVar::classof</a></div><div class="ttdeci">static bool classof(const SVFVar *node)</div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00283">SVFVariables.h:283</a></div></div>
180
181
  <div class="ttc" id="classSVF_1_1VarArgPN_html_ad6ebe474373838bc6c00e8baaa3f7137"><div class="ttname"><a href="classSVF_1_1VarArgPN.html#ad6ebe474373838bc6c00e8baaa3f7137">SVF::VarArgPN::VarArgPN</a></div><div class="ttdeci">VarArgPN(const SVFFunction *val, NodeID i)</div><div class="ttdoc">Constructor. </div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00634">SVFVariables.h:634</a></div></div>
181
- <div class="ttc" id="classSVF_1_1ValPN_html_a18a9bf26bb76893f0530d484dd0861ae"><div class="ttname"><a href="classSVF_1_1ValPN.html#a18a9bf26bb76893f0530d484dd0861ae">SVF::ValPN::classof</a></div><div class="ttdeci">static bool classof(const ValPN *)</div><div class="ttdoc">Methods for support type inquiry through isa, cast, and dyn_cast: </div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00279">SVFVariables.h:279</a></div></div>
182
+ <div class="ttc" id="classSVF_1_1GepValVar_html_a149d738115af2bcd815306ee6eb91bb3"><div class="ttname"><a href="classSVF_1_1GepValVar.html#a149d738115af2bcd815306ee6eb91bb3">SVF::GepValVar::getOffset</a></div><div class="ttdeci">u32_t getOffset() const</div><div class="ttdoc">offset of the base value node </div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00420">SVFVariables.h:420</a></div></div>
183
+ <div class="ttc" id="classSVF_1_1DummyObjVar_html_a3dff74bbf50b6a901239d3fd31e0f36c"><div class="ttname"><a href="classSVF_1_1DummyObjVar.html#a3dff74bbf50b6a901239d3fd31e0f36c">SVF::DummyObjVar::DummyObjVar</a></div><div class="ttdeci">DummyObjVar(NodeID i, const MemObj *m, PNODEK ty=DummyObjNode)</div><div class="ttdoc">Constructor. </div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00716">SVFVariables.h:716</a></div></div>
184
+ <div class="ttc" id="classSVF_1_1CloneDummyObjVar_html_a304eeab4eb7c441e49cfa3be008b11f6"><div class="ttname"><a href="classSVF_1_1CloneDummyObjVar.html#a304eeab4eb7c441e49cfa3be008b11f6">SVF::CloneDummyObjVar::classof</a></div><div class="ttdeci">static bool classof(const CloneDummyObjVar *)</div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00737">SVFVariables.h:737</a></div></div>
182
185
  <div class="ttc" id="classSVF_1_1SVFVar_html_afaa33caa8d2a306f6741d9d066243e40"><div class="ttname"><a href="classSVF_1_1SVFVar.html#afaa33caa8d2a306f6741d9d066243e40">SVF::SVFVar::getValue</a></div><div class="ttdeci">const Value * getValue() const</div><div class="ttdoc">Get/has methods of the components. </div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00094">SVFVariables.h:94</a></div></div>
183
- <div class="ttc" id="classSVF_1_1CloneDummyObjPN_html_a98a1f11f0adc875b9c166dae69875e05"><div class="ttname"><a href="classSVF_1_1CloneDummyObjPN.html#a98a1f11f0adc875b9c166dae69875e05">SVF::CloneDummyObjPN::classof</a></div><div class="ttdeci">static bool classof(const CloneDummyObjPN *)</div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00737">SVFVariables.h:737</a></div></div>
184
- <div class="ttc" id="classSVF_1_1DummyObjPN_html_a3b3dabed91ed32ee99835324108061c7"><div class="ttname"><a href="classSVF_1_1DummyObjPN.html#a3b3dabed91ed32ee99835324108061c7">SVF::DummyObjPN::getValueName</a></div><div class="ttdeci">const std::string getValueName() const</div><div class="ttdoc">Return name of this node. </div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00722">SVFVariables.h:722</a></div></div>
186
+ <div class="ttc" id="classSVF_1_1FIObjVar_html"><div class="ttname"><a href="classSVF_1_1FIObjVar.html">SVF::FIObjVar</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00527">SVFVariables.h:527</a></div></div>
185
187
  <div class="ttc" id="classSVF_1_1GenericNode_html"><div class="ttname"><a href="classSVF_1_1GenericNode.html">SVF::GenericNode</a></div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00128">GenericGraph.h:128</a></div></div>
188
+ <div class="ttc" id="classSVF_1_1GepValVar_html_a3a808d2401dd62833236b3466de6215d"><div class="ttname"><a href="classSVF_1_1GepValVar.html#a3a808d2401dd62833236b3466de6215d">SVF::GepValVar::fieldIdx</a></div><div class="ttdeci">u32_t fieldIdx</div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00390">SVFVariables.h:390</a></div></div>
189
+ <div class="ttc" id="classSVF_1_1CloneDummyObjVar_html"><div class="ttname"><a href="classSVF_1_1CloneDummyObjVar.html">SVF::CloneDummyObjVar</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00733">SVFVariables.h:733</a></div></div>
190
+ <div class="ttc" id="classSVF_1_1CloneGepObjVar_html"><div class="ttname"><a href="classSVF_1_1CloneGepObjVar.html">SVF::CloneGepObjVar</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00769">SVFVariables.h:769</a></div></div>
186
191
  <div class="ttc" id="classSVF_1_1SVFVar_html_a49fd453200fcf98b4e13e3f630774401"><div class="ttname"><a href="classSVF_1_1SVFVar.html#a49fd453200fcf98b4e13e3f630774401">SVF::SVFVar::InEdgeKindToSetMap</a></div><div class="ttdeci">SVFStmt::PAGKindToEdgeSetMapTy InEdgeKindToSetMap</div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00079">SVFVariables.h:79</a></div></div>
187
192
  <div class="ttc" id="classSVF_1_1RetPN_html"><div class="ttname"><a href="classSVF_1_1RetPN.html">SVF::RetPN</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00574">SVFVariables.h:574</a></div></div>
188
- <div class="ttc" id="classSVF_1_1DummyObjPN_html"><div class="ttname"><a href="classSVF_1_1DummyObjPN.html">SVF::DummyObjPN</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00693">SVFVariables.h:693</a></div></div>
189
- <div class="ttc" id="classSVF_1_1DummyValPN_html_a62c8bdc6ebc3626f6cd7e743f2475ae0"><div class="ttname"><a href="classSVF_1_1DummyValPN.html#a62c8bdc6ebc3626f6cd7e743f2475ae0">SVF::DummyValPN::classof</a></div><div class="ttdeci">static bool classof(const GenericPAGNodeTy *node)</div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00668">SVFVariables.h:668</a></div></div>
193
+ <div class="ttc" id="classSVF_1_1DummyObjVar_html_a6aefb8e6612cb6322e064ac3521fa849"><div class="ttname"><a href="classSVF_1_1DummyObjVar.html#a6aefb8e6612cb6322e064ac3521fa849">SVF::DummyObjVar::classof</a></div><div class="ttdeci">static bool classof(const GenericPAGNodeTy *node)</div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00708">SVFVariables.h:708</a></div></div>
194
+ <div class="ttc" id="classSVF_1_1DummyObjVar_html_a9552d717a869b0ec6678843a56fc8695"><div class="ttname"><a href="classSVF_1_1DummyObjVar.html#a9552d717a869b0ec6678843a56fc8695">SVF::DummyObjVar::classof</a></div><div class="ttdeci">static bool classof(const SVFVar *node)</div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00703">SVFVariables.h:703</a></div></div>
195
+ <div class="ttc" id="classSVF_1_1ObjVar_html_aa1004c9973fb974ba1e52df80978321d"><div class="ttname"><a href="classSVF_1_1ObjVar.html#aa1004c9973fb974ba1e52df80978321d">SVF::ObjVar::getType</a></div><div class="ttdeci">virtual const llvm::Type * getType() const</div><div class="ttdoc">Return type of the value. </div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00370">SVFVariables.h:370</a></div></div>
196
+ <div class="ttc" id="classSVF_1_1CloneGepObjVar_html_a9d4cf31155950c889b5965566ab3d45e"><div class="ttname"><a href="classSVF_1_1CloneGepObjVar.html#a9d4cf31155950c889b5965566ab3d45e">SVF::CloneGepObjVar::getValueName</a></div><div class="ttdeci">const std::string getValueName() const</div><div class="ttdoc">Return name of this node. </div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00794">SVFVariables.h:794</a></div></div>
197
+ <div class="ttc" id="classSVF_1_1ObjVar_html_a42b68822afc39d415db8c29079caf9c8"><div class="ttname"><a href="classSVF_1_1ObjVar.html#a42b68822afc39d415db8c29079caf9c8">SVF::ObjVar::classof</a></div><div class="ttdeci">static bool classof(const GenericPAGNodeTy *node)</div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00344">SVFVariables.h:344</a></div></div>
190
198
  <div class="ttc" id="classSVF_1_1GepObjPN_html_a685d6a3464890ba08d8d018ce2e8e3ff"><div class="ttname"><a href="classSVF_1_1GepObjPN.html#a685d6a3464890ba08d8d018ce2e8e3ff">SVF::GepObjPN::getType</a></div><div class="ttdeci">virtual const llvm::Type * getType() const</div><div class="ttdoc">Return the type of this gep object. </div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00507">SVFVariables.h:507</a></div></div>
199
+ <div class="ttc" id="classSVF_1_1GepObjPN_html_afab6d5a895e3c93776e4e05fd94ec747"><div class="ttname"><a href="classSVF_1_1GepObjPN.html#afab6d5a895e3c93776e4e05fd94ec747">SVF::GepObjPN::classof</a></div><div class="ttdeci">static bool classof(const ObjVar *node)</div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00464">SVFVariables.h:464</a></div></div>
191
200
  <div class="ttc" id="classSVF_1_1GepObjPN_html_a3962464274d0c15ceb0206ebf6fa2b55"><div class="ttname"><a href="classSVF_1_1GepObjPN.html#a3962464274d0c15ceb0206ebf6fa2b55">SVF::GepObjPN::classof</a></div><div class="ttdeci">static bool classof(const GepObjPN *)</div><div class="ttdoc">Methods for support type inquiry through isa, cast, and dyn_cast: </div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00460">SVFVariables.h:460</a></div></div>
201
+ <div class="ttc" id="classSVF_1_1GepValVar_html_a28e42f01110a2d0a5f1f90bca14c5035"><div class="ttname"><a href="classSVF_1_1GepValVar.html#a28e42f01110a2d0a5f1f90bca14c5035">SVF::GepValVar::classof</a></div><div class="ttdeci">static bool classof(const GepValVar *)</div><div class="ttdoc">Methods for support type inquiry through isa, cast, and dyn_cast: </div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00395">SVFVariables.h:395</a></div></div>
192
202
  <div class="ttc" id="classSVF_1_1SVFStmt_html_a47a67e8aaae7059e353841a40b89e936"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a47a67e8aaae7059e353841a40b89e936">SVF::SVFStmt::PAGKindToEdgeSetMapTy</a></div><div class="ttdeci">PAGEdgeToSetMapTy PAGKindToEdgeSetMapTy</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00180">SVFStatements.h:180</a></div></div>
193
- <div class="ttc" id="classSVF_1_1DummyValPN_html_a4ae220021a948c2755f7dc4947458d8f"><div class="ttname"><a href="classSVF_1_1DummyValPN.html#a4ae220021a948c2755f7dc4947458d8f">SVF::DummyValPN::classof</a></div><div class="ttdeci">static bool classof(const DummyValPN *)</div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00660">SVFVariables.h:660</a></div></div>
194
203
  <div class="ttc" id="classSVF_1_1SVFVar_html_a54b2a5ed3ed21e54eaf04182f0338333"><div class="ttname"><a href="classSVF_1_1SVFVar.html#a54b2a5ed3ed21e54eaf04182f0338333">SVF::SVFVar::getValueName</a></div><div class="ttdeci">virtual const std::string getValueName() const =0</div><div class="ttdoc">Get name of the LLVM value. </div></div>
204
+ <div class="ttc" id="classSVF_1_1FIObjVar_html_a1801ca6c6cf3367eff5621fa7c788619"><div class="ttname"><a href="classSVF_1_1FIObjVar.html#a1801ca6c6cf3367eff5621fa7c788619">SVF::FIObjVar::classof</a></div><div class="ttdeci">static bool classof(const FIObjVar *)</div><div class="ttdoc">Methods for support type inquiry through isa, cast, and dyn_cast: </div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00533">SVFVariables.h:533</a></div></div>
195
205
  <div class="ttc" id="classSVF_1_1LocationSet_html_ab85c3707152e03722bd631b2525f223e"><div class="ttname"><a href="classSVF_1_1LocationSet.html#ab85c3707152e03722bd631b2525f223e">SVF::LocationSet::getOffset</a></div><div class="ttdeci">Size_t getOffset() const</div><div class="ttdoc">Get methods. </div><div class="ttdef"><b>Definition:</b> <a href="LocationSet_8h_source.html#l00193">LocationSet.h:193</a></div></div>
196
206
  <div class="ttc" id="classSVF_1_1GepObjPN_html_aadf56cdc45296514f142306e2556dcc1"><div class="ttname"><a href="classSVF_1_1GepObjPN.html#aadf56cdc45296514f142306e2556dcc1">SVF::GepObjPN::GepObjPN</a></div><div class="ttdeci">GepObjPN(const MemObj *mem, NodeID i, const LocationSet &amp;l, PNODEK ty=GepObjNode)</div><div class="ttdoc">Constructor. </div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00482">SVFVariables.h:482</a></div></div>
197
207
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a9e85d445e8b7b205134acd3874bba388"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a9e85d445e8b7b205134acd3874bba388">SVF::SVFUtil::isConstantData</a></div><div class="ttdeci">bool isConstantData(const Value *val)</div><div class="ttdoc">Return true if the value refers to constant data, e.g., i32 0. </div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00392">LLVMUtil.h:392</a></div></div>
198
- <div class="ttc" id="classSVF_1_1ObjPN_html_a598c5c77468386ae1044a30af6eb4eef"><div class="ttname"><a href="classSVF_1_1ObjPN.html#a598c5c77468386ae1044a30af6eb4eef">SVF::ObjPN::classof</a></div><div class="ttdeci">static bool classof(const SVFVar *node)</div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00334">SVFVariables.h:334</a></div></div>
199
208
  <div class="ttc" id="namespaceSVF_html"><div class="ttname"><a href="namespaceSVF.html">SVF</a></div><div class="ttdoc">for isBitcode </div><div class="ttdef"><b>Definition:</b> <a href="ContextDDA_8h_source.html#l00016">ContextDDA.h:16</a></div></div>
200
209
  <div class="ttc" id="classSVF_1_1SVFVar_html_a283f7c0c2eaae07c6865f73a0daafeffab85277a3daeecc24c99b3da86108e482"><div class="ttname"><a href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffab85277a3daeecc24c99b3da86108e482">SVF::SVFVar::CloneDummyObjNode</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00073">SVFVariables.h:73</a></div></div>
201
- <div class="ttc" id="classSVF_1_1DummyValPN_html_ad43ed5282ca6f6cf546e60c37be968c9"><div class="ttname"><a href="classSVF_1_1DummyValPN.html#ad43ed5282ca6f6cf546e60c37be968c9">SVF::DummyValPN::getValueName</a></div><div class="ttdeci">const std::string getValueName() const</div><div class="ttdoc">Return name of this node. </div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00681">SVFVariables.h:681</a></div></div>
202
210
  <div class="ttc" id="classSVF_1_1VarArgPN_html"><div class="ttname"><a href="classSVF_1_1VarArgPN.html">SVF::VarArgPN</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00613">SVFVariables.h:613</a></div></div>
203
211
  <div class="ttc" id="classSVF_1_1MemObj_html_a3ab6f65ffbf6442daac4d3f70f2d3cb1"><div class="ttname"><a href="classSVF_1_1MemObj.html#a3ab6f65ffbf6442daac4d3f70f2d3cb1">SVF::MemObj::getId</a></div><div class="ttdeci">SymID getId() const</div><div class="ttdoc">Get the memory object id. </div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00451">SymbolTableInfo.h:451</a></div></div>
204
212
  <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>
205
213
  <div class="ttc" id="classSVF_1_1GenericNode_html_ac3e55ef37aefb411ea4c87b1aa3b1895"><div class="ttname"><a href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">SVF::GenericNode::getId</a></div><div class="ttdeci">NodeID getId() const</div><div class="ttdoc">Get ID. </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00165">GenericGraph.h:165</a></div></div>
214
+ <div class="ttc" id="classSVF_1_1CloneGepObjVar_html_a5f46eff05b965deeeed531bd9a87b464"><div class="ttname"><a href="classSVF_1_1CloneGepObjVar.html#a5f46eff05b965deeeed531bd9a87b464">SVF::CloneGepObjVar::classof</a></div><div class="ttdeci">static bool classof(const CloneGepObjVar *)</div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00773">SVFVariables.h:773</a></div></div>
206
215
  <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>
207
- <div class="ttc" id="classSVF_1_1ObjPN_html_a7ec3165f6b61b089e25447f55ebf86a8"><div class="ttname"><a href="classSVF_1_1ObjPN.html#a7ec3165f6b61b089e25447f55ebf86a8">SVF::ObjPN::mem</a></div><div class="ttdeci">const MemObj * mem</div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00321">SVFVariables.h:321</a></div></div>
216
+ <div class="ttc" id="classSVF_1_1CloneDummyObjVar_html_a2ddf5e4067c537a7dfd9bf74f7195931"><div class="ttname"><a href="classSVF_1_1CloneDummyObjVar.html#a2ddf5e4067c537a7dfd9bf74f7195931">SVF::CloneDummyObjVar::getValueName</a></div><div class="ttdeci">const std::string getValueName() const</div><div class="ttdoc">Return name of this node. </div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00758">SVFVariables.h:758</a></div></div>
217
+ <div class="ttc" id="classSVF_1_1CloneFIObjVar_html_a06ddad01d54e2676c7036c2e901235cb"><div class="ttname"><a href="classSVF_1_1CloneFIObjVar.html#a06ddad01d54e2676c7036c2e901235cb">SVF::CloneFIObjVar::classof</a></div><div class="ttdeci">static bool classof(const GenericPAGNodeTy *node)</div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00817">SVFVariables.h:817</a></div></div>
208
218
  <div class="ttc" id="classSVF_1_1SVFVar_html_a7deb494ac20ed56fca31a4f1fd92deea"><div class="ttname"><a href="classSVF_1_1SVFVar.html#a7deb494ac20ed56fca31a4f1fd92deea">SVF::SVFVar::value</a></div><div class="ttdeci">const Value * value</div><div class="ttdoc">value of this SVFIR node </div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00078">SVFVariables.h:78</a></div></div>
209
219
  <div class="ttc" id="classSVF_1_1SVFStmt_html_af02857ff13e61f81d332d83eb376bdb4"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#af02857ff13e61f81d332d83eb376bdb4">SVF::SVFStmt::PAGEdgeSetTy</a></div><div class="ttdeci">GenericNode&lt; SVFVar, SVFStmt &gt;::GEdgeSetTy PAGEdgeSetTy</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00178">SVFStatements.h:178</a></div></div>
210
- <div class="ttc" id="classSVF_1_1ValPN_html"><div class="ttname"><a href="classSVF_1_1ValPN.html">SVF::ValPN</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00273">SVFVariables.h:273</a></div></div>
220
+ <div class="ttc" id="classSVF_1_1CloneFIObjVar_html_a71c3a2f27967bec62f65bed3d38e2c35"><div class="ttname"><a href="classSVF_1_1CloneFIObjVar.html#a71c3a2f27967bec62f65bed3d38e2c35">SVF::CloneFIObjVar::classof</a></div><div class="ttdeci">static bool classof(const SVFVar *node)</div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00813">SVFVariables.h:813</a></div></div>
211
221
  <div class="ttc" id="classSVF_1_1SVFVar_html_a283f7c0c2eaae07c6865f73a0daafeffa5de2a8fce9a85f31818d58992b381b98"><div class="ttname"><a href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffa5de2a8fce9a85f31818d58992b381b98">SVF::SVFVar::RetNode</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00064">SVFVariables.h:64</a></div></div>
212
222
  <div class="ttc" id="classSVF_1_1SVFVar_html_a985930fc3a53ae8ff5fcb07d378f354b"><div class="ttname"><a href="classSVF_1_1SVFVar.html#a985930fc3a53ae8ff5fcb07d378f354b">SVF::SVFVar::operator&lt;&lt;</a></div><div class="ttdeci">friend raw_ostream &amp; operator&lt;&lt;(raw_ostream &amp;o, const SVFVar &amp;node)</div><div class="ttdoc">Overloading operator &lt;&lt; for dumping SVFVar value. </div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00260">SVFVariables.h:260</a></div></div>
213
- <div class="ttc" id="classSVF_1_1CloneFIObjPN_html_a3263e363188007b96bfad127c52e44b7"><div class="ttname"><a href="classSVF_1_1CloneFIObjPN.html#a3263e363188007b96bfad127c52e44b7">SVF::CloneFIObjPN::CloneFIObjPN</a></div><div class="ttdeci">CloneFIObjPN(const Value *val, NodeID i, const MemObj *mem, PNODEK ty=CloneFIObjNode)</div><div class="ttdoc">Constructor. </div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00824">SVFVariables.h:824</a></div></div>
214
- <div class="ttc" id="classSVF_1_1CloneGepObjPN_html_ae4a5fbdb8e39aeac18c03f275ad4f0ff"><div class="ttname"><a href="classSVF_1_1CloneGepObjPN.html#ae4a5fbdb8e39aeac18c03f275ad4f0ff">SVF::CloneGepObjPN::classof</a></div><div class="ttdeci">static bool classof(const CloneGepObjPN *)</div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00773">SVFVariables.h:773</a></div></div>
215
- <div class="ttc" id="classSVF_1_1CloneGepObjPN_html_ae04be94d59e8d352b0ed9f2bab14bec0"><div class="ttname"><a href="classSVF_1_1CloneGepObjPN.html#ae04be94d59e8d352b0ed9f2bab14bec0">SVF::CloneGepObjPN::classof</a></div><div class="ttdeci">static bool classof(const SVFVar *node)</div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00777">SVFVariables.h:777</a></div></div>
223
+ <div class="ttc" id="classSVF_1_1DummyValVar_html"><div class="ttname"><a href="classSVF_1_1DummyValVar.html">SVF::DummyValVar</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00654">SVFVariables.h:654</a></div></div>
224
+ <div class="ttc" id="classSVF_1_1DummyObjVar_html_a543ca59bd39740d1080fe4702bc2fd69"><div class="ttname"><a href="classSVF_1_1DummyObjVar.html#a543ca59bd39740d1080fe4702bc2fd69">SVF::DummyObjVar::classof</a></div><div class="ttdeci">static bool classof(const DummyObjVar *)</div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00699">SVFVariables.h:699</a></div></div>
216
225
  <div class="ttc" id="classSVF_1_1SVFVar_html_a283f7c0c2eaae07c6865f73a0daafeffa32d22852d39756992f87bd02def75f66"><div class="ttname"><a href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffa32d22852d39756992f87bd02def75f66">SVF::SVFVar::ValNode</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00062">SVFVariables.h:62</a></div></div>
217
- <div class="ttc" id="classSVF_1_1DummyValPN_html"><div class="ttname"><a href="classSVF_1_1DummyValPN.html">SVF::DummyValPN</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00654">SVFVariables.h:654</a></div></div>
218
- <div class="ttc" id="classSVF_1_1GepValPN_html_a2ca8cf54bf67f76db2acd05cf7dcf1d1"><div class="ttname"><a href="classSVF_1_1GepValPN.html#a2ca8cf54bf67f76db2acd05cf7dcf1d1">SVF::GepValPN::getValueName</a></div><div class="ttdeci">const std::string getValueName() const</div><div class="ttdoc">Return name of a LLVM value. </div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00426">SVFVariables.h:426</a></div></div>
219
226
  <div class="ttc" id="classSVF_1_1SVFVar_html_acf194658d2cbdaf3f26f2af6c325fad7"><div class="ttname"><a href="classSVF_1_1SVFVar.html#acf194658d2cbdaf3f26f2af6c325fad7">SVF::SVFVar::isIsolatedNode</a></div><div class="ttdeci">bool isIsolatedNode() const</div><div class="ttdoc">Whether this is an isoloated node on the SVFIR graph. </div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8cpp_source.html#l00088">SVFVariables.cpp:88</a></div></div>
220
- <div class="ttc" id="classSVF_1_1CloneGepObjPN_html_a4480ad91fff13e921cdb44e56027ae9c"><div class="ttname"><a href="classSVF_1_1CloneGepObjPN.html#a4480ad91fff13e921cdb44e56027ae9c">SVF::CloneGepObjPN::classof</a></div><div class="ttdeci">static bool classof(const GenericPAGNodeTy *node)</div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00781">SVFVariables.h:781</a></div></div>
221
227
  <div class="ttc" id="classSVF_1_1SymbolTableInfo_html_a573bd5208467b2f905f5b2b1684feac8"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#a573bd5208467b2f905f5b2b1684feac8">SVF::SymbolTableInfo::getOrigSubTypeWithByteOffset</a></div><div class="ttdeci">const Type * getOrigSubTypeWithByteOffset(const Type *baseType, u32_t byteOffset)</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00501">SymbolTableInfo.cpp:501</a></div></div>
222
- <div class="ttc" id="classSVF_1_1CloneDummyObjPN_html_ad3912fd4f477be5e86f15ca3d0dfc236"><div class="ttname"><a href="classSVF_1_1CloneDummyObjPN.html#ad3912fd4f477be5e86f15ca3d0dfc236">SVF::CloneDummyObjPN::classof</a></div><div class="ttdeci">static bool classof(const SVFVar *node)</div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00741">SVFVariables.h:741</a></div></div>
223
- <div class="ttc" id="classSVF_1_1ObjPN_html_a7500f73cb499a5aa0d828075b179b709"><div class="ttname"><a href="classSVF_1_1ObjPN.html#a7500f73cb499a5aa0d828075b179b709">SVF::ObjPN::getValueName</a></div><div class="ttdeci">virtual const std::string getValueName() const</div><div class="ttdoc">Return name of a LLVM value. </div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00363">SVFVariables.h:363</a></div></div>
228
+ <div class="ttc" id="classSVF_1_1CloneDummyObjVar_html_a982180a5ea7595f2d2320799056ff56d"><div class="ttname"><a href="classSVF_1_1CloneDummyObjVar.html#a982180a5ea7595f2d2320799056ff56d">SVF::CloneDummyObjVar::classof</a></div><div class="ttdeci">static bool classof(const GenericPAGNodeTy *node)</div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00745">SVFVariables.h:745</a></div></div>
224
229
  <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>
225
230
  <div class="ttc" id="classSVF_1_1SVFVar_html_a283f7c0c2eaae07c6865f73a0daafeffa5a13a457f037424f61e74165a9cdcebf"><div class="ttname"><a href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffa5a13a457f037424f61e74165a9cdcebf">SVF::SVFVar::VarargNode</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00065">SVFVariables.h:65</a></div></div>
226
- <div class="ttc" id="classSVF_1_1DummyObjPN_html_a6b241ddcbe32a27b46c3c7c3d92e4c3c"><div class="ttname"><a href="classSVF_1_1DummyObjPN.html#a6b241ddcbe32a27b46c3c7c3d92e4c3c">SVF::DummyObjPN::classof</a></div><div class="ttdeci">static bool classof(const DummyObjPN *)</div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00699">SVFVariables.h:699</a></div></div>
227
231
  <div class="ttc" id="namespaceSVF_html_a8d5e9e5137b04659ded32330e128df34"><div class="ttname"><a href="namespaceSVF.html#a8d5e9e5137b04659ded32330e128df34">SVF::GenericPAGNodeTy</a></div><div class="ttdeci">GenericNode&lt; SVFVar, SVFStmt &gt; GenericPAGNodeTy</div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00041">SVFVariables.h:41</a></div></div>
228
- <div class="ttc" id="classSVF_1_1FIObjPN_html_ae5c2e49f3fa0511b7fa00de2a682f0e1"><div class="ttname"><a href="classSVF_1_1FIObjPN.html#ae5c2e49f3fa0511b7fa00de2a682f0e1">SVF::FIObjPN::getValueName</a></div><div class="ttdeci">const std::string getValueName() const</div><div class="ttdoc">Return name of a LLVM value. </div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00561">SVFVariables.h:561</a></div></div>
229
232
  <div class="ttc" id="namespaceSVF_html_a90b263fd2f541eca78135078114cabda"><div class="ttname"><a href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">SVF::Value</a></div><div class="ttdeci">llvm::Value Value</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00078">BasicTypes.h:78</a></div></div>
230
- <div class="ttc" id="classSVF_1_1DummyObjPN_html_a2f05d6a98837ade60ff4c008ee086409"><div class="ttname"><a href="classSVF_1_1DummyObjPN.html#a2f05d6a98837ade60ff4c008ee086409">SVF::DummyObjPN::classof</a></div><div class="ttdeci">static bool classof(const SVFVar *node)</div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00703">SVFVariables.h:703</a></div></div>
233
+ <div class="ttc" id="classSVF_1_1ValVar_html_adbbf3c9ff5dcb10ac528d3eb4b69750c"><div class="ttname"><a href="classSVF_1_1ValVar.html#adbbf3c9ff5dcb10ac528d3eb4b69750c">SVF::ValVar::classof</a></div><div class="ttdeci">static bool classof(const ValVar *)</div><div class="ttdoc">Methods for support type inquiry through isa, cast, and dyn_cast: </div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00279">SVFVariables.h:279</a></div></div>
231
234
  <div class="ttc" id="classSVF_1_1SVFVar_html_a21a44c7a30e4e3743f6c3186fd7dbe8f"><div class="ttname"><a href="classSVF_1_1SVFVar.html#a21a44c7a30e4e3743f6c3186fd7dbe8f">SVF::SVFVar::addOutEdge</a></div><div class="ttdeci">void addOutEdge(SVFStmt *outEdge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00245">SVFVariables.h:245</a></div></div>
232
235
  <div class="ttc" id="LLVMUtil_8h_html"><div class="ttname"><a href="LLVMUtil_8h.html">LLVMUtil.h</a></div></div>
233
- <div class="ttc" id="classSVF_1_1CloneFIObjPN_html"><div class="ttname"><a href="classSVF_1_1CloneFIObjPN.html">SVF::CloneFIObjPN</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00805">SVFVariables.h:805</a></div></div>
234
236
  <div class="ttc" id="classSVF_1_1SVFVar_html_a0deeb2f08b7681c63ad91a04a4b4c6c9"><div class="ttname"><a href="classSVF_1_1SVFVar.html#a0deeb2f08b7681c63ad91a04a4b4c6c9">SVF::SVFVar::getIncomingEdges</a></div><div class="ttdeci">SVFStmt::PAGEdgeSetTy &amp; getIncomingEdges(SVFStmt::PEDGEK kind)</div><div class="ttdoc">Get incoming SVFIR edges. </div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00161">SVFVariables.h:161</a></div></div>
235
- <div class="ttc" id="classSVF_1_1GepValPN_html_afb8bad0c8d61cd59410d99a405dfa9e8"><div class="ttname"><a href="classSVF_1_1GepValPN.html#afb8bad0c8d61cd59410d99a405dfa9e8">SVF::GepValPN::ls</a></div><div class="ttdeci">LocationSet ls</div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00388">SVFVariables.h:388</a></div></div>
236
237
  <div class="ttc" id="classSVF_1_1VarArgPN_html_acaecf9e9d98c4a14fecee0877a72839c"><div class="ttname"><a href="classSVF_1_1VarArgPN.html#acaecf9e9d98c4a14fecee0877a72839c">SVF::VarArgPN::classof</a></div><div class="ttdeci">static bool classof(const VarArgPN *)</div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00619">SVFVariables.h:619</a></div></div>
237
238
  <div class="ttc" id="classSVF_1_1SVFStmt_html"><div class="ttname"><a href="classSVF_1_1SVFStmt.html">SVF::SVFStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00047">SVFStatements.h:47</a></div></div>
238
239
  <div class="ttc" id="classSVF_1_1SVFVar_html_adaaf24b8b6ec06476cea112533c24066"><div class="ttname"><a href="classSVF_1_1SVFVar.html#adaaf24b8b6ec06476cea112533c24066">SVF::SVFVar::getType</a></div><div class="ttdeci">virtual const Type * getType() const</div><div class="ttdoc">Return type of the value. </div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00103">SVFVariables.h:103</a></div></div>
239
- <div class="ttc" id="classSVF_1_1ObjPN_html_ab414eff6a3057b570109081a93fa6539"><div class="ttname"><a href="classSVF_1_1ObjPN.html#ab414eff6a3057b570109081a93fa6539">SVF::ObjPN::getType</a></div><div class="ttdeci">virtual const llvm::Type * getType() const</div><div class="ttdoc">Return type of the value. </div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00370">SVFVariables.h:370</a></div></div>
240
240
  </div><!-- fragment --></div><!-- contents -->
241
241
  <!-- start footer part -->
242
242
  <hr class="footer"/><address class="footer"><small>