svf-tools 1.0.518 → 1.0.521

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 (69) hide show
  1. package/SVF-doxygen/html/html/CFLAlias_8cpp_source.html +2 -2
  2. package/SVF-doxygen/html/html/CFLAlias_8h_source.html +13 -10
  3. package/SVF-doxygen/html/html/CFLGrammar_8txt.html +57 -21
  4. package/SVF-doxygen/html/html/ExtAPI_8cpp_source.html +19 -19
  5. package/SVF-doxygen/html/html/ExtAPI_8h_source.html +49 -48
  6. package/SVF-doxygen/html/html/GrammarBuilder_8cpp_source.html +4 -4
  7. package/SVF-doxygen/html/html/GrammarBuilder_8h_source.html +3 -3
  8. package/SVF-doxygen/html/html/Graph2Json_8cpp_source.html +1 -1
  9. package/SVF-doxygen/html/html/PointerAnalysisImpl_8cpp_source.html +2 -1
  10. package/SVF-doxygen/html/html/SVFIRBuilder_8cpp_source.html +1 -1
  11. package/SVF-doxygen/html/html/SVFIRBuilder_8h_source.html +6 -6
  12. package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl.html +17 -7
  13. package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl.png +0 -0
  14. package/SVF-doxygen/html/html/classSVF_1_1CFLAlias-members.html +118 -75
  15. package/SVF-doxygen/html/html/classSVF_1_1CFLAlias.html +168 -58
  16. package/SVF-doxygen/html/html/classSVF_1_1CFLAlias.png +0 -0
  17. package/SVF-doxygen/html/html/classSVF_1_1ExtAPI-members.html +29 -28
  18. package/SVF-doxygen/html/html/classSVF_1_1ExtAPI.html +94 -91
  19. package/SVF-doxygen/html/html/classSVF_1_1GrammarBuilder.html +10 -10
  20. package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.html +8 -8
  21. package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.png +0 -0
  22. package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder.html +45 -42
  23. package/SVF-doxygen/html/html/functions_e.html +4 -1
  24. package/SVF-doxygen/html/html/functions_eval_e.html +3 -0
  25. package/SVF-doxygen/html/html/functions_func_g.html +11 -9
  26. package/SVF-doxygen/html/html/functions_func_p.html +1 -1
  27. package/SVF-doxygen/html/html/functions_g.html +12 -10
  28. package/SVF-doxygen/html/html/functions_o.html +3 -3
  29. package/SVF-doxygen/html/html/functions_p.html +7 -7
  30. package/SVF-doxygen/html/html/functions_r.html +3 -3
  31. package/SVF-doxygen/html/html/functions_s.html +7 -9
  32. package/SVF-doxygen/html/html/functions_t.html +3 -1
  33. package/SVF-doxygen/html/html/functions_w.html +11 -11
  34. package/SVF-doxygen/html/html/globals_g.html +7 -4
  35. package/SVF-doxygen/html/html/globals_v.html +4 -1
  36. package/SVF-doxygen/html/html/globals_vars.html +11 -5
  37. package/SVF-doxygen/html/html/hierarchy.html +6 -6
  38. package/SVF-doxygen/html/html/search/all_10.js +5 -5
  39. package/SVF-doxygen/html/html/search/all_11.js +2 -2
  40. package/SVF-doxygen/html/html/search/all_12.js +9 -9
  41. package/SVF-doxygen/html/html/search/all_13.js +4 -4
  42. package/SVF-doxygen/html/html/search/all_14.js +1 -1
  43. package/SVF-doxygen/html/html/search/all_15.js +3 -2
  44. package/SVF-doxygen/html/html/search/all_16.js +2 -2
  45. package/SVF-doxygen/html/html/search/all_5.js +1 -0
  46. package/SVF-doxygen/html/html/search/all_7.js +5 -3
  47. package/SVF-doxygen/html/html/search/all_c.js +1 -1
  48. package/SVF-doxygen/html/html/search/all_e.js +1 -1
  49. package/SVF-doxygen/html/html/search/all_f.js +1 -1
  50. package/SVF-doxygen/html/html/search/enumvalues_4.js +1 -0
  51. package/SVF-doxygen/html/html/search/functions_6.js +2 -1
  52. package/SVF-doxygen/html/html/search/functions_f.js +1 -1
  53. package/SVF-doxygen/html/html/search/variables_13.js +4 -4
  54. package/SVF-doxygen/html/html/search/variables_14.js +1 -1
  55. package/SVF-doxygen/html/html/search/variables_15.js +2 -1
  56. package/SVF-doxygen/html/html/search/variables_7.js +3 -2
  57. package/SVF-doxygen/html/html/search/variables_e.js +1 -1
  58. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01CFLGraph_01_5_01_4.html +1 -1
  59. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01ConstraintGraph_01_5_01_4.html +1 -1
  60. package/codecov.yml +21 -0
  61. package/include/CFL/CFLAlias.h +9 -7
  62. package/include/CFL/CFLGrammar.txt +10 -9
  63. package/include/Util/ExtAPI.h +2 -0
  64. package/include/Util/ExtAPI.json +5 -0
  65. package/lib/CFL/CFLAlias.cpp +2 -2
  66. package/lib/CFL/GrammarBuilder.cpp +4 -2
  67. package/lib/MemoryModel/PointerAnalysisImpl.cpp +1 -1
  68. package/lib/SVF-FE/SVFIRBuilder.cpp +16 -0
  69. package/package.json +1 -1
@@ -79,7 +79,8 @@ Inheritance diagram for SVF::CFLAlias:</div>
79
79
  <div class="center">
80
80
  <img src="classSVF_1_1CFLAlias.png" usemap="#SVF::CFLAlias_map" alt=""/>
81
81
  <map id="SVF::CFLAlias_map" name="SVF::CFLAlias_map">
82
- <area href="classSVF_1_1PointerAnalysis.html" alt="SVF::PointerAnalysis" shape="rect" coords="0,0,131,24"/>
82
+ <area href="classSVF_1_1BVDataPTAImpl.html" alt="SVF::BVDataPTAImpl" shape="rect" coords="0,56,132,80"/>
83
+ <area href="classSVF_1_1PointerAnalysis.html" alt="SVF::PointerAnalysis" shape="rect" coords="0,0,132,24"/>
83
84
  </map>
84
85
  </div></div>
85
86
  <table class="memberdecls">
@@ -87,6 +88,40 @@ Inheritance diagram for SVF::CFLAlias:</div>
87
88
  Public Types</h2></td></tr>
88
89
  <tr class="memitem:af8424cab679dae62320c6dec6253036a"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="namespaceSVF.html#aedf0d6718ca176e0b9e17ab4b30729c6">OrderedMap</a>&lt; <a class="el" href="classSVF_1_1CallSite.html">CallSite</a>, <a class="el" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1CFLAlias.html#af8424cab679dae62320c6dec6253036a">CallSite2DummyValPN</a></td></tr>
89
90
  <tr class="separator:af8424cab679dae62320c6dec6253036a"><td class="memSeparator" colspan="2">&#160;</td></tr>
91
+ <tr class="inherit_header pub_types_classSVF_1_1BVDataPTAImpl"><td colspan="2" onclick="javascript:toggleInherit('pub_types_classSVF_1_1BVDataPTAImpl')"><img src="closed.png" alt="-"/>&#160;Public Types inherited from <a class="el" href="classSVF_1_1BVDataPTAImpl.html">SVF::BVDataPTAImpl</a></td></tr>
92
+ <tr class="memitem:ad76328a8543b02784992afc2d5501d8a inherit pub_types_classSVF_1_1BVDataPTAImpl"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BVDataPTAImpl.html#ad76328a8543b02784992afc2d5501d8a">PTBackingType</a> { <a class="el" href="classSVF_1_1BVDataPTAImpl.html#ad76328a8543b02784992afc2d5501d8aa1cfb236b5127b660373c36b77a79ab5e">Mutable</a>,
93
+ <a class="el" href="classSVF_1_1BVDataPTAImpl.html#ad76328a8543b02784992afc2d5501d8aaeda0ee502cc42a07c64c6f09296b6640">Persistent</a>
94
+ }<tr class="memdesc:ad76328a8543b02784992afc2d5501d8a"><td class="mdescLeft">&#160;</td><td class="mdescRight">How the <a class="el" href="classSVF_1_1PTData.html">PTData</a> used is implemented. <a href="classSVF_1_1BVDataPTAImpl.html#ad76328a8543b02784992afc2d5501d8a">More...</a><br /></td></tr>
95
+ </td></tr>
96
+ <tr class="separator:ad76328a8543b02784992afc2d5501d8a inherit pub_types_classSVF_1_1BVDataPTAImpl"><td class="memSeparator" colspan="2">&#160;</td></tr>
97
+ <tr class="memitem:acfdb43f20bbcababc928cc4df93a8483 inherit pub_types_classSVF_1_1BVDataPTAImpl"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="classSVF_1_1PTData.html">PTData</a>&lt; <a class="el" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a>, <a class="el" href="namespaceSVF.html#a212231734fa43d5c7414137deaac7df3">NodeSet</a>, <a class="el" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a>, <a class="el" href="classSVF_1_1PointsTo.html">PointsTo</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BVDataPTAImpl.html#acfdb43f20bbcababc928cc4df93a8483">PTDataTy</a></td></tr>
98
+ <tr class="separator:acfdb43f20bbcababc928cc4df93a8483 inherit pub_types_classSVF_1_1BVDataPTAImpl"><td class="memSeparator" colspan="2">&#160;</td></tr>
99
+ <tr class="memitem:abd8bb73e9beac5e39667091b1e211bd3 inherit pub_types_classSVF_1_1BVDataPTAImpl"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="classSVF_1_1DiffPTData.html">DiffPTData</a>&lt; <a class="el" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a>, <a class="el" href="namespaceSVF.html#a212231734fa43d5c7414137deaac7df3">NodeSet</a>, <a class="el" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a>, <a class="el" href="classSVF_1_1PointsTo.html">PointsTo</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BVDataPTAImpl.html#abd8bb73e9beac5e39667091b1e211bd3">DiffPTDataTy</a></td></tr>
100
+ <tr class="separator:abd8bb73e9beac5e39667091b1e211bd3 inherit pub_types_classSVF_1_1BVDataPTAImpl"><td class="memSeparator" colspan="2">&#160;</td></tr>
101
+ <tr class="memitem:a5c2288519153467142e74c8dd4e77180 inherit pub_types_classSVF_1_1BVDataPTAImpl"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="classSVF_1_1DFPTData.html">DFPTData</a>&lt; <a class="el" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a>, <a class="el" href="namespaceSVF.html#a212231734fa43d5c7414137deaac7df3">NodeSet</a>, <a class="el" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a>, <a class="el" href="classSVF_1_1PointsTo.html">PointsTo</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BVDataPTAImpl.html#a5c2288519153467142e74c8dd4e77180">DFPTDataTy</a></td></tr>
102
+ <tr class="separator:a5c2288519153467142e74c8dd4e77180 inherit pub_types_classSVF_1_1BVDataPTAImpl"><td class="memSeparator" colspan="2">&#160;</td></tr>
103
+ <tr class="memitem:a8bc5e039958280b18e5a00a56e0bdc94 inherit pub_types_classSVF_1_1BVDataPTAImpl"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="classSVF_1_1VersionedPTData.html">VersionedPTData</a>&lt; <a class="el" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a>, <a class="el" href="namespaceSVF.html#a212231734fa43d5c7414137deaac7df3">NodeSet</a>, <a class="el" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a>, <a class="el" href="classSVF_1_1PointsTo.html">PointsTo</a>, <a class="el" href="namespaceSVF.html#a32489632f53dce062ca2e8bff42c65cf">VersionedVar</a>, <a class="el" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set</a>&lt; <a class="el" href="namespaceSVF.html#a32489632f53dce062ca2e8bff42c65cf">VersionedVar</a> &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BVDataPTAImpl.html#a8bc5e039958280b18e5a00a56e0bdc94">VersionedPTDataTy</a></td></tr>
104
+ <tr class="separator:a8bc5e039958280b18e5a00a56e0bdc94 inherit pub_types_classSVF_1_1BVDataPTAImpl"><td class="memSeparator" colspan="2">&#160;</td></tr>
105
+ <tr class="memitem:a533384bd2eb8a1589ba8b7695c759073 inherit pub_types_classSVF_1_1BVDataPTAImpl"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="classSVF_1_1MutablePTData.html">MutablePTData</a>&lt; <a class="el" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a>, <a class="el" href="namespaceSVF.html#a212231734fa43d5c7414137deaac7df3">NodeSet</a>, <a class="el" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a>, <a class="el" href="classSVF_1_1PointsTo.html">PointsTo</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BVDataPTAImpl.html#a533384bd2eb8a1589ba8b7695c759073">MutPTDataTy</a></td></tr>
106
+ <tr class="separator:a533384bd2eb8a1589ba8b7695c759073 inherit pub_types_classSVF_1_1BVDataPTAImpl"><td class="memSeparator" colspan="2">&#160;</td></tr>
107
+ <tr class="memitem:ac4e74e6dfee9d08198e0f7e3d76a0646 inherit pub_types_classSVF_1_1BVDataPTAImpl"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="classSVF_1_1MutableDiffPTData.html">MutableDiffPTData</a>&lt; <a class="el" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a>, <a class="el" href="namespaceSVF.html#a212231734fa43d5c7414137deaac7df3">NodeSet</a>, <a class="el" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a>, <a class="el" href="classSVF_1_1PointsTo.html">PointsTo</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BVDataPTAImpl.html#ac4e74e6dfee9d08198e0f7e3d76a0646">MutDiffPTDataTy</a></td></tr>
108
+ <tr class="separator:ac4e74e6dfee9d08198e0f7e3d76a0646 inherit pub_types_classSVF_1_1BVDataPTAImpl"><td class="memSeparator" colspan="2">&#160;</td></tr>
109
+ <tr class="memitem:ac130bf326911b8e5396f57daa78566e7 inherit pub_types_classSVF_1_1BVDataPTAImpl"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="classSVF_1_1MutableDFPTData.html">MutableDFPTData</a>&lt; <a class="el" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a>, <a class="el" href="namespaceSVF.html#a212231734fa43d5c7414137deaac7df3">NodeSet</a>, <a class="el" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a>, <a class="el" href="classSVF_1_1PointsTo.html">PointsTo</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BVDataPTAImpl.html#ac130bf326911b8e5396f57daa78566e7">MutDFPTDataTy</a></td></tr>
110
+ <tr class="separator:ac130bf326911b8e5396f57daa78566e7 inherit pub_types_classSVF_1_1BVDataPTAImpl"><td class="memSeparator" colspan="2">&#160;</td></tr>
111
+ <tr class="memitem:a639446e6bf9712afa439d089b94aefae inherit pub_types_classSVF_1_1BVDataPTAImpl"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="classSVF_1_1MutableIncDFPTData.html">MutableIncDFPTData</a>&lt; <a class="el" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a>, <a class="el" href="namespaceSVF.html#a212231734fa43d5c7414137deaac7df3">NodeSet</a>, <a class="el" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a>, <a class="el" href="classSVF_1_1PointsTo.html">PointsTo</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BVDataPTAImpl.html#a639446e6bf9712afa439d089b94aefae">MutIncDFPTDataTy</a></td></tr>
112
+ <tr class="separator:a639446e6bf9712afa439d089b94aefae inherit pub_types_classSVF_1_1BVDataPTAImpl"><td class="memSeparator" colspan="2">&#160;</td></tr>
113
+ <tr class="memitem:a7fde3e9b189e988cd0a24d567b136e13 inherit pub_types_classSVF_1_1BVDataPTAImpl"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="classSVF_1_1MutableVersionedPTData.html">MutableVersionedPTData</a>&lt; <a class="el" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a>, <a class="el" href="namespaceSVF.html#a212231734fa43d5c7414137deaac7df3">NodeSet</a>, <a class="el" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a>, <a class="el" href="classSVF_1_1PointsTo.html">PointsTo</a>, <a class="el" href="namespaceSVF.html#a32489632f53dce062ca2e8bff42c65cf">VersionedVar</a>, <a class="el" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set</a>&lt; <a class="el" href="namespaceSVF.html#a32489632f53dce062ca2e8bff42c65cf">VersionedVar</a> &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BVDataPTAImpl.html#a7fde3e9b189e988cd0a24d567b136e13">MutVersionedPTDataTy</a></td></tr>
114
+ <tr class="separator:a7fde3e9b189e988cd0a24d567b136e13 inherit pub_types_classSVF_1_1BVDataPTAImpl"><td class="memSeparator" colspan="2">&#160;</td></tr>
115
+ <tr class="memitem:ae3ba6392560e5c0978335151c3373fd1 inherit pub_types_classSVF_1_1BVDataPTAImpl"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="classSVF_1_1PersistentPTData.html">PersistentPTData</a>&lt; <a class="el" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a>, <a class="el" href="namespaceSVF.html#a212231734fa43d5c7414137deaac7df3">NodeSet</a>, <a class="el" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a>, <a class="el" href="classSVF_1_1PointsTo.html">PointsTo</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BVDataPTAImpl.html#ae3ba6392560e5c0978335151c3373fd1">PersPTDataTy</a></td></tr>
116
+ <tr class="separator:ae3ba6392560e5c0978335151c3373fd1 inherit pub_types_classSVF_1_1BVDataPTAImpl"><td class="memSeparator" colspan="2">&#160;</td></tr>
117
+ <tr class="memitem:a1342c0953d7bb9bf0f6f676bd564350e inherit pub_types_classSVF_1_1BVDataPTAImpl"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="classSVF_1_1PersistentDiffPTData.html">PersistentDiffPTData</a>&lt; <a class="el" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a>, <a class="el" href="namespaceSVF.html#a212231734fa43d5c7414137deaac7df3">NodeSet</a>, <a class="el" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a>, <a class="el" href="classSVF_1_1PointsTo.html">PointsTo</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BVDataPTAImpl.html#a1342c0953d7bb9bf0f6f676bd564350e">PersDiffPTDataTy</a></td></tr>
118
+ <tr class="separator:a1342c0953d7bb9bf0f6f676bd564350e inherit pub_types_classSVF_1_1BVDataPTAImpl"><td class="memSeparator" colspan="2">&#160;</td></tr>
119
+ <tr class="memitem:a7087f9d5a1a5b3576173bd6a7fd72163 inherit pub_types_classSVF_1_1BVDataPTAImpl"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="classSVF_1_1PersistentDFPTData.html">PersistentDFPTData</a>&lt; <a class="el" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a>, <a class="el" href="namespaceSVF.html#a212231734fa43d5c7414137deaac7df3">NodeSet</a>, <a class="el" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a>, <a class="el" href="classSVF_1_1PointsTo.html">PointsTo</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BVDataPTAImpl.html#a7087f9d5a1a5b3576173bd6a7fd72163">PersDFPTDataTy</a></td></tr>
120
+ <tr class="separator:a7087f9d5a1a5b3576173bd6a7fd72163 inherit pub_types_classSVF_1_1BVDataPTAImpl"><td class="memSeparator" colspan="2">&#160;</td></tr>
121
+ <tr class="memitem:a29172b3e8b3891a5d946a493cfcde2e7 inherit pub_types_classSVF_1_1BVDataPTAImpl"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="classSVF_1_1PersistentIncDFPTData.html">PersistentIncDFPTData</a>&lt; <a class="el" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a>, <a class="el" href="namespaceSVF.html#a212231734fa43d5c7414137deaac7df3">NodeSet</a>, <a class="el" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a>, <a class="el" href="classSVF_1_1PointsTo.html">PointsTo</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BVDataPTAImpl.html#a29172b3e8b3891a5d946a493cfcde2e7">PersIncDFPTDataTy</a></td></tr>
122
+ <tr class="separator:a29172b3e8b3891a5d946a493cfcde2e7 inherit pub_types_classSVF_1_1BVDataPTAImpl"><td class="memSeparator" colspan="2">&#160;</td></tr>
123
+ <tr class="memitem:ae028ae29bdc799f35777b82a39faf5e8 inherit pub_types_classSVF_1_1BVDataPTAImpl"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="classSVF_1_1PersistentVersionedPTData.html">PersistentVersionedPTData</a>&lt; <a class="el" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a>, <a class="el" href="namespaceSVF.html#a212231734fa43d5c7414137deaac7df3">NodeSet</a>, <a class="el" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a>, <a class="el" href="classSVF_1_1PointsTo.html">PointsTo</a>, <a class="el" href="namespaceSVF.html#a32489632f53dce062ca2e8bff42c65cf">VersionedVar</a>, <a class="el" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set</a>&lt; <a class="el" href="namespaceSVF.html#a32489632f53dce062ca2e8bff42c65cf">VersionedVar</a> &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BVDataPTAImpl.html#ae028ae29bdc799f35777b82a39faf5e8">PersVersionedPTDataTy</a></td></tr>
124
+ <tr class="separator:ae028ae29bdc799f35777b82a39faf5e8 inherit pub_types_classSVF_1_1BVDataPTAImpl"><td class="memSeparator" colspan="2">&#160;</td></tr>
90
125
  <tr class="inherit_header pub_types_classSVF_1_1PointerAnalysis"><td colspan="2" onclick="javascript:toggleInherit('pub_types_classSVF_1_1PointerAnalysis')"><img src="closed.png" alt="-"/>&#160;Public Types inherited from <a class="el" href="classSVF_1_1PointerAnalysis.html">SVF::PointerAnalysis</a></td></tr>
