svf-tools 1.0.409 → 1.0.412

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 (210) hide show
  1. package/CMakeLists.txt +1 -1
  2. package/SVF-doxygen/html/html/AbstractPointsToDS_8h_source.html +1 -1
  3. package/SVF-doxygen/html/html/AndersenHLCD_8cpp_source.html +1 -1
  4. package/SVF-doxygen/html/html/AndersenLCD_8cpp_source.html +1 -1
  5. package/SVF-doxygen/html/html/AndersenSFR_8cpp_source.html +2 -2
  6. package/SVF-doxygen/html/html/AndersenSFR_8h_source.html +1 -1
  7. package/SVF-doxygen/html/html/AndersenStat_8cpp_source.html +3 -3
  8. package/SVF-doxygen/html/html/Andersen_8cpp_source.html +3 -3
  9. package/SVF-doxygen/html/html/Andersen_8h_source.html +3 -3
  10. package/SVF-doxygen/html/html/ContextDDA_8cpp_source.html +6 -6
  11. package/SVF-doxygen/html/html/ContextDDA_8h_source.html +3 -3
  12. package/SVF-doxygen/html/html/CoreBitVector_8cpp_source.html +1 -1
  13. package/SVF-doxygen/html/html/DDAPass_8cpp_source.html +1 -1
  14. package/SVF-doxygen/html/html/DDAStat_8cpp_source.html +7 -7
  15. package/SVF-doxygen/html/html/DDAStat_8h_source.html +5 -5
  16. package/SVF-doxygen/html/html/ExtAPI_8cpp_source.html +1 -1
  17. package/SVF-doxygen/html/html/ExtAPI_8h_source.html +1 -1
  18. package/SVF-doxygen/html/html/FSMPTA_8cpp_source.html +2 -2
  19. package/SVF-doxygen/html/html/FSMPTA_8h_source.html +3 -2
  20. package/SVF-doxygen/html/html/FlowDDA_8h_source.html +2 -2
  21. package/SVF-doxygen/html/html/FlowSensitiveTBHC_8cpp_source.html +7 -6
  22. package/SVF-doxygen/html/html/FlowSensitive_8cpp_source.html +3 -3
  23. package/SVF-doxygen/html/html/IRAnnotator_8h_source.html +1 -1
  24. package/SVF-doxygen/html/html/LLVMUtil_8cpp_source.html +1 -1
  25. package/SVF-doxygen/html/html/LockResultValidator_8cpp_source.html +1 -1
  26. package/SVF-doxygen/html/html/MHP_8cpp.html +2 -83
  27. package/SVF-doxygen/html/html/MHP_8cpp_source.html +42 -46
  28. package/SVF-doxygen/html/html/MHP_8h_source.html +26 -26
  29. package/SVF-doxygen/html/html/MTAResultValidator_8cpp_source.html +2 -2
  30. package/SVF-doxygen/html/html/MTAResultValidator_8h_source.html +1 -1
  31. package/SVF-doxygen/html/html/MTAStat_8cpp_source.html +2 -2
  32. package/SVF-doxygen/html/html/MTA_8cpp_source.html +1 -1
  33. package/SVF-doxygen/html/html/MemSSA_8cpp_source.html +3 -3
  34. package/SVF-doxygen/html/html/NodeIDAllocator_8cpp_source.html +10 -10
  35. package/SVF-doxygen/html/html/NodeIDAllocator_8h_source.html +9 -9
  36. package/SVF-doxygen/html/html/PointerAnalysisImpl_8cpp_source.html +11 -11
  37. package/SVF-doxygen/html/html/PointerAnalysisImpl_8h_source.html +8 -8
  38. package/SVF-doxygen/html/html/PointerAnalysis_8cpp_source.html +9 -9
  39. package/SVF-doxygen/html/html/PointerAnalysis_8h_source.html +30 -31
  40. package/SVF-doxygen/html/html/SVFGBuilder_8cpp_source.html +5 -5
  41. package/SVF-doxygen/html/html/SVFGNode_8h_source.html +33 -34
  42. package/SVF-doxygen/html/html/SVFGStat_8cpp_source.html +9 -9
  43. package/SVF-doxygen/html/html/SVFGStat_8h_source.html +8 -7
  44. package/SVF-doxygen/html/html/SVFG_8cpp_source.html +3 -3
  45. package/SVF-doxygen/html/html/SVFG_8h_source.html +1 -1
  46. package/SVF-doxygen/html/html/SVFIRBuilder_8cpp_source.html +1 -1
  47. package/SVF-doxygen/html/html/SVFIR_8cpp_source.html +1 -1
  48. package/SVF-doxygen/html/html/SaberSVFGBuilder_8cpp_source.html +3 -3
  49. package/SVF-doxygen/html/html/SymbolTableInfo_8cpp_source.html +1 -1
  50. package/SVF-doxygen/html/html/SymbolTableInfo_8h_source.html +2 -2
  51. package/SVF-doxygen/html/html/TCT_8cpp_source.html +14 -14
  52. package/SVF-doxygen/html/html/ThreadCallGraph_8cpp_source.html +1 -1
  53. package/SVF-doxygen/html/html/TypeBasedHeapCloning_8cpp_source.html +3 -3
  54. package/SVF-doxygen/html/html/VFG_8cpp_source.html +1 -1
  55. package/SVF-doxygen/html/html/VersionedFlowSensitive_8cpp_source.html +6 -5
  56. package/SVF-doxygen/html/html/classSVF_1_1Andersen-members.html +214 -215
  57. package/SVF-doxygen/html/html/classSVF_1_1Andersen.html +15 -16
  58. package/SVF-doxygen/html/html/classSVF_1_1AndersenBase-members.html +180 -181
  59. package/SVF-doxygen/html/html/classSVF_1_1AndersenBase.html +1 -4
  60. package/SVF-doxygen/html/html/classSVF_1_1AndersenHCD-members.html +226 -227
  61. package/SVF-doxygen/html/html/classSVF_1_1AndersenHCD.html +0 -3
  62. package/SVF-doxygen/html/html/classSVF_1_1AndersenHLCD-members.html +232 -233
  63. package/SVF-doxygen/html/html/classSVF_1_1AndersenHLCD.html +2 -5
  64. package/SVF-doxygen/html/html/classSVF_1_1AndersenLCD-members.html +222 -223
  65. package/SVF-doxygen/html/html/classSVF_1_1AndersenLCD.html +3 -6
  66. package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD-members.html +222 -223
  67. package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD.html +1 -4
  68. package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR-members.html +152 -154
  69. package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR.html +9 -12
  70. package/SVF-doxygen/html/html/classSVF_1_1AndersenStat.html +3 -3
  71. package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff-members.html +221 -222
  72. package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff.html +0 -3
  73. package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl-members.html +132 -133
  74. package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl.html +28 -33
  75. package/SVF-doxygen/html/html/classSVF_1_1CondPTAImpl.html +2 -4
  76. package/SVF-doxygen/html/html/classSVF_1_1ContextDDA.html +10 -10
  77. package/SVF-doxygen/html/html/classSVF_1_1CoreBitVector.html +1 -1
  78. package/SVF-doxygen/html/html/classSVF_1_1DDAPass.html +3 -3
  79. package/SVF-doxygen/html/html/classSVF_1_1DDAStat-members.html +4 -4
  80. package/SVF-doxygen/html/html/classSVF_1_1DDAStat.html +34 -25
  81. package/SVF-doxygen/html/html/classSVF_1_1DummyVersionPropSVFGNode.html +16 -16
  82. package/SVF-doxygen/html/html/classSVF_1_1ExtAPI.html +3 -3
  83. package/SVF-doxygen/html/html/classSVF_1_1FSMPTA-members.html +247 -248
  84. package/SVF-doxygen/html/html/classSVF_1_1FSMPTA.html +2 -5
  85. package/SVF-doxygen/html/html/classSVF_1_1FlowDDA-members.html +208 -209
  86. package/SVF-doxygen/html/html/classSVF_1_1FlowDDA.html +8 -11
  87. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive-members.html +238 -239
  88. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive.html +21 -24
  89. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveStat.html +2 -2
  90. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveTBHC-members.html +275 -276
  91. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveTBHC.html +8 -10
  92. package/SVF-doxygen/html/html/classSVF_1_1ForkJoinAnalysis.html +31 -31
  93. package/SVF-doxygen/html/html/classSVF_1_1IRAnnotator.html +2 -2
  94. package/SVF-doxygen/html/html/classSVF_1_1InterMSSAPHISVFGNode.html +38 -38
  95. package/SVF-doxygen/html/html/classSVF_1_1IntraMSSAPHISVFGNode-members.html +13 -14
  96. package/SVF-doxygen/html/html/classSVF_1_1IntraMSSAPHISVFGNode.html +19 -43
  97. package/SVF-doxygen/html/html/classSVF_1_1LockAnalysis.html +2 -2
  98. package/SVF-doxygen/html/html/classSVF_1_1LockResultValidator.html +1 -1
  99. package/SVF-doxygen/html/html/classSVF_1_1MHP.html +74 -74
  100. package/SVF-doxygen/html/html/classSVF_1_1MHPValidator.html +7 -7
  101. package/SVF-doxygen/html/html/classSVF_1_1MTA.html +1 -1
  102. package/SVF-doxygen/html/html/classSVF_1_1MTAAnnotator.html +1 -1
  103. package/SVF-doxygen/html/html/classSVF_1_1MTAResultValidator.html +4 -4
  104. package/SVF-doxygen/html/html/classSVF_1_1MTASVFGBuilder.html +5 -5
  105. package/SVF-doxygen/html/html/classSVF_1_1MTAStat.html +2 -2
  106. package/SVF-doxygen/html/html/classSVF_1_1MemObj-members.html +1 -1
  107. package/SVF-doxygen/html/html/classSVF_1_1MemObj.html +8 -8
  108. package/SVF-doxygen/html/html/classSVF_1_1MemSSA.html +3 -3
  109. package/SVF-doxygen/html/html/classSVF_1_1MemSSAStat-members.html +2 -2
  110. package/SVF-doxygen/html/html/classSVF_1_1MemSSAStat.html +15 -14
  111. package/SVF-doxygen/html/html/classSVF_1_1NodeIDAllocator_1_1Clusterer.html +33 -33
  112. package/SVF-doxygen/html/html/classSVF_1_1PTAStat.html +3 -3
  113. package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis-members.html +94 -95
  114. package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.html +73 -107
  115. package/SVF-doxygen/html/html/classSVF_1_1RaceResultValidator.html +1 -1
  116. package/SVF-doxygen/html/html/classSVF_1_1SVFG.html +4 -4
  117. package/SVF-doxygen/html/html/classSVF_1_1SVFGBuilder.html +11 -13
  118. package/SVF-doxygen/html/html/classSVF_1_1SVFGStat-members.html +6 -6
  119. package/SVF-doxygen/html/html/classSVF_1_1SVFGStat.html +53 -52
  120. package/SVF-doxygen/html/html/classSVF_1_1SVFIR.html +15 -30
  121. package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder.html +2 -2
  122. package/SVF-doxygen/html/html/classSVF_1_1SaberSVFGBuilder.html +3 -3
  123. package/SVF-doxygen/html/html/classSVF_1_1Steensgaard-members.html +193 -194
  124. package/SVF-doxygen/html/html/classSVF_1_1Steensgaard.html +0 -3
  125. package/SVF-doxygen/html/html/classSVF_1_1TCT.html +18 -18
  126. package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraph.html +1 -1
  127. package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis-members.html +184 -185
  128. package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis.html +2 -5
  129. package/SVF-doxygen/html/html/classSVF_1_1TypeBasedHeapCloning.html +3 -3
  130. package/SVF-doxygen/html/html/classSVF_1_1VFG.html +1 -1
  131. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive-members.html +287 -288
  132. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive.html +8 -10
  133. package/SVF-doxygen/html/html/functions_0x7e.html +1 -1
  134. package/SVF-doxygen/html/html/functions_c.html +18 -21
  135. package/SVF-doxygen/html/html/functions_func_0x7e.html +1 -1
  136. package/SVF-doxygen/html/html/functions_func_c.html +12 -13
  137. package/SVF-doxygen/html/html/functions_func_p.html +9 -9
  138. package/SVF-doxygen/html/html/functions_l.html +3 -3
  139. package/SVF-doxygen/html/html/functions_m.html +4 -4
  140. package/SVF-doxygen/html/html/functions_o.html +4 -4
  141. package/SVF-doxygen/html/html/functions_p.html +12 -12
  142. package/SVF-doxygen/html/html/functions_r.html +5 -4
  143. package/SVF-doxygen/html/html/functions_s.html +3 -3
  144. package/SVF-doxygen/html/html/functions_t.html +5 -7
  145. package/SVF-doxygen/html/html/functions_v.html +6 -6
  146. package/SVF-doxygen/html/html/functions_vars_m.html +4 -4
  147. package/SVF-doxygen/html/html/functions_vars_r.html +1 -2
  148. package/SVF-doxygen/html/html/globals_func_g.html +0 -6
  149. package/SVF-doxygen/html/html/globals_g.html +2 -8
  150. package/SVF-doxygen/html/html/globals_s.html +4 -2
  151. package/SVF-doxygen/html/html/namespaceSVF_1_1SVFUtil.html +1 -2
  152. package/SVF-doxygen/html/html/search/all_10.js +7 -7
  153. package/SVF-doxygen/html/html/search/all_12.js +3 -3
  154. package/SVF-doxygen/html/html/search/all_13.js +7 -7
  155. package/SVF-doxygen/html/html/search/all_14.js +4 -4
  156. package/SVF-doxygen/html/html/search/all_16.js +3 -3
  157. package/SVF-doxygen/html/html/search/all_1b.js +1 -1
  158. package/SVF-doxygen/html/html/search/all_3.js +1 -1
  159. package/SVF-doxygen/html/html/search/all_7.js +0 -2
  160. package/SVF-doxygen/html/html/search/all_c.js +2 -2
  161. package/SVF-doxygen/html/html/search/all_d.js +4 -4
  162. package/SVF-doxygen/html/html/search/all_e.js +1 -1
  163. package/SVF-doxygen/html/html/search/all_f.js +3 -3
  164. package/SVF-doxygen/html/html/search/functions_10.js +1 -1
  165. package/SVF-doxygen/html/html/search/functions_16.js +1 -1
  166. package/SVF-doxygen/html/html/search/functions_2.js +1 -1
  167. package/SVF-doxygen/html/html/search/functions_6.js +0 -2
  168. package/SVF-doxygen/html/html/search/functions_e.js +6 -6
  169. package/SVF-doxygen/html/html/search/variables_12.js +1 -1
  170. package/SVF-doxygen/html/html/search/variables_14.js +3 -3
  171. package/SVF-doxygen/html/html/search/variables_d.js +4 -4
  172. package/SVF-doxygen/html/html/search/variables_e.js +1 -1
  173. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01TCT_01_5_01_4.html +14 -14
  174. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1SVFGNodeLockSpan_01_4.html +3 -3
  175. package/SVF-doxygen/html/html/svf-ex_8cpp.html +4 -3
  176. package/SVF-doxygen/html/html/svf-ex_8cpp_source.html +2 -1
  177. package/include/DDA/DDAStat.h +4 -4
  178. package/include/Graphs/SVFGNode.h +2 -4
  179. package/include/Graphs/SVFGStat.h +8 -8
  180. package/include/MTA/FSMPTA.h +1 -0
  181. package/include/MTA/MTAResultValidator.h +1 -1
  182. package/include/MemoryModel/AbstractPointsToDS.h +6 -0
  183. package/include/MemoryModel/PointerAnalysis.h +0 -5
  184. package/include/MemoryModel/SymbolTableInfo.h +2 -2
  185. package/include/Util/IRAnnotator.h +2 -2
  186. package/include/WPA/Andersen.h +1 -1
  187. package/include/WPA/AndersenSFR.h +1 -1
  188. package/lib/CUDD/CMakeLists.txt +1 -1
  189. package/lib/DDA/DDAStat.cpp +2 -2
  190. package/lib/Graphs/SVFGStat.cpp +4 -4
  191. package/lib/MSSA/SVFGBuilder.cpp +0 -1
  192. package/lib/MTA/FSMPTA.cpp +2 -3
  193. package/lib/MTA/LockResultValidator.cpp +1 -1
  194. package/lib/MTA/MHP.cpp +0 -36
  195. package/lib/MTA/MTAResultValidator.cpp +3 -3
  196. package/lib/MTA/TCT.cpp +0 -1
  197. package/lib/MemoryModel/PointerAnalysis.cpp +1 -1
  198. package/lib/MemoryModel/PointerAnalysisImpl.cpp +0 -1
  199. package/lib/MemoryModel/SVFIR.cpp +15 -15
  200. package/lib/MemoryModel/SymbolTableInfo.cpp +1 -1
  201. package/lib/SVF-FE/LLVMUtil.cpp +1 -1
  202. package/lib/SVF-FE/SVFIRBuilder.cpp +5 -5
  203. package/lib/Util/CoreBitVector.cpp +1 -1
  204. package/lib/Util/ExtAPI.cpp +1 -0
  205. package/lib/Util/NodeIDAllocator.cpp +0 -1
  206. package/lib/WPA/AndersenSFR.cpp +2 -2
  207. package/lib/WPA/FlowSensitiveTBHC.cpp +1 -1
  208. package/lib/WPA/VersionedFlowSensitive.cpp +4 -4
  209. package/package.json +1 -1
  210. package/tools/Example/svf-ex.cpp +4 -3
