svf-tools 1.0.317 → 1.0.321

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 (547) hide show
  1. package/SVF-doxygen/html/html/AndersenStat_8cpp_source.html +6 -6
  2. package/SVF-doxygen/html/html/Andersen_8cpp.html +1 -1
  3. package/SVF-doxygen/html/html/Andersen_8cpp_source.html +4 -4
  4. package/SVF-doxygen/html/html/Andersen_8h_source.html +1 -1
  5. package/SVF-doxygen/html/html/CHGBuilder_8cpp.html +138 -0
  6. package/SVF-doxygen/html/html/CHGBuilder_8cpp_source.html +178 -0
  7. package/SVF-doxygen/html/html/CHGBuilder_8h.html +95 -0
  8. package/SVF-doxygen/html/html/CHGBuilder_8h_source.html +109 -0
  9. package/SVF-doxygen/html/html/CHG_8cpp.html +10 -64
  10. package/SVF-doxygen/html/html/CHG_8cpp_source.html +31 -108
  11. package/SVF-doxygen/html/html/CHG_8h.html +9 -3
  12. package/SVF-doxygen/html/html/CHG_8h_source.html +82 -76
  13. package/SVF-doxygen/html/html/ConsG_8cpp_source.html +37 -33
  14. package/SVF-doxygen/html/html/ConsG_8h_source.html +32 -32
  15. package/SVF-doxygen/html/html/ContextDDA_8cpp_source.html +6 -6
  16. package/SVF-doxygen/html/html/ContextDDA_8h_source.html +3 -3
  17. package/SVF-doxygen/html/html/DCHG_8cpp_source.html +2 -2
  18. package/SVF-doxygen/html/html/DCHG_8h.html +1 -1
  19. package/SVF-doxygen/html/html/DCHG_8h_source.html +8 -8
  20. package/SVF-doxygen/html/html/DDAClient_8cpp_source.html +5 -5
  21. package/SVF-doxygen/html/html/DDAClient_8h_source.html +2 -2
  22. package/SVF-doxygen/html/html/DDAPass_8cpp_source.html +5 -5
  23. package/SVF-doxygen/html/html/DDAStat_8cpp_source.html +4 -4
  24. package/SVF-doxygen/html/html/DDAVFSolver_8h_source.html +12 -12
  25. package/SVF-doxygen/html/html/DataFlowUtil_8cpp_source.html +1 -1
  26. package/SVF-doxygen/html/html/ExternalPAG_8cpp.html +1 -1
  27. package/SVF-doxygen/html/html/ExternalPAG_8cpp_source.html +22 -22
  28. package/SVF-doxygen/html/html/FSMPTA_8cpp_source.html +1 -1
  29. package/SVF-doxygen/html/html/FSMPTA_8h_source.html +1 -1
  30. package/SVF-doxygen/html/html/FlowDDA_8cpp_source.html +2 -2
  31. package/SVF-doxygen/html/html/FlowDDA_8h_source.html +4 -4
  32. package/SVF-doxygen/html/html/FlowSensitiveStat_8cpp_source.html +7 -7
  33. package/SVF-doxygen/html/html/FlowSensitiveTBHC_8cpp_source.html +11 -11
  34. package/SVF-doxygen/html/html/FlowSensitiveTBHC_8h_source.html +3 -3
  35. package/SVF-doxygen/html/html/FlowSensitive_8cpp_source.html +16 -16
  36. package/SVF-doxygen/html/html/FlowSensitive_8h_source.html +6 -6
  37. package/SVF-doxygen/html/html/GEPTypeBridgeIterator_8h_source.html +1 -1
  38. package/SVF-doxygen/html/html/GenericGraph_8h_source.html +3 -3
  39. package/SVF-doxygen/html/html/Graph2Json_8cpp_source.html +2 -2
  40. package/SVF-doxygen/html/html/GraphPrinter_8h_source.html +1 -1
  41. package/SVF-doxygen/html/html/ICFG_8cpp_source.html +4 -4
  42. package/SVF-doxygen/html/html/ICFG_8h_source.html +1 -1
  43. package/SVF-doxygen/html/html/IRAnnotator_8h_source.html +1 -1
  44. package/SVF-doxygen/html/html/IRGraph_8cpp_source.html +20 -21
  45. package/SVF-doxygen/html/html/IRGraph_8h_source.html +37 -40
  46. package/SVF-doxygen/html/html/LeakChecker_8cpp_source.html +4 -4
  47. package/SVF-doxygen/html/html/MSSAMuChi_8h_source.html +2 -2
  48. package/SVF-doxygen/html/html/MTAAnnotator_8cpp_source.html +6 -6
  49. package/SVF-doxygen/html/html/MTA_8cpp_source.html +1 -1
  50. package/SVF-doxygen/html/html/MemRegion_8cpp_source.html +18 -18
  51. package/SVF-doxygen/html/html/MemRegion_8h_source.html +2 -2
  52. package/SVF-doxygen/html/html/MemSSA_8cpp_source.html +3 -3
  53. package/SVF-doxygen/html/html/MemSSA_8h_source.html +2 -2
  54. package/SVF-doxygen/html/html/OfflineConsG_8cpp_source.html +2 -2
  55. package/SVF-doxygen/html/html/OfflineConsG_8h_source.html +1 -1
  56. package/SVF-doxygen/html/html/PAGBuilderFromFile_8cpp_source.html +3 -3
  57. package/SVF-doxygen/html/html/PTACallGraph_8cpp_source.html +1 -1
  58. package/SVF-doxygen/html/html/PTACallGraph_8h_source.html +1 -1
  59. package/SVF-doxygen/html/html/PTAStat_8cpp_source.html +11 -11
  60. package/SVF-doxygen/html/html/PointerAnalysisImpl_8cpp_source.html +13 -13
  61. package/SVF-doxygen/html/html/PointerAnalysisImpl_8h_source.html +5 -5
  62. package/SVF-doxygen/html/html/PointerAnalysis_8cpp.html +1 -2
  63. package/SVF-doxygen/html/html/PointerAnalysis_8cpp_source.html +30 -33
  64. package/SVF-doxygen/html/html/PointerAnalysis_8h_source.html +31 -31
  65. package/SVF-doxygen/html/html/SVFBasicTypes_8h_source.html +1 -1
  66. package/SVF-doxygen/html/html/SVFGBuilder_8cpp_source.html +4 -4
  67. package/SVF-doxygen/html/html/SVFGBuilder_8h_source.html +1 -1
  68. package/SVF-doxygen/html/html/SVFGOPT_8cpp_source.html +9 -9
  69. package/SVF-doxygen/html/html/SVFGOPT_8h_source.html +48 -48
  70. package/SVF-doxygen/html/html/SVFG_8cpp_source.html +36 -36
  71. package/SVF-doxygen/html/html/SVFG_8h_source.html +25 -25
  72. package/SVF-doxygen/html/html/SVFIRBuilder_8cpp.html +0 -1
  73. package/SVF-doxygen/html/html/SVFIRBuilder_8cpp_source.html +5 -6
  74. package/SVF-doxygen/html/html/SVFIRBuilder_8h.html +1 -7
  75. package/SVF-doxygen/html/html/SVFIRBuilder_8h_source.html +90 -85
  76. package/SVF-doxygen/html/html/SVFIR_8cpp_source.html +70 -62
  77. package/SVF-doxygen/html/html/SVFIR_8h_source.html +168 -182
  78. package/SVF-doxygen/html/html/SVFStatements_8cpp_source.html +39 -23
  79. package/SVF-doxygen/html/html/SVFStatements_8h.html +6 -0
  80. package/SVF-doxygen/html/html/SVFStatements_8h_source.html +146 -94
  81. package/SVF-doxygen/html/html/SVFVariables_8h_source.html +2 -2
  82. package/SVF-doxygen/html/html/SaberAnnotator_8cpp_source.html +1 -1
  83. package/SVF-doxygen/html/html/SaberSVFGBuilder_8cpp_source.html +5 -5
  84. package/SVF-doxygen/html/html/SaberSVFGBuilder_8h_source.html +1 -1
  85. package/SVF-doxygen/html/html/SrcSnkDDA_8cpp_source.html +1 -1
  86. package/SVF-doxygen/html/html/SrcSnkDDA_8h_source.html +1 -1
  87. package/SVF-doxygen/html/html/TCT_8cpp_source.html +1 -1
  88. package/SVF-doxygen/html/html/TCT_8h_source.html +1 -1
  89. package/SVF-doxygen/html/html/ThreadCallGraph_8cpp_source.html +2 -2
  90. package/SVF-doxygen/html/html/TypeAnalysis_8cpp.html +1 -1
  91. package/SVF-doxygen/html/html/TypeAnalysis_8cpp_source.html +9 -9
  92. package/SVF-doxygen/html/html/TypeBasedHeapCloning_8cpp_source.html +7 -7
  93. package/SVF-doxygen/html/html/VFGEdge_8h_source.html +1 -1
  94. package/SVF-doxygen/html/html/VFGNode_8h.html +2 -0
  95. package/SVF-doxygen/html/html/VFGNode_8h_source.html +143 -126
  96. package/SVF-doxygen/html/html/VFG_8cpp_source.html +136 -129
  97. package/SVF-doxygen/html/html/VFG_8h_source.html +144 -133
  98. package/SVF-doxygen/html/html/VersionedFlowSensitiveStat_8cpp_source.html +6 -6
  99. package/SVF-doxygen/html/html/VersionedFlowSensitive_8cpp_source.html +3 -3
  100. package/SVF-doxygen/html/html/WPAPass_8cpp_source.html +4 -4
  101. package/SVF-doxygen/html/html/annotated.html +265 -261
  102. package/SVF-doxygen/html/html/classSVF_1_1ActualINSVFGNode-members.html +75 -74
  103. package/SVF-doxygen/html/html/classSVF_1_1ActualINSVFGNode.html +10 -9
  104. package/SVF-doxygen/html/html/classSVF_1_1ActualOUTSVFGNode-members.html +75 -74
  105. package/SVF-doxygen/html/html/classSVF_1_1ActualOUTSVFGNode.html +10 -9
  106. package/SVF-doxygen/html/html/classSVF_1_1ActualParmVFGNode-members.html +73 -72
  107. package/SVF-doxygen/html/html/classSVF_1_1ActualParmVFGNode.html +31 -30
  108. package/SVF-doxygen/html/html/classSVF_1_1ActualRetVFGNode-members.html +75 -74
  109. package/SVF-doxygen/html/html/classSVF_1_1ActualRetVFGNode.html +35 -34
  110. package/SVF-doxygen/html/html/classSVF_1_1AddrCGEdge-members.html +1 -1
  111. package/SVF-doxygen/html/html/classSVF_1_1AddrCGEdge.html +5 -5
  112. package/SVF-doxygen/html/html/classSVF_1_1AddrPE-members.html +42 -39
  113. package/SVF-doxygen/html/html/classSVF_1_1AddrPE.html +27 -22
  114. package/SVF-doxygen/html/html/classSVF_1_1AddrVFGNode-members.html +77 -76
  115. package/SVF-doxygen/html/html/classSVF_1_1AddrVFGNode.html +23 -22
  116. package/SVF-doxygen/html/html/classSVF_1_1AliasDDAClient.html +3 -3
  117. package/SVF-doxygen/html/html/classSVF_1_1Andersen.html +18 -18
  118. package/SVF-doxygen/html/html/classSVF_1_1AndersenBase.html +8 -8
  119. package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR.html +1 -1
  120. package/SVF-doxygen/html/html/classSVF_1_1AndersenStat.html +6 -6
  121. package/SVF-doxygen/html/html/classSVF_1_1ArgumentVFGNode-members.html +69 -68
  122. package/SVF-doxygen/html/html/classSVF_1_1ArgumentVFGNode.html +30 -29
  123. package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl.html +20 -20
  124. package/SVF-doxygen/html/html/classSVF_1_1BinaryOPPE-members.html +49 -28
  125. package/SVF-doxygen/html/html/classSVF_1_1BinaryOPPE.html +295 -34
  126. package/SVF-doxygen/html/html/classSVF_1_1BinaryOPPE.png +0 -0
  127. package/SVF-doxygen/html/html/classSVF_1_1BinaryOPVFGNode-members.html +76 -75
  128. package/SVF-doxygen/html/html/classSVF_1_1BinaryOPVFGNode.html +12 -11
  129. package/SVF-doxygen/html/html/classSVF_1_1BranchStmt-members.html +70 -22
  130. package/SVF-doxygen/html/html/classSVF_1_1BranchStmt.html +633 -89
  131. package/SVF-doxygen/html/html/classSVF_1_1BranchStmt.png +0 -0
  132. package/SVF-doxygen/html/html/classSVF_1_1BranchVFGNode-members.html +164 -0
  133. package/SVF-doxygen/html/html/classSVF_1_1BranchVFGNode.html +694 -0
  134. package/SVF-doxygen/html/html/classSVF_1_1BranchVFGNode.png +0 -0
  135. package/SVF-doxygen/html/html/classSVF_1_1CHEdge-members.html +1 -1
  136. package/SVF-doxygen/html/html/classSVF_1_1CHEdge.html +15 -15
  137. package/SVF-doxygen/html/html/classSVF_1_1CHGBuilder-members.html +100 -0
  138. package/SVF-doxygen/html/html/classSVF_1_1CHGBuilder.html +777 -0
  139. package/SVF-doxygen/html/html/classSVF_1_1CHGraph-members.html +31 -46
  140. package/SVF-doxygen/html/html/classSVF_1_1CHGraph.html +103 -651
  141. package/SVF-doxygen/html/html/classSVF_1_1CHNode.html +54 -54
  142. package/SVF-doxygen/html/html/classSVF_1_1CallCFGEdge-members.html +1 -1
  143. package/SVF-doxygen/html/html/classSVF_1_1CallCFGEdge.html +2 -2
  144. package/SVF-doxygen/html/html/classSVF_1_1CallDirSVFGEdge-members.html +1 -1
  145. package/SVF-doxygen/html/html/classSVF_1_1CallDirSVFGEdge.html +4 -4
  146. package/SVF-doxygen/html/html/classSVF_1_1CallIndSVFGEdge-members.html +1 -1
  147. package/SVF-doxygen/html/html/classSVF_1_1CallIndSVFGEdge.html +2 -2
  148. package/SVF-doxygen/html/html/classSVF_1_1CallPE-members.html +48 -45
  149. package/SVF-doxygen/html/html/classSVF_1_1CallPE.html +33 -28
  150. package/SVF-doxygen/html/html/classSVF_1_1CmpPE-members.html +49 -28
  151. package/SVF-doxygen/html/html/classSVF_1_1CmpPE.html +295 -34
  152. package/SVF-doxygen/html/html/classSVF_1_1CmpPE.png +0 -0
  153. package/SVF-doxygen/html/html/classSVF_1_1CmpVFGNode-members.html +79 -78
  154. package/SVF-doxygen/html/html/classSVF_1_1CmpVFGNode.html +13 -12
  155. package/SVF-doxygen/html/html/classSVF_1_1CommonCHGraph.html +11 -11
  156. package/SVF-doxygen/html/html/classSVF_1_1CondPTAImpl.html +6 -6
  157. package/SVF-doxygen/html/html/classSVF_1_1ConstraintEdge-members.html +1 -1
  158. package/SVF-doxygen/html/html/classSVF_1_1ConstraintEdge.html +2 -2
  159. package/SVF-doxygen/html/html/classSVF_1_1ConstraintGraph.html +90 -86
  160. package/SVF-doxygen/html/html/classSVF_1_1ContextDDA.html +7 -7
  161. package/SVF-doxygen/html/html/classSVF_1_1CopyCGEdge-members.html +1 -1
  162. package/SVF-doxygen/html/html/classSVF_1_1CopyCGEdge.html +2 -2
  163. package/SVF-doxygen/html/html/classSVF_1_1CopyPE-members.html +45 -42
  164. package/SVF-doxygen/html/html/classSVF_1_1CopyPE.html +27 -22
  165. package/SVF-doxygen/html/html/classSVF_1_1CopyVFGNode-members.html +80 -79
  166. package/SVF-doxygen/html/html/classSVF_1_1CopyVFGNode.html +11 -10
  167. package/SVF-doxygen/html/html/classSVF_1_1DCHEdge-members.html +1 -1
  168. package/SVF-doxygen/html/html/classSVF_1_1DCHEdge.html +2 -2
  169. package/SVF-doxygen/html/html/classSVF_1_1DCHGraph.html +6 -6
  170. package/SVF-doxygen/html/html/classSVF_1_1DDAClient.html +3 -3
  171. package/SVF-doxygen/html/html/classSVF_1_1DDAPass.html +7 -7
  172. package/SVF-doxygen/html/html/classSVF_1_1DDAStat.html +4 -4
  173. package/SVF-doxygen/html/html/classSVF_1_1DDAVFSolver.html +14 -14
  174. package/SVF-doxygen/html/html/classSVF_1_1DirectSVFGEdge-members.html +1 -1
  175. package/SVF-doxygen/html/html/classSVF_1_1DirectSVFGEdge.html +4 -4
  176. package/SVF-doxygen/html/html/classSVF_1_1DummyVersionPropSVFGNode-members.html +72 -71
  177. package/SVF-doxygen/html/html/classSVF_1_1DummyVersionPropSVFGNode.html +10 -9
  178. package/SVF-doxygen/html/html/classSVF_1_1ExternalPAG.html +22 -22
  179. package/SVF-doxygen/html/html/classSVF_1_1FSMPTA.html +1 -1
  180. package/SVF-doxygen/html/html/classSVF_1_1FlowDDA.html +5 -5
  181. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive.html +22 -22
  182. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveStat.html +9 -9
  183. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveTBHC.html +14 -14
  184. package/SVF-doxygen/html/html/classSVF_1_1FormalINSVFGNode-members.html +76 -75
  185. package/SVF-doxygen/html/html/classSVF_1_1FormalINSVFGNode.html +10 -9
  186. package/SVF-doxygen/html/html/classSVF_1_1FormalOUTSVFGNode-members.html +76 -75
  187. package/SVF-doxygen/html/html/classSVF_1_1FormalOUTSVFGNode.html +10 -9
  188. package/SVF-doxygen/html/html/classSVF_1_1FormalParmVFGNode-members.html +76 -75
  189. package/SVF-doxygen/html/html/classSVF_1_1FormalParmVFGNode.html +38 -37
  190. package/SVF-doxygen/html/html/classSVF_1_1FormalRetVFGNode-members.html +79 -78
  191. package/SVF-doxygen/html/html/classSVF_1_1FormalRetVFGNode.html +38 -37
  192. package/SVF-doxygen/html/html/classSVF_1_1FunptrDDAClient.html +4 -4
  193. package/SVF-doxygen/html/html/classSVF_1_1GenericEdge-members.html +1 -1
  194. package/SVF-doxygen/html/html/classSVF_1_1GenericEdge.html +11 -11
  195. package/SVF-doxygen/html/html/classSVF_1_1GenericEdge.png +0 -0
  196. package/SVF-doxygen/html/html/classSVF_1_1GenericNode.html +8 -7
  197. package/SVF-doxygen/html/html/classSVF_1_1GenericNode.png +0 -0
  198. package/SVF-doxygen/html/html/classSVF_1_1GepCGEdge-members.html +1 -1
  199. package/SVF-doxygen/html/html/classSVF_1_1GepCGEdge.html +2 -2
  200. package/SVF-doxygen/html/html/classSVF_1_1GepPE-members.html +45 -42
  201. package/SVF-doxygen/html/html/classSVF_1_1GepPE.html +22 -17
  202. package/SVF-doxygen/html/html/classSVF_1_1GepVFGNode-members.html +80 -79
  203. package/SVF-doxygen/html/html/classSVF_1_1GepVFGNode.html +23 -22
  204. package/SVF-doxygen/html/html/classSVF_1_1HareParForEdge-members.html +1 -1
  205. package/SVF-doxygen/html/html/classSVF_1_1HareParForEdge.html +2 -2
  206. package/SVF-doxygen/html/html/classSVF_1_1ICFGEdge-members.html +1 -1
  207. package/SVF-doxygen/html/html/classSVF_1_1ICFGEdge.html +2 -2
  208. package/SVF-doxygen/html/html/classSVF_1_1ICFGPrinter.html +4 -4
  209. package/SVF-doxygen/html/html/classSVF_1_1IRGraph-members.html +36 -37
  210. package/SVF-doxygen/html/html/classSVF_1_1IRGraph.html +149 -163
  211. package/SVF-doxygen/html/html/classSVF_1_1IndirectSVFGEdge-members.html +1 -1
  212. package/SVF-doxygen/html/html/classSVF_1_1IndirectSVFGEdge.html +2 -2
  213. package/SVF-doxygen/html/html/classSVF_1_1InterMSSAPHISVFGNode-members.html +88 -87
  214. package/SVF-doxygen/html/html/classSVF_1_1InterMSSAPHISVFGNode.html +10 -9
  215. package/SVF-doxygen/html/html/classSVF_1_1InterPHIVFGNode-members.html +86 -85
  216. package/SVF-doxygen/html/html/classSVF_1_1InterPHIVFGNode.html +46 -45
  217. package/SVF-doxygen/html/html/classSVF_1_1IntraCFGEdge-members.html +1 -1
  218. package/SVF-doxygen/html/html/classSVF_1_1IntraCFGEdge.html +2 -2
  219. package/SVF-doxygen/html/html/classSVF_1_1IntraDirSVFGEdge-members.html +1 -1
  220. package/SVF-doxygen/html/html/classSVF_1_1IntraDirSVFGEdge.html +4 -4
  221. package/SVF-doxygen/html/html/classSVF_1_1IntraIndSVFGEdge-members.html +1 -1
  222. package/SVF-doxygen/html/html/classSVF_1_1IntraIndSVFGEdge.html +2 -2
  223. package/SVF-doxygen/html/html/classSVF_1_1IntraMSSAPHISVFGNode-members.html +85 -84
  224. package/SVF-doxygen/html/html/classSVF_1_1IntraMSSAPHISVFGNode.html +10 -9
  225. package/SVF-doxygen/html/html/classSVF_1_1IntraPHIVFGNode-members.html +84 -83
  226. package/SVF-doxygen/html/html/classSVF_1_1IntraPHIVFGNode.html +33 -32
  227. package/SVF-doxygen/html/html/classSVF_1_1LeakChecker.html +5 -5
  228. package/SVF-doxygen/html/html/classSVF_1_1LoadCGEdge-members.html +1 -1
  229. package/SVF-doxygen/html/html/classSVF_1_1LoadCGEdge.html +2 -2
  230. package/SVF-doxygen/html/html/classSVF_1_1LoadPE-members.html +45 -42
  231. package/SVF-doxygen/html/html/classSVF_1_1LoadPE.html +27 -22
  232. package/SVF-doxygen/html/html/classSVF_1_1LoadVFGNode-members.html +80 -79
  233. package/SVF-doxygen/html/html/classSVF_1_1LoadVFGNode.html +11 -10
  234. package/SVF-doxygen/html/html/classSVF_1_1MRGenerator.html +24 -24
  235. package/SVF-doxygen/html/html/classSVF_1_1MRSVFGNode-members.html +70 -69
  236. package/SVF-doxygen/html/html/classSVF_1_1MRSVFGNode.html +10 -9
  237. package/SVF-doxygen/html/html/classSVF_1_1MSSAPHISVFGNode-members.html +81 -80
  238. package/SVF-doxygen/html/html/classSVF_1_1MSSAPHISVFGNode.html +10 -9
  239. package/SVF-doxygen/html/html/classSVF_1_1MTA.html +1 -1
  240. package/SVF-doxygen/html/html/classSVF_1_1MTAAnnotator.html +6 -6
  241. package/SVF-doxygen/html/html/classSVF_1_1MTASVFGBuilder.html +2 -2
  242. package/SVF-doxygen/html/html/classSVF_1_1MemSSA.html +9 -9
  243. package/SVF-doxygen/html/html/classSVF_1_1MultiOpndStmt-members.html +143 -0
  244. package/SVF-doxygen/html/html/classSVF_1_1MultiOpndStmt.html +669 -0
  245. package/SVF-doxygen/html/html/classSVF_1_1MultiOpndStmt.png +0 -0
  246. package/SVF-doxygen/html/html/classSVF_1_1NormalGepCGEdge-members.html +1 -1
  247. package/SVF-doxygen/html/html/classSVF_1_1NormalGepCGEdge.html +2 -2
  248. package/SVF-doxygen/html/html/classSVF_1_1NormalGepPE-members.html +47 -44
  249. package/SVF-doxygen/html/html/classSVF_1_1NormalGepPE.html +34 -29
  250. package/SVF-doxygen/html/html/classSVF_1_1NullPtrVFGNode-members.html +66 -65
  251. package/SVF-doxygen/html/html/classSVF_1_1NullPtrVFGNode.html +37 -36
  252. package/SVF-doxygen/html/html/classSVF_1_1OfflineConsG.html +6 -6
  253. package/SVF-doxygen/html/html/classSVF_1_1PAGBuilderFromFile.html +17 -16
  254. package/SVF-doxygen/html/html/classSVF_1_1PHIVFGNode-members.html +77 -76
  255. package/SVF-doxygen/html/html/classSVF_1_1PHIVFGNode.html +44 -43
  256. package/SVF-doxygen/html/html/classSVF_1_1PTACallGraphEdge-members.html +1 -1
  257. package/SVF-doxygen/html/html/classSVF_1_1PTACallGraphEdge.html +2 -2
  258. package/SVF-doxygen/html/html/classSVF_1_1PTAStat.html +11 -11
  259. package/SVF-doxygen/html/html/classSVF_1_1PhiPE-members.html +153 -0
  260. package/SVF-doxygen/html/html/classSVF_1_1PhiPE.html +717 -0
  261. package/SVF-doxygen/html/html/classSVF_1_1PhiPE.png +0 -0
  262. package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.html +77 -79
  263. package/SVF-doxygen/html/html/classSVF_1_1ProgSlice.html +2 -2
  264. package/SVF-doxygen/html/html/classSVF_1_1RetCFGEdge-members.html +1 -1
  265. package/SVF-doxygen/html/html/classSVF_1_1RetCFGEdge.html +2 -2
  266. package/SVF-doxygen/html/html/classSVF_1_1RetDirSVFGEdge-members.html +1 -1
  267. package/SVF-doxygen/html/html/classSVF_1_1RetDirSVFGEdge.html +4 -4
  268. package/SVF-doxygen/html/html/classSVF_1_1RetIndSVFGEdge-members.html +1 -1
  269. package/SVF-doxygen/html/html/classSVF_1_1RetIndSVFGEdge.html +2 -2
  270. package/SVF-doxygen/html/html/classSVF_1_1RetPE-members.html +48 -45
  271. package/SVF-doxygen/html/html/classSVF_1_1RetPE.html +33 -28
  272. package/SVF-doxygen/html/html/classSVF_1_1SVFG-members.html +90 -86
  273. package/SVF-doxygen/html/html/classSVF_1_1SVFG.html +81 -71
  274. package/SVF-doxygen/html/html/classSVF_1_1SVFGBuilder.html +16 -16
  275. package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT-members.html +105 -101
  276. package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT.html +149 -138
  277. package/SVF-doxygen/html/html/classSVF_1_1SVFIR-members.html +106 -119
  278. package/SVF-doxygen/html/html/classSVF_1_1SVFIR.html +621 -1090
  279. package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder-members.html +14 -12
  280. package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder.html +401 -288
  281. package/SVF-doxygen/html/html/classSVF_1_1SVFStmt-members.html +41 -35
  282. package/SVF-doxygen/html/html/classSVF_1_1SVFStmt.html +174 -37
  283. package/SVF-doxygen/html/html/classSVF_1_1SVFStmt.png +0 -0
  284. package/SVF-doxygen/html/html/classSVF_1_1SaberAnnotator.html +1 -1
  285. package/SVF-doxygen/html/html/classSVF_1_1SaberSVFGBuilder.html +14 -14
  286. package/SVF-doxygen/html/html/classSVF_1_1SrcSnkDDA.html +2 -2
  287. package/SVF-doxygen/html/html/classSVF_1_1StmtVFGNode-members.html +76 -75
  288. package/SVF-doxygen/html/html/classSVF_1_1StmtVFGNode.html +14 -13
  289. package/SVF-doxygen/html/html/classSVF_1_1StoreCGEdge-members.html +1 -1
  290. package/SVF-doxygen/html/html/classSVF_1_1StoreCGEdge.html +2 -2
  291. package/SVF-doxygen/html/html/classSVF_1_1StorePE-members.html +45 -42
  292. package/SVF-doxygen/html/html/classSVF_1_1StorePE.html +27 -22
  293. package/SVF-doxygen/html/html/classSVF_1_1StoreVFGNode-members.html +80 -79
  294. package/SVF-doxygen/html/html/classSVF_1_1StoreVFGNode.html +11 -10
  295. package/SVF-doxygen/html/html/classSVF_1_1TCTEdge-members.html +1 -1
  296. package/SVF-doxygen/html/html/classSVF_1_1TCTEdge.html +2 -2
  297. package/SVF-doxygen/html/html/classSVF_1_1TDForkPE-members.html +49 -46
  298. package/SVF-doxygen/html/html/classSVF_1_1TDForkPE.html +22 -17
  299. package/SVF-doxygen/html/html/classSVF_1_1TDJoinPE-members.html +49 -46
  300. package/SVF-doxygen/html/html/classSVF_1_1TDJoinPE.html +22 -17
  301. package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraph.html +2 -2
  302. package/SVF-doxygen/html/html/classSVF_1_1ThreadForkEdge-members.html +1 -1
  303. package/SVF-doxygen/html/html/classSVF_1_1ThreadForkEdge.html +2 -2
  304. package/SVF-doxygen/html/html/classSVF_1_1ThreadJoinEdge-members.html +1 -1
  305. package/SVF-doxygen/html/html/classSVF_1_1ThreadJoinEdge.html +2 -2
  306. package/SVF-doxygen/html/html/classSVF_1_1ThreadMHPIndSVFGEdge-members.html +1 -1
  307. package/SVF-doxygen/html/html/classSVF_1_1ThreadMHPIndSVFGEdge.html +2 -2
  308. package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis.html +12 -12
  309. package/SVF-doxygen/html/html/classSVF_1_1TypeBasedHeapCloning.html +9 -9
  310. package/SVF-doxygen/html/html/classSVF_1_1UnaryOPPE-members.html +56 -43
  311. package/SVF-doxygen/html/html/classSVF_1_1UnaryOPPE.html +329 -30
  312. package/SVF-doxygen/html/html/classSVF_1_1UnaryOPVFGNode-members.html +34 -32
  313. package/SVF-doxygen/html/html/classSVF_1_1UnaryOPVFGNode.html +63 -30
  314. package/SVF-doxygen/html/html/classSVF_1_1VFG-members.html +52 -48
  315. package/SVF-doxygen/html/html/classSVF_1_1VFG.html +515 -441
  316. package/SVF-doxygen/html/html/classSVF_1_1VFGEdge-members.html +1 -1
  317. package/SVF-doxygen/html/html/classSVF_1_1VFGEdge.html +4 -4
  318. package/SVF-doxygen/html/html/classSVF_1_1VFGNode-members.html +65 -64
  319. package/SVF-doxygen/html/html/classSVF_1_1VFGNode.html +22 -18
  320. package/SVF-doxygen/html/html/classSVF_1_1VFGNode.png +0 -0
  321. package/SVF-doxygen/html/html/classSVF_1_1VariantGepCGEdge-members.html +1 -1
  322. package/SVF-doxygen/html/html/classSVF_1_1VariantGepCGEdge.html +2 -2
  323. package/SVF-doxygen/html/html/classSVF_1_1VariantGepPE-members.html +47 -44
  324. package/SVF-doxygen/html/html/classSVF_1_1VariantGepPE.html +28 -23
  325. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive.html +11 -11
  326. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitiveStat.html +7 -7
  327. package/SVF-doxygen/html/html/classSVF_1_1WPAPass.html +8 -8
  328. package/SVF-doxygen/html/html/classes.html +95 -94
  329. package/SVF-doxygen/html/html/dda_8cpp_source.html +1 -1
  330. package/SVF-doxygen/html/html/dir_1870ebf480d659cc38d2dd7ac3aa8993.html +2 -2
  331. package/SVF-doxygen/html/html/dir_5840dc76920ee0f379cd88b55fa041fd.html +1 -1
  332. package/SVF-doxygen/html/html/dir_770a542efe75a1b68c109cb4e4290224.html +1 -3
  333. package/SVF-doxygen/html/html/dir_fa02919a30fec2d2c2d591b4d920d648.html +2 -2
  334. package/SVF-doxygen/html/html/files.html +18 -19
  335. package/SVF-doxygen/html/html/functions_0x7e.html +0 -3
  336. package/SVF-doxygen/html/html/functions_a.html +35 -36
  337. package/SVF-doxygen/html/html/functions_b.html +24 -17
  338. package/SVF-doxygen/html/html/functions_c.html +44 -43
  339. package/SVF-doxygen/html/html/functions_d.html +0 -3
  340. package/SVF-doxygen/html/html/functions_e.html +7 -9
  341. package/SVF-doxygen/html/html/functions_eval_b.html +4 -0
  342. package/SVF-doxygen/html/html/functions_eval_p.html +3 -0
  343. package/SVF-doxygen/html/html/functions_f.html +6 -15
  344. package/SVF-doxygen/html/html/functions_func.html +40 -38
  345. package/SVF-doxygen/html/html/functions_func_0x7e.html +0 -3
  346. package/SVF-doxygen/html/html/functions_func_b.html +14 -8
  347. package/SVF-doxygen/html/html/functions_func_c.html +32 -28
  348. package/SVF-doxygen/html/html/functions_func_d.html +0 -3
  349. package/SVF-doxygen/html/html/functions_func_e.html +0 -3
  350. package/SVF-doxygen/html/html/functions_func_g.html +92 -60
  351. package/SVF-doxygen/html/html/functions_func_h.html +3 -9
  352. package/SVF-doxygen/html/html/functions_func_i.html +12 -16
  353. package/SVF-doxygen/html/html/functions_func_m.html +6 -0
  354. package/SVF-doxygen/html/html/functions_func_o.html +11 -4
  355. package/SVF-doxygen/html/html/functions_func_p.html +6 -6
  356. package/SVF-doxygen/html/html/functions_func_r.html +3 -4
  357. package/SVF-doxygen/html/html/functions_func_s.html +6 -9
  358. package/SVF-doxygen/html/html/functions_func_t.html +14 -11
  359. package/SVF-doxygen/html/html/functions_g.html +91 -59
  360. package/SVF-doxygen/html/html/functions_h.html +2 -11
  361. package/SVF-doxygen/html/html/functions_i.html +12 -16
  362. package/SVF-doxygen/html/html/functions_l.html +6 -6
  363. package/SVF-doxygen/html/html/functions_m.html +9 -0
  364. package/SVF-doxygen/html/html/functions_n.html +6 -6
  365. package/SVF-doxygen/html/html/functions_o.html +31 -16
  366. package/SVF-doxygen/html/html/functions_p.html +23 -18
  367. package/SVF-doxygen/html/html/functions_r.html +4 -8
  368. package/SVF-doxygen/html/html/functions_rela.html +3 -0
  369. package/SVF-doxygen/html/html/functions_s.html +14 -16
  370. package/SVF-doxygen/html/html/functions_t.html +18 -15
  371. package/SVF-doxygen/html/html/functions_type_b.html +0 -6
  372. package/SVF-doxygen/html/html/functions_type_c.html +2 -7
  373. package/SVF-doxygen/html/html/functions_type_o.html +3 -0
  374. package/SVF-doxygen/html/html/functions_type_p.html +4 -1
  375. package/SVF-doxygen/html/html/functions_type_u.html +0 -6
  376. package/SVF-doxygen/html/html/functions_type_v.html +3 -0
  377. package/SVF-doxygen/html/html/functions_type_w.html +1 -0
  378. package/SVF-doxygen/html/html/functions_u.html +4 -13
  379. package/SVF-doxygen/html/html/functions_v.html +8 -5
  380. package/SVF-doxygen/html/html/functions_vars_a.html +0 -3
  381. package/SVF-doxygen/html/html/functions_vars_b.html +6 -3
  382. package/SVF-doxygen/html/html/functions_vars_c.html +5 -4
  383. package/SVF-doxygen/html/html/functions_vars_e.html +1 -2
  384. package/SVF-doxygen/html/html/functions_vars_f.html +0 -9
  385. package/SVF-doxygen/html/html/functions_vars_h.html +0 -3
  386. package/SVF-doxygen/html/html/functions_vars_m.html +3 -0
  387. package/SVF-doxygen/html/html/functions_vars_o.html +8 -3
  388. package/SVF-doxygen/html/html/functions_vars_p.html +3 -0
  389. package/SVF-doxygen/html/html/functions_vars_r.html +0 -3
  390. package/SVF-doxygen/html/html/functions_vars_s.html +3 -0
  391. package/SVF-doxygen/html/html/functions_vars_u.html +0 -3
  392. package/SVF-doxygen/html/html/functions_vars_v.html +3 -3
  393. package/SVF-doxygen/html/html/functions_w.html +9 -4
  394. package/SVF-doxygen/html/html/globals_d.html +0 -4
  395. package/SVF-doxygen/html/html/globals_e.html +6 -9
  396. package/SVF-doxygen/html/html/globals_func_d.html +0 -3
  397. package/SVF-doxygen/html/html/globals_func_e.html +6 -9
  398. package/SVF-doxygen/html/html/globals_func_g.html +2 -5
  399. package/SVF-doxygen/html/html/globals_g.html +0 -3
  400. package/SVF-doxygen/html/html/globals_o.html +0 -9
  401. package/SVF-doxygen/html/html/globals_p.html +1 -1
  402. package/SVF-doxygen/html/html/globals_r.html +3 -3
  403. package/SVF-doxygen/html/html/globals_s.html +3 -3
  404. package/SVF-doxygen/html/html/globals_vars.html +2 -5
  405. package/SVF-doxygen/html/html/globals_z.html +1 -1
  406. package/SVF-doxygen/html/html/hierarchy.html +105 -101
  407. package/SVF-doxygen/html/html/menudata.js +0 -1
  408. package/SVF-doxygen/html/html/mta_8cpp_source.html +1 -1
  409. package/SVF-doxygen/html/html/namespaceSVF.html +27 -37
  410. package/SVF-doxygen/html/html/namespacemembers_p.html +0 -3
  411. package/SVF-doxygen/html/html/namespacemembers_type_p.html +0 -3
  412. package/SVF-doxygen/html/html/saber_8cpp_source.html +1 -1
  413. package/SVF-doxygen/html/html/search/all_1.js +20 -21
  414. package/SVF-doxygen/html/html/search/all_10.js +11 -10
  415. package/SVF-doxygen/html/html/search/all_12.js +6 -7
  416. package/SVF-doxygen/html/html/search/all_13.js +13 -13
  417. package/SVF-doxygen/html/html/search/all_14.js +3 -3
  418. package/SVF-doxygen/html/html/search/all_15.js +2 -4
  419. package/SVF-doxygen/html/html/search/all_16.js +2 -2
  420. package/SVF-doxygen/html/html/search/all_17.js +1 -1
  421. package/SVF-doxygen/html/html/search/all_1a.js +1 -1
  422. package/SVF-doxygen/html/html/search/all_1b.js +0 -1
  423. package/SVF-doxygen/html/html/search/all_2.js +13 -10
  424. package/SVF-doxygen/html/html/search/all_3.js +15 -15
  425. package/SVF-doxygen/html/html/search/all_4.js +2 -4
  426. package/SVF-doxygen/html/html/search/all_5.js +3 -6
  427. package/SVF-doxygen/html/html/search/all_6.js +1 -4
  428. package/SVF-doxygen/html/html/search/all_7.js +34 -34
  429. package/SVF-doxygen/html/html/search/all_8.js +2 -5
  430. package/SVF-doxygen/html/html/search/all_9.js +4 -5
  431. package/SVF-doxygen/html/html/search/all_b.js +1 -1
  432. package/SVF-doxygen/html/html/search/all_c.js +3 -3
  433. package/SVF-doxygen/html/html/search/all_d.js +6 -3
  434. package/SVF-doxygen/html/html/search/all_e.js +6 -6
  435. package/SVF-doxygen/html/html/search/all_f.js +7 -8
  436. package/SVF-doxygen/html/html/search/classes_1.js +2 -0
  437. package/SVF-doxygen/html/html/search/classes_2.js +1 -0
  438. package/SVF-doxygen/html/html/search/classes_4.js +1 -2
  439. package/SVF-doxygen/html/html/search/classes_a.js +1 -0
  440. package/SVF-doxygen/html/html/search/classes_d.js +1 -0
  441. package/SVF-doxygen/html/html/search/enumvalues_1.js +1 -0
  442. package/SVF-doxygen/html/html/search/enumvalues_d.js +1 -0
  443. package/SVF-doxygen/html/html/search/files_2.js +2 -1
  444. package/SVF-doxygen/html/html/search/files_4.js +1 -3
  445. package/SVF-doxygen/html/html/search/functions_0.js +20 -20
  446. package/SVF-doxygen/html/html/search/functions_1.js +10 -8
  447. package/SVF-doxygen/html/html/search/functions_10.js +2 -3
  448. package/SVF-doxygen/html/html/search/functions_11.js +1 -1
  449. package/SVF-doxygen/html/html/search/functions_12.js +1 -1
  450. package/SVF-doxygen/html/html/search/functions_13.js +1 -1
  451. package/SVF-doxygen/html/html/search/functions_16.js +0 -1
  452. package/SVF-doxygen/html/html/search/functions_2.js +8 -8
  453. package/SVF-doxygen/html/html/search/functions_3.js +2 -4
  454. package/SVF-doxygen/html/html/search/functions_4.js +0 -2
  455. package/SVF-doxygen/html/html/search/functions_6.js +34 -34
  456. package/SVF-doxygen/html/html/search/functions_7.js +2 -4
  457. package/SVF-doxygen/html/html/search/functions_8.js +3 -4
  458. package/SVF-doxygen/html/html/search/functions_b.js +2 -0
  459. package/SVF-doxygen/html/html/search/functions_d.js +4 -6
  460. package/SVF-doxygen/html/html/search/functions_e.js +1 -1
  461. package/SVF-doxygen/html/html/search/functions_f.js +2 -2
  462. package/SVF-doxygen/html/html/search/related_0.js +1 -2
  463. package/SVF-doxygen/html/html/search/related_1.js +2 -1
  464. package/SVF-doxygen/html/html/search/related_2.js +1 -1
  465. package/SVF-doxygen/html/html/search/related_3.js +1 -2
  466. package/SVF-doxygen/html/html/search/related_4.js +2 -1
  467. package/SVF-doxygen/html/html/search/related_5.js +1 -4
  468. package/SVF-doxygen/html/html/search/related_6.js +4 -1
  469. package/SVF-doxygen/html/html/search/related_7.js +1 -5
  470. package/SVF-doxygen/html/html/search/related_8.js +5 -2
  471. package/SVF-doxygen/html/html/search/related_9.js +2 -1
  472. package/SVF-doxygen/html/html/search/related_a.html +26 -0
  473. package/SVF-doxygen/html/html/search/related_a.js +4 -0
  474. package/SVF-doxygen/html/html/search/searchdata.js +1 -1
  475. package/SVF-doxygen/html/html/search/typedefs_1.js +0 -2
  476. package/SVF-doxygen/html/html/search/typedefs_13.js +0 -2
  477. package/SVF-doxygen/html/html/search/typedefs_14.js +1 -0
  478. package/SVF-doxygen/html/html/search/typedefs_15.js +1 -1
  479. package/SVF-doxygen/html/html/search/typedefs_2.js +1 -3
  480. package/SVF-doxygen/html/html/search/typedefs_d.js +2 -2
  481. package/SVF-doxygen/html/html/search/typedefs_e.js +1 -0
  482. package/SVF-doxygen/html/html/search/typedefs_f.js +2 -2
  483. package/SVF-doxygen/html/html/search/variables_1.js +0 -1
  484. package/SVF-doxygen/html/html/search/variables_10.js +2 -1
  485. package/SVF-doxygen/html/html/search/variables_12.js +0 -1
  486. package/SVF-doxygen/html/html/search/variables_13.js +2 -1
  487. package/SVF-doxygen/html/html/search/variables_14.js +1 -1
  488. package/SVF-doxygen/html/html/search/variables_15.js +1 -2
  489. package/SVF-doxygen/html/html/search/variables_16.js +1 -1
  490. package/SVF-doxygen/html/html/search/variables_1a.js +1 -1
  491. package/SVF-doxygen/html/html/search/variables_2.js +2 -1
  492. package/SVF-doxygen/html/html/search/variables_3.js +2 -2
  493. package/SVF-doxygen/html/html/search/variables_4.js +0 -1
  494. package/SVF-doxygen/html/html/search/variables_5.js +1 -1
  495. package/SVF-doxygen/html/html/search/variables_6.js +1 -4
  496. package/SVF-doxygen/html/html/search/variables_8.js +0 -1
  497. package/SVF-doxygen/html/html/search/variables_b.js +1 -1
  498. package/SVF-doxygen/html/html/search/variables_d.js +2 -1
  499. package/SVF-doxygen/html/html/search/variables_e.js +1 -1
  500. package/SVF-doxygen/html/html/search/variables_f.js +2 -1
  501. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01CHGraph_01_5_01_4.html +14 -14
  502. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01ConstraintGraph_01_5_01_4.html +16 -16
  503. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01ICFG_01_5_01_4.html +1 -1
  504. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01IRGraph_01_5_01_4.html +18 -18
  505. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01SVFG_01_5_01_4.html +11 -11
  506. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01VFG_01_5_01_4.html +29 -29
  507. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01Inverse_3_01SVF_1_1CHNode_01_5_01_4_01_4.html +2 -2
  508. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01Inverse_3_01SVF_1_1SVFVar_01_5_01_4_01_4.html +1 -1
  509. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01Inverse_3_01SVF_1_1VFGNode_01_5_01_4_01_4.html +1 -1
  510. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1CHGraph_01_5_01_4.html +3 -3
  511. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1CHNode_01_5_01_4.html +2 -2
  512. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1IRGraph_01_5_01_4.html +2 -2
  513. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1SVFVar_01_5_01_4.html +1 -1
  514. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1VFGNode_01_5_01_4.html +1 -1
  515. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1VFG_01_5_01_4.html +2 -2
  516. package/SVF-doxygen/html/html/svf-ex_8cpp.html +5 -6
  517. package/SVF-doxygen/html/html/svf-ex_8cpp_source.html +5 -5
  518. package/SVF-doxygen/html/html/wpa_8cpp_source.html +1 -1
  519. package/include/{SVF-FE → Graphs}/CHG.h +37 -20
  520. package/include/Graphs/GenericGraph.h +1 -1
  521. package/include/Graphs/IRGraph.h +6 -15
  522. package/include/Graphs/SVFGOPT.h +3 -2
  523. package/include/Graphs/VFG.h +42 -41
  524. package/include/Graphs/VFGNode.h +60 -7
  525. package/include/MemoryModel/SVFIR.h +93 -159
  526. package/include/MemoryModel/SVFStatements.h +253 -21
  527. package/include/SVF-FE/CHGBuilder.h +69 -0
  528. package/include/SVF-FE/DCHG.h +1 -1
  529. package/include/SVF-FE/SVFIRBuilder.h +21 -8
  530. package/lib/Graphs/CHG.cpp +280 -0
  531. package/lib/Graphs/ConsG.cpp +9 -0
  532. package/lib/Graphs/IRGraph.cpp +23 -8
  533. package/lib/Graphs/VFG.cpp +45 -19
  534. package/lib/MSSA/SVFGBuilder.cpp +3 -2
  535. package/lib/MemoryModel/PAGBuilderFromFile.cpp +9 -3
  536. package/lib/MemoryModel/PointerAnalysis.cpp +3 -5
  537. package/lib/MemoryModel/SVFIR.cpp +68 -12
  538. package/lib/MemoryModel/SVFStatements.cpp +65 -4
  539. package/lib/SVF-FE/{CHG.cpp → CHGBuilder.cpp} +82 -324
  540. package/lib/SVF-FE/SVFIRBuilder.cpp +58 -57
  541. package/lib/WPA/Andersen.cpp +1 -1
  542. package/lib/WPA/TypeAnalysis.cpp +1 -1
  543. package/package.json +1 -1
  544. package/tools/Example/svf-ex.cpp +1 -1
  545. package/include/Graphs/ExternalPAG.h +0 -147
  546. package/include/SVF-FE/CommonCHG.h +0 -49
  547. package/lib/Graphs/ExternalPAG.cpp +0 -623