91
126
  <tr class="memitem:a0b182ac680cce0547dbe7714c870ca85 inherit pub_types_classSVF_1_1PointerAnalysis"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1PointerAnalysis.html#a0b182ac680cce0547dbe7714c870ca85">PTATY</a> { <br />
92
127
  &#160;&#160;<a class="el" href="classSVF_1_1PointerAnalysis.html#a0b182ac680cce0547dbe7714c870ca85a9a25374fb6d2218c6c59de0482548f49">Andersen_BASE</a>,
@@ -159,11 +194,11 @@ Public Member Functions</h2></td></tr>
159
194
  <tr class="memitem:afb96040a903b9b889fcf23b26cb4565a"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceSVF.html#a61c01e2e687ab3a001fb806737583943">AliasResult</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1CFLAlias.html#afb96040a903b9b889fcf23b26cb4565a">alias</a> (<a class="el" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> node1, <a class="el" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> node2)</td></tr>
160
195
  <tr class="memdesc:afb96040a903b9b889fcf23b26cb4565a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface exposed to users of our pointer analysis, given PAGNodeID. <a href="#afb96040a903b9b889fcf23b26cb4565a">More...</a><br /></td></tr>
161
196
  <tr class="separator:afb96040a903b9b889fcf23b26cb4565a"><td class="memSeparator" colspan="2">&#160;</td></tr>
162
- <tr class="memitem:ad7bde2bfe158e9c3643927583ce145c9"><td class="memItemLeft" align="right" valign="top">virtual const <a class="el" href="classSVF_1_1PointsTo.html">PointsTo</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1CFLAlias.html#ad7bde2bfe158e9c3643927583ce145c9">getPts</a> (<a class="el" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> ptr)</td></tr>
163
- <tr class="memdesc:ad7bde2bfe158e9c3643927583ce145c9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get points-to targets of a pointer. V In this context. <a href="#ad7bde2bfe158e9c3643927583ce145c9">More...</a><br /></td></tr>
164
- <tr class="separator:ad7bde2bfe158e9c3643927583ce145c9"><td class="memSeparator" colspan="2">&#160;</td></tr>
197
+ <tr class="memitem:acbbacca91cb85f67523aa8f84f6fe629"><td class="memItemLeft" align="right" valign="top">virtual const <a class="el" href="classSVF_1_1PointsTo.html">PointsTo</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1CFLAlias.html#acbbacca91cb85f67523aa8f84f6fe629">getCFLPts</a> (<a class="el" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> ptr)</td></tr>
198
+ <tr class="memdesc:acbbacca91cb85f67523aa8f84f6fe629"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get points-to targets of a pointer. V In this context. <a href="#acbbacca91cb85f67523aa8f84f6fe629">More...</a><br /></td></tr>
199
+ <tr class="separator:acbbacca91cb85f67523aa8f84f6fe629"><td class="memSeparator" colspan="2">&#160;</td></tr>
165
200
  <tr class="memitem:a1fb9134ce0a8e901bb86c4a1954b17f2"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1CFLAlias.html#a1fb9134ce0a8e901bb86c4a1954b17f2">addCopyEdge</a> (<a class="el" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> src, <a class="el" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> dst)</td></tr>
166
- <tr class="memdesc:a1fb9134ce0a8e901bb86c4a1954b17f2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add copy edge on constraint graph. <a href="#a1fb9134ce0a8e901bb86c4a1954b17f2">More...</a><br /></td></tr>
201
+ <tr class="memdesc:a1fb9134ce0a8e901bb86c4a1954b17f2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Need Original one for virtual table. <a href="#a1fb9134ce0a8e901bb86c4a1954b17f2">More...</a><br /></td></tr>
167
202
  <tr class="separator:a1fb9134ce0a8e901bb86c4a1954b17f2"><td class="memSeparator" colspan="2">&#160;</td></tr>
168
203
  <tr class="memitem:abcb07a089b7b1036d070c451a81cef5d"><td class="memItemLeft" align="right" valign="top">virtual const <a class="el" href="namespaceSVF.html#a212231734fa43d5c7414137deaac7df3">NodeSet</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1CFLAlias.html#abcb07a089b7b1036d070c451a81cef5d">getRevPts</a> (<a class="el" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> nodeId)</td></tr>
169
204
  <tr class="memdesc:abcb07a089b7b1036d070c451a81cef5d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Given an object, get all the nodes having whose pointsto contains the object. <a href="#abcb07a089b7b1036d070c451a81cef5d">More...</a><br /></td></tr>
@@ -179,6 +214,63 @@ Public Member Functions</h2></td></tr>
179
214
  <tr class="separator:abfab36c0d5edbdfb94e617bed61ba875"><td class="memSeparator" colspan="2">&#160;</td></tr>
180
215
  <tr class="memitem:a40841c2b47cf690af5c13ba7662d0863"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1CFLAlias.html#a40841c2b47cf690af5c13ba7662d0863">heapAllocatorViaIndCall</a> (<a class="el" href="classSVF_1_1CallSite.html">CallSite</a> cs)</td></tr>
181
216
  <tr class="separator:a40841c2b47cf690af5c13ba7662d0863"><td class="memSeparator" colspan="2">&#160;</td></tr>
217
+ <tr class="inherit_header pub_methods_classSVF_1_1BVDataPTAImpl"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classSVF_1_1BVDataPTAImpl')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classSVF_1_1BVDataPTAImpl.html">SVF::BVDataPTAImpl</a></td></tr>
218
+ <tr class="memitem:ab0e1242aadfe1e16a2bd1445658a5476 inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BVDataPTAImpl.html#ab0e1242aadfe1e16a2bd1445658a5476">BVDataPTAImpl</a> (<a class="el" href="classSVF_1_1SVFIR.html">SVFIR</a> *<a class="el" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>, <a class="el" href="classSVF_1_1PointerAnalysis.html#a0b182ac680cce0547dbe7714c870ca85">PointerAnalysis::PTATY</a> <a class="el" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>, bool alias_check=<a class="el" href="cJSON_8cpp.html#a930920b2bc42824a5c03be681830f4b2">true</a>)</td></tr>
219
+ <tr class="memdesc:ab0e1242aadfe1e16a2bd1445658a5476 inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor. <a href="classSVF_1_1BVDataPTAImpl.html#ab0e1242aadfe1e16a2bd1445658a5476">More...</a><br /></td></tr>
220
+ <tr class="separator:ab0e1242aadfe1e16a2bd1445658a5476 inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="memSeparator" colspan="2">&#160;</td></tr>
221
+ <tr class="memitem:a06f211184d3e75f0ca351a4b8092a478 inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BVDataPTAImpl.html#a06f211184d3e75f0ca351a4b8092a478">~BVDataPTAImpl</a> ()</td></tr>
222
+ <tr class="memdesc:a06f211184d3e75f0ca351a4b8092a478 inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destructor. <a href="classSVF_1_1BVDataPTAImpl.html#a06f211184d3e75f0ca351a4b8092a478">More...</a><br /></td></tr>
223
+ <tr class="separator:a06f211184d3e75f0ca351a4b8092a478 inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="memSeparator" colspan="2">&#160;</td></tr>
224
+ <tr class="memitem:a34d87fa1988b78f032735b5fc2803792 inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1PersistentPointsToCache.html">PersistentPointsToCache</a>&lt; <a class="el" href="classSVF_1_1PointsTo.html">PointsTo</a> &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BVDataPTAImpl.html#a34d87fa1988b78f032735b5fc2803792">getPtCache</a> (void)</td></tr>
225
+ <tr class="separator:a34d87fa1988b78f032735b5fc2803792 inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="memSeparator" colspan="2">&#160;</td></tr>
226
+ <tr class="memitem:af783769050ab663ad4bb93f901f01a6d inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BVDataPTAImpl.html#af783769050ab663ad4bb93f901f01a6d">destroy</a> ()</td></tr>
227
+ <tr class="memdesc:af783769050ab663ad4bb93f901f01a6d inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="mdescLeft">&#160;</td><td class="mdescRight">Release memory. <a href="classSVF_1_1BVDataPTAImpl.html#af783769050ab663ad4bb93f901f01a6d">More...</a><br /></td></tr>
228
+ <tr class="separator:af783769050ab663ad4bb93f901f01a6d inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="memSeparator" colspan="2">&#160;</td></tr>
229
+ <tr class="memitem:a4909696c946cf6aba12542ec51766b64 inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BVDataPTAImpl.html#a4909696c946cf6aba12542ec51766b64">clearPts</a> (<a class="el" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> id, <a class="el" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> element)</td></tr>
230
+ <tr class="memdesc:a4909696c946cf6aba12542ec51766b64 inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="mdescLeft">&#160;</td><td class="mdescRight">Remove element from the points-to set of id. <a href="classSVF_1_1BVDataPTAImpl.html#a4909696c946cf6aba12542ec51766b64">More...</a><br /></td></tr>
231
+ <tr class="separator:a4909696c946cf6aba12542ec51766b64 inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="memSeparator" colspan="2">&#160;</td></tr>
232
+ <tr class="memitem:afdb10c2cce4935156566ea1c2daf9ea9 inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BVDataPTAImpl.html#afdb10c2cce4935156566ea1c2daf9ea9">clearFullPts</a> (<a class="el" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> id)</td></tr>
233
+ <tr class="memdesc:afdb10c2cce4935156566ea1c2daf9ea9 inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clear points-to set of id. <a href="classSVF_1_1BVDataPTAImpl.html#afdb10c2cce4935156566ea1c2daf9ea9">More...</a><br /></td></tr>
234
+ <tr class="separator:afdb10c2cce4935156566ea1c2daf9ea9 inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="memSeparator" colspan="2">&#160;</td></tr>
235
+ <tr class="memitem:a4426df37aeabeb94d301373b55a53c20 inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BVDataPTAImpl.html#a4426df37aeabeb94d301373b55a53c20">clearAllPts</a> ()</td></tr>
236
+ <tr class="memdesc:a4426df37aeabeb94d301373b55a53c20 inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clear all data. <a href="classSVF_1_1BVDataPTAImpl.html#a4426df37aeabeb94d301373b55a53c20">More...</a><br /></td></tr>
237
+ <tr class="separator:a4426df37aeabeb94d301373b55a53c20 inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="memSeparator" colspan="2">&#160;</td></tr>
238
+ <tr class="memitem:a798c84d5e861de2b61bcb1a86385f721 inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BVDataPTAImpl.html#a798c84d5e861de2b61bcb1a86385f721">expandFIObjs</a> (const <a class="el" href="classSVF_1_1PointsTo.html">PointsTo</a> &amp;pts, <a class="el" href="classSVF_1_1PointsTo.html">PointsTo</a> &amp;expandedPts)</td></tr>
239
+ <tr class="memdesc:a798c84d5e861de2b61bcb1a86385f721 inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="mdescLeft">&#160;</td><td class="mdescRight">Expand FI objects. <a href="classSVF_1_1BVDataPTAImpl.html#a798c84d5e861de2b61bcb1a86385f721">More...</a><br /></td></tr>
240
+ <tr class="separator:a798c84d5e861de2b61bcb1a86385f721 inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="memSeparator" colspan="2">&#160;</td></tr>
241
+ <tr class="memitem:aa6a7186152037452599406a74b05d0e1 inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BVDataPTAImpl.html#aa6a7186152037452599406a74b05d0e1">expandFIObjs</a> (const <a class="el" href="namespaceSVF.html#aa7b6a13e52671de8524b130738aeb564">NodeBS</a> &amp;pts, <a class="el" href="namespaceSVF.html#aa7b6a13e52671de8524b130738aeb564">NodeBS</a> &amp;expandedPts)</td></tr>
242
+ <tr class="memdesc:aa6a7186152037452599406a74b05d0e1 inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="mdescLeft">&#160;</td><td class="mdescRight">TODO: remove repetition. <a href="classSVF_1_1BVDataPTAImpl.html#aa6a7186152037452599406a74b05d0e1">More...</a><br /></td></tr>
243
+ <tr class="separator:aa6a7186152037452599406a74b05d0e1 inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="memSeparator" colspan="2">&#160;</td></tr>
244
+ <tr class="memitem:a7a87ca1a439e871896f92e4342befa2c inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BVDataPTAImpl.html#a7a87ca1a439e871896f92e4342befa2c">remapPointsToSets</a> (void)</td></tr>
245
+ <tr class="memdesc:a7a87ca1a439e871896f92e4342befa2c inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="mdescLeft">&#160;</td><td class="mdescRight">Remap all points-to sets to use the current mapping. <a href="classSVF_1_1BVDataPTAImpl.html#a7a87ca1a439e871896f92e4342befa2c">More...</a><br /></td></tr>
246
+ <tr class="separator:a7a87ca1a439e871896f92e4342befa2c inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="memSeparator" colspan="2">&#160;</td></tr>
247
+ <tr class="memitem:a25720f154731a8c745da10aa76ab8517 inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceSVF.html#a61c01e2e687ab3a001fb806737583943">AliasResult</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BVDataPTAImpl.html#a25720f154731a8c745da10aa76ab8517">alias</a> (const <a class="el" href="classSVF_1_1PointsTo.html">PointsTo</a> &amp;pts1, const <a class="el" href="classSVF_1_1PointsTo.html">PointsTo</a> &amp;pts2)</td></tr>
248
+ <tr class="memdesc:a25720f154731a8c745da10aa76ab8517 inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface expose to users of our pointer analysis, given two pts. <a href="classSVF_1_1BVDataPTAImpl.html#a25720f154731a8c745da10aa76ab8517">More...</a><br /></td></tr>
249
+ <tr class="separator:a25720f154731a8c745da10aa76ab8517 inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="memSeparator" colspan="2">&#160;</td></tr>
250
+ <tr class="memitem:aee289e298e421448caaa604b7eb34fcb inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="memItemLeft" align="right" valign="top">virtual const <a class="el" href="classSVF_1_1PointsTo.html">PointsTo</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BVDataPTAImpl.html#aee289e298e421448caaa604b7eb34fcb">getPts</a> (<a class="el" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> id)</td></tr>
251
+ <tr class="separator:aee289e298e421448caaa604b7eb34fcb inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="memSeparator" colspan="2">&#160;</td></tr>
252
+ <tr class="memitem:ae7073c07bfd7912f888d54d4652c7cc2 inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BVDataPTAImpl.html#ae7073c07bfd7912f888d54d4652c7cc2">unionPts</a> (<a class="el" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> id, const <a class="el" href="classSVF_1_1PointsTo.html">PointsTo</a> &amp;target)</td></tr>
253
+ <tr class="separator:ae7073c07bfd7912f888d54d4652c7cc2 inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="memSeparator" colspan="2">&#160;</td></tr>
254
+ <tr class="memitem:ad5e657b856681a534a8990df35ea08d0 inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BVDataPTAImpl.html#ad5e657b856681a534a8990df35ea08d0">unionPts</a> (<a class="el" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> id, <a class="el" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> ptd)</td></tr>
255
+ <tr class="separator:ad5e657b856681a534a8990df35ea08d0 inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="memSeparator" colspan="2">&#160;</td></tr>
256
+ <tr class="memitem:af68485a2208553579f9c2e4b2cb20cff inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BVDataPTAImpl.html#af68485a2208553579f9c2e4b2cb20cff">addPts</a> (<a class="el" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> id, <a class="el" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> ptd)</td></tr>
257
+ <tr class="separator:af68485a2208553579f9c2e4b2cb20cff inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="memSeparator" colspan="2">&#160;</td></tr>
258
+ <tr class="memitem:a25c68f9d2b88437778e854ff0d741d1b inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BVDataPTAImpl.html#a25c68f9d2b88437778e854ff0d741d1b">writeToFile</a> (const <a class="el" href="cJSON_8cpp.html#ae1adbce218e7a9d09164012443191d24">std::string</a> &amp;filename)</td></tr>
259
+ <tr class="memdesc:a25c68f9d2b88437778e854ff0d741d1b inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for analysis result storage on filesystem. <a href="classSVF_1_1BVDataPTAImpl.html#a25c68f9d2b88437778e854ff0d741d1b">More...</a><br /></td></tr>
260
+ <tr class="separator:a25c68f9d2b88437778e854ff0d741d1b inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="memSeparator" colspan="2">&#160;</td></tr>
261
+ <tr class="memitem:a290501006cb700db0e07dc577429c928 inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BVDataPTAImpl.html#a290501006cb700db0e07dc577429c928">readFromFile</a> (const <a class="el" href="cJSON_8cpp.html#ae1adbce218e7a9d09164012443191d24">std::string</a> &amp;filename)</td></tr>
262
+ <tr class="separator:a290501006cb700db0e07dc577429c928 inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="memSeparator" colspan="2">&#160;</td></tr>
263
+ <tr class="memitem:aa0ca07204a31004fb876c6e18d1ac1ca inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BVDataPTAImpl.html#aa0ca07204a31004fb876c6e18d1ac1ca">writeToModule</a> ()</td></tr>
264
+ <tr class="separator:aa0ca07204a31004fb876c6e18d1ac1ca inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="memSeparator" colspan="2">&#160;</td></tr>
265
+ <tr class="memitem:a857cdacfc8cafdeb1431bdfa077ef9b5 inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BVDataPTAImpl.html#a857cdacfc8cafdeb1431bdfa077ef9b5">readFromModule</a> ()</td></tr>
266
+ <tr class="separator:a857cdacfc8cafdeb1431bdfa077ef9b5 inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="memSeparator" colspan="2">&#160;</td></tr>
267
+ <tr class="memitem:ae20bbb7991f585deb2e6d0d8115b1b93 inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BVDataPTAImpl.html#ae20bbb7991f585deb2e6d0d8115b1b93">dumpCPts</a> ()</td></tr>
268
+ <tr class="memdesc:ae20bbb7991f585deb2e6d0d8115b1b93 inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="mdescLeft">&#160;</td><td class="mdescRight">dump and debug, print out conditional pts <a href="classSVF_1_1BVDataPTAImpl.html#ae20bbb7991f585deb2e6d0d8115b1b93">More...</a><br /></td></tr>
269
+ <tr class="separator:ae20bbb7991f585deb2e6d0d8115b1b93 inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="memSeparator" colspan="2">&#160;</td></tr>
270
+ <tr class="memitem:a8d6cea841b6ded0f80ef2b5784e9b752 inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BVDataPTAImpl.html#a8d6cea841b6ded0f80ef2b5784e9b752">dumpTopLevelPtsTo</a> ()</td></tr>
271
+ <tr class="separator:a8d6cea841b6ded0f80ef2b5784e9b752 inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="memSeparator" colspan="2">&#160;</td></tr>
272
+ <tr class="memitem:a97705b60d294b87ee075a69f04a35d22 inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BVDataPTAImpl.html#a97705b60d294b87ee075a69f04a35d22">dumpAllPts</a> ()</td></tr>
273
+ <tr class="separator:a97705b60d294b87ee075a69f04a35d22 inherit pub_methods_classSVF_1_1BVDataPTAImpl"><td class="memSeparator" colspan="2">&#160;</td></tr>
182
274
  <tr class="inherit_header pub_methods_classSVF_1_1PointerAnalysis"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classSVF_1_1PointerAnalysis')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classSVF_1_1PointerAnalysis.html">SVF::PointerAnalysis</a></td></tr>
