svf-tools 1.0.336 → 1.0.340

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 (209) hide show
  1. package/SVF-doxygen/html/html/AndersenSFR_8cpp_source.html +1 -1
  2. package/SVF-doxygen/html/html/AndersenStat_8cpp_source.html +3 -3
  3. package/SVF-doxygen/html/html/Andersen_8cpp_source.html +3 -3
  4. package/SVF-doxygen/html/html/Andersen_8h_source.html +2 -2
  5. package/SVF-doxygen/html/html/ConsG_8cpp_source.html +3 -3
  6. package/SVF-doxygen/html/html/ContextDDA_8cpp_source.html +7 -7
  7. package/SVF-doxygen/html/html/ContextDDA_8h_source.html +4 -4
  8. package/SVF-doxygen/html/html/DDAClient_8cpp_source.html +1 -1
  9. package/SVF-doxygen/html/html/DDAPass_8cpp_source.html +2 -2
  10. package/SVF-doxygen/html/html/DDAStat_8cpp_source.html +3 -3
  11. package/SVF-doxygen/html/html/FSMPTA_8cpp_source.html +1 -1
  12. package/SVF-doxygen/html/html/FlowDDA_8h_source.html +3 -3
  13. package/SVF-doxygen/html/html/FlowSensitiveTBHC_8cpp_source.html +5 -5
  14. package/SVF-doxygen/html/html/Graph2Json_8cpp_source.html +1 -1
  15. package/SVF-doxygen/html/html/ICFGBuilder_8cpp_source.html +4 -2
  16. package/SVF-doxygen/html/html/ICFGBuilder_8h_source.html +1 -1
  17. package/SVF-doxygen/html/html/ICFG_8cpp_source.html +17 -17
  18. package/SVF-doxygen/html/html/ICFG_8h_source.html +38 -37
  19. package/SVF-doxygen/html/html/IRAnnotator_8h_source.html +3 -3
  20. package/SVF-doxygen/html/html/MTA_8cpp_source.html +2 -2
  21. package/SVF-doxygen/html/html/MemRegion_8cpp_source.html +1 -1
  22. package/SVF-doxygen/html/html/MemSSA_8cpp_source.html +2 -2
  23. package/SVF-doxygen/html/html/PTAStat_8cpp_source.html +2 -2
  24. package/SVF-doxygen/html/html/PointerAnalysisImpl_8cpp_source.html +9 -9
  25. package/SVF-doxygen/html/html/PointerAnalysisImpl_8h_source.html +4 -4
  26. package/SVF-doxygen/html/html/PointerAnalysis_8cpp_source.html +22 -25
  27. package/SVF-doxygen/html/html/PointerAnalysis_8h_source.html +42 -43
  28. package/SVF-doxygen/html/html/SVFGBuilder_8cpp_source.html +1 -1
  29. package/SVF-doxygen/html/html/SVFIRBuilder_8cpp.html +1 -0
  30. package/SVF-doxygen/html/html/SVFIRBuilder_8cpp_source.html +6 -5
  31. package/SVF-doxygen/html/html/SVFIRBuilder_8h_source.html +40 -40
  32. package/SVF-doxygen/html/html/SVFIR_8cpp_source.html +12 -12
  33. package/SVF-doxygen/html/html/SVFIR_8h_source.html +14 -14
  34. package/SVF-doxygen/html/html/SVFStatements_8cpp_source.html +22 -21
  35. package/SVF-doxygen/html/html/SVFStatements_8h_source.html +47 -47
  36. package/SVF-doxygen/html/html/SVFVariables_8h_source.html +91 -87
  37. package/SVF-doxygen/html/html/SaberSVFGBuilder_8cpp_source.html +5 -5
  38. package/SVF-doxygen/html/html/SrcSnkDDA_8cpp_source.html +1 -1
  39. package/SVF-doxygen/html/html/SymbolTableBuilder_8cpp_source.html +5 -5
  40. package/SVF-doxygen/html/html/SymbolTableInfo_8h_source.html +5 -5
  41. package/SVF-doxygen/html/html/ThreadCallGraph_8cpp_source.html +2 -2
  42. package/SVF-doxygen/html/html/TypeBasedHeapCloning_8cpp_source.html +11 -11
  43. package/SVF-doxygen/html/html/VFGNode_8h_source.html +4 -4
  44. package/SVF-doxygen/html/html/VFG_8cpp_source.html +9 -9
  45. package/SVF-doxygen/html/html/VFG_8h_source.html +8 -8
  46. package/SVF-doxygen/html/html/VersionedFlowSensitive_8cpp_source.html +2 -2
  47. package/SVF-doxygen/html/html/WPAPass_8cpp_source.html +1 -1
  48. package/SVF-doxygen/html/html/classSVF_1_1Andersen-members.html +187 -188
  49. package/SVF-doxygen/html/html/classSVF_1_1Andersen.html +7 -10
  50. package/SVF-doxygen/html/html/classSVF_1_1AndersenBase-members.html +160 -161
  51. package/SVF-doxygen/html/html/classSVF_1_1AndersenBase.html +4 -7
  52. package/SVF-doxygen/html/html/classSVF_1_1AndersenHCD-members.html +199 -200
  53. package/SVF-doxygen/html/html/classSVF_1_1AndersenHCD.html +0 -3
  54. package/SVF-doxygen/html/html/classSVF_1_1AndersenHLCD-members.html +202 -203
  55. package/SVF-doxygen/html/html/classSVF_1_1AndersenHLCD.html +0 -3
  56. package/SVF-doxygen/html/html/classSVF_1_1AndersenLCD-members.html +195 -196
  57. package/SVF-doxygen/html/html/classSVF_1_1AndersenLCD.html +0 -3
  58. package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD-members.html +196 -197
  59. package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD.html +0 -3
  60. package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR-members.html +205 -206
  61. package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR.html +1 -4
  62. package/SVF-doxygen/html/html/classSVF_1_1AndersenStat.html +3 -3
  63. package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff-members.html +193 -194
  64. package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff.html +0 -3
  65. package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl-members.html +116 -117
  66. package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl.html +12 -15
  67. package/SVF-doxygen/html/html/classSVF_1_1BinaryOPStmt.html +18 -18
  68. package/SVF-doxygen/html/html/classSVF_1_1BranchStmt.html +32 -32
  69. package/SVF-doxygen/html/html/classSVF_1_1BranchVFGNode.html +4 -4
  70. package/SVF-doxygen/html/html/classSVF_1_1CallPE.html +2 -2
  71. package/SVF-doxygen/html/html/classSVF_1_1CloneDummyObjVar-members.html +1 -1
  72. package/SVF-doxygen/html/html/classSVF_1_1CloneDummyObjVar.html +13 -11
  73. package/SVF-doxygen/html/html/classSVF_1_1CloneFIObjVar.html +12 -12
  74. package/SVF-doxygen/html/html/classSVF_1_1CloneGepObjVar.html +12 -12
  75. package/SVF-doxygen/html/html/classSVF_1_1CmpStmt.html +19 -19
  76. package/SVF-doxygen/html/html/classSVF_1_1CondPTAImpl-members.html +104 -105
  77. package/SVF-doxygen/html/html/classSVF_1_1CondPTAImpl.html +5 -8
  78. package/SVF-doxygen/html/html/classSVF_1_1ConstraintGraph.html +3 -3
  79. package/SVF-doxygen/html/html/classSVF_1_1ContextDDA-members.html +182 -183
  80. package/SVF-doxygen/html/html/classSVF_1_1ContextDDA.html +12 -15
  81. package/SVF-doxygen/html/html/classSVF_1_1DDAPass.html +5 -5
  82. package/SVF-doxygen/html/html/classSVF_1_1DDAStat.html +3 -3
  83. package/SVF-doxygen/html/html/classSVF_1_1DummyObjVar-members.html +2 -2
  84. package/SVF-doxygen/html/html/classSVF_1_1DummyObjVar.html +46 -14
  85. package/SVF-doxygen/html/html/classSVF_1_1DummyValVar-members.html +2 -2
  86. package/SVF-doxygen/html/html/classSVF_1_1DummyValVar.html +45 -14
  87. package/SVF-doxygen/html/html/classSVF_1_1FIObjVar.html +14 -14
  88. package/SVF-doxygen/html/html/classSVF_1_1FSMPTA-members.html +219 -220
  89. package/SVF-doxygen/html/html/classSVF_1_1FSMPTA.html +0 -3
  90. package/SVF-doxygen/html/html/classSVF_1_1FlowDDA-members.html +180 -181
  91. package/SVF-doxygen/html/html/classSVF_1_1FlowDDA.html +9 -12
  92. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive-members.html +212 -213
  93. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive.html +17 -20
  94. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveStat.html +2 -2
  95. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveTBHC-members.html +244 -245
  96. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveTBHC.html +7 -10
  97. package/SVF-doxygen/html/html/classSVF_1_1FunptrDDAClient.html +1 -1
  98. package/SVF-doxygen/html/html/classSVF_1_1GenericNode.html +1 -3
  99. package/SVF-doxygen/html/html/classSVF_1_1GenericNode.png +0 -0
  100. package/SVF-doxygen/html/html/classSVF_1_1GepObjVar.html +32 -32
  101. package/SVF-doxygen/html/html/classSVF_1_1GepStmt.html +2 -2
  102. package/SVF-doxygen/html/html/classSVF_1_1GepValVar.html +27 -27
  103. package/SVF-doxygen/html/html/classSVF_1_1ICFG-members.html +27 -26
  104. package/SVF-doxygen/html/html/classSVF_1_1ICFG.html +183 -116
  105. package/SVF-doxygen/html/html/classSVF_1_1ICFGBuilder.html +9 -5
  106. package/SVF-doxygen/html/html/classSVF_1_1ICFGPrinter-members.html +9 -9
  107. package/SVF-doxygen/html/html/classSVF_1_1ICFGPrinter.html +26 -25
  108. package/SVF-doxygen/html/html/classSVF_1_1LoadStmt.html +2 -2
  109. package/SVF-doxygen/html/html/classSVF_1_1MRGenerator.html +1 -1
  110. package/SVF-doxygen/html/html/classSVF_1_1MTA.html +2 -2
  111. package/SVF-doxygen/html/html/classSVF_1_1MTASVFGBuilder.html +1 -1
  112. package/SVF-doxygen/html/html/classSVF_1_1MemSSA.html +2 -2
  113. package/SVF-doxygen/html/html/classSVF_1_1MultiOpndStmt.html +4 -4
  114. package/SVF-doxygen/html/html/classSVF_1_1NormalGepStmt.html +2 -2
  115. package/SVF-doxygen/html/html/classSVF_1_1ObjVar.html +18 -18
  116. package/SVF-doxygen/html/html/classSVF_1_1PTAStat.html +2 -2
  117. package/SVF-doxygen/html/html/classSVF_1_1PhiStmt-members.html +37 -36
  118. package/SVF-doxygen/html/html/classSVF_1_1PhiStmt.html +27 -3
  119. package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis-members.html +78 -79
  120. package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.html +106 -146
  121. package/SVF-doxygen/html/html/classSVF_1_1RetPE.html +2 -2
  122. package/SVF-doxygen/html/html/classSVF_1_1RetPN-members.html +75 -73
  123. package/SVF-doxygen/html/html/classSVF_1_1RetPN.html +60 -16
  124. package/SVF-doxygen/html/html/classSVF_1_1RetPN.png +0 -0
  125. package/SVF-doxygen/html/html/classSVF_1_1SVFGBuilder.html +1 -1
  126. package/SVF-doxygen/html/html/classSVF_1_1SVFIR.html +14 -14
  127. package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder.html +122 -115
  128. package/SVF-doxygen/html/html/classSVF_1_1SVFVar.html +3 -3
  129. package/SVF-doxygen/html/html/classSVF_1_1SVFVar.png +0 -0
  130. package/SVF-doxygen/html/html/classSVF_1_1SaberSVFGBuilder.html +5 -5
  131. package/SVF-doxygen/html/html/classSVF_1_1SrcSnkDDA.html +1 -1
  132. package/SVF-doxygen/html/html/classSVF_1_1Steensgaard-members.html +171 -172
  133. package/SVF-doxygen/html/html/classSVF_1_1Steensgaard.html +0 -3
  134. package/SVF-doxygen/html/html/classSVF_1_1StoreStmt.html +2 -2
  135. package/SVF-doxygen/html/html/classSVF_1_1SymbolTableBuilder.html +5 -5
  136. package/SVF-doxygen/html/html/classSVF_1_1SymbolTableInfo.html +18 -18
  137. package/SVF-doxygen/html/html/classSVF_1_1TDForkPE.html +11 -11
  138. package/SVF-doxygen/html/html/classSVF_1_1TDJoinPE.html +11 -11
  139. package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraph.html +2 -2
  140. package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis-members.html +161 -162
  141. package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis.html +3 -6
  142. package/SVF-doxygen/html/html/classSVF_1_1TypeBasedHeapCloning.html +17 -17
  143. package/SVF-doxygen/html/html/classSVF_1_1UnaryOPStmt.html +25 -25
  144. package/SVF-doxygen/html/html/classSVF_1_1VFG.html +11 -11
  145. package/SVF-doxygen/html/html/classSVF_1_1ValVar.html +17 -11
  146. package/SVF-doxygen/html/html/classSVF_1_1ValVar.png +0 -0
  147. package/SVF-doxygen/html/html/classSVF_1_1VarArgPN-members.html +74 -72
  148. package/SVF-doxygen/html/html/classSVF_1_1VarArgPN.html +60 -16
  149. package/SVF-doxygen/html/html/classSVF_1_1VarArgPN.png +0 -0
  150. package/SVF-doxygen/html/html/classSVF_1_1VariantGepStmt.html +2 -2
  151. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive-members.html +254 -255
  152. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive.html +2 -5
  153. package/SVF-doxygen/html/html/classSVF_1_1WPAPass.html +1 -1
  154. package/SVF-doxygen/html/html/functions_c.html +12 -12
  155. package/SVF-doxygen/html/html/functions_d.html +0 -3
  156. package/SVF-doxygen/html/html/functions_func_c.html +19 -19
  157. package/SVF-doxygen/html/html/functions_func_d.html +0 -3
  158. package/SVF-doxygen/html/html/functions_func_i.html +13 -10
  159. package/SVF-doxygen/html/html/functions_i.html +10 -6
  160. package/SVF-doxygen/html/html/functions_l.html +6 -6
  161. package/SVF-doxygen/html/html/functions_n.html +3 -3
  162. package/SVF-doxygen/html/html/functions_p.html +9 -9
  163. package/SVF-doxygen/html/html/functions_r.html +1 -1
  164. package/SVF-doxygen/html/html/functions_rela.html +3 -0
  165. package/SVF-doxygen/html/html/functions_s.html +14 -12
  166. package/SVF-doxygen/html/html/functions_t.html +7 -5
  167. package/SVF-doxygen/html/html/functions_v.html +6 -6
  168. package/SVF-doxygen/html/html/hierarchy.html +5 -5
  169. package/SVF-doxygen/html/html/search/all_10.js +7 -7
  170. package/SVF-doxygen/html/html/search/all_12.js +1 -1
  171. package/SVF-doxygen/html/html/search/all_13.js +10 -10
  172. package/SVF-doxygen/html/html/search/all_14.js +3 -3
  173. package/SVF-doxygen/html/html/search/all_15.js +1 -1
  174. package/SVF-doxygen/html/html/search/all_16.js +3 -3
  175. package/SVF-doxygen/html/html/search/all_3.js +1 -1
  176. package/SVF-doxygen/html/html/search/all_4.js +0 -1
  177. package/SVF-doxygen/html/html/search/all_9.js +2 -1
  178. package/SVF-doxygen/html/html/search/all_c.js +3 -3
  179. package/SVF-doxygen/html/html/search/all_d.js +3 -3
  180. package/SVF-doxygen/html/html/search/all_e.js +2 -2
  181. package/SVF-doxygen/html/html/search/functions_10.js +1 -1
  182. package/SVF-doxygen/html/html/search/functions_2.js +1 -1
  183. package/SVF-doxygen/html/html/search/functions_3.js +0 -1
  184. package/SVF-doxygen/html/html/search/functions_8.js +1 -0
  185. package/SVF-doxygen/html/html/search/functions_e.js +1 -1
  186. package/SVF-doxygen/html/html/search/related_4.js +1 -0
  187. package/SVF-doxygen/html/html/search/variables_14.js +1 -1
  188. package/SVF-doxygen/html/html/search/variables_15.js +1 -1
  189. package/SVF-doxygen/html/html/search/variables_d.js +1 -1
  190. package/SVF-doxygen/html/html/search/variables_e.js +1 -1
  191. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01ICFG_01_5_01_4.html +1 -1
  192. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01Inverse_3_01SVF_1_1ICFGNode_01_5_01_4_01_4.html +1 -1
  193. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1ICFGNode_01_5_01_4.html +1 -1
  194. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1ICFG_01_5_01_4.html +2 -2
  195. package/SVF-doxygen/html/html/svf-ex_8cpp.html +1 -1
  196. package/SVF-doxygen/html/html/svf-ex_8cpp_source.html +1 -1
  197. package/include/Graphs/ICFG.h +5 -3
  198. package/include/MemoryModel/PointerAnalysis.h +0 -3
  199. package/include/MemoryModel/SVFStatements.h +5 -0
  200. package/include/MemoryModel/SVFVariables.h +25 -4
  201. package/include/MemoryModel/SymbolTableInfo.h +2 -2
  202. package/lib/Graphs/ICFG.cpp +2 -2
  203. package/lib/MSSA/MemSSA.cpp +1 -1
  204. package/lib/MemoryModel/PointerAnalysis.cpp +1 -21
  205. package/lib/MemoryModel/SVFStatements.cpp +10 -1
  206. package/lib/SVF-FE/ICFGBuilder.cpp +16 -2
  207. package/lib/SVF-FE/SVFIRBuilder.cpp +13 -0
  208. package/lib/SVF-FE/SymbolTableBuilder.cpp +8 -8
  209. package/package.json +1 -1
@@ -66,9 +66,9 @@ $(function() {
66
66
  <div class="title">SVFStatements.h</div> </div>
67
67
  </div><!--header-->
68
68
  <div class="contents">
69
- <a href="SVFStatements_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">//===- SVFStatements.h -- SVF statements-------------------------------------------//</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">// SVF: Static Value-Flow Analysis</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// Copyright (C) &lt;2013-2017&gt; &lt;Yulei Sui&gt;</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// This program is free software: you can redistribute it and/or modify</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">// the Free Software Foundation, either version 3 of the License, or</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// (at your option) any later version.</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// GNU General Public License for more details.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// along with this program. If not, see &lt;http://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">//===----------------------------------------------------------------------===//</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment"> * SVFStatements.h</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="comment"> * Created on: Nov 10, 2013</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="comment"> * Author: Yulei Sui</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#ifndef PAGEDGE_H_</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#define PAGEDGE_H_</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="GenericGraph_8h.html">Graphs/GenericGraph.h</a>&quot;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="LocationSet_8h.html">MemoryModel/LocationSet.h</a>&quot;</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="ICFGNode_8h.html">Graphs/ICFGNode.h</a>&quot;</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespaceSVF.html">SVF</a></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;{</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno"><a class="line" href="namespaceSVF.html#ab502ff5e204678640c1081d104f60971"> 41</a></span>&#160;<span class="keyword">class </span><a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="comment"> * SVFIR program statements (PAGEdges)</span></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="keyword">typedef</span> <a class="code" href="classSVF_1_1GenericEdge.html">GenericEdge&lt;SVFVar&gt;</a> <a class="code" href="namespaceSVF.html#ab502ff5e204678640c1081d104f60971">GenericPAGEdgeTy</a>;</div><div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html"> 47</a></span>&#160;<span class="keyword">class </span><a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a> : <span class="keyword">public</span> GenericPAGEdgeTy</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;{</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9"> 54</a></span>&#160; <span class="keyword">enum</span> <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9">PEDGEK</a></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"><a class="line" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a6b3a8902fc2aa68428e271012861a2a2"> 56</a></span>&#160; <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a0a9a0f650e864e89b7cbb3dc8c8aa197">Addr</a>, <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad3469cdfb64f05163b5310b731b221da">Copy</a>, <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9aa0f700b514c431ec5329aec49df56dcc">Store</a>, <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a62ac8480c43fcc657c631ec0003b15d5">Load</a>, <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a97ca16eba4c5f92e16388f0cdbcfcc00">Call</a>, <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a8d269a45adf13e69468f0357222ab2af">Ret</a>, <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ac2089ffeab3f27354b2094758c805746">NormalGep</a>, <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a6b3a8902fc2aa68428e271012861a2a2">VariantGep</a>, <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a6b3cd98eeb47c8475e7ee64480dcdee9">Phi</a>, <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a610d6662d1814cffbf23db29e7e620c0">Cmp</a>, <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad58f5e59c55e1ffd23b83d16224fed13">BinaryOp</a>, <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad2a5e6fe0f2b5fefb53abb9e91c57688">UnaryOp</a>, <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad52703e3ec09b6a4f565e5d82279b6a3">Branch</a>, <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a375b956af2119d7abca8f1995f7701fd">ThreadFork</a>, <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a3c3f8883c2d3b50aef6331d5da97ffb0">ThreadJoin</a></div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; };</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;<span class="keyword">private</span>:</div><div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#a6a689f62af301bd6ac09d7019aba1c17"> 60</a></span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* <a class="code" href="classSVF_1_1SVFStmt.html#a6a689f62af301bd6ac09d7019aba1c17">value</a>; </div><div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#a877c7137875233e147faeb1198243f36"> 61</a></span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a> *<a class="code" href="classSVF_1_1SVFStmt.html#a877c7137875233e147faeb1198243f36">basicBlock</a>; </div><div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#a50046a1500ec6e2819ef55162e70cc71"> 62</a></span>&#160; <a class="code" href="classSVF_1_1ICFGNode.html">ICFGNode</a> *<a class="code" href="classSVF_1_1SVFStmt.html#a50046a1500ec6e2819ef55162e70cc71">icfgNode</a>; </div><div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#a593cc8136f2138a518476405e667e060"> 63</a></span>&#160; <a class="code" href="namespaceSVF.html#ae71551d6a1fc300e0403297aa25ddf94">EdgeID</a> <a class="code" href="classSVF_1_1SVFStmt.html#a593cc8136f2138a518476405e667e060">edgeId</a>; </div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#aa306e817648ab5def47e83473e99b3d3"> 65</a></span>&#160; <span class="keyword">static</span> <a class="code" href="namespaceSVF.html#a2db29836a72e8d86e9baa6d8d55d2978">Size_t</a> <a class="code" href="classSVF_1_1SVFStmt.html#aa306e817648ab5def47e83473e99b3d3">totalEdgeNum</a>; </div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <a class="code" href="classSVF_1_1SVFStmt.html#a47102f72115d41bff899b1b2ffec75b1">SVFStmt</a>(<a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* s, <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* d, <a class="code" href="classSVF_1_1GenericEdge.html#aab8892b73370c32b48621cd1d0cce614">GEdgeFlag</a> k);</div><div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#aac79c7e8d390f297002782afb0ba3ff0"> 70</a></span>&#160; <a class="code" href="classSVF_1_1SVFStmt.html#aac79c7e8d390f297002782afb0ba3ff0">~SVFStmt</a>()</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; }</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</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"><a class="line" href="classSVF_1_1SVFStmt.html#ac517a3166a3afe45d04480534ac3bb50"> 76</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SVFStmt.html#ac517a3166a3afe45d04480534ac3bb50">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a>*)</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; {</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</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"><a class="line" href="classSVF_1_1SVFStmt.html#a00339663741d9f581d2f3ecae5a3e7e3"> 80</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SVFStmt.html#a00339663741d9f581d2f3ecae5a3e7e3">classof</a>(<span class="keyword">const</span> GenericPAGEdgeTy *edge)</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; {</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="keywordflow">return</span> edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a0a9a0f650e864e89b7cbb3dc8c8aa197">SVFStmt::Addr</a> ||</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad3469cdfb64f05163b5310b731b221da">SVFStmt::Copy</a> ||</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9aa0f700b514c431ec5329aec49df56dcc">SVFStmt::Store</a> ||</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a62ac8480c43fcc657c631ec0003b15d5">SVFStmt::Load</a> ||</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a97ca16eba4c5f92e16388f0cdbcfcc00">SVFStmt::Call</a> ||</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a8d269a45adf13e69468f0357222ab2af">SVFStmt::Ret</a> ||</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ac2089ffeab3f27354b2094758c805746">SVFStmt::NormalGep</a> ||</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a6b3a8902fc2aa68428e271012861a2a2">SVFStmt::VariantGep</a> ||</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a610d6662d1814cffbf23db29e7e620c0">SVFStmt::Cmp</a> ||</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad58f5e59c55e1ffd23b83d16224fed13">SVFStmt::BinaryOp</a> ||</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad2a5e6fe0f2b5fefb53abb9e91c57688">SVFStmt::UnaryOp</a> ||</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a375b956af2119d7abca8f1995f7701fd">SVFStmt::ThreadFork</a> ||</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a3c3f8883c2d3b50aef6331d5da97ffb0">SVFStmt::ThreadJoin</a>;</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; }</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;</div><div class="line"><a name="l00099"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#af7bb0d687fc61cae1de639c88e472491"> 99</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#ae71551d6a1fc300e0403297aa25ddf94">EdgeID</a> <a class="code" href="classSVF_1_1SVFStmt.html#af7bb0d687fc61cae1de639c88e472491">getEdgeID</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFStmt.html#a593cc8136f2138a518476405e667e060">edgeId</a>;</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; }</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SVFStmt.html#a0b6c03af568b70903da6b200ac86c951">isPTAEdge</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</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"><a class="line" href="classSVF_1_1SVFStmt.html#a86628ea173dec4934322f5d1caf2e1db"> 108</a></span>&#160; <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a>* <a class="code" href="classSVF_1_1SVFStmt.html#a86628ea173dec4934322f5d1caf2e1db">getInst</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">SVFUtil::dyn_cast</a>&lt;<a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a>&gt;(<a class="code" href="classSVF_1_1SVFStmt.html#a6a689f62af301bd6ac09d7019aba1c17">value</a>);</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; }</div><div class="line"><a name="l00112"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#a24dddb4e346a6e569908e3efe8a6ecc0"> 112</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFStmt.html#a24dddb4e346a6e569908e3efe8a6ecc0">setValue</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a> *val)</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; {</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; value = val;</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"><a class="line" href="classSVF_1_1SVFStmt.html#a65ee8b43a3a4999eb112a197d1a9f882"> 116</a></span>&#160; <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* <a class="code" href="classSVF_1_1SVFStmt.html#a65ee8b43a3a4999eb112a197d1a9f882">getValue</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFStmt.html#a6a689f62af301bd6ac09d7019aba1c17">value</a>;</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"><a class="line" href="classSVF_1_1SVFStmt.html#a852730edf374d18a3fb3985211ed7623"> 120</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFStmt.html#a852730edf374d18a3fb3985211ed7623">setBB</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a> *bb)</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; {</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; basicBlock = bb;</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"><a class="line" href="classSVF_1_1SVFStmt.html#a793c53e0b4f9a58099c096f0a0856495"> 124</a></span>&#160; <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a>* <a class="code" href="classSVF_1_1SVFStmt.html#a793c53e0b4f9a58099c096f0a0856495">getBB</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFStmt.html#a877c7137875233e147faeb1198243f36">basicBlock</a>;</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"><a class="line" href="classSVF_1_1SVFStmt.html#adb92a92f5c878576dff26cb38eab8c8c"> 128</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFStmt.html#adb92a92f5c878576dff26cb38eab8c8c">setICFGNode</a>(<a class="code" href="classSVF_1_1ICFGNode.html">ICFGNode</a> *node)</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; {</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; icfgNode = node;</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"><a class="line" href="classSVF_1_1SVFStmt.html#aa809a57c8cdaaa35dfc3cc0f3b33b52b"> 132</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="classSVF_1_1ICFGNode.html">ICFGNode</a>* <a class="code" href="classSVF_1_1SVFStmt.html#aa809a57c8cdaaa35dfc3cc0f3b33b52b">getICFGNode</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFStmt.html#a50046a1500ec6e2819ef55162e70cc71">icfgNode</a>;</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; }</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;</div><div class="line"><a name="l00139"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#a3b20523aed66ac8943d7d00ff777137b"> 139</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="classSVF_1_1GenericEdge.html#aab8892b73370c32b48621cd1d0cce614">GEdgeFlag</a> <a class="code" href="classSVF_1_1SVFStmt.html#a3b20523aed66ac8943d7d00ff777137b">makeEdgeFlagWithAddionalOpnd</a>(<a class="code" href="classSVF_1_1GenericEdge.html#a7eb93c9018c80057672a8ce71615dc0d">GEdgeKind</a> k, <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* var)</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; {</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; Var2LabelMap::const_iterator iter = <a class="code" href="classSVF_1_1SVFStmt.html#a24c64109d27ef7549d1c7a07c391e007">var2LabelMap</a>.find(var);</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <a class="code" href="namespaceSVF.html#a366625858f450a1ea5f985a3c83e0f14">u64_t</a> label = (iter != <a class="code" href="classSVF_1_1SVFStmt.html#a24c64109d27ef7549d1c7a07c391e007">var2LabelMap</a>.end()) ?</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; iter-&gt;second : <a class="code" href="classSVF_1_1SVFStmt.html#a9ea22adbfc307dddee42ffec07cc88ed">multiOpndLabelCounter</a>++;</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; return (label &lt;&lt; <a class="code" href="classSVF_1_1GenericEdge.html#af1c2fd4b5ef1d7b7605572bf2489c298">EdgeKindMaskBits</a>) | k;</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; }</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;</div><div class="line"><a name="l00148"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#a4513c6e66b46c36219ba6d7403f3eb00"> 148</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="classSVF_1_1GenericEdge.html#aab8892b73370c32b48621cd1d0cce614">GEdgeFlag</a> <a class="code" href="classSVF_1_1SVFStmt.html#a4513c6e66b46c36219ba6d7403f3eb00">makeEdgeFlagWithCallInst</a>(<a class="code" href="classSVF_1_1GenericEdge.html#a7eb93c9018c80057672a8ce71615dc0d">GEdgeKind</a> k, <span class="keyword">const</span> <a class="code" href="classSVF_1_1ICFGNode.html">ICFGNode</a>* cs)</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; {</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; Inst2LabelMap::const_iterator iter = <a class="code" href="classSVF_1_1SVFStmt.html#abb83549118bcd7216a053d82f7180d1c">inst2LabelMap</a>.find(cs);</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <a class="code" href="namespaceSVF.html#a366625858f450a1ea5f985a3c83e0f14">u64_t</a> label = (iter != <a class="code" href="classSVF_1_1SVFStmt.html#abb83549118bcd7216a053d82f7180d1c">inst2LabelMap</a>.end()) ?</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; iter-&gt;second : <a class="code" href="classSVF_1_1SVFStmt.html#a24227d7f1dd472f47bf94cb5db8505c4">callEdgeLabelCounter</a>++;</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; return (label &lt;&lt; <a class="code" href="classSVF_1_1GenericEdge.html#af1c2fd4b5ef1d7b7605572bf2489c298">EdgeKindMaskBits</a>) | k;</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; }</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;</div><div class="line"><a name="l00158"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#ad61722f886afaaee722ac55a4eed4d18"> 158</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="classSVF_1_1GenericEdge.html#aab8892b73370c32b48621cd1d0cce614">GEdgeFlag</a> <a class="code" href="classSVF_1_1SVFStmt.html#ad61722f886afaaee722ac55a4eed4d18">makeEdgeFlagWithStoreInst</a>(<a class="code" href="classSVF_1_1GenericEdge.html#a7eb93c9018c80057672a8ce71615dc0d">GEdgeKind</a> k, <span class="keyword">const</span> <a class="code" href="classSVF_1_1ICFGNode.html">ICFGNode</a>* store)</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; {</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; Inst2LabelMap::const_iterator iter = <a class="code" href="classSVF_1_1SVFStmt.html#abb83549118bcd7216a053d82f7180d1c">inst2LabelMap</a>.find(store);</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <a class="code" href="namespaceSVF.html#a366625858f450a1ea5f985a3c83e0f14">u64_t</a> label = (iter != <a class="code" href="classSVF_1_1SVFStmt.html#abb83549118bcd7216a053d82f7180d1c">inst2LabelMap</a>.end()) ?</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; iter-&gt;second : <a class="code" href="classSVF_1_1SVFStmt.html#a53b7e0d8666e37c23dc2c7d0fc931f27">storeEdgeLabelCounter</a>++;</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; return (label &lt;&lt; <a class="code" href="classSVF_1_1GenericEdge.html#af1c2fd4b5ef1d7b7605572bf2489c298">EdgeKindMaskBits</a>) | k;</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; }</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> std::string <a class="code" href="classSVF_1_1SVFStmt.html#ad0b4dbe87e009518f22360c48b0d0c22">toString</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;</div><div class="line"><a name="l00171"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#ad75e4c84f7d37824eb096aacca930ead"> 171</a></span>&#160; <span class="keyword">friend</span> <a class="code" href="namespaceSVF.html#a424cc053c29ad7303699c529d1a2cc71">raw_ostream</a>&amp; <a class="code" href="classSVF_1_1SVFStmt.html#ad75e4c84f7d37824eb096aacca930ead">operator&lt;&lt; </a>(<a class="code" href="namespaceSVF.html#a424cc053c29ad7303699c529d1a2cc71">raw_ostream</a> &amp;o, <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a> &amp;edge)</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; {</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; o &lt;&lt; edge.<a class="code" href="classSVF_1_1SVFStmt.html#ad0b4dbe87e009518f22360c48b0d0c22">toString</a>();</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <span class="keywordflow">return</span> o;</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; }</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160;</div><div class="line"><a name="l00178"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#a8cd7b6c6fd8b030b1421d95a086359f4"> 178</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1GenericNode.html#a03c6da4a73c47f84f5c5b47252bc339a">GenericNode&lt;SVFVar,SVFStmt&gt;::GEdgeSetTy</a> <a class="code" href="classSVF_1_1SVFStmt.html#a8cd7b6c6fd8b030b1421d95a086359f4">SVFStmtSetTy</a>;</div><div class="line"><a name="l00179"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#a229c78147511f2a581c761552179b6fa"> 179</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map&lt;EdgeID, SVFStmtSetTy&gt;</a> <a class="code" href="classSVF_1_1SVFStmt.html#a229c78147511f2a581c761552179b6fa">PAGEdgeToSetMapTy</a>;</div><div class="line"><a name="l00180"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#a93fc6c4c991931c78c48500c2db50f66"> 180</a></span>&#160; <span class="keyword">typedef</span> PAGEdgeToSetMapTy <a class="code" href="classSVF_1_1SVFStmt.html#a93fc6c4c991931c78c48500c2db50f66">KindToSVFStmtMapTy</a>;</div><div class="line"><a name="l00181"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#a2bdfa37167b5496629e5cae62705d5f2"> 181</a></span>&#160; <span class="keyword">typedef</span> SVFStmtSetTy <a class="code" href="classSVF_1_1SVFStmt.html#a2bdfa37167b5496629e5cae62705d5f2">PAGEdgeSetTy</a>;</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00184"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#a5a3db6b1335b4adc55b961a6f480f228"> 184</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map&lt;const ICFGNode*, u32_t&gt;</a> <a class="code" href="classSVF_1_1SVFStmt.html#a5a3db6b1335b4adc55b961a6f480f228">Inst2LabelMap</a>;</div><div class="line"><a name="l00185"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#ad178ccbc7800527c3dc406ad5fa069bb"> 185</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map&lt;const SVFVar*, u32_t&gt;</a> <a class="code" href="classSVF_1_1SVFStmt.html#ad178ccbc7800527c3dc406ad5fa069bb">Var2LabelMap</a>;</div><div class="line"><a name="l00186"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#abb83549118bcd7216a053d82f7180d1c"> 186</a></span>&#160; <span class="keyword">static</span> Inst2LabelMap <a class="code" href="classSVF_1_1SVFStmt.html#abb83549118bcd7216a053d82f7180d1c">inst2LabelMap</a>; </div><div class="line"><a name="l00187"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#a24c64109d27ef7549d1c7a07c391e007"> 187</a></span>&#160; <span class="keyword">static</span> Var2LabelMap <a class="code" href="classSVF_1_1SVFStmt.html#a24c64109d27ef7549d1c7a07c391e007">var2LabelMap</a>; </div><div class="line"><a name="l00188"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#a24227d7f1dd472f47bf94cb5db8505c4"> 188</a></span>&#160; <span class="keyword">static</span> <a class="code" href="namespaceSVF.html#a366625858f450a1ea5f985a3c83e0f14">u64_t</a> <a class="code" href="classSVF_1_1SVFStmt.html#a24227d7f1dd472f47bf94cb5db8505c4">callEdgeLabelCounter</a>; </div><div class="line"><a name="l00189"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#a53b7e0d8666e37c23dc2c7d0fc931f27"> 189</a></span>&#160; <span class="keyword">static</span> <a class="code" href="namespaceSVF.html#a366625858f450a1ea5f985a3c83e0f14">u64_t</a> <a class="code" href="classSVF_1_1SVFStmt.html#a53b7e0d8666e37c23dc2c7d0fc931f27">storeEdgeLabelCounter</a>; </div><div class="line"><a name="l00190"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#a9ea22adbfc307dddee42ffec07cc88ed"> 190</a></span>&#160; <span class="keyword">static</span> <a class="code" href="namespaceSVF.html#a366625858f450a1ea5f985a3c83e0f14">u64_t</a> <a class="code" href="classSVF_1_1SVFStmt.html#a9ea22adbfc307dddee42ffec07cc88ed">multiOpndLabelCounter</a>; </div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;};</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160;</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;<span class="comment"> Parent class of Addr, Copy, Store, Load, Call, Ret, NormalGep, VariantGep, ThreadFork, ThreadJoin</span></div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;<span class="comment"> connecting RHS expression and LHS expression with an assignment (e.g., LHSExpr = RHSExpr)</span></div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;<span class="comment"> Only one operand on the right handside of an assignment</span></div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160;<span class="comment">*/</span></div><div class="line"><a name="l00198"></a><span class="lineno"><a class="line" href="classSVF_1_1AssignStmt.html"> 198</a></span>&#160;<span class="keyword">class </span><a class="code" href="classSVF_1_1AssignStmt.html">AssignStmt</a> : <span class="keyword">public</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a>{</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160;</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <a class="code" href="classSVF_1_1AssignStmt.html">AssignStmt</a>(); </div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <a class="code" href="classSVF_1_1AssignStmt.html">AssignStmt</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1AssignStmt.html">AssignStmt</a> &amp;); </div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; <span class="keywordtype">void</span> operator=(<span class="keyword">const</span> <a class="code" href="classSVF_1_1AssignStmt.html">AssignStmt</a> &amp;); </div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* <a class="code" href="classSVF_1_1GenericEdge.html#ab47ca533c415841ef75456cbad439589">getSrcNode</a>(); </div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* <a class="code" href="classSVF_1_1GenericEdge.html#aeaa31a2c8479e831b36ce2e2582ceb86">getDstNode</a>(); </div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1GenericEdge.html#ae6792506a0150a9400d635eceab7f9e7">getSrcID</a>(); </div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1GenericEdge.html#ad9edb45e74ae675d9da82f5acf02d56e">getDstID</a>(); </div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160;</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;<span class="keyword">protected</span>:</div><div class="line"><a name="l00211"></a><span class="lineno"><a class="line" href="classSVF_1_1AssignStmt.html#aff4c35109790daed3c6170c985153620"> 211</a></span>&#160; <a class="code" href="classSVF_1_1AssignStmt.html#aff4c35109790daed3c6170c985153620">AssignStmt</a>(<a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* s, <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* d, <a class="code" href="classSVF_1_1GenericEdge.html#aab8892b73370c32b48621cd1d0cce614">GEdgeFlag</a> k) : <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a>(s,d,k)</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; {</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; }</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160;</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160;</div><div class="line"><a name="l00218"></a><span class="lineno"><a class="line" href="classSVF_1_1AssignStmt.html#a4f94b6731f324e44fc4d4e06d7acdbf7"> 218</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1AssignStmt.html#a4f94b6731f324e44fc4d4e06d7acdbf7">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1AssignStmt.html">AssignStmt</a> *)</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; {</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; }</div><div class="line"><a name="l00222"></a><span class="lineno"><a class="line" href="classSVF_1_1AssignStmt.html#ad5e2d41b8cd548628b59227368388ed0"> 222</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1AssignStmt.html#ad5e2d41b8cd548628b59227368388ed0">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a> *edge)</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; {</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; <span class="keywordflow">return</span> edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a0a9a0f650e864e89b7cbb3dc8c8aa197">SVFStmt::Addr</a> ||</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad3469cdfb64f05163b5310b731b221da">SVFStmt::Copy</a> ||</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9aa0f700b514c431ec5329aec49df56dcc">SVFStmt::Store</a> ||</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a62ac8480c43fcc657c631ec0003b15d5">SVFStmt::Load</a> ||</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a97ca16eba4c5f92e16388f0cdbcfcc00">SVFStmt::Call</a> ||</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a8d269a45adf13e69468f0357222ab2af">SVFStmt::Ret</a> ||</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ac2089ffeab3f27354b2094758c805746">SVFStmt::NormalGep</a> ||</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a6b3a8902fc2aa68428e271012861a2a2">SVFStmt::VariantGep</a> ||</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a375b956af2119d7abca8f1995f7701fd">SVFStmt::ThreadFork</a> ||</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a3c3f8883c2d3b50aef6331d5da97ffb0">SVFStmt::ThreadJoin</a>;</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; }</div><div class="line"><a name="l00235"></a><span class="lineno"><a class="line" href="classSVF_1_1AssignStmt.html#a8b2837153dcf9f7e2adc3b30b2dd0245"> 235</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1AssignStmt.html#a8b2837153dcf9f7e2adc3b30b2dd0245">classof</a>(<span class="keyword">const</span> GenericPAGEdgeTy *edge)</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; <span class="keywordflow">return</span> edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a0a9a0f650e864e89b7cbb3dc8c8aa197">SVFStmt::Addr</a> ||</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad3469cdfb64f05163b5310b731b221da">SVFStmt::Copy</a> ||</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9aa0f700b514c431ec5329aec49df56dcc">SVFStmt::Store</a> ||</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a62ac8480c43fcc657c631ec0003b15d5">SVFStmt::Load</a> ||</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a97ca16eba4c5f92e16388f0cdbcfcc00">SVFStmt::Call</a> ||</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a8d269a45adf13e69468f0357222ab2af">SVFStmt::Ret</a> ||</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ac2089ffeab3f27354b2094758c805746">SVFStmt::NormalGep</a> ||</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a6b3a8902fc2aa68428e271012861a2a2">SVFStmt::VariantGep</a> ||</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a375b956af2119d7abca8f1995f7701fd">SVFStmt::ThreadFork</a> ||</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a3c3f8883c2d3b50aef6331d5da97ffb0">SVFStmt::ThreadJoin</a>;</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; }</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160;</div><div class="line"><a name="l00250"></a><span class="lineno"><a class="line" href="classSVF_1_1AssignStmt.html#ad03d28d16754c9049dd4d0ad3b6c1e28"> 250</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* <a class="code" href="classSVF_1_1AssignStmt.html#ad03d28d16754c9049dd4d0ad3b6c1e28">getRHSVar</a>()<span class="keyword"> const </span>{</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1GenericEdge.html#ab47ca533c415841ef75456cbad439589">SVFStmt::getSrcNode</a>();</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; } </div><div class="line"><a name="l00253"></a><span class="lineno"><a class="line" href="classSVF_1_1AssignStmt.html#a973a2b79da223275ed6a1831837b89c7"> 253</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* <a class="code" href="classSVF_1_1AssignStmt.html#a973a2b79da223275ed6a1831837b89c7">getLHSVar</a>()<span class="keyword"> const </span>{</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1GenericEdge.html#aeaa31a2c8479e831b36ce2e2582ceb86">SVFStmt::getDstNode</a>();</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; } </div><div class="line"><a name="l00256"></a><span class="lineno"><a class="line" href="classSVF_1_1AssignStmt.html#a4cec89489e82c60c287cae3327f3f01d"> 256</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1AssignStmt.html#a4cec89489e82c60c287cae3327f3f01d">getRHSVarID</a>()<span class="keyword"> const </span>{</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1GenericEdge.html#ae6792506a0150a9400d635eceab7f9e7">SVFStmt::getSrcID</a>();</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; } </div><div class="line"><a name="l00259"></a><span class="lineno"><a class="line" href="classSVF_1_1AssignStmt.html#a98f731be7be9bc8e7fd09f5c2204c840"> 259</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1AssignStmt.html#a98f731be7be9bc8e7fd09f5c2204c840">getLHSVarID</a>()<span class="keyword"> const </span>{</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1GenericEdge.html#ad9edb45e74ae675d9da82f5acf02d56e">SVFStmt::getDstID</a>();</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; } </div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160;</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> std::string <a class="code" href="classSVF_1_1SVFStmt.html#ad0b4dbe87e009518f22360c48b0d0c22">toString</a>() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160;};</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160;</div><div class="line"><a name="l00269"></a><span class="lineno"><a class="line" href="classSVF_1_1AddrStmt.html"> 269</a></span>&#160;<span class="keyword">class </span><a class="code" href="classSVF_1_1AddrStmt.html">AddrStmt</a>: <span class="keyword">public</span> <a class="code" href="classSVF_1_1AssignStmt.html">AssignStmt</a></div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160;{</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; <a class="code" href="classSVF_1_1AddrStmt.html">AddrStmt</a>(); </div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; <a class="code" href="classSVF_1_1AddrStmt.html">AddrStmt</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1AddrStmt.html">AddrStmt</a> &amp;); </div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; <span class="keywordtype">void</span> operator=(<span class="keyword">const</span> <a class="code" href="classSVF_1_1AddrStmt.html">AddrStmt</a> &amp;); </div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160;</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160;</div><div class="line"><a name="l00279"></a><span class="lineno"><a class="line" href="classSVF_1_1AddrStmt.html#a32e129c9f7aa16be8c5c8569989f691f"> 279</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1AddrStmt.html#a32e129c9f7aa16be8c5c8569989f691f">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1AddrStmt.html">AddrStmt</a> *)</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; {</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; }</div><div class="line"><a name="l00283"></a><span class="lineno"><a class="line" href="classSVF_1_1AddrStmt.html#aeec83dc4e79ee62c92c75aa778a475ad"> 283</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1AddrStmt.html#aeec83dc4e79ee62c92c75aa778a475ad">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a> *edge)</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; {</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; <span class="keywordflow">return</span> edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a0a9a0f650e864e89b7cbb3dc8c8aa197">SVFStmt::Addr</a>;</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; }</div><div class="line"><a name="l00287"></a><span class="lineno"><a class="line" href="classSVF_1_1AddrStmt.html#a6876ffc2c97c5ba64155891b55a7884c"> 287</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1AddrStmt.html#a6876ffc2c97c5ba64155891b55a7884c">classof</a>(<span class="keyword">const</span> GenericPAGEdgeTy *edge)</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">return</span> edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a0a9a0f650e864e89b7cbb3dc8c8aa197">SVFStmt::Addr</a>;</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; }</div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160;</div><div class="line"><a name="l00294"></a><span class="lineno"><a class="line" href="classSVF_1_1AddrStmt.html#a42caa75acb42ce8e290c1278622f139c"> 294</a></span>&#160; <a class="code" href="classSVF_1_1AddrStmt.html#a42caa75acb42ce8e290c1278622f139c">AddrStmt</a>(<a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* s, <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* d) : <a class="code" href="classSVF_1_1AssignStmt.html">AssignStmt</a>(s,d,<a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a>::<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a0a9a0f650e864e89b7cbb3dc8c8aa197">Addr</a>)</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; {</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; }</div><div class="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; <span class="keyword">virtual</span> <span class="keyword">const</span> std::string <a class="code" href="classSVF_1_1SVFStmt.html#ad0b4dbe87e009518f22360c48b0d0c22">toString</a>() <span class="keyword">const override</span>;</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160;};</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160;</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160;</div><div class="line"><a name="l00305"></a><span class="lineno"><a class="line" href="classSVF_1_1CopyStmt.html"> 305</a></span>&#160;<span class="keyword">class </span><a class="code" href="classSVF_1_1CopyStmt.html">CopyStmt</a>: <span class="keyword">public</span> <a class="code" href="classSVF_1_1AssignStmt.html">AssignStmt</a></div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160;{</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; <a class="code" href="classSVF_1_1CopyStmt.html">CopyStmt</a>(); </div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; <a class="code" href="classSVF_1_1CopyStmt.html">CopyStmt</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CopyStmt.html">CopyStmt</a> &amp;); </div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; <span class="keywordtype">void</span> operator=(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CopyStmt.html">CopyStmt</a> &amp;); </div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160;<span class="keyword">public</span>:</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"><a class="line" href="classSVF_1_1CopyStmt.html#a253c81c922bef6e2d520262c2f7793c4"> 314</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1CopyStmt.html#a253c81c922bef6e2d520262c2f7793c4">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CopyStmt.html">CopyStmt</a> *)</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; {</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; }</div><div class="line"><a name="l00318"></a><span class="lineno"><a class="line" href="classSVF_1_1CopyStmt.html#a5e883bb0bc30cf8b7d325b66f7a42848"> 318</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1CopyStmt.html#a5e883bb0bc30cf8b7d325b66f7a42848">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a> *edge)</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; {</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; <span class="keywordflow">return</span> edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad3469cdfb64f05163b5310b731b221da">SVFStmt::Copy</a>;</div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; }</div><div class="line"><a name="l00322"></a><span class="lineno"><a class="line" href="classSVF_1_1CopyStmt.html#a12e960569a9f4beae99195a0fe2d3b68"> 322</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1CopyStmt.html#a12e960569a9f4beae99195a0fe2d3b68">classof</a>(<span class="keyword">const</span> GenericPAGEdgeTy *edge)</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">return</span> edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad3469cdfb64f05163b5310b731b221da">SVFStmt::Copy</a>;</div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; }</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160;</div><div class="line"><a name="l00329"></a><span class="lineno"><a class="line" href="classSVF_1_1CopyStmt.html#a69b179ef052408034786d32a52c52389"> 329</a></span>&#160; <a class="code" href="classSVF_1_1CopyStmt.html#a69b179ef052408034786d32a52c52389">CopyStmt</a>(<a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* s, <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* d) : <a class="code" href="classSVF_1_1AssignStmt.html">AssignStmt</a>(s,d,<a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a>::<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad3469cdfb64f05163b5310b731b221da">Copy</a>)</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; }</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="keyword">virtual</span> <span class="keyword">const</span> std::string <a class="code" href="classSVF_1_1SVFStmt.html#ad0b4dbe87e009518f22360c48b0d0c22">toString</a>() <span class="keyword">const override</span>;</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;</div><div class="line"><a name="l00339"></a><span class="lineno"><a class="line" href="classSVF_1_1StoreStmt.html"> 339</a></span>&#160;<span class="keyword">class </span><a class="code" href="classSVF_1_1StoreStmt.html">StoreStmt</a>: <span class="keyword">public</span> <a class="code" href="classSVF_1_1AssignStmt.html">AssignStmt</a></div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160;{</div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160; <a class="code" href="classSVF_1_1StoreStmt.html">StoreStmt</a>(); </div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160; <a class="code" href="classSVF_1_1StoreStmt.html">StoreStmt</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1StoreStmt.html">StoreStmt</a> &amp;); </div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; <span class="keywordtype">void</span> operator=(<span class="keyword">const</span> <a class="code" href="classSVF_1_1StoreStmt.html">StoreStmt</a> &amp;); </div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160;</div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160;<span class="keyword">public</span>:</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"><a class="line" href="classSVF_1_1StoreStmt.html#ae3c219e8af92e222f55c930009db6e67"> 349</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1StoreStmt.html#ae3c219e8af92e222f55c930009db6e67">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1StoreStmt.html">StoreStmt</a> *)</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; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; }</div><div class="line"><a name="l00353"></a><span class="lineno"><a class="line" href="classSVF_1_1StoreStmt.html#a31f69e402887eff60e2055799ed561b9"> 353</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1StoreStmt.html#a31f69e402887eff60e2055799ed561b9">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a> *edge)</div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160; {</div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; <span class="keywordflow">return</span> edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9aa0f700b514c431ec5329aec49df56dcc">SVFStmt::Store</a>;</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; }</div><div class="line"><a name="l00357"></a><span class="lineno"><a class="line" href="classSVF_1_1StoreStmt.html#ab71bf959fce0e702556dd753636298b2"> 357</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1StoreStmt.html#ab71bf959fce0e702556dd753636298b2">classof</a>(<span class="keyword">const</span> GenericPAGEdgeTy *edge)</div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160; {</div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160; <span class="keywordflow">return</span> edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9aa0f700b514c431ec5329aec49df56dcc">SVFStmt::Store</a>;</div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; }</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160;</div><div class="line"><a name="l00364"></a><span class="lineno"><a class="line" href="classSVF_1_1StoreStmt.html#aa817396dc47f1f03015c1c95a43cf8eb"> 364</a></span>&#160; <a class="code" href="classSVF_1_1StoreStmt.html#aa817396dc47f1f03015c1c95a43cf8eb">StoreStmt</a>(<a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* s, <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* d, <span class="keyword">const</span> <a class="code" href="classSVF_1_1IntraBlockNode.html">IntraBlockNode</a>* st) :</div><div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; <a class="code" href="classSVF_1_1AssignStmt.html">AssignStmt</a>(s, d, <a class="code" href="classSVF_1_1SVFStmt.html#ad61722f886afaaee722ac55a4eed4d18">makeEdgeFlagWithStoreInst</a>(<a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a>::<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9aa0f700b514c431ec5329aec49df56dcc">Store</a>, st))</div><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; }</div><div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160;</div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> std::string <a class="code" href="classSVF_1_1SVFStmt.html#ad0b4dbe87e009518f22360c48b0d0c22">toString</a>() <span class="keyword">const override</span>;</div><div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160;};</div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160;</div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160;</div><div class="line"><a name="l00376"></a><span class="lineno"><a class="line" href="classSVF_1_1LoadStmt.html"> 376</a></span>&#160;<span class="keyword">class </span><a class="code" href="classSVF_1_1LoadStmt.html">LoadStmt</a>: <span class="keyword">public</span> <a class="code" href="classSVF_1_1AssignStmt.html">AssignStmt</a></div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160;{</div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160; <a class="code" href="classSVF_1_1LoadStmt.html">LoadStmt</a>(); </div><div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160; <a class="code" href="classSVF_1_1LoadStmt.html">LoadStmt</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1LoadStmt.html">LoadStmt</a> &amp;); </div><div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160; <span class="keywordtype">void</span> operator=(<span class="keyword">const</span> <a class="code" href="classSVF_1_1LoadStmt.html">LoadStmt</a> &amp;); </div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160;</div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160;</div><div class="line"><a name="l00386"></a><span class="lineno"><a class="line" href="classSVF_1_1LoadStmt.html#a03d6f1ee2f52b34d905b204eb53d6560"> 386</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1LoadStmt.html#a03d6f1ee2f52b34d905b204eb53d6560">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1LoadStmt.html">LoadStmt</a> *)</div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160; {</div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; }</div><div class="line"><a name="l00390"></a><span class="lineno"><a class="line" href="classSVF_1_1LoadStmt.html#ac252b1e9b7c01108d1aff602fbe1ef40"> 390</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1LoadStmt.html#ac252b1e9b7c01108d1aff602fbe1ef40">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a> *edge)</div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160; {</div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160; <span class="keywordflow">return</span> edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a62ac8480c43fcc657c631ec0003b15d5">SVFStmt::Load</a>;</div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160; }</div><div class="line"><a name="l00394"></a><span class="lineno"><a class="line" href="classSVF_1_1LoadStmt.html#ab30f370a8a2a3e63765c1e4843f07826"> 394</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1LoadStmt.html#ab30f370a8a2a3e63765c1e4843f07826">classof</a>(<span class="keyword">const</span> GenericPAGEdgeTy *edge)</div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160; {</div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160; <span class="keywordflow">return</span> edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a62ac8480c43fcc657c631ec0003b15d5">SVFStmt::Load</a>;</div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160; }</div><div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160;</div><div class="line"><a name="l00401"></a><span class="lineno"><a class="line" href="classSVF_1_1LoadStmt.html#a92c5817abfaa1f6fbc9ee911f458dfb2"> 401</a></span>&#160; <a class="code" href="classSVF_1_1LoadStmt.html#a92c5817abfaa1f6fbc9ee911f458dfb2">LoadStmt</a>(<a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* s, <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* d) : <a class="code" href="classSVF_1_1AssignStmt.html">AssignStmt</a>(s,d,<a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a>::<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a62ac8480c43fcc657c631ec0003b15d5">Load</a>)</div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160; {</div><div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160; }</div><div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160;</div><div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> std::string <a class="code" href="classSVF_1_1SVFStmt.html#ad0b4dbe87e009518f22360c48b0d0c22">toString</a>() <span class="keyword">const override</span>;</div><div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160;};</div><div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160;</div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160;</div><div class="line"><a name="l00412"></a><span class="lineno"><a class="line" href="classSVF_1_1GepStmt.html"> 412</a></span>&#160;<span class="keyword">class </span><a class="code" href="classSVF_1_1GepStmt.html">GepStmt</a>: <span class="keyword">public</span> <a class="code" href="classSVF_1_1AssignStmt.html">AssignStmt</a></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;<span class="keyword">private</span>:</div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; <a class="code" href="classSVF_1_1GepStmt.html">GepStmt</a>(); </div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; <a class="code" href="classSVF_1_1GepStmt.html">GepStmt</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1GepStmt.html">GepStmt</a> &amp;); </div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; <span class="keywordtype">void</span> operator=(<span class="keyword">const</span> <a class="code" href="classSVF_1_1GepStmt.html">GepStmt</a> &amp;); </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"><a class="line" href="classSVF_1_1GepStmt.html#a543a3f4801b22719f7b9677246bf2ac7"> 419</a></span>&#160; <a class="code" href="classSVF_1_1LocationSet.html">LocationSet</a> <a class="code" href="classSVF_1_1GepStmt.html#a543a3f4801b22719f7b9677246bf2ac7">ls</a>; </div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160;</div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160;</div><div class="line"><a name="l00424"></a><span class="lineno"><a class="line" href="classSVF_1_1GepStmt.html#a441cd8487b320ceff9d62884b4f28176"> 424</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1GepStmt.html#a441cd8487b320ceff9d62884b4f28176">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1GepStmt.html">GepStmt</a> *)</div><div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160; {</div><div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</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"><a class="line" href="classSVF_1_1GepStmt.html#a92016e7d6061e4a157c9cd39ad94cc20"> 428</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1GepStmt.html#a92016e7d6061e4a157c9cd39ad94cc20">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a> *edge)</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="keywordflow">return</span> edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ac2089ffeab3f27354b2094758c805746">SVFStmt::NormalGep</a> ||</div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160; edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a6b3a8902fc2aa68428e271012861a2a2">SVFStmt::VariantGep</a>;</div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; }</div><div class="line"><a name="l00433"></a><span class="lineno"><a class="line" href="classSVF_1_1GepStmt.html#ac47064e21e2afdf7bd85c6acba44367f"> 433</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1GepStmt.html#ac47064e21e2afdf7bd85c6acba44367f">classof</a>(<span class="keyword">const</span> GenericPAGEdgeTy *edge)</div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160; {</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160; <span class="keywordflow">return</span> edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ac2089ffeab3f27354b2094758c805746">SVFStmt::NormalGep</a> ||</div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160; edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a6b3a8902fc2aa68428e271012861a2a2">SVFStmt::VariantGep</a>;</div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160; }</div><div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160;</div><div class="line"><a name="l00440"></a><span class="lineno"><a class="line" href="classSVF_1_1GepStmt.html#abec33091e0dac0cdd5b95b6d7b0db3d8"> 440</a></span>&#160; <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1LocationSet.html">LocationSet</a>&amp; <a class="code" href="classSVF_1_1GepStmt.html#abec33091e0dac0cdd5b95b6d7b0db3d8">getLocationSet</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160; <span class="keywordflow">return</span> ls;</div><div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160; }</div><div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160;</div><div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160;<span class="keyword">protected</span>:</div><div class="line"><a name="l00447"></a><span class="lineno"><a class="line" href="classSVF_1_1GepStmt.html#ab2e054cf447dd676598d79edb44abfdf"> 447</a></span>&#160; <a class="code" href="classSVF_1_1GepStmt.html#ab2e054cf447dd676598d79edb44abfdf">GepStmt</a>(<a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* s, <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* d, <span class="keyword">const</span> <a class="code" href="classSVF_1_1LocationSet.html">LocationSet</a>&amp; l, <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9">PEDGEK</a> k) : <a class="code" href="classSVF_1_1AssignStmt.html">AssignStmt</a>(s,d,k), ls(l)</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; }</div><div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160;</div><div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> std::string <a class="code" href="classSVF_1_1SVFStmt.html#ad0b4dbe87e009518f22360c48b0d0c22">toString</a>() <span class="keyword">const</span>;</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;};</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;</div><div class="line"><a name="l00459"></a><span class="lineno"><a class="line" href="classSVF_1_1NormalGepStmt.html"> 459</a></span>&#160;<span class="keyword">class </span><a class="code" href="classSVF_1_1NormalGepStmt.html">NormalGepStmt</a> : <span class="keyword">public</span> <a class="code" href="classSVF_1_1GepStmt.html">GepStmt</a></div><div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160;{</div><div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160; <a class="code" href="classSVF_1_1NormalGepStmt.html">NormalGepStmt</a>(); </div><div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160; <a class="code" href="classSVF_1_1NormalGepStmt.html">NormalGepStmt</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1NormalGepStmt.html">NormalGepStmt</a>&amp;); </div><div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160; <span class="keywordtype">void</span> operator=(<span class="keyword">const</span> <a class="code" href="classSVF_1_1NormalGepStmt.html">NormalGepStmt</a>&amp;); </div><div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160;</div><div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160;</div><div class="line"><a name="l00469"></a><span class="lineno"><a class="line" href="classSVF_1_1NormalGepStmt.html#a3826905ca0b4d6a7e58bc2e9418d9773"> 469</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1NormalGepStmt.html#a3826905ca0b4d6a7e58bc2e9418d9773">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1NormalGepStmt.html">NormalGepStmt</a> *)</div><div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160; {</div><div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160; }</div><div class="line"><a name="l00473"></a><span class="lineno"><a class="line" href="classSVF_1_1NormalGepStmt.html#a2609aa1080824b3568856660b11b253e"> 473</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1NormalGepStmt.html#a2609aa1080824b3568856660b11b253e">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1GepStmt.html">GepStmt</a> *edge)</div><div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160; {</div><div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160; <span class="keywordflow">return</span> edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ac2089ffeab3f27354b2094758c805746">SVFStmt::NormalGep</a>;</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"><a class="line" href="classSVF_1_1NormalGepStmt.html#a60e0f787049a81bcf2818a5da7664e18"> 477</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1NormalGepStmt.html#a60e0f787049a81bcf2818a5da7664e18">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a> *edge)</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; <span class="keywordflow">return</span> edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ac2089ffeab3f27354b2094758c805746">SVFStmt::NormalGep</a>;</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"><a class="line" href="classSVF_1_1NormalGepStmt.html#a0b2bdc521dbd26cce257d469d9d33a82"> 481</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1NormalGepStmt.html#a0b2bdc521dbd26cce257d469d9d33a82">classof</a>(<span class="keyword">const</span> GenericPAGEdgeTy *edge)</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; <span class="keywordflow">return</span> edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ac2089ffeab3f27354b2094758c805746">SVFStmt::NormalGep</a>;</div><div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160; }</div><div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160;</div><div class="line"><a name="l00488"></a><span class="lineno"><a class="line" href="classSVF_1_1NormalGepStmt.html#a5c0e04f4ee0574e0e4a82c8070b33206"> 488</a></span>&#160; <a class="code" href="classSVF_1_1NormalGepStmt.html#a5c0e04f4ee0574e0e4a82c8070b33206">NormalGepStmt</a>(<a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* s, <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* d, <span class="keyword">const</span> <a class="code" href="classSVF_1_1LocationSet.html">LocationSet</a>&amp; l) : <a class="code" href="classSVF_1_1GepStmt.html">GepStmt</a>(s,d,l, <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a>::<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ac2089ffeab3f27354b2094758c805746">NormalGep</a>)</div><div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160; {}</div><div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160;</div><div class="line"><a name="l00492"></a><span class="lineno"><a class="line" href="classSVF_1_1NormalGepStmt.html#a5f68b485fb5d60deef2ca33da40c69ef"> 492</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1NormalGepStmt.html#a5f68b485fb5d60deef2ca33da40c69ef">getFieldOffset</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160; <span class="keywordflow">return</span> getLocationSet().accumulateConstantFieldIdx();</div><div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160; }</div><div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160;</div><div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> std::string <a class="code" href="classSVF_1_1SVFStmt.html#ad0b4dbe87e009518f22360c48b0d0c22">toString</a>() <span class="keyword">const override</span>;</div><div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160;};</div><div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160;</div><div class="line"><a name="l00503"></a><span class="lineno"><a class="line" href="classSVF_1_1VariantGepStmt.html"> 503</a></span>&#160;<span class="keyword">class </span><a class="code" href="classSVF_1_1VariantGepStmt.html">VariantGepStmt</a> : <span class="keyword">public</span> <a class="code" href="classSVF_1_1GepStmt.html">GepStmt</a></div><div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160;{</div><div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00506"></a><span class="lineno"> 506</span>&#160; <a class="code" href="classSVF_1_1VariantGepStmt.html">VariantGepStmt</a>(); </div><div class="line"><a name="l00507"></a><span class="lineno"> 507</span>&#160; <a class="code" href="classSVF_1_1VariantGepStmt.html">VariantGepStmt</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1VariantGepStmt.html">VariantGepStmt</a>&amp;); </div><div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160; <span class="keywordtype">void</span> operator=(<span class="keyword">const</span> <a class="code" href="classSVF_1_1VariantGepStmt.html">VariantGepStmt</a>&amp;); </div><div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160;</div><div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160;<span class="keyword">public</span>:</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"><a class="line" href="classSVF_1_1VariantGepStmt.html#a68a168d7000b6185704f61725ffef6af"> 513</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1VariantGepStmt.html#a68a168d7000b6185704f61725ffef6af">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1VariantGepStmt.html">VariantGepStmt</a> *)</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; <span class="keywordflow">return</span> <span class="keyword">true</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"><a class="line" href="classSVF_1_1VariantGepStmt.html#a78379cf0aaefc10dab7485be04891405"> 517</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1VariantGepStmt.html#a78379cf0aaefc10dab7485be04891405">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1GepStmt.html">GepStmt</a> *edge)</div><div class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160; {</div><div class="line"><a name="l00519"></a><span class="lineno"> 519</span>&#160; <span class="keywordflow">return</span> edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a6b3a8902fc2aa68428e271012861a2a2">SVFStmt::VariantGep</a>;</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"><a class="line" href="classSVF_1_1VariantGepStmt.html#adbb95a6bffb72191772a57e8c1d2d3a3"> 521</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1VariantGepStmt.html#adbb95a6bffb72191772a57e8c1d2d3a3">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a> *edge)</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">return</span> edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a6b3a8902fc2aa68428e271012861a2a2">SVFStmt::VariantGep</a>;</div><div class="line"><a name="l00524"></a><span class="lineno"> 524</span>&#160; }</div><div class="line"><a name="l00525"></a><span class="lineno"><a class="line" href="classSVF_1_1VariantGepStmt.html#a90734f6349eafc43dca830671283c292"> 525</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1VariantGepStmt.html#a90734f6349eafc43dca830671283c292">classof</a>(<span class="keyword">const</span> GenericPAGEdgeTy *edge)</div><div class="line"><a name="l00526"></a><span class="lineno"> 526</span>&#160; {</div><div class="line"><a name="l00527"></a><span class="lineno"> 527</span>&#160; <span class="keywordflow">return</span> edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a6b3a8902fc2aa68428e271012861a2a2">SVFStmt::VariantGep</a>;</div><div class="line"><a name="l00528"></a><span class="lineno"> 528</span>&#160; }</div><div class="line"><a name="l00530"></a><span class="lineno"> 530</span>&#160;</div><div class="line"><a name="l00532"></a><span class="lineno"><a class="line" href="classSVF_1_1VariantGepStmt.html#aed6d0a18bad5baeec324696338eceb8c"> 532</a></span>&#160; <a class="code" href="classSVF_1_1VariantGepStmt.html#aed6d0a18bad5baeec324696338eceb8c">VariantGepStmt</a>(<a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* s, <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* d, <span class="keyword">const</span> <a class="code" href="classSVF_1_1LocationSet.html">LocationSet</a>&amp; l) : <a class="code" href="classSVF_1_1GepStmt.html">GepStmt</a>(s,d,l, <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a>::<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a6b3a8902fc2aa68428e271012861a2a2">VariantGep</a>) {}</div><div class="line"><a name="l00533"></a><span class="lineno"> 533</span>&#160;</div><div class="line"><a name="l00534"></a><span class="lineno"> 534</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> std::string <a class="code" href="classSVF_1_1SVFStmt.html#ad0b4dbe87e009518f22360c48b0d0c22">toString</a>() <span class="keyword">const override</span>;</div><div class="line"><a name="l00535"></a><span class="lineno"> 535</span>&#160;</div><div class="line"><a name="l00536"></a><span class="lineno"> 536</span>&#160;};</div><div class="line"><a name="l00537"></a><span class="lineno"> 537</span>&#160;</div><div class="line"><a name="l00538"></a><span class="lineno"> 538</span>&#160;</div><div class="line"><a name="l00542"></a><span class="lineno"><a class="line" href="classSVF_1_1CallPE.html"> 542</a></span>&#160;<span class="keyword">class </span><a class="code" href="classSVF_1_1CallPE.html">CallPE</a>: <span class="keyword">public</span> <a class="code" href="classSVF_1_1AssignStmt.html">AssignStmt</a></div><div class="line"><a name="l00543"></a><span class="lineno"> 543</span>&#160;{</div><div class="line"><a name="l00544"></a><span class="lineno"> 544</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00545"></a><span class="lineno"> 545</span>&#160; <a class="code" href="classSVF_1_1CallPE.html">CallPE</a>(); </div><div class="line"><a name="l00546"></a><span class="lineno"> 546</span>&#160; <a class="code" href="classSVF_1_1CallPE.html">CallPE</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallPE.html">CallPE</a> &amp;); </div><div class="line"><a name="l00547"></a><span class="lineno"> 547</span>&#160; <span class="keywordtype">void</span> operator=(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallPE.html">CallPE</a> &amp;); </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"><a class="line" href="classSVF_1_1CallPE.html#a86b76d7390dc0f650ec2428c394bf41a"> 549</a></span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallBlockNode.html">CallBlockNode</a>* <a class="code" href="classSVF_1_1CallPE.html#a86b76d7390dc0f650ec2428c394bf41a">inst</a>; </div><div class="line"><a name="l00550"></a><span class="lineno"> 550</span>&#160;<span class="keyword">public</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"><a class="line" href="classSVF_1_1CallPE.html#a6df0149f79122c5a7d517f75d0235e73"> 553</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1CallPE.html#a6df0149f79122c5a7d517f75d0235e73">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallPE.html">CallPE</a> *)</div><div class="line"><a name="l00554"></a><span class="lineno"> 554</span>&#160; {</div><div class="line"><a name="l00555"></a><span class="lineno"> 555</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00556"></a><span class="lineno"> 556</span>&#160; }</div><div class="line"><a name="l00557"></a><span class="lineno"><a class="line" href="classSVF_1_1CallPE.html#a188c51f3e378c451d34e90c96cca0cf5"> 557</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1CallPE.html#a188c51f3e378c451d34e90c96cca0cf5">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a> *edge)</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">return</span> edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a97ca16eba4c5f92e16388f0cdbcfcc00">SVFStmt::Call</a></div><div class="line"><a name="l00560"></a><span class="lineno"> 560</span>&#160; || edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a375b956af2119d7abca8f1995f7701fd">SVFStmt::ThreadFork</a>;</div><div class="line"><a name="l00561"></a><span class="lineno"> 561</span>&#160; }</div><div class="line"><a name="l00562"></a><span class="lineno"><a class="line" href="classSVF_1_1CallPE.html#a0d89c20d1d3ccee5f3e45a32085117aa"> 562</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1CallPE.html#a0d89c20d1d3ccee5f3e45a32085117aa">classof</a>(<span class="keyword">const</span> GenericPAGEdgeTy *edge)</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">return</span> edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a97ca16eba4c5f92e16388f0cdbcfcc00">SVFStmt::Call</a></div><div class="line"><a name="l00565"></a><span class="lineno"> 565</span>&#160; || edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a375b956af2119d7abca8f1995f7701fd">SVFStmt::ThreadFork</a>;</div><div class="line"><a name="l00566"></a><span class="lineno"> 566</span>&#160; }</div><div class="line"><a name="l00568"></a><span class="lineno"> 568</span>&#160;</div><div class="line"><a name="l00570"></a><span class="lineno"><a class="line" href="classSVF_1_1CallPE.html#a74951537cff8b14c1cf8eb706fca5049"> 570</a></span>&#160; <a class="code" href="classSVF_1_1CallPE.html#a74951537cff8b14c1cf8eb706fca5049">CallPE</a>(<a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* s, <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* d, <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallBlockNode.html">CallBlockNode</a>* i, <a class="code" href="classSVF_1_1GenericEdge.html#a7eb93c9018c80057672a8ce71615dc0d">GEdgeKind</a> k = <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a97ca16eba4c5f92e16388f0cdbcfcc00">SVFStmt::Call</a>) :</div><div class="line"><a name="l00571"></a><span class="lineno"> 571</span>&#160; <a class="code" href="classSVF_1_1AssignStmt.html">AssignStmt</a>(s,d,<a class="code" href="classSVF_1_1SVFStmt.html#a4513c6e66b46c36219ba6d7403f3eb00">makeEdgeFlagWithCallInst</a>(k,i)), inst(i)</div><div class="line"><a name="l00572"></a><span class="lineno"> 572</span>&#160; {</div><div class="line"><a name="l00573"></a><span class="lineno"> 573</span>&#160; }</div><div class="line"><a name="l00574"></a><span class="lineno"> 574</span>&#160;</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"><a class="line" href="classSVF_1_1CallPE.html#ac8f25219948d3a6ff205048e746338d5"> 577</a></span>&#160; <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallBlockNode.html">CallBlockNode</a>* <a class="code" href="classSVF_1_1CallPE.html#ac8f25219948d3a6ff205048e746338d5">getCallInst</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00578"></a><span class="lineno"> 578</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00579"></a><span class="lineno"> 579</span>&#160; <span class="keywordflow">return</span> inst;</div><div class="line"><a name="l00580"></a><span class="lineno"> 580</span>&#160; }</div><div class="line"><a name="l00581"></a><span class="lineno"><a class="line" href="classSVF_1_1CallPE.html#a6a7a917cd6f1235b9453c9672f38c0ef"> 581</a></span>&#160; <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallBlockNode.html">CallBlockNode</a>* <a class="code" href="classSVF_1_1CallPE.html#a6a7a917cd6f1235b9453c9672f38c0ef">getCallSite</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00582"></a><span class="lineno"> 582</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00583"></a><span class="lineno"> 583</span>&#160; <span class="keywordflow">return</span> inst;</div><div class="line"><a name="l00584"></a><span class="lineno"> 584</span>&#160; }</div><div class="line"><a name="l00586"></a><span class="lineno"> 586</span>&#160;</div><div class="line"><a name="l00587"></a><span class="lineno"> 587</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> std::string <a class="code" href="classSVF_1_1SVFStmt.html#ad0b4dbe87e009518f22360c48b0d0c22">toString</a>() <span class="keyword">const override</span>;</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;</div><div class="line"><a name="l00590"></a><span class="lineno"> 590</span>&#160;</div><div class="line"><a name="l00594"></a><span class="lineno"><a class="line" href="classSVF_1_1RetPE.html"> 594</a></span>&#160;<span class="keyword">class </span><a class="code" href="classSVF_1_1RetPE.html">RetPE</a>: <span class="keyword">public</span> <a class="code" href="classSVF_1_1AssignStmt.html">AssignStmt</a></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;<span class="keyword">private</span>:</div><div class="line"><a name="l00597"></a><span class="lineno"> 597</span>&#160; <a class="code" href="classSVF_1_1RetPE.html">RetPE</a>(); </div><div class="line"><a name="l00598"></a><span class="lineno"> 598</span>&#160; <a class="code" href="classSVF_1_1RetPE.html">RetPE</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1RetPE.html">RetPE</a> &amp;); </div><div class="line"><a name="l00599"></a><span class="lineno"> 599</span>&#160; <span class="keywordtype">void</span> operator=(<span class="keyword">const</span> <a class="code" href="classSVF_1_1RetPE.html">RetPE</a> &amp;); </div><div class="line"><a name="l00600"></a><span class="lineno"> 600</span>&#160;</div><div class="line"><a name="l00601"></a><span class="lineno"><a class="line" href="classSVF_1_1RetPE.html#ad78a287bde15c03eec8d633d363e2ed2"> 601</a></span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallBlockNode.html">CallBlockNode</a>* <a class="code" href="classSVF_1_1RetPE.html#ad78a287bde15c03eec8d633d363e2ed2">inst</a>; </div><div class="line"><a name="l00602"></a><span class="lineno"> 602</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00604"></a><span class="lineno"> 604</span>&#160;</div><div class="line"><a name="l00605"></a><span class="lineno"><a class="line" href="classSVF_1_1RetPE.html#a43c6965616d67e77087b486265139d21"> 605</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1RetPE.html#a43c6965616d67e77087b486265139d21">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1RetPE.html">RetPE</a> *)</div><div class="line"><a name="l00606"></a><span class="lineno"> 606</span>&#160; {</div><div class="line"><a name="l00607"></a><span class="lineno"> 607</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00608"></a><span class="lineno"> 608</span>&#160; }</div><div class="line"><a name="l00609"></a><span class="lineno"><a class="line" href="classSVF_1_1RetPE.html#a9cd78a723ed55ed6f334a329576a7471"> 609</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1RetPE.html#a9cd78a723ed55ed6f334a329576a7471">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a> *edge)</div><div class="line"><a name="l00610"></a><span class="lineno"> 610</span>&#160; {</div><div class="line"><a name="l00611"></a><span class="lineno"> 611</span>&#160; <span class="keywordflow">return</span> edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a8d269a45adf13e69468f0357222ab2af">SVFStmt::Ret</a></div><div class="line"><a name="l00612"></a><span class="lineno"> 612</span>&#160; || edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a3c3f8883c2d3b50aef6331d5da97ffb0">SVFStmt::ThreadJoin</a>;</div><div class="line"><a name="l00613"></a><span class="lineno"> 613</span>&#160; }</div><div class="line"><a name="l00614"></a><span class="lineno"><a class="line" href="classSVF_1_1RetPE.html#a2f0121f26e79fe3766cba93b42dc1119"> 614</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1RetPE.html#a2f0121f26e79fe3766cba93b42dc1119">classof</a>(<span class="keyword">const</span> GenericPAGEdgeTy *edge)</div><div class="line"><a name="l00615"></a><span class="lineno"> 615</span>&#160; {</div><div class="line"><a name="l00616"></a><span class="lineno"> 616</span>&#160; <span class="keywordflow">return</span> edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a8d269a45adf13e69468f0357222ab2af">SVFStmt::Ret</a></div><div class="line"><a name="l00617"></a><span class="lineno"> 617</span>&#160; || edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a3c3f8883c2d3b50aef6331d5da97ffb0">SVFStmt::ThreadJoin</a>;</div><div class="line"><a name="l00618"></a><span class="lineno"> 618</span>&#160; }</div><div class="line"><a name="l00620"></a><span class="lineno"> 620</span>&#160;</div><div class="line"><a name="l00622"></a><span class="lineno"><a class="line" href="classSVF_1_1RetPE.html#a03739021e33640699ab54220c9a7f16d"> 622</a></span>&#160; <a class="code" href="classSVF_1_1RetPE.html#a03739021e33640699ab54220c9a7f16d">RetPE</a>(<a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* s, <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* d, <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallBlockNode.html">CallBlockNode</a>* i, <a class="code" href="classSVF_1_1GenericEdge.html#a7eb93c9018c80057672a8ce71615dc0d">GEdgeKind</a> k = <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a8d269a45adf13e69468f0357222ab2af">SVFStmt::Ret</a>) :</div><div class="line"><a name="l00623"></a><span class="lineno"> 623</span>&#160; <a class="code" href="classSVF_1_1AssignStmt.html">AssignStmt</a>(s,d,<a class="code" href="classSVF_1_1SVFStmt.html#a4513c6e66b46c36219ba6d7403f3eb00">makeEdgeFlagWithCallInst</a>(k,i)), inst(i)</div><div class="line"><a name="l00624"></a><span class="lineno"> 624</span>&#160; {</div><div class="line"><a name="l00625"></a><span class="lineno"> 625</span>&#160; }</div><div class="line"><a name="l00626"></a><span class="lineno"> 626</span>&#160;</div><div class="line"><a name="l00628"></a><span class="lineno"> 628</span>&#160;</div><div class="line"><a name="l00629"></a><span class="lineno"><a class="line" href="classSVF_1_1RetPE.html#ac28900a70a604bbba2b4cdab09709226"> 629</a></span>&#160; <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallBlockNode.html">CallBlockNode</a>* <a class="code" href="classSVF_1_1RetPE.html#ac28900a70a604bbba2b4cdab09709226">getCallInst</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00630"></a><span class="lineno"> 630</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00631"></a><span class="lineno"> 631</span>&#160; <span class="keywordflow">return</span> inst;</div><div class="line"><a name="l00632"></a><span class="lineno"> 632</span>&#160; }</div><div class="line"><a name="l00633"></a><span class="lineno"><a class="line" href="classSVF_1_1RetPE.html#a1495bfc171fa21980712f1d729a6b175"> 633</a></span>&#160; <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallBlockNode.html">CallBlockNode</a>* <a class="code" href="classSVF_1_1RetPE.html#a1495bfc171fa21980712f1d729a6b175">getCallSite</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00634"></a><span class="lineno"> 634</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00635"></a><span class="lineno"> 635</span>&#160; <span class="keywordflow">return</span> inst;</div><div class="line"><a name="l00636"></a><span class="lineno"> 636</span>&#160; }</div><div class="line"><a name="l00638"></a><span class="lineno"> 638</span>&#160;</div><div class="line"><a name="l00639"></a><span class="lineno"> 639</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> std::string <a class="code" href="classSVF_1_1SVFStmt.html#ad0b4dbe87e009518f22360c48b0d0c22">toString</a>() <span class="keyword">const override</span>;</div><div class="line"><a name="l00640"></a><span class="lineno"> 640</span>&#160;};</div><div class="line"><a name="l00641"></a><span class="lineno"> 641</span>&#160;</div><div class="line"><a name="l00642"></a><span class="lineno"> 642</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00643"></a><span class="lineno"> 643</span>&#160;<span class="comment">* Program statements with multiple operands including BinaryOPStmt, CmpStmt and PhiStmt</span></div><div class="line"><a name="l00644"></a><span class="lineno"> 644</span>&#160;<span class="comment">*/</span></div><div class="line"><a name="l00645"></a><span class="lineno"><a class="line" href="classSVF_1_1MultiOpndStmt.html"> 645</a></span>&#160;<span class="keyword">class </span><a class="code" href="classSVF_1_1MultiOpndStmt.html">MultiOpndStmt</a> : <span class="keyword">public</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a>{</div><div class="line"><a name="l00646"></a><span class="lineno"> 646</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00647"></a><span class="lineno"><a class="line" href="classSVF_1_1MultiOpndStmt.html#acf8c7cfbf1c8baab672040635bb9a007"> 647</a></span>&#160; <span class="keyword">typedef</span> std::vector&lt;SVFVar*&gt; <a class="code" href="classSVF_1_1MultiOpndStmt.html#acf8c7cfbf1c8baab672040635bb9a007">OPVars</a>;</div><div class="line"><a name="l00648"></a><span class="lineno"> 648</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00649"></a><span class="lineno"> 649</span>&#160; <a class="code" href="classSVF_1_1MultiOpndStmt.html">MultiOpndStmt</a>(); </div><div class="line"><a name="l00650"></a><span class="lineno"> 650</span>&#160; <a class="code" href="classSVF_1_1MultiOpndStmt.html">MultiOpndStmt</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1MultiOpndStmt.html">MultiOpndStmt</a> &amp;); </div><div class="line"><a name="l00651"></a><span class="lineno"> 651</span>&#160; <span class="keywordtype">void</span> operator=(<span class="keyword">const</span> <a class="code" href="classSVF_1_1MultiOpndStmt.html">MultiOpndStmt</a> &amp;); </div><div class="line"><a name="l00652"></a><span class="lineno"> 652</span>&#160; <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* <a class="code" href="classSVF_1_1GenericEdge.html#ab47ca533c415841ef75456cbad439589">getSrcNode</a>(); </div><div class="line"><a name="l00653"></a><span class="lineno"> 653</span>&#160; <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* <a class="code" href="classSVF_1_1GenericEdge.html#aeaa31a2c8479e831b36ce2e2582ceb86">getDstNode</a>(); </div><div class="line"><a name="l00654"></a><span class="lineno"> 654</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1GenericEdge.html#ae6792506a0150a9400d635eceab7f9e7">getSrcID</a>(); </div><div class="line"><a name="l00655"></a><span class="lineno"> 655</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1GenericEdge.html#ad9edb45e74ae675d9da82f5acf02d56e">getDstID</a>(); </div><div class="line"><a name="l00656"></a><span class="lineno"> 656</span>&#160;</div><div class="line"><a name="l00657"></a><span class="lineno"> 657</span>&#160;<span class="keyword">protected</span>:</div><div class="line"><a name="l00658"></a><span class="lineno"><a class="line" href="classSVF_1_1MultiOpndStmt.html#a172025849492f4de8f87564ef08f5880"> 658</a></span>&#160; OPVars <a class="code" href="classSVF_1_1MultiOpndStmt.html#a172025849492f4de8f87564ef08f5880">opVars</a>;</div><div class="line"><a name="l00660"></a><span class="lineno"><a class="line" href="classSVF_1_1MultiOpndStmt.html#aad0c81aeb48e5d94dd8c60d87b41714c"> 660</a></span>&#160; <a class="code" href="classSVF_1_1MultiOpndStmt.html#aad0c81aeb48e5d94dd8c60d87b41714c">MultiOpndStmt</a>(<a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* r, <span class="keyword">const</span> OPVars&amp; opnds, <a class="code" href="classSVF_1_1GenericEdge.html#aab8892b73370c32b48621cd1d0cce614">GEdgeFlag</a> k): <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a>(opnds.at(0), r, k), opVars(opnds)</div><div class="line"><a name="l00661"></a><span class="lineno"> 661</span>&#160; {</div><div class="line"><a name="l00662"></a><span class="lineno"> 662</span>&#160; }</div><div class="line"><a name="l00663"></a><span class="lineno"> 663</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00665"></a><span class="lineno"> 665</span>&#160;</div><div class="line"><a name="l00666"></a><span class="lineno"><a class="line" href="classSVF_1_1MultiOpndStmt.html#aa0d9a26d3ad17432505b1f5bb36368d9"> 666</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1MultiOpndStmt.html#aa0d9a26d3ad17432505b1f5bb36368d9">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1MultiOpndStmt.html">MultiOpndStmt</a> *)</div><div class="line"><a name="l00667"></a><span class="lineno"> 667</span>&#160; {</div><div class="line"><a name="l00668"></a><span class="lineno"> 668</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00669"></a><span class="lineno"> 669</span>&#160; }</div><div class="line"><a name="l00670"></a><span class="lineno"><a class="line" href="classSVF_1_1MultiOpndStmt.html#a5de8ff8363cb3f0b1427b69aa1058470"> 670</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1MultiOpndStmt.html#a5de8ff8363cb3f0b1427b69aa1058470">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a> *node)</div><div class="line"><a name="l00671"></a><span class="lineno"> 671</span>&#160; {</div><div class="line"><a name="l00672"></a><span class="lineno"> 672</span>&#160; <span class="keywordflow">return</span> node-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a6b3cd98eeb47c8475e7ee64480dcdee9">Phi</a> ||</div><div class="line"><a name="l00673"></a><span class="lineno"> 673</span>&#160; node-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad58f5e59c55e1ffd23b83d16224fed13">BinaryOp</a> ||</div><div class="line"><a name="l00674"></a><span class="lineno"> 674</span>&#160; node-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a610d6662d1814cffbf23db29e7e620c0">Cmp</a>;</div><div class="line"><a name="l00675"></a><span class="lineno"> 675</span>&#160; }</div><div class="line"><a name="l00676"></a><span class="lineno"><a class="line" href="classSVF_1_1MultiOpndStmt.html#ad20128715a7aaf173d60fe8f14575678"> 676</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1MultiOpndStmt.html#ad20128715a7aaf173d60fe8f14575678">classof</a>(<span class="keyword">const</span> GenericPAGEdgeTy *node)</div><div class="line"><a name="l00677"></a><span class="lineno"> 677</span>&#160; {</div><div class="line"><a name="l00678"></a><span class="lineno"> 678</span>&#160; <span class="keywordflow">return</span> node-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a6b3cd98eeb47c8475e7ee64480dcdee9">Phi</a> ||</div><div class="line"><a name="l00679"></a><span class="lineno"> 679</span>&#160; node-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad58f5e59c55e1ffd23b83d16224fed13">BinaryOp</a> ||</div><div class="line"><a name="l00680"></a><span class="lineno"> 680</span>&#160; node-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a610d6662d1814cffbf23db29e7e620c0">Cmp</a>;</div><div class="line"><a name="l00681"></a><span class="lineno"> 681</span>&#160; }</div><div class="line"><a name="l00683"></a><span class="lineno"> 683</span>&#160;</div><div class="line"><a name="l00685"></a><span class="lineno"> 685</span>&#160; <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* getOpVar(<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> pos)<span class="keyword"> const</span></div><div class="line"><a name="l00687"></a><span class="lineno"> 687</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00688"></a><span class="lineno"> 688</span>&#160; <span class="keywordflow">return</span> opVars.at(pos);</div><div class="line"><a name="l00689"></a><span class="lineno"> 689</span>&#160; }</div><div class="line"><a name="l00691"></a><span class="lineno"><a class="line" href="classSVF_1_1MultiOpndStmt.html#a00a14ad8f49912b876fd9d729fea4601"> 691</a></span>&#160; <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* <a class="code" href="classSVF_1_1MultiOpndStmt.html#a00a14ad8f49912b876fd9d729fea4601">getRes</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00692"></a><span class="lineno"> 692</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00693"></a><span class="lineno"> 693</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1GenericEdge.html#aeaa31a2c8479e831b36ce2e2582ceb86">SVFStmt::getDstNode</a>();</div><div class="line"><a name="l00694"></a><span class="lineno"> 694</span>&#160; }</div><div class="line"><a name="l00695"></a><span class="lineno"> 695</span>&#160; </div><div class="line"><a name="l00696"></a><span class="lineno"> 696</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> getOpVarID(<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> pos) <span class="keyword">const</span>;</div><div class="line"><a name="l00697"></a><span class="lineno"> 697</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> getResID() <span class="keyword">const</span>;</div><div class="line"><a name="l00698"></a><span class="lineno"> 698</span>&#160;</div><div class="line"><a name="l00699"></a><span class="lineno"><a class="line" href="classSVF_1_1MultiOpndStmt.html#af300571886b7aa2d84b0a70851c99bc3"> 699</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1MultiOpndStmt.html#af300571886b7aa2d84b0a70851c99bc3">getOpVarNum</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00700"></a><span class="lineno"> 700</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00701"></a><span class="lineno"> 701</span>&#160; <span class="keywordflow">return</span> opVars.size();</div><div class="line"><a name="l00702"></a><span class="lineno"> 702</span>&#160; }</div><div class="line"><a name="l00703"></a><span class="lineno"><a class="line" href="classSVF_1_1MultiOpndStmt.html#a0441f2646fed28830439c41a0704ed4b"> 703</a></span>&#160; <span class="keyword">inline</span> <span class="keyword">const</span> OPVars&amp; <a class="code" href="classSVF_1_1MultiOpndStmt.html#a0441f2646fed28830439c41a0704ed4b">getOpndVars</a>()<span class="keyword"> const</span>{</div><div class="line"><a name="l00704"></a><span class="lineno"> 704</span>&#160; <span class="keywordflow">return</span> opVars;</div><div class="line"><a name="l00705"></a><span class="lineno"> 705</span>&#160; }</div><div class="line"><a name="l00706"></a><span class="lineno"><a class="line" href="classSVF_1_1MultiOpndStmt.html#abebed8985cb4d4d1361c42e5454c90b9"> 706</a></span>&#160; <span class="keyword">inline</span> OPVars::const_iterator <a class="code" href="classSVF_1_1MultiOpndStmt.html#abebed8985cb4d4d1361c42e5454c90b9">opVarBegin</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00707"></a><span class="lineno"> 707</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00708"></a><span class="lineno"> 708</span>&#160; <span class="keywordflow">return</span> opVars.begin();</div><div class="line"><a name="l00709"></a><span class="lineno"> 709</span>&#160; }</div><div class="line"><a name="l00710"></a><span class="lineno"><a class="line" href="classSVF_1_1MultiOpndStmt.html#ad53097d07487d564e7d13f9d7d9ab10c"> 710</a></span>&#160; <span class="keyword">inline</span> OPVars::const_iterator <a class="code" href="classSVF_1_1MultiOpndStmt.html#ad53097d07487d564e7d13f9d7d9ab10c">opVerEnd</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00711"></a><span class="lineno"> 711</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00712"></a><span class="lineno"> 712</span>&#160; <span class="keywordflow">return</span> opVars.end();</div><div class="line"><a name="l00713"></a><span class="lineno"> 713</span>&#160; }</div><div class="line"><a name="l00715"></a><span class="lineno"> 715</span>&#160;};</div><div class="line"><a name="l00716"></a><span class="lineno"> 716</span>&#160;</div><div class="line"><a name="l00721"></a><span class="lineno"><a class="line" href="classSVF_1_1PhiStmt.html"> 721</a></span>&#160;<span class="keyword">class </span><a class="code" href="classSVF_1_1PhiStmt.html">PhiStmt</a>: <span class="keyword">public</span> <a class="code" href="classSVF_1_1MultiOpndStmt.html">MultiOpndStmt</a></div><div class="line"><a name="l00722"></a><span class="lineno"> 722</span>&#160;{</div><div class="line"><a name="l00723"></a><span class="lineno"> 723</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00724"></a><span class="lineno"> 724</span>&#160; <a class="code" href="classSVF_1_1PhiStmt.html">PhiStmt</a>(); </div><div class="line"><a name="l00725"></a><span class="lineno"> 725</span>&#160; <a class="code" href="classSVF_1_1PhiStmt.html">PhiStmt</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1PhiStmt.html">PhiStmt</a> &amp;); </div><div class="line"><a name="l00726"></a><span class="lineno"> 726</span>&#160; <span class="keywordtype">void</span> operator=(<span class="keyword">const</span> <a class="code" href="classSVF_1_1PhiStmt.html">PhiStmt</a> &amp;); </div><div class="line"><a name="l00727"></a><span class="lineno"> 727</span>&#160;</div><div class="line"><a name="l00728"></a><span class="lineno"> 728</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00730"></a><span class="lineno"> 730</span>&#160;</div><div class="line"><a name="l00731"></a><span class="lineno"><a class="line" href="classSVF_1_1PhiStmt.html#abb620d35e77989c2f7f9ed480e5fa1e9"> 731</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1PhiStmt.html#abb620d35e77989c2f7f9ed480e5fa1e9">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1PhiStmt.html">PhiStmt</a> *)</div><div class="line"><a name="l00732"></a><span class="lineno"> 732</span>&#160; {</div><div class="line"><a name="l00733"></a><span class="lineno"> 733</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00734"></a><span class="lineno"> 734</span>&#160; }</div><div class="line"><a name="l00735"></a><span class="lineno"><a class="line" href="classSVF_1_1PhiStmt.html#ac214292370d79324f6da8624fe2c7139"> 735</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1PhiStmt.html#ac214292370d79324f6da8624fe2c7139">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a> *edge)</div><div class="line"><a name="l00736"></a><span class="lineno"> 736</span>&#160; {</div><div class="line"><a name="l00737"></a><span class="lineno"> 737</span>&#160; <span class="keywordflow">return</span> edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a6b3cd98eeb47c8475e7ee64480dcdee9">SVFStmt::Phi</a>;</div><div class="line"><a name="l00738"></a><span class="lineno"> 738</span>&#160; }</div><div class="line"><a name="l00739"></a><span class="lineno"><a class="line" href="classSVF_1_1PhiStmt.html#ae547394a731d29b44565d3e56a326354"> 739</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1PhiStmt.html#ae547394a731d29b44565d3e56a326354">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1MultiOpndStmt.html">MultiOpndStmt</a> *edge)</div><div class="line"><a name="l00740"></a><span class="lineno"> 740</span>&#160; {</div><div class="line"><a name="l00741"></a><span class="lineno"> 741</span>&#160; <span class="keywordflow">return</span> edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a6b3cd98eeb47c8475e7ee64480dcdee9">SVFStmt::Phi</a>;</div><div class="line"><a name="l00742"></a><span class="lineno"> 742</span>&#160; }</div><div class="line"><a name="l00743"></a><span class="lineno"><a class="line" href="classSVF_1_1PhiStmt.html#a904591799ce401e8d3ee6aa634325ba3"> 743</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1PhiStmt.html#a904591799ce401e8d3ee6aa634325ba3">classof</a>(<span class="keyword">const</span> GenericPAGEdgeTy *edge)</div><div class="line"><a name="l00744"></a><span class="lineno"> 744</span>&#160; {</div><div class="line"><a name="l00745"></a><span class="lineno"> 745</span>&#160; <span class="keywordflow">return</span> edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a6b3cd98eeb47c8475e7ee64480dcdee9">SVFStmt::Phi</a>;</div><div class="line"><a name="l00746"></a><span class="lineno"> 746</span>&#160; }</div><div class="line"><a name="l00748"></a><span class="lineno"> 748</span>&#160;</div><div class="line"><a name="l00750"></a><span class="lineno"><a class="line" href="classSVF_1_1PhiStmt.html#a7a5147246ce71f9863398abdd6ddcfc2"> 750</a></span>&#160; <a class="code" href="classSVF_1_1PhiStmt.html#a7a5147246ce71f9863398abdd6ddcfc2">PhiStmt</a>(<a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* s, <span class="keyword">const</span> <a class="code" href="classSVF_1_1MultiOpndStmt.html#acf8c7cfbf1c8baab672040635bb9a007">OPVars</a>&amp; opnds) : <a class="code" href="classSVF_1_1MultiOpndStmt.html">MultiOpndStmt</a>(s,opnds,<a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a>::<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a6b3cd98eeb47c8475e7ee64480dcdee9">Phi</a>)</div><div class="line"><a name="l00751"></a><span class="lineno"> 751</span>&#160; {</div><div class="line"><a name="l00752"></a><span class="lineno"> 752</span>&#160; }</div><div class="line"><a name="l00753"></a><span class="lineno"><a class="line" href="classSVF_1_1PhiStmt.html#ae20d273a8afe603395b6621f04e6cb65"> 753</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1PhiStmt.html#ae20d273a8afe603395b6621f04e6cb65">addOpVar</a>(<a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* op){</div><div class="line"><a name="l00754"></a><span class="lineno"> 754</span>&#160; opVars.push_back(op);</div><div class="line"><a name="l00755"></a><span class="lineno"> 755</span>&#160; }</div><div class="line"><a name="l00756"></a><span class="lineno"> 756</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> std::string <a class="code" href="classSVF_1_1SVFStmt.html#ad0b4dbe87e009518f22360c48b0d0c22">toString</a>() <span class="keyword">const override</span>;</div><div class="line"><a name="l00757"></a><span class="lineno"> 757</span>&#160;};</div><div class="line"><a name="l00758"></a><span class="lineno"> 758</span>&#160;</div><div class="line"><a name="l00759"></a><span class="lineno"> 759</span>&#160;</div><div class="line"><a name="l00763"></a><span class="lineno"><a class="line" href="classSVF_1_1CmpStmt.html"> 763</a></span>&#160;<span class="keyword">class </span><a class="code" href="classSVF_1_1CmpStmt.html">CmpStmt</a>: <span class="keyword">public</span> <a class="code" href="classSVF_1_1MultiOpndStmt.html">MultiOpndStmt</a></div><div class="line"><a name="l00764"></a><span class="lineno"> 764</span>&#160;{</div><div class="line"><a name="l00765"></a><span class="lineno"> 765</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00766"></a><span class="lineno"> 766</span>&#160; <a class="code" href="classSVF_1_1CmpStmt.html">CmpStmt</a>(); </div><div class="line"><a name="l00767"></a><span class="lineno"> 767</span>&#160; <a class="code" href="classSVF_1_1CmpStmt.html">CmpStmt</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CmpStmt.html">CmpStmt</a> &amp;); </div><div class="line"><a name="l00768"></a><span class="lineno"> 768</span>&#160; <span class="keywordtype">void</span> operator=(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CmpStmt.html">CmpStmt</a> &amp;); </div><div class="line"><a name="l00769"></a><span class="lineno"> 769</span>&#160;</div><div class="line"><a name="l00770"></a><span class="lineno"><a class="line" href="classSVF_1_1CmpStmt.html#a26fc263da6ab3fee40a335d367419328"> 770</a></span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1CmpStmt.html#a26fc263da6ab3fee40a335d367419328">predicate</a>;</div><div class="line"><a name="l00771"></a><span class="lineno"> 771</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00773"></a><span class="lineno"> 773</span>&#160;</div><div class="line"><a name="l00774"></a><span class="lineno"><a class="line" href="classSVF_1_1CmpStmt.html#adec661dd23b7806b35abba2d44aebc61"> 774</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1CmpStmt.html#adec661dd23b7806b35abba2d44aebc61">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CmpStmt.html">CmpStmt</a> *)</div><div class="line"><a name="l00775"></a><span class="lineno"> 775</span>&#160; {</div><div class="line"><a name="l00776"></a><span class="lineno"> 776</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00777"></a><span class="lineno"> 777</span>&#160; }</div><div class="line"><a name="l00778"></a><span class="lineno"><a class="line" href="classSVF_1_1CmpStmt.html#a16a5fddf61f6a13ee34dde0c4267d0e5"> 778</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1CmpStmt.html#a16a5fddf61f6a13ee34dde0c4267d0e5">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a> *edge)</div><div class="line"><a name="l00779"></a><span class="lineno"> 779</span>&#160; {</div><div class="line"><a name="l00780"></a><span class="lineno"> 780</span>&#160; <span class="keywordflow">return</span> edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a610d6662d1814cffbf23db29e7e620c0">SVFStmt::Cmp</a>;</div><div class="line"><a name="l00781"></a><span class="lineno"> 781</span>&#160; }</div><div class="line"><a name="l00782"></a><span class="lineno"><a class="line" href="classSVF_1_1CmpStmt.html#a679ec89e3fa17a17dcc8fafeb30d3a61"> 782</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1CmpStmt.html#a679ec89e3fa17a17dcc8fafeb30d3a61">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1MultiOpndStmt.html">MultiOpndStmt</a> *edge)</div><div class="line"><a name="l00783"></a><span class="lineno"> 783</span>&#160; {</div><div class="line"><a name="l00784"></a><span class="lineno"> 784</span>&#160; <span class="keywordflow">return</span> edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a610d6662d1814cffbf23db29e7e620c0">SVFStmt::Cmp</a>;</div><div class="line"><a name="l00785"></a><span class="lineno"> 785</span>&#160; }</div><div class="line"><a name="l00786"></a><span class="lineno"><a class="line" href="classSVF_1_1CmpStmt.html#af9f7fe4aa92bb443cd517f06a8fb94cd"> 786</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1CmpStmt.html#af9f7fe4aa92bb443cd517f06a8fb94cd">classof</a>(<span class="keyword">const</span> GenericPAGEdgeTy *edge)</div><div class="line"><a name="l00787"></a><span class="lineno"> 787</span>&#160; {</div><div class="line"><a name="l00788"></a><span class="lineno"> 788</span>&#160; <span class="keywordflow">return</span> edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a610d6662d1814cffbf23db29e7e620c0">SVFStmt::Cmp</a>;</div><div class="line"><a name="l00789"></a><span class="lineno"> 789</span>&#160; }</div><div class="line"><a name="l00791"></a><span class="lineno"> 791</span>&#160;</div><div class="line"><a name="l00793"></a><span class="lineno"><a class="line" href="classSVF_1_1CmpStmt.html#a02c4846269bd28bd4e8b127532cb737a"> 793</a></span>&#160; <a class="code" href="classSVF_1_1CmpStmt.html#a02c4846269bd28bd4e8b127532cb737a">CmpStmt</a>(<a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* s, <span class="keyword">const</span> <a class="code" href="classSVF_1_1MultiOpndStmt.html#acf8c7cfbf1c8baab672040635bb9a007">OPVars</a>&amp; opnds, <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> pre) : <a class="code" href="classSVF_1_1MultiOpndStmt.html">MultiOpndStmt</a>(s,opnds,<a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a>::<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a610d6662d1814cffbf23db29e7e620c0">Cmp</a>), predicate(pre)</div><div class="line"><a name="l00794"></a><span class="lineno"> 794</span>&#160; {</div><div class="line"><a name="l00795"></a><span class="lineno"> 795</span>&#160; }</div><div class="line"><a name="l00796"></a><span class="lineno"> 796</span>&#160;</div><div class="line"><a name="l00797"></a><span class="lineno"><a class="line" href="classSVF_1_1CmpStmt.html#aa6a21fb1cfbc263bb38651176c495632"> 797</a></span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1CmpStmt.html#aa6a21fb1cfbc263bb38651176c495632">getPredicate</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00798"></a><span class="lineno"> 798</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00799"></a><span class="lineno"> 799</span>&#160; <span class="keywordflow">return</span> predicate;</div><div class="line"><a name="l00800"></a><span class="lineno"> 800</span>&#160; }</div><div class="line"><a name="l00801"></a><span class="lineno"> 801</span>&#160; </div><div class="line"><a name="l00802"></a><span class="lineno"> 802</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> std::string <a class="code" href="classSVF_1_1SVFStmt.html#ad0b4dbe87e009518f22360c48b0d0c22">toString</a>() <span class="keyword">const override</span>;</div><div class="line"><a name="l00803"></a><span class="lineno"> 803</span>&#160;};</div><div class="line"><a name="l00804"></a><span class="lineno"> 804</span>&#160;</div><div class="line"><a name="l00805"></a><span class="lineno"> 805</span>&#160;</div><div class="line"><a name="l00809"></a><span class="lineno"><a class="line" href="classSVF_1_1BinaryOPStmt.html"> 809</a></span>&#160;<span class="keyword">class </span><a class="code" href="classSVF_1_1BinaryOPStmt.html">BinaryOPStmt</a>: <span class="keyword">public</span> <a class="code" href="classSVF_1_1MultiOpndStmt.html">MultiOpndStmt</a></div><div class="line"><a name="l00810"></a><span class="lineno"> 810</span>&#160;{</div><div class="line"><a name="l00811"></a><span class="lineno"> 811</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00812"></a><span class="lineno"> 812</span>&#160; <a class="code" href="classSVF_1_1BinaryOPStmt.html">BinaryOPStmt</a>(); </div><div class="line"><a name="l00813"></a><span class="lineno"> 813</span>&#160; <a class="code" href="classSVF_1_1BinaryOPStmt.html">BinaryOPStmt</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html">BinaryOPStmt</a> &amp;); </div><div class="line"><a name="l00814"></a><span class="lineno"> 814</span>&#160; <span class="keywordtype">void</span> operator=(<span class="keyword">const</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html">BinaryOPStmt</a> &amp;); </div><div class="line"><a name="l00815"></a><span class="lineno"><a class="line" href="classSVF_1_1BinaryOPStmt.html#a0c4f900cf7321e8385b4f45e5cba3d1a"> 815</a></span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a0c4f900cf7321e8385b4f45e5cba3d1a">opcode</a>;</div><div class="line"><a name="l00816"></a><span class="lineno"> 816</span>&#160;</div><div class="line"><a name="l00817"></a><span class="lineno"> 817</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00819"></a><span class="lineno"> 819</span>&#160;</div><div class="line"><a name="l00820"></a><span class="lineno"><a class="line" href="classSVF_1_1BinaryOPStmt.html#ab5a0f41455474643e8dd97aaab0aaab5"> 820</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#ab5a0f41455474643e8dd97aaab0aaab5">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html">BinaryOPStmt</a> *)</div><div class="line"><a name="l00821"></a><span class="lineno"> 821</span>&#160; {</div><div class="line"><a name="l00822"></a><span class="lineno"> 822</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00823"></a><span class="lineno"> 823</span>&#160; }</div><div class="line"><a name="l00824"></a><span class="lineno"><a class="line" href="classSVF_1_1BinaryOPStmt.html#abc24c2d50b164a637ad0cec371cb7e63"> 824</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#abc24c2d50b164a637ad0cec371cb7e63">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a> *edge)</div><div class="line"><a name="l00825"></a><span class="lineno"> 825</span>&#160; {</div><div class="line"><a name="l00826"></a><span class="lineno"> 826</span>&#160; <span class="keywordflow">return</span> edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad58f5e59c55e1ffd23b83d16224fed13">SVFStmt::BinaryOp</a>;</div><div class="line"><a name="l00827"></a><span class="lineno"> 827</span>&#160; }</div><div class="line"><a name="l00828"></a><span class="lineno"><a class="line" href="classSVF_1_1BinaryOPStmt.html#a7cae2a90a33225c90eb035cf9e663d3d"> 828</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a7cae2a90a33225c90eb035cf9e663d3d">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1MultiOpndStmt.html">MultiOpndStmt</a> *edge)</div><div class="line"><a name="l00829"></a><span class="lineno"> 829</span>&#160; {</div><div class="line"><a name="l00830"></a><span class="lineno"> 830</span>&#160; <span class="keywordflow">return</span> edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad58f5e59c55e1ffd23b83d16224fed13">SVFStmt::BinaryOp</a>;</div><div class="line"><a name="l00831"></a><span class="lineno"> 831</span>&#160; }</div><div class="line"><a name="l00832"></a><span class="lineno"><a class="line" href="classSVF_1_1BinaryOPStmt.html#ac8831079a5a9c6d50fbd09ff545e7cfd"> 832</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#ac8831079a5a9c6d50fbd09ff545e7cfd">classof</a>(<span class="keyword">const</span> GenericPAGEdgeTy *edge)</div><div class="line"><a name="l00833"></a><span class="lineno"> 833</span>&#160; {</div><div class="line"><a name="l00834"></a><span class="lineno"> 834</span>&#160; <span class="keywordflow">return</span> edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad58f5e59c55e1ffd23b83d16224fed13">SVFStmt::BinaryOp</a>;</div><div class="line"><a name="l00835"></a><span class="lineno"> 835</span>&#160; }</div><div class="line"><a name="l00837"></a><span class="lineno"> 837</span>&#160;</div><div class="line"><a name="l00839"></a><span class="lineno"><a class="line" href="classSVF_1_1BinaryOPStmt.html#a7470a2412985bbb227bb62d8a297b7f1"> 839</a></span>&#160; <a class="code" href="classSVF_1_1BinaryOPStmt.html#a7470a2412985bbb227bb62d8a297b7f1">BinaryOPStmt</a>(<a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* s, <span class="keyword">const</span> <a class="code" href="classSVF_1_1MultiOpndStmt.html#acf8c7cfbf1c8baab672040635bb9a007">OPVars</a>&amp; opnds, <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> oc) : <a class="code" href="classSVF_1_1MultiOpndStmt.html">MultiOpndStmt</a>(s,opnds,<a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a>::<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad58f5e59c55e1ffd23b83d16224fed13">BinaryOp</a>), opcode(oc)</div><div class="line"><a name="l00840"></a><span class="lineno"> 840</span>&#160; {</div><div class="line"><a name="l00841"></a><span class="lineno"> 841</span>&#160; }</div><div class="line"><a name="l00842"></a><span class="lineno"> 842</span>&#160;</div><div class="line"><a name="l00843"></a><span class="lineno"><a class="line" href="classSVF_1_1BinaryOPStmt.html#ad0a7c5e87355d7a83176343322db448f"> 843</a></span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1BinaryOPStmt.html#ad0a7c5e87355d7a83176343322db448f">getOpcode</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00844"></a><span class="lineno"> 844</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00845"></a><span class="lineno"> 845</span>&#160; <span class="keywordflow">return</span> opcode;</div><div class="line"><a name="l00846"></a><span class="lineno"> 846</span>&#160; }</div><div class="line"><a name="l00847"></a><span class="lineno"> 847</span>&#160;</div><div class="line"><a name="l00848"></a><span class="lineno"> 848</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> std::string <a class="code" href="classSVF_1_1SVFStmt.html#ad0b4dbe87e009518f22360c48b0d0c22">toString</a>() <span class="keyword">const override</span>;</div><div class="line"><a name="l00849"></a><span class="lineno"> 849</span>&#160;};</div><div class="line"><a name="l00850"></a><span class="lineno"> 850</span>&#160;</div><div class="line"><a name="l00854"></a><span class="lineno"><a class="line" href="classSVF_1_1UnaryOPStmt.html"> 854</a></span>&#160;<span class="keyword">class </span><a class="code" href="classSVF_1_1UnaryOPStmt.html">UnaryOPStmt</a>: <span class="keyword">public</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a></div><div class="line"><a name="l00855"></a><span class="lineno"> 855</span>&#160;{</div><div class="line"><a name="l00856"></a><span class="lineno"> 856</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00857"></a><span class="lineno"> 857</span>&#160; <a class="code" href="classSVF_1_1UnaryOPStmt.html">UnaryOPStmt</a>(); </div><div class="line"><a name="l00858"></a><span class="lineno"> 858</span>&#160; <a class="code" href="classSVF_1_1UnaryOPStmt.html">UnaryOPStmt</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1UnaryOPStmt.html">UnaryOPStmt</a> &amp;); </div><div class="line"><a name="l00859"></a><span class="lineno"> 859</span>&#160; <span class="keywordtype">void</span> operator=(<span class="keyword">const</span> <a class="code" href="classSVF_1_1UnaryOPStmt.html">UnaryOPStmt</a> &amp;); </div><div class="line"><a name="l00860"></a><span class="lineno"> 860</span>&#160; <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* <a class="code" href="classSVF_1_1GenericEdge.html#ab47ca533c415841ef75456cbad439589">getSrcNode</a>(); </div><div class="line"><a name="l00861"></a><span class="lineno"> 861</span>&#160; <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* <a class="code" href="classSVF_1_1GenericEdge.html#aeaa31a2c8479e831b36ce2e2582ceb86">getDstNode</a>(); </div><div class="line"><a name="l00862"></a><span class="lineno"> 862</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1GenericEdge.html#ae6792506a0150a9400d635eceab7f9e7">getSrcID</a>(); </div><div class="line"><a name="l00863"></a><span class="lineno"> 863</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1GenericEdge.html#ad9edb45e74ae675d9da82f5acf02d56e">getDstID</a>(); </div><div class="line"><a name="l00864"></a><span class="lineno"> 864</span>&#160;</div><div class="line"><a name="l00865"></a><span class="lineno"><a class="line" href="classSVF_1_1UnaryOPStmt.html#a099df135a83d28a2e6f344e008fe1cc6"> 865</a></span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1UnaryOPStmt.html#a099df135a83d28a2e6f344e008fe1cc6">opcode</a>;</div><div class="line"><a name="l00866"></a><span class="lineno"> 866</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00868"></a><span class="lineno"> 868</span>&#160;</div><div class="line"><a name="l00869"></a><span class="lineno"><a class="line" href="classSVF_1_1UnaryOPStmt.html#abb10688145fa76629916ec3df61b6c95"> 869</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1UnaryOPStmt.html#abb10688145fa76629916ec3df61b6c95">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1UnaryOPStmt.html">UnaryOPStmt</a> *)</div><div class="line"><a name="l00870"></a><span class="lineno"> 870</span>&#160; {</div><div class="line"><a name="l00871"></a><span class="lineno"> 871</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00872"></a><span class="lineno"> 872</span>&#160; }</div><div class="line"><a name="l00873"></a><span class="lineno"><a class="line" href="classSVF_1_1UnaryOPStmt.html#a2a4b7e3a4c5be8a253b542f144f830b7"> 873</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1UnaryOPStmt.html#a2a4b7e3a4c5be8a253b542f144f830b7">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a> *edge)</div><div class="line"><a name="l00874"></a><span class="lineno"> 874</span>&#160; {</div><div class="line"><a name="l00875"></a><span class="lineno"> 875</span>&#160; <span class="keywordflow">return</span> edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad2a5e6fe0f2b5fefb53abb9e91c57688">SVFStmt::UnaryOp</a>;</div><div class="line"><a name="l00876"></a><span class="lineno"> 876</span>&#160; }</div><div class="line"><a name="l00877"></a><span class="lineno"><a class="line" href="classSVF_1_1UnaryOPStmt.html#add29b76e0ef73da2606bac97f74a7896"> 877</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1UnaryOPStmt.html#add29b76e0ef73da2606bac97f74a7896">classof</a>(<span class="keyword">const</span> GenericPAGEdgeTy *edge)</div><div class="line"><a name="l00878"></a><span class="lineno"> 878</span>&#160; {</div><div class="line"><a name="l00879"></a><span class="lineno"> 879</span>&#160; <span class="keywordflow">return</span> edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad2a5e6fe0f2b5fefb53abb9e91c57688">SVFStmt::UnaryOp</a>;</div><div class="line"><a name="l00880"></a><span class="lineno"> 880</span>&#160; }</div><div class="line"><a name="l00882"></a><span class="lineno"> 882</span>&#160;</div><div class="line"><a name="l00884"></a><span class="lineno"><a class="line" href="classSVF_1_1UnaryOPStmt.html#a2b91333ac3d4b5e1099590aeb15d38ba"> 884</a></span>&#160; <a class="code" href="classSVF_1_1UnaryOPStmt.html#a2b91333ac3d4b5e1099590aeb15d38ba">UnaryOPStmt</a>(<a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* s, <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* d, <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> oc) : <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a>(s,d,<a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a>::<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad2a5e6fe0f2b5fefb53abb9e91c57688">UnaryOp</a>), opcode(oc)</div><div class="line"><a name="l00885"></a><span class="lineno"> 885</span>&#160; {</div><div class="line"><a name="l00886"></a><span class="lineno"> 886</span>&#160; }</div><div class="line"><a name="l00887"></a><span class="lineno"> 887</span>&#160;</div><div class="line"><a name="l00888"></a><span class="lineno"><a class="line" href="classSVF_1_1UnaryOPStmt.html#af29723d5e777b10d53d48263a786f5b6"> 888</a></span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1UnaryOPStmt.html#af29723d5e777b10d53d48263a786f5b6">getOpcode</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00889"></a><span class="lineno"> 889</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00890"></a><span class="lineno"> 890</span>&#160; <span class="keywordflow">return</span> opcode;</div><div class="line"><a name="l00891"></a><span class="lineno"> 891</span>&#160; }</div><div class="line"><a name="l00892"></a><span class="lineno"><a class="line" href="classSVF_1_1UnaryOPStmt.html#abde2b32d5bbd37df0e194b1a4e78483b"> 892</a></span>&#160; <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* <a class="code" href="classSVF_1_1UnaryOPStmt.html#abde2b32d5bbd37df0e194b1a4e78483b">getOpVar</a>()<span class="keyword"> const</span>{</div><div class="line"><a name="l00893"></a><span class="lineno"> 893</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1GenericEdge.html#ab47ca533c415841ef75456cbad439589">SVFStmt::getSrcNode</a>();</div><div class="line"><a name="l00894"></a><span class="lineno"> 894</span>&#160; }</div><div class="line"><a name="l00895"></a><span class="lineno"><a class="line" href="classSVF_1_1UnaryOPStmt.html#a919db9b8c9287c3802f563840b56c4f1"> 895</a></span>&#160; <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* <a class="code" href="classSVF_1_1UnaryOPStmt.html#a919db9b8c9287c3802f563840b56c4f1">getRes</a>()<span class="keyword"> const</span>{</div><div class="line"><a name="l00896"></a><span class="lineno"> 896</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1GenericEdge.html#aeaa31a2c8479e831b36ce2e2582ceb86">SVFStmt::getDstNode</a>();</div><div class="line"><a name="l00897"></a><span class="lineno"> 897</span>&#160; }</div><div class="line"><a name="l00898"></a><span class="lineno"> 898</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> getOpVarID() <span class="keyword">const</span>;</div><div class="line"><a name="l00899"></a><span class="lineno"> 899</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> getResID() <span class="keyword">const</span>;</div><div class="line"><a name="l00900"></a><span class="lineno"> 900</span>&#160;</div><div class="line"><a name="l00901"></a><span class="lineno"> 901</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> std::string <a class="code" href="classSVF_1_1SVFStmt.html#ad0b4dbe87e009518f22360c48b0d0c22">toString</a>() <span class="keyword">const override</span>;</div><div class="line"><a name="l00902"></a><span class="lineno"> 902</span>&#160;};</div><div class="line"><a name="l00903"></a><span class="lineno"> 903</span>&#160;</div><div class="line"><a name="l00904"></a><span class="lineno"> 904</span>&#160;</div><div class="line"><a name="l00908"></a><span class="lineno"><a class="line" href="classSVF_1_1BranchStmt.html"> 908</a></span>&#160;<span class="keyword">class </span><a class="code" href="classSVF_1_1BranchStmt.html">BranchStmt</a>: <span class="keyword">public</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a></div><div class="line"><a name="l00909"></a><span class="lineno"> 909</span>&#160;{</div><div class="line"><a name="l00910"></a><span class="lineno"> 910</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00911"></a><span class="lineno"> 911</span>&#160; <a class="code" href="classSVF_1_1BranchStmt.html">BranchStmt</a>(); </div><div class="line"><a name="l00912"></a><span class="lineno"> 912</span>&#160; <a class="code" href="classSVF_1_1BranchStmt.html">BranchStmt</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1BranchStmt.html">BranchStmt</a> &amp;); </div><div class="line"><a name="l00913"></a><span class="lineno"> 913</span>&#160; <span class="keywordtype">void</span> operator=(<span class="keyword">const</span> <a class="code" href="classSVF_1_1BranchStmt.html">BranchStmt</a> &amp;); </div><div class="line"><a name="l00914"></a><span class="lineno"> 914</span>&#160; <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* <a class="code" href="classSVF_1_1GenericEdge.html#ab47ca533c415841ef75456cbad439589">getSrcNode</a>(); </div><div class="line"><a name="l00915"></a><span class="lineno"> 915</span>&#160; <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* <a class="code" href="classSVF_1_1GenericEdge.html#aeaa31a2c8479e831b36ce2e2582ceb86">getDstNode</a>(); </div><div class="line"><a name="l00916"></a><span class="lineno"> 916</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1GenericEdge.html#ae6792506a0150a9400d635eceab7f9e7">getSrcID</a>(); </div><div class="line"><a name="l00917"></a><span class="lineno"> 917</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1GenericEdge.html#ad9edb45e74ae675d9da82f5acf02d56e">getDstID</a>(); </div><div class="line"><a name="l00918"></a><span class="lineno"> 918</span>&#160;</div><div class="line"><a name="l00919"></a><span class="lineno"><a class="line" href="classSVF_1_1BranchStmt.html#ad3c41e137cb0dc3ef10cbc6c0f8d475f"> 919</a></span>&#160; std::vector&lt;const ICFGNode*&gt; <a class="code" href="classSVF_1_1BranchStmt.html#ad3c41e137cb0dc3ef10cbc6c0f8d475f">successors</a>;</div><div class="line"><a name="l00920"></a><span class="lineno"><a class="line" href="classSVF_1_1BranchStmt.html#adcf5cabe6e0a87cded5ef1fdf7273f3f"> 920</a></span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* <a class="code" href="classSVF_1_1BranchStmt.html#adcf5cabe6e0a87cded5ef1fdf7273f3f">cond</a>;</div><div class="line"><a name="l00921"></a><span class="lineno"><a class="line" href="classSVF_1_1BranchStmt.html#a33887345c00ffda9ca7dca59d61e184a"> 921</a></span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* <a class="code" href="classSVF_1_1BranchStmt.html#a33887345c00ffda9ca7dca59d61e184a">brInst</a>;</div><div class="line"><a name="l00922"></a><span class="lineno"> 922</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00924"></a><span class="lineno"> 924</span>&#160;</div><div class="line"><a name="l00925"></a><span class="lineno"><a class="line" href="classSVF_1_1BranchStmt.html#a750ffca6648fafedfb271fb90d975847"> 925</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1BranchStmt.html#a750ffca6648fafedfb271fb90d975847">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1BranchStmt.html">BranchStmt</a> *)</div><div class="line"><a name="l00926"></a><span class="lineno"> 926</span>&#160; {</div><div class="line"><a name="l00927"></a><span class="lineno"> 927</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00928"></a><span class="lineno"> 928</span>&#160; }</div><div class="line"><a name="l00929"></a><span class="lineno"><a class="line" href="classSVF_1_1BranchStmt.html#a55b867cd85dbbe43e2f7c1bad5dce647"> 929</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1BranchStmt.html#a55b867cd85dbbe43e2f7c1bad5dce647">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a> *edge)</div><div class="line"><a name="l00930"></a><span class="lineno"> 930</span>&#160; {</div><div class="line"><a name="l00931"></a><span class="lineno"> 931</span>&#160; <span class="keywordflow">return</span> edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad52703e3ec09b6a4f565e5d82279b6a3">SVFStmt::Branch</a>;</div><div class="line"><a name="l00932"></a><span class="lineno"> 932</span>&#160; }</div><div class="line"><a name="l00933"></a><span class="lineno"><a class="line" href="classSVF_1_1BranchStmt.html#adf97a239f15b635580cef475980e8d82"> 933</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1BranchStmt.html#adf97a239f15b635580cef475980e8d82">classof</a>(<span class="keyword">const</span> GenericPAGEdgeTy *edge)</div><div class="line"><a name="l00934"></a><span class="lineno"> 934</span>&#160; {</div><div class="line"><a name="l00935"></a><span class="lineno"> 935</span>&#160; <span class="keywordflow">return</span> edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad52703e3ec09b6a4f565e5d82279b6a3">SVFStmt::Branch</a>;</div><div class="line"><a name="l00936"></a><span class="lineno"> 936</span>&#160; }</div><div class="line"><a name="l00938"></a><span class="lineno"> 938</span>&#160;</div><div class="line"><a name="l00940"></a><span class="lineno"><a class="line" href="classSVF_1_1BranchStmt.html#a4aa3e5dfaa7354345ae878115621a8a9"> 940</a></span>&#160; <a class="code" href="classSVF_1_1BranchStmt.html#a4aa3e5dfaa7354345ae878115621a8a9">BranchStmt</a>(<a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* inst, <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* c, <span class="keyword">const</span> std::vector&lt;const ICFGNode*&gt;&amp; succs) : <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a>(c,inst,<a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a>::<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad52703e3ec09b6a4f565e5d82279b6a3">Branch</a>), successors(succs), cond(c), brInst(inst)</div><div class="line"><a name="l00941"></a><span class="lineno"> 941</span>&#160; {</div><div class="line"><a name="l00942"></a><span class="lineno"> 942</span>&#160; }</div><div class="line"><a name="l00943"></a><span class="lineno"> 943</span>&#160;</div><div class="line"><a name="l00945"></a><span class="lineno"> 945</span>&#160; <span class="keywordtype">bool</span> isUnconditional() <span class="keyword">const</span>;</div><div class="line"><a name="l00947"></a><span class="lineno"> 947</span>&#160; <span class="keywordtype">bool</span> isConditional() <span class="keyword">const</span>;</div><div class="line"><a name="l00949"></a><span class="lineno"> 949</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* getCondition() <span class="keyword">const</span>;</div><div class="line"><a name="l00950"></a><span class="lineno"><a class="line" href="classSVF_1_1BranchStmt.html#a2c6fe09027838f9e0ad9ab8193ce8e9b"> 950</a></span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* <a class="code" href="classSVF_1_1BranchStmt.html#a2c6fe09027838f9e0ad9ab8193ce8e9b">getBranchInst</a>()<span class="keyword"> const</span>{</div><div class="line"><a name="l00951"></a><span class="lineno"> 951</span>&#160; <span class="keywordflow">return</span> brInst;</div><div class="line"><a name="l00952"></a><span class="lineno"> 952</span>&#160; }</div><div class="line"><a name="l00955"></a><span class="lineno"><a class="line" href="classSVF_1_1BranchStmt.html#a022d355bde3d0d0a9471cd125b24583b"> 955</a></span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1BranchStmt.html#a022d355bde3d0d0a9471cd125b24583b">getNumSuccessors</a>()<span class="keyword"> const</span>{</div><div class="line"><a name="l00956"></a><span class="lineno"> 956</span>&#160; <span class="keywordflow">return</span> successors.size();</div><div class="line"><a name="l00957"></a><span class="lineno"> 957</span>&#160; }</div><div class="line"><a name="l00958"></a><span class="lineno"><a class="line" href="classSVF_1_1BranchStmt.html#ae3aecc257d37c20084633027cb312faa"> 958</a></span>&#160; <span class="keyword">const</span> std::vector&lt;const ICFGNode*&gt;&amp; <a class="code" href="classSVF_1_1BranchStmt.html#ae3aecc257d37c20084633027cb312faa">getSuccessors</a>()<span class="keyword"> const</span>{</div><div class="line"><a name="l00959"></a><span class="lineno"> 959</span>&#160; <span class="keywordflow">return</span> successors;</div><div class="line"><a name="l00960"></a><span class="lineno"> 960</span>&#160; }</div><div class="line"><a name="l00961"></a><span class="lineno"><a class="line" href="classSVF_1_1BranchStmt.html#a7d9a6ebb2d95942c453864b5327b1ae8"> 961</a></span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1ICFGNode.html">ICFGNode</a>* <a class="code" href="classSVF_1_1BranchStmt.html#a7d9a6ebb2d95942c453864b5327b1ae8">getSuccessor</a> (<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> i)<span class="keyword"> const</span>{</div><div class="line"><a name="l00962"></a><span class="lineno"> 962</span>&#160; <span class="keywordflow">return</span> successors.at(i);</div><div class="line"><a name="l00963"></a><span class="lineno"> 963</span>&#160; }</div><div class="line"><a name="l00965"></a><span class="lineno"> 965</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> std::string <a class="code" href="classSVF_1_1SVFStmt.html#ad0b4dbe87e009518f22360c48b0d0c22">toString</a>() <span class="keyword">const override</span>;</div><div class="line"><a name="l00966"></a><span class="lineno"> 966</span>&#160;};</div><div class="line"><a name="l00967"></a><span class="lineno"> 967</span>&#160;</div><div class="line"><a name="l00968"></a><span class="lineno"> 968</span>&#160;</div><div class="line"><a name="l00972"></a><span class="lineno"><a class="line" href="classSVF_1_1TDForkPE.html"> 972</a></span>&#160;<span class="keyword">class </span><a class="code" href="classSVF_1_1TDForkPE.html">TDForkPE</a>: <span class="keyword">public</span> <a class="code" href="classSVF_1_1CallPE.html">CallPE</a></div><div class="line"><a name="l00973"></a><span class="lineno"> 973</span>&#160;{</div><div class="line"><a name="l00974"></a><span class="lineno"> 974</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00975"></a><span class="lineno"> 975</span>&#160; <a class="code" href="classSVF_1_1TDForkPE.html">TDForkPE</a>(); </div><div class="line"><a name="l00976"></a><span class="lineno"> 976</span>&#160; <a class="code" href="classSVF_1_1TDForkPE.html">TDForkPE</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1TDForkPE.html">TDForkPE</a> &amp;); </div><div class="line"><a name="l00977"></a><span class="lineno"> 977</span>&#160; <span class="keywordtype">void</span> operator=(<span class="keyword">const</span> <a class="code" href="classSVF_1_1TDForkPE.html">TDForkPE</a> &amp;); </div><div class="line"><a name="l00978"></a><span class="lineno"> 978</span>&#160;</div><div class="line"><a name="l00979"></a><span class="lineno"> 979</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00981"></a><span class="lineno"> 981</span>&#160;</div><div class="line"><a name="l00982"></a><span class="lineno"><a class="line" href="classSVF_1_1TDForkPE.html#a79317f2ac92ace129a1ccf802406498d"> 982</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1TDForkPE.html#a79317f2ac92ace129a1ccf802406498d">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1TDForkPE.html">TDForkPE</a> *)</div><div class="line"><a name="l00983"></a><span class="lineno"> 983</span>&#160; {</div><div class="line"><a name="l00984"></a><span class="lineno"> 984</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00985"></a><span class="lineno"> 985</span>&#160; }</div><div class="line"><a name="l00986"></a><span class="lineno"><a class="line" href="classSVF_1_1TDForkPE.html#a68f16df5a9b44dd2492c33fb0a1b5f0c"> 986</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1TDForkPE.html#a68f16df5a9b44dd2492c33fb0a1b5f0c">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a> *edge)</div><div class="line"><a name="l00987"></a><span class="lineno"> 987</span>&#160; {</div><div class="line"><a name="l00988"></a><span class="lineno"> 988</span>&#160; <span class="keywordflow">return</span> edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a375b956af2119d7abca8f1995f7701fd">SVFStmt::ThreadFork</a>;</div><div class="line"><a name="l00989"></a><span class="lineno"> 989</span>&#160; }</div><div class="line"><a name="l00990"></a><span class="lineno"><a class="line" href="classSVF_1_1TDForkPE.html#a9e160158fe61958bcd6ef2a7da559018"> 990</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1TDForkPE.html#a9e160158fe61958bcd6ef2a7da559018">classof</a>(<span class="keyword">const</span> GenericPAGEdgeTy *edge)</div><div class="line"><a name="l00991"></a><span class="lineno"> 991</span>&#160; {</div><div class="line"><a name="l00992"></a><span class="lineno"> 992</span>&#160; <span class="keywordflow">return</span> edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a375b956af2119d7abca8f1995f7701fd">SVFStmt::ThreadFork</a>;</div><div class="line"><a name="l00993"></a><span class="lineno"> 993</span>&#160; }</div><div class="line"><a name="l00995"></a><span class="lineno"> 995</span>&#160;</div><div class="line"><a name="l00997"></a><span class="lineno"><a class="line" href="classSVF_1_1TDForkPE.html#ab9b4bb3ea203b7c444fad6187fe77682"> 997</a></span>&#160; <a class="code" href="classSVF_1_1TDForkPE.html#ab9b4bb3ea203b7c444fad6187fe77682">TDForkPE</a>(<a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* s, <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* d, <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallBlockNode.html">CallBlockNode</a>* i) :</div><div class="line"><a name="l00998"></a><span class="lineno"> 998</span>&#160; <a class="code" href="classSVF_1_1CallPE.html">CallPE</a>(s,d,i,<a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a>::<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a375b956af2119d7abca8f1995f7701fd">ThreadFork</a>)</div><div class="line"><a name="l00999"></a><span class="lineno"> 999</span>&#160; {</div><div class="line"><a name="l01000"></a><span class="lineno"> 1000</span>&#160; }</div><div class="line"><a name="l01001"></a><span class="lineno"> 1001</span>&#160;</div><div class="line"><a name="l01002"></a><span class="lineno"> 1002</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> std::string <a class="code" href="classSVF_1_1SVFStmt.html#ad0b4dbe87e009518f22360c48b0d0c22">toString</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l01003"></a><span class="lineno"> 1003</span>&#160;};</div><div class="line"><a name="l01004"></a><span class="lineno"> 1004</span>&#160;</div><div class="line"><a name="l01005"></a><span class="lineno"> 1005</span>&#160;</div><div class="line"><a name="l01006"></a><span class="lineno"> 1006</span>&#160;</div><div class="line"><a name="l01010"></a><span class="lineno"><a class="line" href="classSVF_1_1TDJoinPE.html"> 1010</a></span>&#160;<span class="keyword">class </span><a class="code" href="classSVF_1_1TDJoinPE.html">TDJoinPE</a>: <span class="keyword">public</span> <a class="code" href="classSVF_1_1RetPE.html">RetPE</a></div><div class="line"><a name="l01011"></a><span class="lineno"> 1011</span>&#160;{</div><div class="line"><a name="l01012"></a><span class="lineno"> 1012</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l01013"></a><span class="lineno"> 1013</span>&#160; <a class="code" href="classSVF_1_1TDJoinPE.html">TDJoinPE</a>(); </div><div class="line"><a name="l01014"></a><span class="lineno"> 1014</span>&#160; <a class="code" href="classSVF_1_1TDJoinPE.html">TDJoinPE</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1TDJoinPE.html">TDJoinPE</a> &amp;); </div><div class="line"><a name="l01015"></a><span class="lineno"> 1015</span>&#160; <span class="keywordtype">void</span> operator=(<span class="keyword">const</span> <a class="code" href="classSVF_1_1TDJoinPE.html">TDJoinPE</a> &amp;); </div><div class="line"><a name="l01016"></a><span class="lineno"> 1016</span>&#160;</div><div class="line"><a name="l01017"></a><span class="lineno"> 1017</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l01019"></a><span class="lineno"> 1019</span>&#160;</div><div class="line"><a name="l01020"></a><span class="lineno"><a class="line" href="classSVF_1_1TDJoinPE.html#ace17257476d0ee089a9f9cb8dc63e3f2"> 1020</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1TDJoinPE.html#ace17257476d0ee089a9f9cb8dc63e3f2">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1TDJoinPE.html">TDJoinPE</a> *)</div><div class="line"><a name="l01021"></a><span class="lineno"> 1021</span>&#160; {</div><div class="line"><a name="l01022"></a><span class="lineno"> 1022</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l01023"></a><span class="lineno"> 1023</span>&#160; }</div><div class="line"><a name="l01024"></a><span class="lineno"><a class="line" href="classSVF_1_1TDJoinPE.html#a18e24262f5be7835bc830ea410acc19d"> 1024</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1TDJoinPE.html#a18e24262f5be7835bc830ea410acc19d">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a> *edge)</div><div class="line"><a name="l01025"></a><span class="lineno"> 1025</span>&#160; {</div><div class="line"><a name="l01026"></a><span class="lineno"> 1026</span>&#160; <span class="keywordflow">return</span> edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a3c3f8883c2d3b50aef6331d5da97ffb0">SVFStmt::ThreadJoin</a>;</div><div class="line"><a name="l01027"></a><span class="lineno"> 1027</span>&#160; }</div><div class="line"><a name="l01028"></a><span class="lineno"><a class="line" href="classSVF_1_1TDJoinPE.html#a22303af690086961b8d2356b345f882b"> 1028</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1TDJoinPE.html#a22303af690086961b8d2356b345f882b">classof</a>(<span class="keyword">const</span> GenericPAGEdgeTy *edge)</div><div class="line"><a name="l01029"></a><span class="lineno"> 1029</span>&#160; {</div><div class="line"><a name="l01030"></a><span class="lineno"> 1030</span>&#160; <span class="keywordflow">return</span> edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a3c3f8883c2d3b50aef6331d5da97ffb0">SVFStmt::ThreadJoin</a>;</div><div class="line"><a name="l01031"></a><span class="lineno"> 1031</span>&#160; }</div><div class="line"><a name="l01033"></a><span class="lineno"> 1033</span>&#160;</div><div class="line"><a name="l01035"></a><span class="lineno"><a class="line" href="classSVF_1_1TDJoinPE.html#a0f995bd01463f201d7760641275dc33a"> 1035</a></span>&#160; <a class="code" href="classSVF_1_1TDJoinPE.html#a0f995bd01463f201d7760641275dc33a">TDJoinPE</a>(<a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* s, <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* d, <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallBlockNode.html">CallBlockNode</a>* i) :</div><div class="line"><a name="l01036"></a><span class="lineno"> 1036</span>&#160; <a class="code" href="classSVF_1_1RetPE.html">RetPE</a>(s,d,i,<a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a>::<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a3c3f8883c2d3b50aef6331d5da97ffb0">ThreadJoin</a>)</div><div class="line"><a name="l01037"></a><span class="lineno"> 1037</span>&#160; {</div><div class="line"><a name="l01038"></a><span class="lineno"> 1038</span>&#160; }</div><div class="line"><a name="l01039"></a><span class="lineno"> 1039</span>&#160;</div><div class="line"><a name="l01040"></a><span class="lineno"> 1040</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> std::string <a class="code" href="classSVF_1_1SVFStmt.html#ad0b4dbe87e009518f22360c48b0d0c22">toString</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l01041"></a><span class="lineno"> 1041</span>&#160;};</div><div class="line"><a name="l01042"></a><span class="lineno"> 1042</span>&#160;</div><div class="line"><a name="l01043"></a><span class="lineno"> 1043</span>&#160;} <span class="comment">// End namespace SVF</span></div><div class="line"><a name="l01044"></a><span class="lineno"> 1044</span>&#160;</div><div class="line"><a name="l01045"></a><span class="lineno"> 1045</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* PAGEDGE_H_ */</span><span class="preprocessor"></span></div><div class="ttc" id="classSVF_1_1CmpStmt_html_a16a5fddf61f6a13ee34dde0c4267d0e5"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#a16a5fddf61f6a13ee34dde0c4267d0e5">SVF::CmpStmt::classof</a></div><div class="ttdeci">static bool classof(const SVFStmt *edge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00778">SVFStatements.h:778</a></div></div>
69
+ <a href="SVFStatements_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">//===- SVFStatements.h -- SVF statements-------------------------------------------//</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">// SVF: Static Value-Flow Analysis</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// Copyright (C) &lt;2013-2017&gt; &lt;Yulei Sui&gt;</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// This program is free software: you can redistribute it and/or modify</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">// the Free Software Foundation, either version 3 of the License, or</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// (at your option) any later version.</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// GNU General Public License for more details.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// along with this program. If not, see &lt;http://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">//===----------------------------------------------------------------------===//</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment"> * SVFStatements.h</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="comment"> * Created on: Nov 10, 2013</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="comment"> * Author: Yulei Sui</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#ifndef PAGEDGE_H_</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#define PAGEDGE_H_</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="GenericGraph_8h.html">Graphs/GenericGraph.h</a>&quot;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="LocationSet_8h.html">MemoryModel/LocationSet.h</a>&quot;</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="ICFGNode_8h.html">Graphs/ICFGNode.h</a>&quot;</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespaceSVF.html">SVF</a></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;{</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno"><a class="line" href="namespaceSVF.html#ab502ff5e204678640c1081d104f60971"> 41</a></span>&#160;<span class="keyword">class </span><a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="comment"> * SVFIR program statements (PAGEdges)</span></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="keyword">typedef</span> <a class="code" href="classSVF_1_1GenericEdge.html">GenericEdge&lt;SVFVar&gt;</a> <a class="code" href="namespaceSVF.html#ab502ff5e204678640c1081d104f60971">GenericPAGEdgeTy</a>;</div><div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html"> 47</a></span>&#160;<span class="keyword">class </span><a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a> : <span class="keyword">public</span> GenericPAGEdgeTy</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;{</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9"> 54</a></span>&#160; <span class="keyword">enum</span> <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9">PEDGEK</a></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"><a class="line" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a6b3a8902fc2aa68428e271012861a2a2"> 56</a></span>&#160; <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a0a9a0f650e864e89b7cbb3dc8c8aa197">Addr</a>, <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad3469cdfb64f05163b5310b731b221da">Copy</a>, <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9aa0f700b514c431ec5329aec49df56dcc">Store</a>, <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a62ac8480c43fcc657c631ec0003b15d5">Load</a>, <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a97ca16eba4c5f92e16388f0cdbcfcc00">Call</a>, <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a8d269a45adf13e69468f0357222ab2af">Ret</a>, <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ac2089ffeab3f27354b2094758c805746">NormalGep</a>, <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a6b3a8902fc2aa68428e271012861a2a2">VariantGep</a>, <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a6b3cd98eeb47c8475e7ee64480dcdee9">Phi</a>, <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a610d6662d1814cffbf23db29e7e620c0">Cmp</a>, <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad58f5e59c55e1ffd23b83d16224fed13">BinaryOp</a>, <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad2a5e6fe0f2b5fefb53abb9e91c57688">UnaryOp</a>, <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad52703e3ec09b6a4f565e5d82279b6a3">Branch</a>, <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a375b956af2119d7abca8f1995f7701fd">ThreadFork</a>, <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a3c3f8883c2d3b50aef6331d5da97ffb0">ThreadJoin</a></div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; };</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;<span class="keyword">private</span>:</div><div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#a6a689f62af301bd6ac09d7019aba1c17"> 60</a></span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* <a class="code" href="classSVF_1_1SVFStmt.html#a6a689f62af301bd6ac09d7019aba1c17">value</a>; </div><div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#a877c7137875233e147faeb1198243f36"> 61</a></span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a> *<a class="code" href="classSVF_1_1SVFStmt.html#a877c7137875233e147faeb1198243f36">basicBlock</a>; </div><div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#a50046a1500ec6e2819ef55162e70cc71"> 62</a></span>&#160; <a class="code" href="classSVF_1_1ICFGNode.html">ICFGNode</a> *<a class="code" href="classSVF_1_1SVFStmt.html#a50046a1500ec6e2819ef55162e70cc71">icfgNode</a>; </div><div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#a593cc8136f2138a518476405e667e060"> 63</a></span>&#160; <a class="code" href="namespaceSVF.html#ae71551d6a1fc300e0403297aa25ddf94">EdgeID</a> <a class="code" href="classSVF_1_1SVFStmt.html#a593cc8136f2138a518476405e667e060">edgeId</a>; </div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#aa306e817648ab5def47e83473e99b3d3"> 65</a></span>&#160; <span class="keyword">static</span> <a class="code" href="namespaceSVF.html#a2db29836a72e8d86e9baa6d8d55d2978">Size_t</a> <a class="code" href="classSVF_1_1SVFStmt.html#aa306e817648ab5def47e83473e99b3d3">totalEdgeNum</a>; </div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <a class="code" href="classSVF_1_1SVFStmt.html#a47102f72115d41bff899b1b2ffec75b1">SVFStmt</a>(<a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* s, <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* d, <a class="code" href="classSVF_1_1GenericEdge.html#aab8892b73370c32b48621cd1d0cce614">GEdgeFlag</a> k);</div><div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#aac79c7e8d390f297002782afb0ba3ff0"> 70</a></span>&#160; <a class="code" href="classSVF_1_1SVFStmt.html#aac79c7e8d390f297002782afb0ba3ff0">~SVFStmt</a>()</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; }</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</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"><a class="line" href="classSVF_1_1SVFStmt.html#ac517a3166a3afe45d04480534ac3bb50"> 76</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SVFStmt.html#ac517a3166a3afe45d04480534ac3bb50">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a>*)</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; {</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</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"><a class="line" href="classSVF_1_1SVFStmt.html#a00339663741d9f581d2f3ecae5a3e7e3"> 80</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SVFStmt.html#a00339663741d9f581d2f3ecae5a3e7e3">classof</a>(<span class="keyword">const</span> GenericPAGEdgeTy *edge)</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; {</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="keywordflow">return</span> edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a0a9a0f650e864e89b7cbb3dc8c8aa197">SVFStmt::Addr</a> ||</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad3469cdfb64f05163b5310b731b221da">SVFStmt::Copy</a> ||</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9aa0f700b514c431ec5329aec49df56dcc">SVFStmt::Store</a> ||</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a62ac8480c43fcc657c631ec0003b15d5">SVFStmt::Load</a> ||</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a97ca16eba4c5f92e16388f0cdbcfcc00">SVFStmt::Call</a> ||</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a8d269a45adf13e69468f0357222ab2af">SVFStmt::Ret</a> ||</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ac2089ffeab3f27354b2094758c805746">SVFStmt::NormalGep</a> ||</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a6b3a8902fc2aa68428e271012861a2a2">SVFStmt::VariantGep</a> ||</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a610d6662d1814cffbf23db29e7e620c0">SVFStmt::Cmp</a> ||</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad58f5e59c55e1ffd23b83d16224fed13">SVFStmt::BinaryOp</a> ||</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad2a5e6fe0f2b5fefb53abb9e91c57688">SVFStmt::UnaryOp</a> ||</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a375b956af2119d7abca8f1995f7701fd">SVFStmt::ThreadFork</a> ||</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a3c3f8883c2d3b50aef6331d5da97ffb0">SVFStmt::ThreadJoin</a>;</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; }</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;</div><div class="line"><a name="l00099"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#af7bb0d687fc61cae1de639c88e472491"> 99</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#ae71551d6a1fc300e0403297aa25ddf94">EdgeID</a> <a class="code" href="classSVF_1_1SVFStmt.html#af7bb0d687fc61cae1de639c88e472491">getEdgeID</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFStmt.html#a593cc8136f2138a518476405e667e060">edgeId</a>;</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; }</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SVFStmt.html#a0b6c03af568b70903da6b200ac86c951">isPTAEdge</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</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"><a class="line" href="classSVF_1_1SVFStmt.html#a86628ea173dec4934322f5d1caf2e1db"> 108</a></span>&#160; <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a>* <a class="code" href="classSVF_1_1SVFStmt.html#a86628ea173dec4934322f5d1caf2e1db">getInst</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">SVFUtil::dyn_cast</a>&lt;<a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a>&gt;(<a class="code" href="classSVF_1_1SVFStmt.html#a6a689f62af301bd6ac09d7019aba1c17">value</a>);</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; }</div><div class="line"><a name="l00112"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#a24dddb4e346a6e569908e3efe8a6ecc0"> 112</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFStmt.html#a24dddb4e346a6e569908e3efe8a6ecc0">setValue</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a> *val)</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; {</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; value = val;</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"><a class="line" href="classSVF_1_1SVFStmt.html#a65ee8b43a3a4999eb112a197d1a9f882"> 116</a></span>&#160; <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* <a class="code" href="classSVF_1_1SVFStmt.html#a65ee8b43a3a4999eb112a197d1a9f882">getValue</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFStmt.html#a6a689f62af301bd6ac09d7019aba1c17">value</a>;</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"><a class="line" href="classSVF_1_1SVFStmt.html#a852730edf374d18a3fb3985211ed7623"> 120</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFStmt.html#a852730edf374d18a3fb3985211ed7623">setBB</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a> *bb)</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; {</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; basicBlock = bb;</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"><a class="line" href="classSVF_1_1SVFStmt.html#a793c53e0b4f9a58099c096f0a0856495"> 124</a></span>&#160; <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a>* <a class="code" href="classSVF_1_1SVFStmt.html#a793c53e0b4f9a58099c096f0a0856495">getBB</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFStmt.html#a877c7137875233e147faeb1198243f36">basicBlock</a>;</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"><a class="line" href="classSVF_1_1SVFStmt.html#adb92a92f5c878576dff26cb38eab8c8c"> 128</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFStmt.html#adb92a92f5c878576dff26cb38eab8c8c">setICFGNode</a>(<a class="code" href="classSVF_1_1ICFGNode.html">ICFGNode</a> *node)</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; {</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; icfgNode = node;</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"><a class="line" href="classSVF_1_1SVFStmt.html#aa809a57c8cdaaa35dfc3cc0f3b33b52b"> 132</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="classSVF_1_1ICFGNode.html">ICFGNode</a>* <a class="code" href="classSVF_1_1SVFStmt.html#aa809a57c8cdaaa35dfc3cc0f3b33b52b">getICFGNode</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFStmt.html#a50046a1500ec6e2819ef55162e70cc71">icfgNode</a>;</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; }</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;</div><div class="line"><a name="l00139"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#a3b20523aed66ac8943d7d00ff777137b"> 139</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="classSVF_1_1GenericEdge.html#aab8892b73370c32b48621cd1d0cce614">GEdgeFlag</a> <a class="code" href="classSVF_1_1SVFStmt.html#a3b20523aed66ac8943d7d00ff777137b">makeEdgeFlagWithAddionalOpnd</a>(<a class="code" href="classSVF_1_1GenericEdge.html#a7eb93c9018c80057672a8ce71615dc0d">GEdgeKind</a> k, <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* var)</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; {</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; Var2LabelMap::const_iterator iter = <a class="code" href="classSVF_1_1SVFStmt.html#a24c64109d27ef7549d1c7a07c391e007">var2LabelMap</a>.find(var);</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <a class="code" href="namespaceSVF.html#a366625858f450a1ea5f985a3c83e0f14">u64_t</a> label = (iter != <a class="code" href="classSVF_1_1SVFStmt.html#a24c64109d27ef7549d1c7a07c391e007">var2LabelMap</a>.end()) ?</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; iter-&gt;second : <a class="code" href="classSVF_1_1SVFStmt.html#a9ea22adbfc307dddee42ffec07cc88ed">multiOpndLabelCounter</a>++;</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; return (label &lt;&lt; <a class="code" href="classSVF_1_1GenericEdge.html#af1c2fd4b5ef1d7b7605572bf2489c298">EdgeKindMaskBits</a>) | k;</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; }</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;</div><div class="line"><a name="l00148"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#a4513c6e66b46c36219ba6d7403f3eb00"> 148</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="classSVF_1_1GenericEdge.html#aab8892b73370c32b48621cd1d0cce614">GEdgeFlag</a> <a class="code" href="classSVF_1_1SVFStmt.html#a4513c6e66b46c36219ba6d7403f3eb00">makeEdgeFlagWithCallInst</a>(<a class="code" href="classSVF_1_1GenericEdge.html#a7eb93c9018c80057672a8ce71615dc0d">GEdgeKind</a> k, <span class="keyword">const</span> <a class="code" href="classSVF_1_1ICFGNode.html">ICFGNode</a>* cs)</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; {</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; Inst2LabelMap::const_iterator iter = <a class="code" href="classSVF_1_1SVFStmt.html#abb83549118bcd7216a053d82f7180d1c">inst2LabelMap</a>.find(cs);</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <a class="code" href="namespaceSVF.html#a366625858f450a1ea5f985a3c83e0f14">u64_t</a> label = (iter != <a class="code" href="classSVF_1_1SVFStmt.html#abb83549118bcd7216a053d82f7180d1c">inst2LabelMap</a>.end()) ?</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; iter-&gt;second : <a class="code" href="classSVF_1_1SVFStmt.html#a24227d7f1dd472f47bf94cb5db8505c4">callEdgeLabelCounter</a>++;</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; return (label &lt;&lt; <a class="code" href="classSVF_1_1GenericEdge.html#af1c2fd4b5ef1d7b7605572bf2489c298">EdgeKindMaskBits</a>) | k;</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; }</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;</div><div class="line"><a name="l00158"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#ad61722f886afaaee722ac55a4eed4d18"> 158</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="classSVF_1_1GenericEdge.html#aab8892b73370c32b48621cd1d0cce614">GEdgeFlag</a> <a class="code" href="classSVF_1_1SVFStmt.html#ad61722f886afaaee722ac55a4eed4d18">makeEdgeFlagWithStoreInst</a>(<a class="code" href="classSVF_1_1GenericEdge.html#a7eb93c9018c80057672a8ce71615dc0d">GEdgeKind</a> k, <span class="keyword">const</span> <a class="code" href="classSVF_1_1ICFGNode.html">ICFGNode</a>* store)</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; {</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; Inst2LabelMap::const_iterator iter = <a class="code" href="classSVF_1_1SVFStmt.html#abb83549118bcd7216a053d82f7180d1c">inst2LabelMap</a>.find(store);</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <a class="code" href="namespaceSVF.html#a366625858f450a1ea5f985a3c83e0f14">u64_t</a> label = (iter != <a class="code" href="classSVF_1_1SVFStmt.html#abb83549118bcd7216a053d82f7180d1c">inst2LabelMap</a>.end()) ?</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; iter-&gt;second : <a class="code" href="classSVF_1_1SVFStmt.html#a53b7e0d8666e37c23dc2c7d0fc931f27">storeEdgeLabelCounter</a>++;</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; return (label &lt;&lt; <a class="code" href="classSVF_1_1GenericEdge.html#af1c2fd4b5ef1d7b7605572bf2489c298">EdgeKindMaskBits</a>) | k;</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; }</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> std::string <a class="code" href="classSVF_1_1SVFStmt.html#ad0b4dbe87e009518f22360c48b0d0c22">toString</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;</div><div class="line"><a name="l00171"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#ad75e4c84f7d37824eb096aacca930ead"> 171</a></span>&#160; <span class="keyword">friend</span> <a class="code" href="namespaceSVF.html#a424cc053c29ad7303699c529d1a2cc71">raw_ostream</a>&amp; <a class="code" href="classSVF_1_1SVFStmt.html#ad75e4c84f7d37824eb096aacca930ead">operator&lt;&lt; </a>(<a class="code" href="namespaceSVF.html#a424cc053c29ad7303699c529d1a2cc71">raw_ostream</a> &amp;o, <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a> &amp;edge)</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; {</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; o &lt;&lt; edge.<a class="code" href="classSVF_1_1SVFStmt.html#ad0b4dbe87e009518f22360c48b0d0c22">toString</a>();</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <span class="keywordflow">return</span> o;</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; }</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160;</div><div class="line"><a name="l00178"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#a8cd7b6c6fd8b030b1421d95a086359f4"> 178</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1GenericNode.html#a03c6da4a73c47f84f5c5b47252bc339a">GenericNode&lt;SVFVar,SVFStmt&gt;::GEdgeSetTy</a> <a class="code" href="classSVF_1_1SVFStmt.html#a8cd7b6c6fd8b030b1421d95a086359f4">SVFStmtSetTy</a>;</div><div class="line"><a name="l00179"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#a229c78147511f2a581c761552179b6fa"> 179</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map&lt;EdgeID, SVFStmtSetTy&gt;</a> <a class="code" href="classSVF_1_1SVFStmt.html#a229c78147511f2a581c761552179b6fa">PAGEdgeToSetMapTy</a>;</div><div class="line"><a name="l00180"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#a93fc6c4c991931c78c48500c2db50f66"> 180</a></span>&#160; <span class="keyword">typedef</span> PAGEdgeToSetMapTy <a class="code" href="classSVF_1_1SVFStmt.html#a93fc6c4c991931c78c48500c2db50f66">KindToSVFStmtMapTy</a>;</div><div class="line"><a name="l00181"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#a2bdfa37167b5496629e5cae62705d5f2"> 181</a></span>&#160; <span class="keyword">typedef</span> SVFStmtSetTy <a class="code" href="classSVF_1_1SVFStmt.html#a2bdfa37167b5496629e5cae62705d5f2">PAGEdgeSetTy</a>;</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00184"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#a5a3db6b1335b4adc55b961a6f480f228"> 184</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map&lt;const ICFGNode*, u32_t&gt;</a> <a class="code" href="classSVF_1_1SVFStmt.html#a5a3db6b1335b4adc55b961a6f480f228">Inst2LabelMap</a>;</div><div class="line"><a name="l00185"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#ad178ccbc7800527c3dc406ad5fa069bb"> 185</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map&lt;const SVFVar*, u32_t&gt;</a> <a class="code" href="classSVF_1_1SVFStmt.html#ad178ccbc7800527c3dc406ad5fa069bb">Var2LabelMap</a>;</div><div class="line"><a name="l00186"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#abb83549118bcd7216a053d82f7180d1c"> 186</a></span>&#160; <span class="keyword">static</span> Inst2LabelMap <a class="code" href="classSVF_1_1SVFStmt.html#abb83549118bcd7216a053d82f7180d1c">inst2LabelMap</a>; </div><div class="line"><a name="l00187"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#a24c64109d27ef7549d1c7a07c391e007"> 187</a></span>&#160; <span class="keyword">static</span> Var2LabelMap <a class="code" href="classSVF_1_1SVFStmt.html#a24c64109d27ef7549d1c7a07c391e007">var2LabelMap</a>; </div><div class="line"><a name="l00188"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#a24227d7f1dd472f47bf94cb5db8505c4"> 188</a></span>&#160; <span class="keyword">static</span> <a class="code" href="namespaceSVF.html#a366625858f450a1ea5f985a3c83e0f14">u64_t</a> <a class="code" href="classSVF_1_1SVFStmt.html#a24227d7f1dd472f47bf94cb5db8505c4">callEdgeLabelCounter</a>; </div><div class="line"><a name="l00189"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#a53b7e0d8666e37c23dc2c7d0fc931f27"> 189</a></span>&#160; <span class="keyword">static</span> <a class="code" href="namespaceSVF.html#a366625858f450a1ea5f985a3c83e0f14">u64_t</a> <a class="code" href="classSVF_1_1SVFStmt.html#a53b7e0d8666e37c23dc2c7d0fc931f27">storeEdgeLabelCounter</a>; </div><div class="line"><a name="l00190"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#a9ea22adbfc307dddee42ffec07cc88ed"> 190</a></span>&#160; <span class="keyword">static</span> <a class="code" href="namespaceSVF.html#a366625858f450a1ea5f985a3c83e0f14">u64_t</a> <a class="code" href="classSVF_1_1SVFStmt.html#a9ea22adbfc307dddee42ffec07cc88ed">multiOpndLabelCounter</a>; </div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;};</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160;</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;<span class="comment"> Parent class of Addr, Copy, Store, Load, Call, Ret, NormalGep, VariantGep, ThreadFork, ThreadJoin</span></div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;<span class="comment"> connecting RHS expression and LHS expression with an assignment (e.g., LHSExpr = RHSExpr)</span></div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;<span class="comment"> Only one operand on the right handside of an assignment</span></div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160;<span class="comment">*/</span></div><div class="line"><a name="l00198"></a><span class="lineno"><a class="line" href="classSVF_1_1AssignStmt.html"> 198</a></span>&#160;<span class="keyword">class </span><a class="code" href="classSVF_1_1AssignStmt.html">AssignStmt</a> : <span class="keyword">public</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a>{</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160;</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <a class="code" href="classSVF_1_1AssignStmt.html">AssignStmt</a>(); </div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <a class="code" href="classSVF_1_1AssignStmt.html">AssignStmt</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1AssignStmt.html">AssignStmt</a> &amp;); </div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; <span class="keywordtype">void</span> operator=(<span class="keyword">const</span> <a class="code" href="classSVF_1_1AssignStmt.html">AssignStmt</a> &amp;); </div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* <a class="code" href="classSVF_1_1GenericEdge.html#ab47ca533c415841ef75456cbad439589">getSrcNode</a>(); </div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* <a class="code" href="classSVF_1_1GenericEdge.html#aeaa31a2c8479e831b36ce2e2582ceb86">getDstNode</a>(); </div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1GenericEdge.html#ae6792506a0150a9400d635eceab7f9e7">getSrcID</a>(); </div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1GenericEdge.html#ad9edb45e74ae675d9da82f5acf02d56e">getDstID</a>(); </div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160;</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;<span class="keyword">protected</span>:</div><div class="line"><a name="l00211"></a><span class="lineno"><a class="line" href="classSVF_1_1AssignStmt.html#aff4c35109790daed3c6170c985153620"> 211</a></span>&#160; <a class="code" href="classSVF_1_1AssignStmt.html#aff4c35109790daed3c6170c985153620">AssignStmt</a>(<a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* s, <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* d, <a class="code" href="classSVF_1_1GenericEdge.html#aab8892b73370c32b48621cd1d0cce614">GEdgeFlag</a> k) : <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a>(s,d,k)</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; {</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; }</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160;</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160;</div><div class="line"><a name="l00218"></a><span class="lineno"><a class="line" href="classSVF_1_1AssignStmt.html#a4f94b6731f324e44fc4d4e06d7acdbf7"> 218</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1AssignStmt.html#a4f94b6731f324e44fc4d4e06d7acdbf7">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1AssignStmt.html">AssignStmt</a> *)</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; {</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; }</div><div class="line"><a name="l00222"></a><span class="lineno"><a class="line" href="classSVF_1_1AssignStmt.html#ad5e2d41b8cd548628b59227368388ed0"> 222</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1AssignStmt.html#ad5e2d41b8cd548628b59227368388ed0">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a> *edge)</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; {</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; <span class="keywordflow">return</span> edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a0a9a0f650e864e89b7cbb3dc8c8aa197">SVFStmt::Addr</a> ||</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad3469cdfb64f05163b5310b731b221da">SVFStmt::Copy</a> ||</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9aa0f700b514c431ec5329aec49df56dcc">SVFStmt::Store</a> ||</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a62ac8480c43fcc657c631ec0003b15d5">SVFStmt::Load</a> ||</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a97ca16eba4c5f92e16388f0cdbcfcc00">SVFStmt::Call</a> ||</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a8d269a45adf13e69468f0357222ab2af">SVFStmt::Ret</a> ||</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ac2089ffeab3f27354b2094758c805746">SVFStmt::NormalGep</a> ||</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a6b3a8902fc2aa68428e271012861a2a2">SVFStmt::VariantGep</a> ||</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a375b956af2119d7abca8f1995f7701fd">SVFStmt::ThreadFork</a> ||</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a3c3f8883c2d3b50aef6331d5da97ffb0">SVFStmt::ThreadJoin</a>;</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; }</div><div class="line"><a name="l00235"></a><span class="lineno"><a class="line" href="classSVF_1_1AssignStmt.html#a8b2837153dcf9f7e2adc3b30b2dd0245"> 235</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1AssignStmt.html#a8b2837153dcf9f7e2adc3b30b2dd0245">classof</a>(<span class="keyword">const</span> GenericPAGEdgeTy *edge)</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; <span class="keywordflow">return</span> edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a0a9a0f650e864e89b7cbb3dc8c8aa197">SVFStmt::Addr</a> ||</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad3469cdfb64f05163b5310b731b221da">SVFStmt::Copy</a> ||</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9aa0f700b514c431ec5329aec49df56dcc">SVFStmt::Store</a> ||</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a62ac8480c43fcc657c631ec0003b15d5">SVFStmt::Load</a> ||</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a97ca16eba4c5f92e16388f0cdbcfcc00">SVFStmt::Call</a> ||</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a8d269a45adf13e69468f0357222ab2af">SVFStmt::Ret</a> ||</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ac2089ffeab3f27354b2094758c805746">SVFStmt::NormalGep</a> ||</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a6b3a8902fc2aa68428e271012861a2a2">SVFStmt::VariantGep</a> ||</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a375b956af2119d7abca8f1995f7701fd">SVFStmt::ThreadFork</a> ||</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a3c3f8883c2d3b50aef6331d5da97ffb0">SVFStmt::ThreadJoin</a>;</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; }</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160;</div><div class="line"><a name="l00250"></a><span class="lineno"><a class="line" href="classSVF_1_1AssignStmt.html#ad03d28d16754c9049dd4d0ad3b6c1e28"> 250</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* <a class="code" href="classSVF_1_1AssignStmt.html#ad03d28d16754c9049dd4d0ad3b6c1e28">getRHSVar</a>()<span class="keyword"> const </span>{</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1GenericEdge.html#ab47ca533c415841ef75456cbad439589">SVFStmt::getSrcNode</a>();</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; } </div><div class="line"><a name="l00253"></a><span class="lineno"><a class="line" href="classSVF_1_1AssignStmt.html#a973a2b79da223275ed6a1831837b89c7"> 253</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* <a class="code" href="classSVF_1_1AssignStmt.html#a973a2b79da223275ed6a1831837b89c7">getLHSVar</a>()<span class="keyword"> const </span>{</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1GenericEdge.html#aeaa31a2c8479e831b36ce2e2582ceb86">SVFStmt::getDstNode</a>();</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; } </div><div class="line"><a name="l00256"></a><span class="lineno"><a class="line" href="classSVF_1_1AssignStmt.html#a4cec89489e82c60c287cae3327f3f01d"> 256</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1AssignStmt.html#a4cec89489e82c60c287cae3327f3f01d">getRHSVarID</a>()<span class="keyword"> const </span>{</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1GenericEdge.html#ae6792506a0150a9400d635eceab7f9e7">SVFStmt::getSrcID</a>();</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; } </div><div class="line"><a name="l00259"></a><span class="lineno"><a class="line" href="classSVF_1_1AssignStmt.html#a98f731be7be9bc8e7fd09f5c2204c840"> 259</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1AssignStmt.html#a98f731be7be9bc8e7fd09f5c2204c840">getLHSVarID</a>()<span class="keyword"> const </span>{</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1GenericEdge.html#ad9edb45e74ae675d9da82f5acf02d56e">SVFStmt::getDstID</a>();</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; } </div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160;</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> std::string <a class="code" href="classSVF_1_1SVFStmt.html#ad0b4dbe87e009518f22360c48b0d0c22">toString</a>() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160;};</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160;</div><div class="line"><a name="l00269"></a><span class="lineno"><a class="line" href="classSVF_1_1AddrStmt.html"> 269</a></span>&#160;<span class="keyword">class </span><a class="code" href="classSVF_1_1AddrStmt.html">AddrStmt</a>: <span class="keyword">public</span> <a class="code" href="classSVF_1_1AssignStmt.html">AssignStmt</a></div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160;{</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; <a class="code" href="classSVF_1_1AddrStmt.html">AddrStmt</a>(); </div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; <a class="code" href="classSVF_1_1AddrStmt.html">AddrStmt</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1AddrStmt.html">AddrStmt</a> &amp;); </div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; <span class="keywordtype">void</span> operator=(<span class="keyword">const</span> <a class="code" href="classSVF_1_1AddrStmt.html">AddrStmt</a> &amp;); </div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160;</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160;</div><div class="line"><a name="l00279"></a><span class="lineno"><a class="line" href="classSVF_1_1AddrStmt.html#a32e129c9f7aa16be8c5c8569989f691f"> 279</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1AddrStmt.html#a32e129c9f7aa16be8c5c8569989f691f">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1AddrStmt.html">AddrStmt</a> *)</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; {</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; }</div><div class="line"><a name="l00283"></a><span class="lineno"><a class="line" href="classSVF_1_1AddrStmt.html#aeec83dc4e79ee62c92c75aa778a475ad"> 283</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1AddrStmt.html#aeec83dc4e79ee62c92c75aa778a475ad">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a> *edge)</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; {</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; <span class="keywordflow">return</span> edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a0a9a0f650e864e89b7cbb3dc8c8aa197">SVFStmt::Addr</a>;</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; }</div><div class="line"><a name="l00287"></a><span class="lineno"><a class="line" href="classSVF_1_1AddrStmt.html#a6876ffc2c97c5ba64155891b55a7884c"> 287</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1AddrStmt.html#a6876ffc2c97c5ba64155891b55a7884c">classof</a>(<span class="keyword">const</span> GenericPAGEdgeTy *edge)</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">return</span> edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a0a9a0f650e864e89b7cbb3dc8c8aa197">SVFStmt::Addr</a>;</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; }</div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160;</div><div class="line"><a name="l00294"></a><span class="lineno"><a class="line" href="classSVF_1_1AddrStmt.html#a42caa75acb42ce8e290c1278622f139c"> 294</a></span>&#160; <a class="code" href="classSVF_1_1AddrStmt.html#a42caa75acb42ce8e290c1278622f139c">AddrStmt</a>(<a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* s, <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* d) : <a class="code" href="classSVF_1_1AssignStmt.html">AssignStmt</a>(s,d,<a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a>::<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a0a9a0f650e864e89b7cbb3dc8c8aa197">Addr</a>)</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; {</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; }</div><div class="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; <span class="keyword">virtual</span> <span class="keyword">const</span> std::string <a class="code" href="classSVF_1_1SVFStmt.html#ad0b4dbe87e009518f22360c48b0d0c22">toString</a>() <span class="keyword">const override</span>;</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160;};</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160;</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160;</div><div class="line"><a name="l00305"></a><span class="lineno"><a class="line" href="classSVF_1_1CopyStmt.html"> 305</a></span>&#160;<span class="keyword">class </span><a class="code" href="classSVF_1_1CopyStmt.html">CopyStmt</a>: <span class="keyword">public</span> <a class="code" href="classSVF_1_1AssignStmt.html">AssignStmt</a></div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160;{</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; <a class="code" href="classSVF_1_1CopyStmt.html">CopyStmt</a>(); </div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; <a class="code" href="classSVF_1_1CopyStmt.html">CopyStmt</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CopyStmt.html">CopyStmt</a> &amp;); </div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; <span class="keywordtype">void</span> operator=(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CopyStmt.html">CopyStmt</a> &amp;); </div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160;<span class="keyword">public</span>:</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"><a class="line" href="classSVF_1_1CopyStmt.html#a253c81c922bef6e2d520262c2f7793c4"> 314</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1CopyStmt.html#a253c81c922bef6e2d520262c2f7793c4">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CopyStmt.html">CopyStmt</a> *)</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; {</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; }</div><div class="line"><a name="l00318"></a><span class="lineno"><a class="line" href="classSVF_1_1CopyStmt.html#a5e883bb0bc30cf8b7d325b66f7a42848"> 318</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1CopyStmt.html#a5e883bb0bc30cf8b7d325b66f7a42848">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a> *edge)</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; {</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; <span class="keywordflow">return</span> edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad3469cdfb64f05163b5310b731b221da">SVFStmt::Copy</a>;</div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; }</div><div class="line"><a name="l00322"></a><span class="lineno"><a class="line" href="classSVF_1_1CopyStmt.html#a12e960569a9f4beae99195a0fe2d3b68"> 322</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1CopyStmt.html#a12e960569a9f4beae99195a0fe2d3b68">classof</a>(<span class="keyword">const</span> GenericPAGEdgeTy *edge)</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">return</span> edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad3469cdfb64f05163b5310b731b221da">SVFStmt::Copy</a>;</div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; }</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160;</div><div class="line"><a name="l00329"></a><span class="lineno"><a class="line" href="classSVF_1_1CopyStmt.html#a69b179ef052408034786d32a52c52389"> 329</a></span>&#160; <a class="code" href="classSVF_1_1CopyStmt.html#a69b179ef052408034786d32a52c52389">CopyStmt</a>(<a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* s, <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* d) : <a class="code" href="classSVF_1_1AssignStmt.html">AssignStmt</a>(s,d,<a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a>::<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad3469cdfb64f05163b5310b731b221da">Copy</a>)</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; }</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="keyword">virtual</span> <span class="keyword">const</span> std::string <a class="code" href="classSVF_1_1SVFStmt.html#ad0b4dbe87e009518f22360c48b0d0c22">toString</a>() <span class="keyword">const override</span>;</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;</div><div class="line"><a name="l00339"></a><span class="lineno"><a class="line" href="classSVF_1_1StoreStmt.html"> 339</a></span>&#160;<span class="keyword">class </span><a class="code" href="classSVF_1_1StoreStmt.html">StoreStmt</a>: <span class="keyword">public</span> <a class="code" href="classSVF_1_1AssignStmt.html">AssignStmt</a></div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160;{</div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160; <a class="code" href="classSVF_1_1StoreStmt.html">StoreStmt</a>(); </div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160; <a class="code" href="classSVF_1_1StoreStmt.html">StoreStmt</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1StoreStmt.html">StoreStmt</a> &amp;); </div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; <span class="keywordtype">void</span> operator=(<span class="keyword">const</span> <a class="code" href="classSVF_1_1StoreStmt.html">StoreStmt</a> &amp;); </div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160;</div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160;<span class="keyword">public</span>:</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"><a class="line" href="classSVF_1_1StoreStmt.html#ae3c219e8af92e222f55c930009db6e67"> 349</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1StoreStmt.html#ae3c219e8af92e222f55c930009db6e67">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1StoreStmt.html">StoreStmt</a> *)</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; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; }</div><div class="line"><a name="l00353"></a><span class="lineno"><a class="line" href="classSVF_1_1StoreStmt.html#a31f69e402887eff60e2055799ed561b9"> 353</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1StoreStmt.html#a31f69e402887eff60e2055799ed561b9">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a> *edge)</div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160; {</div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; <span class="keywordflow">return</span> edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9aa0f700b514c431ec5329aec49df56dcc">SVFStmt::Store</a>;</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; }</div><div class="line"><a name="l00357"></a><span class="lineno"><a class="line" href="classSVF_1_1StoreStmt.html#ab71bf959fce0e702556dd753636298b2"> 357</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1StoreStmt.html#ab71bf959fce0e702556dd753636298b2">classof</a>(<span class="keyword">const</span> GenericPAGEdgeTy *edge)</div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160; {</div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160; <span class="keywordflow">return</span> edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9aa0f700b514c431ec5329aec49df56dcc">SVFStmt::Store</a>;</div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; }</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160;</div><div class="line"><a name="l00364"></a><span class="lineno"><a class="line" href="classSVF_1_1StoreStmt.html#aa817396dc47f1f03015c1c95a43cf8eb"> 364</a></span>&#160; <a class="code" href="classSVF_1_1StoreStmt.html#aa817396dc47f1f03015c1c95a43cf8eb">StoreStmt</a>(<a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* s, <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* d, <span class="keyword">const</span> <a class="code" href="classSVF_1_1IntraBlockNode.html">IntraBlockNode</a>* st) :</div><div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; <a class="code" href="classSVF_1_1AssignStmt.html">AssignStmt</a>(s, d, <a class="code" href="classSVF_1_1SVFStmt.html#ad61722f886afaaee722ac55a4eed4d18">makeEdgeFlagWithStoreInst</a>(<a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a>::<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9aa0f700b514c431ec5329aec49df56dcc">Store</a>, st))</div><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; }</div><div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160;</div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> std::string <a class="code" href="classSVF_1_1SVFStmt.html#ad0b4dbe87e009518f22360c48b0d0c22">toString</a>() <span class="keyword">const override</span>;</div><div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160;};</div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160;</div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160;</div><div class="line"><a name="l00376"></a><span class="lineno"><a class="line" href="classSVF_1_1LoadStmt.html"> 376</a></span>&#160;<span class="keyword">class </span><a class="code" href="classSVF_1_1LoadStmt.html">LoadStmt</a>: <span class="keyword">public</span> <a class="code" href="classSVF_1_1AssignStmt.html">AssignStmt</a></div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160;{</div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160; <a class="code" href="classSVF_1_1LoadStmt.html">LoadStmt</a>(); </div><div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160; <a class="code" href="classSVF_1_1LoadStmt.html">LoadStmt</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1LoadStmt.html">LoadStmt</a> &amp;); </div><div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160; <span class="keywordtype">void</span> operator=(<span class="keyword">const</span> <a class="code" href="classSVF_1_1LoadStmt.html">LoadStmt</a> &amp;); </div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160;</div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160;</div><div class="line"><a name="l00386"></a><span class="lineno"><a class="line" href="classSVF_1_1LoadStmt.html#a03d6f1ee2f52b34d905b204eb53d6560"> 386</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1LoadStmt.html#a03d6f1ee2f52b34d905b204eb53d6560">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1LoadStmt.html">LoadStmt</a> *)</div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160; {</div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; }</div><div class="line"><a name="l00390"></a><span class="lineno"><a class="line" href="classSVF_1_1LoadStmt.html#ac252b1e9b7c01108d1aff602fbe1ef40"> 390</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1LoadStmt.html#ac252b1e9b7c01108d1aff602fbe1ef40">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a> *edge)</div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160; {</div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160; <span class="keywordflow">return</span> edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a62ac8480c43fcc657c631ec0003b15d5">SVFStmt::Load</a>;</div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160; }</div><div class="line"><a name="l00394"></a><span class="lineno"><a class="line" href="classSVF_1_1LoadStmt.html#ab30f370a8a2a3e63765c1e4843f07826"> 394</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1LoadStmt.html#ab30f370a8a2a3e63765c1e4843f07826">classof</a>(<span class="keyword">const</span> GenericPAGEdgeTy *edge)</div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160; {</div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160; <span class="keywordflow">return</span> edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a62ac8480c43fcc657c631ec0003b15d5">SVFStmt::Load</a>;</div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160; }</div><div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160;</div><div class="line"><a name="l00401"></a><span class="lineno"><a class="line" href="classSVF_1_1LoadStmt.html#a92c5817abfaa1f6fbc9ee911f458dfb2"> 401</a></span>&#160; <a class="code" href="classSVF_1_1LoadStmt.html#a92c5817abfaa1f6fbc9ee911f458dfb2">LoadStmt</a>(<a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* s, <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* d) : <a class="code" href="classSVF_1_1AssignStmt.html">AssignStmt</a>(s,d,<a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a>::<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a62ac8480c43fcc657c631ec0003b15d5">Load</a>)</div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160; {</div><div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160; }</div><div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160;</div><div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> std::string <a class="code" href="classSVF_1_1SVFStmt.html#ad0b4dbe87e009518f22360c48b0d0c22">toString</a>() <span class="keyword">const override</span>;</div><div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160;};</div><div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160;</div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160;</div><div class="line"><a name="l00412"></a><span class="lineno"><a class="line" href="classSVF_1_1GepStmt.html"> 412</a></span>&#160;<span class="keyword">class </span><a class="code" href="classSVF_1_1GepStmt.html">GepStmt</a>: <span class="keyword">public</span> <a class="code" href="classSVF_1_1AssignStmt.html">AssignStmt</a></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;<span class="keyword">private</span>:</div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; <a class="code" href="classSVF_1_1GepStmt.html">GepStmt</a>(); </div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; <a class="code" href="classSVF_1_1GepStmt.html">GepStmt</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1GepStmt.html">GepStmt</a> &amp;); </div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; <span class="keywordtype">void</span> operator=(<span class="keyword">const</span> <a class="code" href="classSVF_1_1GepStmt.html">GepStmt</a> &amp;); </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"><a class="line" href="classSVF_1_1GepStmt.html#a543a3f4801b22719f7b9677246bf2ac7"> 419</a></span>&#160; <a class="code" href="classSVF_1_1LocationSet.html">LocationSet</a> <a class="code" href="classSVF_1_1GepStmt.html#a543a3f4801b22719f7b9677246bf2ac7">ls</a>; </div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160;</div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160;</div><div class="line"><a name="l00424"></a><span class="lineno"><a class="line" href="classSVF_1_1GepStmt.html#a441cd8487b320ceff9d62884b4f28176"> 424</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1GepStmt.html#a441cd8487b320ceff9d62884b4f28176">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1GepStmt.html">GepStmt</a> *)</div><div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160; {</div><div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</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"><a class="line" href="classSVF_1_1GepStmt.html#a92016e7d6061e4a157c9cd39ad94cc20"> 428</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1GepStmt.html#a92016e7d6061e4a157c9cd39ad94cc20">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a> *edge)</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="keywordflow">return</span> edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ac2089ffeab3f27354b2094758c805746">SVFStmt::NormalGep</a> ||</div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160; edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a6b3a8902fc2aa68428e271012861a2a2">SVFStmt::VariantGep</a>;</div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; }</div><div class="line"><a name="l00433"></a><span class="lineno"><a class="line" href="classSVF_1_1GepStmt.html#ac47064e21e2afdf7bd85c6acba44367f"> 433</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1GepStmt.html#ac47064e21e2afdf7bd85c6acba44367f">classof</a>(<span class="keyword">const</span> GenericPAGEdgeTy *edge)</div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160; {</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160; <span class="keywordflow">return</span> edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ac2089ffeab3f27354b2094758c805746">SVFStmt::NormalGep</a> ||</div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160; edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a6b3a8902fc2aa68428e271012861a2a2">SVFStmt::VariantGep</a>;</div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160; }</div><div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160;</div><div class="line"><a name="l00440"></a><span class="lineno"><a class="line" href="classSVF_1_1GepStmt.html#abec33091e0dac0cdd5b95b6d7b0db3d8"> 440</a></span>&#160; <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1LocationSet.html">LocationSet</a>&amp; <a class="code" href="classSVF_1_1GepStmt.html#abec33091e0dac0cdd5b95b6d7b0db3d8">getLocationSet</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160; <span class="keywordflow">return</span> ls;</div><div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160; }</div><div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160;</div><div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160;<span class="keyword">protected</span>:</div><div class="line"><a name="l00447"></a><span class="lineno"><a class="line" href="classSVF_1_1GepStmt.html#ab2e054cf447dd676598d79edb44abfdf"> 447</a></span>&#160; <a class="code" href="classSVF_1_1GepStmt.html#ab2e054cf447dd676598d79edb44abfdf">GepStmt</a>(<a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* s, <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* d, <span class="keyword">const</span> <a class="code" href="classSVF_1_1LocationSet.html">LocationSet</a>&amp; l, <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9">PEDGEK</a> k) : <a class="code" href="classSVF_1_1AssignStmt.html">AssignStmt</a>(s,d,k), ls(l)</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; }</div><div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160;</div><div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> std::string <a class="code" href="classSVF_1_1SVFStmt.html#ad0b4dbe87e009518f22360c48b0d0c22">toString</a>() <span class="keyword">const</span>;</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;};</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;</div><div class="line"><a name="l00459"></a><span class="lineno"><a class="line" href="classSVF_1_1NormalGepStmt.html"> 459</a></span>&#160;<span class="keyword">class </span><a class="code" href="classSVF_1_1NormalGepStmt.html">NormalGepStmt</a> : <span class="keyword">public</span> <a class="code" href="classSVF_1_1GepStmt.html">GepStmt</a></div><div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160;{</div><div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160; <a class="code" href="classSVF_1_1NormalGepStmt.html">NormalGepStmt</a>(); </div><div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160; <a class="code" href="classSVF_1_1NormalGepStmt.html">NormalGepStmt</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1NormalGepStmt.html">NormalGepStmt</a>&amp;); </div><div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160; <span class="keywordtype">void</span> operator=(<span class="keyword">const</span> <a class="code" href="classSVF_1_1NormalGepStmt.html">NormalGepStmt</a>&amp;); </div><div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160;</div><div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160;</div><div class="line"><a name="l00469"></a><span class="lineno"><a class="line" href="classSVF_1_1NormalGepStmt.html#a3826905ca0b4d6a7e58bc2e9418d9773"> 469</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1NormalGepStmt.html#a3826905ca0b4d6a7e58bc2e9418d9773">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1NormalGepStmt.html">NormalGepStmt</a> *)</div><div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160; {</div><div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160; }</div><div class="line"><a name="l00473"></a><span class="lineno"><a class="line" href="classSVF_1_1NormalGepStmt.html#a2609aa1080824b3568856660b11b253e"> 473</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1NormalGepStmt.html#a2609aa1080824b3568856660b11b253e">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1GepStmt.html">GepStmt</a> *edge)</div><div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160; {</div><div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160; <span class="keywordflow">return</span> edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ac2089ffeab3f27354b2094758c805746">SVFStmt::NormalGep</a>;</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"><a class="line" href="classSVF_1_1NormalGepStmt.html#a60e0f787049a81bcf2818a5da7664e18"> 477</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1NormalGepStmt.html#a60e0f787049a81bcf2818a5da7664e18">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a> *edge)</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; <span class="keywordflow">return</span> edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ac2089ffeab3f27354b2094758c805746">SVFStmt::NormalGep</a>;</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"><a class="line" href="classSVF_1_1NormalGepStmt.html#a0b2bdc521dbd26cce257d469d9d33a82"> 481</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1NormalGepStmt.html#a0b2bdc521dbd26cce257d469d9d33a82">classof</a>(<span class="keyword">const</span> GenericPAGEdgeTy *edge)</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; <span class="keywordflow">return</span> edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ac2089ffeab3f27354b2094758c805746">SVFStmt::NormalGep</a>;</div><div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160; }</div><div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160;</div><div class="line"><a name="l00488"></a><span class="lineno"><a class="line" href="classSVF_1_1NormalGepStmt.html#a5c0e04f4ee0574e0e4a82c8070b33206"> 488</a></span>&#160; <a class="code" href="classSVF_1_1NormalGepStmt.html#a5c0e04f4ee0574e0e4a82c8070b33206">NormalGepStmt</a>(<a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* s, <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* d, <span class="keyword">const</span> <a class="code" href="classSVF_1_1LocationSet.html">LocationSet</a>&amp; l) : <a class="code" href="classSVF_1_1GepStmt.html">GepStmt</a>(s,d,l, <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a>::<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ac2089ffeab3f27354b2094758c805746">NormalGep</a>)</div><div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160; {}</div><div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160;</div><div class="line"><a name="l00492"></a><span class="lineno"><a class="line" href="classSVF_1_1NormalGepStmt.html#a5f68b485fb5d60deef2ca33da40c69ef"> 492</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1NormalGepStmt.html#a5f68b485fb5d60deef2ca33da40c69ef">getFieldOffset</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160; <span class="keywordflow">return</span> getLocationSet().accumulateConstantFieldIdx();</div><div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160; }</div><div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160;</div><div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> std::string <a class="code" href="classSVF_1_1SVFStmt.html#ad0b4dbe87e009518f22360c48b0d0c22">toString</a>() <span class="keyword">const override</span>;</div><div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160;};</div><div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160;</div><div class="line"><a name="l00503"></a><span class="lineno"><a class="line" href="classSVF_1_1VariantGepStmt.html"> 503</a></span>&#160;<span class="keyword">class </span><a class="code" href="classSVF_1_1VariantGepStmt.html">VariantGepStmt</a> : <span class="keyword">public</span> <a class="code" href="classSVF_1_1GepStmt.html">GepStmt</a></div><div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160;{</div><div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00506"></a><span class="lineno"> 506</span>&#160; <a class="code" href="classSVF_1_1VariantGepStmt.html">VariantGepStmt</a>(); </div><div class="line"><a name="l00507"></a><span class="lineno"> 507</span>&#160; <a class="code" href="classSVF_1_1VariantGepStmt.html">VariantGepStmt</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1VariantGepStmt.html">VariantGepStmt</a>&amp;); </div><div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160; <span class="keywordtype">void</span> operator=(<span class="keyword">const</span> <a class="code" href="classSVF_1_1VariantGepStmt.html">VariantGepStmt</a>&amp;); </div><div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160;</div><div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160;<span class="keyword">public</span>:</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"><a class="line" href="classSVF_1_1VariantGepStmt.html#a68a168d7000b6185704f61725ffef6af"> 513</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1VariantGepStmt.html#a68a168d7000b6185704f61725ffef6af">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1VariantGepStmt.html">VariantGepStmt</a> *)</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; <span class="keywordflow">return</span> <span class="keyword">true</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"><a class="line" href="classSVF_1_1VariantGepStmt.html#a78379cf0aaefc10dab7485be04891405"> 517</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1VariantGepStmt.html#a78379cf0aaefc10dab7485be04891405">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1GepStmt.html">GepStmt</a> *edge)</div><div class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160; {</div><div class="line"><a name="l00519"></a><span class="lineno"> 519</span>&#160; <span class="keywordflow">return</span> edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a6b3a8902fc2aa68428e271012861a2a2">SVFStmt::VariantGep</a>;</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"><a class="line" href="classSVF_1_1VariantGepStmt.html#adbb95a6bffb72191772a57e8c1d2d3a3"> 521</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1VariantGepStmt.html#adbb95a6bffb72191772a57e8c1d2d3a3">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a> *edge)</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">return</span> edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a6b3a8902fc2aa68428e271012861a2a2">SVFStmt::VariantGep</a>;</div><div class="line"><a name="l00524"></a><span class="lineno"> 524</span>&#160; }</div><div class="line"><a name="l00525"></a><span class="lineno"><a class="line" href="classSVF_1_1VariantGepStmt.html#a90734f6349eafc43dca830671283c292"> 525</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1VariantGepStmt.html#a90734f6349eafc43dca830671283c292">classof</a>(<span class="keyword">const</span> GenericPAGEdgeTy *edge)</div><div class="line"><a name="l00526"></a><span class="lineno"> 526</span>&#160; {</div><div class="line"><a name="l00527"></a><span class="lineno"> 527</span>&#160; <span class="keywordflow">return</span> edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a6b3a8902fc2aa68428e271012861a2a2">SVFStmt::VariantGep</a>;</div><div class="line"><a name="l00528"></a><span class="lineno"> 528</span>&#160; }</div><div class="line"><a name="l00530"></a><span class="lineno"> 530</span>&#160;</div><div class="line"><a name="l00532"></a><span class="lineno"><a class="line" href="classSVF_1_1VariantGepStmt.html#aed6d0a18bad5baeec324696338eceb8c"> 532</a></span>&#160; <a class="code" href="classSVF_1_1VariantGepStmt.html#aed6d0a18bad5baeec324696338eceb8c">VariantGepStmt</a>(<a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* s, <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* d, <span class="keyword">const</span> <a class="code" href="classSVF_1_1LocationSet.html">LocationSet</a>&amp; l) : <a class="code" href="classSVF_1_1GepStmt.html">GepStmt</a>(s,d,l, <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a>::<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a6b3a8902fc2aa68428e271012861a2a2">VariantGep</a>) {}</div><div class="line"><a name="l00533"></a><span class="lineno"> 533</span>&#160;</div><div class="line"><a name="l00534"></a><span class="lineno"> 534</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> std::string <a class="code" href="classSVF_1_1SVFStmt.html#ad0b4dbe87e009518f22360c48b0d0c22">toString</a>() <span class="keyword">const override</span>;</div><div class="line"><a name="l00535"></a><span class="lineno"> 535</span>&#160;</div><div class="line"><a name="l00536"></a><span class="lineno"> 536</span>&#160;};</div><div class="line"><a name="l00537"></a><span class="lineno"> 537</span>&#160;</div><div class="line"><a name="l00538"></a><span class="lineno"> 538</span>&#160;</div><div class="line"><a name="l00542"></a><span class="lineno"><a class="line" href="classSVF_1_1CallPE.html"> 542</a></span>&#160;<span class="keyword">class </span><a class="code" href="classSVF_1_1CallPE.html">CallPE</a>: <span class="keyword">public</span> <a class="code" href="classSVF_1_1AssignStmt.html">AssignStmt</a></div><div class="line"><a name="l00543"></a><span class="lineno"> 543</span>&#160;{</div><div class="line"><a name="l00544"></a><span class="lineno"> 544</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00545"></a><span class="lineno"> 545</span>&#160; <a class="code" href="classSVF_1_1CallPE.html">CallPE</a>(); </div><div class="line"><a name="l00546"></a><span class="lineno"> 546</span>&#160; <a class="code" href="classSVF_1_1CallPE.html">CallPE</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallPE.html">CallPE</a> &amp;); </div><div class="line"><a name="l00547"></a><span class="lineno"> 547</span>&#160; <span class="keywordtype">void</span> operator=(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallPE.html">CallPE</a> &amp;); </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"><a class="line" href="classSVF_1_1CallPE.html#a86b76d7390dc0f650ec2428c394bf41a"> 549</a></span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallBlockNode.html">CallBlockNode</a>* <a class="code" href="classSVF_1_1CallPE.html#a86b76d7390dc0f650ec2428c394bf41a">inst</a>; </div><div class="line"><a name="l00550"></a><span class="lineno"> 550</span>&#160;<span class="keyword">public</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"><a class="line" href="classSVF_1_1CallPE.html#a6df0149f79122c5a7d517f75d0235e73"> 553</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1CallPE.html#a6df0149f79122c5a7d517f75d0235e73">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallPE.html">CallPE</a> *)</div><div class="line"><a name="l00554"></a><span class="lineno"> 554</span>&#160; {</div><div class="line"><a name="l00555"></a><span class="lineno"> 555</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00556"></a><span class="lineno"> 556</span>&#160; }</div><div class="line"><a name="l00557"></a><span class="lineno"><a class="line" href="classSVF_1_1CallPE.html#a188c51f3e378c451d34e90c96cca0cf5"> 557</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1CallPE.html#a188c51f3e378c451d34e90c96cca0cf5">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a> *edge)</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">return</span> edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a97ca16eba4c5f92e16388f0cdbcfcc00">SVFStmt::Call</a></div><div class="line"><a name="l00560"></a><span class="lineno"> 560</span>&#160; || edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a375b956af2119d7abca8f1995f7701fd">SVFStmt::ThreadFork</a>;</div><div class="line"><a name="l00561"></a><span class="lineno"> 561</span>&#160; }</div><div class="line"><a name="l00562"></a><span class="lineno"><a class="line" href="classSVF_1_1CallPE.html#a0d89c20d1d3ccee5f3e45a32085117aa"> 562</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1CallPE.html#a0d89c20d1d3ccee5f3e45a32085117aa">classof</a>(<span class="keyword">const</span> GenericPAGEdgeTy *edge)</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">return</span> edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a97ca16eba4c5f92e16388f0cdbcfcc00">SVFStmt::Call</a></div><div class="line"><a name="l00565"></a><span class="lineno"> 565</span>&#160; || edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a375b956af2119d7abca8f1995f7701fd">SVFStmt::ThreadFork</a>;</div><div class="line"><a name="l00566"></a><span class="lineno"> 566</span>&#160; }</div><div class="line"><a name="l00568"></a><span class="lineno"> 568</span>&#160;</div><div class="line"><a name="l00570"></a><span class="lineno"><a class="line" href="classSVF_1_1CallPE.html#a74951537cff8b14c1cf8eb706fca5049"> 570</a></span>&#160; <a class="code" href="classSVF_1_1CallPE.html#a74951537cff8b14c1cf8eb706fca5049">CallPE</a>(<a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* s, <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* d, <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallBlockNode.html">CallBlockNode</a>* i, <a class="code" href="classSVF_1_1GenericEdge.html#a7eb93c9018c80057672a8ce71615dc0d">GEdgeKind</a> k = <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a97ca16eba4c5f92e16388f0cdbcfcc00">SVFStmt::Call</a>) :</div><div class="line"><a name="l00571"></a><span class="lineno"> 571</span>&#160; <a class="code" href="classSVF_1_1AssignStmt.html">AssignStmt</a>(s,d,<a class="code" href="classSVF_1_1SVFStmt.html#a4513c6e66b46c36219ba6d7403f3eb00">makeEdgeFlagWithCallInst</a>(k,i)), inst(i)</div><div class="line"><a name="l00572"></a><span class="lineno"> 572</span>&#160; {</div><div class="line"><a name="l00573"></a><span class="lineno"> 573</span>&#160; }</div><div class="line"><a name="l00574"></a><span class="lineno"> 574</span>&#160;</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"><a class="line" href="classSVF_1_1CallPE.html#ac8f25219948d3a6ff205048e746338d5"> 577</a></span>&#160; <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallBlockNode.html">CallBlockNode</a>* <a class="code" href="classSVF_1_1CallPE.html#ac8f25219948d3a6ff205048e746338d5">getCallInst</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00578"></a><span class="lineno"> 578</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00579"></a><span class="lineno"> 579</span>&#160; <span class="keywordflow">return</span> inst;</div><div class="line"><a name="l00580"></a><span class="lineno"> 580</span>&#160; }</div><div class="line"><a name="l00581"></a><span class="lineno"><a class="line" href="classSVF_1_1CallPE.html#a6a7a917cd6f1235b9453c9672f38c0ef"> 581</a></span>&#160; <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallBlockNode.html">CallBlockNode</a>* <a class="code" href="classSVF_1_1CallPE.html#a6a7a917cd6f1235b9453c9672f38c0ef">getCallSite</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00582"></a><span class="lineno"> 582</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00583"></a><span class="lineno"> 583</span>&#160; <span class="keywordflow">return</span> inst;</div><div class="line"><a name="l00584"></a><span class="lineno"> 584</span>&#160; }</div><div class="line"><a name="l00586"></a><span class="lineno"> 586</span>&#160;</div><div class="line"><a name="l00587"></a><span class="lineno"> 587</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> std::string <a class="code" href="classSVF_1_1SVFStmt.html#ad0b4dbe87e009518f22360c48b0d0c22">toString</a>() <span class="keyword">const override</span>;</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;</div><div class="line"><a name="l00590"></a><span class="lineno"> 590</span>&#160;</div><div class="line"><a name="l00594"></a><span class="lineno"><a class="line" href="classSVF_1_1RetPE.html"> 594</a></span>&#160;<span class="keyword">class </span><a class="code" href="classSVF_1_1RetPE.html">RetPE</a>: <span class="keyword">public</span> <a class="code" href="classSVF_1_1AssignStmt.html">AssignStmt</a></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;<span class="keyword">private</span>:</div><div class="line"><a name="l00597"></a><span class="lineno"> 597</span>&#160; <a class="code" href="classSVF_1_1RetPE.html">RetPE</a>(); </div><div class="line"><a name="l00598"></a><span class="lineno"> 598</span>&#160; <a class="code" href="classSVF_1_1RetPE.html">RetPE</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1RetPE.html">RetPE</a> &amp;); </div><div class="line"><a name="l00599"></a><span class="lineno"> 599</span>&#160; <span class="keywordtype">void</span> operator=(<span class="keyword">const</span> <a class="code" href="classSVF_1_1RetPE.html">RetPE</a> &amp;); </div><div class="line"><a name="l00600"></a><span class="lineno"> 600</span>&#160;</div><div class="line"><a name="l00601"></a><span class="lineno"><a class="line" href="classSVF_1_1RetPE.html#ad78a287bde15c03eec8d633d363e2ed2"> 601</a></span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallBlockNode.html">CallBlockNode</a>* <a class="code" href="classSVF_1_1RetPE.html#ad78a287bde15c03eec8d633d363e2ed2">inst</a>; </div><div class="line"><a name="l00602"></a><span class="lineno"> 602</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00604"></a><span class="lineno"> 604</span>&#160;</div><div class="line"><a name="l00605"></a><span class="lineno"><a class="line" href="classSVF_1_1RetPE.html#a43c6965616d67e77087b486265139d21"> 605</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1RetPE.html#a43c6965616d67e77087b486265139d21">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1RetPE.html">RetPE</a> *)</div><div class="line"><a name="l00606"></a><span class="lineno"> 606</span>&#160; {</div><div class="line"><a name="l00607"></a><span class="lineno"> 607</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00608"></a><span class="lineno"> 608</span>&#160; }</div><div class="line"><a name="l00609"></a><span class="lineno"><a class="line" href="classSVF_1_1RetPE.html#a9cd78a723ed55ed6f334a329576a7471"> 609</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1RetPE.html#a9cd78a723ed55ed6f334a329576a7471">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a> *edge)</div><div class="line"><a name="l00610"></a><span class="lineno"> 610</span>&#160; {</div><div class="line"><a name="l00611"></a><span class="lineno"> 611</span>&#160; <span class="keywordflow">return</span> edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a8d269a45adf13e69468f0357222ab2af">SVFStmt::Ret</a></div><div class="line"><a name="l00612"></a><span class="lineno"> 612</span>&#160; || edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a3c3f8883c2d3b50aef6331d5da97ffb0">SVFStmt::ThreadJoin</a>;</div><div class="line"><a name="l00613"></a><span class="lineno"> 613</span>&#160; }</div><div class="line"><a name="l00614"></a><span class="lineno"><a class="line" href="classSVF_1_1RetPE.html#a2f0121f26e79fe3766cba93b42dc1119"> 614</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1RetPE.html#a2f0121f26e79fe3766cba93b42dc1119">classof</a>(<span class="keyword">const</span> GenericPAGEdgeTy *edge)</div><div class="line"><a name="l00615"></a><span class="lineno"> 615</span>&#160; {</div><div class="line"><a name="l00616"></a><span class="lineno"> 616</span>&#160; <span class="keywordflow">return</span> edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a8d269a45adf13e69468f0357222ab2af">SVFStmt::Ret</a></div><div class="line"><a name="l00617"></a><span class="lineno"> 617</span>&#160; || edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a3c3f8883c2d3b50aef6331d5da97ffb0">SVFStmt::ThreadJoin</a>;</div><div class="line"><a name="l00618"></a><span class="lineno"> 618</span>&#160; }</div><div class="line"><a name="l00620"></a><span class="lineno"> 620</span>&#160;</div><div class="line"><a name="l00622"></a><span class="lineno"><a class="line" href="classSVF_1_1RetPE.html#a03739021e33640699ab54220c9a7f16d"> 622</a></span>&#160; <a class="code" href="classSVF_1_1RetPE.html#a03739021e33640699ab54220c9a7f16d">RetPE</a>(<a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* s, <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* d, <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallBlockNode.html">CallBlockNode</a>* i, <a class="code" href="classSVF_1_1GenericEdge.html#a7eb93c9018c80057672a8ce71615dc0d">GEdgeKind</a> k = <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a8d269a45adf13e69468f0357222ab2af">SVFStmt::Ret</a>) :</div><div class="line"><a name="l00623"></a><span class="lineno"> 623</span>&#160; <a class="code" href="classSVF_1_1AssignStmt.html">AssignStmt</a>(s,d,<a class="code" href="classSVF_1_1SVFStmt.html#a4513c6e66b46c36219ba6d7403f3eb00">makeEdgeFlagWithCallInst</a>(k,i)), inst(i)</div><div class="line"><a name="l00624"></a><span class="lineno"> 624</span>&#160; {</div><div class="line"><a name="l00625"></a><span class="lineno"> 625</span>&#160; }</div><div class="line"><a name="l00626"></a><span class="lineno"> 626</span>&#160;</div><div class="line"><a name="l00628"></a><span class="lineno"> 628</span>&#160;</div><div class="line"><a name="l00629"></a><span class="lineno"><a class="line" href="classSVF_1_1RetPE.html#ac28900a70a604bbba2b4cdab09709226"> 629</a></span>&#160; <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallBlockNode.html">CallBlockNode</a>* <a class="code" href="classSVF_1_1RetPE.html#ac28900a70a604bbba2b4cdab09709226">getCallInst</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00630"></a><span class="lineno"> 630</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00631"></a><span class="lineno"> 631</span>&#160; <span class="keywordflow">return</span> inst;</div><div class="line"><a name="l00632"></a><span class="lineno"> 632</span>&#160; }</div><div class="line"><a name="l00633"></a><span class="lineno"><a class="line" href="classSVF_1_1RetPE.html#a1495bfc171fa21980712f1d729a6b175"> 633</a></span>&#160; <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallBlockNode.html">CallBlockNode</a>* <a class="code" href="classSVF_1_1RetPE.html#a1495bfc171fa21980712f1d729a6b175">getCallSite</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00634"></a><span class="lineno"> 634</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00635"></a><span class="lineno"> 635</span>&#160; <span class="keywordflow">return</span> inst;</div><div class="line"><a name="l00636"></a><span class="lineno"> 636</span>&#160; }</div><div class="line"><a name="l00638"></a><span class="lineno"> 638</span>&#160;</div><div class="line"><a name="l00639"></a><span class="lineno"> 639</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> std::string <a class="code" href="classSVF_1_1SVFStmt.html#ad0b4dbe87e009518f22360c48b0d0c22">toString</a>() <span class="keyword">const override</span>;</div><div class="line"><a name="l00640"></a><span class="lineno"> 640</span>&#160;};</div><div class="line"><a name="l00641"></a><span class="lineno"> 641</span>&#160;</div><div class="line"><a name="l00642"></a><span class="lineno"> 642</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00643"></a><span class="lineno"> 643</span>&#160;<span class="comment">* Program statements with multiple operands including BinaryOPStmt, CmpStmt and PhiStmt</span></div><div class="line"><a name="l00644"></a><span class="lineno"> 644</span>&#160;<span class="comment">*/</span></div><div class="line"><a name="l00645"></a><span class="lineno"><a class="line" href="classSVF_1_1MultiOpndStmt.html"> 645</a></span>&#160;<span class="keyword">class </span><a class="code" href="classSVF_1_1MultiOpndStmt.html">MultiOpndStmt</a> : <span class="keyword">public</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a>{</div><div class="line"><a name="l00646"></a><span class="lineno"> 646</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00647"></a><span class="lineno"><a class="line" href="classSVF_1_1MultiOpndStmt.html#acf8c7cfbf1c8baab672040635bb9a007"> 647</a></span>&#160; <span class="keyword">typedef</span> std::vector&lt;SVFVar*&gt; <a class="code" href="classSVF_1_1MultiOpndStmt.html#acf8c7cfbf1c8baab672040635bb9a007">OPVars</a>;</div><div class="line"><a name="l00648"></a><span class="lineno"> 648</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00649"></a><span class="lineno"> 649</span>&#160; <a class="code" href="classSVF_1_1MultiOpndStmt.html">MultiOpndStmt</a>(); </div><div class="line"><a name="l00650"></a><span class="lineno"> 650</span>&#160; <a class="code" href="classSVF_1_1MultiOpndStmt.html">MultiOpndStmt</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1MultiOpndStmt.html">MultiOpndStmt</a> &amp;); </div><div class="line"><a name="l00651"></a><span class="lineno"> 651</span>&#160; <span class="keywordtype">void</span> operator=(<span class="keyword">const</span> <a class="code" href="classSVF_1_1MultiOpndStmt.html">MultiOpndStmt</a> &amp;); </div><div class="line"><a name="l00652"></a><span class="lineno"> 652</span>&#160; <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* <a class="code" href="classSVF_1_1GenericEdge.html#ab47ca533c415841ef75456cbad439589">getSrcNode</a>(); </div><div class="line"><a name="l00653"></a><span class="lineno"> 653</span>&#160; <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* <a class="code" href="classSVF_1_1GenericEdge.html#aeaa31a2c8479e831b36ce2e2582ceb86">getDstNode</a>(); </div><div class="line"><a name="l00654"></a><span class="lineno"> 654</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1GenericEdge.html#ae6792506a0150a9400d635eceab7f9e7">getSrcID</a>(); </div><div class="line"><a name="l00655"></a><span class="lineno"> 655</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1GenericEdge.html#ad9edb45e74ae675d9da82f5acf02d56e">getDstID</a>(); </div><div class="line"><a name="l00656"></a><span class="lineno"> 656</span>&#160;</div><div class="line"><a name="l00657"></a><span class="lineno"> 657</span>&#160;<span class="keyword">protected</span>:</div><div class="line"><a name="l00658"></a><span class="lineno"><a class="line" href="classSVF_1_1MultiOpndStmt.html#a172025849492f4de8f87564ef08f5880"> 658</a></span>&#160; OPVars <a class="code" href="classSVF_1_1MultiOpndStmt.html#a172025849492f4de8f87564ef08f5880">opVars</a>;</div><div class="line"><a name="l00660"></a><span class="lineno"><a class="line" href="classSVF_1_1MultiOpndStmt.html#aad0c81aeb48e5d94dd8c60d87b41714c"> 660</a></span>&#160; <a class="code" href="classSVF_1_1MultiOpndStmt.html#aad0c81aeb48e5d94dd8c60d87b41714c">MultiOpndStmt</a>(<a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* r, <span class="keyword">const</span> OPVars&amp; opnds, <a class="code" href="classSVF_1_1GenericEdge.html#aab8892b73370c32b48621cd1d0cce614">GEdgeFlag</a> k): <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a>(opnds.at(0), r, k), opVars(opnds)</div><div class="line"><a name="l00661"></a><span class="lineno"> 661</span>&#160; {</div><div class="line"><a name="l00662"></a><span class="lineno"> 662</span>&#160; }</div><div class="line"><a name="l00663"></a><span class="lineno"> 663</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00665"></a><span class="lineno"> 665</span>&#160;</div><div class="line"><a name="l00666"></a><span class="lineno"><a class="line" href="classSVF_1_1MultiOpndStmt.html#aa0d9a26d3ad17432505b1f5bb36368d9"> 666</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1MultiOpndStmt.html#aa0d9a26d3ad17432505b1f5bb36368d9">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1MultiOpndStmt.html">MultiOpndStmt</a> *)</div><div class="line"><a name="l00667"></a><span class="lineno"> 667</span>&#160; {</div><div class="line"><a name="l00668"></a><span class="lineno"> 668</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00669"></a><span class="lineno"> 669</span>&#160; }</div><div class="line"><a name="l00670"></a><span class="lineno"><a class="line" href="classSVF_1_1MultiOpndStmt.html#a5de8ff8363cb3f0b1427b69aa1058470"> 670</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1MultiOpndStmt.html#a5de8ff8363cb3f0b1427b69aa1058470">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a> *node)</div><div class="line"><a name="l00671"></a><span class="lineno"> 671</span>&#160; {</div><div class="line"><a name="l00672"></a><span class="lineno"> 672</span>&#160; <span class="keywordflow">return</span> node-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a6b3cd98eeb47c8475e7ee64480dcdee9">Phi</a> ||</div><div class="line"><a name="l00673"></a><span class="lineno"> 673</span>&#160; node-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad58f5e59c55e1ffd23b83d16224fed13">BinaryOp</a> ||</div><div class="line"><a name="l00674"></a><span class="lineno"> 674</span>&#160; node-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a610d6662d1814cffbf23db29e7e620c0">Cmp</a>;</div><div class="line"><a name="l00675"></a><span class="lineno"> 675</span>&#160; }</div><div class="line"><a name="l00676"></a><span class="lineno"><a class="line" href="classSVF_1_1MultiOpndStmt.html#ad20128715a7aaf173d60fe8f14575678"> 676</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1MultiOpndStmt.html#ad20128715a7aaf173d60fe8f14575678">classof</a>(<span class="keyword">const</span> GenericPAGEdgeTy *node)</div><div class="line"><a name="l00677"></a><span class="lineno"> 677</span>&#160; {</div><div class="line"><a name="l00678"></a><span class="lineno"> 678</span>&#160; <span class="keywordflow">return</span> node-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a6b3cd98eeb47c8475e7ee64480dcdee9">Phi</a> ||</div><div class="line"><a name="l00679"></a><span class="lineno"> 679</span>&#160; node-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad58f5e59c55e1ffd23b83d16224fed13">BinaryOp</a> ||</div><div class="line"><a name="l00680"></a><span class="lineno"> 680</span>&#160; node-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a610d6662d1814cffbf23db29e7e620c0">Cmp</a>;</div><div class="line"><a name="l00681"></a><span class="lineno"> 681</span>&#160; }</div><div class="line"><a name="l00683"></a><span class="lineno"> 683</span>&#160;</div><div class="line"><a name="l00685"></a><span class="lineno"> 685</span>&#160; <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* getOpVar(<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> pos)<span class="keyword"> const</span></div><div class="line"><a name="l00687"></a><span class="lineno"> 687</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00688"></a><span class="lineno"> 688</span>&#160; <span class="keywordflow">return</span> opVars.at(pos);</div><div class="line"><a name="l00689"></a><span class="lineno"> 689</span>&#160; }</div><div class="line"><a name="l00691"></a><span class="lineno"><a class="line" href="classSVF_1_1MultiOpndStmt.html#a00a14ad8f49912b876fd9d729fea4601"> 691</a></span>&#160; <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* <a class="code" href="classSVF_1_1MultiOpndStmt.html#a00a14ad8f49912b876fd9d729fea4601">getRes</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00692"></a><span class="lineno"> 692</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00693"></a><span class="lineno"> 693</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1GenericEdge.html#aeaa31a2c8479e831b36ce2e2582ceb86">SVFStmt::getDstNode</a>();</div><div class="line"><a name="l00694"></a><span class="lineno"> 694</span>&#160; }</div><div class="line"><a name="l00695"></a><span class="lineno"> 695</span>&#160; </div><div class="line"><a name="l00696"></a><span class="lineno"> 696</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> getOpVarID(<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> pos) <span class="keyword">const</span>;</div><div class="line"><a name="l00697"></a><span class="lineno"> 697</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> getResID() <span class="keyword">const</span>;</div><div class="line"><a name="l00698"></a><span class="lineno"> 698</span>&#160;</div><div class="line"><a name="l00699"></a><span class="lineno"><a class="line" href="classSVF_1_1MultiOpndStmt.html#af300571886b7aa2d84b0a70851c99bc3"> 699</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1MultiOpndStmt.html#af300571886b7aa2d84b0a70851c99bc3">getOpVarNum</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00700"></a><span class="lineno"> 700</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00701"></a><span class="lineno"> 701</span>&#160; <span class="keywordflow">return</span> opVars.size();</div><div class="line"><a name="l00702"></a><span class="lineno"> 702</span>&#160; }</div><div class="line"><a name="l00703"></a><span class="lineno"><a class="line" href="classSVF_1_1MultiOpndStmt.html#a0441f2646fed28830439c41a0704ed4b"> 703</a></span>&#160; <span class="keyword">inline</span> <span class="keyword">const</span> OPVars&amp; <a class="code" href="classSVF_1_1MultiOpndStmt.html#a0441f2646fed28830439c41a0704ed4b">getOpndVars</a>()<span class="keyword"> const</span>{</div><div class="line"><a name="l00704"></a><span class="lineno"> 704</span>&#160; <span class="keywordflow">return</span> opVars;</div><div class="line"><a name="l00705"></a><span class="lineno"> 705</span>&#160; }</div><div class="line"><a name="l00706"></a><span class="lineno"><a class="line" href="classSVF_1_1MultiOpndStmt.html#abebed8985cb4d4d1361c42e5454c90b9"> 706</a></span>&#160; <span class="keyword">inline</span> OPVars::const_iterator <a class="code" href="classSVF_1_1MultiOpndStmt.html#abebed8985cb4d4d1361c42e5454c90b9">opVarBegin</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00707"></a><span class="lineno"> 707</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00708"></a><span class="lineno"> 708</span>&#160; <span class="keywordflow">return</span> opVars.begin();</div><div class="line"><a name="l00709"></a><span class="lineno"> 709</span>&#160; }</div><div class="line"><a name="l00710"></a><span class="lineno"><a class="line" href="classSVF_1_1MultiOpndStmt.html#ad53097d07487d564e7d13f9d7d9ab10c"> 710</a></span>&#160; <span class="keyword">inline</span> OPVars::const_iterator <a class="code" href="classSVF_1_1MultiOpndStmt.html#ad53097d07487d564e7d13f9d7d9ab10c">opVerEnd</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00711"></a><span class="lineno"> 711</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00712"></a><span class="lineno"> 712</span>&#160; <span class="keywordflow">return</span> opVars.end();</div><div class="line"><a name="l00713"></a><span class="lineno"> 713</span>&#160; }</div><div class="line"><a name="l00715"></a><span class="lineno"> 715</span>&#160;};</div><div class="line"><a name="l00716"></a><span class="lineno"> 716</span>&#160;</div><div class="line"><a name="l00721"></a><span class="lineno"><a class="line" href="classSVF_1_1PhiStmt.html"> 721</a></span>&#160;<span class="keyword">class </span><a class="code" href="classSVF_1_1PhiStmt.html">PhiStmt</a>: <span class="keyword">public</span> <a class="code" href="classSVF_1_1MultiOpndStmt.html">MultiOpndStmt</a></div><div class="line"><a name="l00722"></a><span class="lineno"> 722</span>&#160;{</div><div class="line"><a name="l00723"></a><span class="lineno"> 723</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00724"></a><span class="lineno"> 724</span>&#160; <a class="code" href="classSVF_1_1PhiStmt.html">PhiStmt</a>(); </div><div class="line"><a name="l00725"></a><span class="lineno"> 725</span>&#160; <a class="code" href="classSVF_1_1PhiStmt.html">PhiStmt</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1PhiStmt.html">PhiStmt</a> &amp;); </div><div class="line"><a name="l00726"></a><span class="lineno"> 726</span>&#160; <span class="keywordtype">void</span> operator=(<span class="keyword">const</span> <a class="code" href="classSVF_1_1PhiStmt.html">PhiStmt</a> &amp;); </div><div class="line"><a name="l00727"></a><span class="lineno"> 727</span>&#160;</div><div class="line"><a name="l00728"></a><span class="lineno"> 728</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00730"></a><span class="lineno"> 730</span>&#160;</div><div class="line"><a name="l00731"></a><span class="lineno"><a class="line" href="classSVF_1_1PhiStmt.html#abb620d35e77989c2f7f9ed480e5fa1e9"> 731</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1PhiStmt.html#abb620d35e77989c2f7f9ed480e5fa1e9">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1PhiStmt.html">PhiStmt</a> *)</div><div class="line"><a name="l00732"></a><span class="lineno"> 732</span>&#160; {</div><div class="line"><a name="l00733"></a><span class="lineno"> 733</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00734"></a><span class="lineno"> 734</span>&#160; }</div><div class="line"><a name="l00735"></a><span class="lineno"><a class="line" href="classSVF_1_1PhiStmt.html#ac214292370d79324f6da8624fe2c7139"> 735</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1PhiStmt.html#ac214292370d79324f6da8624fe2c7139">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a> *edge)</div><div class="line"><a name="l00736"></a><span class="lineno"> 736</span>&#160; {</div><div class="line"><a name="l00737"></a><span class="lineno"> 737</span>&#160; <span class="keywordflow">return</span> edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a6b3cd98eeb47c8475e7ee64480dcdee9">SVFStmt::Phi</a>;</div><div class="line"><a name="l00738"></a><span class="lineno"> 738</span>&#160; }</div><div class="line"><a name="l00739"></a><span class="lineno"><a class="line" href="classSVF_1_1PhiStmt.html#ae547394a731d29b44565d3e56a326354"> 739</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1PhiStmt.html#ae547394a731d29b44565d3e56a326354">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1MultiOpndStmt.html">MultiOpndStmt</a> *edge)</div><div class="line"><a name="l00740"></a><span class="lineno"> 740</span>&#160; {</div><div class="line"><a name="l00741"></a><span class="lineno"> 741</span>&#160; <span class="keywordflow">return</span> edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a6b3cd98eeb47c8475e7ee64480dcdee9">SVFStmt::Phi</a>;</div><div class="line"><a name="l00742"></a><span class="lineno"> 742</span>&#160; }</div><div class="line"><a name="l00743"></a><span class="lineno"><a class="line" href="classSVF_1_1PhiStmt.html#a904591799ce401e8d3ee6aa634325ba3"> 743</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1PhiStmt.html#a904591799ce401e8d3ee6aa634325ba3">classof</a>(<span class="keyword">const</span> GenericPAGEdgeTy *edge)</div><div class="line"><a name="l00744"></a><span class="lineno"> 744</span>&#160; {</div><div class="line"><a name="l00745"></a><span class="lineno"> 745</span>&#160; <span class="keywordflow">return</span> edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a6b3cd98eeb47c8475e7ee64480dcdee9">SVFStmt::Phi</a>;</div><div class="line"><a name="l00746"></a><span class="lineno"> 746</span>&#160; }</div><div class="line"><a name="l00748"></a><span class="lineno"> 748</span>&#160;</div><div class="line"><a name="l00750"></a><span class="lineno"><a class="line" href="classSVF_1_1PhiStmt.html#a7a5147246ce71f9863398abdd6ddcfc2"> 750</a></span>&#160; <a class="code" href="classSVF_1_1PhiStmt.html#a7a5147246ce71f9863398abdd6ddcfc2">PhiStmt</a>(<a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* s, <span class="keyword">const</span> <a class="code" href="classSVF_1_1MultiOpndStmt.html#acf8c7cfbf1c8baab672040635bb9a007">OPVars</a>&amp; opnds) : <a class="code" href="classSVF_1_1MultiOpndStmt.html">MultiOpndStmt</a>(s,opnds,<a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a>::<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a6b3cd98eeb47c8475e7ee64480dcdee9">Phi</a>)</div><div class="line"><a name="l00751"></a><span class="lineno"> 751</span>&#160; {</div><div class="line"><a name="l00752"></a><span class="lineno"> 752</span>&#160; }</div><div class="line"><a name="l00753"></a><span class="lineno"><a class="line" href="classSVF_1_1PhiStmt.html#ae20d273a8afe603395b6621f04e6cb65"> 753</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1PhiStmt.html#ae20d273a8afe603395b6621f04e6cb65">addOpVar</a>(<a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* op){</div><div class="line"><a name="l00754"></a><span class="lineno"> 754</span>&#160; opVars.push_back(op);</div><div class="line"><a name="l00755"></a><span class="lineno"> 755</span>&#160; }</div><div class="line"><a name="l00756"></a><span class="lineno"> 756</span>&#160;</div><div class="line"><a name="l00759"></a><span class="lineno"> 759</span>&#160; <span class="keywordtype">bool</span> isFunctionRetPhi() <span class="keyword">const</span>;</div><div class="line"><a name="l00760"></a><span class="lineno"> 760</span>&#160;</div><div class="line"><a name="l00761"></a><span class="lineno"> 761</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> std::string <a class="code" href="classSVF_1_1SVFStmt.html#ad0b4dbe87e009518f22360c48b0d0c22">toString</a>() <span class="keyword">const override</span>;</div><div class="line"><a name="l00762"></a><span class="lineno"> 762</span>&#160;};</div><div class="line"><a name="l00763"></a><span class="lineno"> 763</span>&#160;</div><div class="line"><a name="l00764"></a><span class="lineno"> 764</span>&#160;</div><div class="line"><a name="l00768"></a><span class="lineno"><a class="line" href="classSVF_1_1CmpStmt.html"> 768</a></span>&#160;<span class="keyword">class </span><a class="code" href="classSVF_1_1CmpStmt.html">CmpStmt</a>: <span class="keyword">public</span> <a class="code" href="classSVF_1_1MultiOpndStmt.html">MultiOpndStmt</a></div><div class="line"><a name="l00769"></a><span class="lineno"> 769</span>&#160;{</div><div class="line"><a name="l00770"></a><span class="lineno"> 770</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00771"></a><span class="lineno"> 771</span>&#160; <a class="code" href="classSVF_1_1CmpStmt.html">CmpStmt</a>(); </div><div class="line"><a name="l00772"></a><span class="lineno"> 772</span>&#160; <a class="code" href="classSVF_1_1CmpStmt.html">CmpStmt</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CmpStmt.html">CmpStmt</a> &amp;); </div><div class="line"><a name="l00773"></a><span class="lineno"> 773</span>&#160; <span class="keywordtype">void</span> operator=(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CmpStmt.html">CmpStmt</a> &amp;); </div><div class="line"><a name="l00774"></a><span class="lineno"> 774</span>&#160;</div><div class="line"><a name="l00775"></a><span class="lineno"><a class="line" href="classSVF_1_1CmpStmt.html#a26fc263da6ab3fee40a335d367419328"> 775</a></span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1CmpStmt.html#a26fc263da6ab3fee40a335d367419328">predicate</a>;</div><div class="line"><a name="l00776"></a><span class="lineno"> 776</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00778"></a><span class="lineno"> 778</span>&#160;</div><div class="line"><a name="l00779"></a><span class="lineno"><a class="line" href="classSVF_1_1CmpStmt.html#adec661dd23b7806b35abba2d44aebc61"> 779</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1CmpStmt.html#adec661dd23b7806b35abba2d44aebc61">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CmpStmt.html">CmpStmt</a> *)</div><div class="line"><a name="l00780"></a><span class="lineno"> 780</span>&#160; {</div><div class="line"><a name="l00781"></a><span class="lineno"> 781</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00782"></a><span class="lineno"> 782</span>&#160; }</div><div class="line"><a name="l00783"></a><span class="lineno"><a class="line" href="classSVF_1_1CmpStmt.html#a16a5fddf61f6a13ee34dde0c4267d0e5"> 783</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1CmpStmt.html#a16a5fddf61f6a13ee34dde0c4267d0e5">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a> *edge)</div><div class="line"><a name="l00784"></a><span class="lineno"> 784</span>&#160; {</div><div class="line"><a name="l00785"></a><span class="lineno"> 785</span>&#160; <span class="keywordflow">return</span> edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a610d6662d1814cffbf23db29e7e620c0">SVFStmt::Cmp</a>;</div><div class="line"><a name="l00786"></a><span class="lineno"> 786</span>&#160; }</div><div class="line"><a name="l00787"></a><span class="lineno"><a class="line" href="classSVF_1_1CmpStmt.html#a679ec89e3fa17a17dcc8fafeb30d3a61"> 787</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1CmpStmt.html#a679ec89e3fa17a17dcc8fafeb30d3a61">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1MultiOpndStmt.html">MultiOpndStmt</a> *edge)</div><div class="line"><a name="l00788"></a><span class="lineno"> 788</span>&#160; {</div><div class="line"><a name="l00789"></a><span class="lineno"> 789</span>&#160; <span class="keywordflow">return</span> edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a610d6662d1814cffbf23db29e7e620c0">SVFStmt::Cmp</a>;</div><div class="line"><a name="l00790"></a><span class="lineno"> 790</span>&#160; }</div><div class="line"><a name="l00791"></a><span class="lineno"><a class="line" href="classSVF_1_1CmpStmt.html#af9f7fe4aa92bb443cd517f06a8fb94cd"> 791</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1CmpStmt.html#af9f7fe4aa92bb443cd517f06a8fb94cd">classof</a>(<span class="keyword">const</span> GenericPAGEdgeTy *edge)</div><div class="line"><a name="l00792"></a><span class="lineno"> 792</span>&#160; {</div><div class="line"><a name="l00793"></a><span class="lineno"> 793</span>&#160; <span class="keywordflow">return</span> edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a610d6662d1814cffbf23db29e7e620c0">SVFStmt::Cmp</a>;</div><div class="line"><a name="l00794"></a><span class="lineno"> 794</span>&#160; }</div><div class="line"><a name="l00796"></a><span class="lineno"> 796</span>&#160;</div><div class="line"><a name="l00798"></a><span class="lineno"><a class="line" href="classSVF_1_1CmpStmt.html#a02c4846269bd28bd4e8b127532cb737a"> 798</a></span>&#160; <a class="code" href="classSVF_1_1CmpStmt.html#a02c4846269bd28bd4e8b127532cb737a">CmpStmt</a>(<a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* s, <span class="keyword">const</span> <a class="code" href="classSVF_1_1MultiOpndStmt.html#acf8c7cfbf1c8baab672040635bb9a007">OPVars</a>&amp; opnds, <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> pre) : <a class="code" href="classSVF_1_1MultiOpndStmt.html">MultiOpndStmt</a>(s,opnds,<a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a>::<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a610d6662d1814cffbf23db29e7e620c0">Cmp</a>), predicate(pre)</div><div class="line"><a name="l00799"></a><span class="lineno"> 799</span>&#160; {</div><div class="line"><a name="l00800"></a><span class="lineno"> 800</span>&#160; }</div><div class="line"><a name="l00801"></a><span class="lineno"> 801</span>&#160;</div><div class="line"><a name="l00802"></a><span class="lineno"><a class="line" href="classSVF_1_1CmpStmt.html#aa6a21fb1cfbc263bb38651176c495632"> 802</a></span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1CmpStmt.html#aa6a21fb1cfbc263bb38651176c495632">getPredicate</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00803"></a><span class="lineno"> 803</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00804"></a><span class="lineno"> 804</span>&#160; <span class="keywordflow">return</span> predicate;</div><div class="line"><a name="l00805"></a><span class="lineno"> 805</span>&#160; }</div><div class="line"><a name="l00806"></a><span class="lineno"> 806</span>&#160; </div><div class="line"><a name="l00807"></a><span class="lineno"> 807</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> std::string <a class="code" href="classSVF_1_1SVFStmt.html#ad0b4dbe87e009518f22360c48b0d0c22">toString</a>() <span class="keyword">const override</span>;</div><div class="line"><a name="l00808"></a><span class="lineno"> 808</span>&#160;};</div><div class="line"><a name="l00809"></a><span class="lineno"> 809</span>&#160;</div><div class="line"><a name="l00810"></a><span class="lineno"> 810</span>&#160;</div><div class="line"><a name="l00814"></a><span class="lineno"><a class="line" href="classSVF_1_1BinaryOPStmt.html"> 814</a></span>&#160;<span class="keyword">class </span><a class="code" href="classSVF_1_1BinaryOPStmt.html">BinaryOPStmt</a>: <span class="keyword">public</span> <a class="code" href="classSVF_1_1MultiOpndStmt.html">MultiOpndStmt</a></div><div class="line"><a name="l00815"></a><span class="lineno"> 815</span>&#160;{</div><div class="line"><a name="l00816"></a><span class="lineno"> 816</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00817"></a><span class="lineno"> 817</span>&#160; <a class="code" href="classSVF_1_1BinaryOPStmt.html">BinaryOPStmt</a>(); </div><div class="line"><a name="l00818"></a><span class="lineno"> 818</span>&#160; <a class="code" href="classSVF_1_1BinaryOPStmt.html">BinaryOPStmt</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html">BinaryOPStmt</a> &amp;); </div><div class="line"><a name="l00819"></a><span class="lineno"> 819</span>&#160; <span class="keywordtype">void</span> operator=(<span class="keyword">const</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html">BinaryOPStmt</a> &amp;); </div><div class="line"><a name="l00820"></a><span class="lineno"><a class="line" href="classSVF_1_1BinaryOPStmt.html#a0c4f900cf7321e8385b4f45e5cba3d1a"> 820</a></span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a0c4f900cf7321e8385b4f45e5cba3d1a">opcode</a>;</div><div class="line"><a name="l00821"></a><span class="lineno"> 821</span>&#160;</div><div class="line"><a name="l00822"></a><span class="lineno"> 822</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00824"></a><span class="lineno"> 824</span>&#160;</div><div class="line"><a name="l00825"></a><span class="lineno"><a class="line" href="classSVF_1_1BinaryOPStmt.html#ab5a0f41455474643e8dd97aaab0aaab5"> 825</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#ab5a0f41455474643e8dd97aaab0aaab5">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html">BinaryOPStmt</a> *)</div><div class="line"><a name="l00826"></a><span class="lineno"> 826</span>&#160; {</div><div class="line"><a name="l00827"></a><span class="lineno"> 827</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00828"></a><span class="lineno"> 828</span>&#160; }</div><div class="line"><a name="l00829"></a><span class="lineno"><a class="line" href="classSVF_1_1BinaryOPStmt.html#abc24c2d50b164a637ad0cec371cb7e63"> 829</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#abc24c2d50b164a637ad0cec371cb7e63">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a> *edge)</div><div class="line"><a name="l00830"></a><span class="lineno"> 830</span>&#160; {</div><div class="line"><a name="l00831"></a><span class="lineno"> 831</span>&#160; <span class="keywordflow">return</span> edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad58f5e59c55e1ffd23b83d16224fed13">SVFStmt::BinaryOp</a>;</div><div class="line"><a name="l00832"></a><span class="lineno"> 832</span>&#160; }</div><div class="line"><a name="l00833"></a><span class="lineno"><a class="line" href="classSVF_1_1BinaryOPStmt.html#a7cae2a90a33225c90eb035cf9e663d3d"> 833</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a7cae2a90a33225c90eb035cf9e663d3d">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1MultiOpndStmt.html">MultiOpndStmt</a> *edge)</div><div class="line"><a name="l00834"></a><span class="lineno"> 834</span>&#160; {</div><div class="line"><a name="l00835"></a><span class="lineno"> 835</span>&#160; <span class="keywordflow">return</span> edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad58f5e59c55e1ffd23b83d16224fed13">SVFStmt::BinaryOp</a>;</div><div class="line"><a name="l00836"></a><span class="lineno"> 836</span>&#160; }</div><div class="line"><a name="l00837"></a><span class="lineno"><a class="line" href="classSVF_1_1BinaryOPStmt.html#ac8831079a5a9c6d50fbd09ff545e7cfd"> 837</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#ac8831079a5a9c6d50fbd09ff545e7cfd">classof</a>(<span class="keyword">const</span> GenericPAGEdgeTy *edge)</div><div class="line"><a name="l00838"></a><span class="lineno"> 838</span>&#160; {</div><div class="line"><a name="l00839"></a><span class="lineno"> 839</span>&#160; <span class="keywordflow">return</span> edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad58f5e59c55e1ffd23b83d16224fed13">SVFStmt::BinaryOp</a>;</div><div class="line"><a name="l00840"></a><span class="lineno"> 840</span>&#160; }</div><div class="line"><a name="l00842"></a><span class="lineno"> 842</span>&#160;</div><div class="line"><a name="l00844"></a><span class="lineno"><a class="line" href="classSVF_1_1BinaryOPStmt.html#a7470a2412985bbb227bb62d8a297b7f1"> 844</a></span>&#160; <a class="code" href="classSVF_1_1BinaryOPStmt.html#a7470a2412985bbb227bb62d8a297b7f1">BinaryOPStmt</a>(<a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* s, <span class="keyword">const</span> <a class="code" href="classSVF_1_1MultiOpndStmt.html#acf8c7cfbf1c8baab672040635bb9a007">OPVars</a>&amp; opnds, <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> oc) : <a class="code" href="classSVF_1_1MultiOpndStmt.html">MultiOpndStmt</a>(s,opnds,<a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a>::<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad58f5e59c55e1ffd23b83d16224fed13">BinaryOp</a>), opcode(oc)</div><div class="line"><a name="l00845"></a><span class="lineno"> 845</span>&#160; {</div><div class="line"><a name="l00846"></a><span class="lineno"> 846</span>&#160; }</div><div class="line"><a name="l00847"></a><span class="lineno"> 847</span>&#160;</div><div class="line"><a name="l00848"></a><span class="lineno"><a class="line" href="classSVF_1_1BinaryOPStmt.html#ad0a7c5e87355d7a83176343322db448f"> 848</a></span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1BinaryOPStmt.html#ad0a7c5e87355d7a83176343322db448f">getOpcode</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00849"></a><span class="lineno"> 849</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00850"></a><span class="lineno"> 850</span>&#160; <span class="keywordflow">return</span> opcode;</div><div class="line"><a name="l00851"></a><span class="lineno"> 851</span>&#160; }</div><div class="line"><a name="l00852"></a><span class="lineno"> 852</span>&#160;</div><div class="line"><a name="l00853"></a><span class="lineno"> 853</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> std::string <a class="code" href="classSVF_1_1SVFStmt.html#ad0b4dbe87e009518f22360c48b0d0c22">toString</a>() <span class="keyword">const override</span>;</div><div class="line"><a name="l00854"></a><span class="lineno"> 854</span>&#160;};</div><div class="line"><a name="l00855"></a><span class="lineno"> 855</span>&#160;</div><div class="line"><a name="l00859"></a><span class="lineno"><a class="line" href="classSVF_1_1UnaryOPStmt.html"> 859</a></span>&#160;<span class="keyword">class </span><a class="code" href="classSVF_1_1UnaryOPStmt.html">UnaryOPStmt</a>: <span class="keyword">public</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a></div><div class="line"><a name="l00860"></a><span class="lineno"> 860</span>&#160;{</div><div class="line"><a name="l00861"></a><span class="lineno"> 861</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00862"></a><span class="lineno"> 862</span>&#160; <a class="code" href="classSVF_1_1UnaryOPStmt.html">UnaryOPStmt</a>(); </div><div class="line"><a name="l00863"></a><span class="lineno"> 863</span>&#160; <a class="code" href="classSVF_1_1UnaryOPStmt.html">UnaryOPStmt</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1UnaryOPStmt.html">UnaryOPStmt</a> &amp;); </div><div class="line"><a name="l00864"></a><span class="lineno"> 864</span>&#160; <span class="keywordtype">void</span> operator=(<span class="keyword">const</span> <a class="code" href="classSVF_1_1UnaryOPStmt.html">UnaryOPStmt</a> &amp;); </div><div class="line"><a name="l00865"></a><span class="lineno"> 865</span>&#160; <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* <a class="code" href="classSVF_1_1GenericEdge.html#ab47ca533c415841ef75456cbad439589">getSrcNode</a>(); </div><div class="line"><a name="l00866"></a><span class="lineno"> 866</span>&#160; <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* <a class="code" href="classSVF_1_1GenericEdge.html#aeaa31a2c8479e831b36ce2e2582ceb86">getDstNode</a>(); </div><div class="line"><a name="l00867"></a><span class="lineno"> 867</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1GenericEdge.html#ae6792506a0150a9400d635eceab7f9e7">getSrcID</a>(); </div><div class="line"><a name="l00868"></a><span class="lineno"> 868</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1GenericEdge.html#ad9edb45e74ae675d9da82f5acf02d56e">getDstID</a>(); </div><div class="line"><a name="l00869"></a><span class="lineno"> 869</span>&#160;</div><div class="line"><a name="l00870"></a><span class="lineno"><a class="line" href="classSVF_1_1UnaryOPStmt.html#a099df135a83d28a2e6f344e008fe1cc6"> 870</a></span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1UnaryOPStmt.html#a099df135a83d28a2e6f344e008fe1cc6">opcode</a>;</div><div class="line"><a name="l00871"></a><span class="lineno"> 871</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00873"></a><span class="lineno"> 873</span>&#160;</div><div class="line"><a name="l00874"></a><span class="lineno"><a class="line" href="classSVF_1_1UnaryOPStmt.html#abb10688145fa76629916ec3df61b6c95"> 874</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1UnaryOPStmt.html#abb10688145fa76629916ec3df61b6c95">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1UnaryOPStmt.html">UnaryOPStmt</a> *)</div><div class="line"><a name="l00875"></a><span class="lineno"> 875</span>&#160; {</div><div class="line"><a name="l00876"></a><span class="lineno"> 876</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00877"></a><span class="lineno"> 877</span>&#160; }</div><div class="line"><a name="l00878"></a><span class="lineno"><a class="line" href="classSVF_1_1UnaryOPStmt.html#a2a4b7e3a4c5be8a253b542f144f830b7"> 878</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1UnaryOPStmt.html#a2a4b7e3a4c5be8a253b542f144f830b7">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a> *edge)</div><div class="line"><a name="l00879"></a><span class="lineno"> 879</span>&#160; {</div><div class="line"><a name="l00880"></a><span class="lineno"> 880</span>&#160; <span class="keywordflow">return</span> edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad2a5e6fe0f2b5fefb53abb9e91c57688">SVFStmt::UnaryOp</a>;</div><div class="line"><a name="l00881"></a><span class="lineno"> 881</span>&#160; }</div><div class="line"><a name="l00882"></a><span class="lineno"><a class="line" href="classSVF_1_1UnaryOPStmt.html#add29b76e0ef73da2606bac97f74a7896"> 882</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1UnaryOPStmt.html#add29b76e0ef73da2606bac97f74a7896">classof</a>(<span class="keyword">const</span> GenericPAGEdgeTy *edge)</div><div class="line"><a name="l00883"></a><span class="lineno"> 883</span>&#160; {</div><div class="line"><a name="l00884"></a><span class="lineno"> 884</span>&#160; <span class="keywordflow">return</span> edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad2a5e6fe0f2b5fefb53abb9e91c57688">SVFStmt::UnaryOp</a>;</div><div class="line"><a name="l00885"></a><span class="lineno"> 885</span>&#160; }</div><div class="line"><a name="l00887"></a><span class="lineno"> 887</span>&#160;</div><div class="line"><a name="l00889"></a><span class="lineno"><a class="line" href="classSVF_1_1UnaryOPStmt.html#a2b91333ac3d4b5e1099590aeb15d38ba"> 889</a></span>&#160; <a class="code" href="classSVF_1_1UnaryOPStmt.html#a2b91333ac3d4b5e1099590aeb15d38ba">UnaryOPStmt</a>(<a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* s, <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* d, <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> oc) : <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a>(s,d,<a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a>::<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad2a5e6fe0f2b5fefb53abb9e91c57688">UnaryOp</a>), opcode(oc)</div><div class="line"><a name="l00890"></a><span class="lineno"> 890</span>&#160; {</div><div class="line"><a name="l00891"></a><span class="lineno"> 891</span>&#160; }</div><div class="line"><a name="l00892"></a><span class="lineno"> 892</span>&#160;</div><div class="line"><a name="l00893"></a><span class="lineno"><a class="line" href="classSVF_1_1UnaryOPStmt.html#af29723d5e777b10d53d48263a786f5b6"> 893</a></span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1UnaryOPStmt.html#af29723d5e777b10d53d48263a786f5b6">getOpcode</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00894"></a><span class="lineno"> 894</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00895"></a><span class="lineno"> 895</span>&#160; <span class="keywordflow">return</span> opcode;</div><div class="line"><a name="l00896"></a><span class="lineno"> 896</span>&#160; }</div><div class="line"><a name="l00897"></a><span class="lineno"><a class="line" href="classSVF_1_1UnaryOPStmt.html#abde2b32d5bbd37df0e194b1a4e78483b"> 897</a></span>&#160; <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* <a class="code" href="classSVF_1_1UnaryOPStmt.html#abde2b32d5bbd37df0e194b1a4e78483b">getOpVar</a>()<span class="keyword"> const</span>{</div><div class="line"><a name="l00898"></a><span class="lineno"> 898</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1GenericEdge.html#ab47ca533c415841ef75456cbad439589">SVFStmt::getSrcNode</a>();</div><div class="line"><a name="l00899"></a><span class="lineno"> 899</span>&#160; }</div><div class="line"><a name="l00900"></a><span class="lineno"><a class="line" href="classSVF_1_1UnaryOPStmt.html#a919db9b8c9287c3802f563840b56c4f1"> 900</a></span>&#160; <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* <a class="code" href="classSVF_1_1UnaryOPStmt.html#a919db9b8c9287c3802f563840b56c4f1">getRes</a>()<span class="keyword"> const</span>{</div><div class="line"><a name="l00901"></a><span class="lineno"> 901</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1GenericEdge.html#aeaa31a2c8479e831b36ce2e2582ceb86">SVFStmt::getDstNode</a>();</div><div class="line"><a name="l00902"></a><span class="lineno"> 902</span>&#160; }</div><div class="line"><a name="l00903"></a><span class="lineno"> 903</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> getOpVarID() <span class="keyword">const</span>;</div><div class="line"><a name="l00904"></a><span class="lineno"> 904</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> getResID() <span class="keyword">const</span>;</div><div class="line"><a name="l00905"></a><span class="lineno"> 905</span>&#160;</div><div class="line"><a name="l00906"></a><span class="lineno"> 906</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> std::string <a class="code" href="classSVF_1_1SVFStmt.html#ad0b4dbe87e009518f22360c48b0d0c22">toString</a>() <span class="keyword">const override</span>;</div><div class="line"><a name="l00907"></a><span class="lineno"> 907</span>&#160;};</div><div class="line"><a name="l00908"></a><span class="lineno"> 908</span>&#160;</div><div class="line"><a name="l00909"></a><span class="lineno"> 909</span>&#160;</div><div class="line"><a name="l00913"></a><span class="lineno"><a class="line" href="classSVF_1_1BranchStmt.html"> 913</a></span>&#160;<span class="keyword">class </span><a class="code" href="classSVF_1_1BranchStmt.html">BranchStmt</a>: <span class="keyword">public</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a></div><div class="line"><a name="l00914"></a><span class="lineno"> 914</span>&#160;{</div><div class="line"><a name="l00915"></a><span class="lineno"> 915</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00916"></a><span class="lineno"> 916</span>&#160; <a class="code" href="classSVF_1_1BranchStmt.html">BranchStmt</a>(); </div><div class="line"><a name="l00917"></a><span class="lineno"> 917</span>&#160; <a class="code" href="classSVF_1_1BranchStmt.html">BranchStmt</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1BranchStmt.html">BranchStmt</a> &amp;); </div><div class="line"><a name="l00918"></a><span class="lineno"> 918</span>&#160; <span class="keywordtype">void</span> operator=(<span class="keyword">const</span> <a class="code" href="classSVF_1_1BranchStmt.html">BranchStmt</a> &amp;); </div><div class="line"><a name="l00919"></a><span class="lineno"> 919</span>&#160; <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* <a class="code" href="classSVF_1_1GenericEdge.html#ab47ca533c415841ef75456cbad439589">getSrcNode</a>(); </div><div class="line"><a name="l00920"></a><span class="lineno"> 920</span>&#160; <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* <a class="code" href="classSVF_1_1GenericEdge.html#aeaa31a2c8479e831b36ce2e2582ceb86">getDstNode</a>(); </div><div class="line"><a name="l00921"></a><span class="lineno"> 921</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1GenericEdge.html#ae6792506a0150a9400d635eceab7f9e7">getSrcID</a>(); </div><div class="line"><a name="l00922"></a><span class="lineno"> 922</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1GenericEdge.html#ad9edb45e74ae675d9da82f5acf02d56e">getDstID</a>(); </div><div class="line"><a name="l00923"></a><span class="lineno"> 923</span>&#160;</div><div class="line"><a name="l00924"></a><span class="lineno"><a class="line" href="classSVF_1_1BranchStmt.html#ad3c41e137cb0dc3ef10cbc6c0f8d475f"> 924</a></span>&#160; std::vector&lt;const ICFGNode*&gt; <a class="code" href="classSVF_1_1BranchStmt.html#ad3c41e137cb0dc3ef10cbc6c0f8d475f">successors</a>;</div><div class="line"><a name="l00925"></a><span class="lineno"><a class="line" href="classSVF_1_1BranchStmt.html#adcf5cabe6e0a87cded5ef1fdf7273f3f"> 925</a></span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* <a class="code" href="classSVF_1_1BranchStmt.html#adcf5cabe6e0a87cded5ef1fdf7273f3f">cond</a>;</div><div class="line"><a name="l00926"></a><span class="lineno"><a class="line" href="classSVF_1_1BranchStmt.html#a33887345c00ffda9ca7dca59d61e184a"> 926</a></span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* <a class="code" href="classSVF_1_1BranchStmt.html#a33887345c00ffda9ca7dca59d61e184a">brInst</a>;</div><div class="line"><a name="l00927"></a><span class="lineno"> 927</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00929"></a><span class="lineno"> 929</span>&#160;</div><div class="line"><a name="l00930"></a><span class="lineno"><a class="line" href="classSVF_1_1BranchStmt.html#a750ffca6648fafedfb271fb90d975847"> 930</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1BranchStmt.html#a750ffca6648fafedfb271fb90d975847">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1BranchStmt.html">BranchStmt</a> *)</div><div class="line"><a name="l00931"></a><span class="lineno"> 931</span>&#160; {</div><div class="line"><a name="l00932"></a><span class="lineno"> 932</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00933"></a><span class="lineno"> 933</span>&#160; }</div><div class="line"><a name="l00934"></a><span class="lineno"><a class="line" href="classSVF_1_1BranchStmt.html#a55b867cd85dbbe43e2f7c1bad5dce647"> 934</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1BranchStmt.html#a55b867cd85dbbe43e2f7c1bad5dce647">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a> *edge)</div><div class="line"><a name="l00935"></a><span class="lineno"> 935</span>&#160; {</div><div class="line"><a name="l00936"></a><span class="lineno"> 936</span>&#160; <span class="keywordflow">return</span> edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad52703e3ec09b6a4f565e5d82279b6a3">SVFStmt::Branch</a>;</div><div class="line"><a name="l00937"></a><span class="lineno"> 937</span>&#160; }</div><div class="line"><a name="l00938"></a><span class="lineno"><a class="line" href="classSVF_1_1BranchStmt.html#adf97a239f15b635580cef475980e8d82"> 938</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1BranchStmt.html#adf97a239f15b635580cef475980e8d82">classof</a>(<span class="keyword">const</span> GenericPAGEdgeTy *edge)</div><div class="line"><a name="l00939"></a><span class="lineno"> 939</span>&#160; {</div><div class="line"><a name="l00940"></a><span class="lineno"> 940</span>&#160; <span class="keywordflow">return</span> edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad52703e3ec09b6a4f565e5d82279b6a3">SVFStmt::Branch</a>;</div><div class="line"><a name="l00941"></a><span class="lineno"> 941</span>&#160; }</div><div class="line"><a name="l00943"></a><span class="lineno"> 943</span>&#160;</div><div class="line"><a name="l00945"></a><span class="lineno"><a class="line" href="classSVF_1_1BranchStmt.html#a4aa3e5dfaa7354345ae878115621a8a9"> 945</a></span>&#160; <a class="code" href="classSVF_1_1BranchStmt.html#a4aa3e5dfaa7354345ae878115621a8a9">BranchStmt</a>(<a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* inst, <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* c, <span class="keyword">const</span> std::vector&lt;const ICFGNode*&gt;&amp; succs) : <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a>(c,inst,<a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a>::<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad52703e3ec09b6a4f565e5d82279b6a3">Branch</a>), successors(succs), cond(c), brInst(inst)</div><div class="line"><a name="l00946"></a><span class="lineno"> 946</span>&#160; {</div><div class="line"><a name="l00947"></a><span class="lineno"> 947</span>&#160; }</div><div class="line"><a name="l00948"></a><span class="lineno"> 948</span>&#160;</div><div class="line"><a name="l00950"></a><span class="lineno"> 950</span>&#160; <span class="keywordtype">bool</span> isUnconditional() <span class="keyword">const</span>;</div><div class="line"><a name="l00952"></a><span class="lineno"> 952</span>&#160; <span class="keywordtype">bool</span> isConditional() <span class="keyword">const</span>;</div><div class="line"><a name="l00954"></a><span class="lineno"> 954</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* getCondition() <span class="keyword">const</span>;</div><div class="line"><a name="l00955"></a><span class="lineno"><a class="line" href="classSVF_1_1BranchStmt.html#a2c6fe09027838f9e0ad9ab8193ce8e9b"> 955</a></span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* <a class="code" href="classSVF_1_1BranchStmt.html#a2c6fe09027838f9e0ad9ab8193ce8e9b">getBranchInst</a>()<span class="keyword"> const</span>{</div><div class="line"><a name="l00956"></a><span class="lineno"> 956</span>&#160; <span class="keywordflow">return</span> brInst;</div><div class="line"><a name="l00957"></a><span class="lineno"> 957</span>&#160; }</div><div class="line"><a name="l00960"></a><span class="lineno"><a class="line" href="classSVF_1_1BranchStmt.html#a022d355bde3d0d0a9471cd125b24583b"> 960</a></span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1BranchStmt.html#a022d355bde3d0d0a9471cd125b24583b">getNumSuccessors</a>()<span class="keyword"> const</span>{</div><div class="line"><a name="l00961"></a><span class="lineno"> 961</span>&#160; <span class="keywordflow">return</span> successors.size();</div><div class="line"><a name="l00962"></a><span class="lineno"> 962</span>&#160; }</div><div class="line"><a name="l00963"></a><span class="lineno"><a class="line" href="classSVF_1_1BranchStmt.html#ae3aecc257d37c20084633027cb312faa"> 963</a></span>&#160; <span class="keyword">const</span> std::vector&lt;const ICFGNode*&gt;&amp; <a class="code" href="classSVF_1_1BranchStmt.html#ae3aecc257d37c20084633027cb312faa">getSuccessors</a>()<span class="keyword"> const</span>{</div><div class="line"><a name="l00964"></a><span class="lineno"> 964</span>&#160; <span class="keywordflow">return</span> successors;</div><div class="line"><a name="l00965"></a><span class="lineno"> 965</span>&#160; }</div><div class="line"><a name="l00966"></a><span class="lineno"><a class="line" href="classSVF_1_1BranchStmt.html#a7d9a6ebb2d95942c453864b5327b1ae8"> 966</a></span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1ICFGNode.html">ICFGNode</a>* <a class="code" href="classSVF_1_1BranchStmt.html#a7d9a6ebb2d95942c453864b5327b1ae8">getSuccessor</a> (<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> i)<span class="keyword"> const</span>{</div><div class="line"><a name="l00967"></a><span class="lineno"> 967</span>&#160; <span class="keywordflow">return</span> successors.at(i);</div><div class="line"><a name="l00968"></a><span class="lineno"> 968</span>&#160; }</div><div class="line"><a name="l00970"></a><span class="lineno"> 970</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> std::string <a class="code" href="classSVF_1_1SVFStmt.html#ad0b4dbe87e009518f22360c48b0d0c22">toString</a>() <span class="keyword">const override</span>;</div><div class="line"><a name="l00971"></a><span class="lineno"> 971</span>&#160;};</div><div class="line"><a name="l00972"></a><span class="lineno"> 972</span>&#160;</div><div class="line"><a name="l00973"></a><span class="lineno"> 973</span>&#160;</div><div class="line"><a name="l00977"></a><span class="lineno"><a class="line" href="classSVF_1_1TDForkPE.html"> 977</a></span>&#160;<span class="keyword">class </span><a class="code" href="classSVF_1_1TDForkPE.html">TDForkPE</a>: <span class="keyword">public</span> <a class="code" href="classSVF_1_1CallPE.html">CallPE</a></div><div class="line"><a name="l00978"></a><span class="lineno"> 978</span>&#160;{</div><div class="line"><a name="l00979"></a><span class="lineno"> 979</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00980"></a><span class="lineno"> 980</span>&#160; <a class="code" href="classSVF_1_1TDForkPE.html">TDForkPE</a>(); </div><div class="line"><a name="l00981"></a><span class="lineno"> 981</span>&#160; <a class="code" href="classSVF_1_1TDForkPE.html">TDForkPE</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1TDForkPE.html">TDForkPE</a> &amp;); </div><div class="line"><a name="l00982"></a><span class="lineno"> 982</span>&#160; <span class="keywordtype">void</span> operator=(<span class="keyword">const</span> <a class="code" href="classSVF_1_1TDForkPE.html">TDForkPE</a> &amp;); </div><div class="line"><a name="l00983"></a><span class="lineno"> 983</span>&#160;</div><div class="line"><a name="l00984"></a><span class="lineno"> 984</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00986"></a><span class="lineno"> 986</span>&#160;</div><div class="line"><a name="l00987"></a><span class="lineno"><a class="line" href="classSVF_1_1TDForkPE.html#a79317f2ac92ace129a1ccf802406498d"> 987</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1TDForkPE.html#a79317f2ac92ace129a1ccf802406498d">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1TDForkPE.html">TDForkPE</a> *)</div><div class="line"><a name="l00988"></a><span class="lineno"> 988</span>&#160; {</div><div class="line"><a name="l00989"></a><span class="lineno"> 989</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00990"></a><span class="lineno"> 990</span>&#160; }</div><div class="line"><a name="l00991"></a><span class="lineno"><a class="line" href="classSVF_1_1TDForkPE.html#a68f16df5a9b44dd2492c33fb0a1b5f0c"> 991</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1TDForkPE.html#a68f16df5a9b44dd2492c33fb0a1b5f0c">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a> *edge)</div><div class="line"><a name="l00992"></a><span class="lineno"> 992</span>&#160; {</div><div class="line"><a name="l00993"></a><span class="lineno"> 993</span>&#160; <span class="keywordflow">return</span> edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a375b956af2119d7abca8f1995f7701fd">SVFStmt::ThreadFork</a>;</div><div class="line"><a name="l00994"></a><span class="lineno"> 994</span>&#160; }</div><div class="line"><a name="l00995"></a><span class="lineno"><a class="line" href="classSVF_1_1TDForkPE.html#a9e160158fe61958bcd6ef2a7da559018"> 995</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1TDForkPE.html#a9e160158fe61958bcd6ef2a7da559018">classof</a>(<span class="keyword">const</span> GenericPAGEdgeTy *edge)</div><div class="line"><a name="l00996"></a><span class="lineno"> 996</span>&#160; {</div><div class="line"><a name="l00997"></a><span class="lineno"> 997</span>&#160; <span class="keywordflow">return</span> edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a375b956af2119d7abca8f1995f7701fd">SVFStmt::ThreadFork</a>;</div><div class="line"><a name="l00998"></a><span class="lineno"> 998</span>&#160; }</div><div class="line"><a name="l01000"></a><span class="lineno"> 1000</span>&#160;</div><div class="line"><a name="l01002"></a><span class="lineno"><a class="line" href="classSVF_1_1TDForkPE.html#ab9b4bb3ea203b7c444fad6187fe77682"> 1002</a></span>&#160; <a class="code" href="classSVF_1_1TDForkPE.html#ab9b4bb3ea203b7c444fad6187fe77682">TDForkPE</a>(<a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* s, <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* d, <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallBlockNode.html">CallBlockNode</a>* i) :</div><div class="line"><a name="l01003"></a><span class="lineno"> 1003</span>&#160; <a class="code" href="classSVF_1_1CallPE.html">CallPE</a>(s,d,i,<a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a>::<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a375b956af2119d7abca8f1995f7701fd">ThreadFork</a>)</div><div class="line"><a name="l01004"></a><span class="lineno"> 1004</span>&#160; {</div><div class="line"><a name="l01005"></a><span class="lineno"> 1005</span>&#160; }</div><div class="line"><a name="l01006"></a><span class="lineno"> 1006</span>&#160;</div><div class="line"><a name="l01007"></a><span class="lineno"> 1007</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> std::string <a class="code" href="classSVF_1_1SVFStmt.html#ad0b4dbe87e009518f22360c48b0d0c22">toString</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l01008"></a><span class="lineno"> 1008</span>&#160;};</div><div class="line"><a name="l01009"></a><span class="lineno"> 1009</span>&#160;</div><div class="line"><a name="l01010"></a><span class="lineno"> 1010</span>&#160;</div><div class="line"><a name="l01011"></a><span class="lineno"> 1011</span>&#160;</div><div class="line"><a name="l01015"></a><span class="lineno"><a class="line" href="classSVF_1_1TDJoinPE.html"> 1015</a></span>&#160;<span class="keyword">class </span><a class="code" href="classSVF_1_1TDJoinPE.html">TDJoinPE</a>: <span class="keyword">public</span> <a class="code" href="classSVF_1_1RetPE.html">RetPE</a></div><div class="line"><a name="l01016"></a><span class="lineno"> 1016</span>&#160;{</div><div class="line"><a name="l01017"></a><span class="lineno"> 1017</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l01018"></a><span class="lineno"> 1018</span>&#160; <a class="code" href="classSVF_1_1TDJoinPE.html">TDJoinPE</a>(); </div><div class="line"><a name="l01019"></a><span class="lineno"> 1019</span>&#160; <a class="code" href="classSVF_1_1TDJoinPE.html">TDJoinPE</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1TDJoinPE.html">TDJoinPE</a> &amp;); </div><div class="line"><a name="l01020"></a><span class="lineno"> 1020</span>&#160; <span class="keywordtype">void</span> operator=(<span class="keyword">const</span> <a class="code" href="classSVF_1_1TDJoinPE.html">TDJoinPE</a> &amp;); </div><div class="line"><a name="l01021"></a><span class="lineno"> 1021</span>&#160;</div><div class="line"><a name="l01022"></a><span class="lineno"> 1022</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l01024"></a><span class="lineno"> 1024</span>&#160;</div><div class="line"><a name="l01025"></a><span class="lineno"><a class="line" href="classSVF_1_1TDJoinPE.html#ace17257476d0ee089a9f9cb8dc63e3f2"> 1025</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1TDJoinPE.html#ace17257476d0ee089a9f9cb8dc63e3f2">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1TDJoinPE.html">TDJoinPE</a> *)</div><div class="line"><a name="l01026"></a><span class="lineno"> 1026</span>&#160; {</div><div class="line"><a name="l01027"></a><span class="lineno"> 1027</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l01028"></a><span class="lineno"> 1028</span>&#160; }</div><div class="line"><a name="l01029"></a><span class="lineno"><a class="line" href="classSVF_1_1TDJoinPE.html#a18e24262f5be7835bc830ea410acc19d"> 1029</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1TDJoinPE.html#a18e24262f5be7835bc830ea410acc19d">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a> *edge)</div><div class="line"><a name="l01030"></a><span class="lineno"> 1030</span>&#160; {</div><div class="line"><a name="l01031"></a><span class="lineno"> 1031</span>&#160; <span class="keywordflow">return</span> edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a3c3f8883c2d3b50aef6331d5da97ffb0">SVFStmt::ThreadJoin</a>;</div><div class="line"><a name="l01032"></a><span class="lineno"> 1032</span>&#160; }</div><div class="line"><a name="l01033"></a><span class="lineno"><a class="line" href="classSVF_1_1TDJoinPE.html#a22303af690086961b8d2356b345f882b"> 1033</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1TDJoinPE.html#a22303af690086961b8d2356b345f882b">classof</a>(<span class="keyword">const</span> GenericPAGEdgeTy *edge)</div><div class="line"><a name="l01034"></a><span class="lineno"> 1034</span>&#160; {</div><div class="line"><a name="l01035"></a><span class="lineno"> 1035</span>&#160; <span class="keywordflow">return</span> edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a3c3f8883c2d3b50aef6331d5da97ffb0">SVFStmt::ThreadJoin</a>;</div><div class="line"><a name="l01036"></a><span class="lineno"> 1036</span>&#160; }</div><div class="line"><a name="l01038"></a><span class="lineno"> 1038</span>&#160;</div><div class="line"><a name="l01040"></a><span class="lineno"><a class="line" href="classSVF_1_1TDJoinPE.html#a0f995bd01463f201d7760641275dc33a"> 1040</a></span>&#160; <a class="code" href="classSVF_1_1TDJoinPE.html#a0f995bd01463f201d7760641275dc33a">TDJoinPE</a>(<a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* s, <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* d, <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallBlockNode.html">CallBlockNode</a>* i) :</div><div class="line"><a name="l01041"></a><span class="lineno"> 1041</span>&#160; <a class="code" href="classSVF_1_1RetPE.html">RetPE</a>(s,d,i,<a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a>::<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a3c3f8883c2d3b50aef6331d5da97ffb0">ThreadJoin</a>)</div><div class="line"><a name="l01042"></a><span class="lineno"> 1042</span>&#160; {</div><div class="line"><a name="l01043"></a><span class="lineno"> 1043</span>&#160; }</div><div class="line"><a name="l01044"></a><span class="lineno"> 1044</span>&#160;</div><div class="line"><a name="l01045"></a><span class="lineno"> 1045</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> std::string <a class="code" href="classSVF_1_1SVFStmt.html#ad0b4dbe87e009518f22360c48b0d0c22">toString</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l01046"></a><span class="lineno"> 1046</span>&#160;};</div><div class="line"><a name="l01047"></a><span class="lineno"> 1047</span>&#160;</div><div class="line"><a name="l01048"></a><span class="lineno"> 1048</span>&#160;} <span class="comment">// End namespace SVF</span></div><div class="line"><a name="l01049"></a><span class="lineno"> 1049</span>&#160;</div><div class="line"><a name="l01050"></a><span class="lineno"> 1050</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* PAGEDGE_H_ */</span><span class="preprocessor"></span></div><div class="ttc" id="classSVF_1_1CmpStmt_html_a16a5fddf61f6a13ee34dde0c4267d0e5"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#a16a5fddf61f6a13ee34dde0c4267d0e5">SVF::CmpStmt::classof</a></div><div class="ttdeci">static bool classof(const SVFStmt *edge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00783">SVFStatements.h:783</a></div></div>
70
70
  <div class="ttc" id="classSVF_1_1SVFStmt_html_a793c53e0b4f9a58099c096f0a0856495"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a793c53e0b4f9a58099c096f0a0856495">SVF::SVFStmt::getBB</a></div><div class="ttdeci">const BasicBlock * getBB() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00124">SVFStatements.h:124</a></div></div>
71
- <div class="ttc" id="classSVF_1_1BinaryOPStmt_html_a0c4f900cf7321e8385b4f45e5cba3d1a"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html#a0c4f900cf7321e8385b4f45e5cba3d1a">SVF::BinaryOPStmt::opcode</a></div><div class="ttdeci">u32_t opcode</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00815">SVFStatements.h:815</a></div></div>
71
+ <div class="ttc" id="classSVF_1_1BinaryOPStmt_html_a0c4f900cf7321e8385b4f45e5cba3d1a"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html#a0c4f900cf7321e8385b4f45e5cba3d1a">SVF::BinaryOPStmt::opcode</a></div><div class="ttdeci">u32_t opcode</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00820">SVFStatements.h:820</a></div></div>
72
72
  <div class="ttc" id="classSVF_1_1AddrStmt_html"><div class="ttname"><a href="classSVF_1_1AddrStmt.html">SVF::AddrStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00269">SVFStatements.h:269</a></div></div>
73
73
  <div class="ttc" id="classSVF_1_1CallPE_html_a188c51f3e378c451d34e90c96cca0cf5"><div class="ttname"><a href="classSVF_1_1CallPE.html#a188c51f3e378c451d34e90c96cca0cf5">SVF::CallPE::classof</a></div><div class="ttdeci">static bool classof(const SVFStmt *edge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00557">SVFStatements.h:557</a></div></div>
74
74
  <div class="ttc" id="classSVF_1_1NormalGepStmt_html_a0b2bdc521dbd26cce257d469d9d33a82"><div class="ttname"><a href="classSVF_1_1NormalGepStmt.html#a0b2bdc521dbd26cce257d469d9d33a82">SVF::NormalGepStmt::classof</a></div><div class="ttdeci">static bool classof(const GenericPAGEdgeTy *edge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00481">SVFStatements.h:481</a></div></div>
@@ -76,7 +76,7 @@ $(function() {
76
76
  <div class="ttc" id="classSVF_1_1SVFStmt_html_adb92a92f5c878576dff26cb38eab8c8c"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#adb92a92f5c878576dff26cb38eab8c8c">SVF::SVFStmt::setICFGNode</a></div><div class="ttdeci">void setICFGNode(ICFGNode *node)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00128">SVFStatements.h:128</a></div></div>
77
77
  <div class="ttc" id="classSVF_1_1NormalGepStmt_html_a2609aa1080824b3568856660b11b253e"><div class="ttname"><a href="classSVF_1_1NormalGepStmt.html#a2609aa1080824b3568856660b11b253e">SVF::NormalGepStmt::classof</a></div><div class="ttdeci">static bool classof(const GepStmt *edge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00473">SVFStatements.h:473</a></div></div>
78
78
  <div class="ttc" id="classSVF_1_1GenericEdge_html_abe8525c542def8162b094c169a01993b"><div class="ttname"><a href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">SVF::GenericEdge::getEdgeKind</a></div><div class="ttdeci">GEdgeKind getEdgeKind() const</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00081">GenericGraph.h:81</a></div></div>
79
- <div class="ttc" id="classSVF_1_1TDForkPE_html_ab9b4bb3ea203b7c444fad6187fe77682"><div class="ttname"><a href="classSVF_1_1TDForkPE.html#ab9b4bb3ea203b7c444fad6187fe77682">SVF::TDForkPE::TDForkPE</a></div><div class="ttdeci">TDForkPE(SVFVar *s, SVFVar *d, const CallBlockNode *i)</div><div class="ttdoc">constructor </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00997">SVFStatements.h:997</a></div></div>
79
+ <div class="ttc" id="classSVF_1_1TDForkPE_html_ab9b4bb3ea203b7c444fad6187fe77682"><div class="ttname"><a href="classSVF_1_1TDForkPE.html#ab9b4bb3ea203b7c444fad6187fe77682">SVF::TDForkPE::TDForkPE</a></div><div class="ttdeci">TDForkPE(SVFVar *s, SVFVar *d, const CallBlockNode *i)</div><div class="ttdoc">constructor </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l01002">SVFStatements.h:1002</a></div></div>
80
80
  <div class="ttc" id="classSVF_1_1AssignStmt_html_a4f94b6731f324e44fc4d4e06d7acdbf7"><div class="ttname"><a href="classSVF_1_1AssignStmt.html#a4f94b6731f324e44fc4d4e06d7acdbf7">SVF::AssignStmt::classof</a></div><div class="ttdeci">static bool classof(const AssignStmt *)</div><div class="ttdoc">Methods for support type inquiry through isa, cast, and dyn_cast: </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00218">SVFStatements.h:218</a></div></div>
81
81
  <div class="ttc" id="classSVF_1_1PhiStmt_html_a904591799ce401e8d3ee6aa634325ba3"><div class="ttname"><a href="classSVF_1_1PhiStmt.html#a904591799ce401e8d3ee6aa634325ba3">SVF::PhiStmt::classof</a></div><div class="ttdeci">static bool classof(const GenericPAGEdgeTy *edge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00743">SVFStatements.h:743</a></div></div>
82
82
  <div class="ttc" id="classSVF_1_1SVFStmt_html_a2bdfa37167b5496629e5cae62705d5f2"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a2bdfa37167b5496629e5cae62705d5f2">SVF::SVFStmt::PAGEdgeSetTy</a></div><div class="ttdeci">SVFStmtSetTy PAGEdgeSetTy</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00181">SVFStatements.h:181</a></div></div>
@@ -85,15 +85,15 @@ $(function() {
85
85
  <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#l00703">SVFStatements.h:703</a></div></div>
86
86
  <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>
87
87
  <div class="ttc" id="classSVF_1_1RetPE_html_a03739021e33640699ab54220c9a7f16d"><div class="ttname"><a href="classSVF_1_1RetPE.html#a03739021e33640699ab54220c9a7f16d">SVF::RetPE::RetPE</a></div><div class="ttdeci">RetPE(SVFVar *s, SVFVar *d, const CallBlockNode *i, GEdgeKind k=SVFStmt::Ret)</div><div class="ttdoc">constructor </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00622">SVFStatements.h:622</a></div></div>
88
- <div class="ttc" id="classSVF_1_1BranchStmt_html_adcf5cabe6e0a87cded5ef1fdf7273f3f"><div class="ttname"><a href="classSVF_1_1BranchStmt.html#adcf5cabe6e0a87cded5ef1fdf7273f3f">SVF::BranchStmt::cond</a></div><div class="ttdeci">const SVFVar * cond</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00920">SVFStatements.h:920</a></div></div>
89
- <div class="ttc" id="classSVF_1_1UnaryOPStmt_html_af29723d5e777b10d53d48263a786f5b6"><div class="ttname"><a href="classSVF_1_1UnaryOPStmt.html#af29723d5e777b10d53d48263a786f5b6">SVF::UnaryOPStmt::getOpcode</a></div><div class="ttdeci">u32_t getOpcode() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00888">SVFStatements.h:888</a></div></div>
88
+ <div class="ttc" id="classSVF_1_1BranchStmt_html_adcf5cabe6e0a87cded5ef1fdf7273f3f"><div class="ttname"><a href="classSVF_1_1BranchStmt.html#adcf5cabe6e0a87cded5ef1fdf7273f3f">SVF::BranchStmt::cond</a></div><div class="ttdeci">const SVFVar * cond</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00925">SVFStatements.h:925</a></div></div>
89
+ <div class="ttc" id="classSVF_1_1UnaryOPStmt_html_af29723d5e777b10d53d48263a786f5b6"><div class="ttname"><a href="classSVF_1_1UnaryOPStmt.html#af29723d5e777b10d53d48263a786f5b6">SVF::UnaryOPStmt::getOpcode</a></div><div class="ttdeci">u32_t getOpcode() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00893">SVFStatements.h:893</a></div></div>
90
90
  <div class="ttc" id="classSVF_1_1LoadStmt_html_ab30f370a8a2a3e63765c1e4843f07826"><div class="ttname"><a href="classSVF_1_1LoadStmt.html#ab30f370a8a2a3e63765c1e4843f07826">SVF::LoadStmt::classof</a></div><div class="ttdeci">static bool classof(const GenericPAGEdgeTy *edge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00394">SVFStatements.h:394</a></div></div>
91
91
  <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>
92
92
  <div class="ttc" id="classSVF_1_1AddrStmt_html_a32e129c9f7aa16be8c5c8569989f691f"><div class="ttname"><a href="classSVF_1_1AddrStmt.html#a32e129c9f7aa16be8c5c8569989f691f">SVF::AddrStmt::classof</a></div><div class="ttdeci">static bool classof(const AddrStmt *)</div><div class="ttdoc">Methods for support type inquiry through isa, cast, and dyn_cast: </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00279">SVFStatements.h:279</a></div></div>
93
93
  <div class="ttc" id="namespaceSVF_html_a23bf614858f168b6ad76e0233cec9965"><div class="ttname"><a href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">SVF::BasicBlock</a></div><div class="ttdeci">llvm::BasicBlock BasicBlock</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00077">BasicTypes.h:77</a></div></div>
94
94
  <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>
95
95
  <div class="ttc" id="namespaceSVF_html_a424cc053c29ad7303699c529d1a2cc71"><div class="ttname"><a href="namespaceSVF.html#a424cc053c29ad7303699c529d1a2cc71">SVF::raw_ostream</a></div><div class="ttdeci">llvm::raw_ostream raw_ostream</div><div class="ttdoc">LLVM outputs. </div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00099">BasicTypes.h:99</a></div></div>
96
- <div class="ttc" id="classSVF_1_1BinaryOPStmt_html_a7cae2a90a33225c90eb035cf9e663d3d"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html#a7cae2a90a33225c90eb035cf9e663d3d">SVF::BinaryOPStmt::classof</a></div><div class="ttdeci">static bool classof(const MultiOpndStmt *edge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00828">SVFStatements.h:828</a></div></div>
96
+ <div class="ttc" id="classSVF_1_1BinaryOPStmt_html_a7cae2a90a33225c90eb035cf9e663d3d"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html#a7cae2a90a33225c90eb035cf9e663d3d">SVF::BinaryOPStmt::classof</a></div><div class="ttdeci">static bool classof(const MultiOpndStmt *edge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00833">SVFStatements.h:833</a></div></div>
97
97
  <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>
98
98
  <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>
99
99
  <div class="ttc" id="classSVF_1_1SVFStmt_html_aa809a57c8cdaaa35dfc3cc0f3b33b52b"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#aa809a57c8cdaaa35dfc3cc0f3b33b52b">SVF::SVFStmt::getICFGNode</a></div><div class="ttdeci">ICFGNode * getICFGNode() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00132">SVFStatements.h:132</a></div></div>
@@ -101,32 +101,32 @@ $(function() {
101
101
  <div class="ttc" id="classSVF_1_1RetPE_html_a1495bfc171fa21980712f1d729a6b175"><div class="ttname"><a href="classSVF_1_1RetPE.html#a1495bfc171fa21980712f1d729a6b175">SVF::RetPE::getCallSite</a></div><div class="ttdeci">const CallBlockNode * getCallSite() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00633">SVFStatements.h:633</a></div></div>
102
102
  <div class="ttc" id="classSVF_1_1SVFStmt_html_a53b7e0d8666e37c23dc2c7d0fc931f27"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a53b7e0d8666e37c23dc2c7d0fc931f27">SVF::SVFStmt::storeEdgeLabelCounter</a></div><div class="ttdeci">static u64_t storeEdgeLabelCounter</div><div class="ttdoc">Store Instruction counter. </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00189">SVFStatements.h:189</a></div></div>
103
103
  <div class="ttc" id="classSVF_1_1MultiOpndStmt_html_a00a14ad8f49912b876fd9d729fea4601"><div class="ttname"><a href="classSVF_1_1MultiOpndStmt.html#a00a14ad8f49912b876fd9d729fea4601">SVF::MultiOpndStmt::getRes</a></div><div class="ttdeci">const SVFVar * getRes() const</div><div class="ttdoc">Result SVFVar. </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00691">SVFStatements.h:691</a></div></div>
104
- <div class="ttc" id="classSVF_1_1TDJoinPE_html_a22303af690086961b8d2356b345f882b"><div class="ttname"><a href="classSVF_1_1TDJoinPE.html#a22303af690086961b8d2356b345f882b">SVF::TDJoinPE::classof</a></div><div class="ttdeci">static bool classof(const GenericPAGEdgeTy *edge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l01028">SVFStatements.h:1028</a></div></div>
104
+ <div class="ttc" id="classSVF_1_1TDJoinPE_html_a22303af690086961b8d2356b345f882b"><div class="ttname"><a href="classSVF_1_1TDJoinPE.html#a22303af690086961b8d2356b345f882b">SVF::TDJoinPE::classof</a></div><div class="ttdeci">static bool classof(const GenericPAGEdgeTy *edge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l01033">SVFStatements.h:1033</a></div></div>
105
105
  <div class="ttc" id="classSVF_1_1AssignStmt_html_a973a2b79da223275ed6a1831837b89c7"><div class="ttname"><a href="classSVF_1_1AssignStmt.html#a973a2b79da223275ed6a1831837b89c7">SVF::AssignStmt::getLHSVar</a></div><div class="ttdeci">SVFVar * getLHSVar() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00253">SVFStatements.h:253</a></div></div>
106
106
  <div class="ttc" id="classSVF_1_1SVFStmt_html_a0ab8621e75e75f03425c323b3ed62ce9a610d6662d1814cffbf23db29e7e620c0"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a610d6662d1814cffbf23db29e7e620c0">SVF::SVFStmt::Cmp</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00056">SVFStatements.h:56</a></div></div>
107
107
  <div class="ttc" id="classSVF_1_1SVFStmt_html_a24227d7f1dd472f47bf94cb5db8505c4"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a24227d7f1dd472f47bf94cb5db8505c4">SVF::SVFStmt::callEdgeLabelCounter</a></div><div class="ttdeci">static u64_t callEdgeLabelCounter</div><div class="ttdoc">Call site Instruction counter. </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00188">SVFStatements.h:188</a></div></div>
108
108
  <div class="ttc" id="classSVF_1_1GepStmt_html"><div class="ttname"><a href="classSVF_1_1GepStmt.html">SVF::GepStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00412">SVFStatements.h:412</a></div></div>
109
109
  <div class="ttc" id="classSVF_1_1SVFStmt_html_a5a3db6b1335b4adc55b961a6f480f228"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a5a3db6b1335b4adc55b961a6f480f228">SVF::SVFStmt::Inst2LabelMap</a></div><div class="ttdeci">Map&lt; const ICFGNode *, u32_t &gt; Inst2LabelMap</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00184">SVFStatements.h:184</a></div></div>
110
110
  <div class="ttc" id="classSVF_1_1SVFStmt_html_a65ee8b43a3a4999eb112a197d1a9f882"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a65ee8b43a3a4999eb112a197d1a9f882">SVF::SVFStmt::getValue</a></div><div class="ttdeci">const Value * getValue() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00116">SVFStatements.h:116</a></div></div>
111
- <div class="ttc" id="classSVF_1_1CmpStmt_html_aa6a21fb1cfbc263bb38651176c495632"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#aa6a21fb1cfbc263bb38651176c495632">SVF::CmpStmt::getPredicate</a></div><div class="ttdeci">u32_t getPredicate() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00797">SVFStatements.h:797</a></div></div>
111
+ <div class="ttc" id="classSVF_1_1CmpStmt_html_aa6a21fb1cfbc263bb38651176c495632"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#aa6a21fb1cfbc263bb38651176c495632">SVF::CmpStmt::getPredicate</a></div><div class="ttdeci">u32_t getPredicate() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00802">SVFStatements.h:802</a></div></div>
112
112
  <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>
113
113
  <div class="ttc" id="classSVF_1_1StoreStmt_html_ab71bf959fce0e702556dd753636298b2"><div class="ttname"><a href="classSVF_1_1StoreStmt.html#ab71bf959fce0e702556dd753636298b2">SVF::StoreStmt::classof</a></div><div class="ttdeci">static bool classof(const GenericPAGEdgeTy *edge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00357">SVFStatements.h:357</a></div></div>
114
114
  <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>
115
115
  <div class="ttc" id="classSVF_1_1CopyStmt_html_a12e960569a9f4beae99195a0fe2d3b68"><div class="ttname"><a href="classSVF_1_1CopyStmt.html#a12e960569a9f4beae99195a0fe2d3b68">SVF::CopyStmt::classof</a></div><div class="ttdeci">static bool classof(const GenericPAGEdgeTy *edge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00322">SVFStatements.h:322</a></div></div>
116
116
  <div class="ttc" id="classSVF_1_1SVFStmt_html_a4513c6e66b46c36219ba6d7403f3eb00"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a4513c6e66b46c36219ba6d7403f3eb00">SVF::SVFStmt::makeEdgeFlagWithCallInst</a></div><div class="ttdeci">static GEdgeFlag makeEdgeFlagWithCallInst(GEdgeKind k, const ICFGNode *cs)</div><div class="ttdoc">Compute the unique edgeFlag value from edge kind and call site Instruction. </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00148">SVFStatements.h:148</a></div></div>
117
117
  <div class="ttc" id="classSVF_1_1PhiStmt_html_a7a5147246ce71f9863398abdd6ddcfc2"><div class="ttname"><a href="classSVF_1_1PhiStmt.html#a7a5147246ce71f9863398abdd6ddcfc2">SVF::PhiStmt::PhiStmt</a></div><div class="ttdeci">PhiStmt(SVFVar *s, const OPVars &amp;opnds)</div><div class="ttdoc">constructor </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00750">SVFStatements.h:750</a></div></div>
118
- <div class="ttc" id="classSVF_1_1TDJoinPE_html_ace17257476d0ee089a9f9cb8dc63e3f2"><div class="ttname"><a href="classSVF_1_1TDJoinPE.html#ace17257476d0ee089a9f9cb8dc63e3f2">SVF::TDJoinPE::classof</a></div><div class="ttdeci">static bool classof(const TDJoinPE *)</div><div class="ttdoc">Methods for support type inquiry through isa, cast, and dyn_cast: </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l01020">SVFStatements.h:1020</a></div></div>
118
+ <div class="ttc" id="classSVF_1_1TDJoinPE_html_ace17257476d0ee089a9f9cb8dc63e3f2"><div class="ttname"><a href="classSVF_1_1TDJoinPE.html#ace17257476d0ee089a9f9cb8dc63e3f2">SVF::TDJoinPE::classof</a></div><div class="ttdeci">static bool classof(const TDJoinPE *)</div><div class="ttdoc">Methods for support type inquiry through isa, cast, and dyn_cast: </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l01025">SVFStatements.h:1025</a></div></div>
119
119
  <div class="ttc" id="classSVF_1_1AssignStmt_html_a4cec89489e82c60c287cae3327f3f01d"><div class="ttname"><a href="classSVF_1_1AssignStmt.html#a4cec89489e82c60c287cae3327f3f01d">SVF::AssignStmt::getRHSVarID</a></div><div class="ttdeci">NodeID getRHSVarID() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00256">SVFStatements.h:256</a></div></div>
120
120
  <div class="ttc" id="classSVF_1_1VariantGepStmt_html"><div class="ttname"><a href="classSVF_1_1VariantGepStmt.html">SVF::VariantGepStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00503">SVFStatements.h:503</a></div></div>
121
121
  <div class="ttc" id="classSVF_1_1SVFStmt_html_a8cd7b6c6fd8b030b1421d95a086359f4"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a8cd7b6c6fd8b030b1421d95a086359f4">SVF::SVFStmt::SVFStmtSetTy</a></div><div class="ttdeci">GenericNode&lt; SVFVar, SVFStmt &gt;::GEdgeSetTy SVFStmtSetTy</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00178">SVFStatements.h:178</a></div></div>
122
122
  <div class="ttc" id="classSVF_1_1AddrStmt_html_a6876ffc2c97c5ba64155891b55a7884c"><div class="ttname"><a href="classSVF_1_1AddrStmt.html#a6876ffc2c97c5ba64155891b55a7884c">SVF::AddrStmt::classof</a></div><div class="ttdeci">static bool classof(const GenericPAGEdgeTy *edge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00287">SVFStatements.h:287</a></div></div>
123
123
  <div class="ttc" id="classSVF_1_1MultiOpndStmt_html_a172025849492f4de8f87564ef08f5880"><div class="ttname"><a href="classSVF_1_1MultiOpndStmt.html#a172025849492f4de8f87564ef08f5880">SVF::MultiOpndStmt::opVars</a></div><div class="ttdeci">OPVars opVars</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00658">SVFStatements.h:658</a></div></div>
124
- <div class="ttc" id="classSVF_1_1TDForkPE_html_a79317f2ac92ace129a1ccf802406498d"><div class="ttname"><a href="classSVF_1_1TDForkPE.html#a79317f2ac92ace129a1ccf802406498d">SVF::TDForkPE::classof</a></div><div class="ttdeci">static bool classof(const TDForkPE *)</div><div class="ttdoc">Methods for support type inquiry through isa, cast, and dyn_cast: </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00982">SVFStatements.h:982</a></div></div>
124
+ <div class="ttc" id="classSVF_1_1TDForkPE_html_a79317f2ac92ace129a1ccf802406498d"><div class="ttname"><a href="classSVF_1_1TDForkPE.html#a79317f2ac92ace129a1ccf802406498d">SVF::TDForkPE::classof</a></div><div class="ttdeci">static bool classof(const TDForkPE *)</div><div class="ttdoc">Methods for support type inquiry through isa, cast, and dyn_cast: </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00987">SVFStatements.h:987</a></div></div>
125
125
  <div class="ttc" id="classSVF_1_1MultiOpndStmt_html_aa0d9a26d3ad17432505b1f5bb36368d9"><div class="ttname"><a href="classSVF_1_1MultiOpndStmt.html#aa0d9a26d3ad17432505b1f5bb36368d9">SVF::MultiOpndStmt::classof</a></div><div class="ttdeci">static bool classof(const MultiOpndStmt *)</div><div class="ttdoc">Methods for support type inquiry through isa, cast, and dyn_cast: </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00666">SVFStatements.h:666</a></div></div>
126
126
  <div class="ttc" id="classSVF_1_1SVFVar_html"><div class="ttname"><a href="classSVF_1_1SVFVar.html">SVF::SVFVar</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00046">SVFVariables.h:46</a></div></div>
127
127
  <div class="ttc" id="classSVF_1_1SVFStmt_html_ad0b4dbe87e009518f22360c48b0d0c22"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#ad0b4dbe87e009518f22360c48b0d0c22">SVF::SVFStmt::toString</a></div><div class="ttdeci">virtual const std::string toString() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8cpp_source.html#l00061">SVFStatements.cpp:61</a></div></div>
128
128
  <div class="ttc" id="classSVF_1_1NormalGepStmt_html_a5f68b485fb5d60deef2ca33da40c69ef"><div class="ttname"><a href="classSVF_1_1NormalGepStmt.html#a5f68b485fb5d60deef2ca33da40c69ef">SVF::NormalGepStmt::getFieldOffset</a></div><div class="ttdeci">u32_t getFieldOffset() const</div><div class="ttdoc">offset of the gep edge </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00492">SVFStatements.h:492</a></div></div>
129
- <div class="ttc" id="classSVF_1_1TDForkPE_html_a68f16df5a9b44dd2492c33fb0a1b5f0c"><div class="ttname"><a href="classSVF_1_1TDForkPE.html#a68f16df5a9b44dd2492c33fb0a1b5f0c">SVF::TDForkPE::classof</a></div><div class="ttdeci">static bool classof(const SVFStmt *edge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00986">SVFStatements.h:986</a></div></div>
129
+ <div class="ttc" id="classSVF_1_1TDForkPE_html_a68f16df5a9b44dd2492c33fb0a1b5f0c"><div class="ttname"><a href="classSVF_1_1TDForkPE.html#a68f16df5a9b44dd2492c33fb0a1b5f0c">SVF::TDForkPE::classof</a></div><div class="ttdeci">static bool classof(const SVFStmt *edge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00991">SVFStatements.h:991</a></div></div>
130
130
  <div class="ttc" id="classSVF_1_1SVFStmt_html_aa306e817648ab5def47e83473e99b3d3"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#aa306e817648ab5def47e83473e99b3d3">SVF::SVFStmt::totalEdgeNum</a></div><div class="ttdeci">static Size_t totalEdgeNum</div><div class="ttdoc">Total edge number. </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00065">SVFStatements.h:65</a></div></div>
131
131
  <div class="ttc" id="classSVF_1_1SVFStmt_html_a00339663741d9f581d2f3ecae5a3e7e3"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a00339663741d9f581d2f3ecae5a3e7e3">SVF::SVFStmt::classof</a></div><div class="ttdeci">static bool classof(const GenericPAGEdgeTy *edge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00080">SVFStatements.h:80</a></div></div>
132
132
  <div class="ttc" id="namespaceSVF_html_a8234d4b959abc9123993bcff4eee34c1"><div class="ttname"><a href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">SVF::Map</a></div><div class="ttdeci">std::unordered_map&lt; Key, Value, Hash, KeyEqual, Allocator &gt; Map</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00100">SVFBasicTypes.h:100</a></div></div>
@@ -136,21 +136,21 @@ $(function() {
136
136
  <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>
137
137
  <div class="ttc" id="classSVF_1_1ICFGNode_html"><div class="ttname"><a href="classSVF_1_1ICFGNode.html">SVF::ICFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00054">ICFGNode.h:54</a></div></div>
138
138
  <div class="ttc" id="namespaceSVF_html_ad42bff8d0a7d60a085aa32d10f4955af"><div class="ttname"><a href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">SVF::u32_t</a></div><div class="ttdeci">unsigned u32_t</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00075">SVFBasicTypes.h:75</a></div></div>
139
- <div class="ttc" id="classSVF_1_1TDJoinPE_html"><div class="ttname"><a href="classSVF_1_1TDJoinPE.html">SVF::TDJoinPE</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l01010">SVFStatements.h:1010</a></div></div>
139
+ <div class="ttc" id="classSVF_1_1TDJoinPE_html"><div class="ttname"><a href="classSVF_1_1TDJoinPE.html">SVF::TDJoinPE</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l01015">SVFStatements.h:1015</a></div></div>
140
140
  <div class="ttc" id="classSVF_1_1SVFStmt_html_ac517a3166a3afe45d04480534ac3bb50"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#ac517a3166a3afe45d04480534ac3bb50">SVF::SVFStmt::classof</a></div><div class="ttdeci">static bool classof(const SVFStmt *)</div><div class="ttdoc">ClassOf. </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00076">SVFStatements.h:76</a></div></div>
141
141
  <div class="ttc" id="classSVF_1_1CallPE_html_a74951537cff8b14c1cf8eb706fca5049"><div class="ttname"><a href="classSVF_1_1CallPE.html#a74951537cff8b14c1cf8eb706fca5049">SVF::CallPE::CallPE</a></div><div class="ttdeci">CallPE(SVFVar *s, SVFVar *d, const CallBlockNode *i, GEdgeKind k=SVFStmt::Call)</div><div class="ttdoc">constructor </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00570">SVFStatements.h:570</a></div></div>
142
142
  <div class="ttc" id="classSVF_1_1SVFStmt_html_a93fc6c4c991931c78c48500c2db50f66"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a93fc6c4c991931c78c48500c2db50f66">SVF::SVFStmt::KindToSVFStmtMapTy</a></div><div class="ttdeci">PAGEdgeToSetMapTy KindToSVFStmtMapTy</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00180">SVFStatements.h:180</a></div></div>
143
143
  <div class="ttc" id="classSVF_1_1SVFStmt_html_a9ea22adbfc307dddee42ffec07cc88ed"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a9ea22adbfc307dddee42ffec07cc88ed">SVF::SVFStmt::multiOpndLabelCounter</a></div><div class="ttdeci">static u64_t multiOpndLabelCounter</div><div class="ttdoc">MultiOpndStmt counter. </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00190">SVFStatements.h:190</a></div></div>
144
- <div class="ttc" id="classSVF_1_1UnaryOPStmt_html_a919db9b8c9287c3802f563840b56c4f1"><div class="ttname"><a href="classSVF_1_1UnaryOPStmt.html#a919db9b8c9287c3802f563840b56c4f1">SVF::UnaryOPStmt::getRes</a></div><div class="ttdeci">const SVFVar * getRes() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00895">SVFStatements.h:895</a></div></div>
144
+ <div class="ttc" id="classSVF_1_1UnaryOPStmt_html_a919db9b8c9287c3802f563840b56c4f1"><div class="ttname"><a href="classSVF_1_1UnaryOPStmt.html#a919db9b8c9287c3802f563840b56c4f1">SVF::UnaryOPStmt::getRes</a></div><div class="ttdeci">const SVFVar * getRes() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00900">SVFStatements.h:900</a></div></div>
145
145
  <div class="ttc" id="classSVF_1_1SVFStmt_html_a24c64109d27ef7549d1c7a07c391e007"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a24c64109d27ef7549d1c7a07c391e007">SVF::SVFStmt::var2LabelMap</a></div><div class="ttdeci">static Var2LabelMap var2LabelMap</div><div class="ttdoc">Second operand of MultiOpndStmt to label map. </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00187">SVFStatements.h:187</a></div></div>
146
146
  <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>
147
147
  <div class="ttc" id="classSVF_1_1GenericEdge_html"><div class="ttname"><a href="classSVF_1_1GenericEdge.html">SVF::GenericEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00042">GenericGraph.h:42</a></div></div>
148
148
  <div class="ttc" id="classSVF_1_1VariantGepStmt_html_a78379cf0aaefc10dab7485be04891405"><div class="ttname"><a href="classSVF_1_1VariantGepStmt.html#a78379cf0aaefc10dab7485be04891405">SVF::VariantGepStmt::classof</a></div><div class="ttdeci">static bool classof(const GepStmt *edge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00517">SVFStatements.h:517</a></div></div>
149
149
  <div class="ttc" id="classSVF_1_1RetPE_html_a43c6965616d67e77087b486265139d21"><div class="ttname"><a href="classSVF_1_1RetPE.html#a43c6965616d67e77087b486265139d21">SVF::RetPE::classof</a></div><div class="ttdeci">static bool classof(const RetPE *)</div><div class="ttdoc">the callsite instruction return to </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00605">SVFStatements.h:605</a></div></div>
150
150
  <div class="ttc" id="classSVF_1_1CallPE_html"><div class="ttname"><a href="classSVF_1_1CallPE.html">SVF::CallPE</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00542">SVFStatements.h:542</a></div></div>
151
- <div class="ttc" id="classSVF_1_1UnaryOPStmt_html"><div class="ttname"><a href="classSVF_1_1UnaryOPStmt.html">SVF::UnaryOPStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00854">SVFStatements.h:854</a></div></div>
151
+ <div class="ttc" id="classSVF_1_1UnaryOPStmt_html"><div class="ttname"><a href="classSVF_1_1UnaryOPStmt.html">SVF::UnaryOPStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00859">SVFStatements.h:859</a></div></div>
152
152
  <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>
153
- <div class="ttc" id="classSVF_1_1BinaryOPStmt_html_ad0a7c5e87355d7a83176343322db448f"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html#ad0a7c5e87355d7a83176343322db448f">SVF::BinaryOPStmt::getOpcode</a></div><div class="ttdeci">u32_t getOpcode() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00843">SVFStatements.h:843</a></div></div>
153
+ <div class="ttc" id="classSVF_1_1BinaryOPStmt_html_ad0a7c5e87355d7a83176343322db448f"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html#ad0a7c5e87355d7a83176343322db448f">SVF::BinaryOPStmt::getOpcode</a></div><div class="ttdeci">u32_t getOpcode() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00848">SVFStatements.h:848</a></div></div>
154
154
  <div class="ttc" id="classSVF_1_1CopyStmt_html_a253c81c922bef6e2d520262c2f7793c4"><div class="ttname"><a href="classSVF_1_1CopyStmt.html#a253c81c922bef6e2d520262c2f7793c4">SVF::CopyStmt::classof</a></div><div class="ttdeci">static bool classof(const CopyStmt *)</div><div class="ttdoc">Methods for support type inquiry through isa, cast, and dyn_cast: </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00314">SVFStatements.h:314</a></div></div>
155
155
  <div class="ttc" id="classSVF_1_1StoreStmt_html_ae3c219e8af92e222f55c930009db6e67"><div class="ttname"><a href="classSVF_1_1StoreStmt.html#ae3c219e8af92e222f55c930009db6e67">SVF::StoreStmt::classof</a></div><div class="ttdeci">static bool classof(const StoreStmt *)</div><div class="ttdoc">Methods for support type inquiry through isa, cast, and dyn_cast: </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00349">SVFStatements.h:349</a></div></div>
156
156
  <div class="ttc" id="classSVF_1_1GepStmt_html_ac47064e21e2afdf7bd85c6acba44367f"><div class="ttname"><a href="classSVF_1_1GepStmt.html#ac47064e21e2afdf7bd85c6acba44367f">SVF::GepStmt::classof</a></div><div class="ttdeci">static bool classof(const GenericPAGEdgeTy *edge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00433">SVFStatements.h:433</a></div></div>
@@ -160,66 +160,66 @@ $(function() {
160
160
  <div class="ttc" id="classSVF_1_1SVFStmt_html_a0ab8621e75e75f03425c323b3ed62ce9ad52703e3ec09b6a4f565e5d82279b6a3"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad52703e3ec09b6a4f565e5d82279b6a3">SVF::SVFStmt::Branch</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00056">SVFStatements.h:56</a></div></div>
161
161
  <div class="ttc" id="classSVF_1_1SVFStmt_html_a6a689f62af301bd6ac09d7019aba1c17"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a6a689f62af301bd6ac09d7019aba1c17">SVF::SVFStmt::value</a></div><div class="ttdeci">const Value * value</div><div class="ttdoc">LLVM value. </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00060">SVFStatements.h:60</a></div></div>
162
162
  <div class="ttc" id="classSVF_1_1CallPE_html_a6a7a917cd6f1235b9453c9672f38c0ef"><div class="ttname"><a href="classSVF_1_1CallPE.html#a6a7a917cd6f1235b9453c9672f38c0ef">SVF::CallPE::getCallSite</a></div><div class="ttdeci">const CallBlockNode * getCallSite() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00581">SVFStatements.h:581</a></div></div>
163
- <div class="ttc" id="classSVF_1_1BranchStmt_html_a7d9a6ebb2d95942c453864b5327b1ae8"><div class="ttname"><a href="classSVF_1_1BranchStmt.html#a7d9a6ebb2d95942c453864b5327b1ae8">SVF::BranchStmt::getSuccessor</a></div><div class="ttdeci">const ICFGNode * getSuccessor(u32_t i) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00961">SVFStatements.h:961</a></div></div>
163
+ <div class="ttc" id="classSVF_1_1BranchStmt_html_a7d9a6ebb2d95942c453864b5327b1ae8"><div class="ttname"><a href="classSVF_1_1BranchStmt.html#a7d9a6ebb2d95942c453864b5327b1ae8">SVF::BranchStmt::getSuccessor</a></div><div class="ttdeci">const ICFGNode * getSuccessor(u32_t i) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00966">SVFStatements.h:966</a></div></div>
164
164
  <div class="ttc" id="classSVF_1_1SVFStmt_html_a229c78147511f2a581c761552179b6fa"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a229c78147511f2a581c761552179b6fa">SVF::SVFStmt::PAGEdgeToSetMapTy</a></div><div class="ttdeci">Map&lt; EdgeID, SVFStmtSetTy &gt; PAGEdgeToSetMapTy</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00179">SVFStatements.h:179</a></div></div>
165
- <div class="ttc" id="classSVF_1_1UnaryOPStmt_html_abb10688145fa76629916ec3df61b6c95"><div class="ttname"><a href="classSVF_1_1UnaryOPStmt.html#abb10688145fa76629916ec3df61b6c95">SVF::UnaryOPStmt::classof</a></div><div class="ttdeci">static bool classof(const UnaryOPStmt *)</div><div class="ttdoc">Methods for support type inquiry through isa, cast, and dyn_cast: </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00869">SVFStatements.h:869</a></div></div>
165
+ <div class="ttc" id="classSVF_1_1UnaryOPStmt_html_abb10688145fa76629916ec3df61b6c95"><div class="ttname"><a href="classSVF_1_1UnaryOPStmt.html#abb10688145fa76629916ec3df61b6c95">SVF::UnaryOPStmt::classof</a></div><div class="ttdeci">static bool classof(const UnaryOPStmt *)</div><div class="ttdoc">Methods for support type inquiry through isa, cast, and dyn_cast: </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00874">SVFStatements.h:874</a></div></div>
166
166
  <div class="ttc" id="classSVF_1_1GenericNode_html_a03c6da4a73c47f84f5c5b47252bc339a"><div class="ttname"><a href="classSVF_1_1GenericNode.html#a03c6da4a73c47f84f5c5b47252bc339a">SVF::GenericNode::GEdgeSetTy</a></div><div class="ttdeci">OrderedSet&lt; EdgeType *, typename EdgeType::equalGEdge &gt; GEdgeSetTy</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00136">GenericGraph.h:136</a></div></div>
167
- <div class="ttc" id="classSVF_1_1CmpStmt_html_a679ec89e3fa17a17dcc8fafeb30d3a61"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#a679ec89e3fa17a17dcc8fafeb30d3a61">SVF::CmpStmt::classof</a></div><div class="ttdeci">static bool classof(const MultiOpndStmt *edge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00782">SVFStatements.h:782</a></div></div>
167
+ <div class="ttc" id="classSVF_1_1CmpStmt_html_a679ec89e3fa17a17dcc8fafeb30d3a61"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#a679ec89e3fa17a17dcc8fafeb30d3a61">SVF::CmpStmt::classof</a></div><div class="ttdeci">static bool classof(const MultiOpndStmt *edge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00787">SVFStatements.h:787</a></div></div>
168
168
  <div class="ttc" id="classSVF_1_1GenericEdge_html_aeaa31a2c8479e831b36ce2e2582ceb86"><div class="ttname"><a href="classSVF_1_1GenericEdge.html#aeaa31a2c8479e831b36ce2e2582ceb86">SVF::GenericEdge::getDstNode</a></div><div class="ttdeci">NodeType * getDstNode() const</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00089">GenericGraph.h:89</a></div></div>
169
- <div class="ttc" id="classSVF_1_1BranchStmt_html_a33887345c00ffda9ca7dca59d61e184a"><div class="ttname"><a href="classSVF_1_1BranchStmt.html#a33887345c00ffda9ca7dca59d61e184a">SVF::BranchStmt::brInst</a></div><div class="ttdeci">const SVFVar * brInst</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00921">SVFStatements.h:921</a></div></div>
169
+ <div class="ttc" id="classSVF_1_1BranchStmt_html_a33887345c00ffda9ca7dca59d61e184a"><div class="ttname"><a href="classSVF_1_1BranchStmt.html#a33887345c00ffda9ca7dca59d61e184a">SVF::BranchStmt::brInst</a></div><div class="ttdeci">const SVFVar * brInst</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00926">SVFStatements.h:926</a></div></div>
170
170
  <div class="ttc" id="classSVF_1_1AddrStmt_html_aeec83dc4e79ee62c92c75aa778a475ad"><div class="ttname"><a href="classSVF_1_1AddrStmt.html#aeec83dc4e79ee62c92c75aa778a475ad">SVF::AddrStmt::classof</a></div><div class="ttdeci">static bool classof(const SVFStmt *edge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00283">SVFStatements.h:283</a></div></div>
171
- <div class="ttc" id="classSVF_1_1UnaryOPStmt_html_abde2b32d5bbd37df0e194b1a4e78483b"><div class="ttname"><a href="classSVF_1_1UnaryOPStmt.html#abde2b32d5bbd37df0e194b1a4e78483b">SVF::UnaryOPStmt::getOpVar</a></div><div class="ttdeci">const SVFVar * getOpVar() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00892">SVFStatements.h:892</a></div></div>
171
+ <div class="ttc" id="classSVF_1_1UnaryOPStmt_html_abde2b32d5bbd37df0e194b1a4e78483b"><div class="ttname"><a href="classSVF_1_1UnaryOPStmt.html#abde2b32d5bbd37df0e194b1a4e78483b">SVF::UnaryOPStmt::getOpVar</a></div><div class="ttdeci">const SVFVar * getOpVar() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00897">SVFStatements.h:897</a></div></div>
172
172
  <div class="ttc" id="namespaceSVF_html_ab502ff5e204678640c1081d104f60971"><div class="ttname"><a href="namespaceSVF.html#ab502ff5e204678640c1081d104f60971">SVF::GenericPAGEdgeTy</a></div><div class="ttdeci">GenericEdge&lt; SVFVar &gt; GenericPAGEdgeTy</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00041">SVFStatements.h:41</a></div></div>
173
173
  <div class="ttc" id="namespaceSVF_html_a7875172ff434b2210eea7cecfbbd959e"><div class="ttname"><a href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">SVF::Instruction</a></div><div class="ttdeci">llvm::Instruction Instruction</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00079">BasicTypes.h:79</a></div></div>
174
174
  <div class="ttc" id="GenericGraph_8h_html"><div class="ttname"><a href="GenericGraph_8h.html">GenericGraph.h</a></div></div>
175
175
  <div class="ttc" id="classSVF_1_1SVFStmt_html_a852730edf374d18a3fb3985211ed7623"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a852730edf374d18a3fb3985211ed7623">SVF::SVFStmt::setBB</a></div><div class="ttdeci">void setBB(const BasicBlock *bb)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00120">SVFStatements.h:120</a></div></div>
176
- <div class="ttc" id="classSVF_1_1BranchStmt_html_adf97a239f15b635580cef475980e8d82"><div class="ttname"><a href="classSVF_1_1BranchStmt.html#adf97a239f15b635580cef475980e8d82">SVF::BranchStmt::classof</a></div><div class="ttdeci">static bool classof(const GenericPAGEdgeTy *edge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00933">SVFStatements.h:933</a></div></div>
176
+ <div class="ttc" id="classSVF_1_1BranchStmt_html_adf97a239f15b635580cef475980e8d82"><div class="ttname"><a href="classSVF_1_1BranchStmt.html#adf97a239f15b635580cef475980e8d82">SVF::BranchStmt::classof</a></div><div class="ttdeci">static bool classof(const GenericPAGEdgeTy *edge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00938">SVFStatements.h:938</a></div></div>
177
177
  <div class="ttc" id="classSVF_1_1GenericEdge_html_aab8892b73370c32b48621cd1d0cce614"><div class="ttname"><a href="classSVF_1_1GenericEdge.html#aab8892b73370c32b48621cd1d0cce614">SVF::GenericEdge::GEdgeFlag</a></div><div class="ttdeci">u64_t GEdgeFlag</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00052">GenericGraph.h:52</a></div></div>
178
178
  <div class="ttc" id="namespaceSVF_html_a2db29836a72e8d86e9baa6d8d55d2978"><div class="ttname"><a href="namespaceSVF.html#a2db29836a72e8d86e9baa6d8d55d2978">SVF::Size_t</a></div><div class="ttdeci">signed long Size_t</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00078">SVFBasicTypes.h:78</a></div></div>
179
179
  <div class="ttc" id="classSVF_1_1AssignStmt_html"><div class="ttname"><a href="classSVF_1_1AssignStmt.html">SVF::AssignStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00198">SVFStatements.h:198</a></div></div>
180
- <div class="ttc" id="classSVF_1_1BinaryOPStmt_html_ab5a0f41455474643e8dd97aaab0aaab5"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html#ab5a0f41455474643e8dd97aaab0aaab5">SVF::BinaryOPStmt::classof</a></div><div class="ttdeci">static bool classof(const BinaryOPStmt *)</div><div class="ttdoc">Methods for support type inquiry through isa, cast, and dyn_cast: </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00820">SVFStatements.h:820</a></div></div>
180
+ <div class="ttc" id="classSVF_1_1BinaryOPStmt_html_ab5a0f41455474643e8dd97aaab0aaab5"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html#ab5a0f41455474643e8dd97aaab0aaab5">SVF::BinaryOPStmt::classof</a></div><div class="ttdeci">static bool classof(const BinaryOPStmt *)</div><div class="ttdoc">Methods for support type inquiry through isa, cast, and dyn_cast: </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00825">SVFStatements.h:825</a></div></div>
181
181
  <div class="ttc" id="classSVF_1_1LoadStmt_html_a92c5817abfaa1f6fbc9ee911f458dfb2"><div class="ttname"><a href="classSVF_1_1LoadStmt.html#a92c5817abfaa1f6fbc9ee911f458dfb2">SVF::LoadStmt::LoadStmt</a></div><div class="ttdeci">LoadStmt(SVFVar *s, SVFVar *d)</div><div class="ttdoc">constructor </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00401">SVFStatements.h:401</a></div></div>
182
182
  <div class="ttc" id="classSVF_1_1LoadStmt_html_a03d6f1ee2f52b34d905b204eb53d6560"><div class="ttname"><a href="classSVF_1_1LoadStmt.html#a03d6f1ee2f52b34d905b204eb53d6560">SVF::LoadStmt::classof</a></div><div class="ttdeci">static bool classof(const LoadStmt *)</div><div class="ttdoc">Methods for support type inquiry through isa, cast, and dyn_cast: </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00386">SVFStatements.h:386</a></div></div>
183
183
  <div class="ttc" id="classSVF_1_1RetPE_html_a9cd78a723ed55ed6f334a329576a7471"><div class="ttname"><a href="classSVF_1_1RetPE.html#a9cd78a723ed55ed6f334a329576a7471">SVF::RetPE::classof</a></div><div class="ttdeci">static bool classof(const SVFStmt *edge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00609">SVFStatements.h:609</a></div></div>
184
184
  <div class="ttc" id="classSVF_1_1LoadStmt_html"><div class="ttname"><a href="classSVF_1_1LoadStmt.html">SVF::LoadStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00376">SVFStatements.h:376</a></div></div>
185
185
  <div class="ttc" id="classSVF_1_1VariantGepStmt_html_a68a168d7000b6185704f61725ffef6af"><div class="ttname"><a href="classSVF_1_1VariantGepStmt.html#a68a168d7000b6185704f61725ffef6af">SVF::VariantGepStmt::classof</a></div><div class="ttdeci">static bool classof(const VariantGepStmt *)</div><div class="ttdoc">Methods for support type inquiry through isa, cast, and dyn_cast: </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00513">SVFStatements.h:513</a></div></div>
186
186
  <div class="ttc" id="classSVF_1_1SVFStmt_html_a3b20523aed66ac8943d7d00ff777137b"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a3b20523aed66ac8943d7d00ff777137b">SVF::SVFStmt::makeEdgeFlagWithAddionalOpnd</a></div><div class="ttdeci">static GEdgeFlag makeEdgeFlagWithAddionalOpnd(GEdgeKind k, const SVFVar *var)</div><div class="ttdoc">Compute the unique edgeFlag value from edge kind and second variable operand for MultiOpndStmt. </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00139">SVFStatements.h:139</a></div></div>
187
- <div class="ttc" id="classSVF_1_1BranchStmt_html"><div class="ttname"><a href="classSVF_1_1BranchStmt.html">SVF::BranchStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00908">SVFStatements.h:908</a></div></div>
188
- <div class="ttc" id="classSVF_1_1BranchStmt_html_ae3aecc257d37c20084633027cb312faa"><div class="ttname"><a href="classSVF_1_1BranchStmt.html#ae3aecc257d37c20084633027cb312faa">SVF::BranchStmt::getSuccessors</a></div><div class="ttdeci">const std::vector&lt; const ICFGNode * &gt; &amp; getSuccessors() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00958">SVFStatements.h:958</a></div></div>
189
- <div class="ttc" id="classSVF_1_1CmpStmt_html_adec661dd23b7806b35abba2d44aebc61"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#adec661dd23b7806b35abba2d44aebc61">SVF::CmpStmt::classof</a></div><div class="ttdeci">static bool classof(const CmpStmt *)</div><div class="ttdoc">Methods for support type inquiry through isa, cast, and dyn_cast: </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00774">SVFStatements.h:774</a></div></div>
187
+ <div class="ttc" id="classSVF_1_1BranchStmt_html"><div class="ttname"><a href="classSVF_1_1BranchStmt.html">SVF::BranchStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00913">SVFStatements.h:913</a></div></div>
188
+ <div class="ttc" id="classSVF_1_1BranchStmt_html_ae3aecc257d37c20084633027cb312faa"><div class="ttname"><a href="classSVF_1_1BranchStmt.html#ae3aecc257d37c20084633027cb312faa">SVF::BranchStmt::getSuccessors</a></div><div class="ttdeci">const std::vector&lt; const ICFGNode * &gt; &amp; getSuccessors() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00963">SVFStatements.h:963</a></div></div>
189
+ <div class="ttc" id="classSVF_1_1CmpStmt_html_adec661dd23b7806b35abba2d44aebc61"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#adec661dd23b7806b35abba2d44aebc61">SVF::CmpStmt::classof</a></div><div class="ttdeci">static bool classof(const CmpStmt *)</div><div class="ttdoc">Methods for support type inquiry through isa, cast, and dyn_cast: </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00779">SVFStatements.h:779</a></div></div>
190
190
  <div class="ttc" id="classSVF_1_1PhiStmt_html_ae547394a731d29b44565d3e56a326354"><div class="ttname"><a href="classSVF_1_1PhiStmt.html#ae547394a731d29b44565d3e56a326354">SVF::PhiStmt::classof</a></div><div class="ttdeci">static bool classof(const MultiOpndStmt *edge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00739">SVFStatements.h:739</a></div></div>
191
- <div class="ttc" id="classSVF_1_1TDJoinPE_html_a0f995bd01463f201d7760641275dc33a"><div class="ttname"><a href="classSVF_1_1TDJoinPE.html#a0f995bd01463f201d7760641275dc33a">SVF::TDJoinPE::TDJoinPE</a></div><div class="ttdeci">TDJoinPE(SVFVar *s, SVFVar *d, const CallBlockNode *i)</div><div class="ttdoc">Constructor. </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l01035">SVFStatements.h:1035</a></div></div>
191
+ <div class="ttc" id="classSVF_1_1TDJoinPE_html_a0f995bd01463f201d7760641275dc33a"><div class="ttname"><a href="classSVF_1_1TDJoinPE.html#a0f995bd01463f201d7760641275dc33a">SVF::TDJoinPE::TDJoinPE</a></div><div class="ttdeci">TDJoinPE(SVFVar *s, SVFVar *d, const CallBlockNode *i)</div><div class="ttdoc">Constructor. </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l01040">SVFStatements.h:1040</a></div></div>
192
192
  <div class="ttc" id="classSVF_1_1PhiStmt_html"><div class="ttname"><a href="classSVF_1_1PhiStmt.html">SVF::PhiStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00721">SVFStatements.h:721</a></div></div>
193
- <div class="ttc" id="classSVF_1_1BranchStmt_html_a2c6fe09027838f9e0ad9ab8193ce8e9b"><div class="ttname"><a href="classSVF_1_1BranchStmt.html#a2c6fe09027838f9e0ad9ab8193ce8e9b">SVF::BranchStmt::getBranchInst</a></div><div class="ttdeci">const SVFVar * getBranchInst() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00950">SVFStatements.h:950</a></div></div>
193
+ <div class="ttc" id="classSVF_1_1BranchStmt_html_a2c6fe09027838f9e0ad9ab8193ce8e9b"><div class="ttname"><a href="classSVF_1_1BranchStmt.html#a2c6fe09027838f9e0ad9ab8193ce8e9b">SVF::BranchStmt::getBranchInst</a></div><div class="ttdeci">const SVFVar * getBranchInst() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00955">SVFStatements.h:955</a></div></div>
194
194
  <div class="ttc" id="classSVF_1_1CopyStmt_html_a69b179ef052408034786d32a52c52389"><div class="ttname"><a href="classSVF_1_1CopyStmt.html#a69b179ef052408034786d32a52c52389">SVF::CopyStmt::CopyStmt</a></div><div class="ttdeci">CopyStmt(SVFVar *s, SVFVar *d)</div><div class="ttdoc">constructor </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00329">SVFStatements.h:329</a></div></div>
195
- <div class="ttc" id="classSVF_1_1CmpStmt_html_a26fc263da6ab3fee40a335d367419328"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#a26fc263da6ab3fee40a335d367419328">SVF::CmpStmt::predicate</a></div><div class="ttdeci">u32_t predicate</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00770">SVFStatements.h:770</a></div></div>
195
+ <div class="ttc" id="classSVF_1_1CmpStmt_html_a26fc263da6ab3fee40a335d367419328"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#a26fc263da6ab3fee40a335d367419328">SVF::CmpStmt::predicate</a></div><div class="ttdeci">u32_t predicate</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00775">SVFStatements.h:775</a></div></div>
196
196
  <div class="ttc" id="classSVF_1_1PhiStmt_html_ae20d273a8afe603395b6621f04e6cb65"><div class="ttname"><a href="classSVF_1_1PhiStmt.html#ae20d273a8afe603395b6621f04e6cb65">SVF::PhiStmt::addOpVar</a></div><div class="ttdeci">void addOpVar(SVFVar *op)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00753">SVFStatements.h:753</a></div></div>
197
197
  <div class="ttc" id="classSVF_1_1AssignStmt_html_a98f731be7be9bc8e7fd09f5c2204c840"><div class="ttname"><a href="classSVF_1_1AssignStmt.html#a98f731be7be9bc8e7fd09f5c2204c840">SVF::AssignStmt::getLHSVarID</a></div><div class="ttdeci">NodeID getLHSVarID() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00259">SVFStatements.h:259</a></div></div>
198
198
  <div class="ttc" id="classSVF_1_1StoreStmt_html_a31f69e402887eff60e2055799ed561b9"><div class="ttname"><a href="classSVF_1_1StoreStmt.html#a31f69e402887eff60e2055799ed561b9">SVF::StoreStmt::classof</a></div><div class="ttdeci">static bool classof(const SVFStmt *edge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00353">SVFStatements.h:353</a></div></div>
199
199
  <div class="ttc" id="classSVF_1_1LoadStmt_html_ac252b1e9b7c01108d1aff602fbe1ef40"><div class="ttname"><a href="classSVF_1_1LoadStmt.html#ac252b1e9b7c01108d1aff602fbe1ef40">SVF::LoadStmt::classof</a></div><div class="ttdeci">static bool classof(const SVFStmt *edge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00390">SVFStatements.h:390</a></div></div>
200
200
  <div class="ttc" id="classSVF_1_1GenericEdge_html_a7eb93c9018c80057672a8ce71615dc0d"><div class="ttname"><a href="classSVF_1_1GenericEdge.html#a7eb93c9018c80057672a8ce71615dc0d">SVF::GenericEdge::GEdgeKind</a></div><div class="ttdeci">s32_t GEdgeKind</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00053">GenericGraph.h:53</a></div></div>
201
- <div class="ttc" id="classSVF_1_1CmpStmt_html_a02c4846269bd28bd4e8b127532cb737a"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#a02c4846269bd28bd4e8b127532cb737a">SVF::CmpStmt::CmpStmt</a></div><div class="ttdeci">CmpStmt(SVFVar *s, const OPVars &amp;opnds, u32_t pre)</div><div class="ttdoc">constructor </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00793">SVFStatements.h:793</a></div></div>
202
- <div class="ttc" id="classSVF_1_1BranchStmt_html_a55b867cd85dbbe43e2f7c1bad5dce647"><div class="ttname"><a href="classSVF_1_1BranchStmt.html#a55b867cd85dbbe43e2f7c1bad5dce647">SVF::BranchStmt::classof</a></div><div class="ttdeci">static bool classof(const SVFStmt *edge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00929">SVFStatements.h:929</a></div></div>
201
+ <div class="ttc" id="classSVF_1_1CmpStmt_html_a02c4846269bd28bd4e8b127532cb737a"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#a02c4846269bd28bd4e8b127532cb737a">SVF::CmpStmt::CmpStmt</a></div><div class="ttdeci">CmpStmt(SVFVar *s, const OPVars &amp;opnds, u32_t pre)</div><div class="ttdoc">constructor </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00798">SVFStatements.h:798</a></div></div>
202
+ <div class="ttc" id="classSVF_1_1BranchStmt_html_a55b867cd85dbbe43e2f7c1bad5dce647"><div class="ttname"><a href="classSVF_1_1BranchStmt.html#a55b867cd85dbbe43e2f7c1bad5dce647">SVF::BranchStmt::classof</a></div><div class="ttdeci">static bool classof(const SVFStmt *edge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00934">SVFStatements.h:934</a></div></div>
203
203
  <div class="ttc" id="classSVF_1_1GepStmt_html_ab2e054cf447dd676598d79edb44abfdf"><div class="ttname"><a href="classSVF_1_1GepStmt.html#ab2e054cf447dd676598d79edb44abfdf">SVF::GepStmt::GepStmt</a></div><div class="ttdeci">GepStmt(SVFVar *s, SVFVar *d, const LocationSet &amp;l, PEDGEK k)</div><div class="ttdoc">constructor </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00447">SVFStatements.h:447</a></div></div>
204
204
  <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>
205
- <div class="ttc" id="classSVF_1_1UnaryOPStmt_html_a099df135a83d28a2e6f344e008fe1cc6"><div class="ttname"><a href="classSVF_1_1UnaryOPStmt.html#a099df135a83d28a2e6f344e008fe1cc6">SVF::UnaryOPStmt::opcode</a></div><div class="ttdeci">u32_t opcode</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00865">SVFStatements.h:865</a></div></div>
205
+ <div class="ttc" id="classSVF_1_1UnaryOPStmt_html_a099df135a83d28a2e6f344e008fe1cc6"><div class="ttname"><a href="classSVF_1_1UnaryOPStmt.html#a099df135a83d28a2e6f344e008fe1cc6">SVF::UnaryOPStmt::opcode</a></div><div class="ttdeci">u32_t opcode</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00870">SVFStatements.h:870</a></div></div>
206
206
  <div class="ttc" id="classSVF_1_1AssignStmt_html_aff4c35109790daed3c6170c985153620"><div class="ttname"><a href="classSVF_1_1AssignStmt.html#aff4c35109790daed3c6170c985153620">SVF::AssignStmt::AssignStmt</a></div><div class="ttdeci">AssignStmt(SVFVar *s, SVFVar *d, GEdgeFlag k)</div><div class="ttdoc">constructor </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00211">SVFStatements.h:211</a></div></div>
207
207
  <div class="ttc" id="classSVF_1_1MultiOpndStmt_html_af300571886b7aa2d84b0a70851c99bc3"><div class="ttname"><a href="classSVF_1_1MultiOpndStmt.html#af300571886b7aa2d84b0a70851c99bc3">SVF::MultiOpndStmt::getOpVarNum</a></div><div class="ttdeci">u32_t getOpVarNum() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00699">SVFStatements.h:699</a></div></div>
208
208
  <div class="ttc" id="classSVF_1_1SVFStmt_html_a24dddb4e346a6e569908e3efe8a6ecc0"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a24dddb4e346a6e569908e3efe8a6ecc0">SVF::SVFStmt::setValue</a></div><div class="ttdeci">void setValue(const Value *val)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00112">SVFStatements.h:112</a></div></div>
209
209
  <div class="ttc" id="classSVF_1_1PhiStmt_html_abb620d35e77989c2f7f9ed480e5fa1e9"><div class="ttname"><a href="classSVF_1_1PhiStmt.html#abb620d35e77989c2f7f9ed480e5fa1e9">SVF::PhiStmt::classof</a></div><div class="ttdeci">static bool classof(const PhiStmt *)</div><div class="ttdoc">Methods for support type inquiry through isa, cast, and dyn_cast: </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00731">SVFStatements.h:731</a></div></div>
210
210
  <div class="ttc" id="classSVF_1_1SVFStmt_html_ad178ccbc7800527c3dc406ad5fa069bb"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#ad178ccbc7800527c3dc406ad5fa069bb">SVF::SVFStmt::Var2LabelMap</a></div><div class="ttdeci">Map&lt; const SVFVar *, u32_t &gt; Var2LabelMap</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00185">SVFStatements.h:185</a></div></div>
211
211
  <div class="ttc" id="classSVF_1_1GenericEdge_html_ab47ca533c415841ef75456cbad439589"><div class="ttname"><a href="classSVF_1_1GenericEdge.html#ab47ca533c415841ef75456cbad439589">SVF::GenericEdge::getSrcNode</a></div><div class="ttdeci">NodeType * getSrcNode() const</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00085">GenericGraph.h:85</a></div></div>
212
- <div class="ttc" id="classSVF_1_1BranchStmt_html_ad3c41e137cb0dc3ef10cbc6c0f8d475f"><div class="ttname"><a href="classSVF_1_1BranchStmt.html#ad3c41e137cb0dc3ef10cbc6c0f8d475f">SVF::BranchStmt::successors</a></div><div class="ttdeci">std::vector&lt; const ICFGNode * &gt; successors</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00919">SVFStatements.h:919</a></div></div>
212
+ <div class="ttc" id="classSVF_1_1BranchStmt_html_ad3c41e137cb0dc3ef10cbc6c0f8d475f"><div class="ttname"><a href="classSVF_1_1BranchStmt.html#ad3c41e137cb0dc3ef10cbc6c0f8d475f">SVF::BranchStmt::successors</a></div><div class="ttdeci">std::vector&lt; const ICFGNode * &gt; successors</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00924">SVFStatements.h:924</a></div></div>
213
213
  <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>
214
- <div class="ttc" id="classSVF_1_1UnaryOPStmt_html_add29b76e0ef73da2606bac97f74a7896"><div class="ttname"><a href="classSVF_1_1UnaryOPStmt.html#add29b76e0ef73da2606bac97f74a7896">SVF::UnaryOPStmt::classof</a></div><div class="ttdeci">static bool classof(const GenericPAGEdgeTy *edge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00877">SVFStatements.h:877</a></div></div>
214
+ <div class="ttc" id="classSVF_1_1UnaryOPStmt_html_add29b76e0ef73da2606bac97f74a7896"><div class="ttname"><a href="classSVF_1_1UnaryOPStmt.html#add29b76e0ef73da2606bac97f74a7896">SVF::UnaryOPStmt::classof</a></div><div class="ttdeci">static bool classof(const GenericPAGEdgeTy *edge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00882">SVFStatements.h:882</a></div></div>
215
215
  <div class="ttc" id="classSVF_1_1GepStmt_html_abec33091e0dac0cdd5b95b6d7b0db3d8"><div class="ttname"><a href="classSVF_1_1GepStmt.html#abec33091e0dac0cdd5b95b6d7b0db3d8">SVF::GepStmt::getLocationSet</a></div><div class="ttdeci">const LocationSet &amp; getLocationSet() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00440">SVFStatements.h:440</a></div></div>
216
216
  <div class="ttc" id="classSVF_1_1GepStmt_html_a92016e7d6061e4a157c9cd39ad94cc20"><div class="ttname"><a href="classSVF_1_1GepStmt.html#a92016e7d6061e4a157c9cd39ad94cc20">SVF::GepStmt::classof</a></div><div class="ttdeci">static bool classof(const SVFStmt *edge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00428">SVFStatements.h:428</a></div></div>
217
217
  <div class="ttc" id="classSVF_1_1CallPE_html_ac8f25219948d3a6ff205048e746338d5"><div class="ttname"><a href="classSVF_1_1CallPE.html#ac8f25219948d3a6ff205048e746338d5">SVF::CallPE::getCallInst</a></div><div class="ttdeci">const CallBlockNode * getCallInst() const</div><div class="ttdoc">Get method for the call instruction. </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00577">SVFStatements.h:577</a></div></div>
218
- <div class="ttc" id="classSVF_1_1TDForkPE_html"><div class="ttname"><a href="classSVF_1_1TDForkPE.html">SVF::TDForkPE</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00972">SVFStatements.h:972</a></div></div>
218
+ <div class="ttc" id="classSVF_1_1TDForkPE_html"><div class="ttname"><a href="classSVF_1_1TDForkPE.html">SVF::TDForkPE</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00977">SVFStatements.h:977</a></div></div>
219
219
  <div class="ttc" id="classSVF_1_1SVFStmt_html_ad61722f886afaaee722ac55a4eed4d18"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#ad61722f886afaaee722ac55a4eed4d18">SVF::SVFStmt::makeEdgeFlagWithStoreInst</a></div><div class="ttdeci">static GEdgeFlag makeEdgeFlagWithStoreInst(GEdgeKind k, const ICFGNode *store)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00158">SVFStatements.h:158</a></div></div>
220
220
  <div class="ttc" id="classSVF_1_1CallPE_html_a86b76d7390dc0f650ec2428c394bf41a"><div class="ttname"><a href="classSVF_1_1CallPE.html#a86b76d7390dc0f650ec2428c394bf41a">SVF::CallPE::inst</a></div><div class="ttdeci">const CallBlockNode * inst</div><div class="ttdoc">llvm instruction for this call </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00549">SVFStatements.h:549</a></div></div>
221
221
  <div class="ttc" id="classSVF_1_1RetPE_html_ad78a287bde15c03eec8d633d363e2ed2"><div class="ttname"><a href="classSVF_1_1RetPE.html#ad78a287bde15c03eec8d633d363e2ed2">SVF::RetPE::inst</a></div><div class="ttdeci">const CallBlockNode * inst</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00601">SVFStatements.h:601</a></div></div>
222
- <div class="ttc" id="classSVF_1_1BranchStmt_html_a750ffca6648fafedfb271fb90d975847"><div class="ttname"><a href="classSVF_1_1BranchStmt.html#a750ffca6648fafedfb271fb90d975847">SVF::BranchStmt::classof</a></div><div class="ttdeci">static bool classof(const BranchStmt *)</div><div class="ttdoc">Methods for support type inquiry through isa, cast, and dyn_cast: </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00925">SVFStatements.h:925</a></div></div>
222
+ <div class="ttc" id="classSVF_1_1BranchStmt_html_a750ffca6648fafedfb271fb90d975847"><div class="ttname"><a href="classSVF_1_1BranchStmt.html#a750ffca6648fafedfb271fb90d975847">SVF::BranchStmt::classof</a></div><div class="ttdeci">static bool classof(const BranchStmt *)</div><div class="ttdoc">Methods for support type inquiry through isa, cast, and dyn_cast: </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00930">SVFStatements.h:930</a></div></div>
223
223
  <div class="ttc" id="classSVF_1_1AssignStmt_html_ad5e2d41b8cd548628b59227368388ed0"><div class="ttname"><a href="classSVF_1_1AssignStmt.html#ad5e2d41b8cd548628b59227368388ed0">SVF::AssignStmt::classof</a></div><div class="ttdeci">static bool classof(const SVFStmt *edge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00222">SVFStatements.h:222</a></div></div>
224
224
  <div class="ttc" id="classSVF_1_1RetPE_html_ac28900a70a604bbba2b4cdab09709226"><div class="ttname"><a href="classSVF_1_1RetPE.html#ac28900a70a604bbba2b4cdab09709226">SVF::RetPE::getCallInst</a></div><div class="ttdeci">const CallBlockNode * getCallInst() const</div><div class="ttdoc">Get method for call instruction at caller. </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00629">SVFStatements.h:629</a></div></div>
225
225
  <div class="ttc" id="classSVF_1_1IntraBlockNode_html"><div class="ttname"><a href="classSVF_1_1IntraBlockNode.html">SVF::IntraBlockNode</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00175">ICFGNode.h:175</a></div></div>
@@ -229,10 +229,10 @@ $(function() {
229
229
  <div class="ttc" id="classSVF_1_1AssignStmt_html_a8b2837153dcf9f7e2adc3b30b2dd0245"><div class="ttname"><a href="classSVF_1_1AssignStmt.html#a8b2837153dcf9f7e2adc3b30b2dd0245">SVF::AssignStmt::classof</a></div><div class="ttdeci">static bool classof(const GenericPAGEdgeTy *edge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00235">SVFStatements.h:235</a></div></div>
230
230
  <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>
231
231
  <div class="ttc" id="classSVF_1_1SVFStmt_html_a0ab8621e75e75f03425c323b3ed62ce9ad58f5e59c55e1ffd23b83d16224fed13"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad58f5e59c55e1ffd23b83d16224fed13">SVF::SVFStmt::BinaryOp</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00056">SVFStatements.h:56</a></div></div>
232
- <div class="ttc" id="classSVF_1_1CmpStmt_html"><div class="ttname"><a href="classSVF_1_1CmpStmt.html">SVF::CmpStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00763">SVFStatements.h:763</a></div></div>
232
+ <div class="ttc" id="classSVF_1_1CmpStmt_html"><div class="ttname"><a href="classSVF_1_1CmpStmt.html">SVF::CmpStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00768">SVFStatements.h:768</a></div></div>
233
233
  <div class="ttc" id="namespaceSVF_html"><div class="ttname"><a href="namespaceSVF.html">SVF</a></div><div class="ttdoc">for isBitcode </div><div class="ttdef"><b>Definition:</b> <a href="ContextDDA_8h_source.html#l00016">ContextDDA.h:16</a></div></div>
234
234
  <div class="ttc" id="classSVF_1_1NormalGepStmt_html_a5c0e04f4ee0574e0e4a82c8070b33206"><div class="ttname"><a href="classSVF_1_1NormalGepStmt.html#a5c0e04f4ee0574e0e4a82c8070b33206">SVF::NormalGepStmt::NormalGepStmt</a></div><div class="ttdeci">NormalGepStmt(SVFVar *s, SVFVar *d, const LocationSet &amp;l)</div><div class="ttdoc">constructor </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00488">SVFStatements.h:488</a></div></div>
235
- <div class="ttc" id="classSVF_1_1TDForkPE_html_a9e160158fe61958bcd6ef2a7da559018"><div class="ttname"><a href="classSVF_1_1TDForkPE.html#a9e160158fe61958bcd6ef2a7da559018">SVF::TDForkPE::classof</a></div><div class="ttdeci">static bool classof(const GenericPAGEdgeTy *edge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00990">SVFStatements.h:990</a></div></div>
235
+ <div class="ttc" id="classSVF_1_1TDForkPE_html_a9e160158fe61958bcd6ef2a7da559018"><div class="ttname"><a href="classSVF_1_1TDForkPE.html#a9e160158fe61958bcd6ef2a7da559018">SVF::TDForkPE::classof</a></div><div class="ttdeci">static bool classof(const GenericPAGEdgeTy *edge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00995">SVFStatements.h:995</a></div></div>
236
236
  <div class="ttc" id="classSVF_1_1VariantGepStmt_html_a90734f6349eafc43dca830671283c292"><div class="ttname"><a href="classSVF_1_1VariantGepStmt.html#a90734f6349eafc43dca830671283c292">SVF::VariantGepStmt::classof</a></div><div class="ttdeci">static bool classof(const GenericPAGEdgeTy *edge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00525">SVFStatements.h:525</a></div></div>
237
237
  <div class="ttc" id="ICFGNode_8h_html"><div class="ttname"><a href="ICFGNode_8h.html">ICFGNode.h</a></div></div>
238
238
  <div class="ttc" id="classSVF_1_1StoreStmt_html_aa817396dc47f1f03015c1c95a43cf8eb"><div class="ttname"><a href="classSVF_1_1StoreStmt.html#aa817396dc47f1f03015c1c95a43cf8eb">SVF::StoreStmt::StoreStmt</a></div><div class="ttdeci">StoreStmt(SVFVar *s, SVFVar *d, const IntraBlockNode *st)</div><div class="ttdoc">constructor </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00364">SVFStatements.h:364</a></div></div>
@@ -242,7 +242,7 @@ $(function() {
242
242
  <div class="ttc" id="classSVF_1_1NormalGepStmt_html_a3826905ca0b4d6a7e58bc2e9418d9773"><div class="ttname"><a href="classSVF_1_1NormalGepStmt.html#a3826905ca0b4d6a7e58bc2e9418d9773">SVF::NormalGepStmt::classof</a></div><div class="ttdeci">static bool classof(const NormalGepStmt *)</div><div class="ttdoc">Methods for support type inquiry through isa, cast, and dyn_cast: </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00469">SVFStatements.h:469</a></div></div>
243
243
  <div class="ttc" id="classSVF_1_1GepStmt_html_a543a3f4801b22719f7b9677246bf2ac7"><div class="ttname"><a href="classSVF_1_1GepStmt.html#a543a3f4801b22719f7b9677246bf2ac7">SVF::GepStmt::ls</a></div><div class="ttdeci">LocationSet ls</div><div class="ttdoc">location set of the gep edge </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00419">SVFStatements.h:419</a></div></div>
244
244
  <div class="ttc" id="classSVF_1_1LocationSet_html"><div class="ttname"><a href="classSVF_1_1LocationSet.html">SVF::LocationSet</a></div><div class="ttdef"><b>Definition:</b> <a href="LocationSet_8h_source.html#l00072">LocationSet.h:72</a></div></div>
245
- <div class="ttc" id="classSVF_1_1UnaryOPStmt_html_a2b91333ac3d4b5e1099590aeb15d38ba"><div class="ttname"><a href="classSVF_1_1UnaryOPStmt.html#a2b91333ac3d4b5e1099590aeb15d38ba">SVF::UnaryOPStmt::UnaryOPStmt</a></div><div class="ttdeci">UnaryOPStmt(SVFVar *s, SVFVar *d, u32_t oc)</div><div class="ttdoc">constructor </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00884">SVFStatements.h:884</a></div></div>
245
+ <div class="ttc" id="classSVF_1_1UnaryOPStmt_html_a2b91333ac3d4b5e1099590aeb15d38ba"><div class="ttname"><a href="classSVF_1_1UnaryOPStmt.html#a2b91333ac3d4b5e1099590aeb15d38ba">SVF::UnaryOPStmt::UnaryOPStmt</a></div><div class="ttdeci">UnaryOPStmt(SVFVar *s, SVFVar *d, u32_t oc)</div><div class="ttdoc">constructor </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00889">SVFStatements.h:889</a></div></div>
246
246
  <div class="ttc" id="classSVF_1_1SVFStmt_html_a0b6c03af568b70903da6b200ac86c951"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a0b6c03af568b70903da6b200ac86c951">SVF::SVFStmt::isPTAEdge</a></div><div class="ttdeci">bool isPTAEdge() const</div><div class="ttdoc">Whether src and dst nodes are both of pointer type. </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8cpp_source.html#l00056">SVFStatements.cpp:56</a></div></div>
247
247
  <div class="ttc" id="classSVF_1_1VariantGepStmt_html_adbb95a6bffb72191772a57e8c1d2d3a3"><div class="ttname"><a href="classSVF_1_1VariantGepStmt.html#adbb95a6bffb72191772a57e8c1d2d3a3">SVF::VariantGepStmt::classof</a></div><div class="ttdeci">static bool classof(const SVFStmt *edge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00521">SVFStatements.h:521</a></div></div>
248
248
  <div class="ttc" id="classSVF_1_1CallPE_html_a0d89c20d1d3ccee5f3e45a32085117aa"><div class="ttname"><a href="classSVF_1_1CallPE.html#a0d89c20d1d3ccee5f3e45a32085117aa">SVF::CallPE::classof</a></div><div class="ttdeci">static bool classof(const GenericPAGEdgeTy *edge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00562">SVFStatements.h:562</a></div></div>
@@ -252,25 +252,25 @@ $(function() {
252
252
  <div class="ttc" id="classSVF_1_1RetPE_html_a2f0121f26e79fe3766cba93b42dc1119"><div class="ttname"><a href="classSVF_1_1RetPE.html#a2f0121f26e79fe3766cba93b42dc1119">SVF::RetPE::classof</a></div><div class="ttdeci">static bool classof(const GenericPAGEdgeTy *edge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00614">SVFStatements.h:614</a></div></div>
253
253
  <div class="ttc" id="classSVF_1_1CopyStmt_html_a5e883bb0bc30cf8b7d325b66f7a42848"><div class="ttname"><a href="classSVF_1_1CopyStmt.html#a5e883bb0bc30cf8b7d325b66f7a42848">SVF::CopyStmt::classof</a></div><div class="ttdeci">static bool classof(const SVFStmt *edge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00318">SVFStatements.h:318</a></div></div>
254
254
  <div class="ttc" id="classSVF_1_1AssignStmt_html_ad03d28d16754c9049dd4d0ad3b6c1e28"><div class="ttname"><a href="classSVF_1_1AssignStmt.html#ad03d28d16754c9049dd4d0ad3b6c1e28">SVF::AssignStmt::getRHSVar</a></div><div class="ttdeci">SVFVar * getRHSVar() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00250">SVFStatements.h:250</a></div></div>
255
- <div class="ttc" id="classSVF_1_1BranchStmt_html_a4aa3e5dfaa7354345ae878115621a8a9"><div class="ttname"><a href="classSVF_1_1BranchStmt.html#a4aa3e5dfaa7354345ae878115621a8a9">SVF::BranchStmt::BranchStmt</a></div><div class="ttdeci">BranchStmt(SVFVar *inst, SVFVar *c, const std::vector&lt; const ICFGNode *&gt; &amp;succs)</div><div class="ttdoc">constructor </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00940">SVFStatements.h:940</a></div></div>
256
- <div class="ttc" id="classSVF_1_1TDJoinPE_html_a18e24262f5be7835bc830ea410acc19d"><div class="ttname"><a href="classSVF_1_1TDJoinPE.html#a18e24262f5be7835bc830ea410acc19d">SVF::TDJoinPE::classof</a></div><div class="ttdeci">static bool classof(const SVFStmt *edge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l01024">SVFStatements.h:1024</a></div></div>
255
+ <div class="ttc" id="classSVF_1_1BranchStmt_html_a4aa3e5dfaa7354345ae878115621a8a9"><div class="ttname"><a href="classSVF_1_1BranchStmt.html#a4aa3e5dfaa7354345ae878115621a8a9">SVF::BranchStmt::BranchStmt</a></div><div class="ttdeci">BranchStmt(SVFVar *inst, SVFVar *c, const std::vector&lt; const ICFGNode *&gt; &amp;succs)</div><div class="ttdoc">constructor </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00945">SVFStatements.h:945</a></div></div>
256
+ <div class="ttc" id="classSVF_1_1TDJoinPE_html_a18e24262f5be7835bc830ea410acc19d"><div class="ttname"><a href="classSVF_1_1TDJoinPE.html#a18e24262f5be7835bc830ea410acc19d">SVF::TDJoinPE::classof</a></div><div class="ttdeci">static bool classof(const SVFStmt *edge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l01029">SVFStatements.h:1029</a></div></div>
257
257
  <div class="ttc" id="classSVF_1_1MultiOpndStmt_html_ad20128715a7aaf173d60fe8f14575678"><div class="ttname"><a href="classSVF_1_1MultiOpndStmt.html#ad20128715a7aaf173d60fe8f14575678">SVF::MultiOpndStmt::classof</a></div><div class="ttdeci">static bool classof(const GenericPAGEdgeTy *node)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00676">SVFStatements.h:676</a></div></div>
258
258
  <div class="ttc" id="classSVF_1_1SVFStmt_html_a47102f72115d41bff899b1b2ffec75b1"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a47102f72115d41bff899b1b2ffec75b1">SVF::SVFStmt::SVFStmt</a></div><div class="ttdeci">SVFStmt(SVFVar *s, SVFVar *d, GEdgeFlag k)</div><div class="ttdoc">Constructor. </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8cpp_source.html#l00046">SVFStatements.cpp:46</a></div></div>
259
- <div class="ttc" id="classSVF_1_1BinaryOPStmt_html"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html">SVF::BinaryOPStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00809">SVFStatements.h:809</a></div></div>
259
+ <div class="ttc" id="classSVF_1_1BinaryOPStmt_html"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html">SVF::BinaryOPStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00814">SVFStatements.h:814</a></div></div>
260
260
  <div class="ttc" id="classSVF_1_1PhiStmt_html_ac214292370d79324f6da8624fe2c7139"><div class="ttname"><a href="classSVF_1_1PhiStmt.html#ac214292370d79324f6da8624fe2c7139">SVF::PhiStmt::classof</a></div><div class="ttdeci">static bool classof(const SVFStmt *edge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00735">SVFStatements.h:735</a></div></div>
261
261
  <div class="ttc" id="classSVF_1_1MultiOpndStmt_html_acf8c7cfbf1c8baab672040635bb9a007"><div class="ttname"><a href="classSVF_1_1MultiOpndStmt.html#acf8c7cfbf1c8baab672040635bb9a007">SVF::MultiOpndStmt::OPVars</a></div><div class="ttdeci">std::vector&lt; SVFVar * &gt; OPVars</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00647">SVFStatements.h:647</a></div></div>
262
- <div class="ttc" id="classSVF_1_1UnaryOPStmt_html_a2a4b7e3a4c5be8a253b542f144f830b7"><div class="ttname"><a href="classSVF_1_1UnaryOPStmt.html#a2a4b7e3a4c5be8a253b542f144f830b7">SVF::UnaryOPStmt::classof</a></div><div class="ttdeci">static bool classof(const SVFStmt *edge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00873">SVFStatements.h:873</a></div></div>
262
+ <div class="ttc" id="classSVF_1_1UnaryOPStmt_html_a2a4b7e3a4c5be8a253b542f144f830b7"><div class="ttname"><a href="classSVF_1_1UnaryOPStmt.html#a2a4b7e3a4c5be8a253b542f144f830b7">SVF::UnaryOPStmt::classof</a></div><div class="ttdeci">static bool classof(const SVFStmt *edge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00878">SVFStatements.h:878</a></div></div>
263
263
  <div class="ttc" id="classSVF_1_1CallBlockNode_html"><div class="ttname"><a href="classSVF_1_1CallBlockNode.html">SVF::CallBlockNode</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00364">ICFGNode.h:364</a></div></div>
264
- <div class="ttc" id="classSVF_1_1CmpStmt_html_af9f7fe4aa92bb443cd517f06a8fb94cd"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#af9f7fe4aa92bb443cd517f06a8fb94cd">SVF::CmpStmt::classof</a></div><div class="ttdeci">static bool classof(const GenericPAGEdgeTy *edge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00786">SVFStatements.h:786</a></div></div>
264
+ <div class="ttc" id="classSVF_1_1CmpStmt_html_af9f7fe4aa92bb443cd517f06a8fb94cd"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#af9f7fe4aa92bb443cd517f06a8fb94cd">SVF::CmpStmt::classof</a></div><div class="ttdeci">static bool classof(const GenericPAGEdgeTy *edge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00791">SVFStatements.h:791</a></div></div>
265
265
  <div class="ttc" id="classSVF_1_1AddrStmt_html_a42caa75acb42ce8e290c1278622f139c"><div class="ttname"><a href="classSVF_1_1AddrStmt.html#a42caa75acb42ce8e290c1278622f139c">SVF::AddrStmt::AddrStmt</a></div><div class="ttdeci">AddrStmt(SVFVar *s, SVFVar *d)</div><div class="ttdoc">constructor </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00294">SVFStatements.h:294</a></div></div>
266
- <div class="ttc" id="classSVF_1_1BinaryOPStmt_html_abc24c2d50b164a637ad0cec371cb7e63"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html#abc24c2d50b164a637ad0cec371cb7e63">SVF::BinaryOPStmt::classof</a></div><div class="ttdeci">static bool classof(const SVFStmt *edge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00824">SVFStatements.h:824</a></div></div>
267
- <div class="ttc" id="classSVF_1_1BranchStmt_html_a022d355bde3d0d0a9471cd125b24583b"><div class="ttname"><a href="classSVF_1_1BranchStmt.html#a022d355bde3d0d0a9471cd125b24583b">SVF::BranchStmt::getNumSuccessors</a></div><div class="ttdeci">u32_t getNumSuccessors() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00955">SVFStatements.h:955</a></div></div>
266
+ <div class="ttc" id="classSVF_1_1BinaryOPStmt_html_abc24c2d50b164a637ad0cec371cb7e63"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html#abc24c2d50b164a637ad0cec371cb7e63">SVF::BinaryOPStmt::classof</a></div><div class="ttdeci">static bool classof(const SVFStmt *edge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00829">SVFStatements.h:829</a></div></div>
267
+ <div class="ttc" id="classSVF_1_1BranchStmt_html_a022d355bde3d0d0a9471cd125b24583b"><div class="ttname"><a href="classSVF_1_1BranchStmt.html#a022d355bde3d0d0a9471cd125b24583b">SVF::BranchStmt::getNumSuccessors</a></div><div class="ttdeci">u32_t getNumSuccessors() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00960">SVFStatements.h:960</a></div></div>
268
268
  <div class="ttc" id="classSVF_1_1SVFStmt_html_a593cc8136f2138a518476405e667e060"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a593cc8136f2138a518476405e667e060">SVF::SVFStmt::edgeId</a></div><div class="ttdeci">EdgeID edgeId</div><div class="ttdoc">Edge ID. </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00063">SVFStatements.h:63</a></div></div>
269
269
  <div class="ttc" id="classSVF_1_1MultiOpndStmt_html_ad53097d07487d564e7d13f9d7d9ab10c"><div class="ttname"><a href="classSVF_1_1MultiOpndStmt.html#ad53097d07487d564e7d13f9d7d9ab10c">SVF::MultiOpndStmt::opVerEnd</a></div><div class="ttdeci">OPVars::const_iterator opVerEnd() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00710">SVFStatements.h:710</a></div></div>
270
270
  <div class="ttc" id="namespaceSVF_html_a90b263fd2f541eca78135078114cabda"><div class="ttname"><a href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">SVF::Value</a></div><div class="ttdeci">llvm::Value Value</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00078">BasicTypes.h:78</a></div></div>
271
271
  <div class="ttc" id="classSVF_1_1GenericEdge_html_af1c2fd4b5ef1d7b7605572bf2489c298"><div class="ttname"><a href="classSVF_1_1GenericEdge.html#af1c2fd4b5ef1d7b7605572bf2489c298">SVF::GenericEdge::EdgeKindMaskBits</a></div><div class="ttdeci">static constexpr unsigned char EdgeKindMaskBits</div><div class="ttdoc">We use the lower 8 bits to denote edge kind. </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00119">GenericGraph.h:119</a></div></div>
272
- <div class="ttc" id="classSVF_1_1BinaryOPStmt_html_ac8831079a5a9c6d50fbd09ff545e7cfd"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html#ac8831079a5a9c6d50fbd09ff545e7cfd">SVF::BinaryOPStmt::classof</a></div><div class="ttdeci">static bool classof(const GenericPAGEdgeTy *edge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00832">SVFStatements.h:832</a></div></div>
273
- <div class="ttc" id="classSVF_1_1BinaryOPStmt_html_a7470a2412985bbb227bb62d8a297b7f1"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html#a7470a2412985bbb227bb62d8a297b7f1">SVF::BinaryOPStmt::BinaryOPStmt</a></div><div class="ttdeci">BinaryOPStmt(SVFVar *s, const OPVars &amp;opnds, u32_t oc)</div><div class="ttdoc">constructor </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00839">SVFStatements.h:839</a></div></div>
272
+ <div class="ttc" id="classSVF_1_1BinaryOPStmt_html_ac8831079a5a9c6d50fbd09ff545e7cfd"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html#ac8831079a5a9c6d50fbd09ff545e7cfd">SVF::BinaryOPStmt::classof</a></div><div class="ttdeci">static bool classof(const GenericPAGEdgeTy *edge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00837">SVFStatements.h:837</a></div></div>
273
+ <div class="ttc" id="classSVF_1_1BinaryOPStmt_html_a7470a2412985bbb227bb62d8a297b7f1"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html#a7470a2412985bbb227bb62d8a297b7f1">SVF::BinaryOPStmt::BinaryOPStmt</a></div><div class="ttdeci">BinaryOPStmt(SVFVar *s, const OPVars &amp;opnds, u32_t oc)</div><div class="ttdoc">constructor </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00844">SVFStatements.h:844</a></div></div>
274
274
  <div class="ttc" id="classSVF_1_1SVFStmt_html_a86628ea173dec4934322f5d1caf2e1db"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a86628ea173dec4934322f5d1caf2e1db">SVF::SVFStmt::getInst</a></div><div class="ttdeci">const Instruction * getInst() const</div><div class="ttdoc">Get/set methods for llvm instruction. </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00108">SVFStatements.h:108</a></div></div>
275
275
  <div class="ttc" id="classSVF_1_1CopyStmt_html"><div class="ttname"><a href="classSVF_1_1CopyStmt.html">SVF::CopyStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00305">SVFStatements.h:305</a></div></div>
276
276
  <div class="ttc" id="namespaceSVF_html_a366625858f450a1ea5f985a3c83e0f14"><div class="ttname"><a href="namespaceSVF.html#a366625858f450a1ea5f985a3c83e0f14">SVF::u64_t</a></div><div class="ttdeci">unsigned long long u64_t</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00076">SVFBasicTypes.h:76</a></div></div>