svf-tools 1.0.620 → 1.0.621

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 (163) hide show
  1. package/SVF-doxygen/html/html/CFLAlias_8cpp_source.html +7 -2
  2. package/SVF-doxygen/html/html/CFLAlias_8h.html +4 -0
  3. package/SVF-doxygen/html/html/CFLAlias_8h_source.html +19 -10
  4. package/SVF-doxygen/html/html/CFLBase_8cpp_source.html +1 -1
  5. package/SVF-doxygen/html/html/CFLBase_8h_source.html +1 -1
  6. package/SVF-doxygen/html/html/CFLDataBuilder_8h.html +96 -0
  7. package/SVF-doxygen/html/html/CFLDataBuilder_8h_source.html +99 -0
  8. package/SVF-doxygen/html/html/CFLData_8h.html +106 -0
  9. package/SVF-doxygen/html/html/CFLData_8h_source.html +136 -0
  10. package/SVF-doxygen/html/html/CFLSolver_8cpp_source.html +7 -7
  11. package/SVF-doxygen/html/html/CFLSolver_8h.html +4 -0
  12. package/SVF-doxygen/html/html/CFLSolver_8h_source.html +22 -16
  13. package/SVF-doxygen/html/html/CFLVF_8cpp_source.html +1 -1
  14. package/SVF-doxygen/html/html/GraphWriter_8cpp_source.html +2 -1
  15. package/SVF-doxygen/html/html/GraphWriter_8h_source.html +2 -1
  16. package/SVF-doxygen/html/html/LLVMLoopAnalysis_8cpp_source.html +1 -1
  17. package/SVF-doxygen/html/html/Options_8cpp_source.html +4 -3
  18. package/SVF-doxygen/html/html/Options_8h_source.html +4 -3
  19. package/SVF-doxygen/html/html/annotated.html +357 -351
  20. package/SVF-doxygen/html/html/cfl_8cpp.html +1 -1
  21. package/SVF-doxygen/html/html/cfl_8cpp_source.html +1 -1
  22. package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl.html +1 -0
  23. package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl.png +0 -0
  24. package/SVF-doxygen/html/html/classSVF_1_1CFLAlias.html +27 -24
  25. package/SVF-doxygen/html/html/classSVF_1_1CFLAlias.png +0 -0
  26. package/SVF-doxygen/html/html/classSVF_1_1CFLBase.html +2 -1
  27. package/SVF-doxygen/html/html/classSVF_1_1CFLBase.png +0 -0
  28. package/SVF-doxygen/html/html/classSVF_1_1CFLData-members.html +110 -0
  29. package/SVF-doxygen/html/html/classSVF_1_1CFLData.html +1126 -0
  30. package/SVF-doxygen/html/html/classSVF_1_1CFLDataBuilder-members.html +88 -0
  31. package/SVF-doxygen/html/html/classSVF_1_1CFLDataBuilder.html +380 -0
  32. package/SVF-doxygen/html/html/classSVF_1_1CFLSolver.html +48 -39
  33. package/SVF-doxygen/html/html/classSVF_1_1CFLSolver.png +0 -0
  34. package/SVF-doxygen/html/html/classSVF_1_1CFLVF.html +1 -1
  35. package/SVF-doxygen/html/html/classSVF_1_1GraphWriter.html +3 -2
  36. package/SVF-doxygen/html/html/classSVF_1_1HybridData-members.html +89 -0
  37. package/SVF-doxygen/html/html/classSVF_1_1HybridData.html +449 -0
  38. package/SVF-doxygen/html/html/classSVF_1_1LLVMLoopAnalysis.html +1 -1
  39. package/SVF-doxygen/html/html/classSVF_1_1Options-members.html +45 -44
  40. package/SVF-doxygen/html/html/classSVF_1_1Options.html +28 -2
  41. package/SVF-doxygen/html/html/classSVF_1_1POCRAlias-members.html +281 -0
  42. package/SVF-doxygen/html/html/classSVF_1_1POCRAlias.html +828 -0
  43. package/SVF-doxygen/html/html/classSVF_1_1POCRAlias.png +0 -0
  44. package/SVF-doxygen/html/html/classSVF_1_1POCRSolver-members.html +98 -0
  45. package/SVF-doxygen/html/html/classSVF_1_1POCRSolver.html +245 -0
  46. package/SVF-doxygen/html/html/classSVF_1_1POCRSolver.png +0 -0
  47. package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.html +2 -1
  48. package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.png +0 -0
  49. package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder.html +1 -1
  50. package/SVF-doxygen/html/html/classes.html +110 -109
  51. package/SVF-doxygen/html/html/dir_ae8aa099e368efaa962140c6624142bc.html +4 -0
  52. package/SVF-doxygen/html/html/files.html +9 -7
  53. package/SVF-doxygen/html/html/functions.html +7 -1
  54. package/SVF-doxygen/html/html/functions_0x7e.html +18 -0
  55. package/SVF-doxygen/html/html/functions_a.html +38 -14
  56. package/SVF-doxygen/html/html/functions_b.html +9 -4
  57. package/SVF-doxygen/html/html/functions_c.html +59 -38
  58. package/SVF-doxygen/html/html/functions_d.html +7 -1
  59. package/SVF-doxygen/html/html/functions_e.html +5 -1
  60. package/SVF-doxygen/html/html/functions_func.html +35 -11
  61. package/SVF-doxygen/html/html/functions_func_0x7e.html +18 -0
  62. package/SVF-doxygen/html/html/functions_func_b.html +8 -3
  63. package/SVF-doxygen/html/html/functions_func_c.html +42 -27
  64. package/SVF-doxygen/html/html/functions_func_e.html +2 -1
  65. package/SVF-doxygen/html/html/functions_func_g.html +20 -7
  66. package/SVF-doxygen/html/html/functions_func_h.html +10 -3
  67. package/SVF-doxygen/html/html/functions_func_i.html +14 -10
  68. package/SVF-doxygen/html/html/functions_func_m.html +3 -2
  69. package/SVF-doxygen/html/html/functions_func_o.html +13 -11
  70. package/SVF-doxygen/html/html/functions_func_p.html +6 -3
  71. package/SVF-doxygen/html/html/functions_func_t.html +3 -0
  72. package/SVF-doxygen/html/html/functions_g.html +22 -9
  73. package/SVF-doxygen/html/html/functions_h.html +12 -5
  74. package/SVF-doxygen/html/html/functions_i.html +20 -11
  75. package/SVF-doxygen/html/html/functions_l.html +3 -3
  76. package/SVF-doxygen/html/html/functions_m.html +2 -1
  77. package/SVF-doxygen/html/html/functions_n.html +3 -3
  78. package/SVF-doxygen/html/html/functions_o.html +26 -24
  79. package/SVF-doxygen/html/html/functions_p.html +23 -14
  80. package/SVF-doxygen/html/html/functions_r.html +3 -5
  81. package/SVF-doxygen/html/html/functions_s.html +11 -10
  82. package/SVF-doxygen/html/html/functions_t.html +13 -4
  83. package/SVF-doxygen/html/html/functions_type_c.html +2 -1
  84. package/SVF-doxygen/html/html/functions_type_d.html +3 -0
  85. package/SVF-doxygen/html/html/functions_type_i.html +2 -1
  86. package/SVF-doxygen/html/html/functions_type_t.html +3 -0
  87. package/SVF-doxygen/html/html/functions_v.html +3 -3
  88. package/SVF-doxygen/html/html/functions_vars.html +7 -1
  89. package/SVF-doxygen/html/html/functions_vars_c.html +3 -0
  90. package/SVF-doxygen/html/html/functions_vars_d.html +3 -0
  91. package/SVF-doxygen/html/html/functions_vars_e.html +3 -0
  92. package/SVF-doxygen/html/html/functions_vars_i.html +4 -0
  93. package/SVF-doxygen/html/html/functions_vars_p.html +6 -0
  94. package/SVF-doxygen/html/html/functions_vars_s.html +3 -0
  95. package/SVF-doxygen/html/html/functions_vars_t.html +3 -0
  96. package/SVF-doxygen/html/html/hierarchy.html +517 -511
  97. package/SVF-doxygen/html/html/namespaceSVF.html +29 -0
  98. package/SVF-doxygen/html/html/namespaceSVF_1_1DOT.html +3 -2
  99. package/SVF-doxygen/html/html/namespacemembers_l.html +3 -0
  100. package/SVF-doxygen/html/html/namespacemembers_type_l.html +3 -0
  101. package/SVF-doxygen/html/html/search/all_0.js +2 -1
  102. package/SVF-doxygen/html/html/search/all_1.js +8 -1
  103. package/SVF-doxygen/html/html/search/all_10.js +8 -5
  104. package/SVF-doxygen/html/html/search/all_11.js +3 -3
  105. package/SVF-doxygen/html/html/search/all_12.js +7 -6
  106. package/SVF-doxygen/html/html/search/all_13.js +7 -4
  107. package/SVF-doxygen/html/html/search/all_15.js +1 -1
  108. package/SVF-doxygen/html/html/search/all_19.js +6 -0
  109. package/SVF-doxygen/html/html/search/all_2.js +3 -2
  110. package/SVF-doxygen/html/html/search/all_3.js +11 -6
  111. package/SVF-doxygen/html/html/search/all_4.js +2 -1
  112. package/SVF-doxygen/html/html/search/all_5.js +2 -1
  113. package/SVF-doxygen/html/html/search/all_7.js +5 -1
  114. package/SVF-doxygen/html/html/search/all_8.js +4 -2
  115. package/SVF-doxygen/html/html/search/all_9.js +7 -5
  116. package/SVF-doxygen/html/html/search/all_c.js +3 -2
  117. package/SVF-doxygen/html/html/search/all_d.js +1 -1
  118. package/SVF-doxygen/html/html/search/all_e.js +2 -2
  119. package/SVF-doxygen/html/html/search/all_f.js +4 -4
  120. package/SVF-doxygen/html/html/search/classes_10.js +1 -0
  121. package/SVF-doxygen/html/html/search/classes_2.js +2 -0
  122. package/SVF-doxygen/html/html/search/classes_7.js +2 -1
  123. package/SVF-doxygen/html/html/search/classes_d.js +2 -0
  124. package/SVF-doxygen/html/html/search/files_2.js +2 -0
  125. package/SVF-doxygen/html/html/search/functions_0.js +8 -1
  126. package/SVF-doxygen/html/html/search/functions_1.js +3 -2
  127. package/SVF-doxygen/html/html/search/functions_11.js +1 -1
  128. package/SVF-doxygen/html/html/search/functions_12.js +1 -0
  129. package/SVF-doxygen/html/html/search/functions_17.js +6 -0
  130. package/SVF-doxygen/html/html/search/functions_2.js +4 -1
  131. package/SVF-doxygen/html/html/search/functions_4.js +1 -1
  132. package/SVF-doxygen/html/html/search/functions_6.js +5 -1
  133. package/SVF-doxygen/html/html/search/functions_7.js +4 -2
  134. package/SVF-doxygen/html/html/search/functions_8.js +3 -2
  135. package/SVF-doxygen/html/html/search/functions_c.js +1 -1
  136. package/SVF-doxygen/html/html/search/functions_e.js +2 -2
  137. package/SVF-doxygen/html/html/search/functions_f.js +1 -0
  138. package/SVF-doxygen/html/html/search/typedefs_11.js +2 -1
  139. package/SVF-doxygen/html/html/search/typedefs_2.js +1 -1
  140. package/SVF-doxygen/html/html/search/typedefs_3.js +1 -0
  141. package/SVF-doxygen/html/html/search/typedefs_7.js +1 -1
  142. package/SVF-doxygen/html/html/search/typedefs_a.js +1 -0
  143. package/SVF-doxygen/html/html/search/variables_0.js +2 -1
  144. package/SVF-doxygen/html/html/search/variables_10.js +2 -0
  145. package/SVF-doxygen/html/html/search/variables_12.js +1 -0
  146. package/SVF-doxygen/html/html/search/variables_13.js +2 -1
  147. package/SVF-doxygen/html/html/search/variables_3.js +1 -0
  148. package/SVF-doxygen/html/html/search/variables_4.js +1 -0
  149. package/SVF-doxygen/html/html/search/variables_5.js +1 -0
  150. package/SVF-doxygen/html/html/search/variables_9.js +2 -1
  151. package/SVF-doxygen/html/html/search/variables_c.js +1 -1
  152. package/SVF-doxygen/html/html/search/variables_e.js +1 -1
  153. package/SVF-doxygen/html/html/structSVF_1_1HybridData_1_1TreeNode-members.html +86 -0
  154. package/SVF-doxygen/html/html/structSVF_1_1HybridData_1_1TreeNode.html +255 -0
  155. package/include/CFL/CFLAlias.h +34 -0
  156. package/include/CFL/CFLData.h +316 -0
  157. package/include/CFL/CFLDataBuilder.h +91 -0
  158. package/include/CFL/CFLSolver.h +21 -0
  159. package/include/Util/Options.h +1 -0
  160. package/lib/CFL/CFLAlias.cpp +36 -0
  161. package/lib/Util/Options.cpp +5 -0
  162. package/package.json +1 -1
  163. package/tools/CFL/cfl.cpp +2 -0