183
275
  <tr class="memitem:ade879ee99cae01632d567d3736dcad9e inherit pub_methods_classSVF_1_1PointerAnalysis"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1ICFG.html">ICFG</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1PointerAnalysis.html#ade879ee99cae01632d567d3736dcad9e">getICFG</a> () const</td></tr>
184
276
  <tr class="memdesc:ade879ee99cae01632d567d3736dcad9e inherit pub_methods_classSVF_1_1PointerAnalysis"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get <a class="el" href="classSVF_1_1ICFG.html">ICFG</a>. <a href="classSVF_1_1PointerAnalysis.html#ade879ee99cae01632d567d3736dcad9e">More...</a><br /></td></tr>
@@ -216,9 +308,6 @@ Public Member Functions</h2></td></tr>
216
308
  <tr class="memitem:a431ec4f85eb0f029e5740b92fd9ceb32 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#a431ec4f85eb0f029e5740b92fd9ceb32">initialize</a> ()</td></tr>
217
309
  <tr class="memdesc:a431ec4f85eb0f029e5740b92fd9ceb32 inherit pub_methods_classSVF_1_1PointerAnalysis"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialization of a pointer analysis, including building symbol table and <a class="el" href="classSVF_1_1SVFIR.html">SVFIR</a> etc. <a href="classSVF_1_1PointerAnalysis.html#a431ec4f85eb0f029e5740b92fd9ceb32">More...</a><br /></td></tr>
218
310
  <tr class="separator:a431ec4f85eb0f029e5740b92fd9ceb32 inherit pub_methods_classSVF_1_1PointerAnalysis"><td class="memSeparator" colspan="2">&#160;</td></tr>
219
- <tr class="memitem:a118dabc50024b5cd91095814ade47166 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#a118dabc50024b5cd91095814ade47166">finalize</a> ()</td></tr>
220
- <tr class="memdesc:a118dabc50024b5cd91095814ade47166 inherit pub_methods_classSVF_1_1PointerAnalysis"><td class="mdescLeft">&#160;</td><td class="mdescRight">Finalization of a pointer analysis, including checking alias correctness. <a href="classSVF_1_1PointerAnalysis.html#a118dabc50024b5cd91095814ade47166">More...</a><br /></td></tr>
221
- <tr class="separator:a118dabc50024b5cd91095814ade47166 inherit pub_methods_classSVF_1_1PointerAnalysis"><td class="memSeparator" colspan="2">&#160;</td></tr>
222
311
  <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>
223
312
  <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>
224
313
  <tr class="separator:a0bb90b398ef85504bcd816ae57bee01d inherit pub_methods_classSVF_1_1PointerAnalysis"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -260,12 +349,6 @@ Public Member Functions</h2></td></tr>
260
349
  <tr class="separator:ae615dd279fbf681e3c15e7209e3adfbe inherit pub_methods_classSVF_1_1PointerAnalysis"><td class="memSeparator" colspan="2">&#160;</td></tr>
261
350
  <tr class="memitem:a240219c2dc4f5cc5f85445e18c79b83b inherit pub_methods_classSVF_1_1PointerAnalysis"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1SVFIR.html">SVFIR</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1PointerAnalysis.html#a240219c2dc4f5cc5f85445e18c79b83b">getPAG</a> () const</td></tr>
262
351
  <tr class="separator:a240219c2dc4f5cc5f85445e18c79b83b inherit pub_methods_classSVF_1_1PointerAnalysis"><td class="memSeparator" colspan="2">&#160;</td></tr>
263
- <tr class="memitem:a627bdc95485fd65e8846fcaa5e89559f 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#a627bdc95485fd65e8846fcaa5e89559f">dumpTopLevelPtsTo</a> ()</td></tr>
264
- <tr class="separator:a627bdc95485fd65e8846fcaa5e89559f inherit pub_methods_classSVF_1_1PointerAnalysis"><td class="memSeparator" colspan="2">&#160;</td></tr>
265
- <tr class="memitem:a861554c2fdeaa406131c2c920b4c7908 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#a861554c2fdeaa406131c2c920b4c7908">dumpAllPts</a> ()</td></tr>
266
- <tr class="separator:a861554c2fdeaa406131c2c920b4c7908 inherit pub_methods_classSVF_1_1PointerAnalysis"><td class="memSeparator" colspan="2">&#160;</td></tr>
267
- <tr class="memitem:ad409cbf61271743394b9e5868f3fd197 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#ad409cbf61271743394b9e5868f3fd197">dumpCPts</a> ()</td></tr>
268
- <tr class="separator:ad409cbf61271743394b9e5868f3fd197 inherit pub_methods_classSVF_1_1PointerAnalysis"><td class="memSeparator" colspan="2">&#160;</td></tr>
269
352
  <tr class="memitem:a1a6cee7e690ccb3e53cdc4c3e67b386d 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#a1a6cee7e690ccb3e53cdc4c3e67b386d">dumpPts</a> (<a class="el" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> ptr, const <a class="el" href="classSVF_1_1PointsTo.html">PointsTo</a> &amp;pts)</td></tr>
270
353
  <tr class="separator:a1a6cee7e690ccb3e53cdc4c3e67b386d inherit pub_methods_classSVF_1_1PointerAnalysis"><td class="memSeparator" colspan="2">&#160;</td></tr>
271
354
  <tr class="memitem:a062f1f2d6d47694caa9ac64a9e68c7b3 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#a062f1f2d6d47694caa9ac64a9e68c7b3">printIndCSTargets</a> ()</td></tr>
@@ -338,6 +421,9 @@ Private Attributes</h2></td></tr>
338
421
  </table><table class="memberdecls">
339
422
  <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
340
423
  Additional Inherited Members</h2></td></tr>
424
+ <tr class="inherit_header pub_static_methods_classSVF_1_1BVDataPTAImpl"><td colspan="2" onclick="javascript:toggleInherit('pub_static_methods_classSVF_1_1BVDataPTAImpl')"><img src="closed.png" alt="-"/>&#160;Static Public Member Functions inherited from <a class="el" href="classSVF_1_1BVDataPTAImpl.html">SVF::BVDataPTAImpl</a></td></tr>
425
+ <tr class="memitem:a6ba68138c10d1fbe5be6346c8dfeca74 inherit pub_static_methods_classSVF_1_1BVDataPTAImpl"><td class="memItemLeft" align="right" valign="top">static bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BVDataPTAImpl.html#a6ba68138c10d1fbe5be6346c8dfeca74">classof</a> (const <a class="el" href="classSVF_1_1PointerAnalysis.html">PointerAnalysis</a> *pta)</td></tr>
426
+ <tr class="separator:a6ba68138c10d1fbe5be6346c8dfeca74 inherit pub_static_methods_classSVF_1_1BVDataPTAImpl"><td class="memSeparator" colspan="2">&#160;</td></tr>
341
427
  <tr class="inherit_header pub_static_attribs_classSVF_1_1PointerAnalysis"><td colspan="2" onclick="javascript:toggleInherit('pub_static_attribs_classSVF_1_1PointerAnalysis')"><img src="closed.png" alt="-"/>&#160;Static Public Attributes inherited from <a class="el" href="classSVF_1_1PointerAnalysis.html">SVF::PointerAnalysis</a></td></tr>
342
428
  <tr class="memitem:a7648a0358e2c0798db1c547ec7aa7c64 inherit pub_static_attribs_classSVF_1_1PointerAnalysis"><td class="memItemLeft" align="right" valign="top">static const <a class="el" href="cJSON_8cpp.html#ae1adbce218e7a9d09164012443191d24">std::string</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1PointerAnalysis.html#a7648a0358e2c0798db1c547ec7aa7c64">aliasTestMayAlias</a> = &quot;MAYALIAS&quot;</td></tr>
343
429
  <tr class="separator:a7648a0358e2c0798db1c547ec7aa7c64 inherit pub_static_attribs_classSVF_1_1PointerAnalysis"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -363,6 +449,23 @@ Additional Inherited Members</h2></td></tr>
363
449
  <tr class="separator:a18347e41bc66b16e3f42c7c52811ad42 inherit pub_static_attribs_classSVF_1_1PointerAnalysis"><td class="memSeparator" colspan="2">&#160;</td></tr>
364
450
  <tr class="memitem:aefd4e9ea66da5ad84a45efead823eb22 inherit pub_static_attribs_classSVF_1_1PointerAnalysis"><td class="memItemLeft" align="right" valign="top">static const <a class="el" href="cJSON_8cpp.html#ae1adbce218e7a9d09164012443191d24">std::string</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1PointerAnalysis.html#aefd4e9ea66da5ad84a45efead823eb22">aliasTestFailNoAliasMangled</a> = &quot;_Z20EXPECTEDFAIL_NOALIASPvS_&quot;</td></tr>
365
451
  <tr class="separator:aefd4e9ea66da5ad84a45efead823eb22 inherit pub_static_attribs_classSVF_1_1PointerAnalysis"><td class="memSeparator" colspan="2">&#160;</td></tr>
452
+ <tr class="inherit_header pro_methods_classSVF_1_1BVDataPTAImpl"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classSVF_1_1BVDataPTAImpl')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classSVF_1_1BVDataPTAImpl.html">SVF::BVDataPTAImpl</a></td></tr>
453
+ <tr class="memitem:ae94cea78b71fb75837ee2a17b5ed0e81 inherit pro_methods_classSVF_1_1BVDataPTAImpl"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1BVDataPTAImpl.html#acfdb43f20bbcababc928cc4df93a8483">PTDataTy</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BVDataPTAImpl.html#ae94cea78b71fb75837ee2a17b5ed0e81">getPTDataTy</a> () const</td></tr>
454
+ <tr class="memdesc:ae94cea78b71fb75837ee2a17b5ed0e81 inherit pro_methods_classSVF_1_1BVDataPTAImpl"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get points-to data structure. <a href="classSVF_1_1BVDataPTAImpl.html#ae94cea78b71fb75837ee2a17b5ed0e81">More...</a><br /></td></tr>
455
+ <tr class="separator:ae94cea78b71fb75837ee2a17b5ed0e81 inherit pro_methods_classSVF_1_1BVDataPTAImpl"><td class="memSeparator" colspan="2">&#160;</td></tr>
456
+ <tr class="memitem:a57ff2bf45ede7a730a8adaba8e61179d inherit pro_methods_classSVF_1_1BVDataPTAImpl"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BVDataPTAImpl.html#a57ff2bf45ede7a730a8adaba8e61179d">finalize</a> ()</td></tr>
457
+ <tr class="memdesc:a57ff2bf45ede7a730a8adaba8e61179d inherit pro_methods_classSVF_1_1BVDataPTAImpl"><td class="mdescLeft">&#160;</td><td class="mdescRight">Finalization of pointer analysis, and normalize points-to information to Bit Vector representation. <a href="classSVF_1_1BVDataPTAImpl.html#a57ff2bf45ede7a730a8adaba8e61179d">More...</a><br /></td></tr>
458
+ <tr class="separator:a57ff2bf45ede7a730a8adaba8e61179d inherit pro_methods_classSVF_1_1BVDataPTAImpl"><td class="memSeparator" colspan="2">&#160;</td></tr>
459
+ <tr class="memitem:ab9c0bb439f98ae11dd178148109697ab inherit pro_methods_classSVF_1_1BVDataPTAImpl"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1BVDataPTAImpl.html#abd8bb73e9beac5e39667091b1e211bd3">DiffPTDataTy</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BVDataPTAImpl.html#ab9c0bb439f98ae11dd178148109697ab">getDiffPTDataTy</a> () const</td></tr>
460
+ <tr class="separator:ab9c0bb439f98ae11dd178148109697ab inherit pro_methods_classSVF_1_1BVDataPTAImpl"><td class="memSeparator" colspan="2">&#160;</td></tr>
461
+ <tr class="memitem:a642613e98982259183d3f34a97f05502 inherit pro_methods_classSVF_1_1BVDataPTAImpl"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1BVDataPTAImpl.html#a5c2288519153467142e74c8dd4e77180">DFPTDataTy</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BVDataPTAImpl.html#a642613e98982259183d3f34a97f05502">getDFPTDataTy</a> () const</td></tr>
462
+ <tr class="separator:a642613e98982259183d3f34a97f05502 inherit pro_methods_classSVF_1_1BVDataPTAImpl"><td class="memSeparator" colspan="2">&#160;</td></tr>
463
+ <tr class="memitem:acbb979edee9427efa2a7c0dbd881c483 inherit pro_methods_classSVF_1_1BVDataPTAImpl"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1BVDataPTAImpl.html#ac130bf326911b8e5396f57daa78566e7">MutDFPTDataTy</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BVDataPTAImpl.html#acbb979edee9427efa2a7c0dbd881c483">getMutDFPTDataTy</a> () const</td></tr>
464
+ <tr class="separator:acbb979edee9427efa2a7c0dbd881c483 inherit pro_methods_classSVF_1_1BVDataPTAImpl"><td class="memSeparator" colspan="2">&#160;</td></tr>
465
+ <tr class="memitem:a4859864a4c72d5e04c10305e4579e8ee inherit pro_methods_classSVF_1_1BVDataPTAImpl"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1BVDataPTAImpl.html#a8bc5e039958280b18e5a00a56e0bdc94">VersionedPTDataTy</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BVDataPTAImpl.html#a4859864a4c72d5e04c10305e4579e8ee">getVersionedPTDataTy</a> () const</td></tr>
466
+ <tr class="separator:a4859864a4c72d5e04c10305e4579e8ee inherit pro_methods_classSVF_1_1BVDataPTAImpl"><td class="memSeparator" colspan="2">&#160;</td></tr>
467
+ <tr class="memitem:a2026cffd7043208333083ed1a6603e7b inherit pro_methods_classSVF_1_1BVDataPTAImpl"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BVDataPTAImpl.html#a2026cffd7043208333083ed1a6603e7b">normalizePointsTo</a> ()</td></tr>
468
+ <tr class="separator:a2026cffd7043208333083ed1a6603e7b inherit pro_methods_classSVF_1_1BVDataPTAImpl"><td class="memSeparator" colspan="2">&#160;</td></tr>
366
469
  <tr class="inherit_header pro_methods_classSVF_1_1PointerAnalysis"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classSVF_1_1PointerAnalysis')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classSVF_1_1PointerAnalysis.html">SVF::PointerAnalysis</a></td></tr>
367
470
  <tr class="memitem:a9d3e7753643166465b0d647a75bc145a inherit pro_methods_classSVF_1_1PointerAnalysis"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classSVF_1_1PointerAnalysis.html#ad95c842964e6ca46e51fb763fefec585">CallSiteToFunPtrMap</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1PointerAnalysis.html#a9d3e7753643166465b0d647a75bc145a">getIndirectCallsites</a> () const</td></tr>
368
471
  <tr class="memdesc:a9d3e7753643166465b0d647a75bc145a inherit pro_methods_classSVF_1_1PointerAnalysis"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return all indirect callsites. <a href="classSVF_1_1PointerAnalysis.html#a9d3e7753643166465b0d647a75bc145a">More...</a><br /></td></tr>
@@ -468,12 +571,12 @@ Additional Inherited Members</h2></td></tr>
468
571
  </div><div class="memdoc">
469
572
 