@@ -379,9 +379,6 @@ Public Member Functions</h2></td></tr>
379
379
  <tr class="memitem:a0bb90b398ef85504bcd816ae57bee01d inherit pub_methods_classSVF_1_1PointerAnalysis"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1PointerAnalysis.html#a0bb90b398ef85504bcd816ae57bee01d">computeDDAPts</a> (<a class="el" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a>)</td></tr>
380
380
  <tr class="memdesc:a0bb90b398ef85504bcd816ae57bee01d inherit pub_methods_classSVF_1_1PointerAnalysis"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compute points-to results on-demand, overridden by derived classes. <a href="classSVF_1_1PointerAnalysis.html#a0bb90b398ef85504bcd816ae57bee01d">More...</a><br /></td></tr>
381
381
  <tr class="separator:a0bb90b398ef85504bcd816ae57bee01d inherit pub_methods_classSVF_1_1PointerAnalysis"><td class="memSeparator" colspan="2">&#160;</td></tr>
382
- <tr class="memitem:a3f78f60e1947a6d6fbcd3a0ee11e262a inherit pub_methods_classSVF_1_1PointerAnalysis"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1PointerAnalysis.html#a3f78f60e1947a6d6fbcd3a0ee11e262a">clearPts</a> ()</td></tr>
383
- <tr class="memdesc:a3f78f60e1947a6d6fbcd3a0ee11e262a inherit pub_methods_classSVF_1_1PointerAnalysis"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clear points-to data. <a href="classSVF_1_1PointerAnalysis.html#a3f78f60e1947a6d6fbcd3a0ee11e262a">More...</a><br /></td></tr>
384
- <tr class="separator:a3f78f60e1947a6d6fbcd3a0ee11e262a inherit pub_methods_classSVF_1_1PointerAnalysis"><td class="memSeparator" colspan="2">&#160;</td></tr>
385
382
  <tr class="memitem:a84edebc59e29f2cc1b89a699b8641f30 inherit pub_methods_classSVF_1_1PointerAnalysis"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1PointerAnalysis.html#a84edebc59e29f2cc1b89a699b8641f30">printIndCSTargets</a> (const <a class="el" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a> *cs, const <a class="el" href="classSVF_1_1PointerAnalysis.html#ac1422cd8b449fdb4a1f7c539364e4c41">FunctionSet</a> &amp;targets)</td></tr>