@@ -493,7 +493,7 @@ Additional Inherited Members</h2></td></tr>
493
493
  <p>Destructor. </p>
494
494
 
495
495
  <p class="definition">Definition at line <a class="el" href="ConsG_8h_source.html#l00100">100</a> of file <a class="el" href="ConsG_8h_source.html">ConsG.h</a>.</p>
496
- <div class="fragment"><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; {</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <a class="code" href="classSVF_1_1ConstraintGraph.html#a77ba38543b1ee164f1ae95589d5dbc44">destroy</a>();</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; }</div><div class="ttc" id="classSVF_1_1ConstraintGraph_html_a77ba38543b1ee164f1ae95589d5dbc44"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a77ba38543b1ee164f1ae95589d5dbc44">SVF::ConstraintGraph::destroy</a></div><div class="ttdeci">void destroy()</div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8cpp_source.html#l00137">ConsG.cpp:137</a></div></div>
496
+ <div class="fragment"><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; {</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <a class="code" href="classSVF_1_1ConstraintGraph.html#a77ba38543b1ee164f1ae95589d5dbc44">destroy</a>();</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; }</div><div class="ttc" id="classSVF_1_1ConstraintGraph_html_a77ba38543b1ee164f1ae95589d5dbc44"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a77ba38543b1ee164f1ae95589d5dbc44">SVF::ConstraintGraph::destroy</a></div><div class="ttdeci">void destroy()</div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8cpp_source.html#l00146">ConsG.cpp:146</a></div></div>
497
497
  </div><!-- fragment -->
498
498
  </div>
499
499
  </div>
@@ -528,8 +528,8 @@ Additional Inherited Members</h2></td></tr>
528
528
  <p>Add Address edge</p>
529
529
  <p>Add an address edge </p>
530
530
 