470
573
  <p class="definition">Definition at line <a class="el" href="CFLAlias_8h_source.html#l00049">49</a> of file <a class="el" href="CFLAlias_8h_source.html">CFLAlias.h</a>.</p>
471
- <div class="fragment"><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; : <a class="code" href="classSVF_1_1PointerAnalysis.html#a14e2a209cb594f91a24ef09b12f82f3f">PointerAnalysis</a>(ir, <a class="code" href="classSVF_1_1PointerAnalysis.html#a0b182ac680cce0547dbe7714c870ca85a164c6de3baace1c63db75a228a5816bb">PointerAnalysis::CFLFICI_WPA</a>), <a class="code" href="classSVF_1_1CFLAlias.html#a0bf4ce7e4fb3d1d95608c06420cc65dc">svfir</a>(ir), <a class="code" href="classSVF_1_1CFLAlias.html#abd4d8eb59209a1f1cedebcf41117914b">graph</a>(<span class="keyword">nullptr</span>), <a class="code" href="classSVF_1_1CFLAlias.html#a31ffa49b8e0995b6ee9b8a1f5ecab7be">grammar</a>(<span class="keyword">nullptr</span>), <a class="code" href="classSVF_1_1CFLAlias.html#aa61c3683c9b759b6eca65b1f88e00b35">solver</a>(<span class="keyword">nullptr</span>)</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; {</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; }</div><div class="ttc" id="classSVF_1_1CFLAlias_html_aa61c3683c9b759b6eca65b1f88e00b35"><div class="ttname"><a href="classSVF_1_1CFLAlias.html#aa61c3683c9b759b6eca65b1f88e00b35">SVF::CFLAlias::solver</a></div><div class="ttdeci">CFLSolver * solver</div><div class="ttdef"><b>Definition:</b> <a href="CFLAlias_8h_source.html#l00142">CFLAlias.h:142</a></div></div>
574
+ <div class="fragment"><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; : <a class="code" href="classSVF_1_1BVDataPTAImpl.html#ab0e1242aadfe1e16a2bd1445658a5476">BVDataPTAImpl</a>(ir, <a class="code" href="classSVF_1_1PointerAnalysis.html#a0b182ac680cce0547dbe7714c870ca85a164c6de3baace1c63db75a228a5816bb">PointerAnalysis::CFLFICI_WPA</a>), <a class="code" href="classSVF_1_1CFLAlias.html#a0bf4ce7e4fb3d1d95608c06420cc65dc">svfir</a>(ir), <a class="code" href="classSVF_1_1CFLAlias.html#abd4d8eb59209a1f1cedebcf41117914b">graph</a>(<span class="keyword">nullptr</span>), <a class="code" href="classSVF_1_1CFLAlias.html#a31ffa49b8e0995b6ee9b8a1f5ecab7be">grammar</a>(<span class="keyword">nullptr</span>), <a class="code" href="classSVF_1_1CFLAlias.html#aa61c3683c9b759b6eca65b1f88e00b35">solver</a>(<span class="keyword">nullptr</span>)</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; {</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; }</div><div class="ttc" id="classSVF_1_1CFLAlias_html_aa61c3683c9b759b6eca65b1f88e00b35"><div class="ttname"><a href="classSVF_1_1CFLAlias.html#aa61c3683c9b759b6eca65b1f88e00b35">SVF::CFLAlias::solver</a></div><div class="ttdeci">CFLSolver * solver</div><div class="ttdef"><b>Definition:</b> <a href="CFLAlias_8h_source.html#l00144">CFLAlias.h:144</a></div></div>
472
575
  <div class="ttc" id="classSVF_1_1PointerAnalysis_html_a0b182ac680cce0547dbe7714c870ca85a164c6de3baace1c63db75a228a5816bb"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a0b182ac680cce0547dbe7714c870ca85a164c6de3baace1c63db75a228a5816bb">SVF::PointerAnalysis::CFLFICI_WPA</a></div><div class="ttdoc">Flow-, context-, insensitive CFL-reachability-based analysis. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00077">PointerAnalysis.h:77</a></div></div>
473
- <div class="ttc" id="classSVF_1_1PointerAnalysis_html_a14e2a209cb594f91a24ef09b12f82f3f"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a14e2a209cb594f91a24ef09b12f82f3f">SVF::PointerAnalysis::PointerAnalysis</a></div><div class="ttdeci">PointerAnalysis(SVFIR *pag, PTATY ty=Default_PTA, bool alias_check=true)</div><div class="ttdoc">Constructor. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8cpp_source.html#l00075">PointerAnalysis.cpp:75</a></div></div>
474
- <div class="ttc" id="classSVF_1_1CFLAlias_html_a31ffa49b8e0995b6ee9b8a1f5ecab7be"><div class="ttname"><a href="classSVF_1_1CFLAlias.html#a31ffa49b8e0995b6ee9b8a1f5ecab7be">SVF::CFLAlias::grammar</a></div><div class="ttdeci">CFLGrammar * grammar</div><div class="ttdef"><b>Definition:</b> <a href="CFLAlias_8h_source.html#l00141">CFLAlias.h:141</a></div></div>
475
- <div class="ttc" id="classSVF_1_1CFLAlias_html_abd4d8eb59209a1f1cedebcf41117914b"><div class="ttname"><a href="classSVF_1_1CFLAlias.html#abd4d8eb59209a1f1cedebcf41117914b">SVF::CFLAlias::graph</a></div><div class="ttdeci">CFLGraph * graph</div><div class="ttdef"><b>Definition:</b> <a href="CFLAlias_8h_source.html#l00140">CFLAlias.h:140</a></div></div>
476
- <div class="ttc" id="classSVF_1_1CFLAlias_html_a0bf4ce7e4fb3d1d95608c06420cc65dc"><div class="ttname"><a href="classSVF_1_1CFLAlias.html#a0bf4ce7e4fb3d1d95608c06420cc65dc">SVF::CFLAlias::svfir</a></div><div class="ttdeci">SVFIR * svfir</div><div class="ttdef"><b>Definition:</b> <a href="CFLAlias_8h_source.html#l00139">CFLAlias.h:139</a></div></div>
576
+ <div class="ttc" id="classSVF_1_1CFLAlias_html_a31ffa49b8e0995b6ee9b8a1f5ecab7be"><div class="ttname"><a href="classSVF_1_1CFLAlias.html#a31ffa49b8e0995b6ee9b8a1f5ecab7be">SVF::CFLAlias::grammar</a></div><div class="ttdeci">CFLGrammar * grammar</div><div class="ttdef"><b>Definition:</b> <a href="CFLAlias_8h_source.html#l00143">CFLAlias.h:143</a></div></div>
577
+ <div class="ttc" id="classSVF_1_1CFLAlias_html_abd4d8eb59209a1f1cedebcf41117914b"><div class="ttname"><a href="classSVF_1_1CFLAlias.html#abd4d8eb59209a1f1cedebcf41117914b">SVF::CFLAlias::graph</a></div><div class="ttdeci">CFLGraph * graph</div><div class="ttdef"><b>Definition:</b> <a href="CFLAlias_8h_source.html#l00142">CFLAlias.h:142</a></div></div>
578
+ <div class="ttc" id="classSVF_1_1BVDataPTAImpl_html_ab0e1242aadfe1e16a2bd1445658a5476"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#ab0e1242aadfe1e16a2bd1445658a5476">SVF::BVDataPTAImpl::BVDataPTAImpl</a></div><div class="ttdeci">BVDataPTAImpl(SVFIR *pag, PointerAnalysis::PTATY type, bool alias_check=true)</div><div class="ttdoc">Constructor. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8cpp_source.html#l00025">PointerAnalysisImpl.cpp:25</a></div></div>
579
+ <div class="ttc" id="classSVF_1_1CFLAlias_html_a0bf4ce7e4fb3d1d95608c06420cc65dc"><div class="ttname"><a href="classSVF_1_1CFLAlias.html#a0bf4ce7e4fb3d1d95608c06420cc65dc">SVF::CFLAlias::svfir</a></div><div class="ttdeci">SVFIR * svfir</div><div class="ttdef"><b>Definition:</b> <a href="CFLAlias_8h_source.html#l00141">CFLAlias.h:141</a></div></div>
477
580
  </div><!-- fragment -->
478
581
  </div>
479
582
  </div>
@@ -503,7 +606,7 @@ Additional Inherited Members</h2></td></tr>
503
606
  <p>Destructor. </p>
504
607
 
505
608
  <p class="definition">Definition at line <a class="el" href="CFLAlias_8h_source.html#l00054">54</a> of file <a class="el" href="CFLAlias_8h_source.html">CFLAlias.h</a>.</p>
506
- <div class="fragment"><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; {</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="keyword">delete</span> <a class="code" href="classSVF_1_1CFLAlias.html#aa61c3683c9b759b6eca65b1f88e00b35">solver</a>;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; }</div><div class="ttc" id="classSVF_1_1CFLAlias_html_aa61c3683c9b759b6eca65b1f88e00b35"><div class="ttname"><a href="classSVF_1_1CFLAlias.html#aa61c3683c9b759b6eca65b1f88e00b35">SVF::CFLAlias::solver</a></div><div class="ttdeci">CFLSolver * solver</div><div class="ttdef"><b>Definition:</b> <a href="CFLAlias_8h_source.html#l00142">CFLAlias.h:142</a></div></div>
609
+ <div class="fragment"><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; {</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="keyword">delete</span> <a class="code" href="classSVF_1_1CFLAlias.html#aa61c3683c9b759b6eca65b1f88e00b35">solver</a>;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; }</div><div class="ttc" id="classSVF_1_1CFLAlias_html_aa61c3683c9b759b6eca65b1f88e00b35"><div class="ttname"><a href="classSVF_1_1CFLAlias.html#aa61c3683c9b759b6eca65b1f88e00b35">SVF::CFLAlias::solver</a></div><div class="ttdeci">CFLSolver * solver</div><div class="ttdef"><b>Definition:</b> <a href="CFLAlias_8h_source.html#l00144">CFLAlias.h:144</a></div></div>
507
610
  </div><!-- fragment -->
508
611
  </div>
509
612
  </div>
@@ -542,16 +645,17 @@ Additional Inherited Members</h2></td></tr>
542
645
  </table>
543
646
  </div><div class="memdoc">
544
647
 
545
- <p>Add copy edge on constraint graph. </p>
648
+ <p>Need Original one for virtual table. </p>
649
+ <p>Add copy edge on constraint graph </p>
546
650
 
547
- <p class="definition">Definition at line <a class="el" href="CFLAlias_8h_source.html#l00105">105</a> of file <a class="el" href="CFLAlias_8h_source.html">CFLAlias.h</a>.</p>
548
- <div class="fragment"><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; {</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="keyword">const</span> CFLEdge *edge = <a class="code" href="classSVF_1_1CFLAlias.html#abd4d8eb59209a1f1cedebcf41117914b">graph</a>-&gt;<a class="code" href="classSVF_1_1CFLGraph.html#aca4c22dd10f65bcde5dadb7688544b50">hasEdge</a>(<a class="code" href="classSVF_1_1CFLAlias.html#abd4d8eb59209a1f1cedebcf41117914b">graph</a>-&gt;<a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(src),<a class="code" href="classSVF_1_1CFLAlias.html#abd4d8eb59209a1f1cedebcf41117914b">graph</a>-&gt;<a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(dst), 1);</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <span class="keywordflow">if</span> (edge != <span class="keyword">nullptr</span> )</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; {</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; }</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <a class="code" href="classSVF_1_1GrammarBase.html#a7aef5c42fbd8a62dd4a541cc0e8e8187">CFLGrammar::Kind</a> copyKind = <a class="code" href="classSVF_1_1CFLAlias.html#a31ffa49b8e0995b6ee9b8a1f5ecab7be">grammar</a>-&gt;<a class="code" href="classSVF_1_1GrammarBase.html#ad2d56d8cdc4539d4201d1995fb36e772">str2Kind</a>(<span class="stringliteral">&quot;Copy&quot;</span>);</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <a class="code" href="classSVF_1_1GrammarBase.html#a7aef5c42fbd8a62dd4a541cc0e8e8187">CFLGrammar::Kind</a> copybarKind = <a class="code" href="classSVF_1_1CFLAlias.html#a31ffa49b8e0995b6ee9b8a1f5ecab7be">grammar</a>-&gt;<a class="code" href="classSVF_1_1GrammarBase.html#ad2d56d8cdc4539d4201d1995fb36e772">str2Kind</a>(<span class="stringliteral">&quot;Copybar&quot;</span>);</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <a class="code" href="classSVF_1_1CFLAlias.html#aa61c3683c9b759b6eca65b1f88e00b35">solver</a>-&gt;<a class="code" href="classSVF_1_1CFLSolver.html#afc745dc72fd0572a145a78fe6a93ae5c">pushIntoWorklist</a>(<a class="code" href="classSVF_1_1CFLAlias.html#abd4d8eb59209a1f1cedebcf41117914b">graph</a>-&gt;<a class="code" href="classSVF_1_1CFLGraph.html#a9eea8083dbeaf898948595b1d75cfee2">addCFLEdge</a>(<a class="code" href="classSVF_1_1CFLAlias.html#abd4d8eb59209a1f1cedebcf41117914b">graph</a>-&gt;<a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(src),<a class="code" href="classSVF_1_1CFLAlias.html#abd4d8eb59209a1f1cedebcf41117914b">graph</a>-&gt;<a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(dst), copyKind));</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <a class="code" href="classSVF_1_1CFLAlias.html#aa61c3683c9b759b6eca65b1f88e00b35">solver</a>-&gt;<a class="code" href="classSVF_1_1CFLSolver.html#afc745dc72fd0572a145a78fe6a93ae5c">pushIntoWorklist</a>(<a class="code" href="classSVF_1_1CFLAlias.html#abd4d8eb59209a1f1cedebcf41117914b">graph</a>-&gt;<a class="code" href="classSVF_1_1CFLGraph.html#a9eea8083dbeaf898948595b1d75cfee2">addCFLEdge</a>(<a class="code" href="classSVF_1_1CFLAlias.html#abd4d8eb59209a1f1cedebcf41117914b">graph</a>-&gt;<a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(dst),<a class="code" href="classSVF_1_1CFLAlias.html#abd4d8eb59209a1f1cedebcf41117914b">graph</a>-&gt;<a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(src), copybarKind));</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; }</div><div class="ttc" id="classSVF_1_1CFLGraph_html_aca4c22dd10f65bcde5dadb7688544b50"><div class="ttname"><a href="classSVF_1_1CFLGraph.html#aca4c22dd10f65bcde5dadb7688544b50">SVF::CFLGraph::hasEdge</a></div><div class="ttdeci">virtual const CFLEdge * hasEdge(CFLNode *src, CFLNode *dst, CFLEdge::GEdgeFlag label)</div><div class="ttdef"><b>Definition:</b> <a href="CFLGraph_8cpp_source.html#l00060">CFLGraph.cpp:60</a></div></div>
651
+ <p class="definition">Definition at line <a class="el" href="CFLAlias_8h_source.html#l00107">107</a> of file <a class="el" href="CFLAlias_8h_source.html">CFLAlias.h</a>.</p>
652
+ <div class="fragment"><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; {</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="keyword">const</span> CFLEdge *edge = <a class="code" href="classSVF_1_1CFLAlias.html#abd4d8eb59209a1f1cedebcf41117914b">graph</a>-&gt;<a class="code" href="classSVF_1_1CFLGraph.html#aca4c22dd10f65bcde5dadb7688544b50">hasEdge</a>(<a class="code" href="classSVF_1_1CFLAlias.html#abd4d8eb59209a1f1cedebcf41117914b">graph</a>-&gt;<a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(src),<a class="code" href="classSVF_1_1CFLAlias.html#abd4d8eb59209a1f1cedebcf41117914b">graph</a>-&gt;<a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(dst), 1);</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <span class="keywordflow">if</span> (edge != <span class="keyword">nullptr</span> )</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; {</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</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; }</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <a class="code" href="classSVF_1_1GrammarBase.html#a7aef5c42fbd8a62dd4a541cc0e8e8187">CFLGrammar::Kind</a> copyKind = <a class="code" href="classSVF_1_1CFLAlias.html#a31ffa49b8e0995b6ee9b8a1f5ecab7be">grammar</a>-&gt;<a class="code" href="classSVF_1_1GrammarBase.html#ad2d56d8cdc4539d4201d1995fb36e772">str2Kind</a>(<span class="stringliteral">&quot;Copy&quot;</span>);</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <a class="code" href="classSVF_1_1GrammarBase.html#a7aef5c42fbd8a62dd4a541cc0e8e8187">CFLGrammar::Kind</a> copybarKind = <a class="code" href="classSVF_1_1CFLAlias.html#a31ffa49b8e0995b6ee9b8a1f5ecab7be">grammar</a>-&gt;<a class="code" href="classSVF_1_1GrammarBase.html#ad2d56d8cdc4539d4201d1995fb36e772">str2Kind</a>(<span class="stringliteral">&quot;Copybar&quot;</span>);</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <a class="code" href="classSVF_1_1CFLAlias.html#aa61c3683c9b759b6eca65b1f88e00b35">solver</a>-&gt;<a class="code" href="classSVF_1_1CFLSolver.html#afc745dc72fd0572a145a78fe6a93ae5c">pushIntoWorklist</a>(<a class="code" href="classSVF_1_1CFLAlias.html#abd4d8eb59209a1f1cedebcf41117914b">graph</a>-&gt;<a class="code" href="classSVF_1_1CFLGraph.html#a9eea8083dbeaf898948595b1d75cfee2">addCFLEdge</a>(<a class="code" href="classSVF_1_1CFLAlias.html#abd4d8eb59209a1f1cedebcf41117914b">graph</a>-&gt;<a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(src),<a class="code" href="classSVF_1_1CFLAlias.html#abd4d8eb59209a1f1cedebcf41117914b">graph</a>-&gt;<a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(dst), copyKind));</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <a class="code" href="classSVF_1_1CFLAlias.html#aa61c3683c9b759b6eca65b1f88e00b35">solver</a>-&gt;<a class="code" href="classSVF_1_1CFLSolver.html#afc745dc72fd0572a145a78fe6a93ae5c">pushIntoWorklist</a>(<a class="code" href="classSVF_1_1CFLAlias.html#abd4d8eb59209a1f1cedebcf41117914b">graph</a>-&gt;<a class="code" href="classSVF_1_1CFLGraph.html#a9eea8083dbeaf898948595b1d75cfee2">addCFLEdge</a>(<a class="code" href="classSVF_1_1CFLAlias.html#abd4d8eb59209a1f1cedebcf41117914b">graph</a>-&gt;<a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(dst),<a class="code" href="classSVF_1_1CFLAlias.html#abd4d8eb59209a1f1cedebcf41117914b">graph</a>-&gt;<a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(src), copybarKind));</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; }</div><div class="ttc" id="classSVF_1_1CFLGraph_html_aca4c22dd10f65bcde5dadb7688544b50"><div class="ttname"><a href="classSVF_1_1CFLGraph.html#aca4c22dd10f65bcde5dadb7688544b50">SVF::CFLGraph::hasEdge</a></div><div class="ttdeci">virtual const CFLEdge * hasEdge(CFLNode *src, CFLNode *dst, CFLEdge::GEdgeFlag label)</div><div class="ttdef"><b>Definition:</b> <a href="CFLGraph_8cpp_source.html#l00060">CFLGraph.cpp:60</a></div></div>
549
653
  <div class="ttc" id="classSVF_1_1CFLSolver_html_afc745dc72fd0572a145a78fe6a93ae5c"><div class="ttname"><a href="classSVF_1_1CFLSolver.html#afc745dc72fd0572a145a78fe6a93ae5c">SVF::CFLSolver::pushIntoWorklist</a></div><div class="ttdeci">bool pushIntoWorklist(const CFLEdge *item)</div><div class="ttdef"><b>Definition:</b> <a href="CFLSolver_8h_source.html#l00071">CFLSolver.h:71</a></div></div>
