svf-tools 1.0.574 → 1.0.576
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/AndersenSCD_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/CFLSolver_8h_source.html +4 -4
- package/SVF-doxygen/html/html/CHGBuilder_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/CSC_8h_source.html +1 -1
- package/SVF-doxygen/html/html/ConsG_8h_source.html +3 -3
- package/SVF-doxygen/html/html/ExtAPI_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/GraphReachSolver_8h_source.html +4 -4
- package/SVF-doxygen/html/html/ICFGBuilder_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/LeakChecker_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/LockAnalysis_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/LockAnalysis_8h_source.html +3 -3
- package/SVF-doxygen/html/html/MHP_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/MHP_8h_source.html +3 -3
- package/SVF-doxygen/html/html/MemRegion_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/PCG_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/ProgSlice_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/SVFGOPT_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SaberCondAllocator_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/SaberSVFGBuilder_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/SrcSnkDDA_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/SrcSnkSolver_8h_source.html +4 -4
- package/SVF-doxygen/html/html/TCT_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/TCT_8h_source.html +3 -3
- package/SVF-doxygen/html/html/VersionedFlowSensitive_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/WPASolver_8h_source.html +4 -4
- package/SVF-doxygen/html/html/WorkList_8h_source.html +31 -25
- package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CFLSolver.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1ConstraintGraph.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1ExtAPI.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1FIFOWorkList-members.html +5 -2
- package/SVF-doxygen/html/html/classSVF_1_1FIFOWorkList.html +122 -24
- package/SVF-doxygen/html/html/classSVF_1_1FILOWorkList-members.html +4 -1
- package/SVF-doxygen/html/html/classSVF_1_1FILOWorkList.html +122 -24
- package/SVF-doxygen/html/html/classSVF_1_1ForkJoinAnalysis.html +7 -7
- package/SVF-doxygen/html/html/classSVF_1_1GraphReachSolver.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1List.html +3 -4
- package/SVF-doxygen/html/html/classSVF_1_1LockAnalysis.html +10 -10
- package/SVF-doxygen/html/html/classSVF_1_1MHP.html +9 -9
- package/SVF-doxygen/html/html/classSVF_1_1MRGenerator.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1SaberSVFGBuilder.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SrcSnkDDA.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SrcSnkSolver.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1TCT.html +15 -15
- package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1WPASolver.html +4 -4
- package/SVF-doxygen/html/html/functions_d.html +4 -0
- package/SVF-doxygen/html/html/functions_func_s.html +8 -6
- package/SVF-doxygen/html/html/functions_s.html +11 -9
- package/SVF-doxygen/html/html/functions_type_d.html +2 -0
- package/SVF-doxygen/html/html/functions_vars_d.html +2 -0
- package/SVF-doxygen/html/html/search/all_12.js +1 -1
- package/SVF-doxygen/html/html/search/all_4.js +2 -2
- package/SVF-doxygen/html/html/search/functions_11.js +1 -1
- package/SVF-doxygen/html/html/search/typedefs_3.js +1 -1
- package/SVF-doxygen/html/html/search/variables_4.js +1 -1
- package/SVF-doxygen/html/html/svf-ex_8cpp.html +6 -6
- package/SVF-doxygen/html/html/svf-ex_8cpp_source.html +3 -3
- package/include/Util/WorkList.h +72 -36
- package/lib/Util/ExtAPI.cpp +1 -1
- package/package.json +1 -1
|
@@ -4,7 +4,7 @@ var searchData=
|
|
|
4
4
|
['dandersen',['DAndersen',['../SVFBasicTypes_8h.html#adbfc4364261f019dc6cf33234a5177d2',1,'SVFBasicTypes.h']]],
|
|
5
5
|
['data',['data',['../classSVF_1_1List_1_1ListNode.html#a4a9cb4ae17156d6d80d2357e06231e12',1,'SVF::List::ListNode']]],
|
|
6
6
|
['data_5flist',['data_list',['../classSVF_1_1CFLFIFOWorkList.html#a5a5caa556bf8023b4b0b525179efd1b0',1,'SVF::CFLFIFOWorkList::data_list()'],['../classSVF_1_1FIFOWorkList.html#a270dad3fd1d95418e4af102b64fcc883',1,'SVF::FIFOWorkList::data_list()'],['../classSVF_1_1FILOWorkList.html#aeda28a2200d763279027642c8cf6a4bf',1,'SVF::FILOWorkList::data_list()']]],
|
|
7
|
-
['data_5fset',['data_set',['../classSVF_1_1CFLFIFOWorkList.html#a62ef55a46552652e20f8e3bfc2b72bd0',1,'SVF::CFLFIFOWorkList']]],
|
|
7
|
+
['data_5fset',['data_set',['../classSVF_1_1CFLFIFOWorkList.html#a62ef55a46552652e20f8e3bfc2b72bd0',1,'SVF::CFLFIFOWorkList::data_set()'],['../classSVF_1_1FIFOWorkList.html#a5e9648954a2f6902dc4106cc17a7d1e6',1,'SVF::FIFOWorkList::data_set()'],['../classSVF_1_1FILOWorkList.html#a46092b75425becfe97fdf047206c736b',1,'SVF::FILOWorkList::data_set()']]],
|
|
8
8
|
['datadeque',['DataDeque',['../classSVF_1_1CFLFIFOWorkList.html#aa2ac3edad97017817899d081dc6f1df7',1,'SVF::CFLFIFOWorkList::DataDeque()'],['../classSVF_1_1FIFOWorkList.html#a2907cd4515b2072aae0a88e972e93fc4',1,'SVF::FIFOWorkList::DataDeque()']]],
|
|
9
9
|
['dataflow',['DataFlow',['../classSVF_1_1PTData.html#a74ce29609c51f2be34a0b5b7650a9848acb817cbf655c365c02af3675588f06cc',1,'SVF::PTData']]],
|
|
10
10
|
['dataflowutil_2ecpp',['DataFlowUtil.cpp',['../DataFlowUtil_8cpp.html',1,'']]],
|
|
@@ -12,7 +12,7 @@ var searchData=
|
|
|
12
12
|
['dataiter',['DataIter',['../classSVF_1_1MutableIncDFPTData.html#a1fc4dff28f9044234fdfeede6f4b1cb0',1,'SVF::MutableIncDFPTData']]],
|
|
13
13
|
['datalayout',['DataLayout',['../namespaceSVF.html#a03db82b8a7914367024723dba4d6ca3c',1,'SVF']]],
|
|
14
14
|
['dataop',['DataOp',['../classSVF_1_1PersistentPointsToCache.html#a5a0f1b93f29ce62ad13042ab8435c62c',1,'SVF::PersistentPointsToCache']]],
|
|
15
|
-
['dataset',['DataSet',['../classSVF_1_1CFLFIFOWorkList.html#a0db15ca0ec5a14aee493ccfe54d34d85',1,'SVF::CFLFIFOWorkList::DataSet()'],['../classSVF_1_1List.html#a8f8a9dff1d1213a747f0d7ce8b1802e9',1,'SVF::List::DataSet()']]],
|
|
15
|
+
['dataset',['DataSet',['../classSVF_1_1CFLFIFOWorkList.html#a0db15ca0ec5a14aee493ccfe54d34d85',1,'SVF::CFLFIFOWorkList::DataSet()'],['../classSVF_1_1List.html#a8f8a9dff1d1213a747f0d7ce8b1802e9',1,'SVF::List::DataSet()'],['../classSVF_1_1FIFOWorkList.html#a4803dc3b7f3ab57261261acb20551579',1,'SVF::FIFOWorkList::DataSet()'],['../classSVF_1_1FILOWorkList.html#abe04c596453280fe15cadde868ded798',1,'SVF::FILOWorkList::DataSet()']]],
|
|
16
16
|
['datavector',['DataVector',['../classSVF_1_1FILOWorkList.html#a41d3d71633adc6a1282922b4e4929a7f',1,'SVF::FILOWorkList']]],
|
|
17
17
|
['dbout',['DBOUT',['../SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0',1,'SVFBasicTypes.h']]],
|
|
18
18
|
['dcache',['DCache',['../SVFBasicTypes_8h.html#a500788b9fb425915fa4330d72142aec9',1,'SVFBasicTypes.h']]],
|
|
@@ -115,7 +115,7 @@ var searchData=
|
|
|
115
115
|
['simplify',['simplify',['../classSVF_1_1Z3Expr.html#afb3478316592a395c6d473791b5a0981',1,'SVF::Z3Expr']]],
|
|
116
116
|
['sinksbegin',['sinksBegin',['../classSVF_1_1ProgSlice.html#adf620c97daed49735d21b485c448b4a2',1,'SVF::ProgSlice::sinksBegin()'],['../classSVF_1_1SrcSnkDDA.html#a79833c0cf1916d63e1dd32c2220056dd',1,'SVF::SrcSnkDDA::sinksBegin()']]],
|
|
117
117
|
['sinksend',['sinksEnd',['../classSVF_1_1ProgSlice.html#a27636f096ec825c4d5cb1dca608afb31',1,'SVF::ProgSlice::sinksEnd()'],['../classSVF_1_1SrcSnkDDA.html#aaabc8d3aed17c8a35ef37d878f141412',1,'SVF::SrcSnkDDA::sinksEnd()']]],
|
|
118
|
-
['size',['size',['../classSVF_1_1CondStdSet.html#afa190562e8b85630845617c23fc5a16b',1,'SVF::CondStdSet']]],
|
|
118
|
+
['size',['size',['../classSVF_1_1CondStdSet.html#afa190562e8b85630845617c23fc5a16b',1,'SVF::CondStdSet::size()'],['../classSVF_1_1FIFOWorkList.html#ad0e2c9eeb77c1a48a5d17164e4d72c6e',1,'SVF::FIFOWorkList::size()'],['../classSVF_1_1FILOWorkList.html#aff8bc6547b814b31b02c7f086d06ce05',1,'SVF::FILOWorkList::size()']]],
|
|
119
119
|
['skip_5fmultiline_5fcomment',['skip_multiline_comment',['../cJSON_8cpp.html#a4b9e22afcb0d33932c691b5af9f2560a',1,'cJSON.cpp']]],
|
|
120
120
|
['skip_5foneline_5fcomment',['skip_oneline_comment',['../cJSON_8cpp.html#a98eaeafefb811c738494a26265309a07',1,'cJSON.cpp']]],
|
|
121
121
|
['skip_5futf8_5fbom',['skip_utf8_bom',['../cJSON_8cpp.html#a13b2d9f17c3b80a8878405f2782cd916',1,'cJSON.cpp']]],
|
|
@@ -4,7 +4,7 @@ var searchData=
|
|
|
4
4
|
['dataiter',['DataIter',['../classSVF_1_1MutableIncDFPTData.html#a1fc4dff28f9044234fdfeede6f4b1cb0',1,'SVF::MutableIncDFPTData']]],
|
|
5
5
|
['datalayout',['DataLayout',['../namespaceSVF.html#a03db82b8a7914367024723dba4d6ca3c',1,'SVF']]],
|
|
6
6
|
['dataop',['DataOp',['../classSVF_1_1PersistentPointsToCache.html#a5a0f1b93f29ce62ad13042ab8435c62c',1,'SVF::PersistentPointsToCache']]],
|
|
7
|
-
['dataset',['DataSet',['../classSVF_1_1CFLFIFOWorkList.html#a0db15ca0ec5a14aee493ccfe54d34d85',1,'SVF::CFLFIFOWorkList::DataSet()'],['../classSVF_1_1List.html#a8f8a9dff1d1213a747f0d7ce8b1802e9',1,'SVF::List::DataSet()']]],
|
|
7
|
+
['dataset',['DataSet',['../classSVF_1_1CFLFIFOWorkList.html#a0db15ca0ec5a14aee493ccfe54d34d85',1,'SVF::CFLFIFOWorkList::DataSet()'],['../classSVF_1_1List.html#a8f8a9dff1d1213a747f0d7ce8b1802e9',1,'SVF::List::DataSet()'],['../classSVF_1_1FIFOWorkList.html#a4803dc3b7f3ab57261261acb20551579',1,'SVF::FIFOWorkList::DataSet()'],['../classSVF_1_1FILOWorkList.html#abe04c596453280fe15cadde868ded798',1,'SVF::FILOWorkList::DataSet()']]],
|
|
8
8
|
['datavector',['DataVector',['../classSVF_1_1FILOWorkList.html#a41d3d71633adc6a1282922b4e4929a7f',1,'SVF::FILOWorkList']]],
|
|
9
9
|
['dchedgesetty',['DCHEdgeSetTy',['../classSVF_1_1DCHEdge.html#a2580878ab964494ee5c7840e16ef84b3',1,'SVF::DCHEdge']]],
|
|
10
10
|
['debuginfofinder',['DebugInfoFinder',['../namespaceSVF.html#a5ae98f122c64b0114df2e5861b341321',1,'SVF']]],
|
|
@@ -2,7 +2,7 @@ var searchData=
|
|
|
2
2
|
[
|
|
3
3
|
['data',['data',['../classSVF_1_1List_1_1ListNode.html#a4a9cb4ae17156d6d80d2357e06231e12',1,'SVF::List::ListNode']]],
|
|
4
4
|
['data_5flist',['data_list',['../classSVF_1_1CFLFIFOWorkList.html#a5a5caa556bf8023b4b0b525179efd1b0',1,'SVF::CFLFIFOWorkList::data_list()'],['../classSVF_1_1FIFOWorkList.html#a270dad3fd1d95418e4af102b64fcc883',1,'SVF::FIFOWorkList::data_list()'],['../classSVF_1_1FILOWorkList.html#aeda28a2200d763279027642c8cf6a4bf',1,'SVF::FILOWorkList::data_list()']]],
|
|
5
|
-
['data_5fset',['data_set',['../classSVF_1_1CFLFIFOWorkList.html#a62ef55a46552652e20f8e3bfc2b72bd0',1,'SVF::CFLFIFOWorkList']]],
|
|
5
|
+
['data_5fset',['data_set',['../classSVF_1_1CFLFIFOWorkList.html#a62ef55a46552652e20f8e3bfc2b72bd0',1,'SVF::CFLFIFOWorkList::data_set()'],['../classSVF_1_1FIFOWorkList.html#a5e9648954a2f6902dc4106cc17a7d1e6',1,'SVF::FIFOWorkList::data_set()'],['../classSVF_1_1FILOWorkList.html#a46092b75425becfe97fdf047206c736b',1,'SVF::FILOWorkList::data_set()']]],
|
|
6
6
|
['ddaselected',['DDASelected',['../classSVF_1_1Options.html#a2203f622ab539b3a38488575c9eec33b',1,'SVF::Options']]],
|
|
7
7
|
['ddastat',['ddaStat',['../classSVF_1_1DDAVFSolver.html#ae40c7bad663e0fa07dee4be3d1794ff2',1,'SVF::DDAVFSolver']]],
|
|
8
8
|
['def',['def',['../classSVF_1_1MRVer.html#a3398bb8d3189413c275b62d5cb7a5fc4',1,'SVF::MRVer']]],
|
|
@@ -304,16 +304,16 @@ Functions</h2></td></tr>
|
|
|
304
304
|
<p class="definition">Definition at line <a class="el" href="svf-ex_8cpp_source.html#l00080">80</a> of file <a class="el" href="svf-ex_8cpp_source.html">svf-ex.cpp</a>.</p>
|
|
305
305
|
<div class="fragment"><div class="line"><a name="l00081"></a><span class="lineno"> 81</span> {</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  <a class="code" href="classSVF_1_1ICFGNode.html">ICFGNode</a>* iNode = icfg-><a class="code" href="classSVF_1_1ICFG.html#a5f2c0aaba07d6fdd63058da0fb60ca8b">getICFGNode</a>(inst);</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  <a class="code" href="classSVF_1_1FIFOWorkList.html">FIFOWorkList<const ICFGNode*></a> worklist;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set<const ICFGNode*></a> visited;</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  worklist.<a class="code" href="classSVF_1_1FIFOWorkList.html#a0df409a67428e528321869d201f2a474">push</a>(iNode);</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span> </div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  <span class="keywordflow">while</span> (!worklist.<a class="code" href="classSVF_1_1FIFOWorkList.html#a7056704c224dfb4b57287fe90c004aa8">empty</a>())</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  {</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1ICFGNode.html">ICFGNode</a>* vNode = worklist.<a class="code" href="classSVF_1_1FIFOWorkList.html#a8fa72918fce7e9c0b2dc34b683a797c6">pop</a>();</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1ICFGNode.html#ac16c5a3227a44d3b9f7c3209156d9df2">ICFGNode::const_iterator</a> it = vNode-><a class="code" href="classSVF_1_1GenericNode.html#aa4f103330118c8976bf95e4bf53416eb">OutEdgeBegin</a>(), eit =</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  vNode-><a class="code" href="classSVF_1_1GenericNode.html#a19a3366fd8a58290d0c740c46c3dcb3d">OutEdgeEnd</a>(); it != eit; ++it)</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  {</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  <a class="code" href="classSVF_1_1ICFGEdge.html">ICFGEdge</a>* edge = *it;</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  <a class="code" href="classSVF_1_1ICFGNode.html">ICFGNode</a>* succNode = edge-><a class="code" href="classSVF_1_1GenericEdge.html#aeaa31a2c8479e831b36ce2e2582ceb86">getDstNode</a>();</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  <span class="keywordflow">if</span> (visited.find(succNode) == visited.end())</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  {</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  visited.insert(succNode);</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  worklist.<a class="code" href="classSVF_1_1FIFOWorkList.html#a0df409a67428e528321869d201f2a474">push</a>(succNode);</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  }</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  }</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> }</div><div class="ttc" id="classSVF_1_1ICFGEdge_html"><div class="ttname"><a href="classSVF_1_1ICFGEdge.html">SVF::ICFGEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGEdge_8h_source.html#l00044">ICFGEdge.h:44</a></div></div>
|
|
306
306
|
<div class="ttc" id="classSVF_1_1GenericNode_html_aa4f103330118c8976bf95e4bf53416eb"><div class="ttname"><a href="classSVF_1_1GenericNode.html#aa4f103330118c8976bf95e4bf53416eb">SVF::GenericNode::OutEdgeBegin</a></div><div class="ttdeci">iterator OutEdgeBegin()</div><div class="ttdoc">iterators </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00206">GenericGraph.h:206</a></div></div>
|
|
307
|
-
<div class="ttc" id="classSVF_1_1FIFOWorkList_html_a7056704c224dfb4b57287fe90c004aa8"><div class="ttname"><a href="classSVF_1_1FIFOWorkList.html#a7056704c224dfb4b57287fe90c004aa8">SVF::FIFOWorkList::empty</a></div><div class="ttdeci">bool empty() const</div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#
|
|
307
|
+
<div class="ttc" id="classSVF_1_1FIFOWorkList_html_a7056704c224dfb4b57287fe90c004aa8"><div class="ttname"><a href="classSVF_1_1FIFOWorkList.html#a7056704c224dfb4b57287fe90c004aa8">SVF::FIFOWorkList::empty</a></div><div class="ttdeci">bool empty() const</div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#l00146">WorkList.h:146</a></div></div>
|
|
308
308
|
<div class="ttc" id="classSVF_1_1ICFGNode_html"><div class="ttname"><a href="classSVF_1_1ICFGNode.html">SVF::ICFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00054">ICFGNode.h:54</a></div></div>
|
|
309
|
-
<div class="ttc" id="classSVF_1_1FIFOWorkList_html_a0df409a67428e528321869d201f2a474"><div class="ttname"><a href="classSVF_1_1FIFOWorkList.html#a0df409a67428e528321869d201f2a474">SVF::FIFOWorkList::push</a></div><div class="ttdeci">bool push(const Data &data)</div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#
|
|
309
|
+
<div class="ttc" id="classSVF_1_1FIFOWorkList_html_a0df409a67428e528321869d201f2a474"><div class="ttname"><a href="classSVF_1_1FIFOWorkList.html#a0df409a67428e528321869d201f2a474">SVF::FIFOWorkList::push</a></div><div class="ttdeci">bool push(const Data &data)</div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#l00165">WorkList.h:165</a></div></div>
|
|
310
310
|
<div class="ttc" id="classSVF_1_1GenericEdge_html_aeaa31a2c8479e831b36ce2e2582ceb86"><div class="ttname"><a href="classSVF_1_1GenericEdge.html#aeaa31a2c8479e831b36ce2e2582ceb86">SVF::GenericEdge::getDstNode</a></div><div class="ttdeci">NodeType * getDstNode() const</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00093">GenericGraph.h:93</a></div></div>
|
|
311
311
|
<div class="ttc" id="namespaceSVF_html_af739db846e47ba6b2fd15eaad31ab7fb"><div class="ttname"><a href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">SVF::Set</a></div><div class="ttdeci">std::unordered_set< Key, Hash, KeyEqual, Allocator > Set</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00105">SVFBasicTypes.h:105</a></div></div>
|
|
312
312
|
<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>
|
|
313
313
|
<div class="ttc" id="classSVF_1_1ICFGNode_html_ac16c5a3227a44d3b9f7c3209156d9df2"><div class="ttname"><a href="classSVF_1_1ICFGNode.html#ac16c5a3227a44d3b9f7c3209156d9df2">SVF::ICFGNode::const_iterator</a></div><div class="ttdeci">ICFGEdge::ICFGEdgeSetTy::const_iterator const_iterator</div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00066">ICFGNode.h:66</a></div></div>
|
|
314
314
|
<div class="ttc" id="classSVF_1_1FIFOWorkList_html"><div class="ttname"><a href="classSVF_1_1FIFOWorkList.html">SVF::FIFOWorkList</a></div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#l00137">WorkList.h:137</a></div></div>
|
|
315
315
|
<div class="ttc" id="classSVF_1_1GenericNode_html_a19a3366fd8a58290d0c740c46c3dcb3d"><div class="ttname"><a href="classSVF_1_1GenericNode.html#a19a3366fd8a58290d0c740c46c3dcb3d">SVF::GenericNode::OutEdgeEnd</a></div><div class="ttdeci">iterator OutEdgeEnd()</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00210">GenericGraph.h:210</a></div></div>
|
|
316
|
-
<div class="ttc" id="classSVF_1_1FIFOWorkList_html_a8fa72918fce7e9c0b2dc34b683a797c6"><div class="ttname"><a href="classSVF_1_1FIFOWorkList.html#a8fa72918fce7e9c0b2dc34b683a797c6">SVF::FIFOWorkList::pop</a></div><div class="ttdeci">Data pop()</div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#
|
|
316
|
+
<div class="ttc" id="classSVF_1_1FIFOWorkList_html_a8fa72918fce7e9c0b2dc34b683a797c6"><div class="ttname"><a href="classSVF_1_1FIFOWorkList.html#a8fa72918fce7e9c0b2dc34b683a797c6">SVF::FIFOWorkList::pop</a></div><div class="ttdeci">Data pop()</div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#l00200">WorkList.h:200</a></div></div>
|
|
317
317
|
</div><!-- fragment -->
|
|
318
318
|
</div>
|
|
319
319
|
</div>
|
|
@@ -350,9 +350,9 @@ Functions</h2></td></tr>
|
|
|
350
350
|
<p class="definition">Definition at line <a class="el" href="svf-ex_8cpp_source.html#l00108">108</a> of file <a class="el" href="svf-ex_8cpp_source.html">svf-ex.cpp</a>.</p>
|
|
351
351
|
<div class="fragment"><div class="line"><a name="l00109"></a><span class="lineno"> 109</span> {</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  <a class="code" href="classSVF_1_1SVFIR.html">SVFIR</a>* pag = SVFIR::getPAG();</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span> </div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  <a class="code" href="classSVF_1_1SVFVar.html">PAGNode</a>* pNode = pag-><a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(pag-><a class="code" href="classSVF_1_1IRGraph.html#abffddd41cc308b9b3bd5ad4a7f8f1624">getValueNode</a>(val));</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">VFGNode</a>* vNode = vfg-><a class="code" href="classSVF_1_1SVFG.html#a8e7a945f4266e8dc7dcfff2ad6494bfb">getDefSVFGNode</a>(pNode);</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  <a class="code" href="classSVF_1_1FIFOWorkList.html">FIFOWorkList<const VFGNode*></a> worklist;</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set<const VFGNode*></a> visited;</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  worklist.<a class="code" href="classSVF_1_1FIFOWorkList.html#a0df409a67428e528321869d201f2a474">push</a>(vNode);</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span> </div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  <span class="keywordflow">while</span> (!worklist.<a class="code" href="classSVF_1_1FIFOWorkList.html#a7056704c224dfb4b57287fe90c004aa8">empty</a>())</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  {</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">VFGNode</a>* vNode = worklist.<a class="code" href="classSVF_1_1FIFOWorkList.html#a8fa72918fce7e9c0b2dc34b683a797c6">pop</a>();</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1VFGNode.html#a3c558955f60c237c558d8faafed781e8">VFGNode::const_iterator</a> it = vNode-><a class="code" href="classSVF_1_1GenericNode.html#aa4f103330118c8976bf95e4bf53416eb">OutEdgeBegin</a>(), eit =</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  vNode-><a class="code" href="classSVF_1_1GenericNode.html#a19a3366fd8a58290d0c740c46c3dcb3d">OutEdgeEnd</a>(); it != eit; ++it)</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  {</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  <a class="code" href="classSVF_1_1VFGEdge.html">VFGEdge</a>* edge = *it;</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  <a class="code" href="classSVF_1_1VFGNode.html">VFGNode</a>* succNode = edge-><a class="code" href="classSVF_1_1GenericEdge.html#aeaa31a2c8479e831b36ce2e2582ceb86">getDstNode</a>();</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  <span class="keywordflow">if</span> (visited.find(succNode) == visited.end())</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  {</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  visited.insert(succNode);</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  worklist.<a class="code" href="classSVF_1_1FIFOWorkList.html#a0df409a67428e528321869d201f2a474">push</a>(succNode);</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  }</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> </div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  <span class="keywordflow">for</span>(<a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set<const VFGNode*>::const_iterator</a> it = visited.begin(), eit = visited.end(); it!=eit; ++it)</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>  <span class="comment">// const VFGNode* node = *it;</span></div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span> <span class="comment"></span> }</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span> }</div><div class="ttc" id="classSVF_1_1GenericNode_html_aa4f103330118c8976bf95e4bf53416eb"><div class="ttname"><a href="classSVF_1_1GenericNode.html#aa4f103330118c8976bf95e4bf53416eb">SVF::GenericNode::OutEdgeBegin</a></div><div class="ttdeci">iterator OutEdgeBegin()</div><div class="ttdoc">iterators </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00206">GenericGraph.h:206</a></div></div>
|
|
352
352
|
<div class="ttc" id="classSVF_1_1SVFG_html_a8e7a945f4266e8dc7dcfff2ad6494bfb"><div class="ttname"><a href="classSVF_1_1SVFG.html#a8e7a945f4266e8dc7dcfff2ad6494bfb">SVF::SVFG::getDefSVFGNode</a></div><div class="ttdeci">const SVFGNode * getDefSVFGNode(const PAGNode *pagNode) const</div><div class="ttdoc">Given a pagNode, return its definition site. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00171">SVFG.h:171</a></div></div>
|
|
353
|
-
<div class="ttc" id="classSVF_1_1FIFOWorkList_html_a7056704c224dfb4b57287fe90c004aa8"><div class="ttname"><a href="classSVF_1_1FIFOWorkList.html#a7056704c224dfb4b57287fe90c004aa8">SVF::FIFOWorkList::empty</a></div><div class="ttdeci">bool empty() const</div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#
|
|
353
|
+
<div class="ttc" id="classSVF_1_1FIFOWorkList_html_a7056704c224dfb4b57287fe90c004aa8"><div class="ttname"><a href="classSVF_1_1FIFOWorkList.html#a7056704c224dfb4b57287fe90c004aa8">SVF::FIFOWorkList::empty</a></div><div class="ttdeci">bool empty() const</div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#l00146">WorkList.h:146</a></div></div>
|
|
354
354
|
<div class="ttc" id="classSVF_1_1SVFVar_html"><div class="ttname"><a href="classSVF_1_1SVFVar.html">SVF::SVFVar</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00045">SVFVariables.h:45</a></div></div>
|
|
355
|
-
<div class="ttc" id="classSVF_1_1FIFOWorkList_html_a0df409a67428e528321869d201f2a474"><div class="ttname"><a href="classSVF_1_1FIFOWorkList.html#a0df409a67428e528321869d201f2a474">SVF::FIFOWorkList::push</a></div><div class="ttdeci">bool push(const Data &data)</div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#
|
|
355
|
+
<div class="ttc" id="classSVF_1_1FIFOWorkList_html_a0df409a67428e528321869d201f2a474"><div class="ttname"><a href="classSVF_1_1FIFOWorkList.html#a0df409a67428e528321869d201f2a474">SVF::FIFOWorkList::push</a></div><div class="ttdeci">bool push(const Data &data)</div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#l00165">WorkList.h:165</a></div></div>
|
|
356
356
|
<div class="ttc" id="classSVF_1_1IRGraph_html_abffddd41cc308b9b3bd5ad4a7f8f1624"><div class="ttname"><a href="classSVF_1_1IRGraph.html#abffddd41cc308b9b3bd5ad4a7f8f1624">SVF::IRGraph::getValueNode</a></div><div class="ttdeci">NodeID getValueNode(const Value *V)</div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#l00124">IRGraph.h:124</a></div></div>
|
|
357
357
|
<div class="ttc" id="classSVF_1_1VFGEdge_html"><div class="ttname"><a href="classSVF_1_1VFGEdge.html">SVF::VFGEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGEdge_8h_source.html#l00044">VFGEdge.h:44</a></div></div>
|
|
358
358
|
<div class="ttc" id="classSVF_1_1GenericEdge_html_aeaa31a2c8479e831b36ce2e2582ceb86"><div class="ttname"><a href="classSVF_1_1GenericEdge.html#aeaa31a2c8479e831b36ce2e2582ceb86">SVF::GenericEdge::getDstNode</a></div><div class="ttdeci">NodeType * getDstNode() const</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00093">GenericGraph.h:93</a></div></div>
|
|
@@ -362,7 +362,7 @@ Functions</h2></td></tr>
|
|
|
362
362
|
<div class="ttc" id="classSVF_1_1GenericNode_html_a19a3366fd8a58290d0c740c46c3dcb3d"><div class="ttname"><a href="classSVF_1_1GenericNode.html#a19a3366fd8a58290d0c740c46c3dcb3d">SVF::GenericNode::OutEdgeEnd</a></div><div class="ttdeci">iterator OutEdgeEnd()</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00210">GenericGraph.h:210</a></div></div>
|
|
363
363
|
<div class="ttc" id="classSVF_1_1GenericGraph_html_a43c9c773bfa17abf481c33073e30d01b"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">SVF::GenericGraph::getGNode</a></div><div class="ttdeci">NodeType * getGNode(NodeID id) const</div><div class="ttdoc">Get a node. </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00391">GenericGraph.h:391</a></div></div>
|
|
364
364
|
<div class="ttc" id="classSVF_1_1SVFIR_html"><div class="ttname"><a href="classSVF_1_1SVFIR.html">SVF::SVFIR</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00043">SVFIR.h:43</a></div></div>
|
|
365
|
-
<div class="ttc" id="classSVF_1_1FIFOWorkList_html_a8fa72918fce7e9c0b2dc34b683a797c6"><div class="ttname"><a href="classSVF_1_1FIFOWorkList.html#a8fa72918fce7e9c0b2dc34b683a797c6">SVF::FIFOWorkList::pop</a></div><div class="ttdeci">Data pop()</div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#
|
|
365
|
+
<div class="ttc" id="classSVF_1_1FIFOWorkList_html_a8fa72918fce7e9c0b2dc34b683a797c6"><div class="ttname"><a href="classSVF_1_1FIFOWorkList.html#a8fa72918fce7e9c0b2dc34b683a797c6">SVF::FIFOWorkList::pop</a></div><div class="ttdeci">Data pop()</div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#l00200">WorkList.h:200</a></div></div>
|
|
366
366
|
<div class="ttc" id="classSVF_1_1VFGNode_html"><div class="ttname"><a href="classSVF_1_1VFGNode.html">SVF::VFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00046">VFGNode.h:46</a></div></div>
|
|
367
367
|
</div><!-- fragment -->
|
|
368
368
|
</div>
|
|
@@ -76,7 +76,7 @@ $(function() {
|
|
|
76
76
|
<div class="ttc" id="classSVF_1_1GenericNode_html_aa4f103330118c8976bf95e4bf53416eb"><div class="ttname"><a href="classSVF_1_1GenericNode.html#aa4f103330118c8976bf95e4bf53416eb">SVF::GenericNode::OutEdgeBegin</a></div><div class="ttdeci">iterator OutEdgeBegin()</div><div class="ttdoc">iterators </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00206">GenericGraph.h:206</a></div></div>
|
|
77
77
|
<div class="ttc" id="classSVF_1_1SVFGBuilder_html_a54a713e3989597b11cee70864d0197bd"><div class="ttname"><a href="classSVF_1_1SVFGBuilder.html#a54a713e3989597b11cee70864d0197bd">SVF::SVFGBuilder::buildFullSVFG</a></div><div class="ttdeci">SVFG * buildFullSVFG(BVDataPTAImpl *pta)</div><div class="ttdef"><b>Definition:</b> <a href="SVFGBuilder_8cpp_source.html#l00052">SVFGBuilder.cpp:52</a></div></div>
|
|
78
78
|
<div class="ttc" id="classSVF_1_1SVFG_html_a8e7a945f4266e8dc7dcfff2ad6494bfb"><div class="ttname"><a href="classSVF_1_1SVFG.html#a8e7a945f4266e8dc7dcfff2ad6494bfb">SVF::SVFG::getDefSVFGNode</a></div><div class="ttdeci">const SVFGNode * getDefSVFGNode(const PAGNode *pagNode) const</div><div class="ttdoc">Given a pagNode, return its definition site. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00171">SVFG.h:171</a></div></div>
|
|
79
|
-
<div class="ttc" id="classSVF_1_1FIFOWorkList_html_a7056704c224dfb4b57287fe90c004aa8"><div class="ttname"><a href="classSVF_1_1FIFOWorkList.html#a7056704c224dfb4b57287fe90c004aa8">SVF::FIFOWorkList::empty</a></div><div class="ttdeci">bool empty() const</div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#
|
|
79
|
+
<div class="ttc" id="classSVF_1_1FIFOWorkList_html_a7056704c224dfb4b57287fe90c004aa8"><div class="ttname"><a href="classSVF_1_1FIFOWorkList.html#a7056704c224dfb4b57287fe90c004aa8">SVF::FIFOWorkList::empty</a></div><div class="ttdeci">bool empty() const</div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#l00146">WorkList.h:146</a></div></div>
|
|
80
80
|
<div class="ttc" id="classSVF_1_1PointsTo_1_1PointsToIterator_html"><div class="ttname"><a href="classSVF_1_1PointsTo_1_1PointsToIterator.html">SVF::PointsTo::PointsToIterator</a></div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8h_source.html#l00181">PointsTo.h:181</a></div></div>
|
|
81
81
|
<div class="ttc" id="SVFG_8h_html"><div class="ttname"><a href="SVFG_8h.html">SVFG.h</a></div></div>
|
|
82
82
|
<div class="ttc" id="classSVF_1_1SVFVar_html"><div class="ttname"><a href="classSVF_1_1SVFVar.html">SVF::SVFVar</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00045">SVFVariables.h:45</a></div></div>
|
|
@@ -84,7 +84,7 @@ $(function() {
|
|
|
84
84
|
<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>
|
|
85
85
|
<div class="ttc" id="namespaceSVF_html_a61c01e2e687ab3a001fb806737583943"><div class="ttname"><a href="namespaceSVF.html#a61c01e2e687ab3a001fb806737583943">SVF::AliasResult</a></div><div class="ttdeci">AliasResult</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00196">SVFBasicTypes.h:196</a></div></div>
|
|
86
86
|
<div class="ttc" id="classSVF_1_1ICFGNode_html"><div class="ttname"><a href="classSVF_1_1ICFGNode.html">SVF::ICFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00054">ICFGNode.h:54</a></div></div>
|
|
87
|
-
<div class="ttc" id="classSVF_1_1FIFOWorkList_html_a0df409a67428e528321869d201f2a474"><div class="ttname"><a href="classSVF_1_1FIFOWorkList.html#a0df409a67428e528321869d201f2a474">SVF::FIFOWorkList::push</a></div><div class="ttdeci">bool push(const Data &data)</div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#
|
|
87
|
+
<div class="ttc" id="classSVF_1_1FIFOWorkList_html_a0df409a67428e528321869d201f2a474"><div class="ttname"><a href="classSVF_1_1FIFOWorkList.html#a0df409a67428e528321869d201f2a474">SVF::FIFOWorkList::push</a></div><div class="ttdeci">bool push(const Data &data)</div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#l00165">WorkList.h:165</a></div></div>
|
|
88
88
|
<div class="ttc" id="classSVF_1_1IRGraph_html_abffddd41cc308b9b3bd5ad4a7f8f1624"><div class="ttname"><a href="classSVF_1_1IRGraph.html#abffddd41cc308b9b3bd5ad4a7f8f1624">SVF::IRGraph::getValueNode</a></div><div class="ttdeci">NodeID getValueNode(const Value *V)</div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#l00124">IRGraph.h:124</a></div></div>
|
|
89
89
|
<div class="ttc" id="classSVF_1_1VFGEdge_html"><div class="ttname"><a href="classSVF_1_1VFGEdge.html">SVF::VFGEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGEdge_8h_source.html#l00044">VFGEdge.h:44</a></div></div>
|
|
90
90
|
<div class="ttc" id="svf-ex_8cpp_html_a139199e1f33675df72b018c31e0be35c"><div class="ttname"><a href="svf-ex_8cpp.html#a139199e1f33675df72b018c31e0be35c">InputFilename</a></div><div class="ttdeci">static llvm::cl::opt< std::string > InputFilename(llvm::cl::Positional, llvm::cl::desc("<input bitcode>"), llvm::cl::init("-"))</div></div>
|
|
@@ -126,7 +126,7 @@ $(function() {
|
|
|
126
126
|
<div class="ttc" id="classSVF_1_1SVFIR_html_aa1943d53e75aef9b014953143c6894da"><div class="ttname"><a href="classSVF_1_1SVFIR.html#aa1943d53e75aef9b014953143c6894da">SVF::SVFIR::getICFG</a></div><div class="ttdeci">ICFG * getICFG()</div><div class="ttdoc">Return ICFG. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00132">SVFIR.h:132</a></div></div>
|
|
127
127
|
<div class="ttc" id="svf-ex_8cpp_html_af45b449c07f1c975eea45d40d1cc37f6"><div class="ttname"><a href="svf-ex_8cpp.html#af45b449c07f1c975eea45d40d1cc37f6">traverseOnICFG</a></div><div class="ttdeci">void traverseOnICFG(ICFG *icfg, const Instruction *inst)</div><div class="ttdef"><b>Definition:</b> <a href="svf-ex_8cpp_source.html#l00080">svf-ex.cpp:80</a></div></div>
|
|
128
128
|
<div class="ttc" id="cJSON_8h_html_ad4c68ea99a26b0a98ad9a79982960458"><div class="ttname"><a href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">string</a></div><div class="ttdeci">const char *const string</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8h_source.html#l00172">cJSON.h:172</a></div></div>
|
|
129
|
-
<div class="ttc" id="classSVF_1_1FIFOWorkList_html_a8fa72918fce7e9c0b2dc34b683a797c6"><div class="ttname"><a href="classSVF_1_1FIFOWorkList.html#a8fa72918fce7e9c0b2dc34b683a797c6">SVF::FIFOWorkList::pop</a></div><div class="ttdeci">Data pop()</div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#
|
|
129
|
+
<div class="ttc" id="classSVF_1_1FIFOWorkList_html_a8fa72918fce7e9c0b2dc34b683a797c6"><div class="ttname"><a href="classSVF_1_1FIFOWorkList.html#a8fa72918fce7e9c0b2dc34b683a797c6">SVF::FIFOWorkList::pop</a></div><div class="ttdeci">Data pop()</div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#l00200">WorkList.h:200</a></div></div>
|
|
130
130
|
<div class="ttc" id="namespaceSVF_html_a90b263fd2f541eca78135078114cabda"><div class="ttname"><a href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">SVF::Value</a></div><div class="ttdeci">llvm::Value Value</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00071">BasicTypes.h:71</a></div></div>
|
|
131
131
|
<div class="ttc" id="classSVF_1_1PointsTo_html_a8f741cdffbf3c5fe0f602cdca677dee6"><div class="ttname"><a href="classSVF_1_1PointsTo.html#a8f741cdffbf3c5fe0f602cdca677dee6">SVF::PointsTo::end</a></div><div class="ttdeci">const_iterator end(void) const</div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8h_source.html#l00132">PointsTo.h:132</a></div></div>
|
|
132
132
|
<div class="ttc" id="LLVMUtil_8h_html"><div class="ttname"><a href="LLVMUtil_8h.html">LLVMUtil.h</a></div></div>
|
package/include/Util/WorkList.h
CHANGED
|
@@ -58,7 +58,7 @@ class List
|
|
|
58
58
|
class ListNode
|
|
59
59
|
{
|
|
60
60
|
public:
|
|
61
|
-
ListNode(const Data&
|
|
61
|
+
ListNode(const Data &d)
|
|
62
62
|
{
|
|
63
63
|
data = d;
|
|
64
64
|
next = nullptr;
|
|
@@ -67,7 +67,7 @@ class List
|
|
|
67
67
|
~ListNode() {}
|
|
68
68
|
|
|
69
69
|
Data data;
|
|
70
|
-
ListNode*
|
|
70
|
+
ListNode *next;
|
|
71
71
|
};
|
|
72
72
|
|
|
73
73
|
typedef Set<Data> DataSet;
|
|
@@ -87,16 +87,16 @@ public:
|
|
|
87
87
|
return (head == nullptr);
|
|
88
88
|
}
|
|
89
89
|
|
|
90
|
-
inline bool find(const Data&
|
|
90
|
+
inline bool find(const Data &data) const
|
|
91
91
|
{
|
|
92
|
-
return
|
|
92
|
+
return nodeSet.find(data) != nodeSet.end();
|
|
93
93
|
}
|
|
94
94
|
|
|
95
|
-
void push(const Data&
|
|
95
|
+
void push(const Data &data)
|
|
96
96
|
{
|
|
97
97
|
if (nodeSet.find(data) == nodeSet.end())
|
|
98
98
|
{
|
|
99
|
-
Node*
|
|
99
|
+
Node *new_node = new Node(data);
|
|
100
100
|
if (head == nullptr)
|
|
101
101
|
head = new_node;// the list is empty
|
|
102
102
|
else
|
|
@@ -109,12 +109,12 @@ public:
|
|
|
109
109
|
{
|
|
110
110
|
assert(head != nullptr && "list is empty");
|
|
111
111
|
/// get node from list head
|
|
112
|
-
Node*
|
|
112
|
+
Node *head_node = head;
|
|
113
113
|
|
|
114
114
|
/// change list head to the next node
|
|
115
115
|
head = head->next;
|
|
116
116
|
if (head == nullptr)
|
|
117
|
-
tail = nullptr;
|
|
117
|
+
tail = nullptr; /// the last node is popped.
|
|
118
118
|
|
|
119
119
|
Data data = head_node->data;
|
|
120
120
|
nodeSet.erase(data);
|
|
@@ -124,8 +124,8 @@ public:
|
|
|
124
124
|
|
|
125
125
|
private:
|
|
126
126
|
DataSet nodeSet;
|
|
127
|
-
Node*
|
|
128
|
-
Node*
|
|
127
|
+
Node *head;
|
|
128
|
+
Node *tail;
|
|
129
129
|
};
|
|
130
130
|
|
|
131
131
|
/**
|
|
@@ -136,6 +136,7 @@ private:
|
|
|
136
136
|
template<class Data>
|
|
137
137
|
class FIFOWorkList
|
|
138
138
|
{
|
|
139
|
+
typedef Set<Data> DataSet;
|
|
139
140
|
typedef std::deque<Data> DataDeque;
|
|
140
141
|
public:
|
|
141
142
|
FIFOWorkList() {}
|
|
@@ -147,28 +148,30 @@ public:
|
|
|
147
148
|
return data_list.empty();
|
|
148
149
|
}
|
|
149
150
|
|
|
150
|
-
inline
|
|
151
|
+
inline u32_t size() const
|
|
151
152
|
{
|
|
152
|
-
|
|
153
|
+
assert(data_list.size() == data_set.size() && "list and set must be the same size!");
|
|
154
|
+
return data_list.size();
|
|
153
155
|
}
|
|
154
156
|
|
|
155
|
-
|
|
156
|
-
* Push a data into the work list.
|
|
157
|
-
*/
|
|
158
|
-
inline bool push(const Data& data)
|
|
157
|
+
inline bool find(const Data &data) const
|
|
159
158
|
{
|
|
160
|
-
|
|
161
|
-
return true;
|
|
159
|
+
return data_set.find(data) != data_set.end();
|
|
162
160
|
}
|
|
163
161
|
|
|
164
162
|
/**
|
|
165
|
-
*
|
|
163
|
+
* Push a data into the work list.
|
|
166
164
|
*/
|
|
167
|
-
inline Data
|
|
165
|
+
inline bool push(const Data &data)
|
|
168
166
|
{
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
167
|
+
if (!find(data))
|
|
168
|
+
{
|
|
169
|
+
data_list.push_back(data);
|
|
170
|
+
data_set.insert(data);
|
|
171
|
+
return true;
|
|
172
|
+
}
|
|
173
|
+
else
|
|
174
|
+
return false;
|
|
172
175
|
}
|
|
173
176
|
|
|
174
177
|
/**
|
|
@@ -177,16 +180,29 @@ public:
|
|
|
177
180
|
inline void removeFront()
|
|
178
181
|
{
|
|
179
182
|
assert(!empty() && "work list is empty");
|
|
183
|
+
data_set.erase(front());
|
|
180
184
|
data_list.pop_front();
|
|
181
185
|
}
|
|
182
186
|
|
|
183
187
|
/**
|
|
184
188
|
* Get reference of top data from the END of work list.
|
|
185
189
|
*/
|
|
186
|
-
inline Data&
|
|
190
|
+
inline Data &front()
|
|
191
|
+
{
|
|
192
|
+
assert(!empty() && "work list is empty");
|
|
193
|
+
Data &data = data_list.front();
|
|
194
|
+
return data;
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
/**
|
|
198
|
+
* Pop a data from the END of work list.
|
|
199
|
+
*/
|
|
200
|
+
inline Data pop()
|
|
187
201
|
{
|
|
188
202
|
assert(!empty() && "work list is empty");
|
|
189
|
-
Data
|
|
203
|
+
Data data = data_list.front();
|
|
204
|
+
data_list.pop_front();
|
|
205
|
+
data_set.erase(data);
|
|
190
206
|
return data;
|
|
191
207
|
}
|
|
192
208
|
|
|
@@ -196,10 +212,12 @@ public:
|
|
|
196
212
|
inline void clear()
|
|
197
213
|
{
|
|
198
214
|
data_list.clear();
|
|
215
|
+
data_set.clear();
|
|
199
216
|
}
|
|
200
217
|
|
|
201
218
|
private:
|
|
202
|
-
|
|
219
|
+
DataSet data_set; ///< store all data in the work list.
|
|
220
|
+
DataDeque data_list; ///< work list using std::vector.
|
|
203
221
|
};
|
|
204
222
|
|
|
205
223
|
/**
|
|
@@ -210,6 +228,7 @@ private:
|
|
|
210
228
|
template<class Data>
|
|
211
229
|
class FILOWorkList
|
|
212
230
|
{
|
|
231
|
+
typedef Set<Data> DataSet;
|
|
213
232
|
typedef std::vector<Data> DataVector;
|
|
214
233
|
public:
|
|
215
234
|
FILOWorkList() {}
|
|
@@ -221,18 +240,30 @@ public:
|
|
|
221
240
|
return data_list.empty();
|
|
222
241
|
}
|
|
223
242
|
|
|
224
|
-
inline
|
|
243
|
+
inline u32_t size() const
|
|
225
244
|
{
|
|
226
|
-
|
|
245
|
+
assert(data_list.size() == data_set.size() && "list and set must be the same size!");
|
|
246
|
+
return data_list.size();
|
|
247
|
+
}
|
|
248
|
+
|
|
249
|
+
inline bool find(const Data &data) const
|
|
250
|
+
{
|
|
251
|
+
return data_set.find(data) != data_set.end();;
|
|
227
252
|
}
|
|
228
253
|
|
|
229
254
|
/**
|
|
230
255
|
* Push a data into the work list.
|
|
231
256
|
*/
|
|
232
|
-
inline bool push(const Data&
|
|
257
|
+
inline bool push(const Data &data)
|
|
233
258
|
{
|
|
234
|
-
|
|
235
|
-
|
|
259
|
+
if (!find(data))
|
|
260
|
+
{
|
|
261
|
+
data_list.push_back(data);
|
|
262
|
+
data_set.insert(data);
|
|
263
|
+
return true;
|
|
264
|
+
}
|
|
265
|
+
else
|
|
266
|
+
return false;
|
|
236
267
|
}
|
|
237
268
|
|
|
238
269
|
/**
|
|
@@ -240,8 +271,10 @@ public:
|
|
|
240
271
|
*/
|
|
241
272
|
inline Data pop()
|
|
242
273
|
{
|
|
243
|
-
|
|
244
|
-
|
|
274
|
+
assert(!empty() && "work list is empty");
|
|
275
|
+
Data data = data_list.back();
|
|
276
|
+
data_list.pop_back();
|
|
277
|
+
data_set.erase(data);
|
|
245
278
|
return data;
|
|
246
279
|
}
|
|
247
280
|
|
|
@@ -251,16 +284,17 @@ public:
|
|
|
251
284
|
inline void removeBack()
|
|
252
285
|
{
|
|
253
286
|
assert(!empty() && "work list is empty");
|
|
287
|
+
data_set.erase(back());
|
|
254
288
|
data_list.pop_back();
|
|
255
289
|
}
|
|
256
290
|
|
|
257
291
|
/**
|
|
258
292
|
* Get reference of top data from the END of work list.
|
|
259
293
|
*/
|
|
260
|
-
inline Data&
|
|
294
|
+
inline Data &back()
|
|
261
295
|
{
|
|
262
296
|
assert(!empty() && "work list is empty");
|
|
263
|
-
Data&
|
|
297
|
+
Data &data = data_list.back();
|
|
264
298
|
return data;
|
|
265
299
|
}
|
|
266
300
|
|
|
@@ -270,10 +304,12 @@ public:
|
|
|
270
304
|
inline void clear()
|
|
271
305
|
{
|
|
272
306
|
data_list.clear();
|
|
307
|
+
data_set.clear();
|
|
273
308
|
}
|
|
274
309
|
|
|
275
310
|
private:
|
|
276
|
-
|
|
311
|
+
DataSet data_set; ///< store all data in the work list.
|
|
312
|
+
DataVector data_list; ///< work list using std::vector.
|
|
277
313
|
};
|
|
278
314
|
|
|
279
315
|
} // End namespace SVF
|
package/lib/Util/ExtAPI.cpp
CHANGED
|
@@ -149,7 +149,7 @@ ExtAPI *ExtAPI::getExtAPI(const std::string &path)
|
|
|
149
149
|
return extOp;
|
|
150
150
|
}
|
|
151
151
|
|
|
152
|
-
jsonFilePath = getJsonFile("$SVF_DIR");
|
|
152
|
+
jsonFilePath = getJsonFile("echo $SVF_DIR");
|
|
153
153
|
if (!stat(jsonFilePath.c_str(), &statbuf))
|
|
154
154
|
{
|
|
155
155
|
root = parseJson(jsonFilePath, statbuf.st_size);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "svf-tools",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.576",
|
|
4
4
|
"description": "* <b>[TypeClone](https://github.com/SVF-tools/SVF/wiki/TypeClone) published in our [ECOOP paper](https://yuleisui.github.io/publications/ecoop20.pdf) is now available in SVF </b> * <b>SVF now uses a single script for its build. Just type [`source ./build.sh`](https://github.com/SVF-tools/SVF/blob/master/build.sh) in your terminal, that's it!</b> * <b>SVF now supports LLVM-10.0.0! </b> * <b>We thank [bsauce](https://github.com/bsauce) for writing a user manual of SVF ([link1](https://www.jianshu.com/p/068a08ec749c) and [link2](https://www.jianshu.com/p/777c30d4240e)) in Chinese </b> * <b>SVF now supports LLVM-9.0.0 (Thank [Byoungyoung Lee](https://github.com/SVF-tools/SVF/issues/142) for his help!). </b> * <b>SVF now supports a set of [field-sensitive pointer analyses](https://yuleisui.github.io/publications/sas2019a.pdf). </b> * <b>[Use SVF as an external lib](https://github.com/SVF-tools/SVF/wiki/Using-SVF-as-a-lib-in-your-own-tool) for your own project (Contributed by [Hongxu Chen](https://github.com/HongxuChen)). </b> * <b>SVF now supports LLVM-7.0.0. </b> * <b>SVF now supports Docker. [Try SVF in Docker](https://github.com/SVF-tools/SVF/wiki/Try-SVF-in-Docker)! </b> * <b>SVF now supports [LLVM-6.0.0](https://github.com/svf-tools/SVF/pull/38) (Contributed by [Jack Anthony](https://github.com/jackanth)). </b> * <b>SVF now supports [LLVM-4.0.0](https://github.com/svf-tools/SVF/pull/23) (Contributed by Jared Carlson. Thank [Jared](https://github.com/jcarlson23) and [Will](https://github.com/dtzWill) for their in-depth [discussions](https://github.com/svf-tools/SVF/pull/18) about updating SVF!) </b> * <b>SVF now supports analysis for C++ programs.</b> <br />",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"scripts": {
|