386
383
  <tr class="memdesc:a84edebc59e29f2cc1b89a699b8641f30 inherit pub_methods_classSVF_1_1PointerAnalysis"><td class="mdescLeft">&#160;</td><td class="mdescRight">Print targets of a function pointer. <a href="classSVF_1_1PointerAnalysis.html#a84edebc59e29f2cc1b89a699b8641f30">More...</a><br /></td></tr>
387
384
  <tr class="separator:a84edebc59e29f2cc1b89a699b8641f30 inherit pub_methods_classSVF_1_1PointerAnalysis"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -511,8 +508,8 @@ Protected Member Functions</h2></td></tr>
511
508
  <tr class="separator:a7bb1bd307c5db4d732e51af810c5ad75"><td class="memSeparator" colspan="2">&#160;</td></tr>
512
509
  <tr class="memitem:aa768e5cd0a762d17e2ec2baaad0486bf"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1AndersenSFR.html#aa768e5cd0a762d17e2ec2baaad0486bf">fieldExpand</a> (<a class="el" href="namespaceSVF.html#a212231734fa43d5c7414137deaac7df3">NodeSet</a> &amp;initials, <a class="el" href="namespaceSVF.html#a9b707002523ece2ac54ca893ee9a2d4e">s32_t</a> offset, <a class="el" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a> &amp;strides, <a class="el" href="classSVF_1_1PointsTo.html">PointsTo</a> &amp;expandPts)</td></tr>