@@ -108,7 +108,7 @@ Functions</h2></td></tr>
108
108
  </div><div class="memdoc">
109
109
 
110
110
  <p class="definition">Definition at line <a class="el" href="cfl_8cpp_source.html#l00038">38</a> of file <a class="el" href="cfl_8cpp_source.html">cfl.cpp</a>.</p>
111
- <div class="fragment"><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;{</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="keywordtype">char</span> **arg_value = <span class="keyword">new</span> <span class="keywordtype">char</span>*[argc];</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; std::vector&lt;std::string&gt; moduleNameVec;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; moduleNameVec = <a class="code" href="classOptionBase.html#a4fb6c6e4a1754d702c6c1730f54457e5">OptionBase::parseOptions</a>(</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; argc, argv, <span class="stringliteral">&quot;CFL Reachability Analysis&quot;</span>, <span class="stringliteral">&quot;[options] &lt;input-bitcode...&gt;&quot;</span></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; );</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="keywordflow">if</span> (Options::WriteAnder() == <span class="stringliteral">&quot;ir_annotator&quot;</span>)</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; LLVMModuleSet::getLLVMModuleSet()-&gt;preProcessBCs(moduleNameVec);</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; }</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <a class="code" href="classSVF_1_1SVFIR.html">SVFIR</a>* svfir = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keywordflow">if</span> (Options::CFLGraph().empty())</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; {</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <a class="code" href="classSVF_1_1SVFModule.html">SVFModule</a>* svfModule = LLVMModuleSet::getLLVMModuleSet()-&gt;buildSVFModule(moduleNameVec);</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <a class="code" href="classSVF_1_1SVFIRBuilder.html">SVFIRBuilder</a> builder(svfModule);</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; svfir = builder.build();</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; } <span class="comment">// if no dot form CFLGraph is specified, we use svfir from .bc.</span></div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; std::unique_ptr&lt;CFLBase&gt; cfl;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keywordflow">if</span> (Options::CFLSVFG())</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; cfl = std::make_unique&lt;CFLVF&gt;(svfir);</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; cfl = std::make_unique&lt;CFLAlias&gt;(svfir); <span class="comment">// if no svfg is specified, we use CFLAlias as the default one.</span></div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; cfl-&gt;analyze();</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; SVFIR::releaseSVFIR();</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <a class="code" href="classSVF_1_1LLVMModuleSet.html#a2f8e91c075d90be66412a079fe73e936">SVF::LLVMModuleSet::releaseLLVMModuleSet</a>();</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="keyword">delete</span>[] arg_value;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;}</div><div class="ttc" id="classSVF_1_1SVFModule_html"><div class="ttname"><a href="classSVF_1_1SVFModule.html">SVF::SVFModule</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFModule_8h_source.html#l00041">SVFModule.h:41</a></div></div>
111
+ <div class="fragment"><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;{</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="keywordtype">char</span> **arg_value = <span class="keyword">new</span> <span class="keywordtype">char</span>*[argc];</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; std::vector&lt;std::string&gt; moduleNameVec;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; moduleNameVec = <a class="code" href="classOptionBase.html#a4fb6c6e4a1754d702c6c1730f54457e5">OptionBase::parseOptions</a>(</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; argc, argv, <span class="stringliteral">&quot;CFL Reachability Analysis&quot;</span>, <span class="stringliteral">&quot;[options] &lt;input-bitcode...&gt;&quot;</span></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; );</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="keywordflow">if</span> (Options::WriteAnder() == <span class="stringliteral">&quot;ir_annotator&quot;</span>)</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; LLVMModuleSet::getLLVMModuleSet()-&gt;preProcessBCs(moduleNameVec);</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; }</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <a class="code" href="classSVF_1_1SVFIR.html">SVFIR</a>* svfir = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keywordflow">if</span> (Options::CFLGraph().empty())</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; {</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <a class="code" href="classSVF_1_1SVFModule.html">SVFModule</a>* svfModule = LLVMModuleSet::getLLVMModuleSet()-&gt;buildSVFModule(moduleNameVec);</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <a class="code" href="classSVF_1_1SVFIRBuilder.html">SVFIRBuilder</a> builder(svfModule);</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; svfir = builder.build();</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; } <span class="comment">// if no dot form CFLGraph is specified, we use svfir from .bc.</span></div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; std::unique_ptr&lt;CFLBase&gt; cfl;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keywordflow">if</span> (Options::CFLSVFG())</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; cfl = std::make_unique&lt;CFLVF&gt;(svfir);</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (Options::POCRAlias())</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; cfl = std::make_unique&lt;POCRAlias&gt;(svfir);</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; cfl = std::make_unique&lt;CFLAlias&gt;(svfir); <span class="comment">// if no svfg is specified, we use CFLAlias as the default one.</span></div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; cfl-&gt;analyze();</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; SVFIR::releaseSVFIR();</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <a class="code" href="classSVF_1_1LLVMModuleSet.html#a2f8e91c075d90be66412a079fe73e936">SVF::LLVMModuleSet::releaseLLVMModuleSet</a>();</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="keyword">delete</span>[] arg_value;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;}</div><div class="ttc" id="classSVF_1_1SVFModule_html"><div class="ttname"><a href="classSVF_1_1SVFModule.html">SVF::SVFModule</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFModule_8h_source.html#l00041">SVFModule.h:41</a></div></div>
112
112
  <div class="ttc" id="classSVF_1_1SVFIRBuilder_html"><div class="ttname"><a href="classSVF_1_1SVFIRBuilder.html">SVF::SVFIRBuilder</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFIRBuilder_8h_source.html#l00045">SVFIRBuilder.h:45</a></div></div>
113
113
  <div class="ttc" id="classSVF_1_1LLVMModuleSet_html_a2f8e91c075d90be66412a079fe73e936"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a2f8e91c075d90be66412a079fe73e936">SVF::LLVMModuleSet::releaseLLVMModuleSet</a></div><div class="ttdeci">static void releaseLLVMModuleSet()</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00102">LLVMModule.h:102</a></div></div>
