svf-tools 1.0.425 → 1.0.428

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 (584) hide show
  1. package/SVF-doxygen/html/html/AbstractPointsToDS_8h_source.html +1 -1
  2. package/SVF-doxygen/html/html/AndersenLCD_8cpp_source.html +2 -2
  3. package/SVF-doxygen/html/html/AndersenSCD_8cpp_source.html +4 -4
  4. package/SVF-doxygen/html/html/AndersenSFR_8cpp_source.html +7 -7
  5. package/SVF-doxygen/html/html/AndersenSFR_8h_source.html +5 -5
  6. package/SVF-doxygen/html/html/AndersenStat_8cpp_source.html +7 -7
  7. package/SVF-doxygen/html/html/AndersenWaveDiff_8cpp_source.html +1 -1
  8. package/SVF-doxygen/html/html/Andersen_8cpp_source.html +11 -11
  9. package/SVF-doxygen/html/html/Andersen_8h_source.html +9 -9
  10. package/SVF-doxygen/html/html/Annotator_8h_source.html +3 -3
  11. package/SVF-doxygen/html/html/BreakConstantExpr_8cpp.html +10 -9
  12. package/SVF-doxygen/html/html/BreakConstantExpr_8cpp_source.html +9 -8
  13. package/SVF-doxygen/html/html/BreakConstantExpr_8h_source.html +6 -6
  14. package/SVF-doxygen/html/html/CHGBuilder_8cpp_source.html +21 -21
  15. package/SVF-doxygen/html/html/CHGBuilder_8h_source.html +5 -5
  16. package/SVF-doxygen/html/html/CHG_8cpp.html +3 -3
  17. package/SVF-doxygen/html/html/CHG_8cpp_source.html +11 -11
  18. package/SVF-doxygen/html/html/CHG_8h_source.html +6 -6
  19. package/SVF-doxygen/html/html/CPPUtil_8cpp.html +2 -2
  20. package/SVF-doxygen/html/html/CPPUtil_8cpp_source.html +25 -25
  21. package/SVF-doxygen/html/html/CPPUtil_8h_source.html +4 -4
  22. package/SVF-doxygen/html/html/CSC_8cpp_source.html +3 -3
  23. package/SVF-doxygen/html/html/CSC_8h_source.html +4 -4
  24. package/SVF-doxygen/html/html/CallGraphBuilder_8cpp_source.html +5 -5
  25. package/SVF-doxygen/html/html/ConditionalPT_8h_source.html +6 -6
  26. package/SVF-doxygen/html/html/Conditions_8cpp_source.html +4 -4
  27. package/SVF-doxygen/html/html/Conditions_8h_source.html +5 -5
  28. package/SVF-doxygen/html/html/ConsGEdge_8h_source.html +2 -2
  29. package/SVF-doxygen/html/html/ConsGNode_8h_source.html +2 -2
  30. package/SVF-doxygen/html/html/ConsG_8cpp_source.html +3 -3
  31. package/SVF-doxygen/html/html/ConsG_8h_source.html +7 -7
  32. package/SVF-doxygen/html/html/ContextDDA_8cpp_source.html +19 -19
  33. package/SVF-doxygen/html/html/ContextDDA_8h_source.html +13 -13
  34. package/SVF-doxygen/html/html/CoreBitVector_8cpp_source.html +1 -1
  35. package/SVF-doxygen/html/html/CoreBitVector_8h_source.html +2 -2
  36. package/SVF-doxygen/html/html/CxtStmt_8h_source.html +6 -6
  37. package/SVF-doxygen/html/html/DCHG_8cpp_source.html +29 -29
  38. package/SVF-doxygen/html/html/DCHG_8h_source.html +14 -14
  39. package/SVF-doxygen/html/html/DDAClient_8cpp_source.html +6 -6
  40. package/SVF-doxygen/html/html/DDAClient_8h_source.html +3 -3
  41. package/SVF-doxygen/html/html/DDAPass_8cpp_source.html +9 -9
  42. package/SVF-doxygen/html/html/DDAPass_8h_source.html +10 -11
  43. package/SVF-doxygen/html/html/DDAStat_8cpp_source.html +5 -5
  44. package/SVF-doxygen/html/html/DDAStat_8h_source.html +3 -3
  45. package/SVF-doxygen/html/html/DDAVFSolver_8h_source.html +13 -13
  46. package/SVF-doxygen/html/html/DPItem_8h_source.html +6 -6
  47. package/SVF-doxygen/html/html/DataFlowUtil_8cpp_source.html +7 -7
  48. package/SVF-doxygen/html/html/DataFlowUtil_8h_source.html +11 -11
  49. package/SVF-doxygen/html/html/ExtAPI_8h_source.html +4 -4
  50. package/SVF-doxygen/html/html/FSMPTA_8cpp_source.html +7 -7
  51. package/SVF-doxygen/html/html/FSMPTA_8h_source.html +4 -4
  52. package/SVF-doxygen/html/html/FileChecker_8h_source.html +1 -1
  53. package/SVF-doxygen/html/html/FlowDDA_8cpp_source.html +5 -5
  54. package/SVF-doxygen/html/html/FlowDDA_8h_source.html +6 -6
  55. package/SVF-doxygen/html/html/FlowSensitiveStat_8cpp_source.html +8 -8
  56. package/SVF-doxygen/html/html/FlowSensitiveTBHC_8cpp.html +3 -3
  57. package/SVF-doxygen/html/html/FlowSensitiveTBHC_8cpp_source.html +20 -20
  58. package/SVF-doxygen/html/html/FlowSensitiveTBHC_8h_source.html +8 -8
  59. package/SVF-doxygen/html/html/FlowSensitive_8cpp_source.html +19 -19
  60. package/SVF-doxygen/html/html/FlowSensitive_8h_source.html +9 -9
  61. package/SVF-doxygen/html/html/GEPTypeBridgeIterator_8h_source.html +3 -3
  62. package/SVF-doxygen/html/html/GenericGraph_8h_source.html +5 -5
  63. package/SVF-doxygen/html/html/Graph2Json_8cpp_source.html +3 -3
  64. package/SVF-doxygen/html/html/GraphPrinter_8h_source.html +2 -2
  65. package/SVF-doxygen/html/html/ICFGBuilder_8cpp_source.html +10 -10
  66. package/SVF-doxygen/html/html/ICFGBuilder_8h_source.html +3 -3
  67. package/SVF-doxygen/html/html/ICFGEdge_8h_source.html +5 -5
  68. package/SVF-doxygen/html/html/ICFGNode_8h_source.html +5 -5
  69. package/SVF-doxygen/html/html/ICFGStat_8h_source.html +1 -1
  70. package/SVF-doxygen/html/html/ICFG_8cpp_source.html +7 -7
  71. package/SVF-doxygen/html/html/ICFG_8h_source.html +5 -5
  72. package/SVF-doxygen/html/html/IRAnnotator_8h_source.html +11 -11
  73. package/SVF-doxygen/html/html/IRGraph_8cpp_source.html +3 -3
  74. package/SVF-doxygen/html/html/IRGraph_8h_source.html +22 -22
  75. package/SVF-doxygen/html/html/LLVMModule_8cpp_source.html +14 -14
  76. package/SVF-doxygen/html/html/LLVMModule_8h_source.html +9 -9
  77. package/SVF-doxygen/html/html/LLVMUtil_8cpp_source.html +27 -27
  78. package/SVF-doxygen/html/html/LLVMUtil_8h.html +11 -9
  79. package/SVF-doxygen/html/html/LLVMUtil_8h_source.html +21 -18
  80. package/SVF-doxygen/html/html/LeakChecker_8cpp_source.html +1 -1
  81. package/SVF-doxygen/html/html/LeakChecker_8h_source.html +3 -3
  82. package/SVF-doxygen/html/html/LocationSet_8cpp_source.html +12 -12
  83. package/SVF-doxygen/html/html/LocationSet_8h_source.html +6 -6
  84. package/SVF-doxygen/html/html/LockAnalysis_8cpp_source.html +12 -12
  85. package/SVF-doxygen/html/html/LockAnalysis_8h_source.html +11 -11
  86. package/SVF-doxygen/html/html/LockResultValidator_8cpp.html +1 -0
  87. package/SVF-doxygen/html/html/LockResultValidator_8cpp_source.html +22 -21
  88. package/SVF-doxygen/html/html/LockResultValidator_8h_source.html +10 -10
  89. package/SVF-doxygen/html/html/MHP_8cpp.html +8 -7
  90. package/SVF-doxygen/html/html/MHP_8cpp_source.html +63 -62
  91. package/SVF-doxygen/html/html/MHP_8h_source.html +37 -37
  92. package/SVF-doxygen/html/html/MSSAMuChi_8h_source.html +4 -4
  93. package/SVF-doxygen/html/html/MTAAnnotator_8cpp_source.html +9 -9
  94. package/SVF-doxygen/html/html/MTAAnnotator_8h_source.html +7 -7
  95. package/SVF-doxygen/html/html/MTAResultValidator_8cpp.html +1 -0
  96. package/SVF-doxygen/html/html/MTAResultValidator_8cpp_source.html +41 -40
  97. package/SVF-doxygen/html/html/MTAResultValidator_8h_source.html +29 -29
  98. package/SVF-doxygen/html/html/MTAStat_8cpp_source.html +8 -8
  99. package/SVF-doxygen/html/html/MTAStat_8h_source.html +1 -1
  100. package/SVF-doxygen/html/html/MTA_8cpp_source.html +8 -8
  101. package/SVF-doxygen/html/html/MTA_8h_source.html +8 -8
  102. package/SVF-doxygen/html/html/MemPartition_8cpp_source.html +2 -2
  103. package/SVF-doxygen/html/html/MemPartition_8h_source.html +4 -4
  104. package/SVF-doxygen/html/html/MemRegion_8cpp_source.html +16 -16
  105. package/SVF-doxygen/html/html/MemRegion_8h_source.html +8 -8
  106. package/SVF-doxygen/html/html/MemSSA_8cpp_source.html +11 -11
  107. package/SVF-doxygen/html/html/MemSSA_8h_source.html +8 -8
  108. package/SVF-doxygen/html/html/MutablePointsToDS_8h_source.html +3 -3
  109. package/SVF-doxygen/html/html/NodeIDAllocator_8cpp_source.html +4 -4
  110. package/SVF-doxygen/html/html/NodeIDAllocator_8h_source.html +3 -3
  111. package/SVF-doxygen/html/html/OfflineConsG_8cpp_source.html +2 -2
  112. package/SVF-doxygen/html/html/OfflineConsG_8h_source.html +2 -2
  113. package/SVF-doxygen/html/html/PAGBuilderFromFile_8cpp_source.html +3 -3
  114. package/SVF-doxygen/html/html/PAGBuilderFromFile_8h_source.html +1 -1
  115. package/SVF-doxygen/html/html/PCG_8cpp_source.html +10 -10
  116. package/SVF-doxygen/html/html/PCG_8h_source.html +4 -4
  117. package/SVF-doxygen/html/html/PTACallGraph_8cpp_source.html +4 -4
  118. package/SVF-doxygen/html/html/PTACallGraph_8h_source.html +7 -7
  119. package/SVF-doxygen/html/html/PTAStat_8cpp_source.html +25 -28
  120. package/SVF-doxygen/html/html/PTAStat_8h_source.html +2 -2
  121. package/SVF-doxygen/html/html/PathCondAllocator_8cpp_source.html +52 -46
  122. package/SVF-doxygen/html/html/PathCondAllocator_8h.html +1 -0
  123. package/SVF-doxygen/html/html/PathCondAllocator_8h_source.html +74 -69
  124. package/SVF-doxygen/html/html/PathDPItem_8h_source.html +2 -2
  125. package/SVF-doxygen/html/html/PersistentPointsToCache_8h_source.html +3 -3
  126. package/SVF-doxygen/html/html/PersistentPointsToDS_8h_source.html +2 -2
  127. package/SVF-doxygen/html/html/PointerAnalysisImpl_8cpp_source.html +11 -12
  128. package/SVF-doxygen/html/html/PointerAnalysisImpl_8h_source.html +56 -58
  129. package/SVF-doxygen/html/html/PointerAnalysis_8cpp_source.html +31 -31
  130. package/SVF-doxygen/html/html/PointerAnalysis_8h_source.html +44 -45
  131. package/SVF-doxygen/html/html/PointsTo_8cpp_source.html +3 -3
  132. package/SVF-doxygen/html/html/PointsTo_8h_source.html +3 -3
  133. package/SVF-doxygen/html/html/ProgSlice_8cpp_source.html +10 -9
  134. package/SVF-doxygen/html/html/ProgSlice_8h_source.html +18 -18
  135. package/SVF-doxygen/html/html/SCC_8h_source.html +3 -3
  136. package/SVF-doxygen/html/html/SVF-FE_2BasicTypes_8h.html +554 -11
  137. package/SVF-doxygen/html/html/SVF-FE_2BasicTypes_8h_source.html +37 -7
  138. package/SVF-doxygen/html/html/SVFBasicTypes_8h.html +7 -13
  139. package/SVF-doxygen/html/html/SVFBasicTypes_8h_source.html +38 -41
  140. package/SVF-doxygen/html/html/SVFGBuilder_8cpp_source.html +4 -4
  141. package/SVF-doxygen/html/html/SVFGBuilder_8h_source.html +2 -2
  142. package/SVF-doxygen/html/html/SVFGEdge_8h_source.html +3 -3
  143. package/SVF-doxygen/html/html/SVFGNode_8h_source.html +4 -4
  144. package/SVF-doxygen/html/html/SVFGOPT_8cpp_source.html +11 -11
  145. package/SVF-doxygen/html/html/SVFGOPT_8h_source.html +15 -15
  146. package/SVF-doxygen/html/html/SVFGStat_8cpp_source.html +3 -3
  147. package/SVF-doxygen/html/html/SVFGStat_8h_source.html +4 -4
  148. package/SVF-doxygen/html/html/SVFG_8cpp_source.html +15 -15
  149. package/SVF-doxygen/html/html/SVFG_8h_source.html +16 -16
  150. package/SVF-doxygen/html/html/SVFIRBuilder_8cpp_source.html +63 -62
  151. package/SVF-doxygen/html/html/SVFIRBuilder_8h_source.html +48 -48
  152. package/SVF-doxygen/html/html/SVFIR_8cpp_source.html +10 -10
  153. package/SVF-doxygen/html/html/SVFIR_8h_source.html +19 -19
  154. package/SVF-doxygen/html/html/SVFModule_8cpp_source.html +1 -1
  155. package/SVF-doxygen/html/html/SVFModule_8h_source.html +5 -5
  156. package/SVF-doxygen/html/html/SVFStatements_8cpp_source.html +5 -5
  157. package/SVF-doxygen/html/html/SVFStatements_8h_source.html +9 -9
  158. package/SVF-doxygen/html/html/SVFUtil_8cpp_source.html +15 -15
  159. package/SVF-doxygen/html/html/SVFUtil_8h_source.html +16 -16
  160. package/SVF-doxygen/html/html/SVFVariables_8cpp_source.html +3 -3
  161. package/SVF-doxygen/html/html/SVFVariables_8h_source.html +15 -15
  162. package/SVF-doxygen/html/html/SaberAnnotator_8cpp_source.html +13 -11
  163. package/SVF-doxygen/html/html/SaberAnnotator_8h.html +1 -1
  164. package/SVF-doxygen/html/html/SaberAnnotator_8h_source.html +7 -8
  165. package/SVF-doxygen/html/html/SaberCheckerAPI_8h_source.html +2 -2
  166. package/SVF-doxygen/html/html/SaberSVFGBuilder_8cpp_source.html +8 -8
  167. package/SVF-doxygen/html/html/SaberSVFGBuilder_8h_source.html +2 -2
  168. package/SVF-doxygen/html/html/SrcSnkDDA_8cpp_source.html +2 -2
  169. package/SVF-doxygen/html/html/SrcSnkDDA_8h_source.html +5 -5
  170. package/SVF-doxygen/html/html/Steensgaard_8cpp_source.html +1 -1
  171. package/SVF-doxygen/html/html/Steensgaard_8h_source.html +2 -2
  172. package/SVF-doxygen/html/html/SymbolTableBuilder_8cpp_source.html +58 -58
  173. package/SVF-doxygen/html/html/SymbolTableBuilder_8h_source.html +7 -7
  174. package/SVF-doxygen/html/html/SymbolTableInfo_8cpp_source.html +103 -104
  175. package/SVF-doxygen/html/html/SymbolTableInfo_8h_source.html +135 -139
  176. package/SVF-doxygen/html/html/TCT_8cpp_source.html +19 -19
  177. package/SVF-doxygen/html/html/TCT_8h_source.html +18 -18
  178. package/SVF-doxygen/html/html/ThreadAPI_8cpp_source.html +5 -5
  179. package/SVF-doxygen/html/html/ThreadAPI_8h_source.html +6 -6
  180. package/SVF-doxygen/html/html/ThreadCallGraph_8cpp_source.html +11 -11
  181. package/SVF-doxygen/html/html/ThreadCallGraph_8h_source.html +6 -6
  182. package/SVF-doxygen/html/html/TypeAnalysis_8cpp_source.html +4 -4
  183. package/SVF-doxygen/html/html/TypeAnalysis_8h_source.html +1 -1
  184. package/SVF-doxygen/html/html/TypeBasedHeapCloning_8cpp_source.html +25 -25
  185. package/SVF-doxygen/html/html/TypeBasedHeapCloning_8h_source.html +6 -6
  186. package/SVF-doxygen/html/html/Util_2BasicTypes_8h.html +0 -69
  187. package/SVF-doxygen/html/html/Util_2BasicTypes_8h_source.html +119 -153
  188. package/SVF-doxygen/html/html/VFGEdge_8h_source.html +2 -2
  189. package/SVF-doxygen/html/html/VFGNode_8h_source.html +165 -170
  190. package/SVF-doxygen/html/html/VFG_8cpp_source.html +19 -19
  191. package/SVF-doxygen/html/html/VFG_8h_source.html +22 -22
  192. package/SVF-doxygen/html/html/VersionedFlowSensitiveStat_8cpp_source.html +6 -6
  193. package/SVF-doxygen/html/html/VersionedFlowSensitive_8cpp_source.html +7 -7
  194. package/SVF-doxygen/html/html/VersionedFlowSensitive_8h_source.html +4 -4
  195. package/SVF-doxygen/html/html/WPAFSSolver_8h_source.html +2 -2
  196. package/SVF-doxygen/html/html/WPAPass_8cpp_source.html +11 -11
  197. package/SVF-doxygen/html/html/WPAPass_8h_source.html +12 -12
  198. package/SVF-doxygen/html/html/WPASolver_8h_source.html +3 -3
  199. package/SVF-doxygen/html/html/WPAStat_8h_source.html +1 -1
  200. package/SVF-doxygen/html/html/WorkList_8h_source.html +1 -1
  201. package/SVF-doxygen/html/html/annotated.html +2 -3
  202. package/SVF-doxygen/html/html/classSVF_1_1ActualINSVFGNode.html +1 -1
  203. package/SVF-doxygen/html/html/classSVF_1_1ActualOUTSVFGNode.html +1 -1
  204. package/SVF-doxygen/html/html/classSVF_1_1ActualParmVFGNode.html +23 -23
  205. package/SVF-doxygen/html/html/classSVF_1_1ActualRetVFGNode.html +25 -25
  206. package/SVF-doxygen/html/html/classSVF_1_1AddrStmt.html +1 -1
  207. package/SVF-doxygen/html/html/classSVF_1_1AddrVFGNode.html +13 -13
  208. package/SVF-doxygen/html/html/classSVF_1_1AliasDDAClient.html +2 -2
  209. package/SVF-doxygen/html/html/classSVF_1_1Andersen-members.html +266 -267
  210. package/SVF-doxygen/html/html/classSVF_1_1Andersen.html +20 -23
  211. package/SVF-doxygen/html/html/classSVF_1_1AndersenBase-members.html +226 -227
  212. package/SVF-doxygen/html/html/classSVF_1_1AndersenBase.html +1 -4
  213. package/SVF-doxygen/html/html/classSVF_1_1AndersenHCD-members.html +279 -280
  214. package/SVF-doxygen/html/html/classSVF_1_1AndersenHCD.html +0 -3
  215. package/SVF-doxygen/html/html/classSVF_1_1AndersenHLCD-members.html +288 -289
  216. package/SVF-doxygen/html/html/classSVF_1_1AndersenHLCD.html +0 -3
  217. package/SVF-doxygen/html/html/classSVF_1_1AndersenLCD-members.html +276 -277
  218. package/SVF-doxygen/html/html/classSVF_1_1AndersenLCD.html +1 -4
  219. package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD-members.html +275 -276
  220. package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD.html +5 -8
  221. package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR-members.html +287 -288
  222. package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR.html +7 -10
  223. package/SVF-doxygen/html/html/classSVF_1_1AndersenStat.html +9 -9
  224. package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff-members.html +274 -275
  225. package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff.html +1 -4
  226. package/SVF-doxygen/html/html/classSVF_1_1Annotator.html +1 -1
  227. package/SVF-doxygen/html/html/classSVF_1_1ArgumentVFGNode.html +17 -17
  228. package/SVF-doxygen/html/html/classSVF_1_1BDDManager.html +3 -3
  229. package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl-members.html +173 -174
  230. package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl.html +24 -71
  231. package/SVF-doxygen/html/html/classSVF_1_1BinaryOPStmt.html +1 -1
  232. package/SVF-doxygen/html/html/classSVF_1_1BinaryOPVFGNode.html +33 -36
  233. package/SVF-doxygen/html/html/classSVF_1_1BranchStmt.html +6 -6
  234. package/SVF-doxygen/html/html/classSVF_1_1BranchVFGNode.html +24 -26
  235. package/SVF-doxygen/html/html/classSVF_1_1BreakConstantGEPs.html +7 -7
  236. package/SVF-doxygen/html/html/classSVF_1_1CHGBuilder.html +41 -41
  237. package/SVF-doxygen/html/html/classSVF_1_1CHGraph.html +7 -7
  238. package/SVF-doxygen/html/html/classSVF_1_1CSC.html +4 -4
  239. package/SVF-doxygen/html/html/classSVF_1_1CallCFGEdge.html +1 -1
  240. package/SVF-doxygen/html/html/classSVF_1_1CallDirSVFGEdge.html +1 -1
  241. package/SVF-doxygen/html/html/classSVF_1_1CallGraphBuilder.html +4 -4
  242. package/SVF-doxygen/html/html/classSVF_1_1CallICFGNode.html +1 -1
  243. package/SVF-doxygen/html/html/classSVF_1_1CallIndSVFGEdge.html +1 -1
  244. package/SVF-doxygen/html/html/classSVF_1_1CallPE.html +1 -1
  245. package/SVF-doxygen/html/html/classSVF_1_1CallSite.html +41 -41
  246. package/SVF-doxygen/html/html/classSVF_1_1CloneDummyObjVar.html +1 -1
  247. package/SVF-doxygen/html/html/classSVF_1_1CloneFIObjVar.html +1 -1
  248. package/SVF-doxygen/html/html/classSVF_1_1CloneGepObjVar.html +1 -1
  249. package/SVF-doxygen/html/html/classSVF_1_1CmpStmt.html +1 -1
  250. package/SVF-doxygen/html/html/classSVF_1_1CmpVFGNode.html +25 -28
  251. package/SVF-doxygen/html/html/classSVF_1_1CondPTAImpl-members.html +166 -167
  252. package/SVF-doxygen/html/html/classSVF_1_1CondPTAImpl.html +120 -168
  253. package/SVF-doxygen/html/html/classSVF_1_1CondStdSet.html +2 -2
  254. package/SVF-doxygen/html/html/classSVF_1_1CondVar.html +1 -1
  255. package/SVF-doxygen/html/html/classSVF_1_1ConstraintGraph.html +4 -4
  256. package/SVF-doxygen/html/html/classSVF_1_1ConstraintNode.html +8 -8
  257. package/SVF-doxygen/html/html/classSVF_1_1ContextCond.html +7 -7
  258. package/SVF-doxygen/html/html/classSVF_1_1ContextDDA-members.html +266 -267
  259. package/SVF-doxygen/html/html/classSVF_1_1ContextDDA.html +31 -34
  260. package/SVF-doxygen/html/html/classSVF_1_1CopyStmt.html +1 -1
  261. package/SVF-doxygen/html/html/classSVF_1_1CopyVFGNode.html +2 -2
  262. package/SVF-doxygen/html/html/classSVF_1_1CoreBitVector.html +4 -4
  263. package/SVF-doxygen/html/html/classSVF_1_1CxtProc.html +7 -7
  264. package/SVF-doxygen/html/html/classSVF_1_1CxtStmt.html +7 -7
  265. package/SVF-doxygen/html/html/classSVF_1_1CxtThread.html +7 -7
  266. package/SVF-doxygen/html/html/classSVF_1_1CxtThreadProc.html +5 -5
  267. package/SVF-doxygen/html/html/classSVF_1_1CxtThreadStmt.html +5 -5
  268. package/SVF-doxygen/html/html/classSVF_1_1DCHGraph.html +64 -64
  269. package/SVF-doxygen/html/html/classSVF_1_1DDAClient.html +1 -1
  270. package/SVF-doxygen/html/html/classSVF_1_1DDAPass-members.html +19 -20
  271. package/SVF-doxygen/html/html/classSVF_1_1DDAPass.html +28 -72
  272. package/SVF-doxygen/html/html/classSVF_1_1DDAStat.html +5 -5
  273. package/SVF-doxygen/html/html/classSVF_1_1DDAVFSolver.html +3 -3
  274. package/SVF-doxygen/html/html/classSVF_1_1DirectSVFGEdge.html +1 -1
  275. package/SVF-doxygen/html/html/classSVF_1_1DistinctMRG.html +4 -4
  276. package/SVF-doxygen/html/html/classSVF_1_1DummyObjVar.html +1 -1
  277. package/SVF-doxygen/html/html/classSVF_1_1DummyValVar.html +1 -1
  278. package/SVF-doxygen/html/html/classSVF_1_1DummyVersionPropSVFGNode.html +1 -1
  279. package/SVF-doxygen/html/html/classSVF_1_1FIObjVar.html +1 -1
  280. package/SVF-doxygen/html/html/classSVF_1_1FSMPTA-members.html +293 -294
  281. package/SVF-doxygen/html/html/classSVF_1_1FSMPTA.html +0 -3
  282. package/SVF-doxygen/html/html/classSVF_1_1FlowDDA-members.html +259 -260
  283. package/SVF-doxygen/html/html/classSVF_1_1FlowDDA.html +10 -13
  284. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive-members.html +284 -285
  285. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive.html +43 -46
  286. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveStat.html +12 -12
  287. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveTBHC-members.html +324 -325
  288. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveTBHC.html +25 -28
  289. package/SVF-doxygen/html/html/classSVF_1_1ForkJoinAnalysis.html +65 -65
  290. package/SVF-doxygen/html/html/classSVF_1_1FormalINSVFGNode.html +1 -1
  291. package/SVF-doxygen/html/html/classSVF_1_1FormalOUTSVFGNode.html +1 -1
  292. package/SVF-doxygen/html/html/classSVF_1_1FormalParmVFGNode.html +29 -29
  293. package/SVF-doxygen/html/html/classSVF_1_1FormalRetVFGNode.html +28 -28
  294. package/SVF-doxygen/html/html/classSVF_1_1FunEntryICFGNode.html +2 -2
  295. package/SVF-doxygen/html/html/classSVF_1_1FunExitICFGNode.html +2 -2
  296. package/SVF-doxygen/html/html/classSVF_1_1FunptrDDAClient.html +3 -3
  297. package/SVF-doxygen/html/html/classSVF_1_1GepObjVar.html +6 -6
  298. package/SVF-doxygen/html/html/classSVF_1_1GepStmt.html +1 -1
  299. package/SVF-doxygen/html/html/classSVF_1_1GepVFGNode.html +13 -13
  300. package/SVF-doxygen/html/html/classSVF_1_1GepValVar.html +2 -2
  301. package/SVF-doxygen/html/html/classSVF_1_1GlobalICFGNode.html +1 -1
  302. package/SVF-doxygen/html/html/classSVF_1_1ICFG.html +3 -3
  303. package/SVF-doxygen/html/html/classSVF_1_1ICFGBuilder.html +15 -15
  304. package/SVF-doxygen/html/html/classSVF_1_1ICFGEdge.html +1 -1
  305. package/SVF-doxygen/html/html/classSVF_1_1ICFGNode.html +1 -1
  306. package/SVF-doxygen/html/html/classSVF_1_1ICFGPrinter.html +3 -3
  307. package/SVF-doxygen/html/html/classSVF_1_1IRAnnotator.html +9 -9
  308. package/SVF-doxygen/html/html/classSVF_1_1IRGraph.html +17 -17
  309. package/SVF-doxygen/html/html/classSVF_1_1IndirectSVFGEdge.html +1 -1
  310. package/SVF-doxygen/html/html/classSVF_1_1InterDisjointMRG.html +2 -2
  311. package/SVF-doxygen/html/html/classSVF_1_1InterMSSAPHISVFGNode.html +1 -1
  312. package/SVF-doxygen/html/html/classSVF_1_1InterPHIVFGNode.html +37 -37
  313. package/SVF-doxygen/html/html/classSVF_1_1IntraCFGEdge.html +1 -1
  314. package/SVF-doxygen/html/html/classSVF_1_1IntraDirSVFGEdge.html +1 -1
  315. package/SVF-doxygen/html/html/classSVF_1_1IntraDisjointMRG.html +4 -4
  316. package/SVF-doxygen/html/html/classSVF_1_1IntraICFGNode.html +1 -1
  317. package/SVF-doxygen/html/html/classSVF_1_1IntraIndSVFGEdge.html +1 -1
  318. package/SVF-doxygen/html/html/classSVF_1_1IntraMSSAPHISVFGNode.html +1 -1
  319. package/SVF-doxygen/html/html/classSVF_1_1IntraPHIVFGNode.html +23 -23
  320. package/SVF-doxygen/html/html/classSVF_1_1IteratedDominanceFrontier.html +3 -3
  321. package/SVF-doxygen/html/html/classSVF_1_1LLVMModuleSet.html +26 -26
  322. package/SVF-doxygen/html/html/classSVF_1_1LeakChecker.html +3 -3
  323. package/SVF-doxygen/html/html/classSVF_1_1LoadStmt.html +1 -1
  324. package/SVF-doxygen/html/html/classSVF_1_1LoadVFGNode.html +2 -2
  325. package/SVF-doxygen/html/html/classSVF_1_1LocationSet.html +15 -15
  326. package/SVF-doxygen/html/html/classSVF_1_1LockAnalysis.html +53 -53
  327. package/SVF-doxygen/html/html/classSVF_1_1LockResultValidator.html +37 -37
  328. package/SVF-doxygen/html/html/classSVF_1_1MHP.html +119 -119
  329. package/SVF-doxygen/html/html/classSVF_1_1MHPValidator.html +7 -7
  330. package/SVF-doxygen/html/html/classSVF_1_1MRGenerator.html +31 -31
  331. package/SVF-doxygen/html/html/classSVF_1_1MRSVFGNode.html +1 -1
  332. package/SVF-doxygen/html/html/classSVF_1_1MSSAPHISVFGNode.html +1 -1
  333. package/SVF-doxygen/html/html/classSVF_1_1MTA.html +8 -8
  334. package/SVF-doxygen/html/html/classSVF_1_1MTAAnnotator.html +13 -13
  335. package/SVF-doxygen/html/html/classSVF_1_1MTAResultValidator.html +104 -104
  336. package/SVF-doxygen/html/html/classSVF_1_1MTASVFGBuilder.html +25 -25
  337. package/SVF-doxygen/html/html/classSVF_1_1MTAStat.html +9 -9
  338. package/SVF-doxygen/html/html/classSVF_1_1MemObj.html +88 -88
  339. package/SVF-doxygen/html/html/classSVF_1_1MemSSA.html +25 -25
  340. package/SVF-doxygen/html/html/classSVF_1_1MemSSADF.html +1 -1
  341. package/SVF-doxygen/html/html/classSVF_1_1MemSSAStat.html +1 -1
  342. package/SVF-doxygen/html/html/classSVF_1_1MergeFunctionRets.html +3 -3
  343. package/SVF-doxygen/html/html/classSVF_1_1MutableDFPTData.html +1 -1
  344. package/SVF-doxygen/html/html/classSVF_1_1NodeIDAllocator_1_1Clusterer.html +2 -2
  345. package/SVF-doxygen/html/html/classSVF_1_1NullPtrVFGNode.html +22 -22
  346. package/SVF-doxygen/html/html/classSVF_1_1ObjTypeInfo.html +99 -99
  347. package/SVF-doxygen/html/html/classSVF_1_1ObjVar.html +2 -2
  348. package/SVF-doxygen/html/html/classSVF_1_1OfflineConsG.html +1 -1
  349. package/SVF-doxygen/html/html/classSVF_1_1PAGBuilderFromFile.html +3 -3
  350. package/SVF-doxygen/html/html/classSVF_1_1PCG.html +21 -21
  351. package/SVF-doxygen/html/html/classSVF_1_1PHIVFGNode.html +33 -33
  352. package/SVF-doxygen/html/html/classSVF_1_1PTACFInfoBuilder.html +7 -7
  353. package/SVF-doxygen/html/html/classSVF_1_1PTACallGraph.html +5 -5
  354. package/SVF-doxygen/html/html/classSVF_1_1PTACallGraphEdge.html +1 -1
  355. package/SVF-doxygen/html/html/classSVF_1_1PTACallGraphNode.html +2 -2
  356. package/SVF-doxygen/html/html/classSVF_1_1PTAStat-members.html +1 -1
  357. package/SVF-doxygen/html/html/classSVF_1_1PTAStat.html +34 -49
  358. package/SVF-doxygen/html/html/classSVF_1_1PathCondAllocator-members.html +26 -25
  359. package/SVF-doxygen/html/html/classSVF_1_1PathCondAllocator.html +256 -217
  360. package/SVF-doxygen/html/html/classSVF_1_1PersistentDFPTData.html +3 -3
  361. package/SVF-doxygen/html/html/classSVF_1_1PersistentDiffPTData.html +3 -3
  362. package/SVF-doxygen/html/html/classSVF_1_1PersistentPTData.html +6 -6
  363. package/SVF-doxygen/html/html/classSVF_1_1PersistentPointsToCache.html +6 -6
  364. package/SVF-doxygen/html/html/classSVF_1_1PhiStmt.html +2 -2
  365. package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis-members.html +129 -130
  366. package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.html +107 -150
  367. package/SVF-doxygen/html/html/classSVF_1_1PointsTo.html +6 -6
  368. package/SVF-doxygen/html/html/classSVF_1_1ProgSlice.html +35 -32
  369. package/SVF-doxygen/html/html/classSVF_1_1RaceResultValidator.html +9 -9
  370. package/SVF-doxygen/html/html/classSVF_1_1RetCFGEdge.html +1 -1
  371. package/SVF-doxygen/html/html/classSVF_1_1RetDirSVFGEdge.html +1 -1
  372. package/SVF-doxygen/html/html/classSVF_1_1RetICFGNode.html +1 -1
  373. package/SVF-doxygen/html/html/classSVF_1_1RetIndSVFGEdge.html +1 -1
  374. package/SVF-doxygen/html/html/classSVF_1_1RetPE.html +1 -1
  375. package/SVF-doxygen/html/html/classSVF_1_1RetPN.html +1 -1
  376. package/SVF-doxygen/html/html/classSVF_1_1SVFBasicBlock.html +3 -3
  377. package/SVF-doxygen/html/html/classSVF_1_1SVFFunction.html +29 -29
  378. package/SVF-doxygen/html/html/classSVF_1_1SVFG.html +11 -11
  379. package/SVF-doxygen/html/html/classSVF_1_1SVFGBuilder.html +4 -4
  380. package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT.html +15 -15
  381. package/SVF-doxygen/html/html/classSVF_1_1SVFGStat.html +5 -5
  382. package/SVF-doxygen/html/html/classSVF_1_1SVFGlobal.html +3 -3
  383. package/SVF-doxygen/html/html/classSVF_1_1SVFIR.html +21 -21
  384. package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder.html +180 -180
  385. package/SVF-doxygen/html/html/classSVF_1_1SVFModule.html +1 -1
  386. package/SVF-doxygen/html/html/classSVF_1_1SVFStmt.html +5 -5
  387. package/SVF-doxygen/html/html/classSVF_1_1SVFVar.html +5 -5
  388. package/SVF-doxygen/html/html/classSVF_1_1SaberAnnotator-members.html +3 -3
  389. package/SVF-doxygen/html/html/classSVF_1_1SaberAnnotator.html +35 -31
  390. package/SVF-doxygen/html/html/classSVF_1_1SaberSVFGBuilder.html +8 -8
  391. package/SVF-doxygen/html/html/classSVF_1_1SelectStmt.html +1 -1
  392. package/SVF-doxygen/html/html/classSVF_1_1SrcSnkDDA.html +4 -4
  393. package/SVF-doxygen/html/html/classSVF_1_1StInfo.html +39 -39
  394. package/SVF-doxygen/html/html/classSVF_1_1Steensgaard-members.html +240 -241
  395. package/SVF-doxygen/html/html/classSVF_1_1Steensgaard.html +1 -4
  396. package/SVF-doxygen/html/html/classSVF_1_1StmtVFGNode.html +1 -1
  397. package/SVF-doxygen/html/html/classSVF_1_1StoreStmt.html +1 -1
  398. package/SVF-doxygen/html/html/classSVF_1_1StoreVFGNode.html +2 -2
  399. package/SVF-doxygen/html/html/classSVF_1_1SymbolTableBuilder.html +104 -104
  400. package/SVF-doxygen/html/html/classSVF_1_1SymbolTableInfo-members.html +5 -7
  401. package/SVF-doxygen/html/html/classSVF_1_1SymbolTableInfo.html +215 -281
  402. package/SVF-doxygen/html/html/classSVF_1_1TCT.html +57 -57
  403. package/SVF-doxygen/html/html/classSVF_1_1TDForkPE.html +1 -1
  404. package/SVF-doxygen/html/html/classSVF_1_1TDJoinPE.html +1 -1
  405. package/SVF-doxygen/html/html/classSVF_1_1ThreadAPI.html +5 -5
  406. package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraph.html +21 -21
  407. package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraphBuilder.html +3 -3
  408. package/SVF-doxygen/html/html/classSVF_1_1ThreadForkEdge.html +1 -1
  409. package/SVF-doxygen/html/html/classSVF_1_1ThreadJoinEdge.html +1 -1
  410. package/SVF-doxygen/html/html/classSVF_1_1ThreadMHPIndSVFGEdge.html +1 -1
  411. package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis-members.html +232 -233
  412. package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis.html +6 -9
  413. package/SVF-doxygen/html/html/classSVF_1_1TypeBasedHeapCloning.html +33 -33
  414. package/SVF-doxygen/html/html/classSVF_1_1UnaryOPStmt.html +1 -1
  415. package/SVF-doxygen/html/html/classSVF_1_1UnaryOPVFGNode.html +35 -37
  416. package/SVF-doxygen/html/html/classSVF_1_1VFG.html +28 -28
  417. package/SVF-doxygen/html/html/classSVF_1_1VFGEdge.html +1 -1
  418. package/SVF-doxygen/html/html/classSVF_1_1VFGNode.html +2 -2
  419. package/SVF-doxygen/html/html/classSVF_1_1VFPathCond.html +5 -5
  420. package/SVF-doxygen/html/html/classSVF_1_1ValVar.html +1 -1
  421. package/SVF-doxygen/html/html/classSVF_1_1VarArgPN.html +1 -1
  422. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive-members.html +337 -338
  423. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive.html +12 -15
  424. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitiveStat.html +8 -8
  425. package/SVF-doxygen/html/html/classSVF_1_1WPAFSSolver.html +2 -2
  426. package/SVF-doxygen/html/html/classSVF_1_1WPAMinimumSolver.html +2 -2
  427. package/SVF-doxygen/html/html/classSVF_1_1WPAPass-members.html +19 -20
  428. package/SVF-doxygen/html/html/classSVF_1_1WPAPass.html +24 -68
  429. package/SVF-doxygen/html/html/classSVF_1_1WPASCCSolver.html +2 -2
  430. package/SVF-doxygen/html/html/classSVF_1_1WPASolver.html +1 -1
  431. package/SVF-doxygen/html/html/classSVF_1_1Z3Manager.html +4 -4
  432. package/SVF-doxygen/html/html/classes.html +96 -97
  433. package/SVF-doxygen/html/html/classllvm_1_1GraphPrinter.html +1 -1
  434. package/SVF-doxygen/html/html/classllvm_1_1generic__bridge__gep__type__iterator.html +3 -3
  435. package/SVF-doxygen/html/html/functions_a.html +7 -7
  436. package/SVF-doxygen/html/html/functions_b.html +1 -1
  437. package/SVF-doxygen/html/html/functions_d.html +0 -3
  438. package/SVF-doxygen/html/html/functions_e.html +2 -2
  439. package/SVF-doxygen/html/html/functions_f.html +3 -3
  440. package/SVF-doxygen/html/html/functions_func.html +10 -10
  441. package/SVF-doxygen/html/html/functions_func_b.html +1 -1
  442. package/SVF-doxygen/html/html/functions_func_e.html +2 -2
  443. package/SVF-doxygen/html/html/functions_func_g.html +6 -8
  444. package/SVF-doxygen/html/html/functions_func_o.html +1 -2
  445. package/SVF-doxygen/html/html/functions_g.html +5 -7
  446. package/SVF-doxygen/html/html/functions_l.html +6 -6
  447. package/SVF-doxygen/html/html/functions_n.html +3 -3
  448. package/SVF-doxygen/html/html/functions_o.html +11 -10
  449. package/SVF-doxygen/html/html/functions_p.html +4 -4
  450. package/SVF-doxygen/html/html/functions_r.html +3 -3
  451. package/SVF-doxygen/html/html/functions_s.html +6 -4
  452. package/SVF-doxygen/html/html/functions_t.html +3 -3
  453. package/SVF-doxygen/html/html/functions_v.html +6 -6
  454. package/SVF-doxygen/html/html/functions_vars_d.html +0 -3
  455. package/SVF-doxygen/html/html/functions_w.html +5 -9
  456. package/SVF-doxygen/html/html/globals.html +6 -0
  457. package/SVF-doxygen/html/html/globals_b.html +6 -0
  458. package/SVF-doxygen/html/html/globals_c.html +118 -100
  459. package/SVF-doxygen/html/html/globals_f.html +9 -3
  460. package/SVF-doxygen/html/html/globals_g.html +3 -0
  461. package/SVF-doxygen/html/html/globals_i.html +14 -2
  462. package/SVF-doxygen/html/html/globals_l.html +3 -0
  463. package/SVF-doxygen/html/html/globals_m.html +17 -14
  464. package/SVF-doxygen/html/html/globals_p.html +3 -0
  465. package/SVF-doxygen/html/html/globals_r.html +3 -0
  466. package/SVF-doxygen/html/html/globals_s.html +27 -22
  467. package/SVF-doxygen/html/html/globals_type.html +114 -0
  468. package/SVF-doxygen/html/html/globals_u.html +8 -2
  469. package/SVF-doxygen/html/html/globals_v.html +12 -0
  470. package/SVF-doxygen/html/html/hierarchy.html +149 -150
  471. package/SVF-doxygen/html/html/menudata.js +25 -19
  472. package/SVF-doxygen/html/html/namespaceSVF.html +128 -779
  473. package/SVF-doxygen/html/html/namespaceSVF_1_1SVFUtil.html +128 -95
  474. package/SVF-doxygen/html/html/namespaceSVF_1_1cppUtil.html +46 -46
  475. package/SVF-doxygen/html/html/namespacemembers.html +0 -6
  476. package/SVF-doxygen/html/html/namespacemembers_b.html +2 -8
  477. package/SVF-doxygen/html/html/namespacemembers_c.html +2 -26
  478. package/SVF-doxygen/html/html/namespacemembers_f.html +0 -6
  479. package/SVF-doxygen/html/html/namespacemembers_func.html +6 -3
  480. package/SVF-doxygen/html/html/namespacemembers_g.html +3 -3
  481. package/SVF-doxygen/html/html/namespacemembers_i.html +10 -22
  482. package/SVF-doxygen/html/html/namespacemembers_l.html +0 -3
  483. package/SVF-doxygen/html/html/namespacemembers_m.html +0 -3
  484. package/SVF-doxygen/html/html/namespacemembers_p.html +0 -6
  485. package/SVF-doxygen/html/html/namespacemembers_r.html +1 -4
  486. package/SVF-doxygen/html/html/namespacemembers_s.html +1 -19
  487. package/SVF-doxygen/html/html/namespacemembers_type.html +560 -4
  488. package/SVF-doxygen/html/html/namespacemembers_u.html +0 -6
  489. package/SVF-doxygen/html/html/namespacemembers_v.html +0 -12
  490. package/SVF-doxygen/html/html/search/all_1.js +6 -6
  491. package/SVF-doxygen/html/html/search/all_10.js +8 -9
  492. package/SVF-doxygen/html/html/search/all_12.js +3 -3
  493. package/SVF-doxygen/html/html/search/all_13.js +10 -13
  494. package/SVF-doxygen/html/html/search/all_14.js +3 -3
  495. package/SVF-doxygen/html/html/search/all_15.js +2 -2
  496. package/SVF-doxygen/html/html/search/all_16.js +6 -6
  497. package/SVF-doxygen/html/html/search/all_17.js +1 -1
  498. package/SVF-doxygen/html/html/search/all_2.js +3 -3
  499. package/SVF-doxygen/html/html/search/all_3.js +7 -9
  500. package/SVF-doxygen/html/html/search/all_4.js +0 -1
  501. package/SVF-doxygen/html/html/search/all_5.js +2 -2
  502. package/SVF-doxygen/html/html/search/all_6.js +3 -3
  503. package/SVF-doxygen/html/html/search/all_7.js +3 -3
  504. package/SVF-doxygen/html/html/search/all_8.js +0 -1
  505. package/SVF-doxygen/html/html/search/all_9.js +4 -4
  506. package/SVF-doxygen/html/html/search/all_c.js +3 -3
  507. package/SVF-doxygen/html/html/search/all_d.js +2 -2
  508. package/SVF-doxygen/html/html/search/all_e.js +3 -3
  509. package/SVF-doxygen/html/html/search/all_f.js +2 -2
  510. package/SVF-doxygen/html/html/search/classes_7.js +0 -1
  511. package/SVF-doxygen/html/html/search/functions_0.js +4 -4
  512. package/SVF-doxygen/html/html/search/functions_1.js +1 -1
  513. package/SVF-doxygen/html/html/search/functions_10.js +1 -1
  514. package/SVF-doxygen/html/html/search/functions_4.js +2 -2
  515. package/SVF-doxygen/html/html/search/functions_6.js +2 -2
  516. package/SVF-doxygen/html/html/search/functions_d.js +1 -1
  517. package/SVF-doxygen/html/html/search/typedefs_0.js +2 -2
  518. package/SVF-doxygen/html/html/search/typedefs_1.js +2 -2
  519. package/SVF-doxygen/html/html/search/typedefs_10.js +1 -1
  520. package/SVF-doxygen/html/html/search/typedefs_11.js +4 -7
  521. package/SVF-doxygen/html/html/search/typedefs_13.js +2 -2
  522. package/SVF-doxygen/html/html/search/typedefs_14.js +4 -4
  523. package/SVF-doxygen/html/html/search/typedefs_2.js +7 -9
  524. package/SVF-doxygen/html/html/search/typedefs_5.js +2 -2
  525. package/SVF-doxygen/html/html/search/typedefs_6.js +1 -1
  526. package/SVF-doxygen/html/html/search/typedefs_8.js +4 -4
  527. package/SVF-doxygen/html/html/search/typedefs_b.js +1 -1
  528. package/SVF-doxygen/html/html/search/typedefs_c.js +1 -1
  529. package/SVF-doxygen/html/html/search/typedefs_f.js +1 -2
  530. package/SVF-doxygen/html/html/search/variables_14.js +1 -1
  531. package/SVF-doxygen/html/html/search/variables_4.js +0 -1
  532. package/SVF-doxygen/html/html/search/variables_e.js +2 -2
  533. package/SVF-doxygen/html/html/structSVF_1_1Hash.html +3 -3
  534. package/SVF-doxygen/html/html/structSVF_1_1Hash_3_01std_1_1pair_3_01S_00_01T_01_4_01_4.html +5 -5
  535. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01ConstraintGraph_01_5_01_4.html +1 -1
  536. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01ICFG_01_5_01_4.html +2 -2
  537. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01IRGraph_01_5_01_4.html +2 -2
  538. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01OfflineConsG_01_5_01_4.html +1 -1
  539. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01PTACallGraph_01_5_01_4.html +2 -2
  540. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01SVFG_01_5_01_4.html +19 -19
  541. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01VFG_01_5_01_4.html +19 -19
  542. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1CallSite_01_4.html +3 -3
  543. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1CondStdSet_3_01Element_01_4_01_4.html +1 -1
  544. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1CxtDPItem_01_4.html +1 -1
  545. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1CxtProc_01_4.html +1 -1
  546. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1CxtStmtDPItem_3_01LocCond_01_4_01_4.html +1 -1
  547. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1CxtStmt_01_4.html +1 -1
  548. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1LocationSet_01_4.html +1 -1
  549. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1StmtDPItem_3_01LocCond_01_4_01_4.html +1 -1
  550. package/SVF-doxygen/html/html/structstd_1_1hash_3_01llvm_1_1SparseBitVector_3_01N_01_4_01_4.html +3 -3
  551. package/SVF-doxygen/html/html/structstd_1_1hash_3_01std_1_1vector_3_01T_01_4_01_4.html +3 -3
  552. package/SVF-doxygen/html/html/svf-ex_8cpp.html +4 -4
  553. package/SVF-doxygen/html/html/svf-ex_8cpp_source.html +6 -6
  554. package/clean.sh +2 -2
  555. package/include/DDA/DDAPass.h +0 -6
  556. package/include/Graphs/VFGNode.h +4 -18
  557. package/include/MemoryModel/PointerAnalysis.h +0 -4
  558. package/include/MemoryModel/PointerAnalysisImpl.h +0 -10
  559. package/include/MemoryModel/SVFVariables.h +4 -4
  560. package/include/MemoryModel/SymbolTableInfo.h +0 -11
  561. package/include/SABER/PathCondAllocator.h +9 -2
  562. package/include/SABER/SaberAnnotator.h +4 -4
  563. package/include/SVF-FE/BasicTypes.h +41 -2
  564. package/include/SVF-FE/LLVMUtil.h +7 -0
  565. package/include/Util/BasicTypes.h +0 -35
  566. package/include/Util/SVFBasicTypes.h +6 -27
  567. package/include/Util/SVFUtil.h +1 -1
  568. package/include/WPA/WPAPass.h +0 -6
  569. package/lib/DDA/DDAPass.cpp +1 -1
  570. package/lib/MTA/LockResultValidator.cpp +1 -0
  571. package/lib/MTA/MHP.cpp +1 -0
  572. package/lib/MTA/MTAResultValidator.cpp +1 -0
  573. package/lib/MTA/PCG.cpp +1 -1
  574. package/lib/MemoryModel/PointerAnalysisImpl.cpp +0 -9
  575. package/lib/MemoryModel/SVFVariables.cpp +2 -2
  576. package/lib/MemoryModel/SymbolTableInfo.cpp +0 -5
  577. package/lib/SABER/PathCondAllocator.cpp +32 -27
  578. package/lib/SABER/ProgSlice.cpp +7 -4
  579. package/lib/SABER/SaberAnnotator.cpp +8 -8
  580. package/lib/SVF-FE/BreakConstantExpr.cpp +1 -0
  581. package/lib/SVF-FE/LLVMUtil.cpp +3 -2
  582. package/lib/SVF-FE/SVFIRBuilder.cpp +1 -1
  583. package/lib/Util/PTAStat.cpp +3 -1
  584. package/package.json +1 -1