513
510
  <tr class="separator:aa768e5cd0a762d17e2ec2baaad0486bf"><td class="memSeparator" colspan="2">&#160;</td></tr>
514
- <tr class="memitem:a8a3dc46d1a8a6996e048956551fec566"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1AndersenSFR.html#a8a3dc46d1a8a6996e048956551fec566">processGepPts</a> (<a class="el" href="classSVF_1_1PointsTo.html">PointsTo</a> &amp;pts, const <a class="el" href="classSVF_1_1GepCGEdge.html">GepCGEdge</a> *edge)</td></tr>
515
- <tr class="separator:a8a3dc46d1a8a6996e048956551fec566"><td class="memSeparator" colspan="2">&#160;</td></tr>
511
+ <tr class="memitem:a654abe596f1f6f33e2373503af1f5038"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1AndersenSFR.html#a654abe596f1f6f33e2373503af1f5038">processGepPts</a> (const <a class="el" href="classSVF_1_1PointsTo.html">PointsTo</a> &amp;pts, const <a class="el" href="classSVF_1_1GepCGEdge.html">GepCGEdge</a> *edge)</td></tr>
512
+ <tr class="separator:a654abe596f1f6f33e2373503af1f5038"><td class="memSeparator" colspan="2">&#160;</td></tr>
516
513
  <tr class="memitem:ac5f406db5610347564fceff4d36f6a6f"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1AndersenSFR.html#ac5f406db5610347564fceff4d36f6a6f">mergeSrcToTgt</a> (<a class="el" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> nodeId, <a class="el" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> newRepId)</td></tr>
517
514
  <tr class="separator:ac5f406db5610347564fceff4d36f6a6f"><td class="memSeparator" colspan="2">&#160;</td></tr>
518
515
  <tr class="inherit_header pro_methods_classSVF_1_1AndersenSCD"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classSVF_1_1AndersenSCD')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classSVF_1_1AndersenSCD.html">SVF::AndersenSCD</a></td></tr>
@@ -588,8 +585,6 @@ Protected Member Functions</h2></td></tr>
588
585
  <tr class="separator:ac4afe532655c3f311143ebbe15175ca2 inherit pro_methods_classSVF_1_1Andersen"><td class="memSeparator" colspan="2">&#160;</td></tr>
589
586
  <tr class="memitem:aa697d4a6fe09dd6e50abb09228b3567f inherit pro_methods_classSVF_1_1Andersen"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1Andersen.html#aa697d4a6fe09dd6e50abb09228b3567f">processGep</a> (<a class="el" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> node, const <a class="el" href="classSVF_1_1GepCGEdge.html">GepCGEdge</a> *edge)</td></tr>
590
587
  <tr class="separator:aa697d4a6fe09dd6e50abb09228b3567f inherit pro_methods_classSVF_1_1Andersen"><td class="memSeparator" colspan="2">&#160;</td></tr>
591
- <tr class="memitem:ac6b1efcaadfed48c226701ecf6bac55e inherit pro_methods_classSVF_1_1Andersen"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1Andersen.html#ac6b1efcaadfed48c226701ecf6bac55e">processGepPts</a> (const <a class="el" href="classSVF_1_1PointsTo.html">PointsTo</a> &amp;pts, const <a class="el" href="classSVF_1_1GepCGEdge.html">GepCGEdge</a> *edge)</td></tr>
592
- <tr class="separator:ac6b1efcaadfed48c226701ecf6bac55e inherit pro_methods_classSVF_1_1Andersen"><td class="memSeparator" colspan="2">&#160;</td></tr>
593
588
  <tr class="memitem:a1ba1e1e36af289982146de06cf06ab0a inherit pro_methods_classSVF_1_1Andersen"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1Andersen.html#a1ba1e1e36af289982146de06cf06ab0a">mergeSccNodes</a> (<a class="el" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> repNodeId, const <a class="el" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a> &amp;subNodes)</td></tr>
594
589
  <tr class="memdesc:a1ba1e1e36af289982146de06cf06ab0a inherit pro_methods_classSVF_1_1Andersen"><td class="mdescLeft">&#160;</td><td class="mdescRight">Merge sub node in a SCC cycle to their rep node. <a href="classSVF_1_1Andersen.html#a1ba1e1e36af289982146de06cf06ab0a">More...</a><br /></td></tr>
595
590
  <tr class="separator:a1ba1e1e36af289982146de06cf06ab0a inherit pro_methods_classSVF_1_1Andersen"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -1042,7 +1037,7 @@ Additional Inherited Members</h2></td></tr>
1042
1037
  </div><div class="memdoc">
1043
1038
 
1044
1039
  <p class="definition">Definition at line <a class="el" href="AndersenSFR_8cpp_source.html#l00119">119</a> of file <a class="el" href="AndersenSFR_8cpp_source.html">AndersenSFR.cpp</a>.</p>