114
114
  <div class="ttc" id="classOptionBase_html_a4fb6c6e4a1754d702c6c1730f54457e5"><div class="ttname"><a href="classOptionBase.html#a4fb6c6e4a1754d702c6c1730f54457e5">OptionBase::parseOptions</a></div><div class="ttdeci">static std::vector&lt; std::string &gt; parseOptions(int argc, char *argv[], std::string description, std::string callFormat)</div><div class="ttdef"><b>Definition:</b> <a href="CommandLine_8h_source.html#l00075">CommandLine.h:75</a></div></div>
@@ -66,7 +66,7 @@ $(function() {
66
66
  <div class="title">cfl.cpp</div> </div>
67
67
  </div><!--header-->
68
68
  <div class="contents">
69
- <a href="cfl_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">//===- cfl.cpp -- A driver of CFL Reachability Analysis-------------------------------------//</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">// SVF: Static Value-Flow Analysis</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// Copyright (C) &lt;2013-&gt; &lt;Yulei Sui&gt;</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// This program is free software: you can redistribute it and/or modify</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">// the Free Software Foundation, either version 3 of the License, or</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// (at your option) any later version.</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// GNU General Public License for more details.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// along with this program. If not, see &lt;http://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">//===-----------------------------------------------------------------------===//</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment"> // A driver of CFL Reachability Analysis</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment"> //</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment"> // Author: Yulei Sui,</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="LLVMUtil_8h.html">SVF-LLVM/LLVMUtil.h</a>&quot;</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="SVFIRBuilder_8h.html">SVF-LLVM/SVFIRBuilder.h</a>&quot;</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="CFLAlias_8h.html">CFL/CFLAlias.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="CFLVF_8h.html">CFL/CFLVF.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="keyword">using namespace </span><a class="code" href="namespacellvm.html">llvm</a>;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="keyword">using namespace </span><a class="code" href="namespaceSVF.html">SVF</a>;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"><a class="line" href="cfl_8cpp.html#a3c04138a5bfe5d72780bb7e82a18e627"> 38</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="cfl_8cpp.html#a3c04138a5bfe5d72780bb7e82a18e627">main</a>(<span class="keywordtype">int</span> argc, <span class="keywordtype">char</span> ** argv)</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;{</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="keywordtype">char</span> **arg_value = <span class="keyword">new</span> <span class="keywordtype">char</span>*[argc];</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; std::vector&lt;std::string&gt; moduleNameVec;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; moduleNameVec = <a class="code" href="classOptionBase.html#a4fb6c6e4a1754d702c6c1730f54457e5">OptionBase::parseOptions</a>(</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; argc, argv, <span class="stringliteral">&quot;CFL Reachability Analysis&quot;</span>, <span class="stringliteral">&quot;[options] &lt;input-bitcode...&gt;&quot;</span></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; );</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="keywordflow">if</span> (Options::WriteAnder() == <span class="stringliteral">&quot;ir_annotator&quot;</span>)</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; LLVMModuleSet::getLLVMModuleSet()-&gt;preProcessBCs(moduleNameVec);</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; }</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <a class="code" href="classSVF_1_1SVFIR.html">SVFIR</a>* svfir = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keywordflow">if</span> (Options::CFLGraph().empty())</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; {</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <a class="code" href="classSVF_1_1SVFModule.html">SVFModule</a>* svfModule = LLVMModuleSet::getLLVMModuleSet()-&gt;buildSVFModule(moduleNameVec);</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <a class="code" href="classSVF_1_1SVFIRBuilder.html">SVFIRBuilder</a> builder(svfModule);</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; svfir = builder.<a class="code" href="classSVF_1_1SVFIRBuilder.html#a5ecf1deb5646ccb46b0b3101417f4689">build</a>();</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; } <span class="comment">// if no dot form CFLGraph is specified, we use svfir from .bc.</span></div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; std::unique_ptr&lt;CFLBase&gt; cfl;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keywordflow">if</span> (Options::CFLSVFG())</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; cfl = std::make_unique&lt;CFLVF&gt;(svfir);</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; cfl = std::make_unique&lt;CFLAlias&gt;(svfir); <span class="comment">// if no svfg is specified, we use CFLAlias as the default one.</span></div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; cfl-&gt;analyze();</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; SVFIR::releaseSVFIR();</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <a class="code" href="classSVF_1_1LLVMModuleSet.html#a2f8e91c075d90be66412a079fe73e936">SVF::LLVMModuleSet::releaseLLVMModuleSet</a>();</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="keyword">delete</span>[] arg_value;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;}</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;</div><div class="ttc" id="namespacellvm_html"><div class="ttname"><a href="namespacellvm.html">llvm</a></div><div class="ttdef"><b>Definition:</b> <a href="GEPTypeBridgeIterator_8h_source.html#l00013">GEPTypeBridgeIterator.h:13</a></div></div>
69
+ <a href="cfl_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">//===- cfl.cpp -- A driver of CFL Reachability Analysis-------------------------------------//</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">// SVF: Static Value-Flow Analysis</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// Copyright (C) &lt;2013-&gt; &lt;Yulei Sui&gt;</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// This program is free software: you can redistribute it and/or modify</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">// the Free Software Foundation, either version 3 of the License, or</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// (at your option) any later version.</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// GNU General Public License for more details.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// along with this program. If not, see &lt;http://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">//===-----------------------------------------------------------------------===//</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment"> // A driver of CFL Reachability Analysis</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment"> //</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment"> // Author: Yulei Sui,</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="LLVMUtil_8h.html">SVF-LLVM/LLVMUtil.h</a>&quot;</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="SVFIRBuilder_8h.html">SVF-LLVM/SVFIRBuilder.h</a>&quot;</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="CFLAlias_8h.html">CFL/CFLAlias.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="CFLVF_8h.html">CFL/CFLVF.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="keyword">using namespace </span><a class="code" href="namespacellvm.html">llvm</a>;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="keyword">using namespace </span><a class="code" href="namespaceSVF.html">SVF</a>;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"><a class="line" href="cfl_8cpp.html#a3c04138a5bfe5d72780bb7e82a18e627"> 38</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="cfl_8cpp.html#a3c04138a5bfe5d72780bb7e82a18e627">main</a>(<span class="keywordtype">int</span> argc, <span class="keywordtype">char</span> ** argv)</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;{</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="keywordtype">char</span> **arg_value = <span class="keyword">new</span> <span class="keywordtype">char</span>*[argc];</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; std::vector&lt;std::string&gt; moduleNameVec;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; moduleNameVec = <a class="code" href="classOptionBase.html#a4fb6c6e4a1754d702c6c1730f54457e5">OptionBase::parseOptions</a>(</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; argc, argv, <span class="stringliteral">&quot;CFL Reachability Analysis&quot;</span>, <span class="stringliteral">&quot;[options] &lt;input-bitcode...&gt;&quot;</span></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; );</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="keywordflow">if</span> (Options::WriteAnder() == <span class="stringliteral">&quot;ir_annotator&quot;</span>)</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; LLVMModuleSet::getLLVMModuleSet()-&gt;preProcessBCs(moduleNameVec);</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; }</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <a class="code" href="classSVF_1_1SVFIR.html">SVFIR</a>* svfir = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keywordflow">if</span> (Options::CFLGraph().empty())</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; {</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <a class="code" href="classSVF_1_1SVFModule.html">SVFModule</a>* svfModule = LLVMModuleSet::getLLVMModuleSet()-&gt;buildSVFModule(moduleNameVec);</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <a class="code" href="classSVF_1_1SVFIRBuilder.html">SVFIRBuilder</a> builder(svfModule);</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; svfir = builder.<a class="code" href="classSVF_1_1SVFIRBuilder.html#a5ecf1deb5646ccb46b0b3101417f4689">build</a>();</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; } <span class="comment">// if no dot form CFLGraph is specified, we use svfir from .bc.</span></div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; std::unique_ptr&lt;CFLBase&gt; cfl;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keywordflow">if</span> (Options::CFLSVFG())</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; cfl = std::make_unique&lt;CFLVF&gt;(svfir);</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (Options::POCRAlias())</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; cfl = std::make_unique&lt;POCRAlias&gt;(svfir);</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; cfl = std::make_unique&lt;CFLAlias&gt;(svfir); <span class="comment">// if no svfg is specified, we use CFLAlias as the default one.</span></div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; cfl-&gt;analyze();</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; SVFIR::releaseSVFIR();</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <a class="code" href="classSVF_1_1LLVMModuleSet.html#a2f8e91c075d90be66412a079fe73e936">SVF::LLVMModuleSet::releaseLLVMModuleSet</a>();</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="keyword">delete</span>[] arg_value;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;}</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;</div><div class="ttc" id="namespacellvm_html"><div class="ttname"><a href="namespacellvm.html">llvm</a></div><div class="ttdef"><b>Definition:</b> <a href="GEPTypeBridgeIterator_8h_source.html#l00013">GEPTypeBridgeIterator.h:13</a></div></div>
70
70
  <div class="ttc" id="classSVF_1_1SVFIRBuilder_html_a5ecf1deb5646ccb46b0b3101417f4689"><div class="ttname"><a href="classSVF_1_1SVFIRBuilder.html#a5ecf1deb5646ccb46b0b3101417f4689">SVF::SVFIRBuilder::build</a></div><div class="ttdeci">virtual SVFIR * build()</div><div class="ttdoc">Start building SVFIR here. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIRBuilder_8cpp_source.html#l00051">SVFIRBuilder.cpp:51</a></div></div>
71
71
  <div class="ttc" id="classSVF_1_1SVFModule_html"><div class="ttname"><a href="classSVF_1_1SVFModule.html">SVF::SVFModule</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFModule_8h_source.html#l00041">SVFModule.h:41</a></div></div>
72
72
  <div class="ttc" id="classSVF_1_1SVFIRBuilder_html"><div class="ttname"><a href="classSVF_1_1SVFIRBuilder.html">SVF::SVFIRBuilder</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFIRBuilder_8h_source.html#l00045">SVFIRBuilder.h:45</a></div></div>
@@ -95,6 +95,7 @@ Inheritance diagram for SVF::BVDataPTAImpl:</div>
95
95
  <area href="classSVF_1_1VersionedFlowSensitive.html" alt="SVF::VersionedFlowSensitive" shape="rect" coords="1228,168,1407,192"/>
96
96
  <area href="classSVF_1_1AndersenSCD.html" alt="SVF::AndersenSCD" shape="rect" coords="0,224,179,248"/>
97
97
  <area href="classSVF_1_1AndersenWaveDiff.html" alt="SVF::AndersenWaveDiff" shape="rect" coords="189,224,368,248"/>
98
+ <area href="classSVF_1_1POCRAlias.html" alt="SVF::POCRAlias" shape="rect" coords="661,224,840,248"/>
98
99
  <area href="classSVF_1_1AndersenSFR.html" alt="SVF::AndersenSFR" shape="rect" coords="0,280,179,304"/>
99
100
  </map>
100
101
  </div></div>
@@ -82,6 +82,7 @@ Inheritance diagram for SVF::CFLAlias:</div>
82
82
  <area href="classSVF_1_1CFLBase.html" title="CFL Client Base Class. " alt="SVF::CFLBase" shape="rect" coords="0,112,132,136"/>
83
83
  <area href="classSVF_1_1BVDataPTAImpl.html" alt="SVF::BVDataPTAImpl" shape="rect" coords="0,56,132,80"/>
84
84
  <area href="classSVF_1_1PointerAnalysis.html" alt="SVF::PointerAnalysis" shape="rect" coords="0,0,132,24"/>
85
+ <area href="classSVF_1_1POCRAlias.html" alt="SVF::POCRAlias" shape="rect" coords="0,224,132,248"/>
85
86
  </map>
86
87
  </div></div>
87
88
  <table class="memberdecls">
@@ -578,7 +579,7 @@ Additional Inherited Members</h2></td></tr>
578
579
  </table>
579
580
  <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
580
581
  <div class="textblock">
581
- <p class="definition">Definition at line <a class="el" href="CFLAlias_8h_source.html#l00041">41</a> of file <a class="el" href="CFLAlias_8h_source.html">CFLAlias.h</a>.</p>
582
+ <p class="definition">Definition at line <a class="el" href="CFLAlias_8h_source.html#l00043">43</a> of file <a class="el" href="CFLAlias_8h_source.html">CFLAlias.h</a>.</p>
582
583
  </div><h2 class="groupheader">Member Typedef Documentation</h2>
583
584
  <a id="af8424cab679dae62320c6dec6253036a"></a>
584
585
  <h2 class="memtitle"><span class="permalink"><a href="#af8424cab679dae62320c6dec6253036a">&#9670;&nbsp;</a></span>CallSite2DummyValPN</h2>
@@ -592,7 +593,7 @@ Additional Inherited Members</h2></td></tr>
592
593
  </table>
593
594
  </div><div class="memdoc">
594
595
 
595
- <p class="definition">Definition at line <a class="el" href="CFLAlias_8h_source.html#l00045">45</a> of file <a class="el" href="CFLAlias_8h_source.html">CFLAlias.h</a>.</p>
596
+ <p class="definition">Definition at line <a class="el" href="CFLAlias_8h_source.html#l00047">47</a> of file <a class="el" href="CFLAlias_8h_source.html">CFLAlias.h</a>.</p>
596
597
 
597
598
  </div>
598
599
  </div>
@@ -621,8 +622,8 @@ Additional Inherited Members</h2></td></tr>
621
622
  </table>
622
623
  </div><div class="memdoc">
623
624
 
624
- <p class="definition">Definition at line <a class="el" href="CFLAlias_8h_source.html#l00047">47</a> of file <a class="el" href="CFLAlias_8h_source.html">CFLAlias.h</a>.</p>
625
- <div class="fragment"><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; : <a class="code" href="classSVF_1_1CFLBase.html#a59c71b0eada5c763ce776f3618d08dd8">CFLBase</a>(ir, <a class="code" href="classSVF_1_1PointerAnalysis.html#a0b182ac680cce0547dbe7714c870ca85a164c6de3baace1c63db75a228a5816bb">PointerAnalysis::CFLFICI_WPA</a>)</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; {</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; }</div><div class="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#l00078">PointerAnalysis.h:78</a></div></div>
625
+ <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>
626
+ <div class="fragment"><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; : <a class="code" href="classSVF_1_1CFLBase.html#a59c71b0eada5c763ce776f3618d08dd8">CFLBase</a>(ir, <a class="code" href="classSVF_1_1PointerAnalysis.html#a0b182ac680cce0547dbe7714c870ca85a164c6de3baace1c63db75a228a5816bb">PointerAnalysis::CFLFICI_WPA</a>)</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_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#l00078">PointerAnalysis.h:78</a></div></div>
626
627
  <div class="ttc" id="classSVF_1_1CFLBase_html_a59c71b0eada5c763ce776f3618d08dd8"><div class="ttname"><a href="classSVF_1_1CFLBase.html#a59c71b0eada5c763ce776f3618d08dd8">SVF::CFLBase::CFLBase</a></div><div class="ttdeci">CFLBase(SVFIR *ir, PointerAnalysis::PTATY pty)</div><div class="ttdef"><b>Definition:</b> <a href="CFLBase_8h_source.html#l00053">CFLBase.h:53</a></div></div>
627
628
  </div><!-- fragment -->
628
629
  </div>
@@ -665,10 +666,10 @@ Additional Inherited Members</h2></td></tr>
665
666
  <p>Need Original one for virtual table. </p>
666
667
  <p>Add copy edge on constraint graph </p>
667
668
 
668
- <p class="definition">Definition at line <a class="el" href="CFLAlias_8h_source.html#l00104">104</a> of file <a class="el" href="CFLAlias_8h_source.html">CFLAlias.h</a>.</p>
669
- <div class="fragment"><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; {</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <span class="keyword">const</span> CFLEdge *edge = <a class="code" href="classSVF_1_1CFLBase.html#a8101683062b9a71c0b2309cbdfb7b26f">graph</a>-&gt;<a class="code" href="classSVF_1_1CFLGraph.html#aca4c22dd10f65bcde5dadb7688544b50">hasEdge</a>(<a class="code" href="classSVF_1_1CFLBase.html#a8101683062b9a71c0b2309cbdfb7b26f">graph</a>-&gt;<a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(src),<a class="code" href="classSVF_1_1CFLBase.html#a8101683062b9a71c0b2309cbdfb7b26f">graph</a>-&gt;<a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(dst), 1);</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="keywordflow">if</span> (edge != <span class="keyword">nullptr</span> )</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; {</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; }</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <a class="code" href="classSVF_1_1GrammarBase.html#a7aef5c42fbd8a62dd4a541cc0e8e8187">CFLGrammar::Kind</a> copyKind = <a class="code" href="classSVF_1_1CFLBase.html#af7b0e90b8f8998ab6cf4e05155c7a503">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="l00112"></a><span class="lineno"> 112</span>&#160; <a class="code" href="classSVF_1_1GrammarBase.html#a7aef5c42fbd8a62dd4a541cc0e8e8187">CFLGrammar::Kind</a> copybarKind = <a class="code" href="classSVF_1_1CFLBase.html#af7b0e90b8f8998ab6cf4e05155c7a503">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="l00113"></a><span class="lineno"> 113</span>&#160; <a class="code" href="classSVF_1_1CFLBase.html#a34c3a3eec2d7d34ef78b5031d8844b17">solver</a>-&gt;<a class="code" href="classSVF_1_1CFLSolver.html#afc745dc72fd0572a145a78fe6a93ae5c">pushIntoWorklist</a>(<a class="code" href="classSVF_1_1CFLBase.html#a8101683062b9a71c0b2309cbdfb7b26f">graph</a>-&gt;<a class="code" href="classSVF_1_1CFLGraph.html#a9eea8083dbeaf898948595b1d75cfee2">addCFLEdge</a>(<a class="code" href="classSVF_1_1CFLBase.html#a8101683062b9a71c0b2309cbdfb7b26f">graph</a>-&gt;<a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(src),<a class="code" href="classSVF_1_1CFLBase.html#a8101683062b9a71c0b2309cbdfb7b26f">graph</a>-&gt;<a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(dst), copyKind));</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <a class="code" href="classSVF_1_1CFLBase.html#a34c3a3eec2d7d34ef78b5031d8844b17">solver</a>-&gt;<a class="code" href="classSVF_1_1CFLSolver.html#afc745dc72fd0572a145a78fe6a93ae5c">pushIntoWorklist</a>(<a class="code" href="classSVF_1_1CFLBase.html#a8101683062b9a71c0b2309cbdfb7b26f">graph</a>-&gt;<a class="code" href="classSVF_1_1CFLGraph.html#a9eea8083dbeaf898948595b1d75cfee2">addCFLEdge</a>(<a class="code" href="classSVF_1_1CFLBase.html#a8101683062b9a71c0b2309cbdfb7b26f">graph</a>-&gt;<a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(dst),<a class="code" href="classSVF_1_1CFLBase.html#a8101683062b9a71c0b2309cbdfb7b26f">graph</a>-&gt;<a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(src), copybarKind));</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</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#l00063">CFLGraph.cpp:63</a></div></div>
669
+ <p class="definition">Definition at line <a class="el" href="CFLAlias_8h_source.html#l00106">106</a> of file <a class="el" href="CFLAlias_8h_source.html">CFLAlias.h</a>.</p>
670
+ <div class="fragment"><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; {</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <span class="keyword">const</span> CFLEdge *edge = <a class="code" href="classSVF_1_1CFLBase.html#a8101683062b9a71c0b2309cbdfb7b26f">graph</a>-&gt;<a class="code" href="classSVF_1_1CFLGraph.html#aca4c22dd10f65bcde5dadb7688544b50">hasEdge</a>(<a class="code" href="classSVF_1_1CFLBase.html#a8101683062b9a71c0b2309cbdfb7b26f">graph</a>-&gt;<a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(src),<a class="code" href="classSVF_1_1CFLBase.html#a8101683062b9a71c0b2309cbdfb7b26f">graph</a>-&gt;<a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(dst), 1);</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="keywordflow">if</span> (edge != <span class="keyword">nullptr</span> )</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; {</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</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_1CFLBase.html#af7b0e90b8f8998ab6cf4e05155c7a503">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_1CFLBase.html#af7b0e90b8f8998ab6cf4e05155c7a503">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_1CFLBase.html#a34c3a3eec2d7d34ef78b5031d8844b17">solver</a>-&gt;<a class="code" href="classSVF_1_1CFLSolver.html#afc745dc72fd0572a145a78fe6a93ae5c">pushIntoWorklist</a>(<a class="code" href="classSVF_1_1CFLBase.html#a8101683062b9a71c0b2309cbdfb7b26f">graph</a>-&gt;<a class="code" href="classSVF_1_1CFLGraph.html#a9eea8083dbeaf898948595b1d75cfee2">addCFLEdge</a>(<a class="code" href="classSVF_1_1CFLBase.html#a8101683062b9a71c0b2309cbdfb7b26f">graph</a>-&gt;<a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(src),<a class="code" href="classSVF_1_1CFLBase.html#a8101683062b9a71c0b2309cbdfb7b26f">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_1CFLBase.html#a34c3a3eec2d7d34ef78b5031d8844b17">solver</a>-&gt;<a class="code" href="classSVF_1_1CFLSolver.html#afc745dc72fd0572a145a78fe6a93ae5c">pushIntoWorklist</a>(<a class="code" href="classSVF_1_1CFLBase.html#a8101683062b9a71c0b2309cbdfb7b26f">graph</a>-&gt;<a class="code" href="classSVF_1_1CFLGraph.html#a9eea8083dbeaf898948595b1d75cfee2">addCFLEdge</a>(<a class="code" href="classSVF_1_1CFLBase.html#a8101683062b9a71c0b2309cbdfb7b26f">graph</a>-&gt;<a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(dst),<a class="code" href="classSVF_1_1CFLBase.html#a8101683062b9a71c0b2309cbdfb7b26f">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#l00063">CFLGraph.cpp:63</a></div></div>
670
671
  <div class="ttc" id="classSVF_1_1CFLBase_html_a8101683062b9a71c0b2309cbdfb7b26f"><div class="ttname"><a href="classSVF_1_1CFLBase.html#a8101683062b9a71c0b2309cbdfb7b26f">SVF::CFLBase::graph</a></div><div class="ttdeci">CFLGraph * graph</div><div class="ttdef"><b>Definition:</b> <a href="CFLBase_8h_source.html#l00107">CFLBase.h:107</a></div></div>
671
- <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#l00082">CFLSolver.h:82</a></div></div>
672
+ <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#l00083">CFLSolver.h:83</a></div></div>
672
673
  <div class="ttc" id="classSVF_1_1CFLBase_html_af7b0e90b8f8998ab6cf4e05155c7a503"><div class="ttname"><a href="classSVF_1_1CFLBase.html#af7b0e90b8f8998ab6cf4e05155c7a503">SVF::CFLBase::grammar</a></div><div class="ttdeci">CFLGrammar * grammar</div><div class="ttdef"><b>Definition:</b> <a href="CFLBase_8h_source.html#l00109">CFLBase.h:109</a></div></div>
673
674
  <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>
674
675
  <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>
@@ -716,10 +717,10 @@ Additional Inherited Members</h2></td></tr>
716
717
 
717
718
  <p>Implements <a class="el" href="classSVF_1_1PointerAnalysis.html#ae1323233941cdc9b99332e4b954a2217">SVF::PointerAnalysis</a>.</p>
718
719
 
719
- <p class="definition">Definition at line <a class="el" href="CFLAlias_8h_source.html#l00061">61</a> of file <a class="el" href="CFLAlias_8h_source.html">CFLAlias.h</a>.</p>
720
- <div class="fragment"><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; {</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> n1 = <a class="code" href="classSVF_1_1CFLBase.html#a9e6cbab31612da4a1f8f660d1fabc4c0">svfir</a>-&gt;<a class="code" href="classSVF_1_1IRGraph.html#a43514023a4f4d0c32f536f51443b0efc">getValueNode</a>(v1);</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> n2 = <a class="code" href="classSVF_1_1CFLBase.html#a9e6cbab31612da4a1f8f660d1fabc4c0">svfir</a>-&gt;<a class="code" href="classSVF_1_1IRGraph.html#a43514023a4f4d0c32f536f51443b0efc">getValueNode</a>(v2);</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1CFLAlias.html#ab40891c44b83103fc240c1e7c7c60855">alias</a>(n1,n2);</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; }</div><div class="ttc" id="classSVF_1_1CFLBase_html_a9e6cbab31612da4a1f8f660d1fabc4c0"><div class="ttname"><a href="classSVF_1_1CFLBase.html#a9e6cbab31612da4a1f8f660d1fabc4c0">SVF::CFLBase::svfir</a></div><div class="ttdeci">SVFIR * svfir</div><div class="ttdef"><b>Definition:</b> <a href="CFLBase_8h_source.html#l00106">CFLBase.h:106</a></div></div>
720
+ <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>
721
+ <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#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> n1 = <a class="code" href="classSVF_1_1CFLBase.html#a9e6cbab31612da4a1f8f660d1fabc4c0">svfir</a>-&gt;<a class="code" href="classSVF_1_1IRGraph.html#a43514023a4f4d0c32f536f51443b0efc">getValueNode</a>(v1);</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> n2 = <a class="code" href="classSVF_1_1CFLBase.html#a9e6cbab31612da4a1f8f660d1fabc4c0">svfir</a>-&gt;<a class="code" href="classSVF_1_1IRGraph.html#a43514023a4f4d0c32f536f51443b0efc">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#ab40891c44b83103fc240c1e7c7c60855">alias</a>(n1,n2);</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; }</div><div class="ttc" id="classSVF_1_1CFLBase_html_a9e6cbab31612da4a1f8f660d1fabc4c0"><div class="ttname"><a href="classSVF_1_1CFLBase.html#a9e6cbab31612da4a1f8f660d1fabc4c0">SVF::CFLBase::svfir</a></div><div class="ttdeci">SVFIR * svfir</div><div class="ttdef"><b>Definition:</b> <a href="CFLBase_8h_source.html#l00106">CFLBase.h:106</a></div></div>
721
722
  <div class="ttc" id="namespaceSVF_html_a350ae9bf8606bdfe23c8679681b969dc"><div class="ttname"><a href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">SVF::NodeID</a></div><div class="ttdeci">unsigned NodeID</div><div class="ttdef"><b>Definition:</b> <a href="include_2MTA_2MTAResultValidator_8h_source.html#l00020">MTAResultValidator.h:20</a></div></div>
722
- <div class="ttc" id="classSVF_1_1CFLAlias_html_ab40891c44b83103fc240c1e7c7c60855"><div class="ttname"><a href="classSVF_1_1CFLAlias.html#ab40891c44b83103fc240c1e7c7c60855">SVF::CFLAlias::alias</a></div><div class="ttdeci">virtual AliasResult alias(const SVFValue *v1, const SVFValue *v2)</div><div class="ttdoc">Interface exposed to users of our Alias analysis, given Value infos. </div><div class="ttdef"><b>Definition:</b> <a href="CFLAlias_8h_source.html#l00061">CFLAlias.h:61</a></div></div>
723
+ <div class="ttc" id="classSVF_1_1CFLAlias_html_ab40891c44b83103fc240c1e7c7c60855"><div class="ttname"><a href="classSVF_1_1CFLAlias.html#ab40891c44b83103fc240c1e7c7c60855">SVF::CFLAlias::alias</a></div><div class="ttdeci">virtual AliasResult alias(const SVFValue *v1, const SVFValue *v2)</div><div class="ttdoc">Interface exposed to users of our Alias analysis, given Value infos. </div><div class="ttdef"><b>Definition:</b> <a href="CFLAlias_8h_source.html#l00063">CFLAlias.h:63</a></div></div>
723
724
  <div class="ttc" id="classSVF_1_1IRGraph_html_a43514023a4f4d0c32f536f51443b0efc"><div class="ttname"><a href="classSVF_1_1IRGraph.html#a43514023a4f4d0c32f536f51443b0efc">SVF::IRGraph::getValueNode</a></div><div class="ttdeci">NodeID getValueNode(const SVFValue *V)</div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#l00128">IRGraph.h:128</a></div></div>
724
725
  </div><!-- fragment -->
725
726
  </div>
@@ -762,8 +763,8 @@ Additional Inherited Members</h2></td></tr>
762
763
 
763
764
  <p>Implements <a class="el" href="classSVF_1_1PointerAnalysis.html#a0f712ead1f31750879948c36b2fc77cf">SVF::PointerAnalysis</a>.</p>
764
765
 
765
- <p class="definition">Definition at line <a class="el" href="CFLAlias_8h_source.html#l00069">69</a> of file <a class="el" href="CFLAlias_8h_source.html">CFLAlias.h</a>.</p>
766
- <div class="fragment"><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; {</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1CFLBase.html#a8101683062b9a71c0b2309cbdfb7b26f">graph</a>-&gt;<a class="code" href="classSVF_1_1CFLGraph.html#aca4c22dd10f65bcde5dadb7688544b50">hasEdge</a>(<a class="code" href="classSVF_1_1CFLBase.html#a8101683062b9a71c0b2309cbdfb7b26f">graph</a>-&gt;<a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(node1), <a class="code" href="classSVF_1_1CFLBase.html#a8101683062b9a71c0b2309cbdfb7b26f">graph</a>-&gt;<a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(node2), <a class="code" href="classSVF_1_1CFLBase.html#a8101683062b9a71c0b2309cbdfb7b26f">graph</a>-&gt;<a class="code" href="classSVF_1_1CFLGraph.html#a0723f25be2a163b21f478cddca5293d2">startKind</a>))</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceSVF.html#a61c01e2e687ab3a001fb806737583943aef15fd8989d8dd9576b3fbb2aabc118f">AliasResult::MayAlias</a>;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keywordflow">else</span></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#a61c01e2e687ab3a001fb806737583943afdd83ddff93d38902f07775cd36df239">AliasResult::NoAlias</a>;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</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#l00063">CFLGraph.cpp:63</a></div></div>
766
+ <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>
767
+ <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_1CFLBase.html#a8101683062b9a71c0b2309cbdfb7b26f">graph</a>-&gt;<a class="code" href="classSVF_1_1CFLGraph.html#aca4c22dd10f65bcde5dadb7688544b50">hasEdge</a>(<a class="code" href="classSVF_1_1CFLBase.html#a8101683062b9a71c0b2309cbdfb7b26f">graph</a>-&gt;<a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(node1), <a class="code" href="classSVF_1_1CFLBase.html#a8101683062b9a71c0b2309cbdfb7b26f">graph</a>-&gt;<a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(node2), <a class="code" href="classSVF_1_1CFLBase.html#a8101683062b9a71c0b2309cbdfb7b26f">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#l00063">CFLGraph.cpp:63</a></div></div>
767
768
  <div class="ttc" id="classSVF_1_1CFLBase_html_a8101683062b9a71c0b2309cbdfb7b26f"><div class="ttname"><a href="classSVF_1_1CFLBase.html#a8101683062b9a71c0b2309cbdfb7b26f">SVF::CFLBase::graph</a></div><div class="ttdeci">CFLGraph * graph</div><div class="ttdef"><b>Definition:</b> <a href="CFLBase_8h_source.html#l00107">CFLBase.h:107</a></div></div>
768
769
  <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="SVFType_8h_source.html#l00461">SVFType.h:461</a></div></div>
769
770
  <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#l00395">GenericGraph.h:395</a></div></div>
@@ -832,7 +833,7 @@ Additional Inherited Members</h2></td></tr>
832
833
  <div class="ttc" id="SVFType_8h_html_adbfc4364261f019dc6cf33234a5177d2"><div class="ttname"><a href="SVFType_8h.html#adbfc4364261f019dc6cf33234a5177d2">DAndersen</a></div><div class="ttdeci">#define DAndersen</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00435">SVFType.h:435</a></div></div>
833
834
  <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#l00273">SVFIR.h:273</a></div></div>
834
835
  <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="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00163">SVFIR.h:163</a></div></div>
835
- <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#l00104">CFLAlias.h:104</a></div></div>
836
+ <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#l00106">CFLAlias.h:106</a></div></div>
836
837
  <div class="ttc" id="SVFType_8h_html_a173ce1b9b505fdadf5613b663749d3b0"><div class="ttname"><a href="SVFType_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="SVFType_8h_source.html#l00417">SVFType.h:417</a></div></div>
837
838
  <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#l00279">SVFIR.h:279</a></div></div>
838
839
  </div><!-- fragment -->
@@ -875,7 +876,7 @@ Additional Inherited Members</h2></td></tr>
875
876
  <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#l00346">CFLGrammar.cpp:346</a></div></div>
876
877
  <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#l00073">CFLGraph.cpp:73</a></div></div>
877
878
  <div class="ttc" id="classSVF_1_1CFLBase_html_a49b12231195521d2b53b045962f0a3f6"><div class="ttname"><a href="classSVF_1_1CFLBase.html#a49b12231195521d2b53b045962f0a3f6">SVF::CFLBase::numOfChecks</a></div><div class="ttdeci">static double numOfChecks</div><div class="ttdef"><b>Definition:</b> <a href="CFLBase_8h_source.html#l00101">CFLBase.h:101</a></div></div>
878
- <div class="ttc" id="classSVF_1_1CFLSolver_html_a46ded0b18821a2ade0ee151ac2b2d520"><div class="ttname"><a href="classSVF_1_1CFLSolver.html#a46ded0b18821a2ade0ee151ac2b2d520">SVF::CFLSolver::numOfChecks</a></div><div class="ttdeci">static double numOfChecks</div><div class="ttdef"><b>Definition:</b> <a href="CFLSolver_8h_source.html#l00050">CFLSolver.h:50</a></div></div>
879
+ <div class="ttc" id="classSVF_1_1CFLSolver_html_a46ded0b18821a2ade0ee151ac2b2d520"><div class="ttname"><a href="classSVF_1_1CFLSolver.html#a46ded0b18821a2ade0ee151ac2b2d520">SVF::CFLSolver::numOfChecks</a></div><div class="ttdeci">static double numOfChecks</div><div class="ttdef"><b>Definition:</b> <a href="CFLSolver_8h_source.html#l00051">CFLSolver.h:51</a></div></div>
879
880
  <div class="ttc" id="classSVF_1_1CFLBase_html_a34c3a3eec2d7d34ef78b5031d8844b17"><div class="ttname"><a href="classSVF_1_1CFLBase.html#a34c3a3eec2d7d34ef78b5031d8844b17">SVF::CFLBase::solver</a></div><div class="ttdeci">CFLSolver * solver</div><div class="ttdef"><b>Definition:</b> <a href="CFLBase_8h_source.html#l00110">CFLBase.h:110</a></div></div>
880
881
  <div class="ttc" id="classSVF_1_1Options_html_a9ff12bf51a475c90c35e3351c5501f0f"><div class="ttname"><a href="classSVF_1_1Options.html#a9ff12bf51a475c90c35e3351c5501f0f">SVF::Options::PrintCFL</a></div><div class="ttdeci">static const Option&lt; bool &gt; PrintCFL</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00254">Options.h:254</a></div></div>
881
882
  </div><!-- fragment -->
@@ -908,8 +909,8 @@ Additional Inherited Members</h2></td></tr>
908
909
  <p>Get points-to targets of a pointer. V In this context. </p>
909
910
  <p>Check V Dst of ptr. </p>
910
911
 
911
- <p class="definition">Definition at line <a class="el" href="CFLAlias_8h_source.html#l00078">78</a> of file <a class="el" href="CFLAlias_8h_source.html">CFLAlias.h</a>.</p>
912
- <div class="fragment"><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; {</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; CFLNode *funNode = <a class="code" href="classSVF_1_1CFLBase.html#a8101683062b9a71c0b2309cbdfb7b26f">graph</a>-&gt;<a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(ptr);</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</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="l00083"></a><span class="lineno"> 83</span>&#160; {</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="keywordflow">if</span>((*outedge)-&gt;getEdgeKind() == <a class="code" href="classSVF_1_1CFLBase.html#a8101683062b9a71c0b2309cbdfb7b26f">graph</a>-&gt;<a class="code" href="classSVF_1_1CFLGraph.html#a685fb852b2cd3767258225aa3b87caa4">getStartKind</a>())</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; {</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="comment">// Need to Find dst addr src</span></div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; CFLNode *vNode = <a class="code" href="classSVF_1_1CFLBase.html#a8101683062b9a71c0b2309cbdfb7b26f">graph</a>-&gt;<a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>((*outedge)-&gt;getDstID());</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <a class="code" href="classSVF_1_1BVDataPTAImpl.html#af68485a2208553579f9c2e4b2cb20cff">addPts</a>(ptr, <a class="code" href="classSVF_1_1CFLBase.html#a9e6cbab31612da4a1f8f660d1fabc4c0">svfir</a>-&gt;<a class="code" href="classSVF_1_1SVFIR.html#a5298f34143ec3a2e6bb74ebad668cbbc">getBaseValVar</a>((*outedge)-&gt;getDstID()));</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</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="l00090"></a><span class="lineno"> 90</span>&#160; {</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="keywordflow">if</span>((*inEdge)-&gt;getEdgeKind() == 0)</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; {</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <a class="code" href="classSVF_1_1BVDataPTAImpl.html#af68485a2208553579f9c2e4b2cb20cff">addPts</a>(ptr, (*inEdge)-&gt;getSrcID());</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; }</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; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1BVDataPTAImpl.html#ac9897a09cad8a99169f2da2116807b1b">getPts</a>(ptr);</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; }</div><div class="ttc" id="classSVF_1_1CFLBase_html_a9e6cbab31612da4a1f8f660d1fabc4c0"><div class="ttname"><a href="classSVF_1_1CFLBase.html#a9e6cbab31612da4a1f8f660d1fabc4c0">SVF::CFLBase::svfir</a></div><div class="ttdeci">SVFIR * svfir</div><div class="ttdef"><b>Definition:</b> <a href="CFLBase_8h_source.html#l00106">CFLBase.h:106</a></div></div>
912
+ <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>
913
+ <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_1CFLBase.html#a8101683062b9a71c0b2309cbdfb7b26f">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_1CFLBase.html#a8101683062b9a71c0b2309cbdfb7b26f">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_1CFLBase.html#a8101683062b9a71c0b2309cbdfb7b26f">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_1CFLBase.html#a9e6cbab31612da4a1f8f660d1fabc4c0">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#ac9897a09cad8a99169f2da2116807b1b">getPts</a>(ptr);</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; }</div><div class="ttc" id="classSVF_1_1CFLBase_html_a9e6cbab31612da4a1f8f660d1fabc4c0"><div class="ttname"><a href="classSVF_1_1CFLBase.html#a9e6cbab31612da4a1f8f660d1fabc4c0">SVF::CFLBase::svfir</a></div><div class="ttdeci">SVFIR * svfir</div><div class="ttdef"><b>Definition:</b> <a href="CFLBase_8h_source.html#l00106">CFLBase.h:106</a></div></div>
913
914
  <div class="ttc" id="classSVF_1_1CFLBase_html_a8101683062b9a71c0b2309cbdfb7b26f"><div class="ttname"><a href="classSVF_1_1CFLBase.html#a8101683062b9a71c0b2309cbdfb7b26f">SVF::CFLBase::graph</a></div><div class="ttdeci">CFLGraph * graph</div><div class="ttdef"><b>Definition:</b> <a href="CFLBase_8h_source.html#l00107">CFLBase.h:107</a></div></div>
914
915
  <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#l00517">SVFIR.cpp:517</a></div></div>
915
916
  <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#l00121">PointerAnalysisImpl.h:121</a></div></div>
@@ -948,8 +949,8 @@ Additional Inherited Members</h2></td></tr>
948
949
 
949
950
  <p>Implements <a class="el" href="classSVF_1_1PointerAnalysis.html#ad9af9655a13f3faeaf265ba370d1f280">SVF::PointerAnalysis</a>.</p>
950
951
 
951
- <p class="definition">Definition at line <a class="el" href="CFLAlias_8h_source.html#l00119">119</a> of file <a class="el" href="CFLAlias_8h_source.html">CFLAlias.h</a>.</p>
952
- <div class="fragment"><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; {</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; abort(); <span class="comment">// to be implemented</span></div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; }</div></div><!-- fragment -->
952
+ <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>
953
+ <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 -->
953
954
  </div>
954
955
  </div>
955
956
  <a id="a40841c2b47cf690af5c13ba7662d0863"></a>
@@ -980,13 +981,13 @@ Additional Inherited Members</h2></td></tr>
980
981
  <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#l00076">CFLGraph.h:76</a></div></div>
981
982
  <div class="ttc" id="classSVF_1_1CallSite_html_ac2a0091dab3543a398da890b947e42ef"><div class="ttname"><a href="classSVF_1_1CallSite.html#ac2a0091dab3543a398da890b947e42ef">SVF::CallSite::getInstruction</a></div><div class="ttdeci">const SVFInstruction * getInstruction() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l01023">SVFValue.h:1023</a></div></div>
982
983
  <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#l00227">SVFUtil.h:227</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#l00137">CFLAlias.h:137</a></div></div>
984
+ <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#l00139">CFLAlias.h:139</a></div></div>
984
985
  <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#l00171">GenericGraph.h:171</a></div></div>
985
986
  <div class="ttc" id="classSVF_1_1CallSite_html_a93e70225ce9c55ca65ea9d5cf737206f"><div class="ttname"><a href="classSVF_1_1CallSite.html#a93e70225ce9c55ca65ea9d5cf737206f">SVF::CallSite::getType</a></div><div class="ttdeci">const SVFType * getType() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l01031">SVFValue.h:1031</a></div></div>
986
987
  <div class="ttc" id="classSVF_1_1SVFIR_html_afddb7a152e95ed4c559d12d00f5939e7"><div class="ttname"><a href="classSVF_1_1SVFIR.html#afddb7a152e95ed4c559d12d00f5939e7">SVF::SVFIR::addDummyObjNode</a></div><div class="ttdeci">NodeID addDummyObjNode(const SVFType *type)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00448">SVFIR.h:448</a></div></div>
987
988
  <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#l00273">SVFIR.h:273</a></div></div>
988
989
  <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="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00163">SVFIR.h:163</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#l00104">CFLAlias.h:104</a></div></div>
990
+ <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#l00106">CFLAlias.h:106</a></div></div>
990
991
  </div><!-- fragment -->
991
992
  </div>
992
993
  </div>
@@ -1017,10 +1018,12 @@ Additional Inherited Members</h2></td></tr>
1017
1018
 
1018
1019
  <p>Reimplemented from <a class="el" href="classSVF_1_1PointerAnalysis.html#a431ec4f85eb0f029e5740b92fd9ceb32">SVF::PointerAnalysis</a>.</p>
1019
1020
 
1021
+ <p>Reimplemented in <a class="el" href="classSVF_1_1POCRAlias.html#aad3e90950c4393abddb52afd68cb9f89">SVF::POCRAlias</a>.</p>
1022
+
1020
1023
  <p class="definition">Definition at line <a class="el" href="CFLAlias_8cpp_source.html#l00190">190</a> of file <a class="el" href="CFLAlias_8cpp_source.html">CFLAlias.cpp</a>.</p>
1021
1024
  <div class="fragment"><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; <a class="code" href="classSVF_1_1PointerAnalysis.html#a5ec3d9bf1fc81346c9df29638daedc0f">stat</a> = <span class="keyword">new</span> <a class="code" href="classSVF_1_1CFLStat.html">CFLStat</a>(<span class="keyword">this</span>);</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160;</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; <span class="comment">// Build CFL Grammar</span></div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; <a class="code" href="classSVF_1_1CFLBase.html#a77bc3b0260fe02cdcf41fdb6b80caa09">buildCFLGrammar</a>();</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <span class="comment">// Build CFL Graph</span></div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; <a class="code" href="classSVF_1_1CFLBase.html#a0daabb58bd7d5be40379ccc670c37a93">buildCFLGraph</a>();</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160;</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; <span class="comment">// Normalize CFL Grammar</span></div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <a class="code" href="classSVF_1_1CFLBase.html#a462de3facd2a9365d32397d250414ee9">normalizeCFLGrammar</a>();</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160;</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; <span class="comment">// Initialize sovler</span></div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; <a class="code" href="classSVF_1_1CFLBase.html#a34c3a3eec2d7d34ef78b5031d8844b17">solver</a> = <span class="keyword">new</span> <a class="code" href="classSVF_1_1CFLSolver.html">CFLSolver</a>(<a class="code" href="classSVF_1_1CFLBase.html#a8101683062b9a71c0b2309cbdfb7b26f">graph</a>, <a class="code" href="classSVF_1_1CFLBase.html#af7b0e90b8f8998ab6cf4e05155c7a503">grammar</a>);</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160;}</div><div class="ttc" id="classSVF_1_1CFLBase_html_a77bc3b0260fe02cdcf41fdb6b80caa09"><div class="ttname"><a href="classSVF_1_1CFLBase.html#a77bc3b0260fe02cdcf41fdb6b80caa09">SVF::CFLBase::buildCFLGrammar</a></div><div class="ttdeci">virtual void buildCFLGrammar()</div><div class="ttdoc">Build Grammar from text file. </div><div class="ttdef"><b>Definition:</b> <a href="CFLBase_8cpp_source.html#l00049">CFLBase.cpp:49</a></div></div>
1022
1025
  <div class="ttc" id="classSVF_1_1CFLBase_html_a8101683062b9a71c0b2309cbdfb7b26f"><div class="ttname"><a href="classSVF_1_1CFLBase.html#a8101683062b9a71c0b2309cbdfb7b26f">SVF::CFLBase::graph</a></div><div class="ttdeci">CFLGraph * graph</div><div class="ttdef"><b>Definition:</b> <a href="CFLBase_8h_source.html#l00107">CFLBase.h:107</a></div></div>
1023
- <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#l00041">CFLSolver.h:41</a></div></div>
1026
+ <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#l00042">CFLSolver.h:42</a></div></div>
1024
1027
  <div class="ttc" id="classSVF_1_1CFLBase_html_af7b0e90b8f8998ab6cf4e05155c7a503"><div class="ttname"><a href="classSVF_1_1CFLBase.html#af7b0e90b8f8998ab6cf4e05155c7a503">SVF::CFLBase::grammar</a></div><div class="ttdeci">CFLGrammar * grammar</div><div class="ttdef"><b>Definition:</b> <a href="CFLBase_8h_source.html#l00109">CFLBase.h:109</a></div></div>
1025
1028
  <div class="ttc" id="classSVF_1_1CFLBase_html_a462de3facd2a9365d32397d250414ee9"><div class="ttname"><a href="classSVF_1_1CFLBase.html#a462de3facd2a9365d32397d250414ee9">SVF::CFLBase::normalizeCFLGrammar</a></div><div class="ttdeci">virtual void normalizeCFLGrammar()</div><div class="ttdoc">Normalize grammar. </div><div class="ttdef"><b>Definition:</b> <a href="CFLBase_8cpp_source.html#l00090">CFLBase.cpp:90</a></div></div>
1026
1029
  <div class="ttc" id="classSVF_1_1PointerAnalysis_html_a5ec3d9bf1fc81346c9df29638daedc0f"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a5ec3d9bf1fc81346c9df29638daedc0f">SVF::PointerAnalysis::stat</a></div><div class="ttdeci">PTAStat * stat</div><div class="ttdoc">Statistics. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00150">PointerAnalysis.h:150</a></div></div>
@@ -1071,7 +1074,7 @@ Additional Inherited Members</h2></td></tr>
1071
1074
 
1072
1075
  <p class="definition">Definition at line <a class="el" href="CFLAlias_8cpp_source.html#l00041">41</a> of file <a class="el" href="CFLAlias_8cpp_source.html">CFLAlias.cpp</a>.</p>
1073
1076
  <div class="fragment"><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;{</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <span class="keywordflow">for</span>(CallSiteToFunPtrMap::const_iterator iter = callsites.begin(), eiter = callsites.end(); iter!=eiter; ++iter)</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; {</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* cs = iter-&gt;first;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF_1_1SVFUtil.html#a9815a5b31ac7dc21239d08e5b9f61106">SVFUtil::getSVFCallSite</a>(cs-&gt;<a class="code" href="classSVF_1_1CallICFGNode.html#a90fd0b8e44fba1a7eb76d15bce085d66">getCallSite</a>()).isVirtualCall())</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; {</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFValue.html">SVFValue</a>* vtbl = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a9815a5b31ac7dc21239d08e5b9f61106">SVFUtil::getSVFCallSite</a>(cs-&gt;<a class="code" href="classSVF_1_1CallICFGNode.html#a90fd0b8e44fba1a7eb76d15bce085d66">getCallSite</a>()).getVtablePtr();</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; assert(<a class="code" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>-&gt;<a class="code" href="classSVF_1_1IRGraph.html#a401ec65771a3d2dcc8eb60574aadd354">hasValueNode</a>(vtbl));</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> vtblId = <a class="code" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>-&gt;<a class="code" href="classSVF_1_1IRGraph.html#a43514023a4f4d0c32f536f51443b0efc">getValueNode</a>(vtbl);</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</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="l00053"></a><span class="lineno"> 53</span>&#160; }</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00055"></a><span class="lineno"> 55</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="l00056"></a><span class="lineno"> 56</span>&#160; }</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</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#l00386">PointerAnalysis.cpp:386</a></div></div>
1074
- <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#l00078">CFLAlias.h:78</a></div></div>
1077
+ <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>
1075
1078
  <div class="ttc" id="namespaceSVF_html_a350ae9bf8606bdfe23c8679681b969dc"><div class="ttname"><a href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">SVF::NodeID</a></div><div class="ttdeci">unsigned NodeID</div><div class="ttdef"><b>Definition:</b> <a href="include_2MTA_2MTAResultValidator_8h_source.html#l00020">MTAResultValidator.h:20</a></div></div>
1076
1079
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a9815a5b31ac7dc21239d08e5b9f61106"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a9815a5b31ac7dc21239d08e5b9f61106">SVF::SVFUtil::getSVFCallSite</a></div><div class="ttdeci">CallSite getSVFCallSite(const SVFInstruction *inst)</div><div class="ttdoc">Return LLVM callsite given an instruction. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00194">SVFUtil.h:194</a></div></div>
1077
1080
  <div class="ttc" id="classSVF_1_1IRGraph_html_a43514023a4f4d0c32f536f51443b0efc"><div class="ttname"><a href="classSVF_1_1IRGraph.html#a43514023a4f4d0c32f536f51443b0efc">SVF::IRGraph::getValueNode</a></div><div class="ttdeci">NodeID getValueNode(const SVFValue *V)</div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#l00128">IRGraph.h:128</a></div></div>
@@ -1161,7 +1164,7 @@ Additional Inherited Members</h2></td></tr>
1161
1164
  <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>
1162
1165
  <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#l00063">CFLAlias.cpp:63</a></div></div>
1163
1166
  <div class="ttc" id="classSVF_1_1CFLBase_html_a34c3a3eec2d7d34ef78b5031d8844b17"><div class="ttname"><a href="classSVF_1_1CFLBase.html#a34c3a3eec2d7d34ef78b5031d8844b17">SVF::CFLBase::solver</a></div><div class="ttdeci">CFLSolver * solver</div><div class="ttdef"><b>Definition:</b> <a href="CFLBase_8h_source.html#l00110">CFLBase.h:110</a></div></div>
1164
- <div class="ttc" id="classSVF_1_1CFLSolver_html_ac1fe4563081c29f8a715bd67d454c8bb"><div class="ttname"><a href="classSVF_1_1CFLSolver.html#ac1fe4563081c29f8a715bd67d454c8bb">SVF::CFLSolver::isWorklistEmpty</a></div><div class="ttdeci">bool isWorklistEmpty()</div><div class="ttdef"><b>Definition:</b> <a href="CFLSolver_8h_source.html#l00086">CFLSolver.h:86</a></div></div>
1167
+ <div class="ttc" id="classSVF_1_1CFLSolver_html_ac1fe4563081c29f8a715bd67d454c8bb"><div class="ttname"><a href="classSVF_1_1CFLSolver.html#ac1fe4563081c29f8a715bd67d454c8bb">SVF::CFLSolver::isWorklistEmpty</a></div><div class="ttdeci">bool isWorklistEmpty()</div><div class="ttdef"><b>Definition:</b> <a href="CFLSolver_8h_source.html#l00087">CFLSolver.h:87</a></div></div>
1165
1168
  <div class="ttc" id="classSVF_1_1CallSite_html"><div class="ttname"><a href="classSVF_1_1CallSite.html">SVF::CallSite</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l01014">SVFValue.h:1014</a></div></div>
1166
1169
  </div><!-- fragment -->
1167
1170
  </div>
@@ -1189,7 +1192,7 @@ Additional Inherited Members</h2></td></tr>
1189
1192
 
1190
1193
  <p>Map an instruction to a dummy obj which created at an indirect callsite, which invokes a heap allocator. </p>
1191
1194
 
1192
- <p class="definition">Definition at line <a class="el" href="CFLAlias_8h_source.html#l00137">137</a> of file <a class="el" href="CFLAlias_8h_source.html">CFLAlias.h</a>.</p>
1195
+ <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>
1193
1196
 
1194
1197
  </div>
1195
1198
  </div>
@@ -85,6 +85,7 @@ Inheritance diagram for SVF::CFLBase:</div>
85
85
  <area href="classSVF_1_1PointerAnalysis.html" alt="SVF::PointerAnalysis" shape="rect" coords="71,0,203,24"/>
86
86
  <area href="classSVF_1_1CFLAlias.html" alt="SVF::CFLAlias" shape="rect" coords="0,168,132,192"/>
87
87
  <area href="classSVF_1_1CFLVF.html" alt="SVF::CFLVF" shape="rect" coords="142,168,274,192"/>
88
+ <area href="classSVF_1_1POCRAlias.html" alt="SVF::POCRAlias" shape="rect" coords="0,224,132,248"/>
88
89
  </map>
89
90
  </div></div>
90
91
  <table class="memberdecls">
@@ -807,7 +808,7 @@ Additional Inherited Members</h2></td></tr>
807
808
  <p class="definition">Definition at line <a class="el" href="CFLBase_8cpp_source.html#l00114">114</a> of file <a class="el" href="CFLBase_8cpp_source.html">CFLBase.cpp</a>.</p>
808
809
  <div class="fragment"><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;{</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <a class="code" href="classSVF_1_1CFLBase.html#a49b12231195521d2b53b045962f0a3f6">numOfChecks</a> = <a class="code" href="classSVF_1_1CFLBase.html#a34c3a3eec2d7d34ef78b5031d8844b17">solver</a>-&gt;<a class="code" href="classSVF_1_1CFLSolver.html#a46ded0b18821a2ade0ee151ac2b2d520">numOfChecks</a>;</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <a class="code" href="classSVF_1_1BVDataPTAImpl.html#a638f58c3bf6efdb3787fafaa4e6f19ca">BVDataPTAImpl::finalize</a>();</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;}</div><div class="ttc" id="classSVF_1_1BVDataPTAImpl_html_a638f58c3bf6efdb3787fafaa4e6f19ca"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#a638f58c3bf6efdb3787fafaa4e6f19ca">SVF::BVDataPTAImpl::finalize</a></div><div class="ttdeci">void finalize() override</div><div class="ttdoc">Finalization of pointer analysis, and normalize points-to information to Bit Vector representation...</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8cpp_source.html#l00092">PointerAnalysisImpl.cpp:92</a></div></div>
809
810
  <div class="ttc" id="classSVF_1_1CFLBase_html_a49b12231195521d2b53b045962f0a3f6"><div class="ttname"><a href="classSVF_1_1CFLBase.html#a49b12231195521d2b53b045962f0a3f6">SVF::CFLBase::numOfChecks</a></div><div class="ttdeci">static double numOfChecks</div><div class="ttdef"><b>Definition:</b> <a href="CFLBase_8h_source.html#l00101">CFLBase.h:101</a></div></div>
810
- <div class="ttc" id="classSVF_1_1CFLSolver_html_a46ded0b18821a2ade0ee151ac2b2d520"><div class="ttname"><a href="classSVF_1_1CFLSolver.html#a46ded0b18821a2ade0ee151ac2b2d520">SVF::CFLSolver::numOfChecks</a></div><div class="ttdeci">static double numOfChecks</div><div class="ttdef"><b>Definition:</b> <a href="CFLSolver_8h_source.html#l00050">CFLSolver.h:50</a></div></div>
811
+ <div class="ttc" id="classSVF_1_1CFLSolver_html_a46ded0b18821a2ade0ee151ac2b2d520"><div class="ttname"><a href="classSVF_1_1CFLSolver.html#a46ded0b18821a2ade0ee151ac2b2d520">SVF::CFLSolver::numOfChecks</a></div><div class="ttdeci">static double numOfChecks</div><div class="ttdef"><b>Definition:</b> <a href="CFLSolver_8h_source.html#l00051">CFLSolver.h:51</a></div></div>
811
812
  <div class="ttc" id="classSVF_1_1CFLBase_html_a34c3a3eec2d7d34ef78b5031d8844b17"><div class="ttname"><a href="classSVF_1_1CFLBase.html#a34c3a3eec2d7d34ef78b5031d8844b17">SVF::CFLBase::solver</a></div><div class="ttdeci">CFLSolver * solver</div><div class="ttdef"><b>Definition:</b> <a href="CFLBase_8h_source.html#l00110">CFLBase.h:110</a></div></div>
812
813
  </div><!-- fragment -->
813
814
  </div>