550
- <div class="ttc" id="classSVF_1_1CFLAlias_html_aa61c3683c9b759b6eca65b1f88e00b35"><div class="ttname"><a href="classSVF_1_1CFLAlias.html#aa61c3683c9b759b6eca65b1f88e00b35">SVF::CFLAlias::solver</a></div><div class="ttdeci">CFLSolver * solver</div><div class="ttdef"><b>Definition:</b> <a href="CFLAlias_8h_source.html#l00142">CFLAlias.h:142</a></div></div>
654
+ <div class="ttc" id="classSVF_1_1CFLAlias_html_aa61c3683c9b759b6eca65b1f88e00b35"><div class="ttname"><a href="classSVF_1_1CFLAlias.html#aa61c3683c9b759b6eca65b1f88e00b35">SVF::CFLAlias::solver</a></div><div class="ttdeci">CFLSolver * solver</div><div class="ttdef"><b>Definition:</b> <a href="CFLAlias_8h_source.html#l00144">CFLAlias.h:144</a></div></div>
551
655
  <div class="ttc" id="classSVF_1_1CFLGraph_html_a9eea8083dbeaf898948595b1d75cfee2"><div class="ttname"><a href="classSVF_1_1CFLGraph.html#a9eea8083dbeaf898948595b1d75cfee2">SVF::CFLGraph::addCFLEdge</a></div><div class="ttdeci">virtual const CFLEdge * addCFLEdge(CFLNode *src, CFLNode *dst, CFLEdge::GEdgeFlag label)</div><div class="ttdef"><b>Definition:</b> <a href="CFLGraph_8cpp_source.html#l00047">CFLGraph.cpp:47</a></div></div>
552
- <div class="ttc" id="classSVF_1_1CFLAlias_html_a31ffa49b8e0995b6ee9b8a1f5ecab7be"><div class="ttname"><a href="classSVF_1_1CFLAlias.html#a31ffa49b8e0995b6ee9b8a1f5ecab7be">SVF::CFLAlias::grammar</a></div><div class="ttdeci">CFLGrammar * grammar</div><div class="ttdef"><b>Definition:</b> <a href="CFLAlias_8h_source.html#l00141">CFLAlias.h:141</a></div></div>
656
+ <div class="ttc" id="classSVF_1_1CFLAlias_html_a31ffa49b8e0995b6ee9b8a1f5ecab7be"><div class="ttname"><a href="classSVF_1_1CFLAlias.html#a31ffa49b8e0995b6ee9b8a1f5ecab7be">SVF::CFLAlias::grammar</a></div><div class="ttdeci">CFLGrammar * grammar</div><div class="ttdef"><b>Definition:</b> <a href="CFLAlias_8h_source.html#l00143">CFLAlias.h:143</a></div></div>
553
657
  <div class="ttc" id="classSVF_1_1GrammarBase_html_ad2d56d8cdc4539d4201d1995fb36e772"><div class="ttname"><a href="classSVF_1_1GrammarBase.html#ad2d56d8cdc4539d4201d1995fb36e772">SVF::GrammarBase::str2Kind</a></div><div class="ttdeci">Kind str2Kind(std::string str) const</div><div class="ttdef"><b>Definition:</b> <a href="CFLGrammar_8cpp_source.html#l00055">CFLGrammar.cpp:55</a></div></div>
554
- <div class="ttc" id="classSVF_1_1CFLAlias_html_abd4d8eb59209a1f1cedebcf41117914b"><div class="ttname"><a href="classSVF_1_1CFLAlias.html#abd4d8eb59209a1f1cedebcf41117914b">SVF::CFLAlias::graph</a></div><div class="ttdeci">CFLGraph * graph</div><div class="ttdef"><b>Definition:</b> <a href="CFLAlias_8h_source.html#l00140">CFLAlias.h:140</a></div></div>
658
+ <div class="ttc" id="classSVF_1_1CFLAlias_html_abd4d8eb59209a1f1cedebcf41117914b"><div class="ttname"><a href="classSVF_1_1CFLAlias.html#abd4d8eb59209a1f1cedebcf41117914b">SVF::CFLAlias::graph</a></div><div class="ttdeci">CFLGraph * graph</div><div class="ttdef"><b>Definition:</b> <a href="CFLAlias_8h_source.html#l00142">CFLAlias.h:142</a></div></div>
555
659
  <div class="ttc" id="classSVF_1_1GrammarBase_html_a7aef5c42fbd8a62dd4a541cc0e8e8187"><div class="ttname"><a href="classSVF_1_1GrammarBase.html#a7aef5c42fbd8a62dd4a541cc0e8e8187">SVF::GrammarBase::Kind</a></div><div class="ttdeci">u32_t Kind</div><div class="ttdef"><b>Definition:</b> <a href="CFLGrammar_8h_source.html#l00039">CFLGrammar.h:39</a></div></div>
556
660
  <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#l00391">GenericGraph.h:391</a></div></div>
557
661
  </div><!-- fragment -->
@@ -593,12 +697,12 @@ Additional Inherited Members</h2></td></tr>
593
697
 
594
698
  <p>Interface exposed to users of our pointer analysis, given Value infos. </p>
595
699
 
596
- <p>Implements <a class="el" href="classSVF_1_1PointerAnalysis.html#a6c01f259ad2379a422d7106ce0255eb8">SVF::PointerAnalysis</a>.</p>
700
+ <p>Reimplemented from <a class="el" href="classSVF_1_1BVDataPTAImpl.html#adaba5a41a60e32d18d964bdb8ae5b2df">SVF::BVDataPTAImpl</a>.</p>
597
701
 
598
702
  <p class="definition">Definition at line <a class="el" href="CFLAlias_8h_source.html#l00063">63</a> of file <a class="el" href="CFLAlias_8h_source.html">CFLAlias.h</a>.</p>