1045
- <div class="fragment"><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;{</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <a class="code" href="classSVF_1_1AndersenBase.html#a9f453ec1b4236b8194ae590981217259">numOfFieldExpand</a>++;</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="keywordflow">while</span> (!initials.empty())</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; {</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> init = *initials.begin();</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; initials.erase(init);</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1AndersenBase.html#ae21e38a06a4397d11cdd17b0f8f282fd">consCG</a>-&gt;<a class="code" href="classSVF_1_1ConstraintGraph.html#a8ba74f82c1e796f2888ba34bc8355ce9">isBlkObjOrConstantObj</a>(init))</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; expandPts.<a class="code" href="classSVF_1_1PointsTo.html#ab196d86cfb48d1c5d27a0c03c7497afa">set</a>(init);</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; {</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <a class="code" href="classSVF_1_1SVFVar.html">PAGNode</a>* initPN = <a class="code" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>-&gt;<a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(init);</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1MemObj.html">MemObj</a>* obj = <a class="code" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>-&gt;<a class="code" href="classSVF_1_1SVFIR.html#af76a55c3b8255a81a566bdce35ffc749">getBaseObj</a>(init);</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> maxLimit = obj-&gt;<a class="code" href="classSVF_1_1MemObj.html#a51be7ad70bc2c6a4230bd2f6b86bdc88">getMaxFieldOffsetLimit</a>();</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <a class="code" href="namespaceSVF.html#a9b707002523ece2ac54ca893ee9a2d4e">s32_t</a> initOffset;</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1GepObjVar.html">GepObjVar</a> *gepNode = SVFUtil::dyn_cast&lt;GepObjVar&gt;(initPN))</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; initOffset = gepNode-&gt;getConstantFieldIdx();</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa&lt;FIObjVar&gt;(initPN) || SVFUtil::isa&lt;DummyObjVar&gt;(initPN))</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; initOffset = 0;</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<span class="keyword">false</span> &amp;&amp; <span class="stringliteral">&quot;Not an object node!!&quot;</span>);</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set&lt;s32_t&gt;</a> offsets;</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; offsets.insert(offset);</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <span class="comment">// calculate offsets</span></div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; <span class="keywordtype">bool</span> loopFlag = <span class="keyword">true</span>;</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <span class="keywordflow">while</span> (loopFlag)</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; {</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; loopFlag = <span class="keyword">false</span>;</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">auto</span> _f : offsets)</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">auto</span> _s : strides)</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; {</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <a class="code" href="namespaceSVF.html#a9b707002523ece2ac54ca893ee9a2d4e">s32_t</a> _f1 = _f + _s;</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; loopFlag = (offsets.find(_f1) == offsets.end()) &amp;&amp; (initOffset + _f1 &lt; maxLimit);</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="keywordflow">if</span> (loopFlag)</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; offsets.insert(_f1);</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; }</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; }</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <span class="comment">// get gep objs</span></div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#a9b707002523ece2ac54ca893ee9a2d4e">s32_t</a> _f : offsets)</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; {</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> gepId = <a class="code" href="classSVF_1_1AndersenBase.html#ae21e38a06a4397d11cdd17b0f8f282fd">consCG</a>-&gt;<a class="code" href="classSVF_1_1ConstraintGraph.html#a3f727a2822fb18a14ce9e10c6534cf5a">getGepObjVar</a>(init, <a class="code" href="classSVF_1_1LocationSet.html">LocationSet</a>(_f));</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; initials.erase(gepId); <span class="comment">// gep id in initials should be removed to avoid redundant derivation</span></div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; expandPts.<a class="code" href="classSVF_1_1PointsTo.html#ab196d86cfb48d1c5d27a0c03c7497afa">set</a>(gepId);</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; }</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; }</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; }</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160;}</div><div class="ttc" id="classSVF_1_1ConstraintGraph_html_a8ba74f82c1e796f2888ba34bc8355ce9"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a8ba74f82c1e796f2888ba34bc8355ce9">SVF::ConstraintGraph::isBlkObjOrConstantObj</a></div><div class="ttdeci">bool isBlkObjOrConstantObj(NodeID id)</div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8h_source.html#l00309">ConsG.h:309</a></div></div>
1040
+ <div class="fragment"><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;{</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <a class="code" href="classSVF_1_1AndersenBase.html#a9f453ec1b4236b8194ae590981217259">numOfFieldExpand</a>++;</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="keywordflow">while</span> (!initials.empty())</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; {</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> init = *initials.begin();</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; initials.erase(init);</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1AndersenBase.html#ae21e38a06a4397d11cdd17b0f8f282fd">consCG</a>-&gt;<a class="code" href="classSVF_1_1ConstraintGraph.html#a8ba74f82c1e796f2888ba34bc8355ce9">isBlkObjOrConstantObj</a>(init))</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; expandPts.<a class="code" href="classSVF_1_1PointsTo.html#ab196d86cfb48d1c5d27a0c03c7497afa">set</a>(init);</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; {</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <a class="code" href="classSVF_1_1SVFVar.html">PAGNode</a>* initPN = <a class="code" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>-&gt;<a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(init);</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1MemObj.html">MemObj</a>* obj = <a class="code" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>-&gt;<a class="code" href="classSVF_1_1SVFIR.html#af76a55c3b8255a81a566bdce35ffc749">getBaseObj</a>(init);</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> maxLimit = obj-&gt;<a class="code" href="classSVF_1_1MemObj.html#a51be7ad70bc2c6a4230bd2f6b86bdc88">getMaxFieldOffsetLimit</a>();</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <a class="code" href="namespaceSVF.html#a9b707002523ece2ac54ca893ee9a2d4e">s32_t</a> initOffset;</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1GepObjVar.html">GepObjVar</a> *gepNode = SVFUtil::dyn_cast&lt;GepObjVar&gt;(initPN))</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; initOffset = gepNode-&gt;getConstantFieldIdx();</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa&lt;FIObjVar&gt;(initPN) || SVFUtil::isa&lt;DummyObjVar&gt;(initPN))</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; initOffset = 0;</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<span class="keyword">false</span> &amp;&amp; <span class="stringliteral">&quot;Not an object node!!&quot;</span>);</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set&lt;s32_t&gt;</a> offsets;</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; offsets.insert(offset);</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <span class="comment">// calculate offsets</span></div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; <span class="keywordtype">bool</span> loopFlag = <span class="keyword">true</span>;</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <span class="keywordflow">while</span> (loopFlag)</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; {</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; loopFlag = <span class="keyword">false</span>;</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">auto</span> _f : offsets)</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">auto</span> _s : strides)</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; {</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <a class="code" href="namespaceSVF.html#a9b707002523ece2ac54ca893ee9a2d4e">s32_t</a> _f1 = _f + _s;</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; loopFlag = (offsets.find(_f1) == offsets.end()) &amp;&amp; ( (<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a>)(initOffset + _f1) &lt; maxLimit);</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="keywordflow">if</span> (loopFlag)</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; offsets.insert(_f1);</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; }</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; }</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <span class="comment">// get gep objs</span></div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#a9b707002523ece2ac54ca893ee9a2d4e">s32_t</a> _f : offsets)</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; {</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> gepId = <a class="code" href="classSVF_1_1AndersenBase.html#ae21e38a06a4397d11cdd17b0f8f282fd">consCG</a>-&gt;<a class="code" href="classSVF_1_1ConstraintGraph.html#a3f727a2822fb18a14ce9e10c6534cf5a">getGepObjVar</a>(init, <a class="code" href="classSVF_1_1LocationSet.html">LocationSet</a>(_f));</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; initials.erase(gepId); <span class="comment">// gep id in initials should be removed to avoid redundant derivation</span></div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; expandPts.<a class="code" href="classSVF_1_1PointsTo.html#ab196d86cfb48d1c5d27a0c03c7497afa">set</a>(gepId);</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; }</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; }</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; }</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160;}</div><div class="ttc" id="classSVF_1_1ConstraintGraph_html_a8ba74f82c1e796f2888ba34bc8355ce9"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a8ba74f82c1e796f2888ba34bc8355ce9">SVF::ConstraintGraph::isBlkObjOrConstantObj</a></div><div class="ttdeci">bool isBlkObjOrConstantObj(NodeID id)</div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8h_source.html#l00309">ConsG.h:309</a></div></div>
1046
1041
  <div class="ttc" id="classSVF_1_1MemObj_html"><div class="ttname"><a href="classSVF_1_1MemObj.html">SVF::MemObj</a></div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00404">SymbolTableInfo.h:404</a></div></div>
1047
1042
  <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>
1048
1043
  <div class="ttc" id="util_8h_html_a07d17d6d5d1074c0969bc5d3c3d1d84a"><div class="ttname"><a href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a></div><div class="ttdeci">#define assert(ex)</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00141">util.h:141</a></div></div>
@@ -1154,8 +1149,8 @@ Additional Inherited Members</h2></td></tr>
1154
1149
  </div><!-- fragment -->
1155
1150
  </div>
1156
1151
  </div>
1157
- <a id="a8a3dc46d1a8a6996e048956551fec566"></a>
1158
- <h2 class="memtitle"><span class="permalink"><a href="#a8a3dc46d1a8a6996e048956551fec566">&#9670;&nbsp;</a></span>processGepPts()</h2>
1152
+ <a id="a654abe596f1f6f33e2373503af1f5038"></a>
1153
+ <h2 class="memtitle"><span class="permalink"><a href="#a654abe596f1f6f33e2373503af1f5038">&#9670;&nbsp;</a></span>processGepPts()</h2>
1159
1154
 
1160
1155
  <div class="memitem">
1161
1156
  <div class="memproto">
@@ -1166,7 +1161,7 @@ Additional Inherited Members</h2></td></tr>
1166
1161
  <tr>
1167
1162
  <td class="memname">bool AndersenSFR::processGepPts </td>
1168
1163
  <td>(</td>
1169
- <td class="paramtype"><a class="el" href="classSVF_1_1PointsTo.html">PointsTo</a> &amp;&#160;</td>
1164
+ <td class="paramtype">const <a class="el" href="classSVF_1_1PointsTo.html">PointsTo</a> &amp;&#160;</td>
1170
1165
  <td class="paramname"><em>pts</em>, </td>
1171
1166
  </tr>
1172
1167
  <tr>
@@ -1183,12 +1178,14 @@ Additional Inherited Members</h2></td></tr>
1183
1178
  </table>
1184
1179
  </td>
1185
1180
  <td class="mlabels-right">
1186
- <span class="mlabels"><span class="mlabel">protected</span></span> </td>
1181
+ <span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">virtual</span></span> </td>
1187
1182
  </tr>
1188
1183
  </table>
1189
1184
  </div><div class="memdoc">
1190
1185
  <p>Propagate point-to set via a gep edge, using SFR </p>
1191
1186
 
1187
+ <p>Reimplemented from <a class="el" href="classSVF_1_1Andersen.html#ac6b1efcaadfed48c226701ecf6bac55e">SVF::Andersen</a>.</p>
1188
+
1192
1189
  <p class="definition">Definition at line <a class="el" href="AndersenSFR_8cpp_source.html#l00083">83</a> of file <a class="el" href="AndersenSFR_8cpp_source.html">AndersenSFR.cpp</a>.</p>
1193
1190
  <div class="fragment"><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;{</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <a class="code" href="classSVF_1_1ConstraintNode.html">ConstraintNode</a>* dst = edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#aeaa31a2c8479e831b36ce2e2582ceb86">getDstNode</a>();</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> dstId = dst-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>();</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="keywordflow">if</span> (!dst-&gt;<a class="code" href="classSVF_1_1ConstraintNode.html#a873ba0c14dc57bd603c4a6b4d73e4278">strides</a>.empty() &amp;&amp; SVFUtil::isa&lt;NormalGepCGEdge&gt;(edge)) <span class="comment">// dst is in pwc</span></div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; {</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a> tmpDstPts;</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a> srcInits = pts - <a class="code" href="classSVF_1_1Andersen.html#a187285a5bdf9422d9188b2b11b667639">getPts</a>(dstId);</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="keywordflow">if</span> (!srcInits.<a class="code" href="classSVF_1_1PointsTo.html#ac4688413177b49b37dbbfd3ed188d59b">empty</a>())</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; {</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <a class="code" href="namespaceSVF.html#a212231734fa43d5c7414137deaac7df3">NodeSet</a> sortSrcInits;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> ptd : srcInits)</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; sortSrcInits.insert(ptd);</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <a class="code" href="namespaceSVF.html#a9b707002523ece2ac54ca893ee9a2d4e">s32_t</a> offset = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">SVFUtil::dyn_cast</a>&lt;<a class="code" href="classSVF_1_1NormalGepCGEdge.html">NormalGepCGEdge</a>&gt;(edge)-&gt;getConstantFieldIdx();</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <a class="code" href="classSVF_1_1AndersenSFR.html#aa768e5cd0a762d17e2ec2baaad0486bf">fieldExpand</a>(sortSrcInits, offset, dst-&gt;<a class="code" href="classSVF_1_1ConstraintNode.html#a873ba0c14dc57bd603c4a6b4d73e4278">strides</a>, tmpDstPts);</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; }</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Andersen.html#ab7dadfd4d810be4863f03ed996b3b3c4">unionPts</a>(dstId, tmpDstPts))</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; {</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <a class="code" href="classSVF_1_1WPASolver.html#a4af1c3e72f5af96c4facff672108da58">pushIntoWorklist</a>(dstId);</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; }</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; }</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1Andersen.html#ac6b1efcaadfed48c226701ecf6bac55e">Andersen::processGepPts</a>(pts, edge);</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;}</div><div class="ttc" id="classSVF_1_1WPASolver_html_a4af1c3e72f5af96c4facff672108da58"><div class="ttname"><a href="classSVF_1_1WPASolver.html#a4af1c3e72f5af96c4facff672108da58">SVF::WPASolver::pushIntoWorklist</a></div><div class="ttdeci">virtual void pushIntoWorklist(NodeID id)</div><div class="ttdef"><b>Definition:</b> <a href="WPASolver_8h_source.html#l00162">WPASolver.h:162</a></div></div>
1194
1191
  <div class="ttc" id="classSVF_1_1Andersen_html_a187285a5bdf9422d9188b2b11b667639"><div class="ttname"><a href="classSVF_1_1Andersen.html#a187285a5bdf9422d9188b2b11b667639">SVF::Andersen::getPts</a></div><div class="ttdeci">virtual const PointsTo &amp; getPts(NodeID id)</div><div class="ttdoc">Operation of points-to set. </div><div class="ttdef"><b>Definition:</b> <a href="Andersen_8h_source.html#l00216">Andersen.h:216</a></div></div>
@@ -425,7 +425,7 @@ Additional Inherited Members</h2></td></tr>
425
425
  <div class="ttc" id="classSVF_1_1AndersenStat_html_afbd6b36ac1b0addb902fe8eb5643df83"><div class="ttname"><a href="classSVF_1_1AndersenStat.html#afbd6b36ac1b0addb902fe8eb5643df83">SVF::AndersenStat::_NumOfPWCCycles</a></div><div class="ttdeci">static u32_t _NumOfPWCCycles</div><div class="ttdef"><b>Definition:</b> <a href="WPAStat_8h_source.html#l00059">WPAStat.h:59</a></div></div>
426
426
  <div class="ttc" id="namespaceSVF_html_a740396763e377643790c8b803ab3e4ea"><div class="ttname"><a href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">SVF::NodeBS</a></div><div class="ttdeci">llvm::SparseBitVector NodeBS</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00088">SVFBasicTypes.h:88</a></div></div>
427
427
  <div class="ttc" id="classSVF_1_1ConstraintGraph_html_a6e8c46641da751fe3369c9d5407ce415"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a6e8c46641da751fe3369c9d5407ce415">SVF::ConstraintGraph::getBaseObjVar</a></div><div class="ttdeci">NodeID getBaseObjVar(NodeID id)</div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8h_source.html#l00317">ConsG.h:317</a></div></div>
428
- <div class="ttc" id="classSVF_1_1PointerAnalysis_html_a0f71e4cd0948b294c7d33a690bde7dbe"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a0f71e4cd0948b294c7d33a690bde7dbe">SVF::PointerAnalysis::isFieldInsensitive</a></div><div class="ttdeci">bool isFieldInsensitive(NodeID id) const</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00367">PointerAnalysis.h:367</a></div></div>
428
+ <div class="ttc" id="classSVF_1_1PointerAnalysis_html_a0f71e4cd0948b294c7d33a690bde7dbe"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a0f71e4cd0948b294c7d33a690bde7dbe">SVF::PointerAnalysis::isFieldInsensitive</a></div><div class="ttdeci">bool isFieldInsensitive(NodeID id) const</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00362">PointerAnalysis.h:362</a></div></div>
429
429
  <div class="ttc" id="classSVF_1_1GenericGraph_html_a43c9c773bfa17abf481c33073e30d01b"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">SVF::GenericGraph::getGNode</a></div><div class="ttdeci">NodeType * getGNode(NodeID id) const</div><div class="ttdoc">Get a node. </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00387">GenericGraph.h:387</a></div></div>
430
430
  <div class="ttc" id="classSVF_1_1AndersenStat_html_aa2e3a589d376de12a1cbfb0d1ebcacb9"><div class="ttname"><a href="classSVF_1_1AndersenStat.html#aa2e3a589d376de12a1cbfb0d1ebcacb9">SVF::AndersenStat::_NumOfNodesInCycles</a></div><div class="ttdeci">static u32_t _NumOfNodesInCycles</div><div class="ttdef"><b>Definition:</b> <a href="WPAStat_8h_source.html#l00060">WPAStat.h:60</a></div></div>
431
431
  </div><!-- fragment -->
@@ -604,13 +604,13 @@ Additional Inherited Members</h2></td></tr>
604
604
  <p class="definition">Definition at line <a class="el" href="AndersenStat_8cpp_source.html#l00220">220</a> of file <a class="el" href="AndersenStat_8cpp_source.html">AndersenStat.cpp</a>.</p>
605
605
  <div class="fragment"><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160;{</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160;</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; <a class="code" href="classSVF_1_1AndersenStat.html#a38dfd00f384eea7899a29b2ec32a0ded">_NumOfNullPtr</a> = 0;</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1GenericGraph.html#ac213302cf5c7cdf3b66f7b18649d0fbc">SVFIR::iterator</a> iter = <a class="code" href="classSVF_1_1AndersenStat.html#a8af8dd60987c4c99ea3727d9db87c187">pta</a>-&gt;<a class="code" href="classSVF_1_1PointerAnalysis.html#a240219c2dc4f5cc5f85445e18c79b83b">getPAG</a>()-&gt;<a class="code" href="classSVF_1_1GenericGraph.html#a0d9744b1b0e7a09a6f7af29188e243b7">begin</a>(), eiter = <a class="code" href="classSVF_1_1AndersenStat.html#a8af8dd60987c4c99ea3727d9db87c187">pta</a>-&gt;<a class="code" href="classSVF_1_1PointerAnalysis.html#a240219c2dc4f5cc5f85445e18c79b83b">getPAG</a>()-&gt;<a class="code" href="classSVF_1_1GenericGraph.html#a4bef15157423cef48dc7333a803cd27d">end</a>();</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; iter != eiter; ++iter)</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; {</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> pagNodeId = iter-&gt;first;</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; <a class="code" href="classSVF_1_1SVFVar.html">PAGNode</a>* pagNode = iter-&gt;second;</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; <span class="keywordflow">if</span> (SVFUtil::isa&lt;ValVar&gt;(pagNode) == <span class="keyword">false</span>)</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; <a class="code" href="classSVF_1_1SVFStmt.html#a8cd7b6c6fd8b030b1421d95a086359f4">SVFStmt::SVFStmtSetTy</a>&amp; inComingStore = pagNode-&gt;<a class="code" href="classSVF_1_1SVFVar.html#a76964ef7d4842a469d7720881499d8a6">getIncomingEdges</a>(<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9aa0f700b514c431ec5329aec49df56dcc">SVFStmt::Store</a>);</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; <a class="code" href="classSVF_1_1SVFStmt.html#a8cd7b6c6fd8b030b1421d95a086359f4">SVFStmt::SVFStmtSetTy</a>&amp; outGoingLoad = pagNode-&gt;<a class="code" href="classSVF_1_1SVFVar.html#a927733580b47be5ffcfced44ba9fd6c3">getOutgoingEdges</a>(<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a62ac8480c43fcc657c631ec0003b15d5">SVFStmt::Load</a>);</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; <span class="keywordflow">if</span> (inComingStore.empty()==<span class="keyword">false</span> || outGoingLoad.empty()==<span class="keyword">false</span>)</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; {</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a>&amp; pts = <a class="code" href="classSVF_1_1AndersenStat.html#a8af8dd60987c4c99ea3727d9db87c187">pta</a>-&gt;<a class="code" href="classSVF_1_1BVDataPTAImpl.html#aee289e298e421448caaa604b7eb34fcb">getPts</a>(pagNodeId);</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1AndersenStat.html#a8af8dd60987c4c99ea3727d9db87c187">pta</a>-&gt;<a class="code" href="classSVF_1_1PointerAnalysis.html#a56368369bc37e37b13f19e5eb1890063">containBlackHoleNode</a>(pts))</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; <a class="code" href="classSVF_1_1AndersenStat.html#a27d4e2bf145226f3c2b4d46fee2311e7">_NumOfBlackholePtr</a>++;</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160;</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1AndersenStat.html#a8af8dd60987c4c99ea3727d9db87c187">pta</a>-&gt;<a class="code" href="classSVF_1_1PointerAnalysis.html#afa7d9f6209904acd7893ae583e28dafd">containConstantNode</a>(pts))</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; <a class="code" href="classSVF_1_1AndersenStat.html#ab8f8152b5e6127f2d9bdcbd22083da67">_NumOfConstantPtr</a>++;</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160;</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; <span class="keywordflow">if</span>(pts.<a class="code" href="classSVF_1_1PointsTo.html#ac4688413177b49b37dbbfd3ed188d59b">empty</a>())</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; {</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; std::string str;</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; <a class="code" href="namespaceSVF.html#a726981481ac082dcda3e4921416b65a0">raw_string_ostream</a> rawstr(str);</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; <span class="keywordflow">if</span> (!SVFUtil::isa&lt;DummyValVar&gt;(pagNode) &amp;&amp; !SVFUtil::isa&lt;DummyObjVar&gt;(pagNode) )</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; {</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; <span class="comment">// if a pointer is in dead function, we do not care</span></div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a4dcfe3e66a16813350ec8dffd47c5644">isPtrInDeadFunction</a>(pagNode-&gt;<a class="code" href="classSVF_1_1SVFVar.html#afaa33caa8d2a306f6741d9d066243e40">getValue</a>()) == <span class="keyword">false</span>)</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; {</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; <a class="code" href="classSVF_1_1AndersenStat.html#a38dfd00f384eea7899a29b2ec32a0ded">_NumOfNullPtr</a>++;</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot;##Null Pointer : (NodeID &quot;</span> &lt;&lt; pagNode-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>()</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; &lt;&lt; <span class="stringliteral">&quot;) PtrName:&quot;</span> &lt;&lt; pagNode-&gt;<a class="code" href="classSVF_1_1SVFVar.html#afaa33caa8d2a306f6741d9d066243e40">getValue</a>()-&gt;getName();</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a077caa1b10ab84d101d79fc7ea50db2d">writeWrnMsg</a>(rawstr.str());</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; <span class="comment">//pagNode-&gt;getValue()-&gt;dump();</span></div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; }</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"> 259</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; {</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; <a class="code" href="classSVF_1_1AndersenStat.html#a38dfd00f384eea7899a29b2ec32a0ded">_NumOfNullPtr</a>++;</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot;##Null Pointer : (NodeID &quot;</span> &lt;&lt; pagNode-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>() &lt;&lt; <span class="stringliteral">&quot;)&quot;</span>;</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a077caa1b10ab84d101d79fc7ea50db2d">writeWrnMsg</a>(rawstr.str());</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="l00266"></a><span class="lineno"> 266</span>&#160; }</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; }</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160;</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160;}</div><div class="ttc" id="classSVF_1_1GenericGraph_html_a0d9744b1b0e7a09a6f7af29188e243b7"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#a0d9744b1b0e7a09a6f7af29188e243b7">SVF::GenericGraph::begin</a></div><div class="ttdeci">iterator begin()</div><div class="ttdoc">Iterators. </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00361">GenericGraph.h:361</a></div></div>
606
606
  <div class="ttc" id="classSVF_1_1AndersenStat_html_a8af8dd60987c4c99ea3727d9db87c187"><div class="ttname"><a href="classSVF_1_1AndersenStat.html#a8af8dd60987c4c99ea3727d9db87c187">SVF::AndersenStat::pta</a></div><div class="ttdeci">AndersenBase * pta</div><div class="ttdef"><b>Definition:</b> <a href="WPAStat_8h_source.html#l00052">WPAStat.h:52</a></div></div>
607
- <div class="ttc" id="classSVF_1_1PointerAnalysis_html_a56368369bc37e37b13f19e5eb1890063"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a56368369bc37e37b13f19e5eb1890063">SVF::PointerAnalysis::containBlackHoleNode</a></div><div class="ttdeci">bool containBlackHoleNode(const PointsTo &amp;pts)</div><div class="ttdoc">Determine whether a points-to contains a black hole or constant node. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00305">PointerAnalysis.h:305</a></div></div>
607
+ <div class="ttc" id="classSVF_1_1PointerAnalysis_html_a56368369bc37e37b13f19e5eb1890063"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a56368369bc37e37b13f19e5eb1890063">SVF::PointerAnalysis::containBlackHoleNode</a></div><div class="ttdeci">bool containBlackHoleNode(const PointsTo &amp;pts)</div><div class="ttdoc">Determine whether a points-to contains a black hole or constant node. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00300">PointerAnalysis.h:300</a></div></div>
608
608
  <div class="ttc" id="classSVF_1_1AndersenStat_html_ab8f8152b5e6127f2d9bdcbd22083da67"><div class="ttname"><a href="classSVF_1_1AndersenStat.html#ab8f8152b5e6127f2d9bdcbd22083da67">SVF::AndersenStat::_NumOfConstantPtr</a></div><div class="ttdeci">u32_t _NumOfConstantPtr</div><div class="ttdef"><b>Definition:</b> <a href="WPAStat_8h_source.html#l00063">WPAStat.h:63</a></div></div>
609
609
  <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>
610
610
  <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>
611
611
  <div class="ttc" id="classSVF_1_1SVFStmt_html_a8cd7b6c6fd8b030b1421d95a086359f4"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a8cd7b6c6fd8b030b1421d95a086359f4">SVF::SVFStmt::SVFStmtSetTy</a></div><div class="ttdeci">GenericNode&lt; SVFVar, SVFStmt &gt;::GEdgeSetTy SVFStmtSetTy</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00177">SVFStatements.h:177</a></div></div>
612
612
  <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>
613
- <div class="ttc" id="classSVF_1_1PointerAnalysis_html_afa7d9f6209904acd7893ae583e28dafd"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#afa7d9f6209904acd7893ae583e28dafd">SVF::PointerAnalysis::containConstantNode</a></div><div class="ttdeci">bool containConstantNode(const PointsTo &amp;pts)</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00309">PointerAnalysis.h:309</a></div></div>
613
+ <div class="ttc" id="classSVF_1_1PointerAnalysis_html_afa7d9f6209904acd7893ae583e28dafd"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#afa7d9f6209904acd7893ae583e28dafd">SVF::PointerAnalysis::containConstantNode</a></div><div class="ttdeci">bool containConstantNode(const PointsTo &amp;pts)</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00304">PointerAnalysis.h:304</a></div></div>
614
614
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a077caa1b10ab84d101d79fc7ea50db2d"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a077caa1b10ab84d101d79fc7ea50db2d">SVF::SVFUtil::writeWrnMsg</a></div><div class="ttdeci">void writeWrnMsg(std::string msg)</div><div class="ttdoc">Writes a message run through wrnMsg. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8cpp_source.html#l00069">SVFUtil.cpp:69</a></div></div>
615
615
  <div class="ttc" id="classSVF_1_1GenericGraph_html_a4bef15157423cef48dc7333a803cd27d"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#a4bef15157423cef48dc7333a803cd27d">SVF::GenericGraph::end</a></div><div class="ttdeci">iterator end()</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00365">GenericGraph.h:365</a></div></div>
616
616
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a4dcfe3e66a16813350ec8dffd47c5644"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a4dcfe3e66a16813350ec8dffd47c5644">SVF::SVFUtil::isPtrInDeadFunction</a></div><div class="ttdeci">bool isPtrInDeadFunction(const Value *value)</div><div class="ttdoc">Return true if this is value in a dead function (function without any caller) </div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00159">LLVMUtil.cpp:159</a></div></div>