svf-tools 1.0.536 → 1.0.537
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.
- package/SVF-doxygen/html/html/CFLAlias_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/CFLGraphBuilder_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/ConsG_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/IRGraph_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/LLVMLoopAnalysis_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/Options_8cpp_source.html +13 -12
- package/SVF-doxygen/html/html/Options_8h_source.html +13 -12
- package/SVF-doxygen/html/html/SVFG_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/SVFIRBuilder_8cpp_source.html +2 -1
- package/SVF-doxygen/html/html/SVFIRBuilder_8h_source.html +31 -31
- package/SVF-doxygen/html/html/SrcSnkDDA_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/WPAPass_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1CFLAlias.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1CFLGraphBuilder.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1LLVMLoopAnalysis.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1Options-members.html +4 -3
- package/SVF-doxygen/html/html/classSVF_1_1Options.html +38 -12
- package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder.html +102 -100
- package/SVF-doxygen/html/html/classSVF_1_1SrcSnkDDA.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1WPAPass.html +11 -11
- package/SVF-doxygen/html/html/functions_n.html +4 -4
- package/SVF-doxygen/html/html/functions_o.html +3 -3
- package/SVF-doxygen/html/html/functions_p.html +14 -12
- package/SVF-doxygen/html/html/functions_r.html +7 -7
- package/SVF-doxygen/html/html/functions_s.html +9 -9
- package/SVF-doxygen/html/html/functions_t.html +4 -4
- package/SVF-doxygen/html/html/functions_v.html +6 -3
- package/SVF-doxygen/html/html/functions_vars_v.html +3 -0
- package/SVF-doxygen/html/html/search/all_10.js +8 -8
- package/SVF-doxygen/html/html/search/all_11.js +2 -2
- package/SVF-doxygen/html/html/search/all_12.js +6 -6
- package/SVF-doxygen/html/html/search/all_13.js +5 -5
- package/SVF-doxygen/html/html/search/all_15.js +4 -3
- package/SVF-doxygen/html/html/search/all_b.js +1 -1
- package/SVF-doxygen/html/html/search/all_c.js +1 -1
- package/SVF-doxygen/html/html/search/all_e.js +1 -1
- package/SVF-doxygen/html/html/search/all_f.js +1 -1
- package/SVF-doxygen/html/html/search/variables_13.js +3 -3
- package/SVF-doxygen/html/html/search/variables_15.js +1 -0
- package/include/Util/Options.h +1 -0
- package/lib/SVF-FE/SVFIRBuilder.cpp +2 -0
- package/lib/Util/Options.cpp +7 -0
- package/package.json +1 -1
|
@@ -800,12 +800,12 @@ Additional Inherited Members</h2></td></tr>
|
|
|
800
800
|
<div class="ttc" id="classSVF_1_1CFLGraph_html_ab32869931e46babcfaa6791efe2ba91e"><div class="ttname"><a href="classSVF_1_1CFLGraph.html#ab32869931e46babcfaa6791efe2ba91e">SVF::CFLGraph::dump</a></div><div class="ttdeci">void dump(const std::string &filename)</div><div class="ttdef"><b>Definition:</b> <a href="CFLGraph_8cpp_source.html#l00070">CFLGraph.cpp:70</a></div></div>
|
|
801
801
|
<div class="ttc" id="classSVF_1_1CFLAlias_html_a9637bcb592d250b5556b242d2ffc88fa"><div class="ttname"><a href="classSVF_1_1CFLAlias.html#a9637bcb592d250b5556b242d2ffc88fa">SVF::CFLAlias::updateCallGraph</a></div><div class="ttdeci">virtual bool updateCallGraph(const CallSiteToFunPtrMap &callsites)</div><div class="ttdoc">Update call graph for the input indirect callsites. </div><div class="ttdef"><b>Definition:</b> <a href="CFLAlias_8cpp_source.html#l00175">CFLAlias.cpp:175</a></div></div>
|
|
802
802
|
<div class="ttc" id="classSVF_1_1CFGNormalizer_html"><div class="ttname"><a href="classSVF_1_1CFGNormalizer.html">SVF::CFGNormalizer</a></div><div class="ttdef"><b>Definition:</b> <a href="CFGNormalizer_8h_source.html#l00047">CFGNormalizer.h:47</a></div></div>
|
|
803
|
-
<div class="ttc" id="classSVF_1_1Options_html_a87b63f1f8f4f65cdf6647f9f056ffc53"><div class="ttname"><a href="classSVF_1_1Options.html#a87b63f1f8f4f65cdf6647f9f056ffc53">SVF::Options::CFLGraph</a></div><div class="ttdeci">static const llvm::cl::opt< std::string > CFLGraph</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#
|
|
804
|
-
<div class="ttc" id="classSVF_1_1Options_html_a0beb2da0f9ab691c0b7729bb42f8354c"><div class="ttname"><a href="classSVF_1_1Options.html#a0beb2da0f9ab691c0b7729bb42f8354c">SVF::Options::PrintCFL</a></div><div class="ttdeci">static const llvm::cl::opt< bool > PrintCFL</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#
|
|
803
|
+
<div class="ttc" id="classSVF_1_1Options_html_a87b63f1f8f4f65cdf6647f9f056ffc53"><div class="ttname"><a href="classSVF_1_1Options.html#a87b63f1f8f4f65cdf6647f9f056ffc53">SVF::Options::CFLGraph</a></div><div class="ttdeci">static const llvm::cl::opt< std::string > CFLGraph</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00253">Options.h:253</a></div></div>
|
|
804
|
+
<div class="ttc" id="classSVF_1_1Options_html_a0beb2da0f9ab691c0b7729bb42f8354c"><div class="ttname"><a href="classSVF_1_1Options.html#a0beb2da0f9ab691c0b7729bb42f8354c">SVF::Options::PrintCFL</a></div><div class="ttdeci">static const llvm::cl::opt< bool > PrintCFL</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00254">Options.h:254</a></div></div>
|
|
805
805
|
<div class="ttc" id="classSVF_1_1CFLGraphBuilder_html_a6c9fa25204550dc5bea1cae52a61472b"><div class="ttname"><a href="classSVF_1_1CFLGraphBuilder.html#a6c9fa25204550dc5bea1cae52a61472b">SVF::CFLGraphBuilder::buildFromDot</a></div><div class="ttdeci">CFLGraph * buildFromDot(std::string filename, GrammarBase *grammar)</div><div class="ttdoc">Build graph from Dot. </div><div class="ttdef"><b>Definition:</b> <a href="CFLGraphBuilder_8cpp_source.html#l00059">CFLGraphBuilder.cpp:59</a></div></div>
|
|
806
806
|
<div class="ttc" id="classSVF_1_1CFLAlias_html_abd4d8eb59209a1f1cedebcf41117914b"><div class="ttname"><a href="classSVF_1_1CFLAlias.html#abd4d8eb59209a1f1cedebcf41117914b">SVF::CFLAlias::graph</a></div><div class="ttdeci">CFLGraph * graph</div><div class="ttdef"><b>Definition:</b> <a href="CFLAlias_8h_source.html#l00142">CFLAlias.h:142</a></div></div>
|
|
807
807
|
<div class="ttc" id="classSVF_1_1GrammarBase_html"><div class="ttname"><a href="classSVF_1_1GrammarBase.html">SVF::GrammarBase</a></div><div class="ttdef"><b>Definition:</b> <a href="CFLGrammar_8h_source.html#l00036">CFLGrammar.h:36</a></div></div>
|
|
808
|
-
<div class="ttc" id="classSVF_1_1Options_html_aa929e2ae2c0a78181c3a1311bfe73596"><div class="ttname"><a href="classSVF_1_1Options.html#aa929e2ae2c0a78181c3a1311bfe73596">SVF::Options::GrammarFilename</a></div><div class="ttdeci">static const llvm::cl::opt< std::string > GrammarFilename</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#
|
|
808
|
+
<div class="ttc" id="classSVF_1_1Options_html_aa929e2ae2c0a78181c3a1311bfe73596"><div class="ttname"><a href="classSVF_1_1Options.html#aa929e2ae2c0a78181c3a1311bfe73596">SVF::Options::GrammarFilename</a></div><div class="ttdeci">static const llvm::cl::opt< std::string > GrammarFilename</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00252">Options.h:252</a></div></div>
|
|
809
809
|
<div class="ttc" id="classSVF_1_1CFLAlias_html_a0bf4ce7e4fb3d1d95608c06420cc65dc"><div class="ttname"><a href="classSVF_1_1CFLAlias.html#a0bf4ce7e4fb3d1d95608c06420cc65dc">SVF::CFLAlias::svfir</a></div><div class="ttdeci">SVFIR * svfir</div><div class="ttdef"><b>Definition:</b> <a href="CFLAlias_8h_source.html#l00141">CFLAlias.h:141</a></div></div>
|
|
810
810
|
<div class="ttc" id="classSVF_1_1CFLSolver_html_a2ee3436c26ebdb2aaf790c25b1d8b5a6"><div class="ttname"><a href="classSVF_1_1CFLSolver.html#a2ee3436c26ebdb2aaf790c25b1d8b5a6">SVF::CFLSolver::solve</a></div><div class="ttdeci">void solve()</div><div class="ttdoc">Start solving. </div><div class="ttdef"><b>Definition:</b> <a href="CFLSolver_8cpp_source.html#l00034">CFLSolver.cpp:34</a></div></div>
|
|
811
811
|
<div class="ttc" id="classSVF_1_1SVFIR_html_a2d2131128ceb3362b5dc89317cfd88a0"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a2d2131128ceb3362b5dc89317cfd88a0">SVF::SVFIR::getIndirectCallsites</a></div><div class="ttdeci">const CallSiteToFunPtrMap & getIndirectCallsites() const</div><div class="ttdoc">Add/get indirect callsites. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00299">SVFIR.h:299</a></div></div>
|
|
@@ -372,7 +372,7 @@ template<class N , class E > </div>
|
|
|
372
372
|
<p>Build graph from Dot. </p>
|
|
373
373
|
|
|
374
374
|
<p class="definition">Definition at line <a class="el" href="CFLGraphBuilder_8cpp_source.html#l00059">59</a> of file <a class="el" href="CFLGraphBuilder_8cpp_source.html">CFLGraphBuilder.cpp</a>.</p>
|
|
375
|
-
<div class="fragment"><div class="line"><a name="l00060"></a><span class="lineno"> 60</span> {</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  CFLGraph *cflGraph = <span class="keyword">new</span> CFLGraph(grammar->getStartKind());</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a91f1f0e8abc8d781eaf8b1a4f025c18e">externMap</a> = <span class="keyword">true</span>;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  <span class="keywordflow">for</span>(<span class="keyword">auto</span> pairV : grammar->getTerminals())</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  {</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1CFLGraphBuilder.html#a7117dbeceeef7a9fcaeee0a84a171590">label2KindMap</a>.find(pairV.first) == <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a7117dbeceeef7a9fcaeee0a84a171590">label2KindMap</a>.end())</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  {</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a7117dbeceeef7a9fcaeee0a84a171590">label2KindMap</a>.insert(pairV);</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  }</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1CFLGraphBuilder.html#a461ff21d73f60cf96a3e36672d4c6a6c">kind2LabelMap</a>.find(pairV.second) == <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a461ff21d73f60cf96a3e36672d4c6a6c">kind2LabelMap</a>.end())</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  {</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a461ff21d73f60cf96a3e36672d4c6a6c">kind2LabelMap</a>.insert(make_pair(pairV.second, pairV.first));</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  }</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  }</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span> </div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  <span class="keywordflow">for</span>(<span class="keyword">auto</span> pairV : grammar->getNonterminals())</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  {</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1CFLGraphBuilder.html#a7117dbeceeef7a9fcaeee0a84a171590">label2KindMap</a>.find(pairV.first) == <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a7117dbeceeef7a9fcaeee0a84a171590">label2KindMap</a>.end())</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  {</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a7117dbeceeef7a9fcaeee0a84a171590">label2KindMap</a>.insert(pairV);</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  }</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1CFLGraphBuilder.html#a461ff21d73f60cf96a3e36672d4c6a6c">kind2LabelMap</a>.find(pairV.second) == <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a461ff21d73f60cf96a3e36672d4c6a6c">kind2LabelMap</a>.end())</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  {</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a461ff21d73f60cf96a3e36672d4c6a6c">kind2LabelMap</a>.insert(make_pair(pairV.second, pairV.first));</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  }</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  }</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span> </div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  std::cout << <span class="stringliteral">"Building CFL Graph from dot file: "</span> << fileName << <span class="stringliteral">"..\n"</span>;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> lineString;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  std::ifstream inputFile(fileName);</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span> </div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  std::regex reg(<span class="stringliteral">"Node(\\w+)\\s*->\\s*Node(\\w+)\\s*\\[.*label=(.*)\\]"</span>);</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span> </div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  std::cout << std::boolalpha;</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> lineNum = 0 ;</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  <a class="code" href="classSVF_1_1CFLGraphBuilder.html#aad408d6ecb776fd763c9b9221a1bed18">current</a> = <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a7117dbeceeef7a9fcaeee0a84a171590">label2KindMap</a>.size();</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span> </div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  <span class="keywordflow">while</span> (getline(inputFile, lineString))</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  {</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  lineNum += 1;</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  std::smatch matches;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  <span class="keywordflow">if</span> (std::regex_search(lineString, matches, reg))</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  {</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  CFLNode *src, *dst;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  <span class="keywordflow">if</span> (cflGraph->hasGNode(std::stoul(matches.str(1), <span class="keyword">nullptr</span>, 16))==<span class="keyword">false</span>)</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  {</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  src = <span class="keyword">new</span> CFLNode(std::stoul(matches.str(1), <span class="keyword">nullptr</span>, 16));</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  cflGraph->addCFLNode(src->getId(), src);</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  }</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  {</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  src = cflGraph->getGNode(std::stoul(matches.str(1), <span class="keyword">nullptr</span>, 16));</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  }</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  <span class="keywordflow">if</span> (cflGraph->hasGNode(std::stoul(matches.str(2), <span class="keyword">nullptr</span>, 16))==<span class="keyword">false</span>)</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  {</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  dst = <span class="keyword">new</span> CFLNode(std::stoul(matches.str(2), <span class="keyword">nullptr</span>, 16));</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  cflGraph->addCFLNode(dst->getId(), dst);</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  }</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  {</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  dst = cflGraph->getGNode(std::stoul(matches.str(2), <span class="keyword">nullptr</span>, 16));</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  }</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  <span class="keywordflow">if</span> (externMap == <span class="keyword">false</span>)</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  {</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1CFLGraphBuilder.html#a7117dbeceeef7a9fcaeee0a84a171590">label2KindMap</a>.find(matches.str(3)) != <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a7117dbeceeef7a9fcaeee0a84a171590">label2KindMap</a>.end())</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  {</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  cflGraph->addCFLEdge(src, dst, <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a7117dbeceeef7a9fcaeee0a84a171590">label2KindMap</a>[matches.str(3)]);</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  }</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  {</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a7117dbeceeef7a9fcaeee0a84a171590">label2KindMap</a>.insert({matches.str(3), <a class="code" href="classSVF_1_1CFLGraphBuilder.html#aad408d6ecb776fd763c9b9221a1bed18">current</a>++});</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  cflGraph->addCFLEdge(src, dst, <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a7117dbeceeef7a9fcaeee0a84a171590">label2KindMap</a>[matches.str(3)]);</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  }</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  }</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  {</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1CFLGraphBuilder.html#a7117dbeceeef7a9fcaeee0a84a171590">label2KindMap</a>.find(matches.str(3)) != <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a7117dbeceeef7a9fcaeee0a84a171590">label2KindMap</a>.end())</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  {</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  cflGraph->addCFLEdge(src, dst, <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a7117dbeceeef7a9fcaeee0a84a171590">label2KindMap</a>[matches.str(3)]);</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  }</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  {</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1Options.html#a79dff5235e82e1313fa4b053f866f357">Options::FlexSymMap</a> == <span class="keyword">true</span>)</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  {</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a7117dbeceeef7a9fcaeee0a84a171590">label2KindMap</a>.insert({matches.str(3), <a class="code" href="classSVF_1_1CFLGraphBuilder.html#aad408d6ecb776fd763c9b9221a1bed18">current</a>++});</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  cflGraph->addCFLEdge(src, dst, <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a7117dbeceeef7a9fcaeee0a84a171590">label2KindMap</a>[matches.str(3)]);</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  }</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  {</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> msg = <span class="stringliteral">"In line "</span> + std::to_string(lineNum) + <span class="stringliteral">" sym can not find in grammar, please correct the input dot or set --flexsymmap."</span>;</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#a5d4bb92f5df30417f414397f8e58cf01">SVFUtil::errMsg</a>(msg);</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  std::cout << msg;</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  abort();</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  }</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  }</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  }</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  }</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  }</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  inputFile.close();</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  <span class="keywordflow">return</span> cflGraph;</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span> }</div><div class="ttc" id="classSVF_1_1Options_html_a79dff5235e82e1313fa4b053f866f357"><div class="ttname"><a href="classSVF_1_1Options.html#a79dff5235e82e1313fa4b053f866f357">SVF::Options::FlexSymMap</a></div><div class="ttdeci">static const llvm::cl::opt< bool > FlexSymMap</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00254">Options.h:254</a></div></div>
|
|
375
|
+
<div class="fragment"><div class="line"><a name="l00060"></a><span class="lineno"> 60</span> {</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  CFLGraph *cflGraph = <span class="keyword">new</span> CFLGraph(grammar->getStartKind());</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a91f1f0e8abc8d781eaf8b1a4f025c18e">externMap</a> = <span class="keyword">true</span>;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  <span class="keywordflow">for</span>(<span class="keyword">auto</span> pairV : grammar->getTerminals())</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  {</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1CFLGraphBuilder.html#a7117dbeceeef7a9fcaeee0a84a171590">label2KindMap</a>.find(pairV.first) == <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a7117dbeceeef7a9fcaeee0a84a171590">label2KindMap</a>.end())</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  {</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a7117dbeceeef7a9fcaeee0a84a171590">label2KindMap</a>.insert(pairV);</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  }</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1CFLGraphBuilder.html#a461ff21d73f60cf96a3e36672d4c6a6c">kind2LabelMap</a>.find(pairV.second) == <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a461ff21d73f60cf96a3e36672d4c6a6c">kind2LabelMap</a>.end())</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  {</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a461ff21d73f60cf96a3e36672d4c6a6c">kind2LabelMap</a>.insert(make_pair(pairV.second, pairV.first));</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  }</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  }</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span> </div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  <span class="keywordflow">for</span>(<span class="keyword">auto</span> pairV : grammar->getNonterminals())</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  {</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1CFLGraphBuilder.html#a7117dbeceeef7a9fcaeee0a84a171590">label2KindMap</a>.find(pairV.first) == <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a7117dbeceeef7a9fcaeee0a84a171590">label2KindMap</a>.end())</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  {</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a7117dbeceeef7a9fcaeee0a84a171590">label2KindMap</a>.insert(pairV);</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  }</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1CFLGraphBuilder.html#a461ff21d73f60cf96a3e36672d4c6a6c">kind2LabelMap</a>.find(pairV.second) == <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a461ff21d73f60cf96a3e36672d4c6a6c">kind2LabelMap</a>.end())</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  {</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a461ff21d73f60cf96a3e36672d4c6a6c">kind2LabelMap</a>.insert(make_pair(pairV.second, pairV.first));</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  }</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  }</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span> </div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  std::cout << <span class="stringliteral">"Building CFL Graph from dot file: "</span> << fileName << <span class="stringliteral">"..\n"</span>;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> lineString;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  std::ifstream inputFile(fileName);</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span> </div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  std::regex reg(<span class="stringliteral">"Node(\\w+)\\s*->\\s*Node(\\w+)\\s*\\[.*label=(.*)\\]"</span>);</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span> </div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  std::cout << std::boolalpha;</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> lineNum = 0 ;</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  <a class="code" href="classSVF_1_1CFLGraphBuilder.html#aad408d6ecb776fd763c9b9221a1bed18">current</a> = <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a7117dbeceeef7a9fcaeee0a84a171590">label2KindMap</a>.size();</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span> </div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  <span class="keywordflow">while</span> (getline(inputFile, lineString))</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  {</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  lineNum += 1;</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  std::smatch matches;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  <span class="keywordflow">if</span> (std::regex_search(lineString, matches, reg))</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  {</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  CFLNode *src, *dst;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  <span class="keywordflow">if</span> (cflGraph->hasGNode(std::stoul(matches.str(1), <span class="keyword">nullptr</span>, 16))==<span class="keyword">false</span>)</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  {</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  src = <span class="keyword">new</span> CFLNode(std::stoul(matches.str(1), <span class="keyword">nullptr</span>, 16));</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  cflGraph->addCFLNode(src->getId(), src);</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  }</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  {</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  src = cflGraph->getGNode(std::stoul(matches.str(1), <span class="keyword">nullptr</span>, 16));</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  }</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  <span class="keywordflow">if</span> (cflGraph->hasGNode(std::stoul(matches.str(2), <span class="keyword">nullptr</span>, 16))==<span class="keyword">false</span>)</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  {</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  dst = <span class="keyword">new</span> CFLNode(std::stoul(matches.str(2), <span class="keyword">nullptr</span>, 16));</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  cflGraph->addCFLNode(dst->getId(), dst);</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  }</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  {</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  dst = cflGraph->getGNode(std::stoul(matches.str(2), <span class="keyword">nullptr</span>, 16));</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  }</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  <span class="keywordflow">if</span> (externMap == <span class="keyword">false</span>)</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  {</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1CFLGraphBuilder.html#a7117dbeceeef7a9fcaeee0a84a171590">label2KindMap</a>.find(matches.str(3)) != <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a7117dbeceeef7a9fcaeee0a84a171590">label2KindMap</a>.end())</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  {</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  cflGraph->addCFLEdge(src, dst, <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a7117dbeceeef7a9fcaeee0a84a171590">label2KindMap</a>[matches.str(3)]);</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  }</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  {</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a7117dbeceeef7a9fcaeee0a84a171590">label2KindMap</a>.insert({matches.str(3), <a class="code" href="classSVF_1_1CFLGraphBuilder.html#aad408d6ecb776fd763c9b9221a1bed18">current</a>++});</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  cflGraph->addCFLEdge(src, dst, <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a7117dbeceeef7a9fcaeee0a84a171590">label2KindMap</a>[matches.str(3)]);</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  }</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  }</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  {</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1CFLGraphBuilder.html#a7117dbeceeef7a9fcaeee0a84a171590">label2KindMap</a>.find(matches.str(3)) != <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a7117dbeceeef7a9fcaeee0a84a171590">label2KindMap</a>.end())</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  {</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  cflGraph->addCFLEdge(src, dst, <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a7117dbeceeef7a9fcaeee0a84a171590">label2KindMap</a>[matches.str(3)]);</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  }</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  {</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1Options.html#a79dff5235e82e1313fa4b053f866f357">Options::FlexSymMap</a> == <span class="keyword">true</span>)</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  {</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a7117dbeceeef7a9fcaeee0a84a171590">label2KindMap</a>.insert({matches.str(3), <a class="code" href="classSVF_1_1CFLGraphBuilder.html#aad408d6ecb776fd763c9b9221a1bed18">current</a>++});</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  cflGraph->addCFLEdge(src, dst, <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a7117dbeceeef7a9fcaeee0a84a171590">label2KindMap</a>[matches.str(3)]);</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  }</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  {</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> msg = <span class="stringliteral">"In line "</span> + std::to_string(lineNum) + <span class="stringliteral">" sym can not find in grammar, please correct the input dot or set --flexsymmap."</span>;</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#a5d4bb92f5df30417f414397f8e58cf01">SVFUtil::errMsg</a>(msg);</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  std::cout << msg;</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  abort();</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  }</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  }</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  }</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  }</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  }</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  inputFile.close();</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  <span class="keywordflow">return</span> cflGraph;</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span> }</div><div class="ttc" id="classSVF_1_1Options_html_a79dff5235e82e1313fa4b053f866f357"><div class="ttname"><a href="classSVF_1_1Options.html#a79dff5235e82e1313fa4b053f866f357">SVF::Options::FlexSymMap</a></div><div class="ttdeci">static const llvm::cl::opt< bool > FlexSymMap</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00255">Options.h:255</a></div></div>
|
|
376
376
|
<div class="ttc" id="namespaceSVF_html_ad42bff8d0a7d60a085aa32d10f4955af"><div class="ttname"><a href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">SVF::u32_t</a></div><div class="ttdeci">unsigned u32_t</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00085">SVFBasicTypes.h:85</a></div></div>
|
|
377
377
|
<div class="ttc" id="classSVF_1_1CFLGraphBuilder_html_a7117dbeceeef7a9fcaeee0a84a171590"><div class="ttname"><a href="classSVF_1_1CFLGraphBuilder.html#a7117dbeceeef7a9fcaeee0a84a171590">SVF::CFLGraphBuilder::label2KindMap</a></div><div class="ttdeci">Map< std::string, Kind > label2KindMap</div><div class="ttdef"><b>Definition:</b> <a href="CFLGraphBuilder_8h_source.html#l00045">CFLGraphBuilder.h:45</a></div></div>
|
|
378
378
|
<div class="ttc" id="classSVF_1_1CFLGraphBuilder_html_aad408d6ecb776fd763c9b9221a1bed18"><div class="ttname"><a href="classSVF_1_1CFLGraphBuilder.html#aad408d6ecb776fd763c9b9221a1bed18">SVF::CFLGraphBuilder::current</a></div><div class="ttdeci">Kind current</div><div class="ttdef"><b>Definition:</b> <a href="CFLGraphBuilder_8h_source.html#l00049">CFLGraphBuilder.h:49</a></div></div>
|
|
@@ -298,7 +298,7 @@ Public Member Functions</h2></td></tr>
|
|
|
298
298
|
<div class="ttc" id="classSVF_1_1ICFG_html_a5f2c0aaba07d6fdd63058da0fb60ca8b"><div class="ttname"><a href="classSVF_1_1ICFG.html#a5f2c0aaba07d6fdd63058da0fb60ca8b">SVF::ICFG::getICFGNode</a></div><div class="ttdeci">ICFGNode * getICFGNode(NodeID id) const</div><div class="ttdoc">Get a ICFG node. </div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00087">ICFG.h:87</a></div></div>
|
|
299
299
|
<div class="ttc" id="SVFBasicTypes_8h_html_a7a295e02c56a93cf9206dd9d3b18dd17"><div class="ttname"><a href="SVFBasicTypes_8h.html#a7a295e02c56a93cf9206dd9d3b18dd17">DPAGBuild</a></div><div class="ttdeci">#define DPAGBuild</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00162">SVFBasicTypes.h:162</a></div></div>
|
|
300
300
|
<div class="ttc" id="classSVF_1_1SVFLoop_html_a03c6de676a1d8f99687ea973b9b25d58"><div class="ttname"><a href="classSVF_1_1SVFLoop.html#a03c6de676a1d8f99687ea973b9b25d58">SVF::SVFLoop::addBackICFGEdge</a></div><div class="ttdeci">void addBackICFGEdge(const ICFGEdge *edge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFLoop_8h_source.html#l00121">SVFLoop.h:121</a></div></div>
|
|
301
|
-
<div class="ttc" id="classSVF_1_1Options_html_ab7161ca7a809792af82e5aabdfcc3bfb"><div class="ttname"><a href="classSVF_1_1Options.html#ab7161ca7a809792af82e5aabdfcc3bfb">SVF::Options::LoopBound</a></div><div class="ttdeci">static const llvm::cl::opt< unsigned > LoopBound</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#
|
|
301
|
+
<div class="ttc" id="classSVF_1_1Options_html_ab7161ca7a809792af82e5aabdfcc3bfb"><div class="ttname"><a href="classSVF_1_1Options.html#ab7161ca7a809792af82e5aabdfcc3bfb">SVF::Options::LoopBound</a></div><div class="ttdeci">static const llvm::cl::opt< unsigned > LoopBound</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00259">Options.h:259</a></div></div>
|
|
302
302
|
<div class="ttc" id="SVFBasicTypes_8h_html_a173ce1b9b505fdadf5613b663749d3b0"><div class="ttname"><a href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a></div><div class="ttdeci">#define DBOUT(TYPE, X)</div><div class="ttdoc">LLVM debug macros, define type of your DEBUG model of each pass. </div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00155">SVFBasicTypes.h:155</a></div></div>
|
|
303
303
|
</div><!-- fragment -->
|
|
304
304
|
</div>
|
|
@@ -185,9 +185,10 @@ $(function() {
|
|
|
185
185
|
<tr><td class="entry"><a class="el" href="classSVF_1_1Options.html#a3c3d704c209c4e6eed1a771caf8214ce">UserInputQuery</a></td><td class="entry"><a class="el" href="classSVF_1_1Options.html">SVF::Options</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
|
|
186
186
|
<tr class="even"><td class="entry"><a class="el" href="classSVF_1_1Options.html#aec491143ded97649da1ed61b8fda796c">ValidateTests</a></td><td class="entry"><a class="el" href="classSVF_1_1Options.html">SVF::Options</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
|
|
187
187
|
<tr><td class="entry"><a class="el" href="classSVF_1_1Options.html#adba18ce8f1496fe2e57a934f11c2dfd9">VersioningThreads</a></td><td class="entry"><a class="el" href="classSVF_1_1Options.html">SVF::Options</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
|
|
188
|
-
<tr class="even"><td class="entry"><a class="el" href="classSVF_1_1Options.html#
|
|
189
|
-
<tr><td class="entry"><a class="el" href="classSVF_1_1Options.html#
|
|
190
|
-
<tr class="even"><td class="entry"><a class="el" href="classSVF_1_1Options.html#
|
|
188
|
+
<tr class="even"><td class="entry"><a class="el" href="classSVF_1_1Options.html#a2a9fe90fae25f3de780f91b7e296b49a">VtableInSVFIR</a></td><td class="entry"><a class="el" href="classSVF_1_1Options.html">SVF::Options</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
|
|
189
|
+
<tr><td class="entry"><a class="el" href="classSVF_1_1Options.html#a0865038c4738fcc8f47106faad03d98a">WPANum</a></td><td class="entry"><a class="el" href="classSVF_1_1Options.html">SVF::Options</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
|
|
190
|
+
<tr class="even"><td class="entry"><a class="el" href="classSVF_1_1Options.html#a4c7eb57066c80c62ef394d644833214a">WriteAnder</a></td><td class="entry"><a class="el" href="classSVF_1_1Options.html">SVF::Options</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
|
|
191
|
+
<tr><td class="entry"><a class="el" href="classSVF_1_1Options.html#a4a9e039ba28cc7cdadf9d9d4fa64ab11">WriteSVFG</a></td><td class="entry"><a class="el" href="classSVF_1_1Options.html">SVF::Options</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
|
|
191
192
|
</table></div><!-- contents -->
|
|
192
193
|
<!-- start footer part -->
|
|
193
194
|
<hr class="footer"/><address class="footer"><small>
|
|
@@ -307,6 +307,8 @@ Static Public Attributes</h2></td></tr>
|
|
|
307
307
|
<tr class="separator:acf7262c0b0bd91e6dab56a631be51206"><td class="memSeparator" colspan="2"> </td></tr>
|
|
308
308
|
<tr class="memitem:a69579e2f37962afdbb292a36782511ed"><td class="memItemLeft" align="right" valign="top">static const llvm::cl::opt< bool > </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1Options.html#a69579e2f37962afdbb292a36782511ed">MergePWC</a></td></tr>
|
|
309
309
|
<tr class="separator:a69579e2f37962afdbb292a36782511ed"><td class="memSeparator" colspan="2"> </td></tr>
|
|
310
|
+
<tr class="memitem:a2a9fe90fae25f3de780f91b7e296b49a"><td class="memItemLeft" align="right" valign="top">static const llvm::cl::opt< bool > </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1Options.html#a2a9fe90fae25f3de780f91b7e296b49a">VtableInSVFIR</a></td></tr>
|
|
311
|
+
<tr class="separator:a2a9fe90fae25f3de780f91b7e296b49a"><td class="memSeparator" colspan="2"> </td></tr>
|
|
310
312
|
<tr class="memitem:a30cbb0b3633c769c92f4625680ec17e3"><td class="memItemLeft" align="right" valign="top">static const llvm::cl::opt< bool > </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1Options.html#a30cbb0b3633c769c92f4625680ec17e3">AnderSVFG</a></td></tr>
|
|
311
313
|
<tr class="separator:a30cbb0b3633c769c92f4625680ec17e3"><td class="memSeparator" colspan="2"> </td></tr>
|
|
312
314
|
<tr class="memitem:a5fb7733fd66ecad30eea8ced3839e590"><td class="memItemLeft" align="right" valign="top">static const llvm::cl::opt< bool > </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1Options.html#a5fb7733fd66ecad30eea8ced3839e590">SABERFULLSVFG</a></td></tr>
|
|
@@ -408,7 +410,7 @@ Static Public Attributes</h2></td></tr>
|
|
|
408
410
|
</table>
|
|
409
411
|
</div><div class="memdoc">
|
|
410
412
|
|
|
411
|
-
<p class="definition">Definition at line <a class="el" href="Options_8h_source.html#
|
|
413
|
+
<p class="definition">Definition at line <a class="el" href="Options_8h_source.html#l00246">246</a> of file <a class="el" href="Options_8h_source.html">Options.h</a>.</p>
|
|
412
414
|
|
|
413
415
|
</div>
|
|
414
416
|
</div>
|
|
@@ -480,7 +482,7 @@ Static Public Attributes</h2></td></tr>
|
|
|
480
482
|
</table>
|
|
481
483
|
</div><div class="memdoc">
|
|
482
484
|
|
|
483
|
-
<p class="definition">Definition at line <a class="el" href="Options_8h_source.html#
|
|
485
|
+
<p class="definition">Definition at line <a class="el" href="Options_8h_source.html#l00242">242</a> of file <a class="el" href="Options_8h_source.html">Options.h</a>.</p>
|
|
484
486
|
|
|
485
487
|
</div>
|
|
486
488
|
</div>
|
|
@@ -602,7 +604,7 @@ Static Public Attributes</h2></td></tr>
|
|
|
602
604
|
</table>
|
|
603
605
|
</div><div class="memdoc">
|
|
604
606
|
|
|
605
|
-
<p class="definition">Definition at line <a class="el" href="Options_8h_source.html#
|
|
607
|
+
<p class="definition">Definition at line <a class="el" href="Options_8h_source.html#l00253">253</a> of file <a class="el" href="Options_8h_source.html">Options.h</a>.</p>
|
|
606
608
|
|
|
607
609
|
</div>
|
|
608
610
|
</div>
|
|
@@ -1233,7 +1235,7 @@ Static Public Attributes</h2></td></tr>
|
|
|
1233
1235
|
</table>
|
|
1234
1236
|
</div><div class="memdoc">
|
|
1235
1237
|
|
|
1236
|
-
<p class="definition">Definition at line <a class="el" href="Options_8h_source.html#
|
|
1238
|
+
<p class="definition">Definition at line <a class="el" href="Options_8h_source.html#l00255">255</a> of file <a class="el" href="Options_8h_source.html">Options.h</a>.</p>
|
|
1237
1239
|
|
|
1238
1240
|
</div>
|
|
1239
1241
|
</div>
|
|
@@ -1355,7 +1357,7 @@ Static Public Attributes</h2></td></tr>
|
|
|
1355
1357
|
</table>
|
|
1356
1358
|
</div><div class="memdoc">
|
|
1357
1359
|
|
|
1358
|
-
<p class="definition">Definition at line <a class="el" href="Options_8h_source.html#
|
|
1360
|
+
<p class="definition">Definition at line <a class="el" href="Options_8h_source.html#l00252">252</a> of file <a class="el" href="Options_8h_source.html">Options.h</a>.</p>
|
|
1359
1361
|
|
|
1360
1362
|
</div>
|
|
1361
1363
|
</div>
|
|
@@ -1643,7 +1645,7 @@ Static Public Attributes</h2></td></tr>
|
|
|
1643
1645
|
</table>
|
|
1644
1646
|
</div><div class="memdoc">
|
|
1645
1647
|
|
|
1646
|
-
<p class="definition">Definition at line <a class="el" href="Options_8h_source.html#
|
|
1648
|
+
<p class="definition">Definition at line <a class="el" href="Options_8h_source.html#l00258">258</a> of file <a class="el" href="Options_8h_source.html">Options.h</a>.</p>
|
|
1647
1649
|
|
|
1648
1650
|
</div>
|
|
1649
1651
|
</div>
|
|
@@ -1667,7 +1669,7 @@ Static Public Attributes</h2></td></tr>
|
|
|
1667
1669
|
</table>
|
|
1668
1670
|
</div><div class="memdoc">
|
|
1669
1671
|
|
|
1670
|
-
<p class="definition">Definition at line <a class="el" href="Options_8h_source.html#
|
|
1672
|
+
<p class="definition">Definition at line <a class="el" href="Options_8h_source.html#l00259">259</a> of file <a class="el" href="Options_8h_source.html">Options.h</a>.</p>
|
|
1671
1673
|
|
|
1672
1674
|
</div>
|
|
1673
1675
|
</div>
|
|
@@ -2103,7 +2105,7 @@ Static Public Attributes</h2></td></tr>
|
|
|
2103
2105
|
</table>
|
|
2104
2106
|
</div><div class="memdoc">
|
|
2105
2107
|
|
|
2106
|
-
<p class="definition">Definition at line <a class="el" href="Options_8h_source.html#
|
|
2108
|
+
<p class="definition">Definition at line <a class="el" href="Options_8h_source.html#l00245">245</a> of file <a class="el" href="Options_8h_source.html">Options.h</a>.</p>
|
|
2107
2109
|
|
|
2108
2110
|
</div>
|
|
2109
2111
|
</div>
|
|
@@ -2178,7 +2180,7 @@ Static Public Attributes</h2></td></tr>
|
|
|
2178
2180
|
</table>
|
|
2179
2181
|
</div><div class="memdoc">
|
|
2180
2182
|
|
|
2181
|
-
<p class="definition">Definition at line <a class="el" href="Options_8h_source.html#
|
|
2183
|
+
<p class="definition">Definition at line <a class="el" href="Options_8h_source.html#l00244">244</a> of file <a class="el" href="Options_8h_source.html">Options.h</a>.</p>
|
|
2182
2184
|
|
|
2183
2185
|
</div>
|
|
2184
2186
|
</div>
|
|
@@ -2202,7 +2204,7 @@ Static Public Attributes</h2></td></tr>
|
|
|
2202
2204
|
</table>
|
|
2203
2205
|
</div><div class="memdoc">
|
|
2204
2206
|
|
|
2205
|
-
<p class="definition">Definition at line <a class="el" href="Options_8h_source.html#
|
|
2207
|
+
<p class="definition">Definition at line <a class="el" href="Options_8h_source.html#l00254">254</a> of file <a class="el" href="Options_8h_source.html">Options.h</a>.</p>
|
|
2206
2208
|
|
|
2207
2209
|
</div>
|
|
2208
2210
|
</div>
|
|
@@ -2690,7 +2692,7 @@ Static Public Attributes</h2></td></tr>
|
|
|
2690
2692
|
</table>
|
|
2691
2693
|
</div><div class="memdoc">
|
|
2692
2694
|
|
|
2693
|
-
<p class="definition">Definition at line <a class="el" href="Options_8h_source.html#
|
|
2695
|
+
<p class="definition">Definition at line <a class="el" href="Options_8h_source.html#l00243">243</a> of file <a class="el" href="Options_8h_source.html">Options.h</a>.</p>
|
|
2694
2696
|
|
|
2695
2697
|
</div>
|
|
2696
2698
|
</div>
|
|
@@ -2738,7 +2740,7 @@ Static Public Attributes</h2></td></tr>
|
|
|
2738
2740
|
</table>
|
|
2739
2741
|
</div><div class="memdoc">
|
|
2740
2742
|
|
|
2741
|
-
<p class="definition">Definition at line <a class="el" href="Options_8h_source.html#
|
|
2743
|
+
<p class="definition">Definition at line <a class="el" href="Options_8h_source.html#l00249">249</a> of file <a class="el" href="Options_8h_source.html">Options.h</a>.</p>
|
|
2742
2744
|
|
|
2743
2745
|
</div>
|
|
2744
2746
|
</div>
|
|
@@ -3150,6 +3152,30 @@ Static Public Attributes</h2></td></tr>
|
|
|
3150
3152
|
|
|
3151
3153
|
<p class="definition">Definition at line <a class="el" href="Options_8h_source.html#l00077">77</a> of file <a class="el" href="Options_8h_source.html">Options.h</a>.</p>
|
|
3152
3154
|
|
|
3155
|
+
</div>
|
|
3156
|
+
</div>
|
|
3157
|
+
<a id="a2a9fe90fae25f3de780f91b7e296b49a"></a>
|
|
3158
|
+
<h2 class="memtitle"><span class="permalink"><a href="#a2a9fe90fae25f3de780f91b7e296b49a">◆ </a></span>VtableInSVFIR</h2>
|
|
3159
|
+
|
|
3160
|
+
<div class="memitem">
|
|
3161
|
+
<div class="memproto">
|
|
3162
|
+
<table class="mlabels">
|
|
3163
|
+
<tr>
|
|
3164
|
+
<td class="mlabels-left">
|
|
3165
|
+
<table class="memname">
|
|
3166
|
+
<tr>
|
|
3167
|
+
<td class="memname">const llvm::cl::opt< bool > SVF::Options::VtableInSVFIR</td>
|
|
3168
|
+
</tr>
|
|
3169
|
+
</table>
|
|
3170
|
+
</td>
|
|
3171
|
+
<td class="mlabels-right">
|
|
3172
|
+
<span class="mlabels"><span class="mlabel">static</span></span> </td>
|
|
3173
|
+
</tr>
|
|
3174
|
+
</table>
|
|
3175
|
+
</div><div class="memdoc">
|
|
3176
|
+
|
|
3177
|
+
<p class="definition">Definition at line <a class="el" href="Options_8h_source.html#l00239">239</a> of file <a class="el" href="Options_8h_source.html">Options.h</a>.</p>
|
|
3178
|
+
|
|
3153
3179
|
</div>
|
|
3154
3180
|
</div>
|
|
3155
3181
|
<a id="a0865038c4738fcc8f47106faad03d98a"></a>
|