@@ -66,7 +66,7 @@ $(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 program variables (PAGNodes)</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"><a class="line" href="classSVF_1_1SVFVar.html#a6755ed387e15f44ffb637f64a0af60bc"> 48</a></span>&#160;<span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classSVF_1_1IRGraph.html">IRGraph</a>;</div><div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFVar.html#a6dbb40e8ee92033b77440c44acd8a868"> 49</a></span>&#160;<span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classSVF_1_1SVFIR.html">SVFIR</a>;</div><div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFVar.html#a1499a631a2a15408ea35a09fccc0f0ad"> 50</a></span>&#160;<span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classSVF_1_1VFG.html">VFG</a>;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeff"> 63</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="l00064"></a><span class="lineno"> 64</span>&#160; {</div><div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffa32d22852d39756992f87bd02def75f66"> 65</a></span>&#160; <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffa32d22852d39756992f87bd02def75f66">ValNode</a>,</div><div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffae21504009be26916ccdfcb5de42e3e11"> 66</a></span>&#160; <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffae21504009be26916ccdfcb5de42e3e11">ObjNode</a>,</div><div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffa5de2a8fce9a85f31818d58992b381b98"> 67</a></span>&#160; <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffa5de2a8fce9a85f31818d58992b381b98">RetNode</a>,</div><div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffa5a13a457f037424f61e74165a9cdcebf"> 68</a></span>&#160; <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffa5a13a457f037424f61e74165a9cdcebf">VarargNode</a>,</div><div class="line"><a name="l00069"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffa288e3f5d01c94d5c5d685d43f08a6c4a"> 69</a></span>&#160; <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffa288e3f5d01c94d5c5d685d43f08a6c4a">GepValNode</a>,</div><div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffaf3364b22f497146f06d1f4175a839f4f"> 70</a></span>&#160; <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffaf3364b22f497146f06d1f4175a839f4f">GepObjNode</a>,</div><div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffaabe491b0a744825250b97f407962c4a6"> 71</a></span>&#160; <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffaabe491b0a744825250b97f407962c4a6">FIObjNode</a>,</div><div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffa8299ae0d09f1b19411cb07cd79a2bae8"> 72</a></span>&#160; <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffa8299ae0d09f1b19411cb07cd79a2bae8">DummyValNode</a>,</div><div class="line"><a name="l00073"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffa1ab625ecaf51446246dcc2944d6559af"> 73</a></span>&#160; <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffa1ab625ecaf51446246dcc2944d6559af">DummyObjNode</a>,</div><div class="line"><a name="l00074"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffabf9e21e7cbec690ad318a68cd5d756dc"> 74</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="l00075"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffa2ca0654308fd181afcb1f20519a0247a"> 75</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="l00076"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffab85277a3daeecc24c99b3da86108e482"> 76</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="l00077"></a><span class="lineno"> 77</span>&#160; };</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;<span class="keyword">protected</span>:</div><div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFVar.html#a7deb494ac20ed56fca31a4f1fd92deea"> 81</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="l00082"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFVar.html#a0d918a6c8dd3b7b395d4c7161bcf9656"> 82</a></span>&#160; <a class="code" href="classSVF_1_1SVFStmt.html#a93fc6c4c991931c78c48500c2db50f66">SVFStmt::KindToSVFStmtMapTy</a> <a class="code" href="classSVF_1_1SVFVar.html#a0d918a6c8dd3b7b395d4c7161bcf9656">InEdgeKindToSetMap</a>;</div><div class="line"><a name="l00083"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFVar.html#a3775dd07e89ea6b25950a8b900a4ceab"> 83</a></span>&#160; <a class="code" href="classSVF_1_1SVFStmt.html#a93fc6c4c991931c78c48500c2db50f66">SVFStmt::KindToSVFStmtMapTy</a> <a class="code" href="classSVF_1_1SVFVar.html#a3775dd07e89ea6b25950a8b900a4ceab">OutEdgeKindToSetMap</a>;</div><div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFVar.html#a7c8ffadedbf53d30694feeb7771990af"> 84</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SVFVar.html#a7c8ffadedbf53d30694feeb7771990af">isPtr</a>; </div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</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="l00090"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFVar.html#ab76f9dea1559bd9b10b870dbc7bb454a"> 90</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="l00091"></a><span class="lineno"> 91</span>&#160; {</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; }</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;</div><div class="line"><a name="l00096"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFVar.html#afaa33caa8d2a306f6741d9d066243e40"> 96</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="l00097"></a><span class="lineno"> 97</span>&#160;<span class="keyword"> </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>((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="l00099"></a><span class="lineno"> 99</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="l00100"></a><span class="lineno"> 100</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="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFVar.html#a7deb494ac20ed56fca31a4f1fd92deea">value</a>;</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; }</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;</div><div class="line"><a name="l00105"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFVar.html#adaaf24b8b6ec06476cea112533c24066"> 105</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="l00106"></a><span class="lineno"> 106</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="keywordflow">if</span> (value)</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <span class="keywordflow">return</span> value-&gt;getType();</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; }</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;</div><div class="line"><a name="l00112"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFVar.html#a1ace69053c2c4436fd78d5624bd0086a"> 112</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="l00113"></a><span class="lineno"> 113</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="keywordflow">return</span> value!=<span class="keyword">nullptr</span>;</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; }</div><div class="line"><a name="l00117"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFVar.html#a3b61042079a6c9dc395f38925c6a1271"> 117</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="l00118"></a><span class="lineno"> 118</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFVar.html#a7c8ffadedbf53d30694feeb7771990af">isPtr</a>;</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; }</div><div class="line"><a name="l00123"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFVar.html#ab51b134720986c39fce7f033a49df6f0"> 123</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="l00124"></a><span class="lineno"> 124</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SVFVar.html#a1ace69053c2c4436fd78d5624bd0086a">hasValue</a>())</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</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="l00127"></a><span class="lineno"> 127</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; }</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</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="l00133"></a><span class="lineno"> 133</span>&#160;</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</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="l00136"></a><span class="lineno"> 136</span>&#160;</div><div class="line"><a name="l00138"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFVar.html#a53439a493963d16e5a1b5ed36ab6d33e"> 138</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="l00139"></a><span class="lineno"> 139</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <span class="keywordflow">if</span>(value)</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; {</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</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="l00143"></a><span class="lineno"> 143</span>&#160; <span class="keywordflow">return</span> inst-&gt;getParent()-&gt;getParent();</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</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="l00145"></a><span class="lineno"> 145</span>&#160; <span class="keywordflow">return</span> arg-&gt;getParent();</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</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="l00147"></a><span class="lineno"> 147</span>&#160; <span class="keywordflow">return</span> fun;</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; }</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; }</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;</div><div class="line"><a name="l00153"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFVar.html#a76964ef7d4842a469d7720881499d8a6"> 153</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="classSVF_1_1SVFStmt.html#a8cd7b6c6fd8b030b1421d95a086359f4">SVFStmt::SVFStmtSetTy</a>&amp; <a class="code" href="classSVF_1_1SVFVar.html#a76964ef7d4842a469d7720881499d8a6">getIncomingEdges</a>(<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9">SVFStmt::PEDGEK</a> kind)</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; {</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <span class="keywordflow">return</span> InEdgeKindToSetMap[kind];</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; }</div><div class="line"><a name="l00158"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFVar.html#a927733580b47be5ffcfced44ba9fd6c3"> 158</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="classSVF_1_1SVFStmt.html#a8cd7b6c6fd8b030b1421d95a086359f4">SVFStmt::SVFStmtSetTy</a>&amp; <a class="code" href="classSVF_1_1SVFVar.html#a927733580b47be5ffcfced44ba9fd6c3">getOutgoingEdges</a>(<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9">SVFStmt::PEDGEK</a> kind)</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; {</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <span class="keywordflow">return</span> OutEdgeKindToSetMap[kind];</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; }</div><div class="line"><a name="l00163"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFVar.html#a747b2c92c81d32fcd357e80d2d8fe7cc"> 163</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="l00164"></a><span class="lineno"> 164</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; SVFStmt::KindToSVFStmtMapTy::const_iterator it = InEdgeKindToSetMap.find(kind);</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; <span class="keywordflow">if</span> (it != InEdgeKindToSetMap.end())</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <span class="keywordflow">return</span> (!it-&gt;second.empty());</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; }</div><div class="line"><a name="l00172"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFVar.html#a9b00f9b5f8ad2422162f4396e2d8fa42"> 172</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="l00173"></a><span class="lineno"> 173</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; SVFStmt::KindToSVFStmtMapTy::const_iterator it = OutEdgeKindToSetMap.find(kind);</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <span class="keywordflow">if</span> (it != OutEdgeKindToSetMap.end())</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <span class="keywordflow">return</span> (!it-&gt;second.empty());</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; }</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; </div><div class="line"><a name="l00182"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFVar.html#a893890649ae7d8e275dd823e941aa39b"> 182</a></span>&#160; <span class="keyword">inline</span> SVFStmt::SVFStmtSetTy::iterator <a class="code" href="classSVF_1_1SVFVar.html#a893890649ae7d8e275dd823e941aa39b">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="l00183"></a><span class="lineno"> 183</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; SVFStmt::KindToSVFStmtMapTy::const_iterator it = InEdgeKindToSetMap.find(kind);</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</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="l00186"></a><span class="lineno"> 186</span>&#160; <span class="keywordflow">return</span> it-&gt;second.begin();</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;</div><div class="line"><a name="l00190"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFVar.html#af1cf24ab50e0d86c9d0f9bd5744b4c10"> 190</a></span>&#160; <span class="keyword">inline</span> SVFStmt::SVFStmtSetTy::iterator <a class="code" href="classSVF_1_1SVFVar.html#af1cf24ab50e0d86c9d0f9bd5744b4c10">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="l00191"></a><span class="lineno"> 191</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; SVFStmt::KindToSVFStmtMapTy::const_iterator it = InEdgeKindToSetMap.find(kind);</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</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="l00194"></a><span class="lineno"> 194</span>&#160; <span class="keywordflow">return</span> it-&gt;second.end();</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; }</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;</div><div class="line"><a name="l00198"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFVar.html#a9e40eafe55a2c1448b830b56ae72e17f"> 198</a></span>&#160; <span class="keyword">inline</span> SVFStmt::SVFStmtSetTy::iterator <a class="code" href="classSVF_1_1SVFVar.html#a9e40eafe55a2c1448b830b56ae72e17f">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="l00199"></a><span class="lineno"> 199</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; SVFStmt::KindToSVFStmtMapTy::const_iterator it = OutEdgeKindToSetMap.find(kind);</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</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="l00202"></a><span class="lineno"> 202</span>&#160; <span class="keywordflow">return</span> it-&gt;second.begin();</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; }</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;</div><div class="line"><a name="l00206"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFVar.html#aa5176fce9746bc585d43ebb4c8c824e5"> 206</a></span>&#160; <span class="keyword">inline</span> SVFStmt::SVFStmtSetTy::iterator <a class="code" href="classSVF_1_1SVFVar.html#aa5176fce9746bc585d43ebb4c8c824e5">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="l00207"></a><span class="lineno"> 207</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; SVFStmt::KindToSVFStmtMapTy::const_iterator it = OutEdgeKindToSetMap.find(kind);</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</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="l00210"></a><span class="lineno"> 210</span>&#160; <span class="keywordflow">return</span> it-&gt;second.end();</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; }</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160;</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160;</div><div class="line"><a name="l00217"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFVar.html#a9376133075b0d44ff09876af933c8618"> 217</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="l00218"></a><span class="lineno"> 218</span>&#160; {</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; <a class="code" href="classSVF_1_1GenericNode.html#a3f20339b5295e11beb0f9adb95c7aa5b">GNodeK</a> kind = inEdge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>();</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; InEdgeKindToSetMap[kind].insert(inEdge);</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; <a class="code" href="classSVF_1_1GenericNode.html#a93d217b0c9fd8008a2989ca2b4f3fbfb">addIncomingEdge</a>(inEdge);</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; }</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160;</div><div class="line"><a name="l00224"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFVar.html#a21a44c7a30e4e3743f6c3186fd7dbe8f"> 224</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="l00225"></a><span class="lineno"> 225</span>&#160; {</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; <a class="code" href="classSVF_1_1GenericNode.html#a3f20339b5295e11beb0f9adb95c7aa5b">GNodeK</a> kind = outEdge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>();</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; OutEdgeKindToSetMap[kind].insert(outEdge);</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; <a class="code" href="classSVF_1_1GenericNode.html#ae74283fbc788665296a69e56f334557b">addOutgoingEdge</a>(outEdge);</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; }</div><div class="line"><a name="l00231"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFVar.html#a71e4fd7a1271a17e971ed90044e6da24"> 231</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="l00232"></a><span class="lineno"> 232</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; SVFStmt::KindToSVFStmtMapTy::const_iterator it = InEdgeKindToSetMap.find(<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a20d960c19118d1ed319e0dbea94405e8">SVFStmt::Gep</a>);</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; <span class="keywordflow">if</span> (it != InEdgeKindToSetMap.end())</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; {</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> gep : it-&gt;second){</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; <span class="keywordflow">if</span>(SVFUtil::cast&lt;GepStmt&gt;(gep)-&gt;isVariantFieldGep())</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</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; }</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; }</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;<span class="keyword">public</span>:</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</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="l00246"></a><span class="lineno"> 246</span>&#160;</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</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="l00249"></a><span class="lineno"> 249</span>&#160;</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160;</div><div class="line"><a name="l00253"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFVar.html#aeea492411a86c65bcce4a1ef956b3dbe"> 253</a></span>&#160; <span class="keyword">friend</span> <a class="code" href="namespaceSVF.html#a8bd74fdcb0e58d0249003df9c3fb8b31">OutStream</a>&amp; <a class="code" href="classSVF_1_1SVFVar.html#aeea492411a86c65bcce4a1ef956b3dbe">operator&lt;&lt; </a>(<a class="code" href="namespaceSVF.html#a8bd74fdcb0e58d0249003df9c3fb8b31">OutStream</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="l00254"></a><span class="lineno"> 254</span>&#160; {</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; o &lt;&lt; node.<a class="code" href="classSVF_1_1SVFVar.html#ada932ef2ae0a3e712174df479c35b0dd">toString</a>();</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; <span class="keywordflow">return</span> o;</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; }</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160;};</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160;</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;</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160;<span class="comment"> * Value (Pointer) variable</span></div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00266"></a><span class="lineno"><a class="line" href="classSVF_1_1ValVar.html"> 266</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="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;<span class="keyword">public</span>:</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160;</div><div class="line"><a name="l00272"></a><span class="lineno"><a class="line" href="classSVF_1_1ValVar.html#adbbf3c9ff5dcb10ac528d3eb4b69750c"> 272</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="l00273"></a><span class="lineno"> 273</span>&#160; {</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</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"><a class="line" href="classSVF_1_1ValVar.html#a71e5f4eaf74f852d3354ac6b0b65f39c"> 276</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="l00277"></a><span class="lineno"> 277</span>&#160; {</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</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="l00279"></a><span class="lineno"> 279</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="l00280"></a><span class="lineno"> 280</span>&#160; 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="l00281"></a><span class="lineno"> 281</span>&#160; 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="l00282"></a><span class="lineno"> 282</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="l00283"></a><span class="lineno"> 283</span>&#160; }</div><div class="line"><a name="l00284"></a><span class="lineno"><a class="line" href="classSVF_1_1ValVar.html#a371f38564932cc04c6c4a00a99bf6c6a"> 284</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="l00285"></a><span class="lineno"> 285</span>&#160; {</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</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="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#a283f7c0c2eaae07c6865f73a0daafeffa288e3f5d01c94d5c5d685d43f08a6c4a">SVFVar::GepValNode</a> ||</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; 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="l00289"></a><span class="lineno"> 289</span>&#160; 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="l00290"></a><span class="lineno"> 290</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="l00291"></a><span class="lineno"> 291</span>&#160; }</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160;</div><div class="line"><a name="l00295"></a><span class="lineno"><a class="line" href="classSVF_1_1ValVar.html#ae5dc21b3327a100ffe3e0e2c876ba1bb"> 295</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="l00296"></a><span class="lineno"> 296</span>&#160; <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>(val, i, ty)</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; {</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; }</div><div class="line"><a name="l00300"></a><span class="lineno"><a class="line" href="classSVF_1_1ValVar.html#aeaccfd3bf5f968ad12d7e1a2426e5faa"> 300</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="l00301"></a><span class="lineno"> 301</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</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="l00303"></a><span class="lineno"> 303</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="l00304"></a><span class="lineno"> 304</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;&quot;</span>;</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; }</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160;</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</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="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;</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160;<span class="comment"> * Memory Object variable</span></div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00314"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjVar.html"> 314</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="l00315"></a><span class="lineno"> 315</span>&#160;{</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160;</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160;<span class="keyword">protected</span>:</div><div class="line"><a name="l00318"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjVar.html#a3d08dc1d15a449ff4b7018da4bfdcb88"> 318</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="l00319"></a><span class="lineno"> 319</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="l00321"></a><span class="lineno"> 321</span>&#160; <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>(val, i, ty), mem(m)</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; {</div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; }</div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160;<span class="keyword">public</span>:</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"><a class="line" href="classSVF_1_1ObjVar.html#ac127d3ee00a6bed2bdba2f24b389eb4b"> 327</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="l00328"></a><span class="lineno"> 328</span>&#160; {</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; }</div><div class="line"><a name="l00331"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjVar.html#a78ee2be4a346728be947ce29d3820c13"> 331</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="l00332"></a><span class="lineno"> 332</span>&#160; {</div><div class="line"><a name="l00333"></a><span class="lineno"> 333</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="l00334"></a><span class="lineno"> 334</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="l00335"></a><span class="lineno"> 335</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="l00336"></a><span class="lineno"> 336</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="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#a283f7c0c2eaae07c6865f73a0daafeffabf9e21e7cbec690ad318a68cd5d756dc">SVFVar::CloneGepObjNode</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#a283f7c0c2eaae07c6865f73a0daafeffa2ca0654308fd181afcb1f20519a0247a">SVFVar::CloneFIObjNode</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#a283f7c0c2eaae07c6865f73a0daafeffab85277a3daeecc24c99b3da86108e482">SVFVar::CloneDummyObjNode</a>;</div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; }</div><div class="line"><a name="l00341"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjVar.html#a42b68822afc39d415db8c29079caf9c8"> 341</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="l00342"></a><span class="lineno"> 342</span>&#160; {</div><div class="line"><a name="l00343"></a><span class="lineno"> 343</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="l00344"></a><span class="lineno"> 344</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="l00345"></a><span class="lineno"> 345</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="l00346"></a><span class="lineno"> 346</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="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#a283f7c0c2eaae07c6865f73a0daafeffabf9e21e7cbec690ad318a68cd5d756dc">SVFVar::CloneGepObjNode</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#a283f7c0c2eaae07c6865f73a0daafeffa2ca0654308fd181afcb1f20519a0247a">SVFVar::CloneFIObjNode</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#a283f7c0c2eaae07c6865f73a0daafeffab85277a3daeecc24c99b3da86108e482">SVFVar::CloneDummyObjNode</a>;</div><div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; }</div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160;</div><div class="line"><a name="l00354"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjVar.html#a6a4feb73b54e602407e35eeb09f55930"> 354</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="l00355"></a><span class="lineno"> 355</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; <span class="keywordflow">return</span> mem;</div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160; }</div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160;</div><div class="line"><a name="l00360"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjVar.html#ac1609e2e3b6843c6f7992e425771fce3"> 360</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="l00361"></a><span class="lineno"> 361</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</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="l00363"></a><span class="lineno"> 363</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="l00364"></a><span class="lineno"> 364</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;&quot;</span>;</div><div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; }</div><div class="line"><a name="l00367"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjVar.html#aa1004c9973fb974ba1e52df80978321d"> 367</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="l00368"></a><span class="lineno"> 368</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00369"></a><span class="lineno"> 369</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="l00370"></a><span class="lineno"> 370</span>&#160; }</div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160;</div><div class="line"><a name="l00372"></a><span class="lineno"> 372</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="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;</div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160;<span class="comment"> * Gep Value (Pointer) variable, this variable can be dynamic generated for field sensitive analysis</span></div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160;<span class="comment"> * e.g. memcpy, temp gep value variable needs to be created</span></div><div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160;<span class="comment"> * Each Gep Value variable is connected to base value variable via gep edge</span></div><div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00381"></a><span class="lineno"><a class="line" href="classSVF_1_1GepValVar.html"> 381</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="l00382"></a><span class="lineno"> 382</span>&#160;{</div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160;</div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00385"></a><span class="lineno"><a class="line" href="classSVF_1_1GepValVar.html#a2ee5e9a2e5a92b32fd81fda09b560ad6"> 385</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="l00386"></a><span class="lineno"><a class="line" href="classSVF_1_1GepValVar.html#aaf5f5d3734e1db83c6d4f38d560b2f45"> 386</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="l00387"></a><span class="lineno"> 387</span>&#160;</div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160;</div><div class="line"><a name="l00391"></a><span class="lineno"><a class="line" href="classSVF_1_1GepValVar.html#a28e42f01110a2d0a5f1f90bca14c5035"> 391</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="l00392"></a><span class="lineno"> 392</span>&#160; {</div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</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#aea2c58dc4124157a23c2cc0fe050f158"> 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#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="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> 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="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#a8f8f8e21cdfcccd7523dc2371c696ad8"> 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#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="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#a0aab756122dcce24faf556f0b7057dc1"> 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#a0aab756122dcce24faf556f0b7057dc1">classof</a>(<span class="keyword">const</span> GenericPAGNodeTy *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="l00408"></a><span class="lineno"> 408</span>&#160;</div><div class="line"><a name="l00410"></a><span class="lineno"><a class="line" href="classSVF_1_1GepValVar.html#af4fd4a194f00d5cc76c2aeb9e316f768"> 410</a></span>&#160; <a class="code" href="classSVF_1_1GepValVar.html#af4fd4a194f00d5cc76c2aeb9e316f768">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) :</div><div class="line"><a name="l00411"></a><span class="lineno"> 411</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)</div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160; {</div><div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160; }</div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160;</div><div class="line"><a name="l00416"></a><span class="lineno"><a class="line" href="classSVF_1_1GepValVar.html#a0e5084d3fc54a70ace07075f846395ef"> 416</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a9b707002523ece2ac54ca893ee9a2d4e">s32_t</a> <a class="code" href="classSVF_1_1GepValVar.html#a0e5084d3fc54a70ace07075f846395ef">getConstantFieldIdx</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160; <span class="keywordflow">return</span> ls.<a class="code" href="classSVF_1_1LocationSet.html#a63c5c8e03b35e0d0cea94137d309c853">accumulateConstantFieldIdx</a>();</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160; }</div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160;</div><div class="line"><a name="l00422"></a><span class="lineno"><a class="line" href="classSVF_1_1GepValVar.html#ae89482e674768298f49e51df4ebe63e3"> 422</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="l00423"></a><span class="lineno"> 423</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00424"></a><span class="lineno"> 424</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="l00425"></a><span class="lineno"> 425</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(getConstantFieldIdx());</div><div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;offset_&quot;</span> + llvm::utostr(getConstantFieldIdx());</div><div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160; }</div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160;</div><div class="line"><a name="l00429"></a><span class="lineno"><a class="line" href="classSVF_1_1GepValVar.html#a2760700f067c6a2fbc4e6e626b603bc4"> 429</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="l00430"></a><span class="lineno"> 430</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160; <span class="keywordflow">return</span> gepValType;</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"> 433</span>&#160;</div><div class="line"><a name="l00434"></a><span class="lineno"> 434</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="l00435"></a><span class="lineno"> 435</span>&#160;};</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"> 438</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160;<span class="comment"> * Gep Obj variable, this is dynamic generated for field sensitive analysis</span></div><div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160;<span class="comment"> * Each gep obj variable is one field of a MemObj (base)</span></div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00442"></a><span class="lineno"><a class="line" href="classSVF_1_1GepObjVar.html"> 442</a></span>&#160;<span class="keyword">class </span><a class="code" href="classSVF_1_1GepObjVar.html">GepObjVar</a>: <span class="keyword">public</span> <a class="code" href="classSVF_1_1ObjVar.html">ObjVar</a></div><div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160;{</div><div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00445"></a><span class="lineno"><a class="line" href="classSVF_1_1GepObjVar.html#a55b057663180420c6bb09bf849d83f6b"> 445</a></span>&#160; <a class="code" href="classSVF_1_1LocationSet.html">LocationSet</a> <a class="code" href="classSVF_1_1GepObjVar.html#a55b057663180420c6bb09bf849d83f6b">ls</a>;</div><div class="line"><a name="l00446"></a><span class="lineno"><a class="line" href="classSVF_1_1GepObjVar.html#aff50e1d96403eeacaa64f7adb07ce0a5"> 446</a></span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> base = 0;</div><div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160;</div><div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160;</div><div class="line"><a name="l00451"></a><span class="lineno"><a class="line" href="classSVF_1_1GepObjVar.html#ab3129ad98687e6352675d84373d96ffe"> 451</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1GepObjVar.html#ab3129ad98687e6352675d84373d96ffe">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1GepObjVar.html">GepObjVar</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="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160; }</div><div class="line"><a name="l00455"></a><span class="lineno"><a class="line" href="classSVF_1_1GepObjVar.html#ab6105a2f7bbd9a4e611d96f0bcac0e6c"> 455</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1GepObjVar.html#ab6105a2f7bbd9a4e611d96f0bcac0e6c">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1ObjVar.html">ObjVar</a> * node)</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="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="l00458"></a><span class="lineno"> 458</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="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_1GepObjVar.html#ad7fc6e6ed6fca8641c44b91ab29524bd"> 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_1GepObjVar.html#ad7fc6e6ed6fca8641c44b91ab29524bd">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a> *node)</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> 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="l00463"></a><span class="lineno"> 463</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="l00464"></a><span class="lineno"> 464</span>&#160; }</div><div class="line"><a name="l00465"></a><span class="lineno"><a class="line" href="classSVF_1_1GepObjVar.html#ac3583a2d4d4ceaf820d23b43a893ac92"> 465</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1GepObjVar.html#ac3583a2d4d4ceaf820d23b43a893ac92">classof</a>(<span class="keyword">const</span> GenericPAGNodeTy *node)</div><div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160; {</div><div class="line"><a name="l00467"></a><span class="lineno"> 467</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="l00468"></a><span class="lineno"> 468</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="l00469"></a><span class="lineno"> 469</span>&#160; }</div><div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160;</div><div class="line"><a name="l00473"></a><span class="lineno"><a class="line" href="classSVF_1_1GepObjVar.html#ae80d95a4d90ca64eca819e140445004c"> 473</a></span>&#160; <a class="code" href="classSVF_1_1GepObjVar.html#ae80d95a4d90ca64eca819e140445004c">GepObjVar</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="l00474"></a><span class="lineno"> 474</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="l00475"></a><span class="lineno"> 475</span>&#160; {</div><div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160; base = mem-&gt;<a class="code" href="classSVF_1_1MemObj.html#a3ab6f65ffbf6442daac4d3f70f2d3cb1">getId</a>();</div><div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160; }</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"><a class="line" href="classSVF_1_1GepObjVar.html#a553e648804b39c503e7288dd0434c339"> 480</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_1GepObjVar.html#a553e648804b39c503e7288dd0434c339">getLocationSet</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160; <span class="keywordflow">return</span> ls;</div><div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160; }</div><div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160;</div><div class="line"><a name="l00486"></a><span class="lineno"><a class="line" href="classSVF_1_1GepObjVar.html#aaf2ab86c43e4f33183289f9bdead36c1"> 486</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a9b707002523ece2ac54ca893ee9a2d4e">s32_t</a> <a class="code" href="classSVF_1_1GepObjVar.html#aaf2ab86c43e4f33183289f9bdead36c1">getConstantFieldIdx</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160; <span class="keywordflow">return</span> ls.<a class="code" href="classSVF_1_1LocationSet.html#a63c5c8e03b35e0d0cea94137d309c853">accumulateConstantFieldIdx</a>();</div><div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160; }</div><div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160;</div><div class="line"><a name="l00492"></a><span class="lineno"><a class="line" href="classSVF_1_1GepObjVar.html#a5e371fae7592d763661a7cb777107ff4"> 492</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1GepObjVar.html#a5e371fae7592d763661a7cb777107ff4">setBaseNode</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> base)</div><div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160; {</div><div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160; this-&gt;base = base;</div><div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160; }</div><div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160;</div><div class="line"><a name="l00498"></a><span class="lineno"><a class="line" href="classSVF_1_1GepObjVar.html#a4c5e346db61f7e04c15bf8527d8eff3c"> 498</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1GepObjVar.html#a4c5e346db61f7e04c15bf8527d8eff3c">getBaseNode</a>(<span class="keywordtype">void</span>)<span class="keyword"> const</span></div><div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160; <span class="keywordflow">return</span> base;</div><div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160; }</div><div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160;</div><div class="line"><a name="l00504"></a><span class="lineno"><a class="line" href="classSVF_1_1GepObjVar.html#ab2348a9378f1c64cf5c176b21a655d14"> 504</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_1GepObjVar.html#ab2348a9378f1c64cf5c176b21a655d14">getType</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00506"></a><span class="lineno"> 506</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#a87ee08e81de307eb9c02889b6ed98dd5">getFlatternedElemType</a>(mem-&gt;getType(), ls.<a class="code" href="classSVF_1_1LocationSet.html#a63c5c8e03b35e0d0cea94137d309c853">accumulateConstantFieldIdx</a>());</div><div class="line"><a name="l00507"></a><span class="lineno"> 507</span>&#160; }</div><div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160;</div><div class="line"><a name="l00510"></a><span class="lineno"><a class="line" href="classSVF_1_1GepObjVar.html#a88f86fe8abcb0550d838e5de11ae3ef7"> 510</a></span>&#160; <span class="keyword">inline</span> <span class="keyword">const</span> std::string <a class="code" href="classSVF_1_1GepObjVar.html#a88f86fe8abcb0550d838e5de11ae3ef7">getValueName</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00512"></a><span class="lineno"> 512</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="l00513"></a><span class="lineno"> 513</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#a63c5c8e03b35e0d0cea94137d309c853">accumulateConstantFieldIdx</a>());</div><div class="line"><a name="l00514"></a><span class="lineno"> 514</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#a63c5c8e03b35e0d0cea94137d309c853">accumulateConstantFieldIdx</a>());</div><div class="line"><a name="l00515"></a><span class="lineno"> 515</span>&#160; }</div><div class="line"><a name="l00516"></a><span class="lineno"> 516</span>&#160;</div><div class="line"><a name="l00517"></a><span class="lineno"> 517</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="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="comment">/*</span></div><div class="line"><a name="l00521"></a><span class="lineno"> 521</span>&#160;<span class="comment"> * Field-insensitive Gep Obj variable, this is dynamic generated for field sensitive analysis</span></div><div class="line"><a name="l00522"></a><span class="lineno"> 522</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="l00523"></a><span class="lineno"> 523</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00524"></a><span class="lineno"><a class="line" href="classSVF_1_1FIObjVar.html"> 524</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="l00525"></a><span class="lineno"> 525</span>&#160;{</div><div class="line"><a name="l00526"></a><span class="lineno"> 526</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00527"></a><span class="lineno"> 527</span>&#160;</div><div class="line"><a name="l00529"></a><span class="lineno"> 529</span>&#160;</div><div class="line"><a name="l00530"></a><span class="lineno"><a class="line" href="classSVF_1_1FIObjVar.html#a1801ca6c6cf3367eff5621fa7c788619"> 530</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="l00531"></a><span class="lineno"> 531</span>&#160; {</div><div class="line"><a name="l00532"></a><span class="lineno"> 532</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00533"></a><span class="lineno"> 533</span>&#160; }</div><div class="line"><a name="l00534"></a><span class="lineno"><a class="line" href="classSVF_1_1FIObjVar.html#a07ed7216777acb05861044542cc2fe66"> 534</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="l00535"></a><span class="lineno"> 535</span>&#160; {</div><div class="line"><a name="l00536"></a><span class="lineno"> 536</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="l00537"></a><span class="lineno"> 537</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="l00538"></a><span class="lineno"> 538</span>&#160; }</div><div class="line"><a name="l00539"></a><span class="lineno"><a class="line" href="classSVF_1_1FIObjVar.html#a1f6ba91fe429f55598cef983a2b3a538"> 539</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="l00540"></a><span class="lineno"> 540</span>&#160; {</div><div class="line"><a name="l00541"></a><span class="lineno"> 541</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="l00542"></a><span class="lineno"> 542</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="l00543"></a><span class="lineno"> 543</span>&#160; }</div><div class="line"><a name="l00544"></a><span class="lineno"><a class="line" href="classSVF_1_1FIObjVar.html#a73cd80e57f81d34b6295e110e3d43acc"> 544</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="l00545"></a><span class="lineno"> 545</span>&#160; {</div><div class="line"><a name="l00546"></a><span class="lineno"> 546</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="l00547"></a><span class="lineno"> 547</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="l00548"></a><span class="lineno"> 548</span>&#160; }</div><div class="line"><a name="l00550"></a><span class="lineno"> 550</span>&#160;</div><div class="line"><a name="l00552"></a><span class="lineno"><a class="line" href="classSVF_1_1FIObjVar.html#ae77995bc46e4f7b1b17fa86aa601ffae"> 552</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="l00553"></a><span class="lineno"> 553</span>&#160; <a class="code" href="classSVF_1_1ObjVar.html">ObjVar</a>(val, i, mem, ty)</div><div class="line"><a name="l00554"></a><span class="lineno"> 554</span>&#160; {</div><div class="line"><a name="l00555"></a><span class="lineno"> 555</span>&#160; }</div><div class="line"><a name="l00556"></a><span class="lineno"> 556</span>&#160;</div><div class="line"><a name="l00558"></a><span class="lineno"><a class="line" href="classSVF_1_1FIObjVar.html#a330b28f8488de9e186bedf73e5576a08"> 558</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="l00559"></a><span class="lineno"> 559</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00560"></a><span class="lineno"> 560</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="l00561"></a><span class="lineno"> 561</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="l00562"></a><span class="lineno"> 562</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot; (base object)&quot;</span>;</div><div class="line"><a name="l00563"></a><span class="lineno"> 563</span>&#160; }</div><div class="line"><a name="l00564"></a><span class="lineno"> 564</span>&#160;</div><div class="line"><a name="l00565"></a><span class="lineno"> 565</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="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="comment">/*</span></div><div class="line"><a name="l00569"></a><span class="lineno"> 569</span>&#160;<span class="comment"> * Unique Return node of a procedure</span></div><div class="line"><a name="l00570"></a><span class="lineno"> 570</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00571"></a><span class="lineno"><a class="line" href="classSVF_1_1RetPN.html"> 571</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_1ValVar.html">ValVar</a></div><div class="line"><a name="l00572"></a><span class="lineno"> 572</span>&#160;{</div><div class="line"><a name="l00573"></a><span class="lineno"> 573</span>&#160;</div><div class="line"><a name="l00574"></a><span class="lineno"> 574</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00575"></a><span class="lineno"> 575</span>&#160;</div><div class="line"><a name="l00577"></a><span class="lineno"><a class="line" href="classSVF_1_1RetPN.html#acedd9e576a077f96c0638065d4c70bcf"> 577</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="l00578"></a><span class="lineno"> 578</span>&#160; {</div><div class="line"><a name="l00579"></a><span class="lineno"> 579</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00580"></a><span class="lineno"> 580</span>&#160; }</div><div class="line"><a name="l00581"></a><span class="lineno"><a class="line" href="classSVF_1_1RetPN.html#a5e9d174902aa6dcfae418697363967b9"> 581</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="l00582"></a><span class="lineno"> 582</span>&#160; {</div><div class="line"><a name="l00583"></a><span class="lineno"> 583</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="l00584"></a><span class="lineno"> 584</span>&#160; }</div><div class="line"><a name="l00585"></a><span class="lineno"><a class="line" href="classSVF_1_1RetPN.html#a70b218109d2cc7850bbab5a4504784db"> 585</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#a70b218109d2cc7850bbab5a4504784db">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1ValVar.html">ValVar</a> *node)</div><div class="line"><a name="l00586"></a><span class="lineno"> 586</span>&#160; {</div><div class="line"><a name="l00587"></a><span class="lineno"> 587</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="l00588"></a><span class="lineno"> 588</span>&#160; }</div><div class="line"><a name="l00589"></a><span class="lineno"><a class="line" href="classSVF_1_1RetPN.html#a69ee6310b7236bc1230fa63440b0f551"> 589</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="l00590"></a><span class="lineno"> 590</span>&#160; {</div><div class="line"><a name="l00591"></a><span class="lineno"> 591</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="l00592"></a><span class="lineno"> 592</span>&#160; }</div><div class="line"><a name="l00594"></a><span class="lineno"> 594</span>&#160;</div><div class="line"><a name="l00596"></a><span class="lineno"><a class="line" href="classSVF_1_1RetPN.html#ac551c1aaf9ec3cb77814aa4664d61a23"> 596</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="l00597"></a><span class="lineno"> 597</span>&#160; <a class="code" href="classSVF_1_1ValVar.html">ValVar</a>(val-&gt;getLLVMFun(), i, <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffa5de2a8fce9a85f31818d58992b381b98">RetNode</a>)</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="l00600"></a><span class="lineno"> 600</span>&#160;</div><div class="line"><a name="l00602"></a><span class="lineno"><a class="line" href="classSVF_1_1RetPN.html#a48c099d2b441b4cc298166e2c5866c8f"> 602</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="l00603"></a><span class="lineno"> 603</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00604"></a><span class="lineno"> 604</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="l00605"></a><span class="lineno"> 605</span>&#160; }</div><div class="line"><a name="l00606"></a><span class="lineno"> 606</span>&#160;</div><div class="line"><a name="l00607"></a><span class="lineno"> 607</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="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;</div><div class="line"><a name="l00611"></a><span class="lineno"> 611</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00612"></a><span class="lineno"> 612</span>&#160;<span class="comment"> * Unique vararg node of a procedure</span></div><div class="line"><a name="l00613"></a><span class="lineno"> 613</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00614"></a><span class="lineno"><a class="line" href="classSVF_1_1VarArgPN.html"> 614</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_1ValVar.html">ValVar</a></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;</div><div class="line"><a name="l00617"></a><span class="lineno"> 617</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00618"></a><span class="lineno"> 618</span>&#160;</div><div class="line"><a name="l00620"></a><span class="lineno"><a class="line" href="classSVF_1_1VarArgPN.html#acaecf9e9d98c4a14fecee0877a72839c"> 620</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="l00621"></a><span class="lineno"> 621</span>&#160; {</div><div class="line"><a name="l00622"></a><span class="lineno"> 622</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00623"></a><span class="lineno"> 623</span>&#160; }</div><div class="line"><a name="l00624"></a><span class="lineno"><a class="line" href="classSVF_1_1VarArgPN.html#a2adee91065fef72cb8f64924aa83ec0a"> 624</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="l00625"></a><span class="lineno"> 625</span>&#160; {</div><div class="line"><a name="l00626"></a><span class="lineno"> 626</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="l00627"></a><span class="lineno"> 627</span>&#160; }</div><div class="line"><a name="l00628"></a><span class="lineno"><a class="line" href="classSVF_1_1VarArgPN.html#a3a7f82ff9fe4426ae8d967460995e2cd"> 628</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#a3a7f82ff9fe4426ae8d967460995e2cd">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1ValVar.html">ValVar</a> *node)</div><div class="line"><a name="l00629"></a><span class="lineno"> 629</span>&#160; {</div><div class="line"><a name="l00630"></a><span class="lineno"> 630</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="l00631"></a><span class="lineno"> 631</span>&#160; }</div><div class="line"><a name="l00632"></a><span class="lineno"><a class="line" href="classSVF_1_1VarArgPN.html#a7f873a8015eb6a6b30530a7e5a69018d"> 632</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="l00633"></a><span class="lineno"> 633</span>&#160; {</div><div class="line"><a name="l00634"></a><span class="lineno"> 634</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="l00635"></a><span class="lineno"> 635</span>&#160; }</div><div class="line"><a name="l00637"></a><span class="lineno"> 637</span>&#160;</div><div class="line"><a name="l00639"></a><span class="lineno"><a class="line" href="classSVF_1_1VarArgPN.html#ad6ebe474373838bc6c00e8baaa3f7137"> 639</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="l00640"></a><span class="lineno"> 640</span>&#160; <a class="code" href="classSVF_1_1ValVar.html">ValVar</a>(val-&gt;getLLVMFun(), i, <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffa5a13a457f037424f61e74165a9cdcebf">VarargNode</a>)</div><div class="line"><a name="l00641"></a><span class="lineno"> 641</span>&#160; {</div><div class="line"><a name="l00642"></a><span class="lineno"> 642</span>&#160; }</div><div class="line"><a name="l00643"></a><span class="lineno"> 643</span>&#160;</div><div class="line"><a name="l00645"></a><span class="lineno"><a class="line" href="classSVF_1_1VarArgPN.html#aec7ac87f5fff58b24daea998aaf0cc2a"> 645</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="l00646"></a><span class="lineno"> 646</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00647"></a><span class="lineno"> 647</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="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; <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="l00651"></a><span class="lineno"> 651</span>&#160;};</div><div class="line"><a name="l00652"></a><span class="lineno"> 652</span>&#160;</div><div class="line"><a name="l00653"></a><span class="lineno"> 653</span>&#160;</div><div class="line"><a name="l00654"></a><span class="lineno"> 654</span>&#160;</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;<span class="comment">/*</span></div><div class="line"><a name="l00657"></a><span class="lineno"> 657</span>&#160;<span class="comment"> * Dummy variable without any LLVM value</span></div><div class="line"><a name="l00658"></a><span class="lineno"> 658</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00659"></a><span class="lineno"><a class="line" href="classSVF_1_1DummyValVar.html"> 659</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="l00660"></a><span class="lineno"> 660</span>&#160;{</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="keyword">public</span>:</div><div class="line"><a name="l00663"></a><span class="lineno"> 663</span>&#160;</div><div class="line"><a name="l00665"></a><span class="lineno"><a class="line" href="classSVF_1_1DummyValVar.html#a06c603907dce56bea44f9a4f9da4d6c7"> 665</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="l00666"></a><span class="lineno"> 666</span>&#160; {</div><div class="line"><a name="l00667"></a><span class="lineno"> 667</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00668"></a><span class="lineno"> 668</span>&#160; }</div><div class="line"><a name="l00669"></a><span class="lineno"><a class="line" href="classSVF_1_1DummyValVar.html#ac09e183185b178f16547bb355ccb01f3"> 669</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="l00670"></a><span class="lineno"> 670</span>&#160; {</div><div class="line"><a name="l00671"></a><span class="lineno"> 671</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="l00672"></a><span class="lineno"> 672</span>&#160; }</div><div class="line"><a name="l00673"></a><span class="lineno"><a class="line" href="classSVF_1_1DummyValVar.html#a3fbbb34ccb50e65d6d7aabe7e84e548f"> 673</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#a3fbbb34ccb50e65d6d7aabe7e84e548f">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1ValVar.html">ValVar</a> *node)</div><div class="line"><a name="l00674"></a><span class="lineno"> 674</span>&#160; {</div><div class="line"><a name="l00675"></a><span class="lineno"> 675</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="l00676"></a><span class="lineno"> 676</span>&#160; }</div><div class="line"><a name="l00677"></a><span class="lineno"><a class="line" href="classSVF_1_1DummyValVar.html#abd4bbbbe43db12627923729a9d5a5442"> 677</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="l00678"></a><span class="lineno"> 678</span>&#160; {</div><div class="line"><a name="l00679"></a><span class="lineno"> 679</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="l00680"></a><span class="lineno"> 680</span>&#160; }</div><div class="line"><a name="l00682"></a><span class="lineno"> 682</span>&#160;</div><div class="line"><a name="l00684"></a><span class="lineno"><a class="line" href="classSVF_1_1DummyValVar.html#a39fb5acde002694e91599a67ff3ae99a"> 684</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="l00685"></a><span class="lineno"> 685</span>&#160; {</div><div class="line"><a name="l00686"></a><span class="lineno"> 686</span>&#160; }</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="l00690"></a><span class="lineno"><a class="line" href="classSVF_1_1DummyValVar.html#a188ddcb95f842245fb97362ff8a06efd"> 690</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="l00691"></a><span class="lineno"> 691</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00692"></a><span class="lineno"> 692</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;dummyVal&quot;</span>;</div><div class="line"><a name="l00693"></a><span class="lineno"> 693</span>&#160; }</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; <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="l00696"></a><span class="lineno"> 696</span>&#160;};</div><div class="line"><a name="l00697"></a><span class="lineno"> 697</span>&#160;</div><div class="line"><a name="l00698"></a><span class="lineno"> 698</span>&#160;</div><div class="line"><a name="l00699"></a><span class="lineno"> 699</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00700"></a><span class="lineno"> 700</span>&#160;<span class="comment"> * Dummy object variable</span></div><div class="line"><a name="l00701"></a><span class="lineno"> 701</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00702"></a><span class="lineno"><a class="line" href="classSVF_1_1DummyObjVar.html"> 702</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="l00703"></a><span class="lineno"> 703</span>&#160;{</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="keyword">public</span>:</div><div class="line"><a name="l00706"></a><span class="lineno"> 706</span>&#160;</div><div class="line"><a name="l00708"></a><span class="lineno"><a class="line" href="classSVF_1_1DummyObjVar.html#a543ca59bd39740d1080fe4702bc2fd69"> 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#a543ca59bd39740d1080fe4702bc2fd69">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1DummyObjVar.html">DummyObjVar</a> *)</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> <span class="keyword">true</span>;</div><div class="line"><a name="l00711"></a><span class="lineno"> 711</span>&#160; }</div><div class="line"><a name="l00712"></a><span class="lineno"><a class="line" href="classSVF_1_1DummyObjVar.html#a9552d717a869b0ec6678843a56fc8695"> 712</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="l00713"></a><span class="lineno"> 713</span>&#160; {</div><div class="line"><a name="l00714"></a><span class="lineno"> 714</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="l00715"></a><span class="lineno"> 715</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="l00716"></a><span class="lineno"> 716</span>&#160; }</div><div class="line"><a name="l00717"></a><span class="lineno"><a class="line" href="classSVF_1_1DummyObjVar.html#aabbc9127565b4c336b28d433297fa37f"> 717</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#aabbc9127565b4c336b28d433297fa37f">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1ObjVar.html">ObjVar</a> *node)</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; <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="l00720"></a><span class="lineno"> 720</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="l00721"></a><span class="lineno"> 721</span>&#160; }</div><div class="line"><a name="l00722"></a><span class="lineno"><a class="line" href="classSVF_1_1DummyObjVar.html#a6aefb8e6612cb6322e064ac3521fa849"> 722</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="l00723"></a><span class="lineno"> 723</span>&#160; {</div><div class="line"><a name="l00724"></a><span class="lineno"> 724</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="l00725"></a><span class="lineno"> 725</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="l00726"></a><span class="lineno"> 726</span>&#160; }</div><div class="line"><a name="l00728"></a><span class="lineno"> 728</span>&#160;</div><div class="line"><a name="l00730"></a><span class="lineno"><a class="line" href="classSVF_1_1DummyObjVar.html#a3dff74bbf50b6a901239d3fd31e0f36c"> 730</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="l00731"></a><span class="lineno"> 731</span>&#160; : <a class="code" href="classSVF_1_1ObjVar.html">ObjVar</a>(nullptr, i, m, ty)</div><div class="line"><a name="l00732"></a><span class="lineno"> 732</span>&#160; {</div><div class="line"><a name="l00733"></a><span class="lineno"> 733</span>&#160; }</div><div class="line"><a name="l00734"></a><span class="lineno"> 734</span>&#160;</div><div class="line"><a name="l00736"></a><span class="lineno"><a class="line" href="classSVF_1_1DummyObjVar.html#aec23bc498cf78ed065565681e14dd2dd"> 736</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="l00737"></a><span class="lineno"> 737</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00738"></a><span class="lineno"> 738</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;dummyObj&quot;</span>;</div><div class="line"><a name="l00739"></a><span class="lineno"> 739</span>&#160; }</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"> 741</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="l00742"></a><span class="lineno"> 742</span>&#160;};</div><div class="line"><a name="l00743"></a><span class="lineno"> 743</span>&#160;</div><div class="line"><a name="l00744"></a><span class="lineno"> 744</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00745"></a><span class="lineno"> 745</span>&#160;<span class="comment"> * Clone object node for dummy objects.</span></div><div class="line"><a name="l00746"></a><span class="lineno"> 746</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00747"></a><span class="lineno"><a class="line" href="classSVF_1_1CloneDummyObjVar.html"> 747</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="l00748"></a><span class="lineno"> 748</span>&#160;{</div><div class="line"><a name="l00749"></a><span class="lineno"> 749</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00751"></a><span class="lineno"><a class="line" href="classSVF_1_1CloneDummyObjVar.html#a304eeab4eb7c441e49cfa3be008b11f6"> 751</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="l00752"></a><span class="lineno"> 752</span>&#160; {</div><div class="line"><a name="l00753"></a><span class="lineno"> 753</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</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"><a class="line" href="classSVF_1_1CloneDummyObjVar.html#a6eb2439f433fe48a338b09a6ab017f7c"> 755</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="l00756"></a><span class="lineno"> 756</span>&#160; {</div><div class="line"><a name="l00757"></a><span class="lineno"> 757</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="l00758"></a><span class="lineno"> 758</span>&#160; }</div><div class="line"><a name="l00759"></a><span class="lineno"><a class="line" href="classSVF_1_1CloneDummyObjVar.html#a982180a5ea7595f2d2320799056ff56d"> 759</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="l00760"></a><span class="lineno"> 760</span>&#160; {</div><div class="line"><a name="l00761"></a><span class="lineno"> 761</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="l00762"></a><span class="lineno"> 762</span>&#160; }</div><div class="line"><a name="l00764"></a><span class="lineno"> 764</span>&#160;</div><div class="line"><a name="l00766"></a><span class="lineno"><a class="line" href="classSVF_1_1CloneDummyObjVar.html#a2f2a74296d76349d472a71c4ee069aa0"> 766</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="l00767"></a><span class="lineno"> 767</span>&#160; : <a class="code" href="classSVF_1_1DummyObjVar.html">DummyObjVar</a>(i, m, ty)</div><div class="line"><a name="l00768"></a><span class="lineno"> 768</span>&#160; {</div><div class="line"><a name="l00769"></a><span class="lineno"> 769</span>&#160; }</div><div class="line"><a name="l00770"></a><span class="lineno"> 770</span>&#160;</div><div class="line"><a name="l00772"></a><span class="lineno"><a class="line" href="classSVF_1_1CloneDummyObjVar.html#a2ddf5e4067c537a7dfd9bf74f7195931"> 772</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="l00773"></a><span class="lineno"> 773</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00774"></a><span class="lineno"> 774</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="l00775"></a><span class="lineno"> 775</span>&#160; }</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"> 777</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="l00778"></a><span class="lineno"> 778</span>&#160;};</div><div class="line"><a name="l00779"></a><span class="lineno"> 779</span>&#160;</div><div class="line"><a name="l00780"></a><span class="lineno"> 780</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00781"></a><span class="lineno"> 781</span>&#160;<span class="comment"> * Clone object for GEP objects.</span></div><div class="line"><a name="l00782"></a><span class="lineno"> 782</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00783"></a><span class="lineno"><a class="line" href="classSVF_1_1CloneGepObjVar.html"> 783</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_1GepObjVar.html">GepObjVar</a></div><div class="line"><a name="l00784"></a><span class="lineno"> 784</span>&#160;{</div><div class="line"><a name="l00785"></a><span class="lineno"> 785</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00787"></a><span class="lineno"><a class="line" href="classSVF_1_1CloneGepObjVar.html#a5f46eff05b965deeeed531bd9a87b464"> 787</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="l00788"></a><span class="lineno"> 788</span>&#160; {</div><div class="line"><a name="l00789"></a><span class="lineno"> 789</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</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"><a class="line" href="classSVF_1_1CloneGepObjVar.html#a2dc4176254a15071a35f8218036cd5bb"> 791</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="l00792"></a><span class="lineno"> 792</span>&#160; {</div><div class="line"><a name="l00793"></a><span class="lineno"> 793</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="l00794"></a><span class="lineno"> 794</span>&#160; }</div><div class="line"><a name="l00795"></a><span class="lineno"><a class="line" href="classSVF_1_1CloneGepObjVar.html#a705b0eaaa7875c6e059cecd2d77f6968"> 795</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="l00796"></a><span class="lineno"> 796</span>&#160; {</div><div class="line"><a name="l00797"></a><span class="lineno"> 797</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="l00798"></a><span class="lineno"> 798</span>&#160; }</div><div class="line"><a name="l00800"></a><span class="lineno"> 800</span>&#160;</div><div class="line"><a name="l00802"></a><span class="lineno"><a class="line" href="classSVF_1_1CloneGepObjVar.html#ab2b37ac7064e97665c04c778904e9888"> 802</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="l00803"></a><span class="lineno"> 803</span>&#160; <a class="code" href="classSVF_1_1GepObjVar.html">GepObjVar</a>(mem, i, l, ty)</div><div class="line"><a name="l00804"></a><span class="lineno"> 804</span>&#160; {</div><div class="line"><a name="l00805"></a><span class="lineno"> 805</span>&#160; }</div><div class="line"><a name="l00806"></a><span class="lineno"> 806</span>&#160;</div><div class="line"><a name="l00808"></a><span class="lineno"><a class="line" href="classSVF_1_1CloneGepObjVar.html#a9d4cf31155950c889b5965566ab3d45e"> 808</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="l00809"></a><span class="lineno"> 809</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00810"></a><span class="lineno"> 810</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;clone (gep) of &quot;</span> + <a class="code" href="classSVF_1_1GepObjVar.html#a88f86fe8abcb0550d838e5de11ae3ef7">GepObjVar::getValueName</a>();</div><div class="line"><a name="l00811"></a><span class="lineno"> 811</span>&#160; }</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"> 813</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="l00814"></a><span class="lineno"> 814</span>&#160;};</div><div class="line"><a name="l00815"></a><span class="lineno"> 815</span>&#160;</div><div class="line"><a name="l00816"></a><span class="lineno"> 816</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00817"></a><span class="lineno"> 817</span>&#160;<span class="comment"> * Clone object for FI objects.</span></div><div class="line"><a name="l00818"></a><span class="lineno"> 818</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00819"></a><span class="lineno"><a class="line" href="classSVF_1_1CloneFIObjVar.html"> 819</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="l00820"></a><span class="lineno"> 820</span>&#160;{</div><div class="line"><a name="l00821"></a><span class="lineno"> 821</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00823"></a><span class="lineno"><a class="line" href="classSVF_1_1CloneFIObjVar.html#a96a659f0a876b417ebdf6057db65c870"> 823</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="l00824"></a><span class="lineno"> 824</span>&#160; {</div><div class="line"><a name="l00825"></a><span class="lineno"> 825</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</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"><a class="line" href="classSVF_1_1CloneFIObjVar.html#a71c3a2f27967bec62f65bed3d38e2c35"> 827</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="l00828"></a><span class="lineno"> 828</span>&#160; {</div><div class="line"><a name="l00829"></a><span class="lineno"> 829</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="l00830"></a><span class="lineno"> 830</span>&#160; }</div><div class="line"><a name="l00831"></a><span class="lineno"><a class="line" href="classSVF_1_1CloneFIObjVar.html#a06ddad01d54e2676c7036c2e901235cb"> 831</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="l00832"></a><span class="lineno"> 832</span>&#160; {</div><div class="line"><a name="l00833"></a><span class="lineno"> 833</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="l00834"></a><span class="lineno"> 834</span>&#160; }</div><div class="line"><a name="l00836"></a><span class="lineno"> 836</span>&#160;</div><div class="line"><a name="l00838"></a><span class="lineno"><a class="line" href="classSVF_1_1CloneFIObjVar.html#adeef2b67999d96aab854b25432ebb348"> 838</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="l00839"></a><span class="lineno"> 839</span>&#160; <a class="code" href="classSVF_1_1FIObjVar.html">FIObjVar</a>(val, i, mem, ty)</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;</div><div class="line"><a name="l00844"></a><span class="lineno"><a class="line" href="classSVF_1_1CloneFIObjVar.html#abac4095a6a60c321caa40f837a752803"> 844</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="l00845"></a><span class="lineno"> 845</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00846"></a><span class="lineno"> 846</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="l00847"></a><span class="lineno"> 847</span>&#160; }</div><div class="line"><a name="l00848"></a><span class="lineno"> 848</span>&#160;</div><div class="line"><a name="l00849"></a><span class="lineno"> 849</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="l00850"></a><span class="lineno"> 850</span>&#160;};</div><div class="line"><a name="l00851"></a><span class="lineno"> 851</span>&#160;</div><div class="line"><a name="l00852"></a><span class="lineno"> 852</span>&#160;} <span class="comment">// End namespace SVF</span></div><div class="line"><a name="l00853"></a><span class="lineno"> 853</span>&#160;</div><div class="line"><a name="l00854"></a><span class="lineno"> 854</span>&#160;</div><div class="line"><a name="l00855"></a><span class="lineno"> 855</span>&#160;</div><div class="line"><a name="l00856"></a><span class="lineno"> 856</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#l00217">SVFVariables.h:217</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 program variables (PAGNodes)</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"><a class="line" href="classSVF_1_1SVFVar.html#a6755ed387e15f44ffb637f64a0af60bc"> 48</a></span>&#160;<span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classSVF_1_1IRGraph.html">IRGraph</a>;</div><div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFVar.html#a6dbb40e8ee92033b77440c44acd8a868"> 49</a></span>&#160;<span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classSVF_1_1SVFIR.html">SVFIR</a>;</div><div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFVar.html#a1499a631a2a15408ea35a09fccc0f0ad"> 50</a></span>&#160;<span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classSVF_1_1VFG.html">VFG</a>;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeff"> 63</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="l00064"></a><span class="lineno"> 64</span>&#160; {</div><div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffa32d22852d39756992f87bd02def75f66"> 65</a></span>&#160; <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffa32d22852d39756992f87bd02def75f66">ValNode</a>,</div><div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffae21504009be26916ccdfcb5de42e3e11"> 66</a></span>&#160; <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffae21504009be26916ccdfcb5de42e3e11">ObjNode</a>,</div><div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffa5de2a8fce9a85f31818d58992b381b98"> 67</a></span>&#160; <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffa5de2a8fce9a85f31818d58992b381b98">RetNode</a>,</div><div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffa5a13a457f037424f61e74165a9cdcebf"> 68</a></span>&#160; <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffa5a13a457f037424f61e74165a9cdcebf">VarargNode</a>,</div><div class="line"><a name="l00069"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffa288e3f5d01c94d5c5d685d43f08a6c4a"> 69</a></span>&#160; <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffa288e3f5d01c94d5c5d685d43f08a6c4a">GepValNode</a>,</div><div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffaf3364b22f497146f06d1f4175a839f4f"> 70</a></span>&#160; <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffaf3364b22f497146f06d1f4175a839f4f">GepObjNode</a>,</div><div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffaabe491b0a744825250b97f407962c4a6"> 71</a></span>&#160; <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffaabe491b0a744825250b97f407962c4a6">FIObjNode</a>,</div><div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffa8299ae0d09f1b19411cb07cd79a2bae8"> 72</a></span>&#160; <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffa8299ae0d09f1b19411cb07cd79a2bae8">DummyValNode</a>,</div><div class="line"><a name="l00073"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffa1ab625ecaf51446246dcc2944d6559af"> 73</a></span>&#160; <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffa1ab625ecaf51446246dcc2944d6559af">DummyObjNode</a>,</div><div class="line"><a name="l00074"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffabf9e21e7cbec690ad318a68cd5d756dc"> 74</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="l00075"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffa2ca0654308fd181afcb1f20519a0247a"> 75</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="l00076"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffab85277a3daeecc24c99b3da86108e482"> 76</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="l00077"></a><span class="lineno"> 77</span>&#160; };</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;<span class="keyword">protected</span>:</div><div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFVar.html#a7deb494ac20ed56fca31a4f1fd92deea"> 81</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="l00082"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFVar.html#a0d918a6c8dd3b7b395d4c7161bcf9656"> 82</a></span>&#160; <a class="code" href="classSVF_1_1SVFStmt.html#a93fc6c4c991931c78c48500c2db50f66">SVFStmt::KindToSVFStmtMapTy</a> <a class="code" href="classSVF_1_1SVFVar.html#a0d918a6c8dd3b7b395d4c7161bcf9656">InEdgeKindToSetMap</a>;</div><div class="line"><a name="l00083"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFVar.html#a3775dd07e89ea6b25950a8b900a4ceab"> 83</a></span>&#160; <a class="code" href="classSVF_1_1SVFStmt.html#a93fc6c4c991931c78c48500c2db50f66">SVFStmt::KindToSVFStmtMapTy</a> <a class="code" href="classSVF_1_1SVFVar.html#a3775dd07e89ea6b25950a8b900a4ceab">OutEdgeKindToSetMap</a>;</div><div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFVar.html#a7c8ffadedbf53d30694feeb7771990af"> 84</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SVFVar.html#a7c8ffadedbf53d30694feeb7771990af">isPtr</a>; </div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</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="l00090"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFVar.html#ab76f9dea1559bd9b10b870dbc7bb454a"> 90</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="l00091"></a><span class="lineno"> 91</span>&#160; {</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; }</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;</div><div class="line"><a name="l00096"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFVar.html#afaa33caa8d2a306f6741d9d066243e40"> 96</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="l00097"></a><span class="lineno"> 97</span>&#160;<span class="keyword"> </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>((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="l00099"></a><span class="lineno"> 99</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="l00100"></a><span class="lineno"> 100</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="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFVar.html#a7deb494ac20ed56fca31a4f1fd92deea">value</a>;</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; }</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;</div><div class="line"><a name="l00105"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFVar.html#adaaf24b8b6ec06476cea112533c24066"> 105</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="l00106"></a><span class="lineno"> 106</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="keywordflow">if</span> (value)</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <span class="keywordflow">return</span> value-&gt;getType();</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; }</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;</div><div class="line"><a name="l00112"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFVar.html#a1ace69053c2c4436fd78d5624bd0086a"> 112</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="l00113"></a><span class="lineno"> 113</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="keywordflow">return</span> value!=<span class="keyword">nullptr</span>;</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; }</div><div class="line"><a name="l00117"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFVar.html#a3b61042079a6c9dc395f38925c6a1271"> 117</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="l00118"></a><span class="lineno"> 118</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFVar.html#a7c8ffadedbf53d30694feeb7771990af">isPtr</a>;</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; }</div><div class="line"><a name="l00123"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFVar.html#ab51b134720986c39fce7f033a49df6f0"> 123</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="l00124"></a><span class="lineno"> 124</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SVFVar.html#a1ace69053c2c4436fd78d5624bd0086a">hasValue</a>())</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</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="l00127"></a><span class="lineno"> 127</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; }</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</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="l00133"></a><span class="lineno"> 133</span>&#160;</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</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="l00136"></a><span class="lineno"> 136</span>&#160;</div><div class="line"><a name="l00138"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFVar.html#a53439a493963d16e5a1b5ed36ab6d33e"> 138</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="l00139"></a><span class="lineno"> 139</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <span class="keywordflow">if</span>(value)</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; {</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</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="l00143"></a><span class="lineno"> 143</span>&#160; <span class="keywordflow">return</span> inst-&gt;getParent()-&gt;getParent();</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</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="l00145"></a><span class="lineno"> 145</span>&#160; <span class="keywordflow">return</span> arg-&gt;getParent();</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</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="l00147"></a><span class="lineno"> 147</span>&#160; <span class="keywordflow">return</span> fun;</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; }</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; }</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;</div><div class="line"><a name="l00153"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFVar.html#a76964ef7d4842a469d7720881499d8a6"> 153</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="classSVF_1_1SVFStmt.html#a8cd7b6c6fd8b030b1421d95a086359f4">SVFStmt::SVFStmtSetTy</a>&amp; <a class="code" href="classSVF_1_1SVFVar.html#a76964ef7d4842a469d7720881499d8a6">getIncomingEdges</a>(<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9">SVFStmt::PEDGEK</a> kind)</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; {</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <span class="keywordflow">return</span> InEdgeKindToSetMap[kind];</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; }</div><div class="line"><a name="l00158"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFVar.html#a927733580b47be5ffcfced44ba9fd6c3"> 158</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="classSVF_1_1SVFStmt.html#a8cd7b6c6fd8b030b1421d95a086359f4">SVFStmt::SVFStmtSetTy</a>&amp; <a class="code" href="classSVF_1_1SVFVar.html#a927733580b47be5ffcfced44ba9fd6c3">getOutgoingEdges</a>(<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9">SVFStmt::PEDGEK</a> kind)</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; {</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <span class="keywordflow">return</span> OutEdgeKindToSetMap[kind];</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; }</div><div class="line"><a name="l00163"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFVar.html#a747b2c92c81d32fcd357e80d2d8fe7cc"> 163</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="l00164"></a><span class="lineno"> 164</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; SVFStmt::KindToSVFStmtMapTy::const_iterator it = InEdgeKindToSetMap.find(kind);</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; <span class="keywordflow">if</span> (it != InEdgeKindToSetMap.end())</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <span class="keywordflow">return</span> (!it-&gt;second.empty());</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; }</div><div class="line"><a name="l00172"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFVar.html#a9b00f9b5f8ad2422162f4396e2d8fa42"> 172</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="l00173"></a><span class="lineno"> 173</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; SVFStmt::KindToSVFStmtMapTy::const_iterator it = OutEdgeKindToSetMap.find(kind);</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <span class="keywordflow">if</span> (it != OutEdgeKindToSetMap.end())</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <span class="keywordflow">return</span> (!it-&gt;second.empty());</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; }</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; </div><div class="line"><a name="l00182"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFVar.html#a893890649ae7d8e275dd823e941aa39b"> 182</a></span>&#160; <span class="keyword">inline</span> SVFStmt::SVFStmtSetTy::iterator <a class="code" href="classSVF_1_1SVFVar.html#a893890649ae7d8e275dd823e941aa39b">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="l00183"></a><span class="lineno"> 183</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; SVFStmt::KindToSVFStmtMapTy::const_iterator it = InEdgeKindToSetMap.find(kind);</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</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="l00186"></a><span class="lineno"> 186</span>&#160; <span class="keywordflow">return</span> it-&gt;second.begin();</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;</div><div class="line"><a name="l00190"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFVar.html#af1cf24ab50e0d86c9d0f9bd5744b4c10"> 190</a></span>&#160; <span class="keyword">inline</span> SVFStmt::SVFStmtSetTy::iterator <a class="code" href="classSVF_1_1SVFVar.html#af1cf24ab50e0d86c9d0f9bd5744b4c10">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="l00191"></a><span class="lineno"> 191</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; SVFStmt::KindToSVFStmtMapTy::const_iterator it = InEdgeKindToSetMap.find(kind);</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</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="l00194"></a><span class="lineno"> 194</span>&#160; <span class="keywordflow">return</span> it-&gt;second.end();</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; }</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;</div><div class="line"><a name="l00198"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFVar.html#a9e40eafe55a2c1448b830b56ae72e17f"> 198</a></span>&#160; <span class="keyword">inline</span> SVFStmt::SVFStmtSetTy::iterator <a class="code" href="classSVF_1_1SVFVar.html#a9e40eafe55a2c1448b830b56ae72e17f">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="l00199"></a><span class="lineno"> 199</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; SVFStmt::KindToSVFStmtMapTy::const_iterator it = OutEdgeKindToSetMap.find(kind);</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</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="l00202"></a><span class="lineno"> 202</span>&#160; <span class="keywordflow">return</span> it-&gt;second.begin();</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; }</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;</div><div class="line"><a name="l00206"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFVar.html#aa5176fce9746bc585d43ebb4c8c824e5"> 206</a></span>&#160; <span class="keyword">inline</span> SVFStmt::SVFStmtSetTy::iterator <a class="code" href="classSVF_1_1SVFVar.html#aa5176fce9746bc585d43ebb4c8c824e5">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="l00207"></a><span class="lineno"> 207</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; SVFStmt::KindToSVFStmtMapTy::const_iterator it = OutEdgeKindToSetMap.find(kind);</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</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="l00210"></a><span class="lineno"> 210</span>&#160; <span class="keywordflow">return</span> it-&gt;second.end();</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; }</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160;</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160;</div><div class="line"><a name="l00217"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFVar.html#a9376133075b0d44ff09876af933c8618"> 217</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="l00218"></a><span class="lineno"> 218</span>&#160; {</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; <a class="code" href="classSVF_1_1GenericNode.html#a3f20339b5295e11beb0f9adb95c7aa5b">GNodeK</a> kind = inEdge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>();</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; InEdgeKindToSetMap[kind].insert(inEdge);</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; <a class="code" href="classSVF_1_1GenericNode.html#a93d217b0c9fd8008a2989ca2b4f3fbfb">addIncomingEdge</a>(inEdge);</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; }</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160;</div><div class="line"><a name="l00224"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFVar.html#a21a44c7a30e4e3743f6c3186fd7dbe8f"> 224</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="l00225"></a><span class="lineno"> 225</span>&#160; {</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; <a class="code" href="classSVF_1_1GenericNode.html#a3f20339b5295e11beb0f9adb95c7aa5b">GNodeK</a> kind = outEdge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>();</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; OutEdgeKindToSetMap[kind].insert(outEdge);</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; <a class="code" href="classSVF_1_1GenericNode.html#ae74283fbc788665296a69e56f334557b">addOutgoingEdge</a>(outEdge);</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; }</div><div class="line"><a name="l00231"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFVar.html#a71e4fd7a1271a17e971ed90044e6da24"> 231</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="l00232"></a><span class="lineno"> 232</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; SVFStmt::KindToSVFStmtMapTy::const_iterator it = InEdgeKindToSetMap.find(<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a20d960c19118d1ed319e0dbea94405e8">SVFStmt::Gep</a>);</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; <span class="keywordflow">if</span> (it != InEdgeKindToSetMap.end())</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; {</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> gep : it-&gt;second){</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; <span class="keywordflow">if</span>(SVFUtil::cast&lt;GepStmt&gt;(gep)-&gt;isVariantFieldGep())</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</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; }</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; }</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;<span class="keyword">public</span>:</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</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="l00246"></a><span class="lineno"> 246</span>&#160;</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</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="l00249"></a><span class="lineno"> 249</span>&#160;</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160;</div><div class="line"><a name="l00253"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFVar.html#aeea492411a86c65bcce4a1ef956b3dbe"> 253</a></span>&#160; <span class="keyword">friend</span> <a class="code" href="namespaceSVF.html#a8bd74fdcb0e58d0249003df9c3fb8b31">OutStream</a>&amp; <a class="code" href="classSVF_1_1SVFVar.html#aeea492411a86c65bcce4a1ef956b3dbe">operator&lt;&lt; </a>(<a class="code" href="namespaceSVF.html#a8bd74fdcb0e58d0249003df9c3fb8b31">OutStream</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="l00254"></a><span class="lineno"> 254</span>&#160; {</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; o &lt;&lt; node.<a class="code" href="classSVF_1_1SVFVar.html#ada932ef2ae0a3e712174df479c35b0dd">toString</a>();</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; <span class="keywordflow">return</span> o;</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; }</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160;};</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160;</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;</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160;<span class="comment"> * Value (Pointer) variable</span></div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00266"></a><span class="lineno"><a class="line" href="classSVF_1_1ValVar.html"> 266</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="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;<span class="keyword">public</span>:</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160;</div><div class="line"><a name="l00272"></a><span class="lineno"><a class="line" href="classSVF_1_1ValVar.html#adbbf3c9ff5dcb10ac528d3eb4b69750c"> 272</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="l00273"></a><span class="lineno"> 273</span>&#160; {</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</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"><a class="line" href="classSVF_1_1ValVar.html#a71e5f4eaf74f852d3354ac6b0b65f39c"> 276</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="l00277"></a><span class="lineno"> 277</span>&#160; {</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</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="l00279"></a><span class="lineno"> 279</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="l00280"></a><span class="lineno"> 280</span>&#160; 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="l00281"></a><span class="lineno"> 281</span>&#160; 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="l00282"></a><span class="lineno"> 282</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="l00283"></a><span class="lineno"> 283</span>&#160; }</div><div class="line"><a name="l00284"></a><span class="lineno"><a class="line" href="classSVF_1_1ValVar.html#a371f38564932cc04c6c4a00a99bf6c6a"> 284</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="l00285"></a><span class="lineno"> 285</span>&#160; {</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</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="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#a283f7c0c2eaae07c6865f73a0daafeffa288e3f5d01c94d5c5d685d43f08a6c4a">SVFVar::GepValNode</a> ||</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; 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="l00289"></a><span class="lineno"> 289</span>&#160; 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="l00290"></a><span class="lineno"> 290</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="l00291"></a><span class="lineno"> 291</span>&#160; }</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160;</div><div class="line"><a name="l00295"></a><span class="lineno"><a class="line" href="classSVF_1_1ValVar.html#ae5dc21b3327a100ffe3e0e2c876ba1bb"> 295</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="l00296"></a><span class="lineno"> 296</span>&#160; <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>(val, i, ty)</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; {</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; }</div><div class="line"><a name="l00300"></a><span class="lineno"><a class="line" href="classSVF_1_1ValVar.html#aeaccfd3bf5f968ad12d7e1a2426e5faa"> 300</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="l00301"></a><span class="lineno"> 301</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</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="l00303"></a><span class="lineno"> 303</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="l00304"></a><span class="lineno"> 304</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;&quot;</span>;</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; }</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160;</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</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="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;</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160;<span class="comment"> * Memory Object variable</span></div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00314"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjVar.html"> 314</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="l00315"></a><span class="lineno"> 315</span>&#160;{</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160;</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160;<span class="keyword">protected</span>:</div><div class="line"><a name="l00318"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjVar.html#a3d08dc1d15a449ff4b7018da4bfdcb88"> 318</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="l00319"></a><span class="lineno"> 319</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="l00321"></a><span class="lineno"> 321</span>&#160; <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>(val, i, ty), mem(m)</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; {</div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; }</div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160;<span class="keyword">public</span>:</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"><a class="line" href="classSVF_1_1ObjVar.html#ac127d3ee00a6bed2bdba2f24b389eb4b"> 327</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="l00328"></a><span class="lineno"> 328</span>&#160; {</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; }</div><div class="line"><a name="l00331"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjVar.html#a78ee2be4a346728be947ce29d3820c13"> 331</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="l00332"></a><span class="lineno"> 332</span>&#160; {</div><div class="line"><a name="l00333"></a><span class="lineno"> 333</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="l00334"></a><span class="lineno"> 334</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="l00335"></a><span class="lineno"> 335</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="l00336"></a><span class="lineno"> 336</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="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#a283f7c0c2eaae07c6865f73a0daafeffabf9e21e7cbec690ad318a68cd5d756dc">SVFVar::CloneGepObjNode</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#a283f7c0c2eaae07c6865f73a0daafeffa2ca0654308fd181afcb1f20519a0247a">SVFVar::CloneFIObjNode</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#a283f7c0c2eaae07c6865f73a0daafeffab85277a3daeecc24c99b3da86108e482">SVFVar::CloneDummyObjNode</a>;</div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; }</div><div class="line"><a name="l00341"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjVar.html#a42b68822afc39d415db8c29079caf9c8"> 341</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="l00342"></a><span class="lineno"> 342</span>&#160; {</div><div class="line"><a name="l00343"></a><span class="lineno"> 343</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="l00344"></a><span class="lineno"> 344</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="l00345"></a><span class="lineno"> 345</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="l00346"></a><span class="lineno"> 346</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="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#a283f7c0c2eaae07c6865f73a0daafeffabf9e21e7cbec690ad318a68cd5d756dc">SVFVar::CloneGepObjNode</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#a283f7c0c2eaae07c6865f73a0daafeffa2ca0654308fd181afcb1f20519a0247a">SVFVar::CloneFIObjNode</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#a283f7c0c2eaae07c6865f73a0daafeffab85277a3daeecc24c99b3da86108e482">SVFVar::CloneDummyObjNode</a>;</div><div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; }</div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160;</div><div class="line"><a name="l00354"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjVar.html#a6a4feb73b54e602407e35eeb09f55930"> 354</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="l00355"></a><span class="lineno"> 355</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; <span class="keywordflow">return</span> mem;</div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160; }</div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160;</div><div class="line"><a name="l00360"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjVar.html#ac1609e2e3b6843c6f7992e425771fce3"> 360</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="l00361"></a><span class="lineno"> 361</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</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="l00363"></a><span class="lineno"> 363</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="l00364"></a><span class="lineno"> 364</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;&quot;</span>;</div><div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; }</div><div class="line"><a name="l00367"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjVar.html#aa1004c9973fb974ba1e52df80978321d"> 367</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="l00368"></a><span class="lineno"> 368</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00369"></a><span class="lineno"> 369</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="l00370"></a><span class="lineno"> 370</span>&#160; }</div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160;</div><div class="line"><a name="l00372"></a><span class="lineno"> 372</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="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;</div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160;<span class="comment"> * Gep Value (Pointer) variable, this variable can be dynamic generated for field sensitive analysis</span></div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160;<span class="comment"> * e.g. memcpy, temp gep value variable needs to be created</span></div><div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160;<span class="comment"> * Each Gep Value variable is connected to base value variable via gep edge</span></div><div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00381"></a><span class="lineno"><a class="line" href="classSVF_1_1GepValVar.html"> 381</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="l00382"></a><span class="lineno"> 382</span>&#160;{</div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160;</div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00385"></a><span class="lineno"><a class="line" href="classSVF_1_1GepValVar.html#a2ee5e9a2e5a92b32fd81fda09b560ad6"> 385</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="l00386"></a><span class="lineno"><a class="line" href="classSVF_1_1GepValVar.html#aaf5f5d3734e1db83c6d4f38d560b2f45"> 386</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="l00387"></a><span class="lineno"> 387</span>&#160;</div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160;</div><div class="line"><a name="l00391"></a><span class="lineno"><a class="line" href="classSVF_1_1GepValVar.html#a28e42f01110a2d0a5f1f90bca14c5035"> 391</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="l00392"></a><span class="lineno"> 392</span>&#160; {</div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</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#aea2c58dc4124157a23c2cc0fe050f158"> 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#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="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> 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="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#a8f8f8e21cdfcccd7523dc2371c696ad8"> 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#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="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#a0aab756122dcce24faf556f0b7057dc1"> 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#a0aab756122dcce24faf556f0b7057dc1">classof</a>(<span class="keyword">const</span> GenericPAGNodeTy *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="l00408"></a><span class="lineno"> 408</span>&#160;</div><div class="line"><a name="l00410"></a><span class="lineno"><a class="line" href="classSVF_1_1GepValVar.html#af4fd4a194f00d5cc76c2aeb9e316f768"> 410</a></span>&#160; <a class="code" href="classSVF_1_1GepValVar.html#af4fd4a194f00d5cc76c2aeb9e316f768">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) :</div><div class="line"><a name="l00411"></a><span class="lineno"> 411</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)</div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160; {</div><div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160; }</div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160;</div><div class="line"><a name="l00416"></a><span class="lineno"><a class="line" href="classSVF_1_1GepValVar.html#a0e5084d3fc54a70ace07075f846395ef"> 416</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a9b707002523ece2ac54ca893ee9a2d4e">s32_t</a> <a class="code" href="classSVF_1_1GepValVar.html#a0e5084d3fc54a70ace07075f846395ef">getConstantFieldIdx</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160; <span class="keywordflow">return</span> ls.<a class="code" href="classSVF_1_1LocationSet.html#a63c5c8e03b35e0d0cea94137d309c853">accumulateConstantFieldIdx</a>();</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160; }</div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160;</div><div class="line"><a name="l00422"></a><span class="lineno"><a class="line" href="classSVF_1_1GepValVar.html#ae89482e674768298f49e51df4ebe63e3"> 422</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="l00423"></a><span class="lineno"> 423</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00424"></a><span class="lineno"> 424</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="l00425"></a><span class="lineno"> 425</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> + std::to_string(getConstantFieldIdx());</div><div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;offset_&quot;</span> + std::to_string(getConstantFieldIdx());</div><div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160; }</div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160;</div><div class="line"><a name="l00429"></a><span class="lineno"><a class="line" href="classSVF_1_1GepValVar.html#a2760700f067c6a2fbc4e6e626b603bc4"> 429</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="l00430"></a><span class="lineno"> 430</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160; <span class="keywordflow">return</span> gepValType;</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"> 433</span>&#160;</div><div class="line"><a name="l00434"></a><span class="lineno"> 434</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="l00435"></a><span class="lineno"> 435</span>&#160;};</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"> 438</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160;<span class="comment"> * Gep Obj variable, this is dynamic generated for field sensitive analysis</span></div><div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160;<span class="comment"> * Each gep obj variable is one field of a MemObj (base)</span></div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00442"></a><span class="lineno"><a class="line" href="classSVF_1_1GepObjVar.html"> 442</a></span>&#160;<span class="keyword">class </span><a class="code" href="classSVF_1_1GepObjVar.html">GepObjVar</a>: <span class="keyword">public</span> <a class="code" href="classSVF_1_1ObjVar.html">ObjVar</a></div><div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160;{</div><div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00445"></a><span class="lineno"><a class="line" href="classSVF_1_1GepObjVar.html#a55b057663180420c6bb09bf849d83f6b"> 445</a></span>&#160; <a class="code" href="classSVF_1_1LocationSet.html">LocationSet</a> <a class="code" href="classSVF_1_1GepObjVar.html#a55b057663180420c6bb09bf849d83f6b">ls</a>;</div><div class="line"><a name="l00446"></a><span class="lineno"><a class="line" href="classSVF_1_1GepObjVar.html#aff50e1d96403eeacaa64f7adb07ce0a5"> 446</a></span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> base = 0;</div><div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160;</div><div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160;</div><div class="line"><a name="l00451"></a><span class="lineno"><a class="line" href="classSVF_1_1GepObjVar.html#ab3129ad98687e6352675d84373d96ffe"> 451</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1GepObjVar.html#ab3129ad98687e6352675d84373d96ffe">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1GepObjVar.html">GepObjVar</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="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160; }</div><div class="line"><a name="l00455"></a><span class="lineno"><a class="line" href="classSVF_1_1GepObjVar.html#ab6105a2f7bbd9a4e611d96f0bcac0e6c"> 455</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1GepObjVar.html#ab6105a2f7bbd9a4e611d96f0bcac0e6c">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1ObjVar.html">ObjVar</a> * node)</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="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="l00458"></a><span class="lineno"> 458</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="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_1GepObjVar.html#ad7fc6e6ed6fca8641c44b91ab29524bd"> 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_1GepObjVar.html#ad7fc6e6ed6fca8641c44b91ab29524bd">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a> *node)</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> 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="l00463"></a><span class="lineno"> 463</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="l00464"></a><span class="lineno"> 464</span>&#160; }</div><div class="line"><a name="l00465"></a><span class="lineno"><a class="line" href="classSVF_1_1GepObjVar.html#ac3583a2d4d4ceaf820d23b43a893ac92"> 465</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1GepObjVar.html#ac3583a2d4d4ceaf820d23b43a893ac92">classof</a>(<span class="keyword">const</span> GenericPAGNodeTy *node)</div><div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160; {</div><div class="line"><a name="l00467"></a><span class="lineno"> 467</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="l00468"></a><span class="lineno"> 468</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="l00469"></a><span class="lineno"> 469</span>&#160; }</div><div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160;</div><div class="line"><a name="l00473"></a><span class="lineno"><a class="line" href="classSVF_1_1GepObjVar.html#ae80d95a4d90ca64eca819e140445004c"> 473</a></span>&#160; <a class="code" href="classSVF_1_1GepObjVar.html#ae80d95a4d90ca64eca819e140445004c">GepObjVar</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="l00474"></a><span class="lineno"> 474</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="l00475"></a><span class="lineno"> 475</span>&#160; {</div><div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160; base = mem-&gt;<a class="code" href="classSVF_1_1MemObj.html#a3ab6f65ffbf6442daac4d3f70f2d3cb1">getId</a>();</div><div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160; }</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"><a class="line" href="classSVF_1_1GepObjVar.html#a553e648804b39c503e7288dd0434c339"> 480</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_1GepObjVar.html#a553e648804b39c503e7288dd0434c339">getLocationSet</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160; <span class="keywordflow">return</span> ls;</div><div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160; }</div><div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160;</div><div class="line"><a name="l00486"></a><span class="lineno"><a class="line" href="classSVF_1_1GepObjVar.html#aaf2ab86c43e4f33183289f9bdead36c1"> 486</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a9b707002523ece2ac54ca893ee9a2d4e">s32_t</a> <a class="code" href="classSVF_1_1GepObjVar.html#aaf2ab86c43e4f33183289f9bdead36c1">getConstantFieldIdx</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160; <span class="keywordflow">return</span> ls.<a class="code" href="classSVF_1_1LocationSet.html#a63c5c8e03b35e0d0cea94137d309c853">accumulateConstantFieldIdx</a>();</div><div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160; }</div><div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160;</div><div class="line"><a name="l00492"></a><span class="lineno"><a class="line" href="classSVF_1_1GepObjVar.html#a5e371fae7592d763661a7cb777107ff4"> 492</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1GepObjVar.html#a5e371fae7592d763661a7cb777107ff4">setBaseNode</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> base)</div><div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160; {</div><div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160; this-&gt;base = base;</div><div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160; }</div><div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160;</div><div class="line"><a name="l00498"></a><span class="lineno"><a class="line" href="classSVF_1_1GepObjVar.html#a4c5e346db61f7e04c15bf8527d8eff3c"> 498</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1GepObjVar.html#a4c5e346db61f7e04c15bf8527d8eff3c">getBaseNode</a>(<span class="keywordtype">void</span>)<span class="keyword"> const</span></div><div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160; <span class="keywordflow">return</span> base;</div><div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160; }</div><div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160;</div><div class="line"><a name="l00504"></a><span class="lineno"><a class="line" href="classSVF_1_1GepObjVar.html#ab2348a9378f1c64cf5c176b21a655d14"> 504</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_1GepObjVar.html#ab2348a9378f1c64cf5c176b21a655d14">getType</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00506"></a><span class="lineno"> 506</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#a87ee08e81de307eb9c02889b6ed98dd5">getFlatternedElemType</a>(mem-&gt;getType(), ls.<a class="code" href="classSVF_1_1LocationSet.html#a63c5c8e03b35e0d0cea94137d309c853">accumulateConstantFieldIdx</a>());</div><div class="line"><a name="l00507"></a><span class="lineno"> 507</span>&#160; }</div><div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160;</div><div class="line"><a name="l00510"></a><span class="lineno"><a class="line" href="classSVF_1_1GepObjVar.html#a88f86fe8abcb0550d838e5de11ae3ef7"> 510</a></span>&#160; <span class="keyword">inline</span> <span class="keyword">const</span> std::string <a class="code" href="classSVF_1_1GepObjVar.html#a88f86fe8abcb0550d838e5de11ae3ef7">getValueName</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00512"></a><span class="lineno"> 512</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="l00513"></a><span class="lineno"> 513</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> + std::to_string(ls.<a class="code" href="classSVF_1_1LocationSet.html#a63c5c8e03b35e0d0cea94137d309c853">accumulateConstantFieldIdx</a>());</div><div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;offset_&quot;</span> + std::to_string(ls.<a class="code" href="classSVF_1_1LocationSet.html#a63c5c8e03b35e0d0cea94137d309c853">accumulateConstantFieldIdx</a>());</div><div class="line"><a name="l00515"></a><span class="lineno"> 515</span>&#160; }</div><div class="line"><a name="l00516"></a><span class="lineno"> 516</span>&#160;</div><div class="line"><a name="l00517"></a><span class="lineno"> 517</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="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="comment">/*</span></div><div class="line"><a name="l00521"></a><span class="lineno"> 521</span>&#160;<span class="comment"> * Field-insensitive Gep Obj variable, this is dynamic generated for field sensitive analysis</span></div><div class="line"><a name="l00522"></a><span class="lineno"> 522</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="l00523"></a><span class="lineno"> 523</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00524"></a><span class="lineno"><a class="line" href="classSVF_1_1FIObjVar.html"> 524</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="l00525"></a><span class="lineno"> 525</span>&#160;{</div><div class="line"><a name="l00526"></a><span class="lineno"> 526</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00527"></a><span class="lineno"> 527</span>&#160;</div><div class="line"><a name="l00529"></a><span class="lineno"> 529</span>&#160;</div><div class="line"><a name="l00530"></a><span class="lineno"><a class="line" href="classSVF_1_1FIObjVar.html#a1801ca6c6cf3367eff5621fa7c788619"> 530</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="l00531"></a><span class="lineno"> 531</span>&#160; {</div><div class="line"><a name="l00532"></a><span class="lineno"> 532</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00533"></a><span class="lineno"> 533</span>&#160; }</div><div class="line"><a name="l00534"></a><span class="lineno"><a class="line" href="classSVF_1_1FIObjVar.html#a07ed7216777acb05861044542cc2fe66"> 534</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="l00535"></a><span class="lineno"> 535</span>&#160; {</div><div class="line"><a name="l00536"></a><span class="lineno"> 536</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="l00537"></a><span class="lineno"> 537</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="l00538"></a><span class="lineno"> 538</span>&#160; }</div><div class="line"><a name="l00539"></a><span class="lineno"><a class="line" href="classSVF_1_1FIObjVar.html#a1f6ba91fe429f55598cef983a2b3a538"> 539</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="l00540"></a><span class="lineno"> 540</span>&#160; {</div><div class="line"><a name="l00541"></a><span class="lineno"> 541</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="l00542"></a><span class="lineno"> 542</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="l00543"></a><span class="lineno"> 543</span>&#160; }</div><div class="line"><a name="l00544"></a><span class="lineno"><a class="line" href="classSVF_1_1FIObjVar.html#a73cd80e57f81d34b6295e110e3d43acc"> 544</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="l00545"></a><span class="lineno"> 545</span>&#160; {</div><div class="line"><a name="l00546"></a><span class="lineno"> 546</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="l00547"></a><span class="lineno"> 547</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="l00548"></a><span class="lineno"> 548</span>&#160; }</div><div class="line"><a name="l00550"></a><span class="lineno"> 550</span>&#160;</div><div class="line"><a name="l00552"></a><span class="lineno"><a class="line" href="classSVF_1_1FIObjVar.html#ae77995bc46e4f7b1b17fa86aa601ffae"> 552</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="l00553"></a><span class="lineno"> 553</span>&#160; <a class="code" href="classSVF_1_1ObjVar.html">ObjVar</a>(val, i, mem, ty)</div><div class="line"><a name="l00554"></a><span class="lineno"> 554</span>&#160; {</div><div class="line"><a name="l00555"></a><span class="lineno"> 555</span>&#160; }</div><div class="line"><a name="l00556"></a><span class="lineno"> 556</span>&#160;</div><div class="line"><a name="l00558"></a><span class="lineno"><a class="line" href="classSVF_1_1FIObjVar.html#a330b28f8488de9e186bedf73e5576a08"> 558</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="l00559"></a><span class="lineno"> 559</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00560"></a><span class="lineno"> 560</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="l00561"></a><span class="lineno"> 561</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="l00562"></a><span class="lineno"> 562</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot; (base object)&quot;</span>;</div><div class="line"><a name="l00563"></a><span class="lineno"> 563</span>&#160; }</div><div class="line"><a name="l00564"></a><span class="lineno"> 564</span>&#160;</div><div class="line"><a name="l00565"></a><span class="lineno"> 565</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="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="comment">/*</span></div><div class="line"><a name="l00569"></a><span class="lineno"> 569</span>&#160;<span class="comment"> * Unique Return node of a procedure</span></div><div class="line"><a name="l00570"></a><span class="lineno"> 570</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00571"></a><span class="lineno"><a class="line" href="classSVF_1_1RetPN.html"> 571</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_1ValVar.html">ValVar</a></div><div class="line"><a name="l00572"></a><span class="lineno"> 572</span>&#160;{</div><div class="line"><a name="l00573"></a><span class="lineno"> 573</span>&#160;</div><div class="line"><a name="l00574"></a><span class="lineno"> 574</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00575"></a><span class="lineno"> 575</span>&#160;</div><div class="line"><a name="l00577"></a><span class="lineno"><a class="line" href="classSVF_1_1RetPN.html#acedd9e576a077f96c0638065d4c70bcf"> 577</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="l00578"></a><span class="lineno"> 578</span>&#160; {</div><div class="line"><a name="l00579"></a><span class="lineno"> 579</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00580"></a><span class="lineno"> 580</span>&#160; }</div><div class="line"><a name="l00581"></a><span class="lineno"><a class="line" href="classSVF_1_1RetPN.html#a5e9d174902aa6dcfae418697363967b9"> 581</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="l00582"></a><span class="lineno"> 582</span>&#160; {</div><div class="line"><a name="l00583"></a><span class="lineno"> 583</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="l00584"></a><span class="lineno"> 584</span>&#160; }</div><div class="line"><a name="l00585"></a><span class="lineno"><a class="line" href="classSVF_1_1RetPN.html#a70b218109d2cc7850bbab5a4504784db"> 585</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#a70b218109d2cc7850bbab5a4504784db">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1ValVar.html">ValVar</a> *node)</div><div class="line"><a name="l00586"></a><span class="lineno"> 586</span>&#160; {</div><div class="line"><a name="l00587"></a><span class="lineno"> 587</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="l00588"></a><span class="lineno"> 588</span>&#160; }</div><div class="line"><a name="l00589"></a><span class="lineno"><a class="line" href="classSVF_1_1RetPN.html#a69ee6310b7236bc1230fa63440b0f551"> 589</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="l00590"></a><span class="lineno"> 590</span>&#160; {</div><div class="line"><a name="l00591"></a><span class="lineno"> 591</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="l00592"></a><span class="lineno"> 592</span>&#160; }</div><div class="line"><a name="l00594"></a><span class="lineno"> 594</span>&#160;</div><div class="line"><a name="l00596"></a><span class="lineno"><a class="line" href="classSVF_1_1RetPN.html#ac551c1aaf9ec3cb77814aa4664d61a23"> 596</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="l00597"></a><span class="lineno"> 597</span>&#160; <a class="code" href="classSVF_1_1ValVar.html">ValVar</a>(val-&gt;getLLVMFun(), i, <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffa5de2a8fce9a85f31818d58992b381b98">RetNode</a>)</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="l00600"></a><span class="lineno"> 600</span>&#160;</div><div class="line"><a name="l00602"></a><span class="lineno"><a class="line" href="classSVF_1_1RetPN.html#a48c099d2b441b4cc298166e2c5866c8f"> 602</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="l00603"></a><span class="lineno"> 603</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00604"></a><span class="lineno"> 604</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="l00605"></a><span class="lineno"> 605</span>&#160; }</div><div class="line"><a name="l00606"></a><span class="lineno"> 606</span>&#160;</div><div class="line"><a name="l00607"></a><span class="lineno"> 607</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="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;</div><div class="line"><a name="l00611"></a><span class="lineno"> 611</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00612"></a><span class="lineno"> 612</span>&#160;<span class="comment"> * Unique vararg node of a procedure</span></div><div class="line"><a name="l00613"></a><span class="lineno"> 613</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00614"></a><span class="lineno"><a class="line" href="classSVF_1_1VarArgPN.html"> 614</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_1ValVar.html">ValVar</a></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;</div><div class="line"><a name="l00617"></a><span class="lineno"> 617</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00618"></a><span class="lineno"> 618</span>&#160;</div><div class="line"><a name="l00620"></a><span class="lineno"><a class="line" href="classSVF_1_1VarArgPN.html#acaecf9e9d98c4a14fecee0877a72839c"> 620</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="l00621"></a><span class="lineno"> 621</span>&#160; {</div><div class="line"><a name="l00622"></a><span class="lineno"> 622</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00623"></a><span class="lineno"> 623</span>&#160; }</div><div class="line"><a name="l00624"></a><span class="lineno"><a class="line" href="classSVF_1_1VarArgPN.html#a2adee91065fef72cb8f64924aa83ec0a"> 624</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="l00625"></a><span class="lineno"> 625</span>&#160; {</div><div class="line"><a name="l00626"></a><span class="lineno"> 626</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="l00627"></a><span class="lineno"> 627</span>&#160; }</div><div class="line"><a name="l00628"></a><span class="lineno"><a class="line" href="classSVF_1_1VarArgPN.html#a3a7f82ff9fe4426ae8d967460995e2cd"> 628</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#a3a7f82ff9fe4426ae8d967460995e2cd">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1ValVar.html">ValVar</a> *node)</div><div class="line"><a name="l00629"></a><span class="lineno"> 629</span>&#160; {</div><div class="line"><a name="l00630"></a><span class="lineno"> 630</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="l00631"></a><span class="lineno"> 631</span>&#160; }</div><div class="line"><a name="l00632"></a><span class="lineno"><a class="line" href="classSVF_1_1VarArgPN.html#a7f873a8015eb6a6b30530a7e5a69018d"> 632</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="l00633"></a><span class="lineno"> 633</span>&#160; {</div><div class="line"><a name="l00634"></a><span class="lineno"> 634</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="l00635"></a><span class="lineno"> 635</span>&#160; }</div><div class="line"><a name="l00637"></a><span class="lineno"> 637</span>&#160;</div><div class="line"><a name="l00639"></a><span class="lineno"><a class="line" href="classSVF_1_1VarArgPN.html#ad6ebe474373838bc6c00e8baaa3f7137"> 639</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="l00640"></a><span class="lineno"> 640</span>&#160; <a class="code" href="classSVF_1_1ValVar.html">ValVar</a>(val-&gt;getLLVMFun(), i, <a class="code" href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffa5a13a457f037424f61e74165a9cdcebf">VarargNode</a>)</div><div class="line"><a name="l00641"></a><span class="lineno"> 641</span>&#160; {</div><div class="line"><a name="l00642"></a><span class="lineno"> 642</span>&#160; }</div><div class="line"><a name="l00643"></a><span class="lineno"> 643</span>&#160;</div><div class="line"><a name="l00645"></a><span class="lineno"><a class="line" href="classSVF_1_1VarArgPN.html#aec7ac87f5fff58b24daea998aaf0cc2a"> 645</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="l00646"></a><span class="lineno"> 646</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00647"></a><span class="lineno"> 647</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="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; <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="l00651"></a><span class="lineno"> 651</span>&#160;};</div><div class="line"><a name="l00652"></a><span class="lineno"> 652</span>&#160;</div><div class="line"><a name="l00653"></a><span class="lineno"> 653</span>&#160;</div><div class="line"><a name="l00654"></a><span class="lineno"> 654</span>&#160;</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;<span class="comment">/*</span></div><div class="line"><a name="l00657"></a><span class="lineno"> 657</span>&#160;<span class="comment"> * Dummy variable without any LLVM value</span></div><div class="line"><a name="l00658"></a><span class="lineno"> 658</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00659"></a><span class="lineno"><a class="line" href="classSVF_1_1DummyValVar.html"> 659</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="l00660"></a><span class="lineno"> 660</span>&#160;{</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="keyword">public</span>:</div><div class="line"><a name="l00663"></a><span class="lineno"> 663</span>&#160;</div><div class="line"><a name="l00665"></a><span class="lineno"><a class="line" href="classSVF_1_1DummyValVar.html#a06c603907dce56bea44f9a4f9da4d6c7"> 665</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="l00666"></a><span class="lineno"> 666</span>&#160; {</div><div class="line"><a name="l00667"></a><span class="lineno"> 667</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00668"></a><span class="lineno"> 668</span>&#160; }</div><div class="line"><a name="l00669"></a><span class="lineno"><a class="line" href="classSVF_1_1DummyValVar.html#ac09e183185b178f16547bb355ccb01f3"> 669</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="l00670"></a><span class="lineno"> 670</span>&#160; {</div><div class="line"><a name="l00671"></a><span class="lineno"> 671</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="l00672"></a><span class="lineno"> 672</span>&#160; }</div><div class="line"><a name="l00673"></a><span class="lineno"><a class="line" href="classSVF_1_1DummyValVar.html#a3fbbb34ccb50e65d6d7aabe7e84e548f"> 673</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#a3fbbb34ccb50e65d6d7aabe7e84e548f">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1ValVar.html">ValVar</a> *node)</div><div class="line"><a name="l00674"></a><span class="lineno"> 674</span>&#160; {</div><div class="line"><a name="l00675"></a><span class="lineno"> 675</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="l00676"></a><span class="lineno"> 676</span>&#160; }</div><div class="line"><a name="l00677"></a><span class="lineno"><a class="line" href="classSVF_1_1DummyValVar.html#abd4bbbbe43db12627923729a9d5a5442"> 677</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="l00678"></a><span class="lineno"> 678</span>&#160; {</div><div class="line"><a name="l00679"></a><span class="lineno"> 679</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="l00680"></a><span class="lineno"> 680</span>&#160; }</div><div class="line"><a name="l00682"></a><span class="lineno"> 682</span>&#160;</div><div class="line"><a name="l00684"></a><span class="lineno"><a class="line" href="classSVF_1_1DummyValVar.html#a39fb5acde002694e91599a67ff3ae99a"> 684</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="l00685"></a><span class="lineno"> 685</span>&#160; {</div><div class="line"><a name="l00686"></a><span class="lineno"> 686</span>&#160; }</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="l00690"></a><span class="lineno"><a class="line" href="classSVF_1_1DummyValVar.html#a188ddcb95f842245fb97362ff8a06efd"> 690</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="l00691"></a><span class="lineno"> 691</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00692"></a><span class="lineno"> 692</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;dummyVal&quot;</span>;</div><div class="line"><a name="l00693"></a><span class="lineno"> 693</span>&#160; }</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; <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="l00696"></a><span class="lineno"> 696</span>&#160;};</div><div class="line"><a name="l00697"></a><span class="lineno"> 697</span>&#160;</div><div class="line"><a name="l00698"></a><span class="lineno"> 698</span>&#160;</div><div class="line"><a name="l00699"></a><span class="lineno"> 699</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00700"></a><span class="lineno"> 700</span>&#160;<span class="comment"> * Dummy object variable</span></div><div class="line"><a name="l00701"></a><span class="lineno"> 701</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00702"></a><span class="lineno"><a class="line" href="classSVF_1_1DummyObjVar.html"> 702</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="l00703"></a><span class="lineno"> 703</span>&#160;{</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="keyword">public</span>:</div><div class="line"><a name="l00706"></a><span class="lineno"> 706</span>&#160;</div><div class="line"><a name="l00708"></a><span class="lineno"><a class="line" href="classSVF_1_1DummyObjVar.html#a543ca59bd39740d1080fe4702bc2fd69"> 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#a543ca59bd39740d1080fe4702bc2fd69">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1DummyObjVar.html">DummyObjVar</a> *)</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> <span class="keyword">true</span>;</div><div class="line"><a name="l00711"></a><span class="lineno"> 711</span>&#160; }</div><div class="line"><a name="l00712"></a><span class="lineno"><a class="line" href="classSVF_1_1DummyObjVar.html#a9552d717a869b0ec6678843a56fc8695"> 712</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="l00713"></a><span class="lineno"> 713</span>&#160; {</div><div class="line"><a name="l00714"></a><span class="lineno"> 714</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="l00715"></a><span class="lineno"> 715</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="l00716"></a><span class="lineno"> 716</span>&#160; }</div><div class="line"><a name="l00717"></a><span class="lineno"><a class="line" href="classSVF_1_1DummyObjVar.html#aabbc9127565b4c336b28d433297fa37f"> 717</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#aabbc9127565b4c336b28d433297fa37f">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1ObjVar.html">ObjVar</a> *node)</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; <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="l00720"></a><span class="lineno"> 720</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="l00721"></a><span class="lineno"> 721</span>&#160; }</div><div class="line"><a name="l00722"></a><span class="lineno"><a class="line" href="classSVF_1_1DummyObjVar.html#a6aefb8e6612cb6322e064ac3521fa849"> 722</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="l00723"></a><span class="lineno"> 723</span>&#160; {</div><div class="line"><a name="l00724"></a><span class="lineno"> 724</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="l00725"></a><span class="lineno"> 725</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="l00726"></a><span class="lineno"> 726</span>&#160; }</div><div class="line"><a name="l00728"></a><span class="lineno"> 728</span>&#160;</div><div class="line"><a name="l00730"></a><span class="lineno"><a class="line" href="classSVF_1_1DummyObjVar.html#a3dff74bbf50b6a901239d3fd31e0f36c"> 730</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="l00731"></a><span class="lineno"> 731</span>&#160; : <a class="code" href="classSVF_1_1ObjVar.html">ObjVar</a>(nullptr, i, m, ty)</div><div class="line"><a name="l00732"></a><span class="lineno"> 732</span>&#160; {</div><div class="line"><a name="l00733"></a><span class="lineno"> 733</span>&#160; }</div><div class="line"><a name="l00734"></a><span class="lineno"> 734</span>&#160;</div><div class="line"><a name="l00736"></a><span class="lineno"><a class="line" href="classSVF_1_1DummyObjVar.html#aec23bc498cf78ed065565681e14dd2dd"> 736</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="l00737"></a><span class="lineno"> 737</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00738"></a><span class="lineno"> 738</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;dummyObj&quot;</span>;</div><div class="line"><a name="l00739"></a><span class="lineno"> 739</span>&#160; }</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"> 741</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="l00742"></a><span class="lineno"> 742</span>&#160;};</div><div class="line"><a name="l00743"></a><span class="lineno"> 743</span>&#160;</div><div class="line"><a name="l00744"></a><span class="lineno"> 744</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00745"></a><span class="lineno"> 745</span>&#160;<span class="comment"> * Clone object node for dummy objects.</span></div><div class="line"><a name="l00746"></a><span class="lineno"> 746</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00747"></a><span class="lineno"><a class="line" href="classSVF_1_1CloneDummyObjVar.html"> 747</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="l00748"></a><span class="lineno"> 748</span>&#160;{</div><div class="line"><a name="l00749"></a><span class="lineno"> 749</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00751"></a><span class="lineno"><a class="line" href="classSVF_1_1CloneDummyObjVar.html#a304eeab4eb7c441e49cfa3be008b11f6"> 751</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="l00752"></a><span class="lineno"> 752</span>&#160; {</div><div class="line"><a name="l00753"></a><span class="lineno"> 753</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</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"><a class="line" href="classSVF_1_1CloneDummyObjVar.html#a6eb2439f433fe48a338b09a6ab017f7c"> 755</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="l00756"></a><span class="lineno"> 756</span>&#160; {</div><div class="line"><a name="l00757"></a><span class="lineno"> 757</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="l00758"></a><span class="lineno"> 758</span>&#160; }</div><div class="line"><a name="l00759"></a><span class="lineno"><a class="line" href="classSVF_1_1CloneDummyObjVar.html#a982180a5ea7595f2d2320799056ff56d"> 759</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="l00760"></a><span class="lineno"> 760</span>&#160; {</div><div class="line"><a name="l00761"></a><span class="lineno"> 761</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="l00762"></a><span class="lineno"> 762</span>&#160; }</div><div class="line"><a name="l00764"></a><span class="lineno"> 764</span>&#160;</div><div class="line"><a name="l00766"></a><span class="lineno"><a class="line" href="classSVF_1_1CloneDummyObjVar.html#a2f2a74296d76349d472a71c4ee069aa0"> 766</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="l00767"></a><span class="lineno"> 767</span>&#160; : <a class="code" href="classSVF_1_1DummyObjVar.html">DummyObjVar</a>(i, m, ty)</div><div class="line"><a name="l00768"></a><span class="lineno"> 768</span>&#160; {</div><div class="line"><a name="l00769"></a><span class="lineno"> 769</span>&#160; }</div><div class="line"><a name="l00770"></a><span class="lineno"> 770</span>&#160;</div><div class="line"><a name="l00772"></a><span class="lineno"><a class="line" href="classSVF_1_1CloneDummyObjVar.html#a2ddf5e4067c537a7dfd9bf74f7195931"> 772</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="l00773"></a><span class="lineno"> 773</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00774"></a><span class="lineno"> 774</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="l00775"></a><span class="lineno"> 775</span>&#160; }</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"> 777</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="l00778"></a><span class="lineno"> 778</span>&#160;};</div><div class="line"><a name="l00779"></a><span class="lineno"> 779</span>&#160;</div><div class="line"><a name="l00780"></a><span class="lineno"> 780</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00781"></a><span class="lineno"> 781</span>&#160;<span class="comment"> * Clone object for GEP objects.</span></div><div class="line"><a name="l00782"></a><span class="lineno"> 782</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00783"></a><span class="lineno"><a class="line" href="classSVF_1_1CloneGepObjVar.html"> 783</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_1GepObjVar.html">GepObjVar</a></div><div class="line"><a name="l00784"></a><span class="lineno"> 784</span>&#160;{</div><div class="line"><a name="l00785"></a><span class="lineno"> 785</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00787"></a><span class="lineno"><a class="line" href="classSVF_1_1CloneGepObjVar.html#a5f46eff05b965deeeed531bd9a87b464"> 787</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="l00788"></a><span class="lineno"> 788</span>&#160; {</div><div class="line"><a name="l00789"></a><span class="lineno"> 789</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</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"><a class="line" href="classSVF_1_1CloneGepObjVar.html#a2dc4176254a15071a35f8218036cd5bb"> 791</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="l00792"></a><span class="lineno"> 792</span>&#160; {</div><div class="line"><a name="l00793"></a><span class="lineno"> 793</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="l00794"></a><span class="lineno"> 794</span>&#160; }</div><div class="line"><a name="l00795"></a><span class="lineno"><a class="line" href="classSVF_1_1CloneGepObjVar.html#a705b0eaaa7875c6e059cecd2d77f6968"> 795</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="l00796"></a><span class="lineno"> 796</span>&#160; {</div><div class="line"><a name="l00797"></a><span class="lineno"> 797</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="l00798"></a><span class="lineno"> 798</span>&#160; }</div><div class="line"><a name="l00800"></a><span class="lineno"> 800</span>&#160;</div><div class="line"><a name="l00802"></a><span class="lineno"><a class="line" href="classSVF_1_1CloneGepObjVar.html#ab2b37ac7064e97665c04c778904e9888"> 802</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="l00803"></a><span class="lineno"> 803</span>&#160; <a class="code" href="classSVF_1_1GepObjVar.html">GepObjVar</a>(mem, i, l, ty)</div><div class="line"><a name="l00804"></a><span class="lineno"> 804</span>&#160; {</div><div class="line"><a name="l00805"></a><span class="lineno"> 805</span>&#160; }</div><div class="line"><a name="l00806"></a><span class="lineno"> 806</span>&#160;</div><div class="line"><a name="l00808"></a><span class="lineno"><a class="line" href="classSVF_1_1CloneGepObjVar.html#a9d4cf31155950c889b5965566ab3d45e"> 808</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="l00809"></a><span class="lineno"> 809</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00810"></a><span class="lineno"> 810</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;clone (gep) of &quot;</span> + <a class="code" href="classSVF_1_1GepObjVar.html#a88f86fe8abcb0550d838e5de11ae3ef7">GepObjVar::getValueName</a>();</div><div class="line"><a name="l00811"></a><span class="lineno"> 811</span>&#160; }</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"> 813</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="l00814"></a><span class="lineno"> 814</span>&#160;};</div><div class="line"><a name="l00815"></a><span class="lineno"> 815</span>&#160;</div><div class="line"><a name="l00816"></a><span class="lineno"> 816</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00817"></a><span class="lineno"> 817</span>&#160;<span class="comment"> * Clone object for FI objects.</span></div><div class="line"><a name="l00818"></a><span class="lineno"> 818</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00819"></a><span class="lineno"><a class="line" href="classSVF_1_1CloneFIObjVar.html"> 819</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="l00820"></a><span class="lineno"> 820</span>&#160;{</div><div class="line"><a name="l00821"></a><span class="lineno"> 821</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00823"></a><span class="lineno"><a class="line" href="classSVF_1_1CloneFIObjVar.html#a96a659f0a876b417ebdf6057db65c870"> 823</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="l00824"></a><span class="lineno"> 824</span>&#160; {</div><div class="line"><a name="l00825"></a><span class="lineno"> 825</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</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"><a class="line" href="classSVF_1_1CloneFIObjVar.html#a71c3a2f27967bec62f65bed3d38e2c35"> 827</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="l00828"></a><span class="lineno"> 828</span>&#160; {</div><div class="line"><a name="l00829"></a><span class="lineno"> 829</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="l00830"></a><span class="lineno"> 830</span>&#160; }</div><div class="line"><a name="l00831"></a><span class="lineno"><a class="line" href="classSVF_1_1CloneFIObjVar.html#a06ddad01d54e2676c7036c2e901235cb"> 831</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="l00832"></a><span class="lineno"> 832</span>&#160; {</div><div class="line"><a name="l00833"></a><span class="lineno"> 833</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="l00834"></a><span class="lineno"> 834</span>&#160; }</div><div class="line"><a name="l00836"></a><span class="lineno"> 836</span>&#160;</div><div class="line"><a name="l00838"></a><span class="lineno"><a class="line" href="classSVF_1_1CloneFIObjVar.html#adeef2b67999d96aab854b25432ebb348"> 838</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="l00839"></a><span class="lineno"> 839</span>&#160; <a class="code" href="classSVF_1_1FIObjVar.html">FIObjVar</a>(val, i, mem, ty)</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;</div><div class="line"><a name="l00844"></a><span class="lineno"><a class="line" href="classSVF_1_1CloneFIObjVar.html#abac4095a6a60c321caa40f837a752803"> 844</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="l00845"></a><span class="lineno"> 845</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00846"></a><span class="lineno"> 846</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="l00847"></a><span class="lineno"> 847</span>&#160; }</div><div class="line"><a name="l00848"></a><span class="lineno"> 848</span>&#160;</div><div class="line"><a name="l00849"></a><span class="lineno"> 849</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="l00850"></a><span class="lineno"> 850</span>&#160;};</div><div class="line"><a name="l00851"></a><span class="lineno"> 851</span>&#160;</div><div class="line"><a name="l00852"></a><span class="lineno"> 852</span>&#160;} <span class="comment">// End namespace SVF</span></div><div class="line"><a name="l00853"></a><span class="lineno"> 853</span>&#160;</div><div class="line"><a name="l00854"></a><span class="lineno"> 854</span>&#160;</div><div class="line"><a name="l00855"></a><span class="lineno"> 855</span>&#160;</div><div class="line"><a name="l00856"></a><span class="lineno"> 856</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#l00217">SVFVariables.h:217</a></div></div>
70
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#l00589">SVFVariables.h:589</a></div></div>
71
71
  <div class="ttc" id="classSVF_1_1VFG_html"><div class="ttname"><a href="classSVF_1_1VFG.html">SVF::VFG</a></div><div class="ttdef"><b>Definition:</b> <a href="VFG_8h_source.html#l00050">VFG.h:50</a></div></div>
72
72
  <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#l00677">SVFVariables.h:677</a></div></div>
@@ -74,7 +74,7 @@ $(function() {
74
74
  <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#l00331">SVFVariables.h:331</a></div></div>
75
75
  <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#l00295">SVFVariables.h:295</a></div></div>
76
76
  <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#l00632">SVFVariables.h:632</a></div></div>
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#l00404">SymbolTableInfo.h:404</a></div></div>
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#l00393">SymbolTableInfo.h:393</a></div></div>
78
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#l00071">SVFVariables.h:71</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 statements (edges) </div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00172">SVFVariables.h:172</a></div></div>
80
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#l00266">SVFVariables.h:266</a></div></div>
@@ -90,7 +90,7 @@ $(function() {
90
90
  <div class="ttc" id="classSVF_1_1SVFVar_html_a283f7c0c2eaae07c6865f73a0daafeffa288e3f5d01c94d5c5d685d43f08a6c4a"><div class="ttname"><a href="classSVF_1_1SVFVar.html#a283f7c0c2eaae07c6865f73a0daafeffa288e3f5d01c94d5c5d685d43f08a6c4a">SVF::SVFVar::GepValNode</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00069">SVFVariables.h:69</a></div></div>
91
91
  <div class="ttc" id="classSVF_1_1IRGraph_html"><div class="ttname"><a href="classSVF_1_1IRGraph.html">SVF::IRGraph</a></div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#l00048">IRGraph.h:48</a></div></div>
92
92
  <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>
93
- <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="Util_2BasicTypes_8h_source.html#l00073">BasicTypes.h:73</a></div></div>
93
+ <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="Util_2BasicTypes_8h_source.html#l00072">BasicTypes.h:72</a></div></div>
94
94
  <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">whether it is a pointer (top-level or address-taken) </div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8cpp_source.html#l00040">SVFVariables.cpp:40</a></div></div>
95
95
  <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#l00429">SVFVariables.h:429</a></div></div>
96
96
  <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,15 +99,15 @@ $(function() {
99
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#l00552">SVFVariables.h:552</a></div></div>
100
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#l00581">SVFVariables.h:581</a></div></div>
101
101
  <div class="ttc" id="classSVF_1_1GepObjVar_html_ae80d95a4d90ca64eca819e140445004c"><div class="ttname"><a href="classSVF_1_1GepObjVar.html#ae80d95a4d90ca64eca819e140445004c">SVF::GepObjVar::GepObjVar</a></div><div class="ttdeci">GepObjVar(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#l00473">SVFVariables.h:473</a></div></div>
102
- <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="Util_2BasicTypes_8h_source.html#l00219">BasicTypes.h:219</a></div></div>
102
+ <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="Util_2BasicTypes_8h_source.html#l00184">BasicTypes.h:184</a></div></div>
103
103
  <div class="ttc" id="classSVF_1_1GepObjVar_html_ac3583a2d4d4ceaf820d23b43a893ac92"><div class="ttname"><a href="classSVF_1_1GepObjVar.html#ac3583a2d4d4ceaf820d23b43a893ac92">SVF::GepObjVar::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#l00465">SVFVariables.h:465</a></div></div>
104
104
  <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#l00327">SVFVariables.h:327</a></div></div>
105
105
  <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#l00819">SVFVariables.h:819</a></div></div>
106
106
  <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#l00074">SVFVariables.h:74</a></div></div>
107
107
  <div class="ttc" id="classSVF_1_1SVFStmt_html_a8cd7b6c6fd8b030b1421d95a086359f4"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a8cd7b6c6fd8b030b1421d95a086359f4">SVF::SVFStmt::SVFStmtSetTy</a></div><div class="ttdeci">GenericNode&lt; SVFVar, SVFStmt &gt;::GEdgeSetTy SVFStmtSetTy</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00177">SVFStatements.h:177</a></div></div>
108
- <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#l00653">SymbolTableInfo.cpp:653</a></div></div>
108
+ <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#l00648">SymbolTableInfo.cpp:648</a></div></div>
109
109
  <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#l00596">SVFVariables.h:596</a></div></div>
110
- <div class="ttc" id="namespaceSVF_html_a9b707002523ece2ac54ca893ee9a2d4e"><div class="ttname"><a href="namespaceSVF.html#a9b707002523ece2ac54ca893ee9a2d4e">SVF::s32_t</a></div><div class="ttdeci">signed s32_t</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00078">SVFBasicTypes.h:78</a></div></div>
110
+ <div class="ttc" id="namespaceSVF_html_a9b707002523ece2ac54ca893ee9a2d4e"><div class="ttname"><a href="namespaceSVF.html#a9b707002523ece2ac54ca893ee9a2d4e">SVF::s32_t</a></div><div class="ttdeci">signed s32_t</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00082">SVFBasicTypes.h:82</a></div></div>
111
111
  <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#l00403">SVFVariables.h:403</a></div></div>
112
112
  <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#l00072">SVFVariables.h:72</a></div></div>
113
113
  <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#l00385">SVFVariables.h:385</a></div></div>
@@ -138,23 +138,23 @@ $(function() {
138
138
  <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#l00231">SVFVariables.h:231</a></div></div>
139
139
  <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#l00577">SVFVariables.h:577</a></div></div>
140
140
  <div class="ttc" id="SymbolTableInfo_8h_html"><div class="ttname"><a href="SymbolTableInfo_8h.html">SymbolTableInfo.h</a></div></div>
141
- <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="Util_2BasicTypes_8h_source.html#l00074">BasicTypes.h:74</a></div></div>
141
+ <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="Util_2BasicTypes_8h_source.html#l00073">BasicTypes.h:73</a></div></div>
142
142
  <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#l00063">SVFVariables.h:63</a></div></div>
143
143
  <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#l00093">SVFVariables.cpp:93</a></div></div>
144
- <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="Util_2BasicTypes_8h_source.html#l00077">BasicTypes.h:77</a></div></div>
144
+ <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="Util_2BasicTypes_8h_source.html#l00076">BasicTypes.h:76</a></div></div>
145
145
  <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#l00073">SVFVariables.h:73</a></div></div>
146
146
  <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#l00624">SVFVariables.h:624</a></div></div>
147
147
  <div class="ttc" id="GenericGraph_8h_html"><div class="ttname"><a href="GenericGraph_8h.html">GenericGraph.h</a></div></div>
148
148
  <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#l00690">SVFVariables.h:690</a></div></div>
149
149
  <div class="ttc" id="classSVF_1_1SVFVar_html_a927733580b47be5ffcfced44ba9fd6c3"><div class="ttname"><a href="classSVF_1_1SVFVar.html#a927733580b47be5ffcfced44ba9fd6c3">SVF::SVFVar::getOutgoingEdges</a></div><div class="ttdeci">SVFStmt::SVFStmtSetTy &amp; getOutgoingEdges(SVFStmt::PEDGEK kind)</div><div class="ttdoc">Get outgoing SVFIR statements (edges) </div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00158">SVFVariables.h:158</a></div></div>
150
150
  <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#l00284">SVFVariables.h:284</a></div></div>
151
- <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#l00197">SymbolTableInfo.h:197</a></div></div>
151
+ <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#l00186">SymbolTableInfo.h:186</a></div></div>
152
152
  <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#l00386">SVFVariables.h:386</a></div></div>
153
153
  <div class="ttc" id="classSVF_1_1GepObjVar_html_a5e371fae7592d763661a7cb777107ff4"><div class="ttname"><a href="classSVF_1_1GepObjVar.html#a5e371fae7592d763661a7cb777107ff4">SVF::GepObjVar::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#l00492">SVFVariables.h:492</a></div></div>
154
154
  <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#l00066">SVFVariables.h:66</a></div></div>
155
155
  <div class="ttc" id="classSVF_1_1GepObjVar_html_ad7fc6e6ed6fca8641c44b91ab29524bd"><div class="ttname"><a href="classSVF_1_1GepObjVar.html#ad7fc6e6ed6fca8641c44b91ab29524bd">SVF::GepObjVar::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#l00460">SVFVariables.h:460</a></div></div>
156
156
  <div class="ttc" id="classSVF_1_1SVFVar_html_aa5176fce9746bc585d43ebb4c8c824e5"><div class="ttname"><a href="classSVF_1_1SVFVar.html#aa5176fce9746bc585d43ebb4c8c824e5">SVF::SVFVar::getOutgoingEdgesEnd</a></div><div class="ttdeci">SVFStmt::SVFStmtSetTy::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#l00206">SVFVariables.h:206</a></div></div>
157
- <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="Util_2BasicTypes_8h_source.html#l00115">BasicTypes.h:115</a></div></div>
157
+ <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="Util_2BasicTypes_8h_source.html#l00110">BasicTypes.h:110</a></div></div>
158
158
  <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#l00684">SVFVariables.h:684</a></div></div>
159
159
  <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#l00123">SVFVariables.h:123</a></div></div>
160
160
  <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>
@@ -170,13 +170,13 @@ $(function() {
170
170
  <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#l00112">SVFVariables.h:112</a></div></div>
171
171
  <div class="ttc" id="classSVF_1_1DummyValVar_html_a3fbbb34ccb50e65d6d7aabe7e84e548f"><div class="ttname"><a href="classSVF_1_1DummyValVar.html#a3fbbb34ccb50e65d6d7aabe7e84e548f">SVF::DummyValVar::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#l00673">SVFVariables.h:673</a></div></div>
172
172
  <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#l00823">SVFVariables.h:823</a></div></div>
173
- <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#l00106">SymbolTableInfo.cpp:106</a></div></div>
173
+ <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#l00105">SymbolTableInfo.cpp:105</a></div></div>
174
174
  <div class="ttc" id="classSVF_1_1GenericNode_html_a3f20339b5295e11beb0f9adb95c7aa5b"><div class="ttname"><a href="classSVF_1_1GenericNode.html#a3f20339b5295e11beb0f9adb95c7aa5b">SVF::GenericNode::GNodeK</a></div><div class="ttdeci">s64_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>
175
175
  <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#l00300">SVFVariables.h:300</a></div></div>
176
176
  <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>
177
177
  <div class="ttc" id="classSVF_1_1GepValVar_html_a0e5084d3fc54a70ace07075f846395ef"><div class="ttname"><a href="classSVF_1_1GepValVar.html#a0e5084d3fc54a70ace07075f846395ef">SVF::GepValVar::getConstantFieldIdx</a></div><div class="ttdeci">s32_t getConstantFieldIdx() const</div><div class="ttdoc">offset of the base value variable </div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00416">SVFVariables.h:416</a></div></div>
178
178
  <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#l00544">SVFVariables.h:544</a></div></div>
179
- <div class="ttc" id="classSVF_1_1SymbolTableInfo_html_a87ee08e81de307eb9c02889b6ed98dd5"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#a87ee08e81de307eb9c02889b6ed98dd5">SVF::SymbolTableInfo::getFlatternedElemType</a></div><div class="ttdeci">const Type * getFlatternedElemType(const Type *baseType, u32_t flatten_idx)</div><div class="ttdoc">Return the type of a flattened element given a flattened index. </div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00434">SymbolTableInfo.cpp:434</a></div></div>
179
+ <div class="ttc" id="classSVF_1_1SymbolTableInfo_html_a87ee08e81de307eb9c02889b6ed98dd5"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#a87ee08e81de307eb9c02889b6ed98dd5">SVF::SymbolTableInfo::getFlatternedElemType</a></div><div class="ttdeci">const Type * getFlatternedElemType(const Type *baseType, u32_t flatten_idx)</div><div class="ttdoc">Return the type of a flattened element given a flattened index. </div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00429">SymbolTableInfo.cpp:429</a></div></div>
180
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#l00276">SVFVariables.h:276</a></div></div>
181
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#l00639">SVFVariables.h:639</a></div></div>
182
182
  <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#l00730">SVFVariables.h:730</a></div></div>
@@ -203,7 +203,7 @@ $(function() {
203
203
  <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>
204
204
  <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#l00076">SVFVariables.h:76</a></div></div>
205
205
  <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#l00614">SVFVariables.h:614</a></div></div>
206
- <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#l00434">SymbolTableInfo.h:434</a></div></div>
206
+ <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#l00423">SymbolTableInfo.h:423</a></div></div>
207
207
  <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>
208
208
  <div class="ttc" id="classSVF_1_1SVFVar_html_a0d918a6c8dd3b7b395d4c7161bcf9656"><div class="ttname"><a href="classSVF_1_1SVFVar.html#a0d918a6c8dd3b7b395d4c7161bcf9656">SVF::SVFVar::InEdgeKindToSetMap</a></div><div class="ttdeci">SVFStmt::KindToSVFStmtMapTy InEdgeKindToSetMap</div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00082">SVFVariables.h:82</a></div></div>
209
209
  <div class="ttc" id="classSVF_1_1SVFVar_html_a7c8ffadedbf53d30694feeb7771990af"><div class="ttname"><a href="classSVF_1_1SVFVar.html#a7c8ffadedbf53d30694feeb7771990af">SVF::SVFVar::isPtr</a></div><div class="ttdeci">bool isPtr</div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00084">SVFVariables.h:84</a></div></div>
@@ -225,11 +225,11 @@ $(function() {
225
225
  <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#l00081">SVFVariables.cpp:81</a></div></div>
226
226
  <div class="ttc" id="classSVF_1_1SVFVar_html_a9e40eafe55a2c1448b830b56ae72e17f"><div class="ttname"><a href="classSVF_1_1SVFVar.html#a9e40eafe55a2c1448b830b56ae72e17f">SVF::SVFVar::getOutgoingEdgesBegin</a></div><div class="ttdeci">SVFStmt::SVFStmtSetTy::iterator getOutgoingEdgesBegin(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#l00198">SVFVariables.h:198</a></div></div>
227
227
  <div class="ttc" id="classSVF_1_1SVFIR_html"><div class="ttname"><a href="classSVF_1_1SVFIR.html">SVF::SVFIR</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00043">SVFIR.h:43</a></div></div>
228
- <div class="ttc" id="namespaceSVF_html_a8bd74fdcb0e58d0249003df9c3fb8b31"><div class="ttname"><a href="namespaceSVF.html#a8bd74fdcb0e58d0249003df9c3fb8b31">SVF::OutStream</a></div><div class="ttdeci">std::ostream OutStream</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00075">SVFBasicTypes.h:75</a></div></div>
228
+ <div class="ttc" id="namespaceSVF_html_a8bd74fdcb0e58d0249003df9c3fb8b31"><div class="ttname"><a href="namespaceSVF.html#a8bd74fdcb0e58d0249003df9c3fb8b31">SVF::OutStream</a></div><div class="ttdeci">std::ostream OutStream</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00079">SVFBasicTypes.h:79</a></div></div>
229
229
  <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#l00759">SVFVariables.h:759</a></div></div>
230
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#l00068">SVFVariables.h:68</a></div></div>
231
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>
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="Util_2BasicTypes_8h_source.html#l00076">BasicTypes.h:76</a></div></div>
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="Util_2BasicTypes_8h_source.html#l00075">BasicTypes.h:75</a></div></div>
233
233
  <div class="ttc" id="classSVF_1_1DummyObjVar_html_aabbc9127565b4c336b28d433297fa37f"><div class="ttname"><a href="classSVF_1_1DummyObjVar.html#aabbc9127565b4c336b28d433297fa37f">SVF::DummyObjVar::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#l00717">SVFVariables.h:717</a></div></div>
234
234
  <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#l00272">SVFVariables.h:272</a></div></div>
235
235
  <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#l00224">SVFVariables.h:224</a></div></div>