531
- <p class="definition">Definition at line <a class="el" href="ConsG_8cpp_source.html#l00156">156</a> of file <a class="el" href="ConsG_8cpp_source.html">ConsG.cpp</a>.</p>
532
- <div class="fragment"><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;{</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <a class="code" href="classSVF_1_1ConstraintNode.html">ConstraintNode</a>* srcNode = <a class="code" href="classSVF_1_1ConstraintGraph.html#a26722666cc8f2fce61bed73f086a0e87">getConstraintNode</a>(src);</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <a class="code" href="classSVF_1_1ConstraintNode.html">ConstraintNode</a>* dstNode = <a class="code" href="classSVF_1_1ConstraintGraph.html#a26722666cc8f2fce61bed73f086a0e87">getConstraintNode</a>(dst);</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1ConstraintGraph.html#a5f57823a4918f6c6bfee9c18beddda51">hasEdge</a>(srcNode,dstNode,<a class="code" href="classSVF_1_1ConstraintEdge.html#a663af27955ba0c545f34fa1f076b7375aed68bc43e8aae49e8590e140eb0ffaf3">ConstraintEdge::Addr</a>))</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <a class="code" href="classSVF_1_1AddrCGEdge.html">AddrCGEdge</a>* edge = <span class="keyword">new</span> <a class="code" href="classSVF_1_1AddrCGEdge.html">AddrCGEdge</a>(srcNode, dstNode, <a class="code" href="classSVF_1_1ConstraintGraph.html#ac246dc91562d4b1e168b7c39b2c2720f">edgeIndex</a>++);</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="keywordtype">bool</span> added = <a class="code" href="classSVF_1_1ConstraintGraph.html#a5bbd6df25027d26911f5d8d6a10881dc">AddrCGEdgeSet</a>.insert(edge).second;</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(added &amp;&amp; <span class="stringliteral">&quot;not added??&quot;</span>);</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; srcNode-&gt;<a class="code" href="classSVF_1_1ConstraintNode.html#af129941c522dbc1b0fe94f84eea0d97a">addOutgoingAddrEdge</a>(edge);</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; dstNode-&gt;<a class="code" href="classSVF_1_1ConstraintNode.html#aeff08dd512d0a97fb14069b37386e9fe">addIncomingAddrEdge</a>(edge);</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <span class="keywordflow">return</span> edge;</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;}</div><div class="ttc" id="classSVF_1_1ConstraintGraph_html_a5f57823a4918f6c6bfee9c18beddda51"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a5f57823a4918f6c6bfee9c18beddda51">SVF::ConstraintGraph::hasEdge</a></div><div class="ttdeci">bool hasEdge(ConstraintNode *src, ConstraintNode *dst, ConstraintEdge::ConstraintEdgeK kind)</div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8h_source.html#l00128">ConsG.h:128</a></div></div>
531
+ <p class="definition">Definition at line <a class="el" href="ConsG_8cpp_source.html#l00165">165</a> of file <a class="el" href="ConsG_8cpp_source.html">ConsG.cpp</a>.</p>
532
+ <div class="fragment"><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;{</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <a class="code" href="classSVF_1_1ConstraintNode.html">ConstraintNode</a>* srcNode = <a class="code" href="classSVF_1_1ConstraintGraph.html#a26722666cc8f2fce61bed73f086a0e87">getConstraintNode</a>(src);</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; <a class="code" href="classSVF_1_1ConstraintNode.html">ConstraintNode</a>* dstNode = <a class="code" href="classSVF_1_1ConstraintGraph.html#a26722666cc8f2fce61bed73f086a0e87">getConstraintNode</a>(dst);</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1ConstraintGraph.html#a5f57823a4918f6c6bfee9c18beddda51">hasEdge</a>(srcNode,dstNode,<a class="code" href="classSVF_1_1ConstraintEdge.html#a663af27955ba0c545f34fa1f076b7375aed68bc43e8aae49e8590e140eb0ffaf3">ConstraintEdge::Addr</a>))</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <a class="code" href="classSVF_1_1AddrCGEdge.html">AddrCGEdge</a>* edge = <span class="keyword">new</span> <a class="code" href="classSVF_1_1AddrCGEdge.html">AddrCGEdge</a>(srcNode, dstNode, <a class="code" href="classSVF_1_1ConstraintGraph.html#ac246dc91562d4b1e168b7c39b2c2720f">edgeIndex</a>++);</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <span class="keywordtype">bool</span> added = <a class="code" href="classSVF_1_1ConstraintGraph.html#a5bbd6df25027d26911f5d8d6a10881dc">AddrCGEdgeSet</a>.insert(edge).second;</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(added &amp;&amp; <span class="stringliteral">&quot;not added??&quot;</span>);</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; srcNode-&gt;<a class="code" href="classSVF_1_1ConstraintNode.html#af129941c522dbc1b0fe94f84eea0d97a">addOutgoingAddrEdge</a>(edge);</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; dstNode-&gt;<a class="code" href="classSVF_1_1ConstraintNode.html#aeff08dd512d0a97fb14069b37386e9fe">addIncomingAddrEdge</a>(edge);</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <span class="keywordflow">return</span> edge;</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160;}</div><div class="ttc" id="classSVF_1_1ConstraintGraph_html_a5f57823a4918f6c6bfee9c18beddda51"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a5f57823a4918f6c6bfee9c18beddda51">SVF::ConstraintGraph::hasEdge</a></div><div class="ttdeci">bool hasEdge(ConstraintNode *src, ConstraintNode *dst, ConstraintEdge::ConstraintEdgeK kind)</div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8h_source.html#l00128">ConsG.h:128</a></div></div>
533
533
  <div class="ttc" id="classSVF_1_1ConstraintGraph_html_a26722666cc8f2fce61bed73f086a0e87"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a26722666cc8f2fce61bed73f086a0e87">SVF::ConstraintGraph::getConstraintNode</a></div><div class="ttdeci">ConstraintNode * getConstraintNode(NodeID id) const</div><div class="ttdoc">Get/add/remove constraint node. </div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8h_source.html#l00107">ConsG.h:107</a></div></div>
534
534
  <div class="ttc" id="classSVF_1_1ConstraintNode_html_aeff08dd512d0a97fb14069b37386e9fe"><div class="ttname"><a href="classSVF_1_1ConstraintNode.html#aeff08dd512d0a97fb14069b37386e9fe">SVF::ConstraintNode::addIncomingAddrEdge</a></div><div class="ttdeci">void addIncomingAddrEdge(AddrCGEdge *inEdge)</div><div class="ttdef"><b>Definition:</b> <a href="ConsGNode_8h_source.html#l00315">ConsGNode.h:315</a></div></div>
535
535
  <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>
@@ -610,8 +610,8 @@ Additional Inherited Members</h2></td></tr>
610
610
  <p>Add Copy edge. </p>
611
611
  <p>Add Copy edge </p>
612
612
 
613
- <p class="definition">Definition at line <a class="el" href="ConsG_8cpp_source.html#l00173">173</a> of file <a class="el" href="ConsG_8cpp_source.html">ConsG.cpp</a>.</p>
614
- <div class="fragment"><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;{</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <a class="code" href="classSVF_1_1ConstraintNode.html">ConstraintNode</a>* srcNode = <a class="code" href="classSVF_1_1ConstraintGraph.html#a26722666cc8f2fce61bed73f086a0e87">getConstraintNode</a>(src);</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <a class="code" href="classSVF_1_1ConstraintNode.html">ConstraintNode</a>* dstNode = <a class="code" href="classSVF_1_1ConstraintGraph.html#a26722666cc8f2fce61bed73f086a0e87">getConstraintNode</a>(dst);</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1ConstraintGraph.html#a5f57823a4918f6c6bfee9c18beddda51">hasEdge</a>(srcNode,dstNode,<a class="code" href="classSVF_1_1ConstraintEdge.html#a663af27955ba0c545f34fa1f076b7375a29b0aa3353f866ef1655ab6d4716feb9">ConstraintEdge::Copy</a>)</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; || srcNode == dstNode)</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <a class="code" href="classSVF_1_1CopyCGEdge.html">CopyCGEdge</a>* edge = <span class="keyword">new</span> <a class="code" href="classSVF_1_1CopyCGEdge.html">CopyCGEdge</a>(srcNode, dstNode, <a class="code" href="classSVF_1_1ConstraintGraph.html#ac246dc91562d4b1e168b7c39b2c2720f">edgeIndex</a>++);</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <span class="keywordtype">bool</span> added = <a class="code" href="classSVF_1_1ConstraintGraph.html#a1be3ebb84b3d334daf98f7e6f5b82256">directEdgeSet</a>.insert(edge).second;</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(added &amp;&amp; <span class="stringliteral">&quot;not added??&quot;</span>);</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; srcNode-&gt;<a class="code" href="classSVF_1_1ConstraintNode.html#a2395948518a1befb7a3762bbad6adf9f">addOutgoingCopyEdge</a>(edge);</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; dstNode-&gt;<a class="code" href="classSVF_1_1ConstraintNode.html#ad54cc825bb7f5642671e75b90b2633a2">addIncomingCopyEdge</a>(edge);</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <span class="keywordflow">return</span> edge;</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;}</div><div class="ttc" id="classSVF_1_1ConstraintGraph_html_a5f57823a4918f6c6bfee9c18beddda51"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a5f57823a4918f6c6bfee9c18beddda51">SVF::ConstraintGraph::hasEdge</a></div><div class="ttdeci">bool hasEdge(ConstraintNode *src, ConstraintNode *dst, ConstraintEdge::ConstraintEdgeK kind)</div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8h_source.html#l00128">ConsG.h:128</a></div></div>
613
+ <p class="definition">Definition at line <a class="el" href="ConsG_8cpp_source.html#l00182">182</a> of file <a class="el" href="ConsG_8cpp_source.html">ConsG.cpp</a>.</p>
614
+ <div class="fragment"><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;{</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; <a class="code" href="classSVF_1_1ConstraintNode.html">ConstraintNode</a>* srcNode = <a class="code" href="classSVF_1_1ConstraintGraph.html#a26722666cc8f2fce61bed73f086a0e87">getConstraintNode</a>(src);</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; <a class="code" href="classSVF_1_1ConstraintNode.html">ConstraintNode</a>* dstNode = <a class="code" href="classSVF_1_1ConstraintGraph.html#a26722666cc8f2fce61bed73f086a0e87">getConstraintNode</a>(dst);</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1ConstraintGraph.html#a5f57823a4918f6c6bfee9c18beddda51">hasEdge</a>(srcNode,dstNode,<a class="code" href="classSVF_1_1ConstraintEdge.html#a663af27955ba0c545f34fa1f076b7375a29b0aa3353f866ef1655ab6d4716feb9">ConstraintEdge::Copy</a>)</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; || srcNode == dstNode)</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160;</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <a class="code" href="classSVF_1_1CopyCGEdge.html">CopyCGEdge</a>* edge = <span class="keyword">new</span> <a class="code" href="classSVF_1_1CopyCGEdge.html">CopyCGEdge</a>(srcNode, dstNode, <a class="code" href="classSVF_1_1ConstraintGraph.html#ac246dc91562d4b1e168b7c39b2c2720f">edgeIndex</a>++);</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <span class="keywordtype">bool</span> added = <a class="code" href="classSVF_1_1ConstraintGraph.html#a1be3ebb84b3d334daf98f7e6f5b82256">directEdgeSet</a>.insert(edge).second;</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(added &amp;&amp; <span class="stringliteral">&quot;not added??&quot;</span>);</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; srcNode-&gt;<a class="code" href="classSVF_1_1ConstraintNode.html#a2395948518a1befb7a3762bbad6adf9f">addOutgoingCopyEdge</a>(edge);</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; dstNode-&gt;<a class="code" href="classSVF_1_1ConstraintNode.html#ad54cc825bb7f5642671e75b90b2633a2">addIncomingCopyEdge</a>(edge);</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <span class="keywordflow">return</span> edge;</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160;}</div><div class="ttc" id="classSVF_1_1ConstraintGraph_html_a5f57823a4918f6c6bfee9c18beddda51"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a5f57823a4918f6c6bfee9c18beddda51">SVF::ConstraintGraph::hasEdge</a></div><div class="ttdeci">bool hasEdge(ConstraintNode *src, ConstraintNode *dst, ConstraintEdge::ConstraintEdgeK kind)</div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8h_source.html#l00128">ConsG.h:128</a></div></div>
615
615
  <div class="ttc" id="classSVF_1_1ConstraintGraph_html_a26722666cc8f2fce61bed73f086a0e87"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a26722666cc8f2fce61bed73f086a0e87">SVF::ConstraintGraph::getConstraintNode</a></div><div class="ttdeci">ConstraintNode * getConstraintNode(NodeID id) const</div><div class="ttdoc">Get/add/remove constraint node. </div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8h_source.html#l00107">ConsG.h:107</a></div></div>
616
616
  <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>
617
617
  <div class="ttc" id="classSVF_1_1ConstraintNode_html_a2395948518a1befb7a3762bbad6adf9f"><div class="ttname"><a href="classSVF_1_1ConstraintNode.html#a2395948518a1befb7a3762bbad6adf9f">SVF::ConstraintNode::addOutgoingCopyEdge</a></div><div class="ttdeci">void addOutgoingCopyEdge(CopyCGEdge *outEdge)</div><div class="ttdef"><b>Definition:</b> <a href="ConsGNode_8h_source.html#l00305">ConsGNode.h:305</a></div></div>
@@ -653,8 +653,8 @@ Additional Inherited Members</h2></td></tr>
653
653
  <p>Add Load edge. </p>
654
654
  <p>Add Load edge </p>
655
655
 
656
- <p class="definition">Definition at line <a class="el" href="ConsG_8cpp_source.html#l00230">230</a> of file <a class="el" href="ConsG_8cpp_source.html">ConsG.cpp</a>.</p>
657
- <div class="fragment"><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160;{</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; <a class="code" href="classSVF_1_1ConstraintNode.html">ConstraintNode</a>* srcNode = <a class="code" href="classSVF_1_1ConstraintGraph.html#a26722666cc8f2fce61bed73f086a0e87">getConstraintNode</a>(src);</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; <a class="code" href="classSVF_1_1ConstraintNode.html">ConstraintNode</a>* dstNode = <a class="code" href="classSVF_1_1ConstraintGraph.html#a26722666cc8f2fce61bed73f086a0e87">getConstraintNode</a>(dst);</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1ConstraintGraph.html#a5f57823a4918f6c6bfee9c18beddda51">hasEdge</a>(srcNode,dstNode,<a class="code" href="classSVF_1_1ConstraintEdge.html#a663af27955ba0c545f34fa1f076b7375a1bdeb9a06641d16b43391120812b40b2">ConstraintEdge::Load</a>))</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160;</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; <a class="code" href="classSVF_1_1LoadCGEdge.html">LoadCGEdge</a>* edge = <span class="keyword">new</span> <a class="code" href="classSVF_1_1LoadCGEdge.html">LoadCGEdge</a>(srcNode, dstNode, <a class="code" href="classSVF_1_1ConstraintGraph.html#ac246dc91562d4b1e168b7c39b2c2720f">edgeIndex</a>++);</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; <span class="keywordtype">bool</span> added = <a class="code" href="classSVF_1_1ConstraintGraph.html#a1cb9124b29720e7a5b39d83419f9cc17">LoadCGEdgeSet</a>.insert(edge).second;</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(added &amp;&amp; <span class="stringliteral">&quot;not added??&quot;</span>);</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; srcNode-&gt;<a class="code" href="classSVF_1_1ConstraintNode.html#abcab7a3b98dc0cfeecaed279ca74ea53">addOutgoingLoadEdge</a>(edge);</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; dstNode-&gt;<a class="code" href="classSVF_1_1ConstraintNode.html#a9d1bb95ad5549d7e6030fe07f8e070a2">addIncomingLoadEdge</a>(edge);</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; <span class="keywordflow">return</span> edge;</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160;}</div><div class="ttc" id="classSVF_1_1ConstraintGraph_html_a5f57823a4918f6c6bfee9c18beddda51"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a5f57823a4918f6c6bfee9c18beddda51">SVF::ConstraintGraph::hasEdge</a></div><div class="ttdeci">bool hasEdge(ConstraintNode *src, ConstraintNode *dst, ConstraintEdge::ConstraintEdgeK kind)</div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8h_source.html#l00128">ConsG.h:128</a></div></div>
656
+ <p class="definition">Definition at line <a class="el" href="ConsG_8cpp_source.html#l00239">239</a> of file <a class="el" href="ConsG_8cpp_source.html">ConsG.cpp</a>.</p>
657
+ <div class="fragment"><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; <a class="code" href="classSVF_1_1ConstraintNode.html">ConstraintNode</a>* srcNode = <a class="code" href="classSVF_1_1ConstraintGraph.html#a26722666cc8f2fce61bed73f086a0e87">getConstraintNode</a>(src);</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; <a class="code" href="classSVF_1_1ConstraintNode.html">ConstraintNode</a>* dstNode = <a class="code" href="classSVF_1_1ConstraintGraph.html#a26722666cc8f2fce61bed73f086a0e87">getConstraintNode</a>(dst);</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1ConstraintGraph.html#a5f57823a4918f6c6bfee9c18beddda51">hasEdge</a>(srcNode,dstNode,<a class="code" href="classSVF_1_1ConstraintEdge.html#a663af27955ba0c545f34fa1f076b7375a1bdeb9a06641d16b43391120812b40b2">ConstraintEdge::Load</a>))</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160;</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; <a class="code" href="classSVF_1_1LoadCGEdge.html">LoadCGEdge</a>* edge = <span class="keyword">new</span> <a class="code" href="classSVF_1_1LoadCGEdge.html">LoadCGEdge</a>(srcNode, dstNode, <a class="code" href="classSVF_1_1ConstraintGraph.html#ac246dc91562d4b1e168b7c39b2c2720f">edgeIndex</a>++);</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; <span class="keywordtype">bool</span> added = <a class="code" href="classSVF_1_1ConstraintGraph.html#a1cb9124b29720e7a5b39d83419f9cc17">LoadCGEdgeSet</a>.insert(edge).second;</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(added &amp;&amp; <span class="stringliteral">&quot;not added??&quot;</span>);</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; srcNode-&gt;<a class="code" href="classSVF_1_1ConstraintNode.html#abcab7a3b98dc0cfeecaed279ca74ea53">addOutgoingLoadEdge</a>(edge);</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; dstNode-&gt;<a class="code" href="classSVF_1_1ConstraintNode.html#a9d1bb95ad5549d7e6030fe07f8e070a2">addIncomingLoadEdge</a>(edge);</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; <span class="keywordflow">return</span> edge;</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160;}</div><div class="ttc" id="classSVF_1_1ConstraintGraph_html_a5f57823a4918f6c6bfee9c18beddda51"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a5f57823a4918f6c6bfee9c18beddda51">SVF::ConstraintGraph::hasEdge</a></div><div class="ttdeci">bool hasEdge(ConstraintNode *src, ConstraintNode *dst, ConstraintEdge::ConstraintEdgeK kind)</div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8h_source.html#l00128">ConsG.h:128</a></div></div>
658
658
  <div class="ttc" id="classSVF_1_1ConstraintGraph_html_a26722666cc8f2fce61bed73f086a0e87"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a26722666cc8f2fce61bed73f086a0e87">SVF::ConstraintGraph::getConstraintNode</a></div><div class="ttdeci">ConstraintNode * getConstraintNode(NodeID id) const</div><div class="ttdoc">Get/add/remove constraint node. </div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8h_source.html#l00107">ConsG.h:107</a></div></div>
659
659
  <div class="ttc" id="classSVF_1_1ConstraintEdge_html_a663af27955ba0c545f34fa1f076b7375a1bdeb9a06641d16b43391120812b40b2"><div class="ttname"><a href="classSVF_1_1ConstraintEdge.html#a663af27955ba0c545f34fa1f076b7375a1bdeb9a06641d16b43391120812b40b2">SVF::ConstraintEdge::Load</a></div><div class="ttdef"><b>Definition:</b> <a href="ConsGEdge_8h_source.html#l00056">ConsGEdge.h:56</a></div></div>
660
660
  <div class="ttc" id="classSVF_1_1ConstraintNode_html_abcab7a3b98dc0cfeecaed279ca74ea53"><div class="ttname"><a href="classSVF_1_1ConstraintNode.html#abcab7a3b98dc0cfeecaed279ca74ea53">SVF::ConstraintNode::addOutgoingLoadEdge</a></div><div class="ttdeci">void addOutgoingLoadEdge(LoadCGEdge *outEdge)</div><div class="ttdef"><b>Definition:</b> <a href="ConsGNode_8h_source.html#l00342">ConsGNode.h:342</a></div></div>
@@ -732,8 +732,8 @@ Additional Inherited Members</h2></td></tr>
732
732
  <p>Add Gep edge. </p>
733
733
  <p>Add Gep edge </p>
734
734
 
735
- <p class="definition">Definition at line <a class="el" href="ConsG_8cpp_source.html#l00194">194</a> of file <a class="el" href="ConsG_8cpp_source.html">ConsG.cpp</a>.</p>
736
- <div class="fragment"><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; <a class="code" href="classSVF_1_1ConstraintNode.html">ConstraintNode</a>* srcNode = <a class="code" href="classSVF_1_1ConstraintGraph.html#a26722666cc8f2fce61bed73f086a0e87">getConstraintNode</a>(src);</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <a class="code" href="classSVF_1_1ConstraintNode.html">ConstraintNode</a>* dstNode = <a class="code" href="classSVF_1_1ConstraintGraph.html#a26722666cc8f2fce61bed73f086a0e87">getConstraintNode</a>(dst);</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1ConstraintGraph.html#a5f57823a4918f6c6bfee9c18beddda51">hasEdge</a>(srcNode,dstNode,<a class="code" href="classSVF_1_1ConstraintEdge.html#a663af27955ba0c545f34fa1f076b7375acfd0a194af0da66162545f0089eb4baa">ConstraintEdge::NormalGep</a>))</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <a class="code" href="classSVF_1_1NormalGepCGEdge.html">NormalGepCGEdge</a>* edge = <span class="keyword">new</span> <a class="code" href="classSVF_1_1NormalGepCGEdge.html">NormalGepCGEdge</a>(srcNode, dstNode,ls, <a class="code" href="classSVF_1_1ConstraintGraph.html#ac246dc91562d4b1e168b7c39b2c2720f">edgeIndex</a>++);</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <span class="keywordtype">bool</span> added = <a class="code" href="classSVF_1_1ConstraintGraph.html#a1be3ebb84b3d334daf98f7e6f5b82256">directEdgeSet</a>.insert(edge).second;</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(added &amp;&amp; <span class="stringliteral">&quot;not added??&quot;</span>);</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; srcNode-&gt;<a class="code" href="classSVF_1_1ConstraintNode.html#abc56843c51c00a9018473f415f73e9f6">addOutgoingGepEdge</a>(edge);</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; dstNode-&gt;<a class="code" href="classSVF_1_1ConstraintNode.html#aaf0b98573a980aea1151a837580a40a5">addIncomingGepEdge</a>(edge);</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; <span class="keywordflow">return</span> edge;</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160;}</div><div class="ttc" id="classSVF_1_1ConstraintGraph_html_a5f57823a4918f6c6bfee9c18beddda51"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a5f57823a4918f6c6bfee9c18beddda51">SVF::ConstraintGraph::hasEdge</a></div><div class="ttdeci">bool hasEdge(ConstraintNode *src, ConstraintNode *dst, ConstraintEdge::ConstraintEdgeK kind)</div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8h_source.html#l00128">ConsG.h:128</a></div></div>
735
+ <p class="definition">Definition at line <a class="el" href="ConsG_8cpp_source.html#l00203">203</a> of file <a class="el" href="ConsG_8cpp_source.html">ConsG.cpp</a>.</p>
736
+ <div class="fragment"><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;{</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <a class="code" href="classSVF_1_1ConstraintNode.html">ConstraintNode</a>* srcNode = <a class="code" href="classSVF_1_1ConstraintGraph.html#a26722666cc8f2fce61bed73f086a0e87">getConstraintNode</a>(src);</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; <a class="code" href="classSVF_1_1ConstraintNode.html">ConstraintNode</a>* dstNode = <a class="code" href="classSVF_1_1ConstraintGraph.html#a26722666cc8f2fce61bed73f086a0e87">getConstraintNode</a>(dst);</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1ConstraintGraph.html#a5f57823a4918f6c6bfee9c18beddda51">hasEdge</a>(srcNode,dstNode,<a class="code" href="classSVF_1_1ConstraintEdge.html#a663af27955ba0c545f34fa1f076b7375acfd0a194af0da66162545f0089eb4baa">ConstraintEdge::NormalGep</a>))</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; <a class="code" href="classSVF_1_1NormalGepCGEdge.html">NormalGepCGEdge</a>* edge = <span class="keyword">new</span> <a class="code" href="classSVF_1_1NormalGepCGEdge.html">NormalGepCGEdge</a>(srcNode, dstNode,ls, <a class="code" href="classSVF_1_1ConstraintGraph.html#ac246dc91562d4b1e168b7c39b2c2720f">edgeIndex</a>++);</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; <span class="keywordtype">bool</span> added = <a class="code" href="classSVF_1_1ConstraintGraph.html#a1be3ebb84b3d334daf98f7e6f5b82256">directEdgeSet</a>.insert(edge).second;</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(added &amp;&amp; <span class="stringliteral">&quot;not added??&quot;</span>);</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; srcNode-&gt;<a class="code" href="classSVF_1_1ConstraintNode.html#abc56843c51c00a9018473f415f73e9f6">addOutgoingGepEdge</a>(edge);</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; dstNode-&gt;<a class="code" href="classSVF_1_1ConstraintNode.html#aaf0b98573a980aea1151a837580a40a5">addIncomingGepEdge</a>(edge);</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; <span class="keywordflow">return</span> edge;</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160;}</div><div class="ttc" id="classSVF_1_1ConstraintGraph_html_a5f57823a4918f6c6bfee9c18beddda51"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a5f57823a4918f6c6bfee9c18beddda51">SVF::ConstraintGraph::hasEdge</a></div><div class="ttdeci">bool hasEdge(ConstraintNode *src, ConstraintNode *dst, ConstraintEdge::ConstraintEdgeK kind)</div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8h_source.html#l00128">ConsG.h:128</a></div></div>
737
737
  <div class="ttc" id="classSVF_1_1ConstraintGraph_html_a26722666cc8f2fce61bed73f086a0e87"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a26722666cc8f2fce61bed73f086a0e87">SVF::ConstraintGraph::getConstraintNode</a></div><div class="ttdeci">ConstraintNode * getConstraintNode(NodeID id) const</div><div class="ttdoc">Get/add/remove constraint node. </div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8h_source.html#l00107">ConsG.h:107</a></div></div>
738
738
  <div class="ttc" id="classSVF_1_1NormalGepCGEdge_html"><div class="ttname"><a href="classSVF_1_1NormalGepCGEdge.html">SVF::NormalGepCGEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="ConsGEdge_8h_source.html#l00265">ConsGEdge.h:265</a></div></div>
739
739
  <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>
@@ -775,8 +775,8 @@ Additional Inherited Members</h2></td></tr>
775
775
  <p>Add Store edge. </p>
776
776
  <p>Add Store edge </p>
777
777
 
778
- <p class="definition">Definition at line <a class="el" href="ConsG_8cpp_source.html#l00248">248</a> of file <a class="el" href="ConsG_8cpp_source.html">ConsG.cpp</a>.</p>
779
- <div class="fragment"><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160;{</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; <a class="code" href="classSVF_1_1ConstraintNode.html">ConstraintNode</a>* srcNode = <a class="code" href="classSVF_1_1ConstraintGraph.html#a26722666cc8f2fce61bed73f086a0e87">getConstraintNode</a>(src);</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; <a class="code" href="classSVF_1_1ConstraintNode.html">ConstraintNode</a>* dstNode = <a class="code" href="classSVF_1_1ConstraintGraph.html#a26722666cc8f2fce61bed73f086a0e87">getConstraintNode</a>(dst);</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1ConstraintGraph.html#a5f57823a4918f6c6bfee9c18beddda51">hasEdge</a>(srcNode,dstNode,<a class="code" href="classSVF_1_1ConstraintEdge.html#a663af27955ba0c545f34fa1f076b7375a20d6a102ddc06257a822ffffcc5a3b47">ConstraintEdge::Store</a>))</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</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; <a class="code" href="classSVF_1_1StoreCGEdge.html">StoreCGEdge</a>* edge = <span class="keyword">new</span> <a class="code" href="classSVF_1_1StoreCGEdge.html">StoreCGEdge</a>(srcNode, dstNode, <a class="code" href="classSVF_1_1ConstraintGraph.html#ac246dc91562d4b1e168b7c39b2c2720f">edgeIndex</a>++);</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; <span class="keywordtype">bool</span> added = <a class="code" href="classSVF_1_1ConstraintGraph.html#a0f9d5eef25827ac1d380e5d8bd225025">StoreCGEdgeSet</a>.insert(edge).second;</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(added &amp;&amp; <span class="stringliteral">&quot;not added??&quot;</span>);</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; srcNode-&gt;<a class="code" href="classSVF_1_1ConstraintNode.html#a349b8c461adfa2a0bd1376ecb81d36d5">addOutgoingStoreEdge</a>(edge);</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; dstNode-&gt;<a class="code" href="classSVF_1_1ConstraintNode.html#a202193059dd3122d969561080b82c504">addIncomingStoreEdge</a>(edge);</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; <span class="keywordflow">return</span> edge;</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160;}</div><div class="ttc" id="classSVF_1_1ConstraintGraph_html_a5f57823a4918f6c6bfee9c18beddda51"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a5f57823a4918f6c6bfee9c18beddda51">SVF::ConstraintGraph::hasEdge</a></div><div class="ttdeci">bool hasEdge(ConstraintNode *src, ConstraintNode *dst, ConstraintEdge::ConstraintEdgeK kind)</div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8h_source.html#l00128">ConsG.h:128</a></div></div>
778
+ <p class="definition">Definition at line <a class="el" href="ConsG_8cpp_source.html#l00257">257</a> of file <a class="el" href="ConsG_8cpp_source.html">ConsG.cpp</a>.</p>
779
+ <div class="fragment"><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160;{</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; <a class="code" href="classSVF_1_1ConstraintNode.html">ConstraintNode</a>* srcNode = <a class="code" href="classSVF_1_1ConstraintGraph.html#a26722666cc8f2fce61bed73f086a0e87">getConstraintNode</a>(src);</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; <a class="code" href="classSVF_1_1ConstraintNode.html">ConstraintNode</a>* dstNode = <a class="code" href="classSVF_1_1ConstraintGraph.html#a26722666cc8f2fce61bed73f086a0e87">getConstraintNode</a>(dst);</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1ConstraintGraph.html#a5f57823a4918f6c6bfee9c18beddda51">hasEdge</a>(srcNode,dstNode,<a class="code" href="classSVF_1_1ConstraintEdge.html#a663af27955ba0c545f34fa1f076b7375a20d6a102ddc06257a822ffffcc5a3b47">ConstraintEdge::Store</a>))</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160;</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; <a class="code" href="classSVF_1_1StoreCGEdge.html">StoreCGEdge</a>* edge = <span class="keyword">new</span> <a class="code" href="classSVF_1_1StoreCGEdge.html">StoreCGEdge</a>(srcNode, dstNode, <a class="code" href="classSVF_1_1ConstraintGraph.html#ac246dc91562d4b1e168b7c39b2c2720f">edgeIndex</a>++);</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; <span class="keywordtype">bool</span> added = <a class="code" href="classSVF_1_1ConstraintGraph.html#a0f9d5eef25827ac1d380e5d8bd225025">StoreCGEdgeSet</a>.insert(edge).second;</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(added &amp;&amp; <span class="stringliteral">&quot;not added??&quot;</span>);</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; srcNode-&gt;<a class="code" href="classSVF_1_1ConstraintNode.html#a349b8c461adfa2a0bd1376ecb81d36d5">addOutgoingStoreEdge</a>(edge);</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; dstNode-&gt;<a class="code" href="classSVF_1_1ConstraintNode.html#a202193059dd3122d969561080b82c504">addIncomingStoreEdge</a>(edge);</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; <span class="keywordflow">return</span> edge;</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160;}</div><div class="ttc" id="classSVF_1_1ConstraintGraph_html_a5f57823a4918f6c6bfee9c18beddda51"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a5f57823a4918f6c6bfee9c18beddda51">SVF::ConstraintGraph::hasEdge</a></div><div class="ttdeci">bool hasEdge(ConstraintNode *src, ConstraintNode *dst, ConstraintEdge::ConstraintEdgeK kind)</div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8h_source.html#l00128">ConsG.h:128</a></div></div>
780
780
  <div class="ttc" id="classSVF_1_1ConstraintGraph_html_a26722666cc8f2fce61bed73f086a0e87"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a26722666cc8f2fce61bed73f086a0e87">SVF::ConstraintGraph::getConstraintNode</a></div><div class="ttdeci">ConstraintNode * getConstraintNode(NodeID id) const</div><div class="ttdoc">Get/add/remove constraint node. </div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8h_source.html#l00107">ConsG.h:107</a></div></div>
781
781
  <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>
782
782
  <div class="ttc" id="classSVF_1_1ConstraintNode_html_a349b8c461adfa2a0bd1376ecb81d36d5"><div class="ttname"><a href="classSVF_1_1ConstraintNode.html#a349b8c461adfa2a0bd1376ecb81d36d5">SVF::ConstraintNode::addOutgoingStoreEdge</a></div><div class="ttdeci">void addOutgoingStoreEdge(StoreCGEdge *outEdge)</div><div class="ttdef"><b>Definition:</b> <a href="ConsGNode_8h_source.html#l00348">ConsGNode.h:348</a></div></div>
@@ -816,8 +816,8 @@ Additional Inherited Members</h2></td></tr>
816
816
  </div><div class="memdoc">
817
817
  <p>Add variant gep edge </p>
818
818
 
819
- <p class="definition">Definition at line <a class="el" href="ConsG_8cpp_source.html#l00212">212</a> of file <a class="el" href="ConsG_8cpp_source.html">ConsG.cpp</a>.</p>
820
- <div class="fragment"><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; <a class="code" href="classSVF_1_1ConstraintNode.html">ConstraintNode</a>* srcNode = <a class="code" href="classSVF_1_1ConstraintGraph.html#a26722666cc8f2fce61bed73f086a0e87">getConstraintNode</a>(src);</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; <a class="code" href="classSVF_1_1ConstraintNode.html">ConstraintNode</a>* dstNode = <a class="code" href="classSVF_1_1ConstraintGraph.html#a26722666cc8f2fce61bed73f086a0e87">getConstraintNode</a>(dst);</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1ConstraintGraph.html#a5f57823a4918f6c6bfee9c18beddda51">hasEdge</a>(srcNode,dstNode,<a class="code" href="classSVF_1_1ConstraintEdge.html#a663af27955ba0c545f34fa1f076b7375ae5df3ce07dd670b48916f7b8ab33ae5a">ConstraintEdge::VariantGep</a>))</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</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_1VariantGepCGEdge.html">VariantGepCGEdge</a>* edge = <span class="keyword">new</span> <a class="code" href="classSVF_1_1VariantGepCGEdge.html">VariantGepCGEdge</a>(srcNode, dstNode, <a class="code" href="classSVF_1_1ConstraintGraph.html#ac246dc91562d4b1e168b7c39b2c2720f">edgeIndex</a>++);</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; <span class="keywordtype">bool</span> added = <a class="code" href="classSVF_1_1ConstraintGraph.html#a1be3ebb84b3d334daf98f7e6f5b82256">directEdgeSet</a>.insert(edge).second;</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(added &amp;&amp; <span class="stringliteral">&quot;not added??&quot;</span>);</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; srcNode-&gt;<a class="code" href="classSVF_1_1ConstraintNode.html#abc56843c51c00a9018473f415f73e9f6">addOutgoingGepEdge</a>(edge);</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; dstNode-&gt;<a class="code" href="classSVF_1_1ConstraintNode.html#aaf0b98573a980aea1151a837580a40a5">addIncomingGepEdge</a>(edge);</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; <span class="keywordflow">return</span> edge;</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160;}</div><div class="ttc" id="classSVF_1_1ConstraintGraph_html_a5f57823a4918f6c6bfee9c18beddda51"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a5f57823a4918f6c6bfee9c18beddda51">SVF::ConstraintGraph::hasEdge</a></div><div class="ttdeci">bool hasEdge(ConstraintNode *src, ConstraintNode *dst, ConstraintEdge::ConstraintEdgeK kind)</div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8h_source.html#l00128">ConsG.h:128</a></div></div>
819
+ <p class="definition">Definition at line <a class="el" href="ConsG_8cpp_source.html#l00221">221</a> of file <a class="el" href="ConsG_8cpp_source.html">ConsG.cpp</a>.</p>
820
+ <div class="fragment"><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; <a class="code" href="classSVF_1_1ConstraintNode.html">ConstraintNode</a>* srcNode = <a class="code" href="classSVF_1_1ConstraintGraph.html#a26722666cc8f2fce61bed73f086a0e87">getConstraintNode</a>(src);</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; <a class="code" href="classSVF_1_1ConstraintNode.html">ConstraintNode</a>* dstNode = <a class="code" href="classSVF_1_1ConstraintGraph.html#a26722666cc8f2fce61bed73f086a0e87">getConstraintNode</a>(dst);</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1ConstraintGraph.html#a5f57823a4918f6c6bfee9c18beddda51">hasEdge</a>(srcNode,dstNode,<a class="code" href="classSVF_1_1ConstraintEdge.html#a663af27955ba0c545f34fa1f076b7375ae5df3ce07dd670b48916f7b8ab33ae5a">ConstraintEdge::VariantGep</a>))</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160;</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; <a class="code" href="classSVF_1_1VariantGepCGEdge.html">VariantGepCGEdge</a>* edge = <span class="keyword">new</span> <a class="code" href="classSVF_1_1VariantGepCGEdge.html">VariantGepCGEdge</a>(srcNode, dstNode, <a class="code" href="classSVF_1_1ConstraintGraph.html#ac246dc91562d4b1e168b7c39b2c2720f">edgeIndex</a>++);</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; <span class="keywordtype">bool</span> added = <a class="code" href="classSVF_1_1ConstraintGraph.html#a1be3ebb84b3d334daf98f7e6f5b82256">directEdgeSet</a>.insert(edge).second;</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(added &amp;&amp; <span class="stringliteral">&quot;not added??&quot;</span>);</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; srcNode-&gt;<a class="code" href="classSVF_1_1ConstraintNode.html#abc56843c51c00a9018473f415f73e9f6">addOutgoingGepEdge</a>(edge);</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; dstNode-&gt;<a class="code" href="classSVF_1_1ConstraintNode.html#aaf0b98573a980aea1151a837580a40a5">addIncomingGepEdge</a>(edge);</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; <span class="keywordflow">return</span> edge;</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160;}</div><div class="ttc" id="classSVF_1_1ConstraintGraph_html_a5f57823a4918f6c6bfee9c18beddda51"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a5f57823a4918f6c6bfee9c18beddda51">SVF::ConstraintGraph::hasEdge</a></div><div class="ttdeci">bool hasEdge(ConstraintNode *src, ConstraintNode *dst, ConstraintEdge::ConstraintEdgeK kind)</div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8h_source.html#l00128">ConsG.h:128</a></div></div>
821
821
  <div class="ttc" id="classSVF_1_1ConstraintEdge_html_a663af27955ba0c545f34fa1f076b7375ae5df3ce07dd670b48916f7b8ab33ae5a"><div class="ttname"><a href="classSVF_1_1ConstraintEdge.html#a663af27955ba0c545f34fa1f076b7375ae5df3ce07dd670b48916f7b8ab33ae5a">SVF::ConstraintEdge::VariantGep</a></div><div class="ttdef"><b>Definition:</b> <a href="ConsGEdge_8h_source.html#l00056">ConsGEdge.h:56</a></div></div>
822
822
  <div class="ttc" id="classSVF_1_1ConstraintGraph_html_a26722666cc8f2fce61bed73f086a0e87"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a26722666cc8f2fce61bed73f086a0e87">SVF::ConstraintGraph::getConstraintNode</a></div><div class="ttdeci">ConstraintNode * getConstraintNode(NodeID id) const</div><div class="ttdoc">Get/add/remove constraint node. </div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8h_source.html#l00107">ConsG.h:107</a></div></div>
823
823
  <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>
@@ -855,34 +855,38 @@ Additional Inherited Members</h2></td></tr>
855
855
  <p>Start building constraint graph </p>
856
856
 
857
857
  <p class="definition">Definition at line <a class="el" href="ConsG_8cpp_source.html#l00042">42</a> of file <a class="el" href="ConsG_8cpp_source.html">ConsG.cpp</a>.</p>
858
- <div class="fragment"><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;{</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="comment">// initialize nodes</span></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="keywordflow">for</span>(<a class="code" href="classSVF_1_1GenericGraph.html#ac213302cf5c7cdf3b66f7b18649d0fbc">SVFIR::iterator</a> it = <a class="code" href="classSVF_1_1ConstraintGraph.html#aa8b09f64c6e4bbd081c6062a1a0e8948">pag</a>-&gt;<a class="code" href="classSVF_1_1GenericGraph.html#a0d9744b1b0e7a09a6f7af29188e243b7">begin</a>(), eit = <a class="code" href="classSVF_1_1ConstraintGraph.html#aa8b09f64c6e4bbd081c6062a1a0e8948">pag</a>-&gt;<a class="code" href="classSVF_1_1GenericGraph.html#a4bef15157423cef48dc7333a803cd27d">end</a>(); it!=eit; ++it)</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; {</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <a class="code" href="classSVF_1_1ConstraintGraph.html#a5ea9c47d232f36b66d985f979f33293b">addConstraintNode</a>(<span class="keyword">new</span> <a class="code" href="classSVF_1_1ConstraintNode.html">ConstraintNode</a>(it-&gt;first), it-&gt;first);</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; }</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="comment">// initialize edges</span></div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <a class="code" href="classSVF_1_1SVFStmt.html#af02857ff13e61f81d332d83eb376bdb4">PAGEdge::PAGEdgeSetTy</a>&amp; addrs = <a class="code" href="classSVF_1_1ConstraintGraph.html#ad5d89d94b16c167a593aa2a0c8e6ad9c">getPAGEdgeSet</a>(<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a0a9a0f650e864e89b7cbb3dc8c8aa197">PAGEdge::Addr</a>);</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="keywordflow">for</span> (PAGEdge::PAGEdgeSetTy::iterator iter = addrs.begin(), eiter =</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; addrs.end(); iter != eiter; ++iter)</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; {</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <a class="code" href="classSVF_1_1SVFStmt.html">PAGEdge</a>* edge = *iter;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <a class="code" href="classSVF_1_1ConstraintGraph.html#a56cfcc39637cf5208f65297a63dde266">addAddrCGEdge</a>(edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#ae6792506a0150a9400d635eceab7f9e7">getSrcID</a>(),edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#ad9edb45e74ae675d9da82f5acf02d56e">getDstID</a>());</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; }</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <a class="code" href="classSVF_1_1SVFStmt.html#af02857ff13e61f81d332d83eb376bdb4">PAGEdge::PAGEdgeSetTy</a>&amp; copys = <a class="code" href="classSVF_1_1ConstraintGraph.html#ad5d89d94b16c167a593aa2a0c8e6ad9c">getPAGEdgeSet</a>(<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad3469cdfb64f05163b5310b731b221da">PAGEdge::Copy</a>);</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="keywordflow">for</span> (PAGEdge::PAGEdgeSetTy::iterator iter = copys.begin(), eiter =</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; copys.end(); iter != eiter; ++iter)</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; {</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <a class="code" href="classSVF_1_1SVFStmt.html">PAGEdge</a>* edge = *iter;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <a class="code" href="classSVF_1_1ConstraintGraph.html#a60bb27100e8c264be2add004069d1758">addCopyCGEdge</a>(edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#ae6792506a0150a9400d635eceab7f9e7">getSrcID</a>(),edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#ad9edb45e74ae675d9da82f5acf02d56e">getDstID</a>());</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; }</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <a class="code" href="classSVF_1_1SVFStmt.html#af02857ff13e61f81d332d83eb376bdb4">PAGEdge::PAGEdgeSetTy</a>&amp; calls = <a class="code" href="classSVF_1_1ConstraintGraph.html#ad5d89d94b16c167a593aa2a0c8e6ad9c">getPAGEdgeSet</a>(<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a97ca16eba4c5f92e16388f0cdbcfcc00">PAGEdge::Call</a>);</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="keywordflow">for</span> (PAGEdge::PAGEdgeSetTy::iterator iter = calls.begin(), eiter =</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; calls.end(); iter != eiter; ++iter)</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; {</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <a class="code" href="classSVF_1_1SVFStmt.html">PAGEdge</a>* edge = *iter;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <a class="code" href="classSVF_1_1ConstraintGraph.html#a60bb27100e8c264be2add004069d1758">addCopyCGEdge</a>(edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#ae6792506a0150a9400d635eceab7f9e7">getSrcID</a>(),edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#ad9edb45e74ae675d9da82f5acf02d56e">getDstID</a>());</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; }</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <a class="code" href="classSVF_1_1SVFStmt.html#af02857ff13e61f81d332d83eb376bdb4">PAGEdge::PAGEdgeSetTy</a>&amp; rets = <a class="code" href="classSVF_1_1ConstraintGraph.html#ad5d89d94b16c167a593aa2a0c8e6ad9c">getPAGEdgeSet</a>(<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a8d269a45adf13e69468f0357222ab2af">PAGEdge::Ret</a>);</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="keywordflow">for</span> (PAGEdge::PAGEdgeSetTy::iterator iter = rets.begin(), eiter =</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; rets.end(); iter != eiter; ++iter)</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; <a class="code" href="classSVF_1_1SVFStmt.html">PAGEdge</a>* edge = *iter;</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <a class="code" href="classSVF_1_1ConstraintGraph.html#a60bb27100e8c264be2add004069d1758">addCopyCGEdge</a>(edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#ae6792506a0150a9400d635eceab7f9e7">getSrcID</a>(),edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#ad9edb45e74ae675d9da82f5acf02d56e">getDstID</a>());</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; }</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <a class="code" href="classSVF_1_1SVFStmt.html#af02857ff13e61f81d332d83eb376bdb4">PAGEdge::PAGEdgeSetTy</a>&amp; tdfks = <a class="code" href="classSVF_1_1ConstraintGraph.html#ad5d89d94b16c167a593aa2a0c8e6ad9c">getPAGEdgeSet</a>(<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a375b956af2119d7abca8f1995f7701fd">PAGEdge::ThreadFork</a>);</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <span class="keywordflow">for</span> (PAGEdge::PAGEdgeSetTy::iterator iter = tdfks.begin(), eiter =</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; tdfks.end(); iter != eiter; ++iter)</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; {</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <a class="code" href="classSVF_1_1SVFStmt.html">PAGEdge</a>* edge = *iter;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <a class="code" href="classSVF_1_1ConstraintGraph.html#a60bb27100e8c264be2add004069d1758">addCopyCGEdge</a>(edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#ae6792506a0150a9400d635eceab7f9e7">getSrcID</a>(),edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#ad9edb45e74ae675d9da82f5acf02d56e">getDstID</a>());</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; }</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <a class="code" href="classSVF_1_1SVFStmt.html#af02857ff13e61f81d332d83eb376bdb4">PAGEdge::PAGEdgeSetTy</a>&amp; tdjns = <a class="code" href="classSVF_1_1ConstraintGraph.html#ad5d89d94b16c167a593aa2a0c8e6ad9c">getPAGEdgeSet</a>(<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a3c3f8883c2d3b50aef6331d5da97ffb0">PAGEdge::ThreadJoin</a>);</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="keywordflow">for</span> (PAGEdge::PAGEdgeSetTy::iterator iter = tdjns.begin(), eiter =</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; tdjns.end(); iter != eiter; ++iter)</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"> 96</span>&#160; <a class="code" href="classSVF_1_1SVFStmt.html">PAGEdge</a>* edge = *iter;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <a class="code" href="classSVF_1_1ConstraintGraph.html#a60bb27100e8c264be2add004069d1758">addCopyCGEdge</a>(edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#ae6792506a0150a9400d635eceab7f9e7">getSrcID</a>(),edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#ad9edb45e74ae675d9da82f5acf02d56e">getDstID</a>());</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; }</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <a class="code" href="classSVF_1_1SVFStmt.html#af02857ff13e61f81d332d83eb376bdb4">PAGEdge::PAGEdgeSetTy</a>&amp; ngeps = <a class="code" href="classSVF_1_1ConstraintGraph.html#ad5d89d94b16c167a593aa2a0c8e6ad9c">getPAGEdgeSet</a>(<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ac2089ffeab3f27354b2094758c805746">PAGEdge::NormalGep</a>);</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keywordflow">for</span> (PAGEdge::PAGEdgeSetTy::iterator iter = ngeps.begin(), eiter =</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; ngeps.end(); iter != eiter; ++iter)</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; {</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <a class="code" href="classSVF_1_1NormalGepPE.html">NormalGepPE</a>* edge = SVFUtil::cast&lt;NormalGepPE&gt;(*iter);</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <a class="code" href="classSVF_1_1ConstraintGraph.html#a5aac453464955185ca0d47e91db9df7b">addNormalGepCGEdge</a>(edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#ae6792506a0150a9400d635eceab7f9e7">getSrcID</a>(),edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#ad9edb45e74ae675d9da82f5acf02d56e">getDstID</a>(),edge-&gt;<a class="code" href="classSVF_1_1NormalGepPE.html#ac086d39e0f554705b627c2fc07a33875">getLocationSet</a>());</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; }</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <a class="code" href="classSVF_1_1SVFStmt.html#af02857ff13e61f81d332d83eb376bdb4">PAGEdge::PAGEdgeSetTy</a>&amp; vgeps = <a class="code" href="classSVF_1_1ConstraintGraph.html#ad5d89d94b16c167a593aa2a0c8e6ad9c">getPAGEdgeSet</a>(<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a6b3a8902fc2aa68428e271012861a2a2">PAGEdge::VariantGep</a>);</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="keywordflow">for</span> (PAGEdge::PAGEdgeSetTy::iterator iter = vgeps.begin(), eiter =</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; vgeps.end(); iter != eiter; ++iter)</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"> 112</span>&#160; <a class="code" href="classSVF_1_1VariantGepPE.html">VariantGepPE</a>* edge = SVFUtil::cast&lt;VariantGepPE&gt;(*iter);</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <a class="code" href="classSVF_1_1ConstraintGraph.html#a6902cabb252b1eaadb3c8220b4581a2f">addVariantGepCGEdge</a>(edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#ae6792506a0150a9400d635eceab7f9e7">getSrcID</a>(),edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#ad9edb45e74ae675d9da82f5acf02d56e">getDstID</a>());</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; }</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <a class="code" href="classSVF_1_1SVFStmt.html#af02857ff13e61f81d332d83eb376bdb4">PAGEdge::PAGEdgeSetTy</a>&amp; stores = <a class="code" href="classSVF_1_1ConstraintGraph.html#ad5d89d94b16c167a593aa2a0c8e6ad9c">getPAGEdgeSet</a>(<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a62ac8480c43fcc657c631ec0003b15d5">PAGEdge::Load</a>);</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="keywordflow">for</span> (PAGEdge::PAGEdgeSetTy::iterator iter = stores.begin(), eiter =</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; stores.end(); iter != eiter; ++iter)</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; {</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <a class="code" href="classSVF_1_1SVFStmt.html">PAGEdge</a>* edge = *iter;</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <a class="code" href="classSVF_1_1ConstraintGraph.html#a1e5a23fbd08cf4186775baffbd6a7934">addLoadCGEdge</a>(edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#ae6792506a0150a9400d635eceab7f9e7">getSrcID</a>(),edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#ad9edb45e74ae675d9da82f5acf02d56e">getDstID</a>());</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; }</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <a class="code" href="classSVF_1_1SVFStmt.html#af02857ff13e61f81d332d83eb376bdb4">PAGEdge::PAGEdgeSetTy</a>&amp; loads = <a class="code" href="classSVF_1_1ConstraintGraph.html#ad5d89d94b16c167a593aa2a0c8e6ad9c">getPAGEdgeSet</a>(<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9aa0f700b514c431ec5329aec49df56dcc">PAGEdge::Store</a>);</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <span class="keywordflow">for</span> (PAGEdge::PAGEdgeSetTy::iterator iter = loads.begin(), eiter =</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; loads.end(); iter != eiter; ++iter)</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; {</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <a class="code" href="classSVF_1_1SVFStmt.html">PAGEdge</a>* edge = *iter;</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <a class="code" href="classSVF_1_1ConstraintGraph.html#a633666953f8d6675961981c4eab1adb0">addStoreCGEdge</a>(edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#ae6792506a0150a9400d635eceab7f9e7">getSrcID</a>(),edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#ad9edb45e74ae675d9da82f5acf02d56e">getDstID</a>());</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; }</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;}</div><div class="ttc" id="classSVF_1_1GenericGraph_html_a0d9744b1b0e7a09a6f7af29188e243b7"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#a0d9744b1b0e7a09a6f7af29188e243b7">SVF::GenericGraph::begin</a></div><div class="ttdeci">iterator begin()</div><div class="ttdoc">Iterators. </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00361">GenericGraph.h:361</a></div></div>
859
- <div class="ttc" id="classSVF_1_1NormalGepPE_html_ac086d39e0f554705b627c2fc07a33875"><div class="ttname"><a href="classSVF_1_1NormalGepPE.html#ac086d39e0f554705b627c2fc07a33875">SVF::NormalGepPE::getLocationSet</a></div><div class="ttdeci">const LocationSet &amp; getLocationSet() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00511">SVFStatements.h:511</a></div></div>
858
+ <div class="fragment"><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;{</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="comment">// initialize nodes</span></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="keywordflow">for</span>(<a class="code" href="classSVF_1_1GenericGraph.html#ac213302cf5c7cdf3b66f7b18649d0fbc">SVFIR::iterator</a> it = <a class="code" href="classSVF_1_1ConstraintGraph.html#aa8b09f64c6e4bbd081c6062a1a0e8948">pag</a>-&gt;<a class="code" href="classSVF_1_1GenericGraph.html#a0d9744b1b0e7a09a6f7af29188e243b7">begin</a>(), eit = <a class="code" href="classSVF_1_1ConstraintGraph.html#aa8b09f64c6e4bbd081c6062a1a0e8948">pag</a>-&gt;<a class="code" href="classSVF_1_1GenericGraph.html#a4bef15157423cef48dc7333a803cd27d">end</a>(); it!=eit; ++it)</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; {</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <a class="code" href="classSVF_1_1ConstraintGraph.html#a5ea9c47d232f36b66d985f979f33293b">addConstraintNode</a>(<span class="keyword">new</span> <a class="code" href="classSVF_1_1ConstraintNode.html">ConstraintNode</a>(it-&gt;first), it-&gt;first);</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; }</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="comment">// initialize edges</span></div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <a class="code" href="classSVF_1_1SVFStmt.html#af02857ff13e61f81d332d83eb376bdb4">PAGEdge::PAGEdgeSetTy</a>&amp; addrs = <a class="code" href="classSVF_1_1ConstraintGraph.html#ad5d89d94b16c167a593aa2a0c8e6ad9c">getPAGEdgeSet</a>(<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a0a9a0f650e864e89b7cbb3dc8c8aa197">PAGEdge::Addr</a>);</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="keywordflow">for</span> (PAGEdge::PAGEdgeSetTy::iterator iter = addrs.begin(), eiter =</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; addrs.end(); iter != eiter; ++iter)</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; {</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <a class="code" href="classSVF_1_1SVFStmt.html">PAGEdge</a>* edge = *iter;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <a class="code" href="classSVF_1_1ConstraintGraph.html#a56cfcc39637cf5208f65297a63dde266">addAddrCGEdge</a>(edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#ae6792506a0150a9400d635eceab7f9e7">getSrcID</a>(),edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#ad9edb45e74ae675d9da82f5acf02d56e">getDstID</a>());</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; }</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <a class="code" href="classSVF_1_1SVFStmt.html#af02857ff13e61f81d332d83eb376bdb4">PAGEdge::PAGEdgeSetTy</a>&amp; copys = <a class="code" href="classSVF_1_1ConstraintGraph.html#ad5d89d94b16c167a593aa2a0c8e6ad9c">getPAGEdgeSet</a>(<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad3469cdfb64f05163b5310b731b221da">PAGEdge::Copy</a>);</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="keywordflow">for</span> (PAGEdge::PAGEdgeSetTy::iterator iter = copys.begin(), eiter =</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; copys.end(); iter != eiter; ++iter)</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; {</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <a class="code" href="classSVF_1_1SVFStmt.html">PAGEdge</a>* edge = *iter;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <a class="code" href="classSVF_1_1ConstraintGraph.html#a60bb27100e8c264be2add004069d1758">addCopyCGEdge</a>(edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#ae6792506a0150a9400d635eceab7f9e7">getSrcID</a>(),edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#ad9edb45e74ae675d9da82f5acf02d56e">getDstID</a>());</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; }</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <a class="code" href="classSVF_1_1SVFStmt.html#af02857ff13e61f81d332d83eb376bdb4">PAGEdge::PAGEdgeSetTy</a>&amp; phis = <a class="code" href="classSVF_1_1ConstraintGraph.html#ad5d89d94b16c167a593aa2a0c8e6ad9c">getPAGEdgeSet</a>(<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a6b3cd98eeb47c8475e7ee64480dcdee9">PAGEdge::Phi</a>);</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="keywordflow">for</span> (PAGEdge::PAGEdgeSetTy::iterator iter = phis.begin(), eiter =</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; phis.end(); iter != eiter; ++iter)</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; {</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1PhiPE.html">PhiPE</a>* edge = SVFUtil::cast&lt;PhiPE&gt;(*iter);</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">const</span> <span class="keyword">auto</span> opVar : edge-&gt;<a class="code" href="classSVF_1_1MultiOpndStmt.html#a0441f2646fed28830439c41a0704ed4b">getOpndVars</a>())</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <a class="code" href="classSVF_1_1ConstraintGraph.html#a60bb27100e8c264be2add004069d1758">addCopyCGEdge</a>(opVar-&gt;getId(),edge-&gt;<a class="code" href="classSVF_1_1MultiOpndStmt.html#a71a530eb9fa9f7e273e471b4a75a039e">getResID</a>());</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; }</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <a class="code" href="classSVF_1_1SVFStmt.html#af02857ff13e61f81d332d83eb376bdb4">PAGEdge::PAGEdgeSetTy</a>&amp; calls = <a class="code" href="classSVF_1_1ConstraintGraph.html#ad5d89d94b16c167a593aa2a0c8e6ad9c">getPAGEdgeSet</a>(<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a97ca16eba4c5f92e16388f0cdbcfcc00">PAGEdge::Call</a>);</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keywordflow">for</span> (PAGEdge::PAGEdgeSetTy::iterator iter = calls.begin(), eiter =</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; calls.end(); iter != eiter; ++iter)</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; {</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <a class="code" href="classSVF_1_1SVFStmt.html">PAGEdge</a>* edge = *iter;</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <a class="code" href="classSVF_1_1ConstraintGraph.html#a60bb27100e8c264be2add004069d1758">addCopyCGEdge</a>(edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#ae6792506a0150a9400d635eceab7f9e7">getSrcID</a>(),edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#ad9edb45e74ae675d9da82f5acf02d56e">getDstID</a>());</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; }</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <a class="code" href="classSVF_1_1SVFStmt.html#af02857ff13e61f81d332d83eb376bdb4">PAGEdge::PAGEdgeSetTy</a>&amp; rets = <a class="code" href="classSVF_1_1ConstraintGraph.html#ad5d89d94b16c167a593aa2a0c8e6ad9c">getPAGEdgeSet</a>(<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a8d269a45adf13e69468f0357222ab2af">PAGEdge::Ret</a>);</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="keywordflow">for</span> (PAGEdge::PAGEdgeSetTy::iterator iter = rets.begin(), eiter =</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; rets.end(); iter != eiter; ++iter)</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; {</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <a class="code" href="classSVF_1_1SVFStmt.html">PAGEdge</a>* edge = *iter;</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <a class="code" href="classSVF_1_1ConstraintGraph.html#a60bb27100e8c264be2add004069d1758">addCopyCGEdge</a>(edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#ae6792506a0150a9400d635eceab7f9e7">getSrcID</a>(),edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#ad9edb45e74ae675d9da82f5acf02d56e">getDstID</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; <a class="code" href="classSVF_1_1SVFStmt.html#af02857ff13e61f81d332d83eb376bdb4">PAGEdge::PAGEdgeSetTy</a>&amp; tdfks = <a class="code" href="classSVF_1_1ConstraintGraph.html#ad5d89d94b16c167a593aa2a0c8e6ad9c">getPAGEdgeSet</a>(<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a375b956af2119d7abca8f1995f7701fd">PAGEdge::ThreadFork</a>);</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="keywordflow">for</span> (PAGEdge::PAGEdgeSetTy::iterator iter = tdfks.begin(), eiter =</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; tdfks.end(); iter != eiter; ++iter)</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; {</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <a class="code" href="classSVF_1_1SVFStmt.html">PAGEdge</a>* edge = *iter;</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <a class="code" href="classSVF_1_1ConstraintGraph.html#a60bb27100e8c264be2add004069d1758">addCopyCGEdge</a>(edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#ae6792506a0150a9400d635eceab7f9e7">getSrcID</a>(),edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#ad9edb45e74ae675d9da82f5acf02d56e">getDstID</a>());</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; }</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <a class="code" href="classSVF_1_1SVFStmt.html#af02857ff13e61f81d332d83eb376bdb4">PAGEdge::PAGEdgeSetTy</a>&amp; tdjns = <a class="code" href="classSVF_1_1ConstraintGraph.html#ad5d89d94b16c167a593aa2a0c8e6ad9c">getPAGEdgeSet</a>(<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a3c3f8883c2d3b50aef6331d5da97ffb0">PAGEdge::ThreadJoin</a>);</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <span class="keywordflow">for</span> (PAGEdge::PAGEdgeSetTy::iterator iter = tdjns.begin(), eiter =</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; tdjns.end(); iter != eiter; ++iter)</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; {</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <a class="code" href="classSVF_1_1SVFStmt.html">PAGEdge</a>* edge = *iter;</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <a class="code" href="classSVF_1_1ConstraintGraph.html#a60bb27100e8c264be2add004069d1758">addCopyCGEdge</a>(edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#ae6792506a0150a9400d635eceab7f9e7">getSrcID</a>(),edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#ad9edb45e74ae675d9da82f5acf02d56e">getDstID</a>());</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; }</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <a class="code" href="classSVF_1_1SVFStmt.html#af02857ff13e61f81d332d83eb376bdb4">PAGEdge::PAGEdgeSetTy</a>&amp; ngeps = <a class="code" href="classSVF_1_1ConstraintGraph.html#ad5d89d94b16c167a593aa2a0c8e6ad9c">getPAGEdgeSet</a>(<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ac2089ffeab3f27354b2094758c805746">PAGEdge::NormalGep</a>);</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <span class="keywordflow">for</span> (PAGEdge::PAGEdgeSetTy::iterator iter = ngeps.begin(), eiter =</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; ngeps.end(); iter != eiter; ++iter)</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; {</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <a class="code" href="classSVF_1_1NormalGepPE.html">NormalGepPE</a>* edge = SVFUtil::cast&lt;NormalGepPE&gt;(*iter);</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <a class="code" href="classSVF_1_1ConstraintGraph.html#a5aac453464955185ca0d47e91db9df7b">addNormalGepCGEdge</a>(edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#ae6792506a0150a9400d635eceab7f9e7">getSrcID</a>(),edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#ad9edb45e74ae675d9da82f5acf02d56e">getDstID</a>(),edge-&gt;<a class="code" href="classSVF_1_1NormalGepPE.html#ac086d39e0f554705b627c2fc07a33875">getLocationSet</a>());</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; }</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <a class="code" href="classSVF_1_1SVFStmt.html#af02857ff13e61f81d332d83eb376bdb4">PAGEdge::PAGEdgeSetTy</a>&amp; vgeps = <a class="code" href="classSVF_1_1ConstraintGraph.html#ad5d89d94b16c167a593aa2a0c8e6ad9c">getPAGEdgeSet</a>(<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a6b3a8902fc2aa68428e271012861a2a2">PAGEdge::VariantGep</a>);</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="keywordflow">for</span> (PAGEdge::PAGEdgeSetTy::iterator iter = vgeps.begin(), eiter =</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; vgeps.end(); iter != eiter; ++iter)</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; {</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <a class="code" href="classSVF_1_1VariantGepPE.html">VariantGepPE</a>* edge = SVFUtil::cast&lt;VariantGepPE&gt;(*iter);</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <a class="code" href="classSVF_1_1ConstraintGraph.html#a6902cabb252b1eaadb3c8220b4581a2f">addVariantGepCGEdge</a>(edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#ae6792506a0150a9400d635eceab7f9e7">getSrcID</a>(),edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#ad9edb45e74ae675d9da82f5acf02d56e">getDstID</a>());</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; }</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <a class="code" href="classSVF_1_1SVFStmt.html#af02857ff13e61f81d332d83eb376bdb4">PAGEdge::PAGEdgeSetTy</a>&amp; stores = <a class="code" href="classSVF_1_1ConstraintGraph.html#ad5d89d94b16c167a593aa2a0c8e6ad9c">getPAGEdgeSet</a>(<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a62ac8480c43fcc657c631ec0003b15d5">PAGEdge::Load</a>);</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <span class="keywordflow">for</span> (PAGEdge::PAGEdgeSetTy::iterator iter = stores.begin(), eiter =</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; stores.end(); iter != eiter; ++iter)</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; {</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <a class="code" href="classSVF_1_1SVFStmt.html">PAGEdge</a>* edge = *iter;</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <a class="code" href="classSVF_1_1ConstraintGraph.html#a1e5a23fbd08cf4186775baffbd6a7934">addLoadCGEdge</a>(edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#ae6792506a0150a9400d635eceab7f9e7">getSrcID</a>(),edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#ad9edb45e74ae675d9da82f5acf02d56e">getDstID</a>());</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; }</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <a class="code" href="classSVF_1_1SVFStmt.html#af02857ff13e61f81d332d83eb376bdb4">PAGEdge::PAGEdgeSetTy</a>&amp; loads = <a class="code" href="classSVF_1_1ConstraintGraph.html#ad5d89d94b16c167a593aa2a0c8e6ad9c">getPAGEdgeSet</a>(<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9aa0f700b514c431ec5329aec49df56dcc">PAGEdge::Store</a>);</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="keywordflow">for</span> (PAGEdge::PAGEdgeSetTy::iterator iter = loads.begin(), eiter =</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; loads.end(); iter != eiter; ++iter)</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; {</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <a class="code" href="classSVF_1_1SVFStmt.html">PAGEdge</a>* edge = *iter;</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <a class="code" href="classSVF_1_1ConstraintGraph.html#a633666953f8d6675961981c4eab1adb0">addStoreCGEdge</a>(edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#ae6792506a0150a9400d635eceab7f9e7">getSrcID</a>(),edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#ad9edb45e74ae675d9da82f5acf02d56e">getDstID</a>());</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; }</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;}</div><div class="ttc" id="classSVF_1_1GenericGraph_html_a0d9744b1b0e7a09a6f7af29188e243b7"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#a0d9744b1b0e7a09a6f7af29188e243b7">SVF::GenericGraph::begin</a></div><div class="ttdeci">iterator begin()</div><div class="ttdoc">Iterators. </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00361">GenericGraph.h:361</a></div></div>
859
+ <div class="ttc" id="classSVF_1_1NormalGepPE_html_ac086d39e0f554705b627c2fc07a33875"><div class="ttname"><a href="classSVF_1_1NormalGepPE.html#ac086d39e0f554705b627c2fc07a33875">SVF::NormalGepPE::getLocationSet</a></div><div class="ttdeci">const LocationSet &amp; getLocationSet() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00743">SVFStatements.h:743</a></div></div>
860
+ <div class="ttc" id="classSVF_1_1MultiOpndStmt_html_a0441f2646fed28830439c41a0704ed4b"><div class="ttname"><a href="classSVF_1_1MultiOpndStmt.html#a0441f2646fed28830439c41a0704ed4b">SVF::MultiOpndStmt::getOpndVars</a></div><div class="ttdeci">const OPVars &amp; getOpndVars() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00311">SVFStatements.h:311</a></div></div>
860
861
  <div class="ttc" id="classSVF_1_1SVFStmt_html_a0ab8621e75e75f03425c323b3ed62ce9a97ca16eba4c5f92e16388f0cdbcfcc00"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a97ca16eba4c5f92e16388f0cdbcfcc00">SVF::SVFStmt::Call</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00056">SVFStatements.h:56</a></div></div>
862
+ <div class="ttc" id="classSVF_1_1SVFStmt_html_a0ab8621e75e75f03425c323b3ed62ce9a6b3cd98eeb47c8475e7ee64480dcdee9"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a6b3cd98eeb47c8475e7ee64480dcdee9">SVF::SVFStmt::Phi</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00056">SVFStatements.h:56</a></div></div>
861
863
  <div class="ttc" id="classSVF_1_1SVFStmt_html_a0ab8621e75e75f03425c323b3ed62ce9a62ac8480c43fcc657c631ec0003b15d5"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a62ac8480c43fcc657c631ec0003b15d5">SVF::SVFStmt::Load</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00056">SVFStatements.h:56</a></div></div>
862
864
  <div class="ttc" id="classSVF_1_1GenericEdge_html_ad9edb45e74ae675d9da82f5acf02d56e"><div class="ttname"><a href="classSVF_1_1GenericEdge.html#ad9edb45e74ae675d9da82f5acf02d56e">SVF::GenericEdge::getDstID</a></div><div class="ttdeci">NodeID getDstID() const</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00077">GenericGraph.h:77</a></div></div>
863
- <div class="ttc" id="classSVF_1_1ConstraintGraph_html_a56cfcc39637cf5208f65297a63dde266"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a56cfcc39637cf5208f65297a63dde266">SVF::ConstraintGraph::addAddrCGEdge</a></div><div class="ttdeci">AddrCGEdge * addAddrCGEdge(NodeID src, NodeID dst)</div><div class="ttdoc">Add a SVFIR edge into Edge map. </div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8cpp_source.html#l00156">ConsG.cpp:156</a></div></div>
865
+ <div class="ttc" id="classSVF_1_1ConstraintGraph_html_a56cfcc39637cf5208f65297a63dde266"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a56cfcc39637cf5208f65297a63dde266">SVF::ConstraintGraph::addAddrCGEdge</a></div><div class="ttdeci">AddrCGEdge * addAddrCGEdge(NodeID src, NodeID dst)</div><div class="ttdoc">Add a SVFIR edge into Edge map. </div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8cpp_source.html#l00165">ConsG.cpp:165</a></div></div>
864
866
  <div class="ttc" id="classSVF_1_1SVFStmt_html_a0ab8621e75e75f03425c323b3ed62ce9a0a9a0f650e864e89b7cbb3dc8c8aa197"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a0a9a0f650e864e89b7cbb3dc8c8aa197">SVF::SVFStmt::Addr</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00056">SVFStatements.h:56</a></div></div>
865
867
  <div class="ttc" id="classSVF_1_1GenericEdge_html_ae6792506a0150a9400d635eceab7f9e7"><div class="ttname"><a href="classSVF_1_1GenericEdge.html#ae6792506a0150a9400d635eceab7f9e7">SVF::GenericEdge::getSrcID</a></div><div class="ttdeci">NodeID getSrcID() const</div><div class="ttdoc">get methods of the components </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00073">GenericGraph.h:73</a></div></div>
866
- <div class="ttc" id="classSVF_1_1ConstraintGraph_html_a633666953f8d6675961981c4eab1adb0"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a633666953f8d6675961981c4eab1adb0">SVF::ConstraintGraph::addStoreCGEdge</a></div><div class="ttdeci">StoreCGEdge * addStoreCGEdge(NodeID src, NodeID dst)</div><div class="ttdoc">Add Store edge. </div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8cpp_source.html#l00248">ConsG.cpp:248</a></div></div>
867
- <div class="ttc" id="classSVF_1_1ConstraintGraph_html_a1e5a23fbd08cf4186775baffbd6a7934"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a1e5a23fbd08cf4186775baffbd6a7934">SVF::ConstraintGraph::addLoadCGEdge</a></div><div class="ttdeci">LoadCGEdge * addLoadCGEdge(NodeID src, NodeID dst)</div><div class="ttdoc">Add Load edge. </div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8cpp_source.html#l00230">ConsG.cpp:230</a></div></div>
868
+ <div class="ttc" id="classSVF_1_1ConstraintGraph_html_a633666953f8d6675961981c4eab1adb0"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a633666953f8d6675961981c4eab1adb0">SVF::ConstraintGraph::addStoreCGEdge</a></div><div class="ttdeci">StoreCGEdge * addStoreCGEdge(NodeID src, NodeID dst)</div><div class="ttdoc">Add Store edge. </div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8cpp_source.html#l00257">ConsG.cpp:257</a></div></div>
869
+ <div class="ttc" id="classSVF_1_1ConstraintGraph_html_a1e5a23fbd08cf4186775baffbd6a7934"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a1e5a23fbd08cf4186775baffbd6a7934">SVF::ConstraintGraph::addLoadCGEdge</a></div><div class="ttdeci">LoadCGEdge * addLoadCGEdge(NodeID src, NodeID dst)</div><div class="ttdoc">Add Load edge. </div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8cpp_source.html#l00239">ConsG.cpp:239</a></div></div>
868
870
  <div class="ttc" id="classSVF_1_1SVFStmt_html_a0ab8621e75e75f03425c323b3ed62ce9a6b3a8902fc2aa68428e271012861a2a2"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a6b3a8902fc2aa68428e271012861a2a2">SVF::SVFStmt::VariantGep</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00056">SVFStatements.h:56</a></div></div>
869
871
  <div class="ttc" id="classSVF_1_1ConstraintGraph_html_a5ea9c47d232f36b66d985f979f33293b"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a5ea9c47d232f36b66d985f979f33293b">SVF::ConstraintGraph::addConstraintNode</a></div><div class="ttdeci">void addConstraintNode(ConstraintNode *node, NodeID id)</div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8h_source.html#l00112">ConsG.h:112</a></div></div>
870
872
  <div class="ttc" id="classSVF_1_1SVFStmt_html_a0ab8621e75e75f03425c323b3ed62ce9ad3469cdfb64f05163b5310b731b221da"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad3469cdfb64f05163b5310b731b221da">SVF::SVFStmt::Copy</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00056">SVFStatements.h:56</a></div></div>
871
873
  <div class="ttc" id="classSVF_1_1SVFStmt_html_a0ab8621e75e75f03425c323b3ed62ce9a8d269a45adf13e69468f0357222ab2af"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a8d269a45adf13e69468f0357222ab2af">SVF::SVFStmt::Ret</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00056">SVFStatements.h:56</a></div></div>
872
874
  <div class="ttc" id="classSVF_1_1GenericGraph_html_a4bef15157423cef48dc7333a803cd27d"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#a4bef15157423cef48dc7333a803cd27d">SVF::GenericGraph::end</a></div><div class="ttdeci">iterator end()</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00365">GenericGraph.h:365</a></div></div>
873
875
  <div class="ttc" id="classSVF_1_1GenericGraph_html_ac213302cf5c7cdf3b66f7b18649d0fbc"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#ac213302cf5c7cdf3b66f7b18649d0fbc">SVF::GenericGraph&lt; SVFVar, SVFStmt &gt;::iterator</a></div><div class="ttdeci">IDToNodeMapTy::iterator iterator</div><div class="ttdoc">Node Iterators. </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00338">GenericGraph.h:338</a></div></div>
874
- <div class="ttc" id="classSVF_1_1VariantGepPE_html"><div class="ttname"><a href="classSVF_1_1VariantGepPE.html">SVF::VariantGepPE</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00522">SVFStatements.h:522</a></div></div>
875
- <div class="ttc" id="classSVF_1_1NormalGepPE_html"><div class="ttname"><a href="classSVF_1_1NormalGepPE.html">SVF::NormalGepPE</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00472">SVFStatements.h:472</a></div></div>
876
- <div class="ttc" id="classSVF_1_1ConstraintGraph_html_a60bb27100e8c264be2add004069d1758"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a60bb27100e8c264be2add004069d1758">SVF::ConstraintGraph::addCopyCGEdge</a></div><div class="ttdeci">CopyCGEdge * addCopyCGEdge(NodeID src, NodeID dst)</div><div class="ttdoc">Add Copy edge. </div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8cpp_source.html#l00173">ConsG.cpp:173</a></div></div>
876
+ <div class="ttc" id="classSVF_1_1VariantGepPE_html"><div class="ttname"><a href="classSVF_1_1VariantGepPE.html">SVF::VariantGepPE</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00754">SVFStatements.h:754</a></div></div>
877
+ <div class="ttc" id="classSVF_1_1NormalGepPE_html"><div class="ttname"><a href="classSVF_1_1NormalGepPE.html">SVF::NormalGepPE</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00704">SVFStatements.h:704</a></div></div>
878
+ <div class="ttc" id="classSVF_1_1ConstraintGraph_html_a60bb27100e8c264be2add004069d1758"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a60bb27100e8c264be2add004069d1758">SVF::ConstraintGraph::addCopyCGEdge</a></div><div class="ttdeci">CopyCGEdge * addCopyCGEdge(NodeID src, NodeID dst)</div><div class="ttdoc">Add Copy edge. </div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8cpp_source.html#l00182">ConsG.cpp:182</a></div></div>
877
879
  <div class="ttc" id="classSVF_1_1SVFStmt_html_a0ab8621e75e75f03425c323b3ed62ce9a3c3f8883c2d3b50aef6331d5da97ffb0"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a3c3f8883c2d3b50aef6331d5da97ffb0">SVF::SVFStmt::ThreadJoin</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00056">SVFStatements.h:56</a></div></div>
878
880
  <div class="ttc" id="classSVF_1_1ConstraintNode_html"><div class="ttname"><a href="classSVF_1_1ConstraintNode.html">SVF::ConstraintNode</a></div><div class="ttdef"><b>Definition:</b> <a href="ConsGNode_8h_source.html#l00040">ConsGNode.h:40</a></div></div>
879
881
  <div class="ttc" id="classSVF_1_1SVFStmt_html_a0ab8621e75e75f03425c323b3ed62ce9ac2089ffeab3f27354b2094758c805746"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ac2089ffeab3f27354b2094758c805746">SVF::SVFStmt::NormalGep</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00056">SVFStatements.h:56</a></div></div>
880
882
  <div class="ttc" id="classSVF_1_1ConstraintGraph_html_ad5d89d94b16c167a593aa2a0c8e6ad9c"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#ad5d89d94b16c167a593aa2a0c8e6ad9c">SVF::ConstraintGraph::getPAGEdgeSet</a></div><div class="ttdeci">PAGEdge::PAGEdgeSetTy &amp; getPAGEdgeSet(PAGEdge::PEDGEK kind)</div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8h_source.html#l00070">ConsG.h:70</a></div></div>
881
883
  <div class="ttc" id="classSVF_1_1SVFStmt_html_a0ab8621e75e75f03425c323b3ed62ce9a375b956af2119d7abca8f1995f7701fd"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a375b956af2119d7abca8f1995f7701fd">SVF::SVFStmt::ThreadFork</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00056">SVFStatements.h:56</a></div></div>
882
- <div class="ttc" id="classSVF_1_1ConstraintGraph_html_a5aac453464955185ca0d47e91db9df7b"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a5aac453464955185ca0d47e91db9df7b">SVF::ConstraintGraph::addNormalGepCGEdge</a></div><div class="ttdeci">NormalGepCGEdge * addNormalGepCGEdge(NodeID src, NodeID dst, const LocationSet &amp;ls)</div><div class="ttdoc">Add Gep edge. </div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8cpp_source.html#l00194">ConsG.cpp:194</a></div></div>
884
+ <div class="ttc" id="classSVF_1_1ConstraintGraph_html_a5aac453464955185ca0d47e91db9df7b"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a5aac453464955185ca0d47e91db9df7b">SVF::ConstraintGraph::addNormalGepCGEdge</a></div><div class="ttdeci">NormalGepCGEdge * addNormalGepCGEdge(NodeID src, NodeID dst, const LocationSet &amp;ls)</div><div class="ttdoc">Add Gep edge. </div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8cpp_source.html#l00203">ConsG.cpp:203</a></div></div>
883
885
  <div class="ttc" id="classSVF_1_1SVFStmt_html_a0ab8621e75e75f03425c323b3ed62ce9aa0f700b514c431ec5329aec49df56dcc"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9aa0f700b514c431ec5329aec49df56dcc">SVF::SVFStmt::Store</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00056">SVFStatements.h:56</a></div></div>
884
- <div class="ttc" id="classSVF_1_1SVFStmt_html_af02857ff13e61f81d332d83eb376bdb4"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#af02857ff13e61f81d332d83eb376bdb4">SVF::SVFStmt::PAGEdgeSetTy</a></div><div class="ttdeci">GenericNode&lt; SVFVar, SVFStmt &gt;::GEdgeSetTy PAGEdgeSetTy</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00169">SVFStatements.h:169</a></div></div>
885
- <div class="ttc" id="classSVF_1_1ConstraintGraph_html_a6902cabb252b1eaadb3c8220b4581a2f"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a6902cabb252b1eaadb3c8220b4581a2f">SVF::ConstraintGraph::addVariantGepCGEdge</a></div><div class="ttdeci">VariantGepCGEdge * addVariantGepCGEdge(NodeID src, NodeID dst)</div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8cpp_source.html#l00212">ConsG.cpp:212</a></div></div>
886
+ <div class="ttc" id="classSVF_1_1SVFStmt_html_af02857ff13e61f81d332d83eb376bdb4"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#af02857ff13e61f81d332d83eb376bdb4">SVF::SVFStmt::PAGEdgeSetTy</a></div><div class="ttdeci">GenericNode&lt; SVFVar, SVFStmt &gt;::GEdgeSetTy PAGEdgeSetTy</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00178">SVFStatements.h:178</a></div></div>
887
+ <div class="ttc" id="classSVF_1_1MultiOpndStmt_html_a71a530eb9fa9f7e273e471b4a75a039e"><div class="ttname"><a href="classSVF_1_1MultiOpndStmt.html#a71a530eb9fa9f7e273e471b4a75a039e">SVF::MultiOpndStmt::getResID</a></div><div class="ttdeci">NodeID getResID() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8cpp_source.html#l00254">SVFStatements.cpp:254</a></div></div>
888
+ <div class="ttc" id="classSVF_1_1PhiPE_html"><div class="ttname"><a href="classSVF_1_1PhiPE.html">SVF::PhiPE</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00328">SVFStatements.h:328</a></div></div>
889
+ <div class="ttc" id="classSVF_1_1ConstraintGraph_html_a6902cabb252b1eaadb3c8220b4581a2f"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a6902cabb252b1eaadb3c8220b4581a2f">SVF::ConstraintGraph::addVariantGepCGEdge</a></div><div class="ttdeci">VariantGepCGEdge * addVariantGepCGEdge(NodeID src, NodeID dst)</div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8cpp_source.html#l00221">ConsG.cpp:221</a></div></div>
886
890
  <div class="ttc" id="classSVF_1_1ConstraintGraph_html_aa8b09f64c6e4bbd081c6062a1a0e8948"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#aa8b09f64c6e4bbd081c6062a1a0e8948">SVF::ConstraintGraph::pag</a></div><div class="ttdeci">SVFIR * pag</div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8h_source.html#l00055">ConsG.h:55</a></div></div>
887
891
  <div class="ttc" id="classSVF_1_1SVFStmt_html"><div class="ttname"><a href="classSVF_1_1SVFStmt.html">SVF::SVFStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00047">SVFStatements.h:47</a></div></div>
888
892
  </div><!-- fragment -->
@@ -912,8 +916,8 @@ Additional Inherited Members</h2></td></tr>
912
916
  </div><div class="memdoc">
913
917
  <p>Memory has been cleaned up at <a class="el" href="classSVF_1_1GenericGraph.html">GenericGraph</a> </p>
914
918
 
915
- <p class="definition">Definition at line <a class="el" href="ConsG_8cpp_source.html#l00137">137</a> of file <a class="el" href="ConsG_8cpp_source.html">ConsG.cpp</a>.</p>
916
- <div class="fragment"><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;{</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;}</div></div><!-- fragment -->
919
+ <p class="definition">Definition at line <a class="el" href="ConsG_8cpp_source.html#l00146">146</a> of file <a class="el" href="ConsG_8cpp_source.html">ConsG.cpp</a>.</p>
920
+ <div class="fragment"><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;{</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;}</div></div><!-- fragment -->
917
921
  </div>
918
922
  </div>
919
923
  <a id="af9fc8308845628fe8900528573e30462"></a>
@@ -935,8 +939,8 @@ Additional Inherited Members</h2></td></tr>
935
939
  <p>Dump graph into dot file. </p>
936
940
  <p>Dump constraint graph </p>
937
941
 
938
- <p class="definition">Definition at line <a class="el" href="ConsG_8cpp_source.html#l00524">524</a> of file <a class="el" href="ConsG_8cpp_source.html">ConsG.cpp</a>.</p>
939
- <div class="fragment"><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; <a class="code" href="classllvm_1_1GraphPrinter.html#a53b3809728c30389a594076097884b82">GraphPrinter::WriteGraphToFile</a>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a85ab6b592fefc45a0674d3295e01638f">outs</a>(), name, <span class="keyword">this</span>);</div><div class="line"><a name="l00527"></a><span class="lineno"> 527</span>&#160;}</div><div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a85ab6b592fefc45a0674d3295e01638f"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a85ab6b592fefc45a0674d3295e01638f">SVF::SVFUtil::outs</a></div><div class="ttdeci">raw_ostream &amp; outs()</div><div class="ttdoc">Overwrite llvm::outs() </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00049">SVFUtil.h:49</a></div></div>
942
+ <p class="definition">Definition at line <a class="el" href="ConsG_8cpp_source.html#l00533">533</a> of file <a class="el" href="ConsG_8cpp_source.html">ConsG.cpp</a>.</p>
943
+ <div class="fragment"><div class="line"><a name="l00534"></a><span class="lineno"> 534</span>&#160;{</div><div class="line"><a name="l00535"></a><span class="lineno"> 535</span>&#160; <a class="code" href="classllvm_1_1GraphPrinter.html#a53b3809728c30389a594076097884b82">GraphPrinter::WriteGraphToFile</a>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a85ab6b592fefc45a0674d3295e01638f">outs</a>(), name, <span class="keyword">this</span>);</div><div class="line"><a name="l00536"></a><span class="lineno"> 536</span>&#160;}</div><div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a85ab6b592fefc45a0674d3295e01638f"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a85ab6b592fefc45a0674d3295e01638f">SVF::SVFUtil::outs</a></div><div class="ttdeci">raw_ostream &amp; outs()</div><div class="ttdoc">Overwrite llvm::outs() </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00049">SVFUtil.h:49</a></div></div>
940
944
  <div class="ttc" id="classllvm_1_1GraphPrinter_html_a53b3809728c30389a594076097884b82"><div class="ttname"><a href="classllvm_1_1GraphPrinter.html#a53b3809728c30389a594076097884b82">llvm::GraphPrinter::WriteGraphToFile</a></div><div class="ttdeci">static void WriteGraphToFile(llvm::raw_ostream &amp;O, const std::string &amp;GraphName, const GraphType &amp;GT, bool simple=false)</div><div class="ttdef"><b>Definition:</b> <a href="GraphPrinter_8h_source.html#l00057">GraphPrinter.h:57</a></div></div>
941
945
  </div><!-- fragment -->
942
946
  </div>
@@ -997,7 +1001,7 @@ Additional Inherited Members</h2></td></tr>
997
1001
  </div><div class="memdoc">
998
1002
 
999
1003
  <p class="definition">Definition at line <a class="el" href="ConsG_8h_source.html#l00313">313</a> of file <a class="el" href="ConsG_8h_source.html">ConsG.h</a>.</p>
1000
- <div class="fragment"><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; {</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ConstraintGraph.html#aa8b09f64c6e4bbd081c6062a1a0e8948">pag</a>-&gt;<a class="code" href="classSVF_1_1SVFIR.html#a5a635bc1142c388da1db87d9172c03ab">getAllFieldsObjNode</a>(<span class="keywordtype">id</span>);</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; }</div><div class="ttc" id="classSVF_1_1SVFIR_html_a5a635bc1142c388da1db87d9172c03ab"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a5a635bc1142c388da1db87d9172c03ab">SVF::SVFIR::getAllFieldsObjNode</a></div><div class="ttdeci">NodeBS &amp; getAllFieldsObjNode(const MemObj *obj)</div><div class="ttdoc">Get all fields of an object. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8cpp_source.html#l00402">SVFIR.cpp:402</a></div></div>
1004
+ <div class="fragment"><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; {</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ConstraintGraph.html#aa8b09f64c6e4bbd081c6062a1a0e8948">pag</a>-&gt;<a class="code" href="classSVF_1_1SVFIR.html#a5a635bc1142c388da1db87d9172c03ab">getAllFieldsObjNode</a>(<span class="keywordtype">id</span>);</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; }</div><div class="ttc" id="classSVF_1_1SVFIR_html_a5a635bc1142c388da1db87d9172c03ab"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a5a635bc1142c388da1db87d9172c03ab">SVF::SVFIR::getAllFieldsObjNode</a></div><div class="ttdeci">NodeBS &amp; getAllFieldsObjNode(const MemObj *obj)</div><div class="ttdoc">Get all fields of an object. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8cpp_source.html#l00458">SVFIR.cpp:458</a></div></div>
1001
1005
  <div class="ttc" id="classSVF_1_1ConstraintGraph_html_aa8b09f64c6e4bbd081c6062a1a0e8948"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#aa8b09f64c6e4bbd081c6062a1a0e8948">SVF::ConstraintGraph::pag</a></div><div class="ttdeci">SVFIR * pag</div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8h_source.html#l00055">ConsG.h:55</a></div></div>
1002
1006
  </div><!-- fragment -->
1003
1007
  </div>
@@ -1028,7 +1032,7 @@ Additional Inherited Members</h2></td></tr>
1028
1032
 
1029
1033
  <p class="definition">Definition at line <a class="el" href="ConsG_8h_source.html#l00317">317</a> of file <a class="el" href="ConsG_8h_source.html">ConsG.h</a>.</p>
1030
1034
  <div class="fragment"><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; {</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ConstraintGraph.html#aa8b09f64c6e4bbd081c6062a1a0e8948">pag</a>-&gt;<a class="code" href="classSVF_1_1SVFIR.html#a4720426ab75f8d07e780995ffad7d51a">getBaseObjNode</a>(<span class="keywordtype">id</span>);</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; }</div><div class="ttc" id="classSVF_1_1ConstraintGraph_html_aa8b09f64c6e4bbd081c6062a1a0e8948"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#aa8b09f64c6e4bbd081c6062a1a0e8948">SVF::ConstraintGraph::pag</a></div><div class="ttdeci">SVFIR * pag</div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8h_source.html#l00055">ConsG.h:55</a></div></div>
1031
- <div class="ttc" id="classSVF_1_1SVFIR_html_a4720426ab75f8d07e780995ffad7d51a"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a4720426ab75f8d07e780995ffad7d51a">SVF::SVFIR::getBaseObjNode</a></div><div class="ttdeci">NodeID getBaseObjNode(NodeID id) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00568">SVFIR.h:568</a></div></div>
1035
+ <div class="ttc" id="classSVF_1_1SVFIR_html_a4720426ab75f8d07e780995ffad7d51a"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a4720426ab75f8d07e780995ffad7d51a">SVF::SVFIR::getBaseObjNode</a></div><div class="ttdeci">NodeID getBaseObjNode(NodeID id) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00443">SVFIR.h:443</a></div></div>
1032
1036
  </div><!-- fragment -->
1033
1037
  </div>
1034
1038
  </div>
@@ -1056,7 +1060,7 @@ Additional Inherited Members</h2></td></tr>
1056
1060
  </div><div class="memdoc">
1057
1061
 
1058
1062
  <p class="definition">Definition at line <a class="el" href="ConsG_8h_source.html#l00305">305</a> of file <a class="el" href="ConsG_8h_source.html">ConsG.h</a>.</p>
1059
- <div class="fragment"><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="keywordflow">return</span> <a class="code" href="classSVF_1_1ConstraintGraph.html#aa8b09f64c6e4bbd081c6062a1a0e8948">pag</a>-&gt;<a class="code" href="classSVF_1_1IRGraph.html#a3ce34b9fcb651689bce44ab48fbcdff0">getBlackHoleNode</a>();</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; }</div><div class="ttc" id="classSVF_1_1IRGraph_html_a3ce34b9fcb651689bce44ab48fbcdff0"><div class="ttname"><a href="classSVF_1_1IRGraph.html#a3ce34b9fcb651689bce44ab48fbcdff0">SVF::IRGraph::getBlackHoleNode</a></div><div class="ttdeci">NodeID getBlackHoleNode() const</div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#l00153">IRGraph.h:153</a></div></div>
1063
+ <div class="fragment"><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="keywordflow">return</span> <a class="code" href="classSVF_1_1ConstraintGraph.html#aa8b09f64c6e4bbd081c6062a1a0e8948">pag</a>-&gt;<a class="code" href="classSVF_1_1IRGraph.html#a3ce34b9fcb651689bce44ab48fbcdff0">getBlackHoleNode</a>();</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; }</div><div class="ttc" id="classSVF_1_1IRGraph_html_a3ce34b9fcb651689bce44ab48fbcdff0"><div class="ttname"><a href="classSVF_1_1IRGraph.html#a3ce34b9fcb651689bce44ab48fbcdff0">SVF::IRGraph::getBlackHoleNode</a></div><div class="ttdeci">NodeID getBlackHoleNode() const</div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#l00144">IRGraph.h:144</a></div></div>
1060
1064
  <div class="ttc" id="classSVF_1_1ConstraintGraph_html_aa8b09f64c6e4bbd081c6062a1a0e8948"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#aa8b09f64c6e4bbd081c6062a1a0e8948">SVF::ConstraintGraph::pag</a></div><div class="ttdeci">SVFIR * pag</div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8h_source.html#l00055">ConsG.h:55</a></div></div>
1061
1065
  </div><!-- fragment -->
1062
1066
  </div>
@@ -1211,7 +1215,7 @@ Additional Inherited Members</h2></td></tr>
1211
1215
  <div class="fragment"><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; {</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> fi = <a class="code" href="classSVF_1_1ConstraintGraph.html#aa8b09f64c6e4bbd081c6062a1a0e8948">pag</a>-&gt;<a class="code" href="classSVF_1_1SVFIR.html#a702edc6714da142c16857995778a9f4b">getFIObjNode</a>(<span class="keywordtype">id</span>);</div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1ConstraintGraph.html#a39b973543acdcdc5493832cc9d0f586f">sccRepNode</a>(fi) == fi &amp;&amp; <a class="code" href="classSVF_1_1ConstraintGraph.html#aad6c37476edfd9ae92dc8c0d004d782d">hasConstraintNode</a>(fi)==<span class="keyword">false</span>)</div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; <a class="code" href="classSVF_1_1ConstraintGraph.html#a5ea9c47d232f36b66d985f979f33293b">addConstraintNode</a>(<span class="keyword">new</span> ConstraintNode(fi),fi);</div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160; <span class="keywordflow">return</span> fi;</div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160; }</div><div class="ttc" id="namespaceSVF_html_a43a65e0d33af3c743294f7a1139d2301"><div class="ttname"><a href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">SVF::NodeID</a></div><div class="ttdeci">unsigned NodeID</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8h_source.html#l00018">MTAResultValidator.h:18</a></div></div>
1212
1216
  <div class="ttc" id="classSVF_1_1ConstraintGraph_html_aad6c37476edfd9ae92dc8c0d004d782d"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#aad6c37476edfd9ae92dc8c0d004d782d">SVF::ConstraintGraph::hasConstraintNode</a></div><div class="ttdeci">bool hasConstraintNode(NodeID id) const</div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8h_source.html#l00116">ConsG.h:116</a></div></div>
1213
1217
  <div class="ttc" id="classSVF_1_1ConstraintGraph_html_a5ea9c47d232f36b66d985f979f33293b"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a5ea9c47d232f36b66d985f979f33293b">SVF::ConstraintGraph::addConstraintNode</a></div><div class="ttdeci">void addConstraintNode(ConstraintNode *node, NodeID id)</div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8h_source.html#l00112">ConsG.h:112</a></div></div>
1214
- <div class="ttc" id="classSVF_1_1SVFIR_html_a702edc6714da142c16857995778a9f4b"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a702edc6714da142c16857995778a9f4b">SVF::SVFIR::getFIObjNode</a></div><div class="ttdeci">NodeID getFIObjNode(const MemObj *obj) const</div><div class="ttdoc">Get a field-insensitive obj SVFIR node according to a mem obj. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00503">SVFIR.h:503</a></div></div>
1218
+ <div class="ttc" id="classSVF_1_1SVFIR_html_a702edc6714da142c16857995778a9f4b"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a702edc6714da142c16857995778a9f4b">SVF::SVFIR::getFIObjNode</a></div><div class="ttdeci">NodeID getFIObjNode(const MemObj *obj) const</div><div class="ttdoc">Get a field-insensitive obj SVFIR node according to a mem obj. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00378">SVFIR.h:378</a></div></div>
1215
1219
  <div class="ttc" id="classSVF_1_1ConstraintGraph_html_a39b973543acdcdc5493832cc9d0f586f"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a39b973543acdcdc5493832cc9d0f586f">SVF::ConstraintGraph::sccRepNode</a></div><div class="ttdeci">NodeID sccRepNode(NodeID id) const</div><div class="ttdoc">SCC rep/sub nodes methods. </div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8h_source.html#l00232">ConsG.h:232</a></div></div>
1216
1220
  <div class="ttc" id="classSVF_1_1ConstraintGraph_html_aa8b09f64c6e4bbd081c6062a1a0e8948"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#aa8b09f64c6e4bbd081c6062a1a0e8948">SVF::ConstraintGraph::pag</a></div><div class="ttdeci">SVFIR * pag</div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8h_source.html#l00055">ConsG.h:55</a></div></div>
1217
1221
  </div><!-- fragment -->
@@ -1259,7 +1263,7 @@ Additional Inherited Members</h2></td></tr>
1259
1263
  <div class="ttc" id="classSVF_1_1ConstraintGraph_html_aad6c37476edfd9ae92dc8c0d004d782d"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#aad6c37476edfd9ae92dc8c0d004d782d">SVF::ConstraintGraph::hasConstraintNode</a></div><div class="ttdeci">bool hasConstraintNode(NodeID id) const</div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8h_source.html#l00116">ConsG.h:116</a></div></div>
1260
1264
  <div class="ttc" id="classSVF_1_1ConstraintGraph_html_a5ea9c47d232f36b66d985f979f33293b"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a5ea9c47d232f36b66d985f979f33293b">SVF::ConstraintGraph::addConstraintNode</a></div><div class="ttdeci">void addConstraintNode(ConstraintNode *node, NodeID id)</div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8h_source.html#l00112">ConsG.h:112</a></div></div>
1261
1265
  <div class="ttc" id="classSVF_1_1ConstraintGraph_html_a39b973543acdcdc5493832cc9d0f586f"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a39b973543acdcdc5493832cc9d0f586f">SVF::ConstraintGraph::sccRepNode</a></div><div class="ttdeci">NodeID sccRepNode(NodeID id) const</div><div class="ttdoc">SCC rep/sub nodes methods. </div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8h_source.html#l00232">ConsG.h:232</a></div></div>
1262
- <div class="ttc" id="classSVF_1_1SVFIR_html_a2b80cf884eedb51f77a5e84def7d8793"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a2b80cf884eedb51f77a5e84def7d8793">SVF::SVFIR::getGepObjNode</a></div><div class="ttdeci">NodeID getGepObjNode(const MemObj *obj, const LocationSet &amp;ls)</div><div class="ttdoc">Get a field SVFIR Object node according to base mem obj and offset. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8cpp_source.html#l00349">SVFIR.cpp:349</a></div></div>
1266
+ <div class="ttc" id="classSVF_1_1SVFIR_html_a2b80cf884eedb51f77a5e84def7d8793"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a2b80cf884eedb51f77a5e84def7d8793">SVF::SVFIR::getGepObjNode</a></div><div class="ttdeci">NodeID getGepObjNode(const MemObj *obj, const LocationSet &amp;ls)</div><div class="ttdoc">Get a field SVFIR Object node according to base mem obj and offset. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8cpp_source.html#l00405">SVFIR.cpp:405</a></div></div>
1263
1267
  <div class="ttc" id="classSVF_1_1ConstraintGraph_html_aa8b09f64c6e4bbd081c6062a1a0e8948"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#aa8b09f64c6e4bbd081c6062a1a0e8948">SVF::ConstraintGraph::pag</a></div><div class="ttdeci">SVFIR * pag</div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8h_source.html#l00055">ConsG.h:55</a></div></div>
1264
1268
  </div><!-- fragment -->
1265
1269
  </div>
@@ -1290,7 +1294,7 @@ Additional Inherited Members</h2></td></tr>
1290
1294
  <p>Wrappers for invoking <a class="el" href="classSVF_1_1SVFIR.html">SVFIR</a> methods. </p>
1291
1295
 
1292
1296
  <p class="definition">Definition at line <a class="el" href="ConsG_8h_source.html#l00301">301</a> of file <a class="el" href="ConsG_8h_source.html">ConsG.h</a>.</p>
1293
- <div class="fragment"><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; {</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_1ConstraintGraph.html#aa8b09f64c6e4bbd081c6062a1a0e8948">pag</a>-&gt;<a class="code" href="classSVF_1_1SVFIR.html#a2d2131128ceb3362b5dc89317cfd88a0">getIndirectCallsites</a>();</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; }</div><div class="ttc" id="classSVF_1_1SVFIR_html_a2d2131128ceb3362b5dc89317cfd88a0"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a2d2131128ceb3362b5dc89317cfd88a0">SVF::SVFIR::getIndirectCallsites</a></div><div class="ttdeci">const CallSiteToFunPtrMap &amp; getIndirectCallsites() const</div><div class="ttdoc">Add/get indirect callsites. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00438">SVFIR.h:438</a></div></div>
1297
+ <div class="fragment"><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; {</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_1ConstraintGraph.html#aa8b09f64c6e4bbd081c6062a1a0e8948">pag</a>-&gt;<a class="code" href="classSVF_1_1SVFIR.html#a2d2131128ceb3362b5dc89317cfd88a0">getIndirectCallsites</a>();</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; }</div><div class="ttc" id="classSVF_1_1SVFIR_html_a2d2131128ceb3362b5dc89317cfd88a0"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a2d2131128ceb3362b5dc89317cfd88a0">SVF::SVFIR::getIndirectCallsites</a></div><div class="ttdeci">const CallSiteToFunPtrMap &amp; getIndirectCallsites() const</div><div class="ttdoc">Add/get indirect callsites. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00313">SVFIR.h:313</a></div></div>
1294
1298
  <div class="ttc" id="classSVF_1_1ConstraintGraph_html_aa8b09f64c6e4bbd081c6062a1a0e8948"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#aa8b09f64c6e4bbd081c6062a1a0e8948">SVF::ConstraintGraph::pag</a></div><div class="ttdeci">SVFIR * pag</div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8h_source.html#l00055">ConsG.h:55</a></div></div>
1295
1299
  </div><!-- fragment -->
1296
1300
  </div>
@@ -1379,7 +1383,7 @@ Additional Inherited Members</h2></td></tr>
1379
1383
  </div><div class="memdoc">
1380
1384
 
1381
1385
  <p class="definition">Definition at line <a class="el" href="ConsG_8h_source.html#l00070">70</a> of file <a class="el" href="ConsG_8h_source.html">ConsG.h</a>.</p>
1382
- <div class="fragment"><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; {</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ConstraintGraph.html#aa8b09f64c6e4bbd081c6062a1a0e8948">pag</a>-&gt;<a class="code" href="classSVF_1_1IRGraph.html#a2e2b2090569c09c2e2f1d90d04fd2f8b">getPTAEdgeSet</a>(kind);</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; }</div><div class="ttc" id="classSVF_1_1IRGraph_html_a2e2b2090569c09c2e2f1d90d04fd2f8b"><div class="ttname"><a href="classSVF_1_1IRGraph.html#a2e2b2090569c09c2e2f1d90d04fd2f8b">SVF::IRGraph::getPTAEdgeSet</a></div><div class="ttdeci">SVFStmt::PAGEdgeSetTy &amp; getPTAEdgeSet(SVFStmt::PEDGEK kind)</div><div class="ttdoc">Get PTA edges set according to its kind. </div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#l00111">IRGraph.h:111</a></div></div>
1386
+ <div class="fragment"><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; {</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ConstraintGraph.html#aa8b09f64c6e4bbd081c6062a1a0e8948">pag</a>-&gt;<a class="code" href="classSVF_1_1SVFIR.html#a9c33009dc1aa3e16adfd34effd4471f6">getPTAEdgeSet</a>(kind);</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; }</div><div class="ttc" id="classSVF_1_1SVFIR_html_a9c33009dc1aa3e16adfd34effd4471f6"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a9c33009dc1aa3e16adfd34effd4471f6">SVF::SVFIR::getPTAEdgeSet</a></div><div class="ttdeci">SVFStmt::PAGEdgeSetTy &amp; getPTAEdgeSet(SVFStmt::PEDGEK kind)</div><div class="ttdoc">Get PTA edges set according to its kind. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00168">SVFIR.h:168</a></div></div>
1383
1387
  <div class="ttc" id="classSVF_1_1ConstraintGraph_html_aa8b09f64c6e4bbd081c6062a1a0e8948"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#aa8b09f64c6e4bbd081c6062a1a0e8948">SVF::ConstraintGraph::pag</a></div><div class="ttdeci">SVFIR * pag</div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8h_source.html#l00055">ConsG.h:55</a></div></div>
1384
1388
  </div><!-- fragment -->
1385
1389
  </div>
@@ -1438,7 +1442,7 @@ Additional Inherited Members</h2></td></tr>
1438
1442
  </div><div class="memdoc">
1439
1443
 
1440
1444
  <p class="definition">Definition at line <a class="el" href="ConsG_8h_source.html#l00082">82</a> of file <a class="el" href="ConsG_8h_source.html">ConsG.h</a>.</p>
1441
- <div class="fragment"><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; {</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ConstraintGraph.html#aa8b09f64c6e4bbd081c6062a1a0e8948">pag</a>-&gt;<a class="code" href="classSVF_1_1IRGraph.html#a96010999a4e5013beb1c37ef753ff910">getReturnNode</a>(value);</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; }</div><div class="ttc" id="classSVF_1_1IRGraph_html_a96010999a4e5013beb1c37ef753ff910"><div class="ttname"><a href="classSVF_1_1IRGraph.html#a96010999a4e5013beb1c37ef753ff910">SVF::IRGraph::getReturnNode</a></div><div class="ttdeci">NodeID getReturnNode(const SVFFunction *func) const</div><div class="ttdoc">GetReturnNode - Return the unique node representing the return value of a function. </div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#l00144">IRGraph.h:144</a></div></div>
1445
+ <div class="fragment"><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; {</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ConstraintGraph.html#aa8b09f64c6e4bbd081c6062a1a0e8948">pag</a>-&gt;<a class="code" href="classSVF_1_1IRGraph.html#a96010999a4e5013beb1c37ef753ff910">getReturnNode</a>(value);</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; }</div><div class="ttc" id="classSVF_1_1IRGraph_html_a96010999a4e5013beb1c37ef753ff910"><div class="ttname"><a href="classSVF_1_1IRGraph.html#a96010999a4e5013beb1c37ef753ff910">SVF::IRGraph::getReturnNode</a></div><div class="ttdeci">NodeID getReturnNode(const SVFFunction *func) const</div><div class="ttdoc">GetReturnNode - Return the unique node representing the return value of a function. </div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#l00135">IRGraph.h:135</a></div></div>
1442
1446
  <div class="ttc" id="classSVF_1_1ConstraintGraph_html_aa8b09f64c6e4bbd081c6062a1a0e8948"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#aa8b09f64c6e4bbd081c6062a1a0e8948">SVF::ConstraintGraph::pag</a></div><div class="ttdeci">SVFIR * pag</div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8h_source.html#l00055">ConsG.h:55</a></div></div>
1443
1447
  </div><!-- fragment -->
1444
1448
  </div>
@@ -1529,7 +1533,7 @@ Additional Inherited Members</h2></td></tr>
1529
1533
  <p>Wappers used internally, not expose to Andernsen Pass. </p>
1530
1534
 
1531
1535
  <p class="definition">Definition at line <a class="el" href="ConsG_8h_source.html#l00077">77</a> of file <a class="el" href="ConsG_8h_source.html">ConsG.h</a>.</p>
1532
- <div class="fragment"><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; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ConstraintGraph.html#a39b973543acdcdc5493832cc9d0f586f">sccRepNode</a>(<a class="code" href="classSVF_1_1ConstraintGraph.html#aa8b09f64c6e4bbd081c6062a1a0e8948">pag</a>-&gt;<a class="code" href="classSVF_1_1IRGraph.html#abffddd41cc308b9b3bd5ad4a7f8f1624">getValueNode</a>(value));</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; }</div><div class="ttc" id="classSVF_1_1IRGraph_html_abffddd41cc308b9b3bd5ad4a7f8f1624"><div class="ttname"><a href="classSVF_1_1IRGraph.html#abffddd41cc308b9b3bd5ad4a7f8f1624">SVF::IRGraph::getValueNode</a></div><div class="ttdeci">NodeID getValueNode(const Value *V)</div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#l00129">IRGraph.h:129</a></div></div>
1536
+ <div class="fragment"><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; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ConstraintGraph.html#a39b973543acdcdc5493832cc9d0f586f">sccRepNode</a>(<a class="code" href="classSVF_1_1ConstraintGraph.html#aa8b09f64c6e4bbd081c6062a1a0e8948">pag</a>-&gt;<a class="code" href="classSVF_1_1IRGraph.html#abffddd41cc308b9b3bd5ad4a7f8f1624">getValueNode</a>(value));</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; }</div><div class="ttc" id="classSVF_1_1IRGraph_html_abffddd41cc308b9b3bd5ad4a7f8f1624"><div class="ttname"><a href="classSVF_1_1IRGraph.html#abffddd41cc308b9b3bd5ad4a7f8f1624">SVF::IRGraph::getValueNode</a></div><div class="ttdeci">NodeID getValueNode(const Value *V)</div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#l00120">IRGraph.h:120</a></div></div>
1533
1537
  <div class="ttc" id="classSVF_1_1ConstraintGraph_html_a39b973543acdcdc5493832cc9d0f586f"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a39b973543acdcdc5493832cc9d0f586f">SVF::ConstraintGraph::sccRepNode</a></div><div class="ttdeci">NodeID sccRepNode(NodeID id) const</div><div class="ttdoc">SCC rep/sub nodes methods. </div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8h_source.html#l00232">ConsG.h:232</a></div></div>
1534
1538
  <div class="ttc" id="classSVF_1_1ConstraintGraph_html_aa8b09f64c6e4bbd081c6062a1a0e8948"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#aa8b09f64c6e4bbd081c6062a1a0e8948">SVF::ConstraintGraph::pag</a></div><div class="ttdeci">SVFIR * pag</div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8h_source.html#l00055">ConsG.h:55</a></div></div>
1535
1539
  </div><!-- fragment -->
@@ -1560,7 +1564,7 @@ Additional Inherited Members</h2></td></tr>
1560
1564
  </div><div class="memdoc">
1561
1565
 
1562
1566
  <p class="definition">Definition at line <a class="el" href="ConsG_8h_source.html#l00087">87</a> of file <a class="el" href="ConsG_8h_source.html">ConsG.h</a>.</p>
1563
- <div class="fragment"><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; {</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ConstraintGraph.html#aa8b09f64c6e4bbd081c6062a1a0e8948">pag</a>-&gt;<a class="code" href="classSVF_1_1IRGraph.html#a8b10c318674a47035d617b3ade4f069b">getVarargNode</a>(value);</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; }</div><div class="ttc" id="classSVF_1_1IRGraph_html_a8b10c318674a47035d617b3ade4f069b"><div class="ttname"><a href="classSVF_1_1IRGraph.html#a8b10c318674a47035d617b3ade4f069b">SVF::IRGraph::getVarargNode</a></div><div class="ttdeci">NodeID getVarargNode(const SVFFunction *func) const</div><div class="ttdoc">getVarargNode - Return the unique node representing the variadic argument of a variadic function...</div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#l00149">IRGraph.h:149</a></div></div>
1567
+ <div class="fragment"><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; {</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ConstraintGraph.html#aa8b09f64c6e4bbd081c6062a1a0e8948">pag</a>-&gt;<a class="code" href="classSVF_1_1IRGraph.html#a8b10c318674a47035d617b3ade4f069b">getVarargNode</a>(value);</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; }</div><div class="ttc" id="classSVF_1_1IRGraph_html_a8b10c318674a47035d617b3ade4f069b"><div class="ttname"><a href="classSVF_1_1IRGraph.html#a8b10c318674a47035d617b3ade4f069b">SVF::IRGraph::getVarargNode</a></div><div class="ttdeci">NodeID getVarargNode(const SVFFunction *func) const</div><div class="ttdoc">getVarargNode - Return the unique node representing the variadic argument of a variadic function...</div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#l00140">IRGraph.h:140</a></div></div>
1564
1568
  <div class="ttc" id="classSVF_1_1ConstraintGraph_html_aa8b09f64c6e4bbd081c6062a1a0e8948"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#aa8b09f64c6e4bbd081c6062a1a0e8948">SVF::ConstraintGraph::pag</a></div><div class="ttdeci">SVFIR * pag</div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8h_source.html#l00055">ConsG.h:55</a></div></div>
1565
1569
  </div><!-- fragment -->
1566
1570
  </div>
@@ -1706,7 +1710,7 @@ Additional Inherited Members</h2></td></tr>
1706
1710
  </div><div class="memdoc">
1707
1711
 
1708
1712
  <p class="definition">Definition at line <a class="el" href="ConsG_8h_source.html#l00309">309</a> of file <a class="el" href="ConsG_8h_source.html">ConsG.h</a>.</p>
1709
- <div class="fragment"><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="keywordflow">return</span> <a class="code" href="classSVF_1_1ConstraintGraph.html#aa8b09f64c6e4bbd081c6062a1a0e8948">pag</a>-&gt;<a class="code" href="classSVF_1_1SVFIR.html#ad9895f2d075eb402390e3b01ed68e001">isBlkObjOrConstantObj</a>(<span class="keywordtype">id</span>);</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; }</div><div class="ttc" id="classSVF_1_1SVFIR_html_ad9895f2d075eb402390e3b01ed68e001"><div class="ttname"><a href="classSVF_1_1SVFIR.html#ad9895f2d075eb402390e3b01ed68e001">SVF::SVFIR::isBlkObjOrConstantObj</a></div><div class="ttdeci">bool isBlkObjOrConstantObj(NodeID id) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00526">SVFIR.h:526</a></div></div>
1713
+ <div class="fragment"><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="keywordflow">return</span> <a class="code" href="classSVF_1_1ConstraintGraph.html#aa8b09f64c6e4bbd081c6062a1a0e8948">pag</a>-&gt;<a class="code" href="classSVF_1_1SVFIR.html#ad9895f2d075eb402390e3b01ed68e001">isBlkObjOrConstantObj</a>(<span class="keywordtype">id</span>);</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; }</div><div class="ttc" id="classSVF_1_1SVFIR_html_ad9895f2d075eb402390e3b01ed68e001"><div class="ttname"><a href="classSVF_1_1SVFIR.html#ad9895f2d075eb402390e3b01ed68e001">SVF::SVFIR::isBlkObjOrConstantObj</a></div><div class="ttdeci">bool isBlkObjOrConstantObj(NodeID id) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00401">SVFIR.h:401</a></div></div>
1710
1714
  <div class="ttc" id="classSVF_1_1ConstraintGraph_html_aa8b09f64c6e4bbd081c6062a1a0e8948"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#aa8b09f64c6e4bbd081c6062a1a0e8948">SVF::ConstraintGraph::pag</a></div><div class="ttdeci">SVFIR * pag</div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8h_source.html#l00055">ConsG.h:55</a></div></div>
1711
1715
  </div><!-- fragment -->
1712
1716
  </div>
@@ -1768,7 +1772,7 @@ Additional Inherited Members</h2></td></tr>
1768
1772
  </div><div class="memdoc">
1769
1773
 
1770
1774
  <p class="definition">Definition at line <a class="el" href="ConsG_8h_source.html#l00321">321</a> of file <a class="el" href="ConsG_8h_source.html">ConsG.h</a>.</p>
1771
- <div class="fragment"><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; <span class="keyword">const</span> MemObj* mem = <a class="code" href="classSVF_1_1ConstraintGraph.html#aa8b09f64c6e4bbd081c6062a1a0e8948">pag</a>-&gt;<a class="code" href="classSVF_1_1SVFIR.html#af76a55c3b8255a81a566bdce35ffc749">getBaseObj</a>(<span class="keywordtype">id</span>);</div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; <span class="keywordflow">return</span> (mem-&gt;getMaxFieldOffsetLimit() == 1);</div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; }</div><div class="ttc" id="classSVF_1_1SVFIR_html_af76a55c3b8255a81a566bdce35ffc749"><div class="ttname"><a href="classSVF_1_1SVFIR.html#af76a55c3b8255a81a566bdce35ffc749">SVF::SVFIR::getBaseObj</a></div><div class="ttdeci">const MemObj * getBaseObj(NodeID id) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00572">SVFIR.h:572</a></div></div>
1775
+ <div class="fragment"><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; <span class="keyword">const</span> MemObj* mem = <a class="code" href="classSVF_1_1ConstraintGraph.html#aa8b09f64c6e4bbd081c6062a1a0e8948">pag</a>-&gt;<a class="code" href="classSVF_1_1SVFIR.html#af76a55c3b8255a81a566bdce35ffc749">getBaseObj</a>(<span class="keywordtype">id</span>);</div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; <span class="keywordflow">return</span> (mem-&gt;getMaxFieldOffsetLimit() == 1);</div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; }</div><div class="ttc" id="classSVF_1_1SVFIR_html_af76a55c3b8255a81a566bdce35ffc749"><div class="ttname"><a href="classSVF_1_1SVFIR.html#af76a55c3b8255a81a566bdce35ffc749">SVF::SVFIR::getBaseObj</a></div><div class="ttdeci">const MemObj * getBaseObj(NodeID id) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00447">SVFIR.h:447</a></div></div>
1772
1776
  <div class="ttc" id="classSVF_1_1ConstraintGraph_html_aa8b09f64c6e4bbd081c6062a1a0e8948"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#aa8b09f64c6e4bbd081c6062a1a0e8948">SVF::ConstraintGraph::pag</a></div><div class="ttdeci">SVFIR * pag</div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8h_source.html#l00055">ConsG.h:55</a></div></div>
1773
1777
  </div><!-- fragment -->
1774
1778
  </div>
@@ -1839,8 +1843,8 @@ Additional Inherited Members</h2></td></tr>
1839
1843
  <p><a class="el" href="structMove.html">Move</a> incoming/outgoing direct edges of a sub node to its rep node Return TRUE if there's a gep edge inside this SCC (PWC). </p>
1840
1844
 
1841
1845
  <p class="definition">Definition at line <a class="el" href="ConsG_8h_source.html#l00283">283</a> of file <a class="el" href="ConsG_8h_source.html">ConsG.h</a>.</p>
1842
- <div class="fragment"><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; {</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; <span class="keywordtype">bool</span> gepIn = <a class="code" href="classSVF_1_1ConstraintGraph.html#a081bf1238121eb52a0c9ad60f77ecbcd">moveInEdgesToRepNode</a>(node, rep);</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; <span class="keywordtype">bool</span> gepOut = <a class="code" href="classSVF_1_1ConstraintGraph.html#aa436aac95be84d1946169f4984deae59">moveOutEdgesToRepNode</a>(node, rep);</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; <span class="keywordflow">return</span> (gepIn || gepOut);</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; }</div><div class="ttc" id="classSVF_1_1ConstraintGraph_html_aa436aac95be84d1946169f4984deae59"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#aa436aac95be84d1946169f4984deae59">SVF::ConstraintGraph::moveOutEdgesToRepNode</a></div><div class="ttdeci">bool moveOutEdgesToRepNode(ConstraintNode *node, ConstraintNode *rep)</div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8cpp_source.html#l00465">ConsG.cpp:465</a></div></div>
1843
- <div class="ttc" id="classSVF_1_1ConstraintGraph_html_a081bf1238121eb52a0c9ad60f77ecbcd"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a081bf1238121eb52a0c9ad60f77ecbcd">SVF::ConstraintGraph::moveInEdgesToRepNode</a></div><div class="ttdeci">bool moveInEdgesToRepNode(ConstraintNode *node, ConstraintNode *rep)</div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8cpp_source.html#l00407">ConsG.cpp:407</a></div></div>
1846
+ <div class="fragment"><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; {</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; <span class="keywordtype">bool</span> gepIn = <a class="code" href="classSVF_1_1ConstraintGraph.html#a081bf1238121eb52a0c9ad60f77ecbcd">moveInEdgesToRepNode</a>(node, rep);</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; <span class="keywordtype">bool</span> gepOut = <a class="code" href="classSVF_1_1ConstraintGraph.html#aa436aac95be84d1946169f4984deae59">moveOutEdgesToRepNode</a>(node, rep);</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; <span class="keywordflow">return</span> (gepIn || gepOut);</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; }</div><div class="ttc" id="classSVF_1_1ConstraintGraph_html_aa436aac95be84d1946169f4984deae59"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#aa436aac95be84d1946169f4984deae59">SVF::ConstraintGraph::moveOutEdgesToRepNode</a></div><div class="ttdeci">bool moveOutEdgesToRepNode(ConstraintNode *node, ConstraintNode *rep)</div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8cpp_source.html#l00474">ConsG.cpp:474</a></div></div>
1847
+ <div class="ttc" id="classSVF_1_1ConstraintGraph_html_a081bf1238121eb52a0c9ad60f77ecbcd"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a081bf1238121eb52a0c9ad60f77ecbcd">SVF::ConstraintGraph::moveInEdgesToRepNode</a></div><div class="ttdeci">bool moveInEdgesToRepNode(ConstraintNode *node, ConstraintNode *rep)</div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8cpp_source.html#l00416">ConsG.cpp:416</a></div></div>
1844
1848
  </div><!-- fragment -->
1845
1849
  </div>
1846
1850
  </div>
@@ -1873,16 +1877,16 @@ Additional Inherited Members</h2></td></tr>
1873
1877
  <p><a class="el" href="structMove.html">Move</a> incoming direct edges of a sub node which is outside SCC to its rep node Remove incoming direct edges of a sub node which is inside SCC from its rep node </p>
1874
1878
  <p>only copy and gep edge can be removed </p>
1875
1879
 
1876
- <p class="definition">Definition at line <a class="el" href="ConsG_8cpp_source.html#l00407">407</a> of file <a class="el" href="ConsG_8cpp_source.html">ConsG.cpp</a>.</p>
1877
- <div class="fragment"><div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160;{</div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160; std::vector&lt;ConstraintEdge*&gt; sccEdges;</div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160; std::vector&lt;ConstraintEdge*&gt; nonSccEdges;</div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1ConstraintNode.html#ab1868f04de44f6fe1e9ac14f3d4ee56b">ConstraintNode::const_iterator</a> it = node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ae5b113921530eee6afe58a65d8e5b3a7">InEdgeBegin</a>(), eit = node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#afe6a7b286d9af4992f41b59612fd2900">InEdgeEnd</a>(); it != eit;</div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160; ++it)</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; <a class="code" href="classSVF_1_1ConstraintEdge.html">ConstraintEdge</a>* subInEdge = *it;</div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1ConstraintGraph.html#a39b973543acdcdc5493832cc9d0f586f">sccRepNode</a>(subInEdge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#ae6792506a0150a9400d635eceab7f9e7">getSrcID</a>()) != rep-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>())</div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; nonSccEdges.push_back(subInEdge);</div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160; {</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160; sccEdges.push_back(subInEdge);</div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; }</div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; }</div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160; <span class="comment">// if this edge is outside scc, then re-target edge dst to rep</span></div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160; <span class="keywordflow">while</span>(!nonSccEdges.empty())</div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160; {</div><div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160; <a class="code" href="classSVF_1_1ConstraintEdge.html">ConstraintEdge</a>* edge = nonSccEdges.back();</div><div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160; nonSccEdges.pop_back();</div><div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160; <a class="code" href="classSVF_1_1ConstraintGraph.html#a4db3484e3710c3f5cc86ec32dd643722">reTargetDstOfEdge</a>(edge,rep);</div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160; }</div><div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160;</div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160; <span class="keywordtype">bool</span> criticalGepInsideSCC = <span class="keyword">false</span>;</div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160; <span class="comment">// if this edge is inside scc, then remove this edge and two end nodes</span></div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; <span class="keywordflow">while</span>(!sccEdges.empty())</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; <a class="code" href="classSVF_1_1ConstraintEdge.html">ConstraintEdge</a>* edge = sccEdges.back();</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160; sccEdges.pop_back();</div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160; <span class="keywordflow">if</span>(SVFUtil::isa&lt;CopyCGEdge&gt;(edge))</div><div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160; <a class="code" href="classSVF_1_1ConstraintGraph.html#a9fc73676ea133651604e2528fe1d8244">removeDirectEdge</a>(edge);</div><div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa&lt;GepCGEdge&gt;(edge))</div><div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160; {</div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160; <span class="comment">// If the GEP is critical (i.e. may have a non-zero offset),</span></div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160; <span class="comment">// then it brings impact on field-sensitivity.</span></div><div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160; <span class="keywordflow">if</span> (!<a class="code" href="classSVF_1_1ConstraintGraph.html#af790af4146197682dd4f9abfad1434f6">isZeroOffsettedGepCGEdge</a>(edge))</div><div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160; {</div><div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160; criticalGepInsideSCC = <span class="keyword">true</span>;</div><div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160; }</div><div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160; <a class="code" href="classSVF_1_1ConstraintGraph.html#a9fc73676ea133651604e2528fe1d8244">removeDirectEdge</a>(edge);</div><div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160; }</div><div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(SVFUtil::isa&lt;LoadCGEdge&gt;(edge) || SVFUtil::isa&lt;StoreCGEdge&gt;(edge))</div><div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160; <a class="code" href="classSVF_1_1ConstraintGraph.html#a4db3484e3710c3f5cc86ec32dd643722">reTargetDstOfEdge</a>(edge,rep);</div><div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1AddrCGEdge.html">AddrCGEdge</a>* addr = SVFUtil::dyn_cast&lt;AddrCGEdge&gt;(edge))</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; <a class="code" href="classSVF_1_1ConstraintGraph.html#acc23df2db1fa7b8e0270d8a04f08f2ee">removeAddrEdge</a>(addr);</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"> 455</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<span class="keyword">false</span> &amp;&amp; <span class="stringliteral">&quot;no such edge&quot;</span>);</div><div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160; }</div><div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160; <span class="keywordflow">return</span> criticalGepInsideSCC;</div><div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160;}</div><div class="ttc" id="util_8h_html_a07d17d6d5d1074c0969bc5d3c3d1d84a"><div class="ttname"><a href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a></div><div class="ttdeci">#define assert(ex)</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00141">util.h:141</a></div></div>
1880
+ <p class="definition">Definition at line <a class="el" href="ConsG_8cpp_source.html#l00416">416</a> of file <a class="el" href="ConsG_8cpp_source.html">ConsG.cpp</a>.</p>
1881
+ <div class="fragment"><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160;{</div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160; std::vector&lt;ConstraintEdge*&gt; sccEdges;</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160; std::vector&lt;ConstraintEdge*&gt; nonSccEdges;</div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1ConstraintNode.html#ab1868f04de44f6fe1e9ac14f3d4ee56b">ConstraintNode::const_iterator</a> it = node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ae5b113921530eee6afe58a65d8e5b3a7">InEdgeBegin</a>(), eit = node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#afe6a7b286d9af4992f41b59612fd2900">InEdgeEnd</a>(); it != eit;</div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; ++it)</div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160; {</div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160; <a class="code" href="classSVF_1_1ConstraintEdge.html">ConstraintEdge</a>* subInEdge = *it;</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_1ConstraintGraph.html#a39b973543acdcdc5493832cc9d0f586f">sccRepNode</a>(subInEdge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#ae6792506a0150a9400d635eceab7f9e7">getSrcID</a>()) != rep-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>())</div><div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160; nonSccEdges.push_back(subInEdge);</div><div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160; <span class="keywordflow">else</span></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; sccEdges.push_back(subInEdge);</div><div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160; }</div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160; }</div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160; <span class="comment">// if this edge is outside scc, then re-target edge dst to rep</span></div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; <span class="keywordflow">while</span>(!nonSccEdges.empty())</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; <a class="code" href="classSVF_1_1ConstraintEdge.html">ConstraintEdge</a>* edge = nonSccEdges.back();</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160; nonSccEdges.pop_back();</div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160; <a class="code" href="classSVF_1_1ConstraintGraph.html#a4db3484e3710c3f5cc86ec32dd643722">reTargetDstOfEdge</a>(edge,rep);</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;</div><div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160; <span class="keywordtype">bool</span> criticalGepInsideSCC = <span class="keyword">false</span>;</div><div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160; <span class="comment">// if this edge is inside scc, then remove this edge and two end nodes</span></div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160; <span class="keywordflow">while</span>(!sccEdges.empty())</div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160; {</div><div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160; <a class="code" href="classSVF_1_1ConstraintEdge.html">ConstraintEdge</a>* edge = sccEdges.back();</div><div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160; sccEdges.pop_back();</div><div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160; <span class="keywordflow">if</span>(SVFUtil::isa&lt;CopyCGEdge&gt;(edge))</div><div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160; <a class="code" href="classSVF_1_1ConstraintGraph.html#a9fc73676ea133651604e2528fe1d8244">removeDirectEdge</a>(edge);</div><div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa&lt;GepCGEdge&gt;(edge))</div><div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160; {</div><div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160; <span class="comment">// If the GEP is critical (i.e. may have a non-zero offset),</span></div><div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160; <span class="comment">// then it brings impact on field-sensitivity.</span></div><div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160; <span class="keywordflow">if</span> (!<a class="code" href="classSVF_1_1ConstraintGraph.html#af790af4146197682dd4f9abfad1434f6">isZeroOffsettedGepCGEdge</a>(edge))</div><div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160; {</div><div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160; criticalGepInsideSCC = <span class="keyword">true</span>;</div><div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160; }</div><div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160; <a class="code" href="classSVF_1_1ConstraintGraph.html#a9fc73676ea133651604e2528fe1d8244">removeDirectEdge</a>(edge);</div><div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160; }</div><div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(SVFUtil::isa&lt;LoadCGEdge&gt;(edge) || SVFUtil::isa&lt;StoreCGEdge&gt;(edge))</div><div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160; <a class="code" href="classSVF_1_1ConstraintGraph.html#a4db3484e3710c3f5cc86ec32dd643722">reTargetDstOfEdge</a>(edge,rep);</div><div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1AddrCGEdge.html">AddrCGEdge</a>* addr = SVFUtil::dyn_cast&lt;AddrCGEdge&gt;(edge))</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; <a class="code" href="classSVF_1_1ConstraintGraph.html#acc23df2db1fa7b8e0270d8a04f08f2ee">removeAddrEdge</a>(addr);</div><div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160; }</div><div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<span class="keyword">false</span> &amp;&amp; <span class="stringliteral">&quot;no such edge&quot;</span>);</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> criticalGepInsideSCC;</div><div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160;}</div><div class="ttc" id="util_8h_html_a07d17d6d5d1074c0969bc5d3c3d1d84a"><div class="ttname"><a href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a></div><div class="ttdeci">#define assert(ex)</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00141">util.h:141</a></div></div>
1878
1882
  <div class="ttc" id="classSVF_1_1ConstraintNode_html_ab1868f04de44f6fe1e9ac14f3d4ee56b"><div class="ttname"><a href="classSVF_1_1ConstraintNode.html#ab1868f04de44f6fe1e9ac14f3d4ee56b">SVF::ConstraintNode::const_iterator</a></div><div class="ttdeci">ConstraintEdge::ConstraintEdgeSetTy::const_iterator const_iterator</div><div class="ttdef"><b>Definition:</b> <a href="ConsGNode_8h_source.html#l00045">ConsGNode.h:45</a></div></div>
1879
1883
  <div class="ttc" id="classSVF_1_1GenericEdge_html_ae6792506a0150a9400d635eceab7f9e7"><div class="ttname"><a href="classSVF_1_1GenericEdge.html#ae6792506a0150a9400d635eceab7f9e7">SVF::GenericEdge::getSrcID</a></div><div class="ttdeci">NodeID getSrcID() const</div><div class="ttdoc">get methods of the components </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00073">GenericGraph.h:73</a></div></div>
1880
1884
  <div class="ttc" id="classSVF_1_1GenericNode_html_ae5b113921530eee6afe58a65d8e5b3a7"><div class="ttname"><a href="classSVF_1_1GenericNode.html#ae5b113921530eee6afe58a65d8e5b3a7">SVF::GenericNode::InEdgeBegin</a></div><div class="ttdeci">iterator InEdgeBegin()</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00210">GenericGraph.h:210</a></div></div>
1881
- <div class="ttc" id="classSVF_1_1ConstraintGraph_html_acc23df2db1fa7b8e0270d8a04f08f2ee"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#acc23df2db1fa7b8e0270d8a04f08f2ee">SVF::ConstraintGraph::removeAddrEdge</a></div><div class="ttdeci">void removeAddrEdge(AddrCGEdge *edge)</div><div class="ttdoc">Remove addr edge from their src and dst edge sets. </div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8cpp_source.html#l00356">ConsG.cpp:356</a></div></div>
1885
+ <div class="ttc" id="classSVF_1_1ConstraintGraph_html_acc23df2db1fa7b8e0270d8a04f08f2ee"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#acc23df2db1fa7b8e0270d8a04f08f2ee">SVF::ConstraintGraph::removeAddrEdge</a></div><div class="ttdeci">void removeAddrEdge(AddrCGEdge *edge)</div><div class="ttdoc">Remove addr edge from their src and dst edge sets. </div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8cpp_source.html#l00365">ConsG.cpp:365</a></div></div>
1882
1886
  <div class="ttc" id="classSVF_1_1GenericNode_html_afe6a7b286d9af4992f41b59612fd2900"><div class="ttname"><a href="classSVF_1_1GenericNode.html#afe6a7b286d9af4992f41b59612fd2900">SVF::GenericNode::InEdgeEnd</a></div><div class="ttdeci">iterator InEdgeEnd()</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00214">GenericGraph.h:214</a></div></div>
1883
- <div class="ttc" id="classSVF_1_1ConstraintGraph_html_a4db3484e3710c3f5cc86ec32dd643722"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a4db3484e3710c3f5cc86ec32dd643722">SVF::ConstraintGraph::reTargetDstOfEdge</a></div><div class="ttdeci">void reTargetDstOfEdge(ConstraintEdge *edge, ConstraintNode *newDstNode)</div><div class="ttdoc">Used for cycle elimination. </div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8cpp_source.html#l00271">ConsG.cpp:271</a></div></div>
1887
+ <div class="ttc" id="classSVF_1_1ConstraintGraph_html_a4db3484e3710c3f5cc86ec32dd643722"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a4db3484e3710c3f5cc86ec32dd643722">SVF::ConstraintGraph::reTargetDstOfEdge</a></div><div class="ttdeci">void reTargetDstOfEdge(ConstraintEdge *edge, ConstraintNode *newDstNode)</div><div class="ttdoc">Used for cycle elimination. </div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8cpp_source.html#l00280">ConsG.cpp:280</a></div></div>
1884
1888
  <div class="ttc" id="classSVF_1_1ConstraintGraph_html_a39b973543acdcdc5493832cc9d0f586f"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a39b973543acdcdc5493832cc9d0f586f">SVF::ConstraintGraph::sccRepNode</a></div><div class="ttdeci">NodeID sccRepNode(NodeID id) const</div><div class="ttdoc">SCC rep/sub nodes methods. </div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8h_source.html#l00232">ConsG.h:232</a></div></div>
1885
- <div class="ttc" id="classSVF_1_1ConstraintGraph_html_a9fc73676ea133651604e2528fe1d8244"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a9fc73676ea133651604e2528fe1d8244">SVF::ConstraintGraph::removeDirectEdge</a></div><div class="ttdeci">void removeDirectEdge(ConstraintEdge *edge)</div><div class="ttdoc">Remove direct edge from their src and dst edge sets. </div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8cpp_source.html#l00392">ConsG.cpp:392</a></div></div>
1889
+ <div class="ttc" id="classSVF_1_1ConstraintGraph_html_a9fc73676ea133651604e2528fe1d8244"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a9fc73676ea133651604e2528fe1d8244">SVF::ConstraintGraph::removeDirectEdge</a></div><div class="ttdeci">void removeDirectEdge(ConstraintEdge *edge)</div><div class="ttdoc">Remove direct edge from their src and dst edge sets. </div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8cpp_source.html#l00401">ConsG.cpp:401</a></div></div>
1886
1890
  <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>
1887
1891
  <div class="ttc" id="classSVF_1_1AddrCGEdge_html"><div class="ttname"><a href="classSVF_1_1AddrCGEdge.html">SVF::AddrCGEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="ConsGEdge_8h_source.html#l00093">ConsGEdge.h:93</a></div></div>
1888
1892
  <div class="ttc" id="classSVF_1_1ConstraintEdge_html"><div class="ttname"><a href="classSVF_1_1ConstraintEdge.html">SVF::ConstraintEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="ConsGEdge_8h_source.html#l00048">ConsGEdge.h:48</a></div></div>
@@ -1919,16 +1923,16 @@ Additional Inherited Members</h2></td></tr>
1919
1923
  <p><a class="el" href="structMove.html">Move</a> outgoing direct edges of a sub node which is outside SCC to its rep node Remove outgoing direct edges of a sub node which is inside SCC from its rep node </p>
1920
1924
  <p>only copy and gep edge can be removed </p>
1921
1925
 
1922
- <p class="definition">Definition at line <a class="el" href="ConsG_8cpp_source.html#l00465">465</a> of file <a class="el" href="ConsG_8cpp_source.html">ConsG.cpp</a>.</p>
1923
- <div class="fragment"><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;</div><div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160; std::vector&lt;ConstraintEdge*&gt; sccEdges;</div><div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160; std::vector&lt;ConstraintEdge*&gt; nonSccEdges;</div><div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160;</div><div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1ConstraintNode.html#ab1868f04de44f6fe1e9ac14f3d4ee56b">ConstraintNode::const_iterator</a> it = node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#aa4f103330118c8976bf95e4bf53416eb">OutEdgeBegin</a>(), eit = node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#a19a3366fd8a58290d0c740c46c3dcb3d">OutEdgeEnd</a>(); it != eit;</div><div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160; ++it)</div><div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160; {</div><div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160; <a class="code" href="classSVF_1_1ConstraintEdge.html">ConstraintEdge</a>* subOutEdge = *it;</div><div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1ConstraintGraph.html#a39b973543acdcdc5493832cc9d0f586f">sccRepNode</a>(subOutEdge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#ad9edb45e74ae675d9da82f5acf02d56e">getDstID</a>()) != rep-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>())</div><div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160; nonSccEdges.push_back(subOutEdge);</div><div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160; {</div><div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160; sccEdges.push_back(subOutEdge);</div><div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160; }</div><div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160; }</div><div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160; <span class="comment">// if this edge is outside scc, then re-target edge src to rep</span></div><div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160; <span class="keywordflow">while</span>(!nonSccEdges.empty())</div><div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160; {</div><div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160; <a class="code" href="classSVF_1_1ConstraintEdge.html">ConstraintEdge</a>* edge = nonSccEdges.back();</div><div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160; nonSccEdges.pop_back();</div><div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160; <a class="code" href="classSVF_1_1ConstraintGraph.html#aaae56afed424f7cd59fddb3fcb2f7214">reTargetSrcOfEdge</a>(edge,rep);</div><div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160; }</div><div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160; <span class="keywordtype">bool</span> criticalGepInsideSCC = <span class="keyword">false</span>;</div><div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160; <span class="comment">// if this edge is inside scc, then remove this edge and two end nodes</span></div><div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160; <span class="keywordflow">while</span>(!sccEdges.empty())</div><div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160; {</div><div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160; <a class="code" href="classSVF_1_1ConstraintEdge.html">ConstraintEdge</a>* edge = sccEdges.back();</div><div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160; sccEdges.pop_back();</div><div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160; <span class="keywordflow">if</span>(SVFUtil::isa&lt;CopyCGEdge&gt;(edge))</div><div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160; <a class="code" href="classSVF_1_1ConstraintGraph.html#a9fc73676ea133651604e2528fe1d8244">removeDirectEdge</a>(edge);</div><div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa&lt;GepCGEdge&gt;(edge))</div><div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160; {</div><div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160; <span class="comment">// If the GEP is critical (i.e. may have a non-zero offset),</span></div><div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160; <span class="comment">// then it brings impact on field-sensitivity.</span></div><div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160; <span class="keywordflow">if</span> (!<a class="code" href="classSVF_1_1ConstraintGraph.html#af790af4146197682dd4f9abfad1434f6">isZeroOffsettedGepCGEdge</a>(edge))</div><div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160; {</div><div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160; criticalGepInsideSCC = <span class="keyword">true</span>;</div><div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160; }</div><div class="line"><a name="l00506"></a><span class="lineno"> 506</span>&#160; <a class="code" href="classSVF_1_1ConstraintGraph.html#a9fc73676ea133651604e2528fe1d8244">removeDirectEdge</a>(edge);</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; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(SVFUtil::isa&lt;LoadCGEdge&gt;(edge) || SVFUtil::isa&lt;StoreCGEdge&gt;(edge))</div><div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160; <a class="code" href="classSVF_1_1ConstraintGraph.html#aaae56afed424f7cd59fddb3fcb2f7214">reTargetSrcOfEdge</a>(edge,rep);</div><div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1AddrCGEdge.html">AddrCGEdge</a>* addr = SVFUtil::dyn_cast&lt;AddrCGEdge&gt;(edge))</div><div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160; {</div><div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160; <a class="code" href="classSVF_1_1ConstraintGraph.html#acc23df2db1fa7b8e0270d8a04f08f2ee">removeAddrEdge</a>(addr);</div><div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160; }</div><div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00515"></a><span class="lineno"> 515</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<span class="keyword">false</span> &amp;&amp; <span class="stringliteral">&quot;no such edge&quot;</span>);</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="keywordflow">return</span> criticalGepInsideSCC;</div><div class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160;}</div><div class="ttc" id="classSVF_1_1GenericEdge_html_ad9edb45e74ae675d9da82f5acf02d56e"><div class="ttname"><a href="classSVF_1_1GenericEdge.html#ad9edb45e74ae675d9da82f5acf02d56e">SVF::GenericEdge::getDstID</a></div><div class="ttdeci">NodeID getDstID() const</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00077">GenericGraph.h:77</a></div></div>
1926
+ <p class="definition">Definition at line <a class="el" href="ConsG_8cpp_source.html#l00474">474</a> of file <a class="el" href="ConsG_8cpp_source.html">ConsG.cpp</a>.</p>
1927
+ <div class="fragment"><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;</div><div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160; std::vector&lt;ConstraintEdge*&gt; sccEdges;</div><div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160; std::vector&lt;ConstraintEdge*&gt; nonSccEdges;</div><div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160;</div><div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1ConstraintNode.html#ab1868f04de44f6fe1e9ac14f3d4ee56b">ConstraintNode::const_iterator</a> it = node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#aa4f103330118c8976bf95e4bf53416eb">OutEdgeBegin</a>(), eit = node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#a19a3366fd8a58290d0c740c46c3dcb3d">OutEdgeEnd</a>(); it != eit;</div><div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160; ++it)</div><div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160; {</div><div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160; <a class="code" href="classSVF_1_1ConstraintEdge.html">ConstraintEdge</a>* subOutEdge = *it;</div><div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1ConstraintGraph.html#a39b973543acdcdc5493832cc9d0f586f">sccRepNode</a>(subOutEdge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#ad9edb45e74ae675d9da82f5acf02d56e">getDstID</a>()) != rep-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>())</div><div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160; nonSccEdges.push_back(subOutEdge);</div><div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160; {</div><div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160; sccEdges.push_back(subOutEdge);</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="l00491"></a><span class="lineno"> 491</span>&#160; <span class="comment">// if this edge is outside scc, then re-target edge src to rep</span></div><div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160; <span class="keywordflow">while</span>(!nonSccEdges.empty())</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; <a class="code" href="classSVF_1_1ConstraintEdge.html">ConstraintEdge</a>* edge = nonSccEdges.back();</div><div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160; nonSccEdges.pop_back();</div><div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160; <a class="code" href="classSVF_1_1ConstraintGraph.html#aaae56afed424f7cd59fddb3fcb2f7214">reTargetSrcOfEdge</a>(edge,rep);</div><div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160; }</div><div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160; <span class="keywordtype">bool</span> criticalGepInsideSCC = <span class="keyword">false</span>;</div><div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160; <span class="comment">// if this edge is inside scc, then remove this edge and two end nodes</span></div><div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160; <span class="keywordflow">while</span>(!sccEdges.empty())</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; <a class="code" href="classSVF_1_1ConstraintEdge.html">ConstraintEdge</a>* edge = sccEdges.back();</div><div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160; sccEdges.pop_back();</div><div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160; <span class="keywordflow">if</span>(SVFUtil::isa&lt;CopyCGEdge&gt;(edge))</div><div class="line"><a name="l00506"></a><span class="lineno"> 506</span>&#160; <a class="code" href="classSVF_1_1ConstraintGraph.html#a9fc73676ea133651604e2528fe1d8244">removeDirectEdge</a>(edge);</div><div class="line"><a name="l00507"></a><span class="lineno"> 507</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa&lt;GepCGEdge&gt;(edge))</div><div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160; {</div><div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160; <span class="comment">// If the GEP is critical (i.e. may have a non-zero offset),</span></div><div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160; <span class="comment">// then it brings impact on field-sensitivity.</span></div><div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160; <span class="keywordflow">if</span> (!<a class="code" href="classSVF_1_1ConstraintGraph.html#af790af4146197682dd4f9abfad1434f6">isZeroOffsettedGepCGEdge</a>(edge))</div><div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160; {</div><div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160; criticalGepInsideSCC = <span class="keyword">true</span>;</div><div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160; }</div><div class="line"><a name="l00515"></a><span class="lineno"> 515</span>&#160; <a class="code" href="classSVF_1_1ConstraintGraph.html#a9fc73676ea133651604e2528fe1d8244">removeDirectEdge</a>(edge);</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="keywordflow">else</span> <span class="keywordflow">if</span>(SVFUtil::isa&lt;LoadCGEdge&gt;(edge) || SVFUtil::isa&lt;StoreCGEdge&gt;(edge))</div><div class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160; <a class="code" href="classSVF_1_1ConstraintGraph.html#aaae56afed424f7cd59fddb3fcb2f7214">reTargetSrcOfEdge</a>(edge,rep);</div><div class="line"><a name="l00519"></a><span class="lineno"> 519</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1AddrCGEdge.html">AddrCGEdge</a>* addr = SVFUtil::dyn_cast&lt;AddrCGEdge&gt;(edge))</div><div class="line"><a name="l00520"></a><span class="lineno"> 520</span>&#160; {</div><div class="line"><a name="l00521"></a><span class="lineno"> 521</span>&#160; <a class="code" href="classSVF_1_1ConstraintGraph.html#acc23df2db1fa7b8e0270d8a04f08f2ee">removeAddrEdge</a>(addr);</div><div class="line"><a name="l00522"></a><span class="lineno"> 522</span>&#160; }</div><div class="line"><a name="l00523"></a><span class="lineno"> 523</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00524"></a><span class="lineno"> 524</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<span class="keyword">false</span> &amp;&amp; <span class="stringliteral">&quot;no such edge&quot;</span>);</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="keywordflow">return</span> criticalGepInsideSCC;</div><div class="line"><a name="l00527"></a><span class="lineno"> 527</span>&#160;}</div><div class="ttc" id="classSVF_1_1GenericEdge_html_ad9edb45e74ae675d9da82f5acf02d56e"><div class="ttname"><a href="classSVF_1_1GenericEdge.html#ad9edb45e74ae675d9da82f5acf02d56e">SVF::GenericEdge::getDstID</a></div><div class="ttdeci">NodeID getDstID() const</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00077">GenericGraph.h:77</a></div></div>
1924
1928
  <div class="ttc" id="classSVF_1_1GenericNode_html_aa4f103330118c8976bf95e4bf53416eb"><div class="ttname"><a href="classSVF_1_1GenericNode.html#aa4f103330118c8976bf95e4bf53416eb">SVF::GenericNode::OutEdgeBegin</a></div><div class="ttdeci">iterator OutEdgeBegin()</div><div class="ttdoc">iterators </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00202">GenericGraph.h:202</a></div></div>
1925
1929
  <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>
1926
1930
  <div class="ttc" id="classSVF_1_1ConstraintNode_html_ab1868f04de44f6fe1e9ac14f3d4ee56b"><div class="ttname"><a href="classSVF_1_1ConstraintNode.html#ab1868f04de44f6fe1e9ac14f3d4ee56b">SVF::ConstraintNode::const_iterator</a></div><div class="ttdeci">ConstraintEdge::ConstraintEdgeSetTy::const_iterator const_iterator</div><div class="ttdef"><b>Definition:</b> <a href="ConsGNode_8h_source.html#l00045">ConsGNode.h:45</a></div></div>
1927
- <div class="ttc" id="classSVF_1_1ConstraintGraph_html_acc23df2db1fa7b8e0270d8a04f08f2ee"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#acc23df2db1fa7b8e0270d8a04f08f2ee">SVF::ConstraintGraph::removeAddrEdge</a></div><div class="ttdeci">void removeAddrEdge(AddrCGEdge *edge)</div><div class="ttdoc">Remove addr edge from their src and dst edge sets. </div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8cpp_source.html#l00356">ConsG.cpp:356</a></div></div>
1931
+ <div class="ttc" id="classSVF_1_1ConstraintGraph_html_acc23df2db1fa7b8e0270d8a04f08f2ee"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#acc23df2db1fa7b8e0270d8a04f08f2ee">SVF::ConstraintGraph::removeAddrEdge</a></div><div class="ttdeci">void removeAddrEdge(AddrCGEdge *edge)</div><div class="ttdoc">Remove addr edge from their src and dst edge sets. </div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8cpp_source.html#l00365">ConsG.cpp:365</a></div></div>
1928
1932
  <div class="ttc" id="classSVF_1_1ConstraintGraph_html_a39b973543acdcdc5493832cc9d0f586f"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a39b973543acdcdc5493832cc9d0f586f">SVF::ConstraintGraph::sccRepNode</a></div><div class="ttdeci">NodeID sccRepNode(NodeID id) const</div><div class="ttdoc">SCC rep/sub nodes methods. </div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8h_source.html#l00232">ConsG.h:232</a></div></div>
1929
- <div class="ttc" id="classSVF_1_1ConstraintGraph_html_a9fc73676ea133651604e2528fe1d8244"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a9fc73676ea133651604e2528fe1d8244">SVF::ConstraintGraph::removeDirectEdge</a></div><div class="ttdeci">void removeDirectEdge(ConstraintEdge *edge)</div><div class="ttdoc">Remove direct edge from their src and dst edge sets. </div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8cpp_source.html#l00392">ConsG.cpp:392</a></div></div>
1933
+ <div class="ttc" id="classSVF_1_1ConstraintGraph_html_a9fc73676ea133651604e2528fe1d8244"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a9fc73676ea133651604e2528fe1d8244">SVF::ConstraintGraph::removeDirectEdge</a></div><div class="ttdeci">void removeDirectEdge(ConstraintEdge *edge)</div><div class="ttdoc">Remove direct edge from their src and dst edge sets. </div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8cpp_source.html#l00401">ConsG.cpp:401</a></div></div>
1930
1934
  <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>
1931
- <div class="ttc" id="classSVF_1_1ConstraintGraph_html_aaae56afed424f7cd59fddb3fcb2f7214"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#aaae56afed424f7cd59fddb3fcb2f7214">SVF::ConstraintGraph::reTargetSrcOfEdge</a></div><div class="ttdeci">void reTargetSrcOfEdge(ConstraintEdge *edge, ConstraintNode *newSrcNode)</div><div class="ttdoc">Remove edge from old src target, change edge dst id and add modifed edge into new src...</div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8cpp_source.html#l00315">ConsG.cpp:315</a></div></div>
1935
+ <div class="ttc" id="classSVF_1_1ConstraintGraph_html_aaae56afed424f7cd59fddb3fcb2f7214"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#aaae56afed424f7cd59fddb3fcb2f7214">SVF::ConstraintGraph::reTargetSrcOfEdge</a></div><div class="ttdeci">void reTargetSrcOfEdge(ConstraintEdge *edge, ConstraintNode *newSrcNode)</div><div class="ttdoc">Remove edge from old src target, change edge dst id and add modifed edge into new src...</div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8cpp_source.html#l00324">ConsG.cpp:324</a></div></div>
1932
1936
  <div class="ttc" id="classSVF_1_1GenericNode_html_a19a3366fd8a58290d0c740c46c3dcb3d"><div class="ttname"><a href="classSVF_1_1GenericNode.html#a19a3366fd8a58290d0c740c46c3dcb3d">SVF::GenericNode::OutEdgeEnd</a></div><div class="ttdeci">iterator OutEdgeEnd()</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00206">GenericGraph.h:206</a></div></div>
1933
1937
  <div class="ttc" id="classSVF_1_1AddrCGEdge_html"><div class="ttname"><a href="classSVF_1_1AddrCGEdge.html">SVF::AddrCGEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="ConsGEdge_8h_source.html#l00093">ConsGEdge.h:93</a></div></div>
1934
1938
  <div class="ttc" id="classSVF_1_1ConstraintEdge_html"><div class="ttname"><a href="classSVF_1_1ConstraintEdge.html">SVF::ConstraintEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="ConsGEdge_8h_source.html#l00048">ConsGEdge.h:48</a></div></div>
@@ -1954,8 +1958,8 @@ Additional Inherited Members</h2></td></tr>
1954
1958
  <p>Print CG into terminal. </p>
1955
1959
  <p>Print this constraint graph including its nodes and edges </p>
1956
1960
 
1957
- <p class="definition">Definition at line <a class="el" href="ConsG_8cpp_source.html#l00532">532</a> of file <a class="el" href="ConsG_8cpp_source.html">ConsG.cpp</a>.</p>
1958
- <div class="fragment"><div class="line"><a name="l00533"></a><span class="lineno"> 533</span>&#160;{</div><div class="line"><a name="l00534"></a><span class="lineno"> 534</span>&#160;</div><div class="line"><a name="l00535"></a><span class="lineno"> 535</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a85ab6b592fefc45a0674d3295e01638f">outs</a>() &lt;&lt; <span class="stringliteral">&quot;-----------------ConstraintGraph--------------------------------------\n&quot;</span>;</div><div class="line"><a name="l00536"></a><span class="lineno"> 536</span>&#160;</div><div class="line"><a name="l00537"></a><span class="lineno"> 537</span>&#160; <a class="code" href="classSVF_1_1ConstraintEdge.html#ad155e1ed2473cc4f5f57128d282ac541">ConstraintEdge::ConstraintEdgeSetTy</a>&amp; addrs = this-&gt;<a class="code" href="classSVF_1_1ConstraintGraph.html#adee52f15f5ff58dd455e419c2643f89b">getAddrCGEdges</a>();</div><div class="line"><a name="l00538"></a><span class="lineno"> 538</span>&#160; <span class="keywordflow">for</span> (ConstraintEdge::ConstraintEdgeSetTy::iterator iter = addrs.begin(),</div><div class="line"><a name="l00539"></a><span class="lineno"> 539</span>&#160; eiter = addrs.end(); iter != eiter; ++iter)</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; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a85ab6b592fefc45a0674d3295e01638f">outs</a>() &lt;&lt; (*iter)-&gt;getSrcID() &lt;&lt; <span class="stringliteral">&quot; -- Addr --&gt; &quot;</span> &lt;&lt; (*iter)-&gt;getDstID()</div><div class="line"><a name="l00542"></a><span class="lineno"> 542</span>&#160; &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div><div class="line"><a name="l00543"></a><span class="lineno"> 543</span>&#160; }</div><div class="line"><a name="l00544"></a><span class="lineno"> 544</span>&#160;</div><div class="line"><a name="l00545"></a><span class="lineno"> 545</span>&#160; <a class="code" href="classSVF_1_1ConstraintEdge.html#ad155e1ed2473cc4f5f57128d282ac541">ConstraintEdge::ConstraintEdgeSetTy</a>&amp; directs = this-&gt;<a class="code" href="classSVF_1_1ConstraintGraph.html#ad7196d5f05192d9468ee0ca93b6b66ee">getDirectCGEdges</a>();</div><div class="line"><a name="l00546"></a><span class="lineno"> 546</span>&#160; <span class="keywordflow">for</span> (ConstraintEdge::ConstraintEdgeSetTy::iterator iter = directs.begin(),</div><div class="line"><a name="l00547"></a><span class="lineno"> 547</span>&#160; eiter = directs.end(); iter != eiter; ++iter)</div><div class="line"><a name="l00548"></a><span class="lineno"> 548</span>&#160; {</div><div class="line"><a name="l00549"></a><span class="lineno"> 549</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1CopyCGEdge.html">CopyCGEdge</a>* copy = SVFUtil::dyn_cast&lt;CopyCGEdge&gt;(*iter))</div><div class="line"><a name="l00550"></a><span class="lineno"> 550</span>&#160; {</div><div class="line"><a name="l00551"></a><span class="lineno"> 551</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a85ab6b592fefc45a0674d3295e01638f">outs</a>() &lt;&lt; copy-&gt;getSrcID() &lt;&lt; <span class="stringliteral">&quot; -- Copy --&gt; &quot;</span> &lt;&lt; copy-&gt;getDstID()</div><div class="line"><a name="l00552"></a><span class="lineno"> 552</span>&#160; &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div><div class="line"><a name="l00553"></a><span class="lineno"> 553</span>&#160; }</div><div class="line"><a name="l00554"></a><span class="lineno"> 554</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1NormalGepCGEdge.html">NormalGepCGEdge</a>* ngep = SVFUtil::dyn_cast&lt;NormalGepCGEdge&gt;(*iter))</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; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a85ab6b592fefc45a0674d3295e01638f">outs</a>() &lt;&lt; ngep-&gt;getSrcID() &lt;&lt; <span class="stringliteral">&quot; -- NormalGep (&quot;</span> &lt;&lt; ngep-&gt;getOffset()</div><div class="line"><a name="l00557"></a><span class="lineno"> 557</span>&#160; &lt;&lt; <span class="stringliteral">&quot;) --&gt; &quot;</span> &lt;&lt; ngep-&gt;getDstID() &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div><div class="line"><a name="l00558"></a><span class="lineno"> 558</span>&#160; }</div><div class="line"><a name="l00559"></a><span class="lineno"> 559</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1VariantGepCGEdge.html">VariantGepCGEdge</a>* vgep = SVFUtil::dyn_cast&lt;VariantGepCGEdge&gt;(*iter))</div><div class="line"><a name="l00560"></a><span class="lineno"> 560</span>&#160; {</div><div class="line"><a name="l00561"></a><span class="lineno"> 561</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a85ab6b592fefc45a0674d3295e01638f">outs</a>() &lt;&lt; vgep-&gt;getSrcID() &lt;&lt; <span class="stringliteral">&quot; -- VarintGep --&gt; &quot;</span></div><div class="line"><a name="l00562"></a><span class="lineno"> 562</span>&#160; &lt;&lt; vgep-&gt;getDstID() &lt;&lt; <span class="stringliteral">&quot;\n&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; <span class="keywordflow">else</span></div><div class="line"><a name="l00565"></a><span class="lineno"> 565</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<span class="keyword">false</span> &amp;&amp; <span class="stringliteral">&quot;wrong constraint edge kind!&quot;</span>);</div><div class="line"><a name="l00566"></a><span class="lineno"> 566</span>&#160; }</div><div class="line"><a name="l00567"></a><span class="lineno"> 567</span>&#160;</div><div class="line"><a name="l00568"></a><span class="lineno"> 568</span>&#160; <a class="code" href="classSVF_1_1ConstraintEdge.html#ad155e1ed2473cc4f5f57128d282ac541">ConstraintEdge::ConstraintEdgeSetTy</a>&amp; loads = this-&gt;<a class="code" href="classSVF_1_1ConstraintGraph.html#afb849d8f3425ff36497d062ecefd2cc1">getLoadCGEdges</a>();</div><div class="line"><a name="l00569"></a><span class="lineno"> 569</span>&#160; <span class="keywordflow">for</span> (ConstraintEdge::ConstraintEdgeSetTy::iterator iter = loads.begin(),</div><div class="line"><a name="l00570"></a><span class="lineno"> 570</span>&#160; eiter = loads.end(); iter != eiter; ++iter)</div><div class="line"><a name="l00571"></a><span class="lineno"> 571</span>&#160; {</div><div class="line"><a name="l00572"></a><span class="lineno"> 572</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a85ab6b592fefc45a0674d3295e01638f">outs</a>() &lt;&lt; (*iter)-&gt;getSrcID() &lt;&lt; <span class="stringliteral">&quot; -- Load --&gt; &quot;</span> &lt;&lt; (*iter)-&gt;getDstID()</div><div class="line"><a name="l00573"></a><span class="lineno"> 573</span>&#160; &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div><div class="line"><a name="l00574"></a><span class="lineno"> 574</span>&#160; }</div><div class="line"><a name="l00575"></a><span class="lineno"> 575</span>&#160;</div><div class="line"><a name="l00576"></a><span class="lineno"> 576</span>&#160; <a class="code" href="classSVF_1_1ConstraintEdge.html#ad155e1ed2473cc4f5f57128d282ac541">ConstraintEdge::ConstraintEdgeSetTy</a>&amp; stores = this-&gt;<a class="code" href="classSVF_1_1ConstraintGraph.html#a61ef90be6ccc01634e5440f22a0f746e">getStoreCGEdges</a>();</div><div class="line"><a name="l00577"></a><span class="lineno"> 577</span>&#160; <span class="keywordflow">for</span> (ConstraintEdge::ConstraintEdgeSetTy::iterator iter = stores.begin(),</div><div class="line"><a name="l00578"></a><span class="lineno"> 578</span>&#160; eiter = stores.end(); iter != eiter; ++iter)</div><div class="line"><a name="l00579"></a><span class="lineno"> 579</span>&#160; {</div><div class="line"><a name="l00580"></a><span class="lineno"> 580</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a85ab6b592fefc45a0674d3295e01638f">outs</a>() &lt;&lt; (*iter)-&gt;getSrcID() &lt;&lt; <span class="stringliteral">&quot; -- Store --&gt; &quot;</span> &lt;&lt; (*iter)-&gt;getDstID()</div><div class="line"><a name="l00581"></a><span class="lineno"> 581</span>&#160; &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</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;</div><div class="line"><a name="l00584"></a><span class="lineno"> 584</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a85ab6b592fefc45a0674d3295e01638f">outs</a>()</div><div class="line"><a name="l00585"></a><span class="lineno"> 585</span>&#160; &lt;&lt; <span class="stringliteral">&quot;--------------------------------------------------------------\n&quot;</span>;</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;}</div><div class="ttc" id="classSVF_1_1ConstraintGraph_html_afb849d8f3425ff36497d062ecefd2cc1"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#afb849d8f3425ff36497d062ecefd2cc1">SVF::ConstraintGraph::getLoadCGEdges</a></div><div class="ttdeci">ConstraintEdge::ConstraintEdgeSetTy &amp; getLoadCGEdges()</div><div class="ttdoc">Get Load edges. </div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8h_source.html#l00203">ConsG.h:203</a></div></div>
1961
+ <p class="definition">Definition at line <a class="el" href="ConsG_8cpp_source.html#l00541">541</a> of file <a class="el" href="ConsG_8cpp_source.html">ConsG.cpp</a>.</p>
1962
+ <div class="fragment"><div class="line"><a name="l00542"></a><span class="lineno"> 542</span>&#160;{</div><div class="line"><a name="l00543"></a><span class="lineno"> 543</span>&#160;</div><div class="line"><a name="l00544"></a><span class="lineno"> 544</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a85ab6b592fefc45a0674d3295e01638f">outs</a>() &lt;&lt; <span class="stringliteral">&quot;-----------------ConstraintGraph--------------------------------------\n&quot;</span>;</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; <a class="code" href="classSVF_1_1ConstraintEdge.html#ad155e1ed2473cc4f5f57128d282ac541">ConstraintEdge::ConstraintEdgeSetTy</a>&amp; addrs = this-&gt;<a class="code" href="classSVF_1_1ConstraintGraph.html#adee52f15f5ff58dd455e419c2643f89b">getAddrCGEdges</a>();</div><div class="line"><a name="l00547"></a><span class="lineno"> 547</span>&#160; <span class="keywordflow">for</span> (ConstraintEdge::ConstraintEdgeSetTy::iterator iter = addrs.begin(),</div><div class="line"><a name="l00548"></a><span class="lineno"> 548</span>&#160; eiter = addrs.end(); iter != eiter; ++iter)</div><div class="line"><a name="l00549"></a><span class="lineno"> 549</span>&#160; {</div><div class="line"><a name="l00550"></a><span class="lineno"> 550</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a85ab6b592fefc45a0674d3295e01638f">outs</a>() &lt;&lt; (*iter)-&gt;getSrcID() &lt;&lt; <span class="stringliteral">&quot; -- Addr --&gt; &quot;</span> &lt;&lt; (*iter)-&gt;getDstID()</div><div class="line"><a name="l00551"></a><span class="lineno"> 551</span>&#160; &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div><div class="line"><a name="l00552"></a><span class="lineno"> 552</span>&#160; }</div><div class="line"><a name="l00553"></a><span class="lineno"> 553</span>&#160;</div><div class="line"><a name="l00554"></a><span class="lineno"> 554</span>&#160; <a class="code" href="classSVF_1_1ConstraintEdge.html#ad155e1ed2473cc4f5f57128d282ac541">ConstraintEdge::ConstraintEdgeSetTy</a>&amp; directs = this-&gt;<a class="code" href="classSVF_1_1ConstraintGraph.html#ad7196d5f05192d9468ee0ca93b6b66ee">getDirectCGEdges</a>();</div><div class="line"><a name="l00555"></a><span class="lineno"> 555</span>&#160; <span class="keywordflow">for</span> (ConstraintEdge::ConstraintEdgeSetTy::iterator iter = directs.begin(),</div><div class="line"><a name="l00556"></a><span class="lineno"> 556</span>&#160; eiter = directs.end(); iter != eiter; ++iter)</div><div class="line"><a name="l00557"></a><span class="lineno"> 557</span>&#160; {</div><div class="line"><a name="l00558"></a><span class="lineno"> 558</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1CopyCGEdge.html">CopyCGEdge</a>* copy = SVFUtil::dyn_cast&lt;CopyCGEdge&gt;(*iter))</div><div class="line"><a name="l00559"></a><span class="lineno"> 559</span>&#160; {</div><div class="line"><a name="l00560"></a><span class="lineno"> 560</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a85ab6b592fefc45a0674d3295e01638f">outs</a>() &lt;&lt; copy-&gt;getSrcID() &lt;&lt; <span class="stringliteral">&quot; -- Copy --&gt; &quot;</span> &lt;&lt; copy-&gt;getDstID()</div><div class="line"><a name="l00561"></a><span class="lineno"> 561</span>&#160; &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div><div class="line"><a name="l00562"></a><span class="lineno"> 562</span>&#160; }</div><div class="line"><a name="l00563"></a><span class="lineno"> 563</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1NormalGepCGEdge.html">NormalGepCGEdge</a>* ngep = SVFUtil::dyn_cast&lt;NormalGepCGEdge&gt;(*iter))</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; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a85ab6b592fefc45a0674d3295e01638f">outs</a>() &lt;&lt; ngep-&gt;getSrcID() &lt;&lt; <span class="stringliteral">&quot; -- NormalGep (&quot;</span> &lt;&lt; ngep-&gt;getOffset()</div><div class="line"><a name="l00566"></a><span class="lineno"> 566</span>&#160; &lt;&lt; <span class="stringliteral">&quot;) --&gt; &quot;</span> &lt;&lt; ngep-&gt;getDstID() &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</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="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1VariantGepCGEdge.html">VariantGepCGEdge</a>* vgep = SVFUtil::dyn_cast&lt;VariantGepCGEdge&gt;(*iter))</div><div class="line"><a name="l00569"></a><span class="lineno"> 569</span>&#160; {</div><div class="line"><a name="l00570"></a><span class="lineno"> 570</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a85ab6b592fefc45a0674d3295e01638f">outs</a>() &lt;&lt; vgep-&gt;getSrcID() &lt;&lt; <span class="stringliteral">&quot; -- VarintGep --&gt; &quot;</span></div><div class="line"><a name="l00571"></a><span class="lineno"> 571</span>&#160; &lt;&lt; vgep-&gt;getDstID() &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</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; <span class="keywordflow">else</span></div><div class="line"><a name="l00574"></a><span class="lineno"> 574</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<span class="keyword">false</span> &amp;&amp; <span class="stringliteral">&quot;wrong constraint edge kind!&quot;</span>);</div><div class="line"><a name="l00575"></a><span class="lineno"> 575</span>&#160; }</div><div class="line"><a name="l00576"></a><span class="lineno"> 576</span>&#160;</div><div class="line"><a name="l00577"></a><span class="lineno"> 577</span>&#160; <a class="code" href="classSVF_1_1ConstraintEdge.html#ad155e1ed2473cc4f5f57128d282ac541">ConstraintEdge::ConstraintEdgeSetTy</a>&amp; loads = this-&gt;<a class="code" href="classSVF_1_1ConstraintGraph.html#afb849d8f3425ff36497d062ecefd2cc1">getLoadCGEdges</a>();</div><div class="line"><a name="l00578"></a><span class="lineno"> 578</span>&#160; <span class="keywordflow">for</span> (ConstraintEdge::ConstraintEdgeSetTy::iterator iter = loads.begin(),</div><div class="line"><a name="l00579"></a><span class="lineno"> 579</span>&#160; eiter = loads.end(); iter != eiter; ++iter)</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"> 581</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a85ab6b592fefc45a0674d3295e01638f">outs</a>() &lt;&lt; (*iter)-&gt;getSrcID() &lt;&lt; <span class="stringliteral">&quot; -- Load --&gt; &quot;</span> &lt;&lt; (*iter)-&gt;getDstID()</div><div class="line"><a name="l00582"></a><span class="lineno"> 582</span>&#160; &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div><div class="line"><a name="l00583"></a><span class="lineno"> 583</span>&#160; }</div><div class="line"><a name="l00584"></a><span class="lineno"> 584</span>&#160;</div><div class="line"><a name="l00585"></a><span class="lineno"> 585</span>&#160; <a class="code" href="classSVF_1_1ConstraintEdge.html#ad155e1ed2473cc4f5f57128d282ac541">ConstraintEdge::ConstraintEdgeSetTy</a>&amp; stores = this-&gt;<a class="code" href="classSVF_1_1ConstraintGraph.html#a61ef90be6ccc01634e5440f22a0f746e">getStoreCGEdges</a>();</div><div class="line"><a name="l00586"></a><span class="lineno"> 586</span>&#160; <span class="keywordflow">for</span> (ConstraintEdge::ConstraintEdgeSetTy::iterator iter = stores.begin(),</div><div class="line"><a name="l00587"></a><span class="lineno"> 587</span>&#160; eiter = stores.end(); iter != eiter; ++iter)</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"> 589</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a85ab6b592fefc45a0674d3295e01638f">outs</a>() &lt;&lt; (*iter)-&gt;getSrcID() &lt;&lt; <span class="stringliteral">&quot; -- Store --&gt; &quot;</span> &lt;&lt; (*iter)-&gt;getDstID()</div><div class="line"><a name="l00590"></a><span class="lineno"> 590</span>&#160; &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div><div class="line"><a name="l00591"></a><span class="lineno"> 591</span>&#160; }</div><div class="line"><a name="l00592"></a><span class="lineno"> 592</span>&#160;</div><div class="line"><a name="l00593"></a><span class="lineno"> 593</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a85ab6b592fefc45a0674d3295e01638f">outs</a>()</div><div class="line"><a name="l00594"></a><span class="lineno"> 594</span>&#160; &lt;&lt; <span class="stringliteral">&quot;--------------------------------------------------------------\n&quot;</span>;</div><div class="line"><a name="l00595"></a><span class="lineno"> 595</span>&#160;</div><div class="line"><a name="l00596"></a><span class="lineno"> 596</span>&#160;}</div><div class="ttc" id="classSVF_1_1ConstraintGraph_html_afb849d8f3425ff36497d062ecefd2cc1"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#afb849d8f3425ff36497d062ecefd2cc1">SVF::ConstraintGraph::getLoadCGEdges</a></div><div class="ttdeci">ConstraintEdge::ConstraintEdgeSetTy &amp; getLoadCGEdges()</div><div class="ttdoc">Get Load edges. </div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8h_source.html#l00203">ConsG.h:203</a></div></div>
1959
1963
  <div class="ttc" id="classSVF_1_1NormalGepCGEdge_html"><div class="ttname"><a href="classSVF_1_1NormalGepCGEdge.html">SVF::NormalGepCGEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="ConsGEdge_8h_source.html#l00265">ConsGEdge.h:265</a></div></div>
1960
1964
  <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>
1961
1965
  <div class="ttc" id="classSVF_1_1ConstraintGraph_html_ad7196d5f05192d9468ee0ca93b6b66ee"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#ad7196d5f05192d9468ee0ca93b6b66ee">SVF::ConstraintGraph::getDirectCGEdges</a></div><div class="ttdeci">ConstraintEdge::ConstraintEdgeSetTy &amp; getDirectCGEdges()</div><div class="ttdoc">Get Copy/call/ret/gep edges. </div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8h_source.html#l00198">ConsG.h:198</a></div></div>
@@ -1987,8 +1991,8 @@ Additional Inherited Members</h2></td></tr>
1987
1991
  <p>Remove addr edge from their src and dst edge sets. </p>
1988
1992
  <p>Remove addr edge from their src and dst edge sets </p>
1989
1993
 
1990
- <p class="definition">Definition at line <a class="el" href="ConsG_8cpp_source.html#l00356">356</a> of file <a class="el" href="ConsG_8cpp_source.html">ConsG.cpp</a>.</p>
1991
- <div class="fragment"><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; <a class="code" href="classSVF_1_1ConstraintGraph.html#a26722666cc8f2fce61bed73f086a0e87">getConstraintNode</a>(edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#ae6792506a0150a9400d635eceab7f9e7">getSrcID</a>())-&gt;removeOutgoingAddrEdge(edge);</div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160; <a class="code" href="classSVF_1_1ConstraintGraph.html#a26722666cc8f2fce61bed73f086a0e87">getConstraintNode</a>(edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#ad9edb45e74ae675d9da82f5acf02d56e">getDstID</a>())-&gt;removeIncomingAddrEdge(edge);</div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; <a class="code" href="namespaceSVF.html#a2db29836a72e8d86e9baa6d8d55d2978">Size_t</a> num = <a class="code" href="classSVF_1_1ConstraintGraph.html#a5bbd6df25027d26911f5d8d6a10881dc">AddrCGEdgeSet</a>.erase(edge);</div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160; <span class="keyword">delete</span> edge;</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(num &amp;&amp; <span class="stringliteral">&quot;edge not in the set, can not remove!!!&quot;</span>);</div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160;}</div><div class="ttc" id="classSVF_1_1ConstraintGraph_html_a26722666cc8f2fce61bed73f086a0e87"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a26722666cc8f2fce61bed73f086a0e87">SVF::ConstraintGraph::getConstraintNode</a></div><div class="ttdeci">ConstraintNode * getConstraintNode(NodeID id) const</div><div class="ttdoc">Get/add/remove constraint node. </div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8h_source.html#l00107">ConsG.h:107</a></div></div>
1994
+ <p class="definition">Definition at line <a class="el" href="ConsG_8cpp_source.html#l00365">365</a> of file <a class="el" href="ConsG_8cpp_source.html">ConsG.cpp</a>.</p>
1995
+ <div class="fragment"><div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160;{</div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160; <a class="code" href="classSVF_1_1ConstraintGraph.html#a26722666cc8f2fce61bed73f086a0e87">getConstraintNode</a>(edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#ae6792506a0150a9400d635eceab7f9e7">getSrcID</a>())-&gt;removeOutgoingAddrEdge(edge);</div><div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; <a class="code" href="classSVF_1_1ConstraintGraph.html#a26722666cc8f2fce61bed73f086a0e87">getConstraintNode</a>(edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#ad9edb45e74ae675d9da82f5acf02d56e">getDstID</a>())-&gt;removeIncomingAddrEdge(edge);</div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; <a class="code" href="namespaceSVF.html#a2db29836a72e8d86e9baa6d8d55d2978">Size_t</a> num = <a class="code" href="classSVF_1_1ConstraintGraph.html#a5bbd6df25027d26911f5d8d6a10881dc">AddrCGEdgeSet</a>.erase(edge);</div><div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; <span class="keyword">delete</span> edge;</div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(num &amp;&amp; <span class="stringliteral">&quot;edge not in the set, can not remove!!!&quot;</span>);</div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160;}</div><div class="ttc" id="classSVF_1_1ConstraintGraph_html_a26722666cc8f2fce61bed73f086a0e87"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a26722666cc8f2fce61bed73f086a0e87">SVF::ConstraintGraph::getConstraintNode</a></div><div class="ttdeci">ConstraintNode * getConstraintNode(NodeID id) const</div><div class="ttdoc">Get/add/remove constraint node. </div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8h_source.html#l00107">ConsG.h:107</a></div></div>
1992
1996
  <div class="ttc" id="classSVF_1_1GenericEdge_html_ad9edb45e74ae675d9da82f5acf02d56e"><div class="ttname"><a href="classSVF_1_1GenericEdge.html#ad9edb45e74ae675d9da82f5acf02d56e">SVF::GenericEdge::getDstID</a></div><div class="ttdeci">NodeID getDstID() const</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00077">GenericGraph.h:77</a></div></div>
1993
1997
  <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>
1994
1998
  <div class="ttc" id="classSVF_1_1GenericEdge_html_ae6792506a0150a9400d635eceab7f9e7"><div class="ttname"><a href="classSVF_1_1GenericEdge.html#ae6792506a0150a9400d635eceab7f9e7">SVF::GenericEdge::getSrcID</a></div><div class="ttdeci">NodeID getSrcID() const</div><div class="ttdoc">get methods of the components </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00073">GenericGraph.h:73</a></div></div>
@@ -2045,8 +2049,8 @@ Additional Inherited Members</h2></td></tr>
2045
2049
  <p>Remove direct edge from their src and dst edge sets. </p>
2046
2050
  <p>Remove edges from their src and dst edge sets </p>
2047
2051
 
2048
- <p class="definition">Definition at line <a class="el" href="ConsG_8cpp_source.html#l00392">392</a> of file <a class="el" href="ConsG_8cpp_source.html">ConsG.cpp</a>.</p>
2049
- <div class="fragment"><div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160;{</div><div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160;</div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160; <a class="code" href="classSVF_1_1ConstraintGraph.html#a26722666cc8f2fce61bed73f086a0e87">getConstraintNode</a>(edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#ae6792506a0150a9400d635eceab7f9e7">getSrcID</a>())-&gt;removeOutgoingDirectEdge(edge);</div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160; <a class="code" href="classSVF_1_1ConstraintGraph.html#a26722666cc8f2fce61bed73f086a0e87">getConstraintNode</a>(edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#ad9edb45e74ae675d9da82f5acf02d56e">getDstID</a>())-&gt;removeIncomingDirectEdge(edge);</div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160; <a class="code" href="namespaceSVF.html#a2db29836a72e8d86e9baa6d8d55d2978">Size_t</a> num = <a class="code" href="classSVF_1_1ConstraintGraph.html#a1be3ebb84b3d334daf98f7e6f5b82256">directEdgeSet</a>.erase(edge);</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"> 399</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(num &amp;&amp; <span class="stringliteral">&quot;edge not in the set, can not remove!!!&quot;</span>);</div><div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160; <span class="keyword">delete</span> edge;</div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160;}</div><div class="ttc" id="classSVF_1_1ConstraintGraph_html_a26722666cc8f2fce61bed73f086a0e87"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a26722666cc8f2fce61bed73f086a0e87">SVF::ConstraintGraph::getConstraintNode</a></div><div class="ttdeci">ConstraintNode * getConstraintNode(NodeID id) const</div><div class="ttdoc">Get/add/remove constraint node. </div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8h_source.html#l00107">ConsG.h:107</a></div></div>
2052
+ <p class="definition">Definition at line <a class="el" href="ConsG_8cpp_source.html#l00401">401</a> of file <a class="el" href="ConsG_8cpp_source.html">ConsG.cpp</a>.</p>
2053
+ <div class="fragment"><div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160;{</div><div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160;</div><div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160; <a class="code" href="classSVF_1_1ConstraintGraph.html#a26722666cc8f2fce61bed73f086a0e87">getConstraintNode</a>(edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#ae6792506a0150a9400d635eceab7f9e7">getSrcID</a>())-&gt;removeOutgoingDirectEdge(edge);</div><div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160; <a class="code" href="classSVF_1_1ConstraintGraph.html#a26722666cc8f2fce61bed73f086a0e87">getConstraintNode</a>(edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#ad9edb45e74ae675d9da82f5acf02d56e">getDstID</a>())-&gt;removeIncomingDirectEdge(edge);</div><div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160; <a class="code" href="namespaceSVF.html#a2db29836a72e8d86e9baa6d8d55d2978">Size_t</a> num = <a class="code" href="classSVF_1_1ConstraintGraph.html#a1be3ebb84b3d334daf98f7e6f5b82256">directEdgeSet</a>.erase(edge);</div><div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160;</div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(num &amp;&amp; <span class="stringliteral">&quot;edge not in the set, can not remove!!!&quot;</span>);</div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160; <span class="keyword">delete</span> edge;</div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160;}</div><div class="ttc" id="classSVF_1_1ConstraintGraph_html_a26722666cc8f2fce61bed73f086a0e87"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a26722666cc8f2fce61bed73f086a0e87">SVF::ConstraintGraph::getConstraintNode</a></div><div class="ttdeci">ConstraintNode * getConstraintNode(NodeID id) const</div><div class="ttdoc">Get/add/remove constraint node. </div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8h_source.html#l00107">ConsG.h:107</a></div></div>
2050
2054
  <div class="ttc" id="classSVF_1_1GenericEdge_html_ad9edb45e74ae675d9da82f5acf02d56e"><div class="ttname"><a href="classSVF_1_1GenericEdge.html#ad9edb45e74ae675d9da82f5acf02d56e">SVF::GenericEdge::getDstID</a></div><div class="ttdeci">NodeID getDstID() const</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00077">GenericGraph.h:77</a></div></div>
2051
2055
  <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>
2052
2056
  <div class="ttc" id="classSVF_1_1GenericEdge_html_ae6792506a0150a9400d635eceab7f9e7"><div class="ttname"><a href="classSVF_1_1GenericEdge.html#ae6792506a0150a9400d635eceab7f9e7">SVF::GenericEdge::getSrcID</a></div><div class="ttdeci">NodeID getSrcID() const</div><div class="ttdoc">get methods of the components </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00073">GenericGraph.h:73</a></div></div>
@@ -2074,8 +2078,8 @@ Additional Inherited Members</h2></td></tr>
2074
2078
  <p>Remove load edge from their src and dst edge sets. </p>
2075
2079
  <p>Remove load edge from their src and dst edge sets </p>
2076
2080
 
2077
- <p class="definition">Definition at line <a class="el" href="ConsG_8cpp_source.html#l00368">368</a> of file <a class="el" href="ConsG_8cpp_source.html">ConsG.cpp</a>.</p>
2078
- <div class="fragment"><div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160;{</div><div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; <a class="code" href="classSVF_1_1ConstraintGraph.html#a26722666cc8f2fce61bed73f086a0e87">getConstraintNode</a>(edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#ae6792506a0150a9400d635eceab7f9e7">getSrcID</a>())-&gt;removeOutgoingLoadEdge(edge);</div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; <a class="code" href="classSVF_1_1ConstraintGraph.html#a26722666cc8f2fce61bed73f086a0e87">getConstraintNode</a>(edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#ad9edb45e74ae675d9da82f5acf02d56e">getDstID</a>())-&gt;removeIncomingLoadEdge(edge);</div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160; <a class="code" href="namespaceSVF.html#a2db29836a72e8d86e9baa6d8d55d2978">Size_t</a> num = <a class="code" href="classSVF_1_1ConstraintGraph.html#a1cb9124b29720e7a5b39d83419f9cc17">LoadCGEdgeSet</a>.erase(edge);</div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160; <span class="keyword">delete</span> edge;</div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(num &amp;&amp; <span class="stringliteral">&quot;edge not in the set, can not remove!!!&quot;</span>);</div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160;}</div><div class="ttc" id="classSVF_1_1ConstraintGraph_html_a26722666cc8f2fce61bed73f086a0e87"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a26722666cc8f2fce61bed73f086a0e87">SVF::ConstraintGraph::getConstraintNode</a></div><div class="ttdeci">ConstraintNode * getConstraintNode(NodeID id) const</div><div class="ttdoc">Get/add/remove constraint node. </div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8h_source.html#l00107">ConsG.h:107</a></div></div>
2081
+ <p class="definition">Definition at line <a class="el" href="ConsG_8cpp_source.html#l00377">377</a> of file <a class="el" href="ConsG_8cpp_source.html">ConsG.cpp</a>.</p>
2082
+ <div class="fragment"><div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160;{</div><div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160; <a class="code" href="classSVF_1_1ConstraintGraph.html#a26722666cc8f2fce61bed73f086a0e87">getConstraintNode</a>(edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#ae6792506a0150a9400d635eceab7f9e7">getSrcID</a>())-&gt;removeOutgoingLoadEdge(edge);</div><div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160; <a class="code" href="classSVF_1_1ConstraintGraph.html#a26722666cc8f2fce61bed73f086a0e87">getConstraintNode</a>(edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#ad9edb45e74ae675d9da82f5acf02d56e">getDstID</a>())-&gt;removeIncomingLoadEdge(edge);</div><div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160; <a class="code" href="namespaceSVF.html#a2db29836a72e8d86e9baa6d8d55d2978">Size_t</a> num = <a class="code" href="classSVF_1_1ConstraintGraph.html#a1cb9124b29720e7a5b39d83419f9cc17">LoadCGEdgeSet</a>.erase(edge);</div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160; <span class="keyword">delete</span> edge;</div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(num &amp;&amp; <span class="stringliteral">&quot;edge not in the set, can not remove!!!&quot;</span>);</div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160;}</div><div class="ttc" id="classSVF_1_1ConstraintGraph_html_a26722666cc8f2fce61bed73f086a0e87"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a26722666cc8f2fce61bed73f086a0e87">SVF::ConstraintGraph::getConstraintNode</a></div><div class="ttdeci">ConstraintNode * getConstraintNode(NodeID id) const</div><div class="ttdoc">Get/add/remove constraint node. </div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8h_source.html#l00107">ConsG.h:107</a></div></div>
2079
2083
  <div class="ttc" id="classSVF_1_1GenericEdge_html_ad9edb45e74ae675d9da82f5acf02d56e"><div class="ttname"><a href="classSVF_1_1GenericEdge.html#ad9edb45e74ae675d9da82f5acf02d56e">SVF::GenericEdge::getDstID</a></div><div class="ttdeci">NodeID getDstID() const</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00077">GenericGraph.h:77</a></div></div>
2080
2084
  <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>
2081
2085
  <div class="ttc" id="classSVF_1_1GenericEdge_html_ae6792506a0150a9400d635eceab7f9e7"><div class="ttname"><a href="classSVF_1_1GenericEdge.html#ae6792506a0150a9400d635eceab7f9e7">SVF::GenericEdge::getSrcID</a></div><div class="ttdeci">NodeID getSrcID() const</div><div class="ttdoc">get methods of the components </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00073">GenericGraph.h:73</a></div></div>
@@ -2103,8 +2107,8 @@ Additional Inherited Members</h2></td></tr>
2103
2107
  <p>Remove store edge from their src and dst edge sets. </p>
2104
2108
  <p>Remove store edge from their src and dst edge sets </p>
2105
2109
 
2106
- <p class="definition">Definition at line <a class="el" href="ConsG_8cpp_source.html#l00380">380</a> of file <a class="el" href="ConsG_8cpp_source.html">ConsG.cpp</a>.</p>
2107
- <div class="fragment"><div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160;{</div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160; <a class="code" href="classSVF_1_1ConstraintGraph.html#a26722666cc8f2fce61bed73f086a0e87">getConstraintNode</a>(edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#ae6792506a0150a9400d635eceab7f9e7">getSrcID</a>())-&gt;removeOutgoingStoreEdge(edge);</div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160; <a class="code" href="classSVF_1_1ConstraintGraph.html#a26722666cc8f2fce61bed73f086a0e87">getConstraintNode</a>(edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#ad9edb45e74ae675d9da82f5acf02d56e">getDstID</a>())-&gt;removeIncomingStoreEdge(edge);</div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160; <a class="code" href="namespaceSVF.html#a2db29836a72e8d86e9baa6d8d55d2978">Size_t</a> num = <a class="code" href="classSVF_1_1ConstraintGraph.html#a0f9d5eef25827ac1d380e5d8bd225025">StoreCGEdgeSet</a>.erase(edge);</div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160; <span class="keyword">delete</span> edge;</div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(num &amp;&amp; <span class="stringliteral">&quot;edge not in the set, can not remove!!!&quot;</span>);</div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160;}</div><div class="ttc" id="classSVF_1_1ConstraintGraph_html_a26722666cc8f2fce61bed73f086a0e87"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a26722666cc8f2fce61bed73f086a0e87">SVF::ConstraintGraph::getConstraintNode</a></div><div class="ttdeci">ConstraintNode * getConstraintNode(NodeID id) const</div><div class="ttdoc">Get/add/remove constraint node. </div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8h_source.html#l00107">ConsG.h:107</a></div></div>
2110
+ <p class="definition">Definition at line <a class="el" href="ConsG_8cpp_source.html#l00389">389</a> of file <a class="el" href="ConsG_8cpp_source.html">ConsG.cpp</a>.</p>
2111
+ <div class="fragment"><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160;{</div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160; <a class="code" href="classSVF_1_1ConstraintGraph.html#a26722666cc8f2fce61bed73f086a0e87">getConstraintNode</a>(edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#ae6792506a0150a9400d635eceab7f9e7">getSrcID</a>())-&gt;removeOutgoingStoreEdge(edge);</div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160; <a class="code" href="classSVF_1_1ConstraintGraph.html#a26722666cc8f2fce61bed73f086a0e87">getConstraintNode</a>(edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#ad9edb45e74ae675d9da82f5acf02d56e">getDstID</a>())-&gt;removeIncomingStoreEdge(edge);</div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160; <a class="code" href="namespaceSVF.html#a2db29836a72e8d86e9baa6d8d55d2978">Size_t</a> num = <a class="code" href="classSVF_1_1ConstraintGraph.html#a0f9d5eef25827ac1d380e5d8bd225025">StoreCGEdgeSet</a>.erase(edge);</div><div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160; <span class="keyword">delete</span> edge;</div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(num &amp;&amp; <span class="stringliteral">&quot;edge not in the set, can not remove!!!&quot;</span>);</div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160;}</div><div class="ttc" id="classSVF_1_1ConstraintGraph_html_a26722666cc8f2fce61bed73f086a0e87"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a26722666cc8f2fce61bed73f086a0e87">SVF::ConstraintGraph::getConstraintNode</a></div><div class="ttdeci">ConstraintNode * getConstraintNode(NodeID id) const</div><div class="ttdoc">Get/add/remove constraint node. </div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8h_source.html#l00107">ConsG.h:107</a></div></div>
2108
2112
  <div class="ttc" id="classSVF_1_1GenericEdge_html_ad9edb45e74ae675d9da82f5acf02d56e"><div class="ttname"><a href="classSVF_1_1GenericEdge.html#ad9edb45e74ae675d9da82f5acf02d56e">SVF::GenericEdge::getDstID</a></div><div class="ttdeci">NodeID getDstID() const</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00077">GenericGraph.h:77</a></div></div>
2109
2113
  <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>
2110
2114
  <div class="ttc" id="classSVF_1_1GenericEdge_html_ae6792506a0150a9400d635eceab7f9e7"><div class="ttname"><a href="classSVF_1_1GenericEdge.html#ae6792506a0150a9400d635eceab7f9e7">SVF::GenericEdge::getSrcID</a></div><div class="ttdeci">NodeID getSrcID() const</div><div class="ttdoc">get methods of the components </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00073">GenericGraph.h:73</a></div></div>
@@ -2202,27 +2206,27 @@ Additional Inherited Members</h2></td></tr>
2202
2206
  <p>Re-target dst node of an edge</p>
2203
2207
  <p>(1) Remove edge from old dst target, (2) Change edge dst id and (3) Add modifed edge into new dst </p>
2204
2208
 
2205
- <p class="definition">Definition at line <a class="el" href="ConsG_8cpp_source.html#l00271">271</a> of file <a class="el" href="ConsG_8cpp_source.html">ConsG.cpp</a>.</p>
2206
- <div class="fragment"><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160;{</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> newDstNodeID = newDstNode-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>();</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> srcId = edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#ae6792506a0150a9400d635eceab7f9e7">getSrcID</a>();</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1LoadCGEdge.html">LoadCGEdge</a>* load = SVFUtil::dyn_cast&lt;LoadCGEdge&gt;(edge))</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; {</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; <a class="code" href="classSVF_1_1ConstraintGraph.html#aa4bca2422049413439cb0c3400f2ce28">removeLoadEdge</a>(load);</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; <a class="code" href="classSVF_1_1ConstraintGraph.html#a1e5a23fbd08cf4186775baffbd6a7934">addLoadCGEdge</a>(srcId,newDstNodeID);</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; }</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1StoreCGEdge.html">StoreCGEdge</a>* store = SVFUtil::dyn_cast&lt;StoreCGEdge&gt;(edge))</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; {</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; <a class="code" href="classSVF_1_1ConstraintGraph.html#aad3d05c949c33a587b3ac6d627f5a0a2">removeStoreEdge</a>(store);</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; <a class="code" href="classSVF_1_1ConstraintGraph.html#a633666953f8d6675961981c4eab1adb0">addStoreCGEdge</a>(srcId,newDstNodeID);</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; }</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1CopyCGEdge.html">CopyCGEdge</a>* copy = SVFUtil::dyn_cast&lt;CopyCGEdge&gt;(edge))</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; {</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; <a class="code" href="classSVF_1_1ConstraintGraph.html#a9fc73676ea133651604e2528fe1d8244">removeDirectEdge</a>(copy);</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; <a class="code" href="classSVF_1_1ConstraintGraph.html#a60bb27100e8c264be2add004069d1758">addCopyCGEdge</a>(srcId,newDstNodeID);</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; }</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1NormalGepCGEdge.html">NormalGepCGEdge</a>* gep = SVFUtil::dyn_cast&lt;NormalGepCGEdge&gt;(edge))</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; {</div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1LocationSet.html">LocationSet</a> ls = gep-&gt;getLocationSet();</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; <a class="code" href="classSVF_1_1ConstraintGraph.html#a9fc73676ea133651604e2528fe1d8244">removeDirectEdge</a>(gep);</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; <a class="code" href="classSVF_1_1ConstraintGraph.html#a5aac453464955185ca0d47e91db9df7b">addNormalGepCGEdge</a>(srcId,newDstNodeID,ls);</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; }</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1VariantGepCGEdge.html">VariantGepCGEdge</a>* gep = SVFUtil::dyn_cast&lt;VariantGepCGEdge&gt;(edge))</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; <a class="code" href="classSVF_1_1ConstraintGraph.html#a9fc73676ea133651604e2528fe1d8244">removeDirectEdge</a>(gep);</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; <a class="code" href="classSVF_1_1ConstraintGraph.html#a6902cabb252b1eaadb3c8220b4581a2f">addVariantGepCGEdge</a>(srcId,newDstNodeID);</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; }</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1AddrCGEdge.html">AddrCGEdge</a>* addr = SVFUtil::dyn_cast&lt;AddrCGEdge&gt;(edge))</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; {</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; <a class="code" href="classSVF_1_1ConstraintGraph.html#acc23df2db1fa7b8e0270d8a04f08f2ee">removeAddrEdge</a>(addr);</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; }</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<span class="keyword">false</span> &amp;&amp; <span class="stringliteral">&quot;no other edge type!!&quot;</span>);</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160;}</div><div class="ttc" id="namespaceSVF_html_a43a65e0d33af3c743294f7a1139d2301"><div class="ttname"><a href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">SVF::NodeID</a></div><div class="ttdeci">unsigned NodeID</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8h_source.html#l00018">MTAResultValidator.h:18</a></div></div>
2207
- <div class="ttc" id="classSVF_1_1ConstraintGraph_html_aad3d05c949c33a587b3ac6d627f5a0a2"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#aad3d05c949c33a587b3ac6d627f5a0a2">SVF::ConstraintGraph::removeStoreEdge</a></div><div class="ttdeci">void removeStoreEdge(StoreCGEdge *edge)</div><div class="ttdoc">Remove store edge from their src and dst edge sets. </div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8cpp_source.html#l00380">ConsG.cpp:380</a></div></div>
2209
+ <p class="definition">Definition at line <a class="el" href="ConsG_8cpp_source.html#l00280">280</a> of file <a class="el" href="ConsG_8cpp_source.html">ConsG.cpp</a>.</p>
2210
+ <div class="fragment"><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160;{</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> newDstNodeID = newDstNode-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>();</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> srcId = edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#ae6792506a0150a9400d635eceab7f9e7">getSrcID</a>();</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1LoadCGEdge.html">LoadCGEdge</a>* load = SVFUtil::dyn_cast&lt;LoadCGEdge&gt;(edge))</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; <a class="code" href="classSVF_1_1ConstraintGraph.html#aa4bca2422049413439cb0c3400f2ce28">removeLoadEdge</a>(load);</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; <a class="code" href="classSVF_1_1ConstraintGraph.html#a1e5a23fbd08cf4186775baffbd6a7934">addLoadCGEdge</a>(srcId,newDstNodeID);</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; }</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1StoreCGEdge.html">StoreCGEdge</a>* store = SVFUtil::dyn_cast&lt;StoreCGEdge&gt;(edge))</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; {</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; <a class="code" href="classSVF_1_1ConstraintGraph.html#aad3d05c949c33a587b3ac6d627f5a0a2">removeStoreEdge</a>(store);</div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; <a class="code" href="classSVF_1_1ConstraintGraph.html#a633666953f8d6675961981c4eab1adb0">addStoreCGEdge</a>(srcId,newDstNodeID);</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; }</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1CopyCGEdge.html">CopyCGEdge</a>* copy = SVFUtil::dyn_cast&lt;CopyCGEdge&gt;(edge))</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; {</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; <a class="code" href="classSVF_1_1ConstraintGraph.html#a9fc73676ea133651604e2528fe1d8244">removeDirectEdge</a>(copy);</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; <a class="code" href="classSVF_1_1ConstraintGraph.html#a60bb27100e8c264be2add004069d1758">addCopyCGEdge</a>(srcId,newDstNodeID);</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; }</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1NormalGepCGEdge.html">NormalGepCGEdge</a>* gep = SVFUtil::dyn_cast&lt;NormalGepCGEdge&gt;(edge))</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; {</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1LocationSet.html">LocationSet</a> ls = gep-&gt;getLocationSet();</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; <a class="code" href="classSVF_1_1ConstraintGraph.html#a9fc73676ea133651604e2528fe1d8244">removeDirectEdge</a>(gep);</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; <a class="code" href="classSVF_1_1ConstraintGraph.html#a5aac453464955185ca0d47e91db9df7b">addNormalGepCGEdge</a>(srcId,newDstNodeID,ls);</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; }</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1VariantGepCGEdge.html">VariantGepCGEdge</a>* gep = SVFUtil::dyn_cast&lt;VariantGepCGEdge&gt;(edge))</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; <a class="code" href="classSVF_1_1ConstraintGraph.html#a9fc73676ea133651604e2528fe1d8244">removeDirectEdge</a>(gep);</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; <a class="code" href="classSVF_1_1ConstraintGraph.html#a6902cabb252b1eaadb3c8220b4581a2f">addVariantGepCGEdge</a>(srcId,newDstNodeID);</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; }</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1AddrCGEdge.html">AddrCGEdge</a>* addr = SVFUtil::dyn_cast&lt;AddrCGEdge&gt;(edge))</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; {</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; <a class="code" href="classSVF_1_1ConstraintGraph.html#acc23df2db1fa7b8e0270d8a04f08f2ee">removeAddrEdge</a>(addr);</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; }</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<span class="keyword">false</span> &amp;&amp; <span class="stringliteral">&quot;no other edge type!!&quot;</span>);</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160;}</div><div class="ttc" id="namespaceSVF_html_a43a65e0d33af3c743294f7a1139d2301"><div class="ttname"><a href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">SVF::NodeID</a></div><div class="ttdeci">unsigned NodeID</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8h_source.html#l00018">MTAResultValidator.h:18</a></div></div>
2211
+ <div class="ttc" id="classSVF_1_1ConstraintGraph_html_aad3d05c949c33a587b3ac6d627f5a0a2"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#aad3d05c949c33a587b3ac6d627f5a0a2">SVF::ConstraintGraph::removeStoreEdge</a></div><div class="ttdeci">void removeStoreEdge(StoreCGEdge *edge)</div><div class="ttdoc">Remove store edge from their src and dst edge sets. </div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8cpp_source.html#l00389">ConsG.cpp:389</a></div></div>
2208
2212
  <div class="ttc" id="classSVF_1_1NormalGepCGEdge_html"><div class="ttname"><a href="classSVF_1_1NormalGepCGEdge.html">SVF::NormalGepCGEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="ConsGEdge_8h_source.html#l00265">ConsGEdge.h:265</a></div></div>
2209
2213
  <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>
2210
2214
  <div class="ttc" id="classSVF_1_1GenericEdge_html_ae6792506a0150a9400d635eceab7f9e7"><div class="ttname"><a href="classSVF_1_1GenericEdge.html#ae6792506a0150a9400d635eceab7f9e7">SVF::GenericEdge::getSrcID</a></div><div class="ttdeci">NodeID getSrcID() const</div><div class="ttdoc">get methods of the components </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00073">GenericGraph.h:73</a></div></div>
2211
- <div class="ttc" id="classSVF_1_1ConstraintGraph_html_a633666953f8d6675961981c4eab1adb0"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a633666953f8d6675961981c4eab1adb0">SVF::ConstraintGraph::addStoreCGEdge</a></div><div class="ttdeci">StoreCGEdge * addStoreCGEdge(NodeID src, NodeID dst)</div><div class="ttdoc">Add Store edge. </div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8cpp_source.html#l00248">ConsG.cpp:248</a></div></div>
2212
- <div class="ttc" id="classSVF_1_1ConstraintGraph_html_a1e5a23fbd08cf4186775baffbd6a7934"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a1e5a23fbd08cf4186775baffbd6a7934">SVF::ConstraintGraph::addLoadCGEdge</a></div><div class="ttdeci">LoadCGEdge * addLoadCGEdge(NodeID src, NodeID dst)</div><div class="ttdoc">Add Load edge. </div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8cpp_source.html#l00230">ConsG.cpp:230</a></div></div>
2215
+ <div class="ttc" id="classSVF_1_1ConstraintGraph_html_a633666953f8d6675961981c4eab1adb0"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a633666953f8d6675961981c4eab1adb0">SVF::ConstraintGraph::addStoreCGEdge</a></div><div class="ttdeci">StoreCGEdge * addStoreCGEdge(NodeID src, NodeID dst)</div><div class="ttdoc">Add Store edge. </div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8cpp_source.html#l00257">ConsG.cpp:257</a></div></div>
2216
+ <div class="ttc" id="classSVF_1_1ConstraintGraph_html_a1e5a23fbd08cf4186775baffbd6a7934"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a1e5a23fbd08cf4186775baffbd6a7934">SVF::ConstraintGraph::addLoadCGEdge</a></div><div class="ttdeci">LoadCGEdge * addLoadCGEdge(NodeID src, NodeID dst)</div><div class="ttdoc">Add Load edge. </div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8cpp_source.html#l00239">ConsG.cpp:239</a></div></div>
2213
2217
  <div class="ttc" id="classSVF_1_1VariantGepCGEdge_html"><div class="ttname"><a href="classSVF_1_1VariantGepCGEdge.html">SVF::VariantGepCGEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="ConsGEdge_8h_source.html#l00316">ConsGEdge.h:316</a></div></div>
2214
2218
  <div class="ttc" id="classSVF_1_1LoadCGEdge_html"><div class="ttname"><a href="classSVF_1_1LoadCGEdge.html">SVF::LoadCGEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="ConsGEdge_8h_source.html#l00191">ConsGEdge.h:191</a></div></div>
2215
2219
  <div class="ttc" id="classSVF_1_1CopyCGEdge_html"><div class="ttname"><a href="classSVF_1_1CopyCGEdge.html">SVF::CopyCGEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="ConsGEdge_8h_source.html#l00124">ConsGEdge.h:124</a></div></div>
2216
2220
  <div class="ttc" id="classSVF_1_1StoreCGEdge_html"><div class="ttname"><a href="classSVF_1_1StoreCGEdge.html">SVF::StoreCGEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="ConsGEdge_8h_source.html#l00157">ConsGEdge.h:157</a></div></div>
2217
- <div class="ttc" id="classSVF_1_1ConstraintGraph_html_acc23df2db1fa7b8e0270d8a04f08f2ee"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#acc23df2db1fa7b8e0270d8a04f08f2ee">SVF::ConstraintGraph::removeAddrEdge</a></div><div class="ttdeci">void removeAddrEdge(AddrCGEdge *edge)</div><div class="ttdoc">Remove addr edge from their src and dst edge sets. </div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8cpp_source.html#l00356">ConsG.cpp:356</a></div></div>
2218
- <div class="ttc" id="classSVF_1_1ConstraintGraph_html_a60bb27100e8c264be2add004069d1758"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a60bb27100e8c264be2add004069d1758">SVF::ConstraintGraph::addCopyCGEdge</a></div><div class="ttdeci">CopyCGEdge * addCopyCGEdge(NodeID src, NodeID dst)</div><div class="ttdoc">Add Copy edge. </div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8cpp_source.html#l00173">ConsG.cpp:173</a></div></div>
2219
- <div class="ttc" id="classSVF_1_1ConstraintGraph_html_a9fc73676ea133651604e2528fe1d8244"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a9fc73676ea133651604e2528fe1d8244">SVF::ConstraintGraph::removeDirectEdge</a></div><div class="ttdeci">void removeDirectEdge(ConstraintEdge *edge)</div><div class="ttdoc">Remove direct edge from their src and dst edge sets. </div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8cpp_source.html#l00392">ConsG.cpp:392</a></div></div>
2220
- <div class="ttc" id="classSVF_1_1ConstraintGraph_html_a5aac453464955185ca0d47e91db9df7b"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a5aac453464955185ca0d47e91db9df7b">SVF::ConstraintGraph::addNormalGepCGEdge</a></div><div class="ttdeci">NormalGepCGEdge * addNormalGepCGEdge(NodeID src, NodeID dst, const LocationSet &amp;ls)</div><div class="ttdoc">Add Gep edge. </div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8cpp_source.html#l00194">ConsG.cpp:194</a></div></div>
2221
+ <div class="ttc" id="classSVF_1_1ConstraintGraph_html_acc23df2db1fa7b8e0270d8a04f08f2ee"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#acc23df2db1fa7b8e0270d8a04f08f2ee">SVF::ConstraintGraph::removeAddrEdge</a></div><div class="ttdeci">void removeAddrEdge(AddrCGEdge *edge)</div><div class="ttdoc">Remove addr edge from their src and dst edge sets. </div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8cpp_source.html#l00365">ConsG.cpp:365</a></div></div>
2222
+ <div class="ttc" id="classSVF_1_1ConstraintGraph_html_a60bb27100e8c264be2add004069d1758"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a60bb27100e8c264be2add004069d1758">SVF::ConstraintGraph::addCopyCGEdge</a></div><div class="ttdeci">CopyCGEdge * addCopyCGEdge(NodeID src, NodeID dst)</div><div class="ttdoc">Add Copy edge. </div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8cpp_source.html#l00182">ConsG.cpp:182</a></div></div>
2223
+ <div class="ttc" id="classSVF_1_1ConstraintGraph_html_a9fc73676ea133651604e2528fe1d8244"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a9fc73676ea133651604e2528fe1d8244">SVF::ConstraintGraph::removeDirectEdge</a></div><div class="ttdeci">void removeDirectEdge(ConstraintEdge *edge)</div><div class="ttdoc">Remove direct edge from their src and dst edge sets. </div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8cpp_source.html#l00401">ConsG.cpp:401</a></div></div>
2224
+ <div class="ttc" id="classSVF_1_1ConstraintGraph_html_a5aac453464955185ca0d47e91db9df7b"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a5aac453464955185ca0d47e91db9df7b">SVF::ConstraintGraph::addNormalGepCGEdge</a></div><div class="ttdeci">NormalGepCGEdge * addNormalGepCGEdge(NodeID src, NodeID dst, const LocationSet &amp;ls)</div><div class="ttdoc">Add Gep edge. </div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8cpp_source.html#l00203">ConsG.cpp:203</a></div></div>
2221
2225
  <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>
2222
2226
  <div class="ttc" id="classSVF_1_1LocationSet_html"><div class="ttname"><a href="classSVF_1_1LocationSet.html">SVF::LocationSet</a></div><div class="ttdef"><b>Definition:</b> <a href="LocationSet_8h_source.html#l00093">LocationSet.h:93</a></div></div>
2223
- <div class="ttc" id="classSVF_1_1ConstraintGraph_html_aa4bca2422049413439cb0c3400f2ce28"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#aa4bca2422049413439cb0c3400f2ce28">SVF::ConstraintGraph::removeLoadEdge</a></div><div class="ttdeci">void removeLoadEdge(LoadCGEdge *edge)</div><div class="ttdoc">Remove load edge from their src and dst edge sets. </div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8cpp_source.html#l00368">ConsG.cpp:368</a></div></div>
2227
+ <div class="ttc" id="classSVF_1_1ConstraintGraph_html_aa4bca2422049413439cb0c3400f2ce28"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#aa4bca2422049413439cb0c3400f2ce28">SVF::ConstraintGraph::removeLoadEdge</a></div><div class="ttdeci">void removeLoadEdge(LoadCGEdge *edge)</div><div class="ttdoc">Remove load edge from their src and dst edge sets. </div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8cpp_source.html#l00377">ConsG.cpp:377</a></div></div>
2224
2228
  <div class="ttc" id="classSVF_1_1AddrCGEdge_html"><div class="ttname"><a href="classSVF_1_1AddrCGEdge.html">SVF::AddrCGEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="ConsGEdge_8h_source.html#l00093">ConsGEdge.h:93</a></div></div>
2225
- <div class="ttc" id="classSVF_1_1ConstraintGraph_html_a6902cabb252b1eaadb3c8220b4581a2f"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a6902cabb252b1eaadb3c8220b4581a2f">SVF::ConstraintGraph::addVariantGepCGEdge</a></div><div class="ttdeci">VariantGepCGEdge * addVariantGepCGEdge(NodeID src, NodeID dst)</div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8cpp_source.html#l00212">ConsG.cpp:212</a></div></div>
2229
+ <div class="ttc" id="classSVF_1_1ConstraintGraph_html_a6902cabb252b1eaadb3c8220b4581a2f"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a6902cabb252b1eaadb3c8220b4581a2f">SVF::ConstraintGraph::addVariantGepCGEdge</a></div><div class="ttdeci">VariantGepCGEdge * addVariantGepCGEdge(NodeID src, NodeID dst)</div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8cpp_source.html#l00221">ConsG.cpp:221</a></div></div>
2226
2230
  </div><!-- fragment -->
2227
2231
  </div>
2228
2232
  </div>
@@ -2255,27 +2259,27 @@ Additional Inherited Members</h2></td></tr>
2255
2259
  <p>Remove edge from old src target, change edge dst id and add modifed edge into new src. </p>
2256
2260
  <p>Re-target src node of an edge (1) Remove edge from old src target, (2) Change edge src id and (3) Add modified edge into new src </p>
2257
2261
 
2258
- <p class="definition">Definition at line <a class="el" href="ConsG_8cpp_source.html#l00315">315</a> of file <a class="el" href="ConsG_8cpp_source.html">ConsG.cpp</a>.</p>
2259
- <div class="fragment"><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; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> newSrcNodeID = newSrcNode-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>();</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> dstId = edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#ad9edb45e74ae675d9da82f5acf02d56e">getDstID</a>();</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1LoadCGEdge.html">LoadCGEdge</a>* load = SVFUtil::dyn_cast&lt;LoadCGEdge&gt;(edge))</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; {</div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; <a class="code" href="classSVF_1_1ConstraintGraph.html#aa4bca2422049413439cb0c3400f2ce28">removeLoadEdge</a>(load);</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; <a class="code" href="classSVF_1_1ConstraintGraph.html#a1e5a23fbd08cf4186775baffbd6a7934">addLoadCGEdge</a>(newSrcNodeID,dstId);</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="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1StoreCGEdge.html">StoreCGEdge</a>* store = SVFUtil::dyn_cast&lt;StoreCGEdge&gt;(edge))</div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; {</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; <a class="code" href="classSVF_1_1ConstraintGraph.html#aad3d05c949c33a587b3ac6d627f5a0a2">removeStoreEdge</a>(store);</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; <a class="code" href="classSVF_1_1ConstraintGraph.html#a633666953f8d6675961981c4eab1adb0">addStoreCGEdge</a>(newSrcNodeID,dstId);</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">else</span> <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1CopyCGEdge.html">CopyCGEdge</a>* copy = SVFUtil::dyn_cast&lt;CopyCGEdge&gt;(edge))</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"> 331</span>&#160; <a class="code" href="classSVF_1_1ConstraintGraph.html#a9fc73676ea133651604e2528fe1d8244">removeDirectEdge</a>(copy);</div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; <a class="code" href="classSVF_1_1ConstraintGraph.html#a60bb27100e8c264be2add004069d1758">addCopyCGEdge</a>(newSrcNodeID,dstId);</div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; }</div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1NormalGepCGEdge.html">NormalGepCGEdge</a>* gep = SVFUtil::dyn_cast&lt;NormalGepCGEdge&gt;(edge))</div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; {</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1LocationSet.html">LocationSet</a> ls = gep-&gt;getLocationSet();</div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; <a class="code" href="classSVF_1_1ConstraintGraph.html#a9fc73676ea133651604e2528fe1d8244">removeDirectEdge</a>(gep);</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; <a class="code" href="classSVF_1_1ConstraintGraph.html#a5aac453464955185ca0d47e91db9df7b">addNormalGepCGEdge</a>(newSrcNodeID,dstId,ls);</div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; }</div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1VariantGepCGEdge.html">VariantGepCGEdge</a>* gep = SVFUtil::dyn_cast&lt;VariantGepCGEdge&gt;(edge))</div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; {</div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160; <a class="code" href="classSVF_1_1ConstraintGraph.html#a9fc73676ea133651604e2528fe1d8244">removeDirectEdge</a>(gep);</div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160; <a class="code" href="classSVF_1_1ConstraintGraph.html#a6902cabb252b1eaadb3c8220b4581a2f">addVariantGepCGEdge</a>(newSrcNodeID,dstId);</div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; }</div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1AddrCGEdge.html">AddrCGEdge</a>* addr = SVFUtil::dyn_cast&lt;AddrCGEdge&gt;(edge))</div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160; {</div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160; <a class="code" href="classSVF_1_1ConstraintGraph.html#acc23df2db1fa7b8e0270d8a04f08f2ee">removeAddrEdge</a>(addr);</div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160; }</div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<span class="keyword">false</span> &amp;&amp; <span class="stringliteral">&quot;no other edge type!!&quot;</span>);</div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160;}</div><div class="ttc" id="classSVF_1_1GenericEdge_html_ad9edb45e74ae675d9da82f5acf02d56e"><div class="ttname"><a href="classSVF_1_1GenericEdge.html#ad9edb45e74ae675d9da82f5acf02d56e">SVF::GenericEdge::getDstID</a></div><div class="ttdeci">NodeID getDstID() const</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00077">GenericGraph.h:77</a></div></div>
2262
+ <p class="definition">Definition at line <a class="el" href="ConsG_8cpp_source.html#l00324">324</a> of file <a class="el" href="ConsG_8cpp_source.html">ConsG.cpp</a>.</p>
2263
+ <div class="fragment"><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160;{</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> newSrcNodeID = newSrcNode-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>();</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> dstId = edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#ad9edb45e74ae675d9da82f5acf02d56e">getDstID</a>();</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1LoadCGEdge.html">LoadCGEdge</a>* load = SVFUtil::dyn_cast&lt;LoadCGEdge&gt;(edge))</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; {</div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; <a class="code" href="classSVF_1_1ConstraintGraph.html#aa4bca2422049413439cb0c3400f2ce28">removeLoadEdge</a>(load);</div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160; <a class="code" href="classSVF_1_1ConstraintGraph.html#a1e5a23fbd08cf4186775baffbd6a7934">addLoadCGEdge</a>(newSrcNodeID,dstId);</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">else</span> <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1StoreCGEdge.html">StoreCGEdge</a>* store = SVFUtil::dyn_cast&lt;StoreCGEdge&gt;(edge))</div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; {</div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; <a class="code" href="classSVF_1_1ConstraintGraph.html#aad3d05c949c33a587b3ac6d627f5a0a2">removeStoreEdge</a>(store);</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; <a class="code" href="classSVF_1_1ConstraintGraph.html#a633666953f8d6675961981c4eab1adb0">addStoreCGEdge</a>(newSrcNodeID,dstId);</div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; }</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1CopyCGEdge.html">CopyCGEdge</a>* copy = SVFUtil::dyn_cast&lt;CopyCGEdge&gt;(edge))</div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; {</div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; <a class="code" href="classSVF_1_1ConstraintGraph.html#a9fc73676ea133651604e2528fe1d8244">removeDirectEdge</a>(copy);</div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; <a class="code" href="classSVF_1_1ConstraintGraph.html#a60bb27100e8c264be2add004069d1758">addCopyCGEdge</a>(newSrcNodeID,dstId);</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">else</span> <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1NormalGepCGEdge.html">NormalGepCGEdge</a>* gep = SVFUtil::dyn_cast&lt;NormalGepCGEdge&gt;(edge))</div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; {</div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1LocationSet.html">LocationSet</a> ls = gep-&gt;getLocationSet();</div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160; <a class="code" href="classSVF_1_1ConstraintGraph.html#a9fc73676ea133651604e2528fe1d8244">removeDirectEdge</a>(gep);</div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160; <a class="code" href="classSVF_1_1ConstraintGraph.html#a5aac453464955185ca0d47e91db9df7b">addNormalGepCGEdge</a>(newSrcNodeID,dstId,ls);</div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160; }</div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1VariantGepCGEdge.html">VariantGepCGEdge</a>* gep = SVFUtil::dyn_cast&lt;VariantGepCGEdge&gt;(edge))</div><div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; {</div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; <a class="code" href="classSVF_1_1ConstraintGraph.html#a9fc73676ea133651604e2528fe1d8244">removeDirectEdge</a>(gep);</div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; <a class="code" href="classSVF_1_1ConstraintGraph.html#a6902cabb252b1eaadb3c8220b4581a2f">addVariantGepCGEdge</a>(newSrcNodeID,dstId);</div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160; }</div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1AddrCGEdge.html">AddrCGEdge</a>* addr = SVFUtil::dyn_cast&lt;AddrCGEdge&gt;(edge))</div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; {</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; <a class="code" href="classSVF_1_1ConstraintGraph.html#acc23df2db1fa7b8e0270d8a04f08f2ee">removeAddrEdge</a>(addr);</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; <span class="keywordflow">else</span></div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<span class="keyword">false</span> &amp;&amp; <span class="stringliteral">&quot;no other edge type!!&quot;</span>);</div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160;}</div><div class="ttc" id="classSVF_1_1GenericEdge_html_ad9edb45e74ae675d9da82f5acf02d56e"><div class="ttname"><a href="classSVF_1_1GenericEdge.html#ad9edb45e74ae675d9da82f5acf02d56e">SVF::GenericEdge::getDstID</a></div><div class="ttdeci">NodeID getDstID() const</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00077">GenericGraph.h:77</a></div></div>
2260
2264
  <div class="ttc" id="namespaceSVF_html_a43a65e0d33af3c743294f7a1139d2301"><div class="ttname"><a href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">SVF::NodeID</a></div><div class="ttdeci">unsigned NodeID</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8h_source.html#l00018">MTAResultValidator.h:18</a></div></div>
2261
- <div class="ttc" id="classSVF_1_1ConstraintGraph_html_aad3d05c949c33a587b3ac6d627f5a0a2"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#aad3d05c949c33a587b3ac6d627f5a0a2">SVF::ConstraintGraph::removeStoreEdge</a></div><div class="ttdeci">void removeStoreEdge(StoreCGEdge *edge)</div><div class="ttdoc">Remove store edge from their src and dst edge sets. </div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8cpp_source.html#l00380">ConsG.cpp:380</a></div></div>
2265
+ <div class="ttc" id="classSVF_1_1ConstraintGraph_html_aad3d05c949c33a587b3ac6d627f5a0a2"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#aad3d05c949c33a587b3ac6d627f5a0a2">SVF::ConstraintGraph::removeStoreEdge</a></div><div class="ttdeci">void removeStoreEdge(StoreCGEdge *edge)</div><div class="ttdoc">Remove store edge from their src and dst edge sets. </div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8cpp_source.html#l00389">ConsG.cpp:389</a></div></div>
2262
2266
  <div class="ttc" id="classSVF_1_1NormalGepCGEdge_html"><div class="ttname"><a href="classSVF_1_1NormalGepCGEdge.html">SVF::NormalGepCGEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="ConsGEdge_8h_source.html#l00265">ConsGEdge.h:265</a></div></div>
2263
2267
  <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>
2264
- <div class="ttc" id="classSVF_1_1ConstraintGraph_html_a633666953f8d6675961981c4eab1adb0"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a633666953f8d6675961981c4eab1adb0">SVF::ConstraintGraph::addStoreCGEdge</a></div><div class="ttdeci">StoreCGEdge * addStoreCGEdge(NodeID src, NodeID dst)</div><div class="ttdoc">Add Store edge. </div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8cpp_source.html#l00248">ConsG.cpp:248</a></div></div>
2265
- <div class="ttc" id="classSVF_1_1ConstraintGraph_html_a1e5a23fbd08cf4186775baffbd6a7934"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a1e5a23fbd08cf4186775baffbd6a7934">SVF::ConstraintGraph::addLoadCGEdge</a></div><div class="ttdeci">LoadCGEdge * addLoadCGEdge(NodeID src, NodeID dst)</div><div class="ttdoc">Add Load edge. </div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8cpp_source.html#l00230">ConsG.cpp:230</a></div></div>
2268
+ <div class="ttc" id="classSVF_1_1ConstraintGraph_html_a633666953f8d6675961981c4eab1adb0"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a633666953f8d6675961981c4eab1adb0">SVF::ConstraintGraph::addStoreCGEdge</a></div><div class="ttdeci">StoreCGEdge * addStoreCGEdge(NodeID src, NodeID dst)</div><div class="ttdoc">Add Store edge. </div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8cpp_source.html#l00257">ConsG.cpp:257</a></div></div>
2269
+ <div class="ttc" id="classSVF_1_1ConstraintGraph_html_a1e5a23fbd08cf4186775baffbd6a7934"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a1e5a23fbd08cf4186775baffbd6a7934">SVF::ConstraintGraph::addLoadCGEdge</a></div><div class="ttdeci">LoadCGEdge * addLoadCGEdge(NodeID src, NodeID dst)</div><div class="ttdoc">Add Load edge. </div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8cpp_source.html#l00239">ConsG.cpp:239</a></div></div>
2266
2270
  <div class="ttc" id="classSVF_1_1VariantGepCGEdge_html"><div class="ttname"><a href="classSVF_1_1VariantGepCGEdge.html">SVF::VariantGepCGEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="ConsGEdge_8h_source.html#l00316">ConsGEdge.h:316</a></div></div>
2267
2271
  <div class="ttc" id="classSVF_1_1LoadCGEdge_html"><div class="ttname"><a href="classSVF_1_1LoadCGEdge.html">SVF::LoadCGEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="ConsGEdge_8h_source.html#l00191">ConsGEdge.h:191</a></div></div>
2268
2272
  <div class="ttc" id="classSVF_1_1CopyCGEdge_html"><div class="ttname"><a href="classSVF_1_1CopyCGEdge.html">SVF::CopyCGEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="ConsGEdge_8h_source.html#l00124">ConsGEdge.h:124</a></div></div>
2269
2273
  <div class="ttc" id="classSVF_1_1StoreCGEdge_html"><div class="ttname"><a href="classSVF_1_1StoreCGEdge.html">SVF::StoreCGEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="ConsGEdge_8h_source.html#l00157">ConsGEdge.h:157</a></div></div>
2270
- <div class="ttc" id="classSVF_1_1ConstraintGraph_html_acc23df2db1fa7b8e0270d8a04f08f2ee"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#acc23df2db1fa7b8e0270d8a04f08f2ee">SVF::ConstraintGraph::removeAddrEdge</a></div><div class="ttdeci">void removeAddrEdge(AddrCGEdge *edge)</div><div class="ttdoc">Remove addr edge from their src and dst edge sets. </div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8cpp_source.html#l00356">ConsG.cpp:356</a></div></div>
2271
- <div class="ttc" id="classSVF_1_1ConstraintGraph_html_a60bb27100e8c264be2add004069d1758"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a60bb27100e8c264be2add004069d1758">SVF::ConstraintGraph::addCopyCGEdge</a></div><div class="ttdeci">CopyCGEdge * addCopyCGEdge(NodeID src, NodeID dst)</div><div class="ttdoc">Add Copy edge. </div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8cpp_source.html#l00173">ConsG.cpp:173</a></div></div>
2272
- <div class="ttc" id="classSVF_1_1ConstraintGraph_html_a9fc73676ea133651604e2528fe1d8244"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a9fc73676ea133651604e2528fe1d8244">SVF::ConstraintGraph::removeDirectEdge</a></div><div class="ttdeci">void removeDirectEdge(ConstraintEdge *edge)</div><div class="ttdoc">Remove direct edge from their src and dst edge sets. </div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8cpp_source.html#l00392">ConsG.cpp:392</a></div></div>
2273
- <div class="ttc" id="classSVF_1_1ConstraintGraph_html_a5aac453464955185ca0d47e91db9df7b"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a5aac453464955185ca0d47e91db9df7b">SVF::ConstraintGraph::addNormalGepCGEdge</a></div><div class="ttdeci">NormalGepCGEdge * addNormalGepCGEdge(NodeID src, NodeID dst, const LocationSet &amp;ls)</div><div class="ttdoc">Add Gep edge. </div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8cpp_source.html#l00194">ConsG.cpp:194</a></div></div>
2274
+ <div class="ttc" id="classSVF_1_1ConstraintGraph_html_acc23df2db1fa7b8e0270d8a04f08f2ee"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#acc23df2db1fa7b8e0270d8a04f08f2ee">SVF::ConstraintGraph::removeAddrEdge</a></div><div class="ttdeci">void removeAddrEdge(AddrCGEdge *edge)</div><div class="ttdoc">Remove addr edge from their src and dst edge sets. </div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8cpp_source.html#l00365">ConsG.cpp:365</a></div></div>
2275
+ <div class="ttc" id="classSVF_1_1ConstraintGraph_html_a60bb27100e8c264be2add004069d1758"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a60bb27100e8c264be2add004069d1758">SVF::ConstraintGraph::addCopyCGEdge</a></div><div class="ttdeci">CopyCGEdge * addCopyCGEdge(NodeID src, NodeID dst)</div><div class="ttdoc">Add Copy edge. </div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8cpp_source.html#l00182">ConsG.cpp:182</a></div></div>
2276
+ <div class="ttc" id="classSVF_1_1ConstraintGraph_html_a9fc73676ea133651604e2528fe1d8244"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a9fc73676ea133651604e2528fe1d8244">SVF::ConstraintGraph::removeDirectEdge</a></div><div class="ttdeci">void removeDirectEdge(ConstraintEdge *edge)</div><div class="ttdoc">Remove direct edge from their src and dst edge sets. </div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8cpp_source.html#l00401">ConsG.cpp:401</a></div></div>
2277
+ <div class="ttc" id="classSVF_1_1ConstraintGraph_html_a5aac453464955185ca0d47e91db9df7b"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a5aac453464955185ca0d47e91db9df7b">SVF::ConstraintGraph::addNormalGepCGEdge</a></div><div class="ttdeci">NormalGepCGEdge * addNormalGepCGEdge(NodeID src, NodeID dst, const LocationSet &amp;ls)</div><div class="ttdoc">Add Gep edge. </div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8cpp_source.html#l00203">ConsG.cpp:203</a></div></div>
2274
2278
  <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>
2275
2279
  <div class="ttc" id="classSVF_1_1LocationSet_html"><div class="ttname"><a href="classSVF_1_1LocationSet.html">SVF::LocationSet</a></div><div class="ttdef"><b>Definition:</b> <a href="LocationSet_8h_source.html#l00093">LocationSet.h:93</a></div></div>
2276
- <div class="ttc" id="classSVF_1_1ConstraintGraph_html_aa4bca2422049413439cb0c3400f2ce28"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#aa4bca2422049413439cb0c3400f2ce28">SVF::ConstraintGraph::removeLoadEdge</a></div><div class="ttdeci">void removeLoadEdge(LoadCGEdge *edge)</div><div class="ttdoc">Remove load edge from their src and dst edge sets. </div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8cpp_source.html#l00368">ConsG.cpp:368</a></div></div>
2280
+ <div class="ttc" id="classSVF_1_1ConstraintGraph_html_aa4bca2422049413439cb0c3400f2ce28"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#aa4bca2422049413439cb0c3400f2ce28">SVF::ConstraintGraph::removeLoadEdge</a></div><div class="ttdeci">void removeLoadEdge(LoadCGEdge *edge)</div><div class="ttdoc">Remove load edge from their src and dst edge sets. </div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8cpp_source.html#l00377">ConsG.cpp:377</a></div></div>
2277
2281
  <div class="ttc" id="classSVF_1_1AddrCGEdge_html"><div class="ttname"><a href="classSVF_1_1AddrCGEdge.html">SVF::AddrCGEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="ConsGEdge_8h_source.html#l00093">ConsGEdge.h:93</a></div></div>
2278
- <div class="ttc" id="classSVF_1_1ConstraintGraph_html_a6902cabb252b1eaadb3c8220b4581a2f"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a6902cabb252b1eaadb3c8220b4581a2f">SVF::ConstraintGraph::addVariantGepCGEdge</a></div><div class="ttdeci">VariantGepCGEdge * addVariantGepCGEdge(NodeID src, NodeID dst)</div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8cpp_source.html#l00212">ConsG.cpp:212</a></div></div>
2282
+ <div class="ttc" id="classSVF_1_1ConstraintGraph_html_a6902cabb252b1eaadb3c8220b4581a2f"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a6902cabb252b1eaadb3c8220b4581a2f">SVF::ConstraintGraph::addVariantGepCGEdge</a></div><div class="ttdeci">VariantGepCGEdge * addVariantGepCGEdge(NodeID src, NodeID dst)</div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8cpp_source.html#l00221">ConsG.cpp:221</a></div></div>
2279
2283
  </div><!-- fragment -->
2280
2284
  </div>
2281
2285
  </div>
@@ -2465,8 +2469,8 @@ Additional Inherited Members</h2></td></tr>
2465
2469
  <p>View graph from the debugger. </p>
2466
2470
  <p>View dot graph of Constraint graph from debugger. </p>
2467
2471
 
2468
- <p class="definition">Definition at line <a class="el" href="ConsG_8cpp_source.html#l00592">592</a> of file <a class="el" href="ConsG_8cpp_source.html">ConsG.cpp</a>.</p>
2469
- <div class="fragment"><div class="line"><a name="l00592"></a><span class="lineno"> 592</span>&#160; {</div><div class="line"><a name="l00593"></a><span class="lineno"> 593</span>&#160; llvm::ViewGraph(<span class="keyword">this</span>, <span class="stringliteral">&quot;Constraint Graph&quot;</span>);</div><div class="line"><a name="l00594"></a><span class="lineno"> 594</span>&#160;}</div></div><!-- fragment -->
2472
+ <p class="definition">Definition at line <a class="el" href="ConsG_8cpp_source.html#l00601">601</a> of file <a class="el" href="ConsG_8cpp_source.html">ConsG.cpp</a>.</p>
2473
+ <div class="fragment"><div class="line"><a name="l00601"></a><span class="lineno"> 601</span>&#160; {</div><div class="line"><a name="l00602"></a><span class="lineno"> 602</span>&#160; llvm::ViewGraph(<span class="keyword">this</span>, <span class="stringliteral">&quot;Constraint Graph&quot;</span>);</div><div class="line"><a name="l00603"></a><span class="lineno"> 603</span>&#160;}</div></div><!-- fragment -->
2470
2474
  </div>
2471
2475
  </div>
2472
2476
  <h2 class="groupheader">Member Data Documentation</h2>