599
703
  <div class="fragment"><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; {</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> n1 = <a class="code" href="classSVF_1_1CFLAlias.html#a0bf4ce7e4fb3d1d95608c06420cc65dc">svfir</a>-&gt;<a class="code" href="classSVF_1_1IRGraph.html#abffddd41cc308b9b3bd5ad4a7f8f1624">getValueNode</a>(v1);</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> n2 = <a class="code" href="classSVF_1_1CFLAlias.html#a0bf4ce7e4fb3d1d95608c06420cc65dc">svfir</a>-&gt;<a class="code" href="classSVF_1_1IRGraph.html#abffddd41cc308b9b3bd5ad4a7f8f1624">getValueNode</a>(v2);</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1CFLAlias.html#a0575c3badff6a158a6043e3e940af507">alias</a>(n1,n2);</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; }</div><div class="ttc" id="namespaceSVF_html_a43a65e0d33af3c743294f7a1139d2301"><div class="ttname"><a href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">SVF::NodeID</a></div><div class="ttdeci">unsigned NodeID</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8h_source.html#l00019">MTAResultValidator.h:19</a></div></div>
600
704
  <div class="ttc" id="classSVF_1_1IRGraph_html_abffddd41cc308b9b3bd5ad4a7f8f1624"><div class="ttname"><a href="classSVF_1_1IRGraph.html#abffddd41cc308b9b3bd5ad4a7f8f1624">SVF::IRGraph::getValueNode</a></div><div class="ttdeci">NodeID getValueNode(const Value *V)</div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#l00124">IRGraph.h:124</a></div></div>
601
- <div class="ttc" id="classSVF_1_1CFLAlias_html_a0bf4ce7e4fb3d1d95608c06420cc65dc"><div class="ttname"><a href="classSVF_1_1CFLAlias.html#a0bf4ce7e4fb3d1d95608c06420cc65dc">SVF::CFLAlias::svfir</a></div><div class="ttdeci">SVFIR * svfir</div><div class="ttdef"><b>Definition:</b> <a href="CFLAlias_8h_source.html#l00139">CFLAlias.h:139</a></div></div>
705
+ <div class="ttc" id="classSVF_1_1CFLAlias_html_a0bf4ce7e4fb3d1d95608c06420cc65dc"><div class="ttname"><a href="classSVF_1_1CFLAlias.html#a0bf4ce7e4fb3d1d95608c06420cc65dc">SVF::CFLAlias::svfir</a></div><div class="ttdeci">SVFIR * svfir</div><div class="ttdef"><b>Definition:</b> <a href="CFLAlias_8h_source.html#l00141">CFLAlias.h:141</a></div></div>
602
706
  <div class="ttc" id="classSVF_1_1CFLAlias_html_a0575c3badff6a158a6043e3e940af507"><div class="ttname"><a href="classSVF_1_1CFLAlias.html#a0575c3badff6a158a6043e3e940af507">SVF::CFLAlias::alias</a></div><div class="ttdeci">virtual AliasResult alias(const Value *v1, const Value *v2)</div><div class="ttdoc">Interface exposed to users of our pointer analysis, given Value infos. </div><div class="ttdef"><b>Definition:</b> <a href="CFLAlias_8h_source.html#l00063">CFLAlias.h:63</a></div></div>
603
707
  </div><!-- fragment -->
604
708
  </div>
@@ -639,12 +743,12 @@ Additional Inherited Members</h2></td></tr>
639
743
 
640
744
  <p>Interface exposed to users of our pointer analysis, given PAGNodeID. </p>
641
745
 
642
- <p>Implements <a class="el" href="classSVF_1_1PointerAnalysis.html#a0f712ead1f31750879948c36b2fc77cf">SVF::PointerAnalysis</a>.</p>
746
+ <p>Reimplemented from <a class="el" href="classSVF_1_1BVDataPTAImpl.html#a949533e5c99698c7f9862aae5de23687">SVF::BVDataPTAImpl</a>.</p>
643
747
 
644
748
  <p class="definition">Definition at line <a class="el" href="CFLAlias_8h_source.html#l00071">71</a> of file <a class="el" href="CFLAlias_8h_source.html">CFLAlias.h</a>.</p>
645
749
  <div class="fragment"><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; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1CFLAlias.html#abd4d8eb59209a1f1cedebcf41117914b">graph</a>-&gt;<a class="code" href="classSVF_1_1CFLGraph.html#aca4c22dd10f65bcde5dadb7688544b50">hasEdge</a>(<a class="code" href="classSVF_1_1CFLAlias.html#abd4d8eb59209a1f1cedebcf41117914b">graph</a>-&gt;<a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(node1), <a class="code" href="classSVF_1_1CFLAlias.html#abd4d8eb59209a1f1cedebcf41117914b">graph</a>-&gt;<a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(node2), <a class="code" href="classSVF_1_1CFLAlias.html#abd4d8eb59209a1f1cedebcf41117914b">graph</a>-&gt;<a class="code" href="classSVF_1_1CFLGraph.html#a0723f25be2a163b21f478cddca5293d2">startKind</a>))</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceSVF.html#a61c01e2e687ab3a001fb806737583943aef15fd8989d8dd9576b3fbb2aabc118f">AliasResult::MayAlias</a>;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceSVF.html#a61c01e2e687ab3a001fb806737583943afdd83ddff93d38902f07775cd36df239">AliasResult::NoAlias</a>;</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; }</div><div class="ttc" id="classSVF_1_1CFLGraph_html_aca4c22dd10f65bcde5dadb7688544b50"><div class="ttname"><a href="classSVF_1_1CFLGraph.html#aca4c22dd10f65bcde5dadb7688544b50">SVF::CFLGraph::hasEdge</a></div><div class="ttdeci">virtual const CFLEdge * hasEdge(CFLNode *src, CFLNode *dst, CFLEdge::GEdgeFlag label)</div><div class="ttdef"><b>Definition:</b> <a href="CFLGraph_8cpp_source.html#l00060">CFLGraph.cpp:60</a></div></div>
646
750
  <div class="ttc" id="namespaceSVF_html_a61c01e2e687ab3a001fb806737583943aef15fd8989d8dd9576b3fbb2aabc118f"><div class="ttname"><a href="namespaceSVF.html#a61c01e2e687ab3a001fb806737583943aef15fd8989d8dd9576b3fbb2aabc118f">SVF::MayAlias</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00199">SVFBasicTypes.h:199</a></div></div>
647
- <div class="ttc" id="classSVF_1_1CFLAlias_html_abd4d8eb59209a1f1cedebcf41117914b"><div class="ttname"><a href="classSVF_1_1CFLAlias.html#abd4d8eb59209a1f1cedebcf41117914b">SVF::CFLAlias::graph</a></div><div class="ttdeci">CFLGraph * graph</div><div class="ttdef"><b>Definition:</b> <a href="CFLAlias_8h_source.html#l00140">CFLAlias.h:140</a></div></div>
751
+ <div class="ttc" id="classSVF_1_1CFLAlias_html_abd4d8eb59209a1f1cedebcf41117914b"><div class="ttname"><a href="classSVF_1_1CFLAlias.html#abd4d8eb59209a1f1cedebcf41117914b">SVF::CFLAlias::graph</a></div><div class="ttdeci">CFLGraph * graph</div><div class="ttdef"><b>Definition:</b> <a href="CFLAlias_8h_source.html#l00142">CFLAlias.h:142</a></div></div>
648
752
  <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#l00391">GenericGraph.h:391</a></div></div>
649
753
  <div class="ttc" id="classSVF_1_1CFLGraph_html_a0723f25be2a163b21f478cddca5293d2"><div class="ttname"><a href="classSVF_1_1CFLGraph.html#a0723f25be2a163b21f478cddca5293d2">SVF::CFLGraph::startKind</a></div><div class="ttdeci">Kind startKind</div><div class="ttdef"><b>Definition:</b> <a href="CFLGraph_8h_source.html#l00092">CFLGraph.h:92</a></div></div>
650
754
  <div class="ttc" id="namespaceSVF_html_a61c01e2e687ab3a001fb806737583943afdd83ddff93d38902f07775cd36df239"><div class="ttname"><a href="namespaceSVF.html#a61c01e2e687ab3a001fb806737583943afdd83ddff93d38902f07775cd36df239">SVF::NoAlias</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00198">SVFBasicTypes.h:198</a></div></div>
@@ -687,11 +791,11 @@ Additional Inherited Members</h2></td></tr>
687
791
  <div class="ttc" id="classSVF_1_1AliasCFLGraphBuilder_html"><div class="ttname"><a href="classSVF_1_1AliasCFLGraphBuilder.html">SVF::AliasCFLGraphBuilder</a></div><div class="ttdef"><b>Definition:</b> <a href="CFLGraphBuilder_8h_source.html#l00143">CFLGraphBuilder.h:143</a></div></div>
688
792
  <div class="ttc" id="classSVF_1_1GrammarBuilder_html"><div class="ttname"><a href="classSVF_1_1GrammarBuilder.html">SVF::GrammarBuilder</a></div><div class="ttdef"><b>Definition:</b> <a href="GrammarBuilder_8h_source.html#l00070">GrammarBuilder.h:70</a></div></div>
689
793
  <div class="ttc" id="classSVF_1_1CFLSolver_html"><div class="ttname"><a href="classSVF_1_1CFLSolver.html">SVF::CFLSolver</a></div><div class="ttdef"><b>Definition:</b> <a href="CFLSolver_8h_source.html#l00038">CFLSolver.h:38</a></div></div>
690
- <div class="ttc" id="classSVF_1_1CFLAlias_html_aa61c3683c9b759b6eca65b1f88e00b35"><div class="ttname"><a href="classSVF_1_1CFLAlias.html#aa61c3683c9b759b6eca65b1f88e00b35">SVF::CFLAlias::solver</a></div><div class="ttdeci">CFLSolver * solver</div><div class="ttdef"><b>Definition:</b> <a href="CFLAlias_8h_source.html#l00142">CFLAlias.h:142</a></div></div>
794
+ <div class="ttc" id="classSVF_1_1CFLAlias_html_aa61c3683c9b759b6eca65b1f88e00b35"><div class="ttname"><a href="classSVF_1_1CFLAlias.html#aa61c3683c9b759b6eca65b1f88e00b35">SVF::CFLAlias::solver</a></div><div class="ttdeci">CFLSolver * solver</div><div class="ttdef"><b>Definition:</b> <a href="CFLAlias_8h_source.html#l00144">CFLAlias.h:144</a></div></div>
691
795
  <div class="ttc" id="classSVF_1_1CFGNormalizer_html_ae8e2b22944e9d3d2ec14cd6aaa8b93c9"><div class="ttname"><a href="classSVF_1_1CFGNormalizer.html#ae8e2b22944e9d3d2ec14cd6aaa8b93c9">SVF::CFGNormalizer::normalize</a></div><div class="ttdeci">CFLGrammar * normalize(GrammarBase *generalGrammar)</div><div class="ttdoc">Binary Normal Form(BNF) normalization with variable attribute expanded. </div><div class="ttdef"><b>Definition:</b> <a href="CFGNormalizer_8cpp_source.html#l00042">CFGNormalizer.cpp:42</a></div></div>
692
796
  <div class="ttc" id="classSVF_1_1GrammarBase_html_a8921a7d7a006e31f13d88b8c808c931b"><div class="ttname"><a href="classSVF_1_1GrammarBase.html#a8921a7d7a006e31f13d88b8c808c931b">SVF::GrammarBase::getStartKind</a></div><div class="ttdeci">Kind getStartKind()</div><div class="ttdef"><b>Definition:</b> <a href="CFLGrammar_8h_source.html#l00195">CFLGrammar.h:195</a></div></div>
693
797
  <div class="ttc" id="classSVF_1_1PointerAnalysis_html_a118dabc50024b5cd91095814ade47166"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a118dabc50024b5cd91095814ade47166">SVF::PointerAnalysis::finalize</a></div><div class="ttdeci">virtual void finalize()</div><div class="ttdoc">Finalization of a pointer analysis, including checking alias correctness. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8cpp_source.html#l00195">PointerAnalysis.cpp:195</a></div></div>
694
- <div class="ttc" id="classSVF_1_1CFLAlias_html_a31ffa49b8e0995b6ee9b8a1f5ecab7be"><div class="ttname"><a href="classSVF_1_1CFLAlias.html#a31ffa49b8e0995b6ee9b8a1f5ecab7be">SVF::CFLAlias::grammar</a></div><div class="ttdeci">CFLGrammar * grammar</div><div class="ttdef"><b>Definition:</b> <a href="CFLAlias_8h_source.html#l00141">CFLAlias.h:141</a></div></div>
798
+ <div class="ttc" id="classSVF_1_1CFLAlias_html_a31ffa49b8e0995b6ee9b8a1f5ecab7be"><div class="ttname"><a href="classSVF_1_1CFLAlias.html#a31ffa49b8e0995b6ee9b8a1f5ecab7be">SVF::CFLAlias::grammar</a></div><div class="ttdeci">CFLGrammar * grammar</div><div class="ttdef"><b>Definition:</b> <a href="CFLAlias_8h_source.html#l00143">CFLAlias.h:143</a></div></div>
695
799
  <div class="ttc" id="classSVF_1_1CFLGrammar_html_aa663563ea03e11371d67ff4673e98a54"><div class="ttname"><a href="classSVF_1_1CFLGrammar.html#aa663563ea03e11371d67ff4673e98a54">SVF::CFLGrammar::dump</a></div><div class="ttdeci">void dump() const</div><div class="ttdef"><b>Definition:</b> <a href="CFLGrammar_8cpp_source.html#l00281">CFLGrammar.cpp:281</a></div></div>
696
800
  <div class="ttc" id="classSVF_1_1CFLGraph_html_ab32869931e46babcfaa6791efe2ba91e"><div class="ttname"><a href="classSVF_1_1CFLGraph.html#ab32869931e46babcfaa6791efe2ba91e">SVF::CFLGraph::dump</a></div><div class="ttdeci">void dump(const std::string &amp;filename)</div><div class="ttdef"><b>Definition:</b> <a href="CFLGraph_8cpp_source.html#l00070">CFLGraph.cpp:70</a></div></div>
697
801
  <div class="ttc" id="classSVF_1_1CFLAlias_html_a9637bcb592d250b5556b242d2ffc88fa"><div class="ttname"><a href="classSVF_1_1CFLAlias.html#a9637bcb592d250b5556b242d2ffc88fa">SVF::CFLAlias::updateCallGraph</a></div><div class="ttdeci">virtual bool updateCallGraph(const CallSiteToFunPtrMap &amp;callsites)</div><div class="ttdoc">Update call graph for the input indirect callsites. </div><div class="ttdef"><b>Definition:</b> <a href="CFLAlias_8cpp_source.html#l00175">CFLAlias.cpp:175</a></div></div>
@@ -699,15 +803,15 @@ Additional Inherited Members</h2></td></tr>
699
803
  <div class="ttc" id="classSVF_1_1Options_html_a87b63f1f8f4f65cdf6647f9f056ffc53"><div class="ttname"><a href="classSVF_1_1Options.html#a87b63f1f8f4f65cdf6647f9f056ffc53">SVF::Options::CFLGraph</a></div><div class="ttdeci">static const llvm::cl::opt&lt; std::string &gt; CFLGraph</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00252">Options.h:252</a></div></div>
700
804
  <div class="ttc" id="classSVF_1_1Options_html_a0beb2da0f9ab691c0b7729bb42f8354c"><div class="ttname"><a href="classSVF_1_1Options.html#a0beb2da0f9ab691c0b7729bb42f8354c">SVF::Options::PrintCFL</a></div><div class="ttdeci">static const llvm::cl::opt&lt; bool &gt; PrintCFL</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00253">Options.h:253</a></div></div>
701
805
  <div class="ttc" id="classSVF_1_1CFLGraphBuilder_html_a6c9fa25204550dc5bea1cae52a61472b"><div class="ttname"><a href="classSVF_1_1CFLGraphBuilder.html#a6c9fa25204550dc5bea1cae52a61472b">SVF::CFLGraphBuilder::buildFromDot</a></div><div class="ttdeci">CFLGraph * buildFromDot(std::string filename, GrammarBase *grammar)</div><div class="ttdoc">Build graph from Dot. </div><div class="ttdef"><b>Definition:</b> <a href="CFLGraphBuilder_8cpp_source.html#l00059">CFLGraphBuilder.cpp:59</a></div></div>
702
- <div class="ttc" id="classSVF_1_1CFLAlias_html_abd4d8eb59209a1f1cedebcf41117914b"><div class="ttname"><a href="classSVF_1_1CFLAlias.html#abd4d8eb59209a1f1cedebcf41117914b">SVF::CFLAlias::graph</a></div><div class="ttdeci">CFLGraph * graph</div><div class="ttdef"><b>Definition:</b> <a href="CFLAlias_8h_source.html#l00140">CFLAlias.h:140</a></div></div>
806
+ <div class="ttc" id="classSVF_1_1CFLAlias_html_abd4d8eb59209a1f1cedebcf41117914b"><div class="ttname"><a href="classSVF_1_1CFLAlias.html#abd4d8eb59209a1f1cedebcf41117914b">SVF::CFLAlias::graph</a></div><div class="ttdeci">CFLGraph * graph</div><div class="ttdef"><b>Definition:</b> <a href="CFLAlias_8h_source.html#l00142">CFLAlias.h:142</a></div></div>
703
807
  <div class="ttc" id="classSVF_1_1GrammarBase_html"><div class="ttname"><a href="classSVF_1_1GrammarBase.html">SVF::GrammarBase</a></div><div class="ttdef"><b>Definition:</b> <a href="CFLGrammar_8h_source.html#l00036">CFLGrammar.h:36</a></div></div>
704
808
  <div class="ttc" id="classSVF_1_1Options_html_aa929e2ae2c0a78181c3a1311bfe73596"><div class="ttname"><a href="classSVF_1_1Options.html#aa929e2ae2c0a78181c3a1311bfe73596">SVF::Options::GrammarFilename</a></div><div class="ttdeci">static const llvm::cl::opt&lt; std::string &gt; GrammarFilename</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00251">Options.h:251</a></div></div>
705
- <div class="ttc" id="classSVF_1_1CFLAlias_html_a0bf4ce7e4fb3d1d95608c06420cc65dc"><div class="ttname"><a href="classSVF_1_1CFLAlias.html#a0bf4ce7e4fb3d1d95608c06420cc65dc">SVF::CFLAlias::svfir</a></div><div class="ttdeci">SVFIR * svfir</div><div class="ttdef"><b>Definition:</b> <a href="CFLAlias_8h_source.html#l00139">CFLAlias.h:139</a></div></div>
809
+ <div class="ttc" id="classSVF_1_1CFLAlias_html_a0bf4ce7e4fb3d1d95608c06420cc65dc"><div class="ttname"><a href="classSVF_1_1CFLAlias.html#a0bf4ce7e4fb3d1d95608c06420cc65dc">SVF::CFLAlias::svfir</a></div><div class="ttdeci">SVFIR * svfir</div><div class="ttdef"><b>Definition:</b> <a href="CFLAlias_8h_source.html#l00141">CFLAlias.h:141</a></div></div>
706
810
  <div class="ttc" id="classSVF_1_1CFLSolver_html_a2ee3436c26ebdb2aaf790c25b1d8b5a6"><div class="ttname"><a href="classSVF_1_1CFLSolver.html#a2ee3436c26ebdb2aaf790c25b1d8b5a6">SVF::CFLSolver::solve</a></div><div class="ttdeci">void solve()</div><div class="ttdoc">Start solving. </div><div class="ttdef"><b>Definition:</b> <a href="CFLSolver_8cpp_source.html#l00034">CFLSolver.cpp:34</a></div></div>
707
811
  <div class="ttc" id="classSVF_1_1SVFIR_html_a2d2131128ceb3362b5dc89317cfd88a0"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a2d2131128ceb3362b5dc89317cfd88a0">SVF::SVFIR::getIndirectCallsites</a></div><div class="ttdeci">const CallSiteToFunPtrMap &amp; getIndirectCallsites() const</div><div class="ttdoc">Add/get indirect callsites. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00299">SVFIR.h:299</a></div></div>
708
812
  <div class="ttc" id="cJSON_8h_html_ad4c68ea99a26b0a98ad9a79982960458"><div class="ttname"><a href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">string</a></div><div class="ttdeci">const char *const string</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8h_source.html#l00172">cJSON.h:172</a></div></div>
709
813
  <div class="ttc" id="classSVF_1_1PointerAnalysis_html_a431ec4f85eb0f029e5740b92fd9ceb32"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a431ec4f85eb0f029e5740b92fd9ceb32">SVF::PointerAnalysis::initialize</a></div><div class="ttdeci">virtual void initialize()</div><div class="ttdoc">Initialization of a pointer analysis, including building symbol table and SVFIR etc. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8cpp_source.html#l00114">PointerAnalysis.cpp:114</a></div></div>
710
- <div class="ttc" id="classSVF_1_1GrammarBuilder_html_a23d03b2cd348d85bda1ee582dded6505"><div class="ttname"><a href="classSVF_1_1GrammarBuilder.html#a23d03b2cd348d85bda1ee582dded6505">SVF::GrammarBuilder::build</a></div><div class="ttdeci">GrammarBase * build() const</div><div class="ttdoc">Build grammarBase from fileName. </div><div class="ttdef"><b>Definition:</b> <a href="GrammarBuilder_8cpp_source.html#l00104">GrammarBuilder.cpp:104</a></div></div>
814
+ <div class="ttc" id="classSVF_1_1GrammarBuilder_html_a23d03b2cd348d85bda1ee582dded6505"><div class="ttname"><a href="classSVF_1_1GrammarBuilder.html#a23d03b2cd348d85bda1ee582dded6505">SVF::GrammarBuilder::build</a></div><div class="ttdeci">GrammarBase * build() const</div><div class="ttdoc">Build grammarBase from fileName. </div><div class="ttdef"><b>Definition:</b> <a href="GrammarBuilder_8cpp_source.html#l00106">GrammarBuilder.cpp:106</a></div></div>
711
815
  </div><!-- fragment -->
712
816
  </div>
713
817
  </div>
@@ -767,18 +871,18 @@ Additional Inherited Members</h2></td></tr>
767
871
  <div class="ttc" id="classSVF_1_1SVFIR_html_a34e27b8bcfeaafda190dcdb9169a346f"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a34e27b8bcfeaafda190dcdb9169a346f">SVF::SVFIR::getFunRet</a></div><div class="ttdeci">const SVFVar * getFunRet(const SVFFunction *func) const</div><div class="ttdoc">Get function return list. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00270">SVFIR.h:270</a></div></div>
768
872
  <div class="ttc" id="classSVF_1_1GenericNode_html_ac3e55ef37aefb411ea4c87b1aa3b1895"><div class="ttname"><a href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">SVF::GenericNode::getId</a></div><div class="ttdeci">NodeID getId() const</div><div class="ttdoc">Get ID. </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00169">GenericGraph.h:169</a></div></div>
769
873
  <div class="ttc" id="SVFBasicTypes_8h_html_a7a295e02c56a93cf9206dd9d3b18dd17"><div class="ttname"><a href="SVFBasicTypes_8h.html#a7a295e02c56a93cf9206dd9d3b18dd17">DPAGBuild</a></div><div class="ttdeci">#define DPAGBuild</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00162">SVFBasicTypes.h:162</a></div></div>
770
- <div class="ttc" id="classSVF_1_1CFLAlias_html_a0bf4ce7e4fb3d1d95608c06420cc65dc"><div class="ttname"><a href="classSVF_1_1CFLAlias.html#a0bf4ce7e4fb3d1d95608c06420cc65dc">SVF::CFLAlias::svfir</a></div><div class="ttdeci">SVFIR * svfir</div><div class="ttdef"><b>Definition:</b> <a href="CFLAlias_8h_source.html#l00139">CFLAlias.h:139</a></div></div>
874
+ <div class="ttc" id="classSVF_1_1CFLAlias_html_a0bf4ce7e4fb3d1d95608c06420cc65dc"><div class="ttname"><a href="classSVF_1_1CFLAlias.html#a0bf4ce7e4fb3d1d95608c06420cc65dc">SVF::CFLAlias::svfir</a></div><div class="ttdeci">SVFIR * svfir</div><div class="ttdef"><b>Definition:</b> <a href="CFLAlias_8h_source.html#l00141">CFLAlias.h:141</a></div></div>
771
875
  <div class="ttc" id="classSVF_1_1SVFFunction_html_a3c1fa59deae39c75c72c97e47326d982"><div class="ttname"><a href="classSVF_1_1SVFFunction.html#a3c1fa59deae39c75c72c97e47326d982">SVF::SVFFunction::isVarArg</a></div><div class="ttdeci">bool isVarArg() const</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00168">BasicTypes.h:168</a></div></div>
772
876
  <div class="ttc" id="classSVF_1_1SVFIR_html_a3145677c7a3763fc0d6aa7e21b264ab6"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a3145677c7a3763fc0d6aa7e21b264ab6">SVF::SVFIR::getCallSiteRet</a></div><div class="ttdeci">const SVFVar * getCallSiteRet(const RetICFGNode *cs) const</div><div class="ttdoc">Get callsite return. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00254">SVFIR.h:254</a></div></div>
773
877
  <div class="ttc" id="classSVF_1_1SVFIR_html_aa1943d53e75aef9b014953143c6894da"><div class="ttname"><a href="classSVF_1_1SVFIR.html#aa1943d53e75aef9b014953143c6894da">SVF::SVFIR::getICFG</a></div><div class="ttdeci">ICFG * getICFG()</div><div class="ttdoc">Return ICFG. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00132">SVFIR.h:132</a></div></div>
774
- <div class="ttc" id="classSVF_1_1CFLAlias_html_a1fb9134ce0a8e901bb86c4a1954b17f2"><div class="ttname"><a href="classSVF_1_1CFLAlias.html#a1fb9134ce0a8e901bb86c4a1954b17f2">SVF::CFLAlias::addCopyEdge</a></div><div class="ttdeci">virtual bool addCopyEdge(NodeID src, NodeID dst)</div><div class="ttdoc">Add copy edge on constraint graph. </div><div class="ttdef"><b>Definition:</b> <a href="CFLAlias_8h_source.html#l00105">CFLAlias.h:105</a></div></div>
878
+ <div class="ttc" id="classSVF_1_1CFLAlias_html_a1fb9134ce0a8e901bb86c4a1954b17f2"><div class="ttname"><a href="classSVF_1_1CFLAlias.html#a1fb9134ce0a8e901bb86c4a1954b17f2">SVF::CFLAlias::addCopyEdge</a></div><div class="ttdeci">virtual bool addCopyEdge(NodeID src, NodeID dst)</div><div class="ttdoc">Need Original one for virtual table. </div><div class="ttdef"><b>Definition:</b> <a href="CFLAlias_8h_source.html#l00107">CFLAlias.h:107</a></div></div>
775
879
  <div class="ttc" id="SVFBasicTypes_8h_html_a173ce1b9b505fdadf5613b663749d3b0"><div class="ttname"><a href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a></div><div class="ttdeci">#define DBOUT(TYPE, X)</div><div class="ttdoc">LLVM debug macros, define type of your DEBUG model of each pass. </div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00155">SVFBasicTypes.h:155</a></div></div>
776
880
  <div class="ttc" id="classSVF_1_1SVFIR_html_aa79dba26cb34b40eee682713db299d5f"><div class="ttname"><a href="classSVF_1_1SVFIR.html#aa79dba26cb34b40eee682713db299d5f">SVF::SVFIR::callsiteHasRet</a></div><div class="ttdeci">bool callsiteHasRet(const RetICFGNode *cs) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00260">SVFIR.h:260</a></div></div>
777
881
  </div><!-- fragment -->
778
882
  </div>
779
883
  </div>
780
- <a id="ad7bde2bfe158e9c3643927583ce145c9"></a>
781
- <h2 class="memtitle"><span class="permalink"><a href="#ad7bde2bfe158e9c3643927583ce145c9">&#9670;&nbsp;</a></span>getPts()</h2>
884
+ <a id="acbbacca91cb85f67523aa8f84f6fe629"></a>
885
+ <h2 class="memtitle"><span class="permalink"><a href="#acbbacca91cb85f67523aa8f84f6fe629">&#9670;&nbsp;</a></span>getCFLPts()</h2>
782
886
 
783
887
  <div class="memitem">
784
888
  <div class="memproto">
@@ -787,7 +891,7 @@ Additional Inherited Members</h2></td></tr>
787
891
  <td class="mlabels-left">
788
892
  <table class="memname">
789
893
  <tr>
790
- <td class="memname">virtual const <a class="el" href="classSVF_1_1PointsTo.html">PointsTo</a>&amp; SVF::CFLAlias::getPts </td>
894
+ <td class="memname">virtual const <a class="el" href="classSVF_1_1PointsTo.html">PointsTo</a>&amp; SVF::CFLAlias::getCFLPts </td>
791
895
  <td>(</td>
792
896
  <td class="paramtype"><a class="el" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a>&#160;</td>
793
897
  <td class="paramname"><em>ptr</em></td><td>)</td>
@@ -804,11 +908,13 @@ Additional Inherited Members</h2></td></tr>
804
908
  <p>Get points-to targets of a pointer. V In this context. </p>
805
909
  <p>Check V Dst of ptr. </p>
806
910
 
807
- <p>Implements <a class="el" href="classSVF_1_1PointerAnalysis.html#a4dfb43679e9fa794ebad99b6584c32ec">SVF::PointerAnalysis</a>.</p>
808
-
809
911
  <p class="definition">Definition at line <a class="el" href="CFLAlias_8h_source.html#l00080">80</a> of file <a class="el" href="CFLAlias_8h_source.html">CFLAlias.h</a>.</p>
810
- <div class="fragment"><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; {</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; PointsTo *ps = <span class="keyword">new</span> PointsTo();</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; CFLNode *funNode = <a class="code" href="classSVF_1_1CFLAlias.html#abd4d8eb59209a1f1cedebcf41117914b">graph</a>-&gt;<a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(ptr);</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> outedge = funNode-&gt;getOutEdges().begin(); outedge!=funNode-&gt;getOutEdges().end(); outedge++)</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; {</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="keywordflow">if</span>((*outedge)-&gt;getEdgeKind() == <a class="code" href="classSVF_1_1CFLAlias.html#abd4d8eb59209a1f1cedebcf41117914b">graph</a>-&gt;<a class="code" href="classSVF_1_1CFLGraph.html#a685fb852b2cd3767258225aa3b87caa4">getStartKind</a>())</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; {</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <span class="comment">// Need to Find dst addr src</span></div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; CFLNode *vNode = <a class="code" href="classSVF_1_1CFLAlias.html#abd4d8eb59209a1f1cedebcf41117914b">graph</a>-&gt;<a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>((*outedge)-&gt;getDstID());</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> inEdge = vNode-&gt;getInEdges().begin(); inEdge!=vNode-&gt;getInEdges().end(); inEdge++)</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; {</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="keywordflow">if</span>((*inEdge)-&gt;getEdgeKind() == 0)</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; {</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; ps-&gt;set((*inEdge)-&gt;getSrcID());</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; }</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; }</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; }</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; }</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keywordflow">return</span> *ps;</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; }</div><div class="ttc" id="classSVF_1_1CFLAlias_html_abd4d8eb59209a1f1cedebcf41117914b"><div class="ttname"><a href="classSVF_1_1CFLAlias.html#abd4d8eb59209a1f1cedebcf41117914b">SVF::CFLAlias::graph</a></div><div class="ttdeci">CFLGraph * graph</div><div class="ttdef"><b>Definition:</b> <a href="CFLAlias_8h_source.html#l00140">CFLAlias.h:140</a></div></div>
912
+ <div class="fragment"><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; {</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; CFLNode *funNode = <a class="code" href="classSVF_1_1CFLAlias.html#abd4d8eb59209a1f1cedebcf41117914b">graph</a>-&gt;<a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(ptr);</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> outedge = funNode-&gt;getOutEdges().begin(); outedge!=funNode-&gt;getOutEdges().end(); outedge++)</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; {</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="keywordflow">if</span>((*outedge)-&gt;getEdgeKind() == <a class="code" href="classSVF_1_1CFLAlias.html#abd4d8eb59209a1f1cedebcf41117914b">graph</a>-&gt;<a class="code" href="classSVF_1_1CFLGraph.html#a685fb852b2cd3767258225aa3b87caa4">getStartKind</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="comment">// Need to Find dst addr src</span></div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; CFLNode *vNode = <a class="code" href="classSVF_1_1CFLAlias.html#abd4d8eb59209a1f1cedebcf41117914b">graph</a>-&gt;<a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>((*outedge)-&gt;getDstID());</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <a class="code" href="classSVF_1_1BVDataPTAImpl.html#af68485a2208553579f9c2e4b2cb20cff">addPts</a>(ptr, <a class="code" href="classSVF_1_1CFLAlias.html#a0bf4ce7e4fb3d1d95608c06420cc65dc">svfir</a>-&gt;<a class="code" href="classSVF_1_1SVFIR.html#a5298f34143ec3a2e6bb74ebad668cbbc">getBaseValVar</a>((*outedge)-&gt;getDstID()));</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> inEdge = vNode-&gt;getInEdges().begin(); inEdge!=vNode-&gt;getInEdges().end(); inEdge++)</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>((*inEdge)-&gt;getEdgeKind() == 0)</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="classSVF_1_1BVDataPTAImpl.html#af68485a2208553579f9c2e4b2cb20cff">addPts</a>(ptr, (*inEdge)-&gt;getSrcID());</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; }</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; }</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; }</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; }</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1BVDataPTAImpl.html#aee289e298e421448caaa604b7eb34fcb">getPts</a>(ptr);</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; }</div><div class="ttc" id="classSVF_1_1SVFIR_html_a5298f34143ec3a2e6bb74ebad668cbbc"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a5298f34143ec3a2e6bb74ebad668cbbc">SVF::SVFIR::getBaseValVar</a></div><div class="ttdeci">NodeID getBaseValVar(NodeID nodeId)</div><div class="ttdoc">Base and Offset methods for Value and Object node. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8cpp_source.html#l00522">SVFIR.cpp:522</a></div></div>
913
+ <div class="ttc" id="classSVF_1_1BVDataPTAImpl_html_af68485a2208553579f9c2e4b2cb20cff"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#af68485a2208553579f9c2e4b2cb20cff">SVF::BVDataPTAImpl::addPts</a></div><div class="ttdeci">virtual bool addPts(NodeID id, NodeID ptd)</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00132">PointerAnalysisImpl.h:132</a></div></div>
914
+ <div class="ttc" id="classSVF_1_1BVDataPTAImpl_html_aee289e298e421448caaa604b7eb34fcb"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#aee289e298e421448caaa604b7eb34fcb">SVF::BVDataPTAImpl::getPts</a></div><div class="ttdeci">virtual const PointsTo &amp; getPts(NodeID id)</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00099">PointerAnalysisImpl.h:99</a></div></div>
915
+ <div class="ttc" id="classSVF_1_1CFLAlias_html_abd4d8eb59209a1f1cedebcf41117914b"><div class="ttname"><a href="classSVF_1_1CFLAlias.html#abd4d8eb59209a1f1cedebcf41117914b">SVF::CFLAlias::graph</a></div><div class="ttdeci">CFLGraph * graph</div><div class="ttdef"><b>Definition:</b> <a href="CFLAlias_8h_source.html#l00142">CFLAlias.h:142</a></div></div>
811
916
  <div class="ttc" id="classSVF_1_1CFLGraph_html_a685fb852b2cd3767258225aa3b87caa4"><div class="ttname"><a href="classSVF_1_1CFLGraph.html#a685fb852b2cd3767258225aa3b87caa4">SVF::CFLGraph::getStartKind</a></div><div class="ttdeci">Kind getStartKind() const</div><div class="ttdef"><b>Definition:</b> <a href="CFLGraph_8cpp_source.html#l00037">CFLGraph.cpp:37</a></div></div>
917
+ <div class="ttc" id="classSVF_1_1CFLAlias_html_a0bf4ce7e4fb3d1d95608c06420cc65dc"><div class="ttname"><a href="classSVF_1_1CFLAlias.html#a0bf4ce7e4fb3d1d95608c06420cc65dc">SVF::CFLAlias::svfir</a></div><div class="ttdeci">SVFIR * svfir</div><div class="ttdef"><b>Definition:</b> <a href="CFLAlias_8h_source.html#l00141">CFLAlias.h:141</a></div></div>
812
918
  <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#l00391">GenericGraph.h:391</a></div></div>
813
919
  </div><!-- fragment -->
814
920
  </div>
@@ -840,10 +946,10 @@ Additional Inherited Members</h2></td></tr>
840
946
  <p>Given an object, get all the nodes having whose pointsto contains the object. </p>
841
947
  <p>Check Outgoing flowtobar edge dst of ptr </p>
842
948
 
843
- <p>Implements <a class="el" href="classSVF_1_1PointerAnalysis.html#ad9af9655a13f3faeaf265ba370d1f280">SVF::PointerAnalysis</a>.</p>
949
+ <p>Reimplemented from <a class="el" href="classSVF_1_1BVDataPTAImpl.html#a58113943e4e7144d94d26991dcc8bcc7">SVF::BVDataPTAImpl</a>.</p>
844
950
 
845
- <p class="definition">Definition at line <a class="el" href="CFLAlias_8h_source.html#l00121">121</a> of file <a class="el" href="CFLAlias_8h_source.html">CFLAlias.h</a>.</p>
846
- <div class="fragment"><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; {</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; abort(); <span class="comment">// to be implemented</span></div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; }</div></div><!-- fragment -->
951
+ <p class="definition">Definition at line <a class="el" href="CFLAlias_8h_source.html#l00123">123</a> of file <a class="el" href="CFLAlias_8h_source.html">CFLAlias.h</a>.</p>
952
+ <div class="fragment"><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; {</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; abort(); <span class="comment">// to be implemented</span></div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; }</div></div><!-- fragment -->
847
953
  </div>
848
954
  </div>
849
955
  <a id="a40841c2b47cf690af5c13ba7662d0863"></a>
@@ -873,14 +979,14 @@ Additional Inherited Members</h2></td></tr>
873
979
  <div class="ttc" id="classSVF_1_1CFLNode_html"><div class="ttname"><a href="classSVF_1_1CFLNode.html">SVF::CFLNode</a></div><div class="ttdef"><b>Definition:</b> <a href="CFLGraph_8h_source.html#l00074">CFLGraph.h:74</a></div></div>
874
980
  <div class="ttc" id="classSVF_1_1SVFIR_html_a905b16c9fe739c4e95902b2729951b5b"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a905b16c9fe739c4e95902b2729951b5b">SVF::SVFIR::addDummyObjNode</a></div><div class="ttdeci">NodeID addDummyObjNode(const Type *type)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00432">SVFIR.h:432</a></div></div>
875
981
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a145abbd2958629718fbca41d25c3124d"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a145abbd2958629718fbca41d25c3124d">SVF::SVFUtil::getCallee</a></div><div class="ttdeci">const SVFFunction * getCallee(const CallSite cs)</div><div class="ttdoc">Return callee of a callsite. Return null if this is an indirect call. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00281">SVFUtil.h:281</a></div></div>
876
- <div class="ttc" id="classSVF_1_1CFLAlias_html_abd4d8eb59209a1f1cedebcf41117914b"><div class="ttname"><a href="classSVF_1_1CFLAlias.html#abd4d8eb59209a1f1cedebcf41117914b">SVF::CFLAlias::graph</a></div><div class="ttdeci">CFLGraph * graph</div><div class="ttdef"><b>Definition:</b> <a href="CFLAlias_8h_source.html#l00140">CFLAlias.h:140</a></div></div>
877
- <div class="ttc" id="classSVF_1_1CFLAlias_html_ae879c990852862e5ed4e4e7da76dda05"><div class="ttname"><a href="classSVF_1_1CFLAlias.html#ae879c990852862e5ed4e4e7da76dda05">SVF::CFLAlias::callsite2DummyValPN</a></div><div class="ttdeci">CallSite2DummyValPN callsite2DummyValPN</div><div class="ttdoc">Map an instruction to a dummy obj which created at an indirect callsite, which invokes a heap allocat...</div><div class="ttdef"><b>Definition:</b> <a href="CFLAlias_8h_source.html#l00138">CFLAlias.h:138</a></div></div>
982
+ <div class="ttc" id="classSVF_1_1CFLAlias_html_abd4d8eb59209a1f1cedebcf41117914b"><div class="ttname"><a href="classSVF_1_1CFLAlias.html#abd4d8eb59209a1f1cedebcf41117914b">SVF::CFLAlias::graph</a></div><div class="ttdeci">CFLGraph * graph</div><div class="ttdef"><b>Definition:</b> <a href="CFLAlias_8h_source.html#l00142">CFLAlias.h:142</a></div></div>
983
+ <div class="ttc" id="classSVF_1_1CFLAlias_html_ae879c990852862e5ed4e4e7da76dda05"><div class="ttname"><a href="classSVF_1_1CFLAlias.html#ae879c990852862e5ed4e4e7da76dda05">SVF::CFLAlias::callsite2DummyValPN</a></div><div class="ttdeci">CallSite2DummyValPN callsite2DummyValPN</div><div class="ttdoc">Map an instruction to a dummy obj which created at an indirect callsite, which invokes a heap allocat...</div><div class="ttdef"><b>Definition:</b> <a href="CFLAlias_8h_source.html#l00140">CFLAlias.h:140</a></div></div>
878
984
  <div class="ttc" id="classSVF_1_1GenericNode_html_ac3e55ef37aefb411ea4c87b1aa3b1895"><div class="ttname"><a href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">SVF::GenericNode::getId</a></div><div class="ttdeci">NodeID getId() const</div><div class="ttdoc">Get ID. </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00169">GenericGraph.h:169</a></div></div>
879
985
  <div class="ttc" id="classSVF_1_1CallSite_html_a9b7d53a345875e4e6c72eb23ac6475de"><div class="ttname"><a href="classSVF_1_1CallSite.html#a9b7d53a345875e4e6c72eb23ac6475de">SVF::CallSite::getType</a></div><div class="ttdeci">Type * getType() const</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00218">BasicTypes.h:218</a></div></div>
880
- <div class="ttc" id="classSVF_1_1CFLAlias_html_a0bf4ce7e4fb3d1d95608c06420cc65dc"><div class="ttname"><a href="classSVF_1_1CFLAlias.html#a0bf4ce7e4fb3d1d95608c06420cc65dc">SVF::CFLAlias::svfir</a></div><div class="ttdeci">SVFIR * svfir</div><div class="ttdef"><b>Definition:</b> <a href="CFLAlias_8h_source.html#l00139">CFLAlias.h:139</a></div></div>
986
+ <div class="ttc" id="classSVF_1_1CFLAlias_html_a0bf4ce7e4fb3d1d95608c06420cc65dc"><div class="ttname"><a href="classSVF_1_1CFLAlias.html#a0bf4ce7e4fb3d1d95608c06420cc65dc">SVF::CFLAlias::svfir</a></div><div class="ttdeci">SVFIR * svfir</div><div class="ttdef"><b>Definition:</b> <a href="CFLAlias_8h_source.html#l00141">CFLAlias.h:141</a></div></div>
881
987
  <div class="ttc" id="classSVF_1_1SVFIR_html_a3145677c7a3763fc0d6aa7e21b264ab6"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a3145677c7a3763fc0d6aa7e21b264ab6">SVF::SVFIR::getCallSiteRet</a></div><div class="ttdeci">const SVFVar * getCallSiteRet(const RetICFGNode *cs) const</div><div class="ttdoc">Get callsite return. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00254">SVFIR.h:254</a></div></div>
882
988
  <div class="ttc" id="classSVF_1_1SVFIR_html_aa1943d53e75aef9b014953143c6894da"><div class="ttname"><a href="classSVF_1_1SVFIR.html#aa1943d53e75aef9b014953143c6894da">SVF::SVFIR::getICFG</a></div><div class="ttdeci">ICFG * getICFG()</div><div class="ttdoc">Return ICFG. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00132">SVFIR.h:132</a></div></div>
883
- <div class="ttc" id="classSVF_1_1CFLAlias_html_a1fb9134ce0a8e901bb86c4a1954b17f2"><div class="ttname"><a href="classSVF_1_1CFLAlias.html#a1fb9134ce0a8e901bb86c4a1954b17f2">SVF::CFLAlias::addCopyEdge</a></div><div class="ttdeci">virtual bool addCopyEdge(NodeID src, NodeID dst)</div><div class="ttdoc">Add copy edge on constraint graph. </div><div class="ttdef"><b>Definition:</b> <a href="CFLAlias_8h_source.html#l00105">CFLAlias.h:105</a></div></div>
989
+ <div class="ttc" id="classSVF_1_1CFLAlias_html_a1fb9134ce0a8e901bb86c4a1954b17f2"><div class="ttname"><a href="classSVF_1_1CFLAlias.html#a1fb9134ce0a8e901bb86c4a1954b17f2">SVF::CFLAlias::addCopyEdge</a></div><div class="ttdeci">virtual bool addCopyEdge(NodeID src, NodeID dst)</div><div class="ttdoc">Need Original one for virtual table. </div><div class="ttdef"><b>Definition:</b> <a href="CFLAlias_8h_source.html#l00107">CFLAlias.h:107</a></div></div>
884
990
  </div><!-- fragment -->
885
991
  </div>
886
992
  </div>
@@ -921,14 +1027,16 @@ Additional Inherited Members</h2></td></tr>
921
1027
  <p>On the fly call graph construction. </p>
922
1028
  <p>On the fly call graph construction callsites is candidate indirect callsites need to be analyzed based on points-to results newEdges is the new indirect call edges discovered </p>
923
1029
 
1030
+ <p>Reimplemented from <a class="el" href="classSVF_1_1BVDataPTAImpl.html#a9830d4676fd424b633f8e4d918734296">SVF::BVDataPTAImpl</a>.</p>
1031
+
924
1032
  <p class="definition">Definition at line <a class="el" href="CFLAlias_8cpp_source.html#l00042">42</a> of file <a class="el" href="CFLAlias_8cpp_source.html">CFLAlias.cpp</a>.</p>
925
- <div class="fragment"><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;{</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keywordflow">for</span>(CallSiteToFunPtrMap::const_iterator iter = callsites.begin(), eiter = callsites.end(); iter!=eiter; ++iter)</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; {</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* cs = iter-&gt;first;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF_1_1cppUtil.html#aca6465c72effcaddeb34f55da4555754">isVirtualCallSite</a>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a202de7ad2bea0311e2f75894c030e7a9">SVFUtil::getLLVMCallSite</a>(cs-&gt;<a class="code" href="classSVF_1_1CallICFGNode.html#a674753d5ca0fbe28674acb25291f2bcf">getCallSite</a>())))</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">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a> *vtbl = <a class="code" href="namespaceSVF_1_1cppUtil.html#a3b00cc9770022f124958513bf1e52a05">getVCallVtblPtr</a>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a202de7ad2bea0311e2f75894c030e7a9">SVFUtil::getLLVMCallSite</a>(cs-&gt;<a class="code" href="classSVF_1_1CallICFGNode.html#a674753d5ca0fbe28674acb25291f2bcf">getCallSite</a>()));</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; assert(<a class="code" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>-&gt;<a class="code" href="classSVF_1_1IRGraph.html#aceb17dfbe137658625e16291127267d1">hasValueNode</a>(vtbl));</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> vtblId = <a class="code" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>-&gt;<a class="code" href="classSVF_1_1IRGraph.html#abffddd41cc308b9b3bd5ad4a7f8f1624">getValueNode</a>(vtbl);</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <a class="code" href="classSVF_1_1PointerAnalysis.html#ac04b64a5884710508b304f93da88c7ba">resolveCPPIndCalls</a>(cs, <a class="code" href="classSVF_1_1CFLAlias.html#ad7bde2bfe158e9c3643927583ce145c9">getPts</a>(vtblId), newEdges);</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; }</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <a class="code" href="classSVF_1_1PointerAnalysis.html#a8d128246f86f28fdf4981d91169ab440">resolveIndCalls</a>(iter-&gt;first,<a class="code" href="classSVF_1_1CFLAlias.html#ad7bde2bfe158e9c3643927583ce145c9">getPts</a>(iter-&gt;second),newEdges);</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="ttc" id="classSVF_1_1PointerAnalysis_html_a8d128246f86f28fdf4981d91169ab440"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a8d128246f86f28fdf4981d91169ab440">SVF::PointerAnalysis::resolveIndCalls</a></div><div class="ttdeci">virtual void resolveIndCalls(const CallICFGNode *cs, const PointsTo &amp;target, CallEdgeMap &amp;newEdges)</div><div class="ttdoc">Resolve indirect call edges. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8cpp_source.html#l00402">PointerAnalysis.cpp:402</a></div></div>
1033
+ <div class="fragment"><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;{</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keywordflow">for</span>(CallSiteToFunPtrMap::const_iterator iter = callsites.begin(), eiter = callsites.end(); iter!=eiter; ++iter)</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; {</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* cs = iter-&gt;first;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF_1_1cppUtil.html#aca6465c72effcaddeb34f55da4555754">isVirtualCallSite</a>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a202de7ad2bea0311e2f75894c030e7a9">SVFUtil::getLLVMCallSite</a>(cs-&gt;<a class="code" href="classSVF_1_1CallICFGNode.html#a674753d5ca0fbe28674acb25291f2bcf">getCallSite</a>())))</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">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a> *vtbl = <a class="code" href="namespaceSVF_1_1cppUtil.html#a3b00cc9770022f124958513bf1e52a05">getVCallVtblPtr</a>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a202de7ad2bea0311e2f75894c030e7a9">SVFUtil::getLLVMCallSite</a>(cs-&gt;<a class="code" href="classSVF_1_1CallICFGNode.html#a674753d5ca0fbe28674acb25291f2bcf">getCallSite</a>()));</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; assert(<a class="code" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>-&gt;<a class="code" href="classSVF_1_1IRGraph.html#aceb17dfbe137658625e16291127267d1">hasValueNode</a>(vtbl));</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> vtblId = <a class="code" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>-&gt;<a class="code" href="classSVF_1_1IRGraph.html#abffddd41cc308b9b3bd5ad4a7f8f1624">getValueNode</a>(vtbl);</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <a class="code" href="classSVF_1_1PointerAnalysis.html#ac04b64a5884710508b304f93da88c7ba">resolveCPPIndCalls</a>(cs, <a class="code" href="classSVF_1_1CFLAlias.html#acbbacca91cb85f67523aa8f84f6fe629">getCFLPts</a>(vtblId), newEdges);</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; }</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <a class="code" href="classSVF_1_1PointerAnalysis.html#a8d128246f86f28fdf4981d91169ab440">resolveIndCalls</a>(iter-&gt;first,<a class="code" href="classSVF_1_1CFLAlias.html#acbbacca91cb85f67523aa8f84f6fe629">getCFLPts</a>(iter-&gt;second),newEdges);</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="ttc" id="classSVF_1_1PointerAnalysis_html_a8d128246f86f28fdf4981d91169ab440"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a8d128246f86f28fdf4981d91169ab440">SVF::PointerAnalysis::resolveIndCalls</a></div><div class="ttdeci">virtual void resolveIndCalls(const CallICFGNode *cs, const PointsTo &amp;target, CallEdgeMap &amp;newEdges)</div><div class="ttdoc">Resolve indirect call edges. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8cpp_source.html#l00402">PointerAnalysis.cpp:402</a></div></div>
1034
+ <div class="ttc" id="classSVF_1_1CFLAlias_html_acbbacca91cb85f67523aa8f84f6fe629"><div class="ttname"><a href="classSVF_1_1CFLAlias.html#acbbacca91cb85f67523aa8f84f6fe629">SVF::CFLAlias::getCFLPts</a></div><div class="ttdeci">virtual const PointsTo &amp; getCFLPts(NodeID ptr)</div><div class="ttdoc">Get points-to targets of a pointer. V In this context. </div><div class="ttdef"><b>Definition:</b> <a href="CFLAlias_8h_source.html#l00080">CFLAlias.h:80</a></div></div>
926
1035
  <div class="ttc" id="namespaceSVF_1_1cppUtil_html_aca6465c72effcaddeb34f55da4555754"><div class="ttname"><a href="namespaceSVF_1_1cppUtil.html#aca6465c72effcaddeb34f55da4555754">SVF::cppUtil::isVirtualCallSite</a></div><div class="ttdeci">bool isVirtualCallSite(CallSite cs)</div><div class="ttdef"><b>Definition:</b> <a href="CPPUtil_8cpp_source.html#l00260">CPPUtil.cpp:260</a></div></div>
927
1036
  <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#l00019">MTAResultValidator.h:19</a></div></div>
928
1037
  <div class="ttc" id="classSVF_1_1PointerAnalysis_html_ac04b64a5884710508b304f93da88c7ba"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#ac04b64a5884710508b304f93da88c7ba">SVF::PointerAnalysis::resolveCPPIndCalls</a></div><div class="ttdeci">virtual void resolveCPPIndCalls(const CallICFGNode *cs, const PointsTo &amp;target, CallEdgeMap &amp;newEdges)</div><div class="ttdoc">Resolve cpp indirect call edges. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8cpp_source.html#l00518">PointerAnalysis.cpp:518</a></div></div>
929
1038
  <div class="ttc" id="classSVF_1_1IRGraph_html_abffddd41cc308b9b3bd5ad4a7f8f1624"><div class="ttname"><a href="classSVF_1_1IRGraph.html#abffddd41cc308b9b3bd5ad4a7f8f1624">SVF::IRGraph::getValueNode</a></div><div class="ttdeci">NodeID getValueNode(const Value *V)</div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#l00124">IRGraph.h:124</a></div></div>
930
1039
  <div class="ttc" id="classSVF_1_1IRGraph_html_aceb17dfbe137658625e16291127267d1"><div class="ttname"><a href="classSVF_1_1IRGraph.html#aceb17dfbe137658625e16291127267d1">SVF::IRGraph::hasValueNode</a></div><div class="ttdeci">bool hasValueNode(const Value *V)</div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#l00128">IRGraph.h:128</a></div></div>
931
- <div class="ttc" id="classSVF_1_1CFLAlias_html_ad7bde2bfe158e9c3643927583ce145c9"><div class="ttname"><a href="classSVF_1_1CFLAlias.html#ad7bde2bfe158e9c3643927583ce145c9">SVF::CFLAlias::getPts</a></div><div class="ttdeci">virtual const PointsTo &amp; getPts(NodeID ptr)</div><div class="ttdoc">Get points-to targets of a pointer. V In this context. </div><div class="ttdef"><b>Definition:</b> <a href="CFLAlias_8h_source.html#l00080">CFLAlias.h:80</a></div></div>
932
1040
  <div class="ttc" id="namespaceSVF_1_1cppUtil_html_a3b00cc9770022f124958513bf1e52a05"><div class="ttname"><a href="namespaceSVF_1_1cppUtil.html#a3b00cc9770022f124958513bf1e52a05">SVF::cppUtil::getVCallVtblPtr</a></div><div class="ttdeci">const Value * getVCallVtblPtr(CallSite cs)</div><div class="ttdef"><b>Definition:</b> <a href="CPPUtil_8cpp_source.html#l00380">CPPUtil.cpp:380</a></div></div>
933
1041
  <div class="ttc" id="classSVF_1_1CallICFGNode_html_a674753d5ca0fbe28674acb25291f2bcf"><div class="ttname"><a href="classSVF_1_1CallICFGNode.html#a674753d5ca0fbe28674acb25291f2bcf">SVF::CallICFGNode::getCallSite</a></div><div class="ttdeci">const Instruction * getCallSite() const</div><div class="ttdoc">Return callsite. </div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00380">ICFGNode.h:380</a></div></div>
934
1042
  <div class="ttc" id="classSVF_1_1CallICFGNode_html"><div class="ttname"><a href="classSVF_1_1CallICFGNode.html">SVF::CallICFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00363">ICFGNode.h:363</a></div></div>
@@ -965,8 +1073,10 @@ Additional Inherited Members</h2></td></tr>
965
1073
  <p>Update call graph for the input indirect callsites. </p>
966
1074
  <p>Update call graph for the input indirect callsites </p>
967
1075
 
1076
+ <p>Reimplemented from <a class="el" href="classSVF_1_1BVDataPTAImpl.html#aa534e475fa34fa322c567bc376a3da70">SVF::BVDataPTAImpl</a>.</p>
1077
+
968
1078
  <p class="definition">Definition at line <a class="el" href="CFLAlias_8cpp_source.html#l00175">175</a> of file <a class="el" href="CFLAlias_8cpp_source.html">CFLAlias.cpp</a>.</p>
969
- <div class="fragment"><div class="line"><a name="l00176"></a><span class="lineno"> 176</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"> 178</span>&#160; <span class="comment">// double cgUpdateStart = stat-&gt;getClk();</span></div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <a class="code" href="classSVF_1_1PointerAnalysis.html#a35bd5f0fb2c146199e9f1aa6a19b4062">CallEdgeMap</a> newEdges;</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <a class="code" href="classSVF_1_1CFLAlias.html#a25b38896aef06dad19532f7678291b37">onTheFlyCallGraphSolve</a>(callsites,newEdges);</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <span class="keywordflow">for</span>(CallEdgeMap::iterator it = newEdges.begin(), eit = newEdges.end(); it!=eit; ++it )</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; {</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <a class="code" href="classSVF_1_1CallSite.html">CallSite</a> cs = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a202de7ad2bea0311e2f75894c030e7a9">SVFUtil::getLLVMCallSite</a>(it-&gt;first-&gt;getCallSite());</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; <span class="keywordflow">for</span>(FunctionSet::iterator cit = it-&gt;second.begin(), ecit = it-&gt;second.end(); cit!=ecit; ++cit)</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; {</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; std::cout &lt;&lt; cs.<a class="code" href="classSVF_1_1CallSite.html#a145676880fce313b4634d14118476c27">arg_size</a>();</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <a class="code" href="classSVF_1_1CFLAlias.html#abfab36c0d5edbdfb94e617bed61ba875">connectCaller2CalleeParams</a>(cs,*cit);</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; }</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; }</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; <span class="comment">// double cgUpdateEnd = stat-&gt;getClk();</span></div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <span class="comment">//timeOfUpdateCallGraph += (cgUpdateEnd - cgUpdateStart) / TIMEINTERVAL;</span></div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; <span class="keywordflow">return</span> (!<a class="code" href="classSVF_1_1CFLAlias.html#aa61c3683c9b759b6eca65b1f88e00b35">solver</a>-&gt;<a class="code" href="classSVF_1_1CFLSolver.html#ac1fe4563081c29f8a715bd67d454c8bb">isWorklistEmpty</a>());</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;}</div><div class="ttc" id="classSVF_1_1CFLAlias_html_aa61c3683c9b759b6eca65b1f88e00b35"><div class="ttname"><a href="classSVF_1_1CFLAlias.html#aa61c3683c9b759b6eca65b1f88e00b35">SVF::CFLAlias::solver</a></div><div class="ttdeci">CFLSolver * solver</div><div class="ttdef"><b>Definition:</b> <a href="CFLAlias_8h_source.html#l00142">CFLAlias.h:142</a></div></div>
1079
+ <div class="fragment"><div class="line"><a name="l00176"></a><span class="lineno"> 176</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"> 178</span>&#160; <span class="comment">// double cgUpdateStart = stat-&gt;getClk();</span></div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <a class="code" href="classSVF_1_1PointerAnalysis.html#a35bd5f0fb2c146199e9f1aa6a19b4062">CallEdgeMap</a> newEdges;</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <a class="code" href="classSVF_1_1CFLAlias.html#a25b38896aef06dad19532f7678291b37">onTheFlyCallGraphSolve</a>(callsites,newEdges);</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <span class="keywordflow">for</span>(CallEdgeMap::iterator it = newEdges.begin(), eit = newEdges.end(); it!=eit; ++it )</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; {</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <a class="code" href="classSVF_1_1CallSite.html">CallSite</a> cs = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a202de7ad2bea0311e2f75894c030e7a9">SVFUtil::getLLVMCallSite</a>(it-&gt;first-&gt;getCallSite());</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; <span class="keywordflow">for</span>(FunctionSet::iterator cit = it-&gt;second.begin(), ecit = it-&gt;second.end(); cit!=ecit; ++cit)</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; {</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; std::cout &lt;&lt; cs.<a class="code" href="classSVF_1_1CallSite.html#a145676880fce313b4634d14118476c27">arg_size</a>();</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <a class="code" href="classSVF_1_1CFLAlias.html#abfab36c0d5edbdfb94e617bed61ba875">connectCaller2CalleeParams</a>(cs,*cit);</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; }</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; }</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; <span class="comment">// double cgUpdateEnd = stat-&gt;getClk();</span></div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <span class="comment">//timeOfUpdateCallGraph += (cgUpdateEnd - cgUpdateStart) / TIMEINTERVAL;</span></div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; <span class="keywordflow">return</span> (!<a class="code" href="classSVF_1_1CFLAlias.html#aa61c3683c9b759b6eca65b1f88e00b35">solver</a>-&gt;<a class="code" href="classSVF_1_1CFLSolver.html#ac1fe4563081c29f8a715bd67d454c8bb">isWorklistEmpty</a>());</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;}</div><div class="ttc" id="classSVF_1_1CFLAlias_html_aa61c3683c9b759b6eca65b1f88e00b35"><div class="ttname"><a href="classSVF_1_1CFLAlias.html#aa61c3683c9b759b6eca65b1f88e00b35">SVF::CFLAlias::solver</a></div><div class="ttdeci">CFLSolver * solver</div><div class="ttdef"><b>Definition:</b> <a href="CFLAlias_8h_source.html#l00144">CFLAlias.h:144</a></div></div>
970
1080
  <div class="ttc" id="classSVF_1_1CFLAlias_html_a25b38896aef06dad19532f7678291b37"><div class="ttname"><a href="classSVF_1_1CFLAlias.html#a25b38896aef06dad19532f7678291b37">SVF::CFLAlias::onTheFlyCallGraphSolve</a></div><div class="ttdeci">virtual void onTheFlyCallGraphSolve(const CallSiteToFunPtrMap &amp;callsites, CallEdgeMap &amp;newEdges)</div><div class="ttdoc">On the fly call graph construction. </div><div class="ttdef"><b>Definition:</b> <a href="CFLAlias_8cpp_source.html#l00042">CFLAlias.cpp:42</a></div></div>
971
1081
  <div class="ttc" id="classSVF_1_1PointerAnalysis_html_a35bd5f0fb2c146199e9f1aa6a19b4062"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a35bd5f0fb2c146199e9f1aa6a19b4062">SVF::PointerAnalysis::CallEdgeMap</a></div><div class="ttdeci">OrderedMap&lt; const CallICFGNode *, FunctionSet &gt; CallEdgeMap</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00106">PointerAnalysis.h:106</a></div></div>
972
1082
  <div class="ttc" id="classSVF_1_1CFLAlias_html_abfab36c0d5edbdfb94e617bed61ba875"><div class="ttname"><a href="classSVF_1_1CFLAlias.html#abfab36c0d5edbdfb94e617bed61ba875">SVF::CFLAlias::connectCaller2CalleeParams</a></div><div class="ttdeci">void connectCaller2CalleeParams(CallSite cs, const SVFFunction *F)</div><div class="ttdoc">Connect formal and actual parameters for indirect callsites. </div><div class="ttdef"><b>Definition:</b> <a href="CFLAlias_8cpp_source.html#l00064">CFLAlias.cpp:64</a></div></div>
@@ -1000,7 +1110,7 @@ Additional Inherited Members</h2></td></tr>
1000
1110
 
1001
1111
  <p>Map an instruction to a dummy obj which created at an indirect callsite, which invokes a heap allocator. </p>
1002
1112
 
1003
- <p class="definition">Definition at line <a class="el" href="CFLAlias_8h_source.html#l00138">138</a> of file <a class="el" href="CFLAlias_8h_source.html">CFLAlias.h</a>.</p>
1113
+ <p class="definition">Definition at line <a class="el" href="CFLAlias_8h_source.html#l00140">140</a> of file <a class="el" href="CFLAlias_8h_source.html">CFLAlias.h</a>.</p>
1004
1114
 
1005
1115
  </div>
1006
1116
  </div>
@@ -1024,7 +1134,7 @@ Additional Inherited Members</h2></td></tr>
1024
1134
  </table>
1025
1135
  </div><div class="memdoc">
1026
1136
 
1027
- <p class="definition">Definition at line <a class="el" href="CFLAlias_8h_source.html#l00141">141</a> of file <a class="el" href="CFLAlias_8h_source.html">CFLAlias.h</a>.</p>
1137
+ <p class="definition">Definition at line <a class="el" href="CFLAlias_8h_source.html#l00143">143</a> of file <a class="el" href="CFLAlias_8h_source.html">CFLAlias.h</a>.</p>
1028
1138
 
1029
1139
  </div>
1030
1140
  </div>
@@ -1048,7 +1158,7 @@ Additional Inherited Members</h2></td></tr>
1048
1158
  </table>
1049
1159
  </div><div class="memdoc">
1050
1160
 
1051
- <p class="definition">Definition at line <a class="el" href="CFLAlias_8h_source.html#l00140">140</a> of file <a class="el" href="CFLAlias_8h_source.html">CFLAlias.h</a>.</p>
1161
+ <p class="definition">Definition at line <a class="el" href="CFLAlias_8h_source.html#l00142">142</a> of file <a class="el" href="CFLAlias_8h_source.html">CFLAlias.h</a>.</p>
1052
1162
 
1053
1163
  </div>
1054
1164
  </div>
@@ -1072,7 +1182,7 @@ Additional Inherited Members</h2></td></tr>
1072
1182
  </table>
1073
1183
  </div><div class="memdoc">
1074
1184
 
1075
- <p class="definition">Definition at line <a class="el" href="CFLAlias_8h_source.html#l00142">142</a> of file <a class="el" href="CFLAlias_8h_source.html">CFLAlias.h</a>.</p>
1185
+ <p class="definition">Definition at line <a class="el" href="CFLAlias_8h_source.html#l00144">144</a> of file <a class="el" href="CFLAlias_8h_source.html">CFLAlias.h</a>.</p>
1076
1186
 
1077
1187
  </div>
1078
1188
  </div>
@@ -1096,7 +1206,7 @@ Additional Inherited Members</h2></td></tr>
1096
1206
  </table>
1097
1207
  </div><div class="memdoc">
1098
1208
 
1099
- <p class="definition">Definition at line <a class="el" href="CFLAlias_8h_source.html#l00139">139</a> of file <a class="el" href="CFLAlias_8h_source.html">CFLAlias.h</a>.</p>
1209
+ <p class="definition">Definition at line <a class="el" href="CFLAlias_8h_source.html#l00141">141</a> of file <a class="el" href="CFLAlias_8h_source.html">CFLAlias.h</a>.</p>
1100
1210
 
1101
1211
  </div>
1102
1212
  </div>