svf-tools 1.0.821 → 1.0.822
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/SVFG_8cpp_source.html +5 -5
- package/SVF-doxygen/html/VFG_8cpp_source.html +4 -5
- package/SVF-doxygen/html/classSVF_1_1SVFG.html +5 -5
- package/SVF-doxygen/html/classSVF_1_1VFG.html +4 -5
- package/package.json +1 -1
- package/svf/lib/Graphs/SVFG.cpp +4 -4
- package/svf/lib/Graphs/VFG.cpp +4 -4
|
@@ -623,7 +623,7 @@ $(function() {
|
|
|
623
623
|
<div class="line"><a name="l00595"></a><span class="lineno"> 595</span>  {</div>
|
|
624
624
|
<div class="line"><a name="l00596"></a><span class="lineno"> 596</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">PAGNode</a> *cs_arg = *csArgIt;</div>
|
|
625
625
|
<div class="line"><a name="l00597"></a><span class="lineno"> 597</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">PAGNode</a> *fun_arg = *funArgIt;</div>
|
|
626
|
-
<div class="line"><a name="l00598"></a><span class="lineno"> 598</span>  <span class="keywordflow">if</span> (
|
|
626
|
+
<div class="line"><a name="l00598"></a><span class="lineno"> 598</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1VFG.html#a85360d0242ea7d2ec7da670f2cc17962">isInterestedPAGNode</a>(fun_arg) && <a class="code" href="classSVF_1_1VFG.html#a85360d0242ea7d2ec7da670f2cc17962">isInterestedPAGNode</a>(cs_arg))</div>
|
|
627
627
|
<div class="line"><a name="l00599"></a><span class="lineno"> 599</span>  <a class="code" href="classSVF_1_1SVFG.html#ac1acdf7bc468d7734359591e45f485fe">getInterVFEdgeAtIndCSFromAPToFP</a>(cs_arg, fun_arg, callICFGNode, csId, edges);</div>
|
|
628
628
|
<div class="line"><a name="l00600"></a><span class="lineno"> 600</span>  }</div>
|
|
629
629
|
<div class="line"><a name="l00601"></a><span class="lineno"> 601</span>  assert(funArgIt == funArgEit && <span class="stringliteral">"function has more arguments than call site"</span>);</div>
|
|
@@ -631,12 +631,12 @@ $(function() {
|
|
|
631
631
|
<div class="line"><a name="l00603"></a><span class="lineno"> 603</span>  {</div>
|
|
632
632
|
<div class="line"><a name="l00604"></a><span class="lineno"> 604</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> varFunArg = <a class="code" href="classSVF_1_1VFG.html#a25c2bbbc2e966e2aaa59a5b83363557a">pag</a>-><a class="code" href="classSVF_1_1IRGraph.html#a8b10c318674a47035d617b3ade4f069b">getVarargNode</a>(callee);</div>
|
|
633
633
|
<div class="line"><a name="l00605"></a><span class="lineno"> 605</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">PAGNode</a>* varFunArgNode = <a class="code" href="classSVF_1_1VFG.html#a25c2bbbc2e966e2aaa59a5b83363557a">pag</a>-><a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(varFunArg);</div>
|
|
634
|
-
<div class="line"><a name="l00606"></a><span class="lineno"> 606</span>  <span class="keywordflow">if</span> (
|
|
634
|
+
<div class="line"><a name="l00606"></a><span class="lineno"> 606</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1VFG.html#a85360d0242ea7d2ec7da670f2cc17962">isInterestedPAGNode</a>(varFunArgNode))</div>
|
|
635
635
|
<div class="line"><a name="l00607"></a><span class="lineno"> 607</span>  {</div>
|
|
636
636
|
<div class="line"><a name="l00608"></a><span class="lineno"> 608</span>  <span class="keywordflow">for</span> (; csArgIt != csArgEit; csArgIt++)</div>
|
|
637
637
|
<div class="line"><a name="l00609"></a><span class="lineno"> 609</span>  {</div>
|
|
638
638
|
<div class="line"><a name="l00610"></a><span class="lineno"> 610</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">PAGNode</a> *cs_arg = *csArgIt;</div>
|
|
639
|
-
<div class="line"><a name="l00611"></a><span class="lineno"> 611</span>  <span class="keywordflow">if</span> (
|
|
639
|
+
<div class="line"><a name="l00611"></a><span class="lineno"> 611</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1VFG.html#a85360d0242ea7d2ec7da670f2cc17962">isInterestedPAGNode</a>(cs_arg))</div>
|
|
640
640
|
<div class="line"><a name="l00612"></a><span class="lineno"> 612</span>  <a class="code" href="classSVF_1_1SVFG.html#ac1acdf7bc468d7734359591e45f485fe">getInterVFEdgeAtIndCSFromAPToFP</a>(cs_arg, varFunArgNode, callICFGNode, csId, edges);</div>
|
|
641
641
|
<div class="line"><a name="l00613"></a><span class="lineno"> 613</span>  }</div>
|
|
642
642
|
<div class="line"><a name="l00614"></a><span class="lineno"> 614</span>  }</div>
|
|
@@ -648,7 +648,7 @@ $(function() {
|
|
|
648
648
|
<div class="line"><a name="l00620"></a><span class="lineno"> 620</span>  {</div>
|
|
649
649
|
<div class="line"><a name="l00621"></a><span class="lineno"> 621</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">PAGNode</a>* cs_return = <a class="code" href="classSVF_1_1VFG.html#a25c2bbbc2e966e2aaa59a5b83363557a">pag</a>-><a class="code" href="classSVF_1_1SVFIR.html#a3145677c7a3763fc0d6aa7e21b264ab6">getCallSiteRet</a>(retICFGNode);</div>
|
|
650
650
|
<div class="line"><a name="l00622"></a><span class="lineno"> 622</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">PAGNode</a>* fun_return = <a class="code" href="classSVF_1_1VFG.html#a25c2bbbc2e966e2aaa59a5b83363557a">pag</a>-><a class="code" href="classSVF_1_1SVFIR.html#a34e27b8bcfeaafda190dcdb9169a346f">getFunRet</a>(callee);</div>
|
|
651
|
-
<div class="line"><a name="l00623"></a><span class="lineno"> 623</span>  <span class="keywordflow">if</span> (
|
|
651
|
+
<div class="line"><a name="l00623"></a><span class="lineno"> 623</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1VFG.html#a85360d0242ea7d2ec7da670f2cc17962">isInterestedPAGNode</a>(cs_return) && <a class="code" href="classSVF_1_1VFG.html#a85360d0242ea7d2ec7da670f2cc17962">isInterestedPAGNode</a>(fun_return))</div>
|
|
652
652
|
<div class="line"><a name="l00624"></a><span class="lineno"> 624</span>  <a class="code" href="classSVF_1_1SVFG.html#ab2b969b7d5922427622dd875e6b8fe14">getInterVFEdgeAtIndCSFromFRToAR</a>(fun_return, cs_return, csId, edges);</div>
|
|
653
653
|
<div class="line"><a name="l00625"></a><span class="lineno"> 625</span>  }</div>
|
|
654
654
|
<div class="line"><a name="l00626"></a><span class="lineno"> 626</span>  </div>
|
|
@@ -1163,7 +1163,6 @@ $(function() {
|
|
|
1163
1163
|
<div class="ttc" id="aclassSVF_1_1SparseBitVector_html"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html">SVF::SparseBitVector</a></div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00459">SparseBitVector.h:459</a></div></div>
|
|
1164
1164
|
<div class="ttc" id="aclassSVF_1_1SVFStmt_html_a8cd7b6c6fd8b030b1421d95a086359f4"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a8cd7b6c6fd8b030b1421d95a086359f4">SVF::SVFStmt::SVFStmtSetTy</a></div><div class="ttdeci">GenericNode< SVFVar, SVFStmt >::GEdgeSetTy SVFStmtSetTy</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00217">SVFStatements.h:217</a></div></div>
|
|
1165
1165
|
<div class="ttc" id="aclassSVF_1_1CallCHI_html"><div class="ttname"><a href="classSVF_1_1CallCHI.html">SVF::CallCHI</a></div><div class="ttdef"><b>Definition:</b> <a href="MSSAMuChi_8h_source.html#l00521">MSSAMuChi.h:521</a></div></div>
|
|
1166
|
-
<div class="ttc" id="aclassSVF_1_1SVFVar_html_a3b61042079a6c9dc395f38925c6a1271"><div class="ttname"><a href="classSVF_1_1SVFVar.html#a3b61042079a6c9dc395f38925c6a1271">SVF::SVFVar::isPointer</a></div><div class="ttdeci">virtual bool isPointer() const</div><div class="ttdoc">Whether it is a pointer.</div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00117">SVFVariables.h:117</a></div></div>
|
|
1167
1166
|
<div class="ttc" id="aclassSVF_1_1ICFG_html_a881fe977f3a6fde223bd786121e35fcf"><div class="ttname"><a href="classSVF_1_1ICFG.html#a881fe977f3a6fde223bd786121e35fcf">SVF::ICFG::getRetICFGNode</a></div><div class="ttdeci">RetICFGNode * getRetICFGNode(const SVFInstruction *inst)</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#l00250">ICFG.cpp:250</a></div></div>
|
|
1168
1167
|
<div class="ttc" id="aclassSVF_1_1SVFG_html_a475205e221890204c7770c414ee63975"><div class="ttname"><a href="classSVF_1_1SVFG.html#a475205e221890204c7770c414ee63975">SVF::SVFG::getActualINSVFGNodes</a></div><div class="ttdeci">ActualINSVFGNodeSet & getActualINSVFGNodes(const CallICFGNode *cs)</div><div class="ttdoc">Get SVFGNode set.</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00209">SVFG.h:209</a></div></div>
|
|
1169
1168
|
<div class="ttc" id="aclassSVF_1_1SVFG_html_a8ba934714a7f2caf2e041002fdb66137"><div class="ttname"><a href="classSVF_1_1SVFG.html#a8ba934714a7f2caf2e041002fdb66137">SVF::SVFG::getStat</a></div><div class="ttdeci">SVFGStat * getStat() const</div><div class="ttdoc">Return statistics.</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00125">SVFG.h:125</a></div></div>
|
|
@@ -1242,6 +1241,7 @@ $(function() {
|
|
|
1242
1241
|
<div class="ttc" id="aSVFG_8h_html"><div class="ttname"><a href="SVFG_8h.html">SVFG.h</a></div></div>
|
|
1243
1242
|
<div class="ttc" id="aclassSVF_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#l00406">GenericGraph.h:406</a></div></div>
|
|
1244
1243
|
<div class="ttc" id="aclassSVF_1_1SVFGStat_html_a037600bfff11659542f8595d8700dec4"><div class="ttname"><a href="classSVF_1_1SVFGStat.html#a037600bfff11659542f8595d8700dec4">SVF::SVFGStat::performStat</a></div><div class="ttdeci">virtual void performStat() override</div><div class="ttdef"><b>Definition:</b> <a href="SVFGStat_8cpp_source.html#l00178">SVFGStat.cpp:178</a></div></div>
|
|
1244
|
+
<div class="ttc" id="aclassSVF_1_1VFG_html_a85360d0242ea7d2ec7da670f2cc17962"><div class="ttname"><a href="classSVF_1_1VFG.html#a85360d0242ea7d2ec7da670f2cc17962">SVF::VFG::isInterestedPAGNode</a></div><div class="ttdeci">virtual bool isInterestedPAGNode(const SVFVar *node) const</div><div class="ttdef"><b>Definition:</b> <a href="VFG_8h_source.html#l00444">VFG.h:444</a></div></div>
|
|
1245
1245
|
<div class="ttc" id="aclassSVF_1_1MRSVFGNode_html_a28fe266d0e4618aa4448aa218495a332"><div class="ttname"><a href="classSVF_1_1MRSVFGNode.html#a28fe266d0e4618aa4448aa218495a332">SVF::MRSVFGNode::getPointsTo</a></div><div class="ttdeci">const NodeBS & getPointsTo() const</div><div class="ttdoc">Return points-to of the MR.</div><div class="ttdef"><b>Definition:</b> <a href="SVFGNode_8h_source.html#l00052">SVFGNode.h:52</a></div></div>
|
|
1246
1246
|
<div class="ttc" id="aclassSVF_1_1EntryCHI_html"><div class="ttname"><a href="classSVF_1_1EntryCHI.html">SVF::EntryCHI</a></div><div class="ttdef"><b>Definition:</b> <a href="MSSAMuChi_8h_source.html#l00578">MSSAMuChi.h:578</a></div></div>
|
|
1247
1247
|
<div class="ttc" id="aclassSVF_1_1SVFG_html_a804824faa3a042cb1b63edd9e9eb7207"><div class="ttname"><a href="classSVF_1_1SVFG.html#a804824faa3a042cb1b63edd9e9eb7207">SVF::SVFG::addFormalOUTSVFGNode</a></div><div class="ttdeci">void addFormalOUTSVFGNode(const FunExitICFGNode *funExit, const MRVer *ver, const NodeID nodeId)</div><div class="ttdoc">Add memory Function return mu SVFG node.</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00411">SVFG.h:411</a></div></div>
|
|
@@ -997,7 +997,7 @@ $(function() {
|
|
|
997
997
|
<div class="line"><a name="l00987"></a><span class="lineno"> 987</span>  {</div>
|
|
998
998
|
<div class="line"><a name="l00988"></a><span class="lineno"> 988</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">PAGNode</a> *cs_arg = *csArgIt;</div>
|
|
999
999
|
<div class="line"><a name="l00989"></a><span class="lineno"> 989</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">PAGNode</a> *fun_arg = *funArgIt;</div>
|
|
1000
|
-
<div class="line"><a name="l00990"></a><span class="lineno"> 990</span>  <span class="keywordflow">if</span> (
|
|
1000
|
+
<div class="line"><a name="l00990"></a><span class="lineno"> 990</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1VFG.html#a85360d0242ea7d2ec7da670f2cc17962">isInterestedPAGNode</a>(cs_arg) && <a class="code" href="classSVF_1_1VFG.html#a85360d0242ea7d2ec7da670f2cc17962">isInterestedPAGNode</a>(fun_arg))</div>
|
|
1001
1001
|
<div class="line"><a name="l00991"></a><span class="lineno"> 991</span>  <a class="code" href="classSVF_1_1VFG.html#a2c508fbf07bad33d5b56d2acc6e012d3">connectAParamAndFParam</a>(cs_arg, fun_arg, callBlockNode, csId, edges);</div>
|
|
1002
1002
|
<div class="line"><a name="l00992"></a><span class="lineno"> 992</span>  }</div>
|
|
1003
1003
|
<div class="line"><a name="l00993"></a><span class="lineno"> 993</span>  assert(funArgIt == funArgEit && <span class="stringliteral">"function has more arguments than call site"</span>);</div>
|
|
@@ -1006,12 +1006,12 @@ $(function() {
|
|
|
1006
1006
|
<div class="line"><a name="l00996"></a><span class="lineno"> 996</span>  {</div>
|
|
1007
1007
|
<div class="line"><a name="l00997"></a><span class="lineno"> 997</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> varFunArg = <a class="code" href="classSVF_1_1VFG.html#a25c2bbbc2e966e2aaa59a5b83363557a">pag</a>-><a class="code" href="classSVF_1_1IRGraph.html#a8b10c318674a47035d617b3ade4f069b">getVarargNode</a>(callee);</div>
|
|
1008
1008
|
<div class="line"><a name="l00998"></a><span class="lineno"> 998</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">PAGNode</a>* varFunArgNode = <a class="code" href="classSVF_1_1VFG.html#a25c2bbbc2e966e2aaa59a5b83363557a">pag</a>-><a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(varFunArg);</div>
|
|
1009
|
-
<div class="line"><a name="l00999"></a><span class="lineno"> 999</span>  <span class="keywordflow">if</span> (
|
|
1009
|
+
<div class="line"><a name="l00999"></a><span class="lineno"> 999</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1VFG.html#a85360d0242ea7d2ec7da670f2cc17962">isInterestedPAGNode</a>(varFunArgNode))</div>
|
|
1010
1010
|
<div class="line"><a name="l01000"></a><span class="lineno"> 1000</span>  {</div>
|
|
1011
1011
|
<div class="line"><a name="l01001"></a><span class="lineno"> 1001</span>  <span class="keywordflow">for</span> (; csArgIt != csArgEit; csArgIt++)</div>
|
|
1012
1012
|
<div class="line"><a name="l01002"></a><span class="lineno"> 1002</span>  {</div>
|
|
1013
1013
|
<div class="line"><a name="l01003"></a><span class="lineno"> 1003</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">PAGNode</a> *cs_arg = *csArgIt;</div>
|
|
1014
|
-
<div class="line"><a name="l01004"></a><span class="lineno"> 1004</span>  <span class="keywordflow">if</span> (
|
|
1014
|
+
<div class="line"><a name="l01004"></a><span class="lineno"> 1004</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1VFG.html#a85360d0242ea7d2ec7da670f2cc17962">isInterestedPAGNode</a>(cs_arg))</div>
|
|
1015
1015
|
<div class="line"><a name="l01005"></a><span class="lineno"> 1005</span>  <a class="code" href="classSVF_1_1VFG.html#a2c508fbf07bad33d5b56d2acc6e012d3">connectAParamAndFParam</a>(cs_arg, varFunArgNode, callBlockNode, csId, edges);</div>
|
|
1016
1016
|
<div class="line"><a name="l01006"></a><span class="lineno"> 1006</span>  }</div>
|
|
1017
1017
|
<div class="line"><a name="l01007"></a><span class="lineno"> 1007</span>  }</div>
|
|
@@ -1023,7 +1023,7 @@ $(function() {
|
|
|
1023
1023
|
<div class="line"><a name="l01013"></a><span class="lineno"> 1013</span>  {</div>
|
|
1024
1024
|
<div class="line"><a name="l01014"></a><span class="lineno"> 1014</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">PAGNode</a>* cs_return = <a class="code" href="classSVF_1_1VFG.html#a25c2bbbc2e966e2aaa59a5b83363557a">pag</a>-><a class="code" href="classSVF_1_1SVFIR.html#a3145677c7a3763fc0d6aa7e21b264ab6">getCallSiteRet</a>(retBlockNode);</div>
|
|
1025
1025
|
<div class="line"><a name="l01015"></a><span class="lineno"> 1015</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">PAGNode</a>* fun_return = <a class="code" href="classSVF_1_1VFG.html#a25c2bbbc2e966e2aaa59a5b83363557a">pag</a>-><a class="code" href="classSVF_1_1SVFIR.html#a34e27b8bcfeaafda190dcdb9169a346f">getFunRet</a>(callee);</div>
|
|
1026
|
-
<div class="line"><a name="l01016"></a><span class="lineno"> 1016</span>  <span class="keywordflow">if</span> (
|
|
1026
|
+
<div class="line"><a name="l01016"></a><span class="lineno"> 1016</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1VFG.html#a85360d0242ea7d2ec7da670f2cc17962">isInterestedPAGNode</a>(cs_return) && <a class="code" href="classSVF_1_1VFG.html#a85360d0242ea7d2ec7da670f2cc17962">isInterestedPAGNode</a>(fun_return))</div>
|
|
1027
1027
|
<div class="line"><a name="l01017"></a><span class="lineno"> 1017</span>  <a class="code" href="classSVF_1_1VFG.html#ab4e8ab307ad6beb46812a60ebd31ae3b">connectFRetAndARet</a>(fun_return, cs_return, csId, edges);</div>
|
|
1028
1028
|
<div class="line"><a name="l01018"></a><span class="lineno"> 1018</span>  }</div>
|
|
1029
1029
|
<div class="line"><a name="l01019"></a><span class="lineno"> 1019</span> }</div>
|
|
@@ -1439,7 +1439,6 @@ $(function() {
|
|
|
1439
1439
|
<div class="ttc" id="aclassSVF_1_1ICFG_html_aa41516cdd2be5066adf22798a4fe2213"><div class="ttname"><a href="classSVF_1_1ICFG.html#aa41516cdd2be5066adf22798a4fe2213">SVF::ICFG::getCallICFGNode</a></div><div class="ttdeci">CallICFGNode * getCallICFGNode(const SVFInstruction *inst)</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#l00237">ICFG.cpp:237</a></div></div>
|
|
1440
1440
|
<div class="ttc" id="aclassSVF_1_1BinaryOPVFGNode_html_a1e0dba35433edfc8f1e57a02209734cc"><div class="ttname"><a href="classSVF_1_1BinaryOPVFGNode.html#a1e0dba35433edfc8f1e57a02209734cc">SVF::BinaryOPVFGNode::getValue</a></div><div class="ttdeci">const SVFValue * getValue() const override</div><div class="ttdoc">Return the corresponding LLVM value, if possible, nullptr otherwise.</div><div class="ttdef"><b>Definition:</b> <a href="VFG_8cpp_source.html#l01086">VFG.cpp:1086</a></div></div>
|
|
1441
1441
|
<div class="ttc" id="aVFG_8h_html"><div class="ttname"><a href="VFG_8h.html">VFG.h</a></div></div>
|
|
1442
|
-
<div class="ttc" id="aclassSVF_1_1SVFVar_html_a3b61042079a6c9dc395f38925c6a1271"><div class="ttname"><a href="classSVF_1_1SVFVar.html#a3b61042079a6c9dc395f38925c6a1271">SVF::SVFVar::isPointer</a></div><div class="ttdeci">virtual bool isPointer() const</div><div class="ttdoc">Whether it is a pointer.</div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00117">SVFVariables.h:117</a></div></div>
|
|
1443
1442
|
<div class="ttc" id="astructSVF_1_1DOTGraphTraits_3_01VFG_01_5_01_4_html_a3396c4d951a5a0c972561251d68b55c6"><div class="ttname"><a href="structSVF_1_1DOTGraphTraits_3_01VFG_01_5_01_4.html#a3396c4d951a5a0c972561251d68b55c6">SVF::DOTGraphTraits< VFG * >::getCompleteNodeLabel</a></div><div class="ttdeci">static std::string getCompleteNodeLabel(NodeType *node, VFG *)</div><div class="ttdoc">Return label of a VFG node with MemSSA information.</div><div class="ttdef"><b>Definition:</b> <a href="VFG_8cpp_source.html#l01186">VFG.cpp:1186</a></div></div>
|
|
1444
1443
|
<div class="ttc" id="aclassSVF_1_1ICFG_html_a881fe977f3a6fde223bd786121e35fcf"><div class="ttname"><a href="classSVF_1_1ICFG.html#a881fe977f3a6fde223bd786121e35fcf">SVF::ICFG::getRetICFGNode</a></div><div class="ttdeci">RetICFGNode * getRetICFGNode(const SVFInstruction *inst)</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#l00250">ICFG.cpp:250</a></div></div>
|
|
1445
1444
|
<div class="ttc" id="aclassSVF_1_1StmtVFGNode_html_a8c9af51d2f3425f6b8de70ffe1795292"><div class="ttname"><a href="classSVF_1_1StmtVFGNode.html#a8c9af51d2f3425f6b8de70ffe1795292">SVF::StmtVFGNode::getValue</a></div><div class="ttdeci">const SVFValue * getValue() const override</div><div class="ttdoc">Return the corresponding LLVM value, if possible, nullptr otherwise.</div><div class="ttdef"><b>Definition:</b> <a href="VFG_8cpp_source.html#l01076">VFG.cpp:1076</a></div></div>
|
|
@@ -3065,7 +3065,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
3065
3065
|
<div class="line"><a name="l00595"></a><span class="lineno"> 595</span>  {</div>
|
|
3066
3066
|
<div class="line"><a name="l00596"></a><span class="lineno"> 596</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">PAGNode</a> *cs_arg = *csArgIt;</div>
|
|
3067
3067
|
<div class="line"><a name="l00597"></a><span class="lineno"> 597</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">PAGNode</a> *fun_arg = *funArgIt;</div>
|
|
3068
|
-
<div class="line"><a name="l00598"></a><span class="lineno"> 598</span>  <span class="keywordflow">if</span> (
|
|
3068
|
+
<div class="line"><a name="l00598"></a><span class="lineno"> 598</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1VFG.html#a85360d0242ea7d2ec7da670f2cc17962">isInterestedPAGNode</a>(fun_arg) && <a class="code" href="classSVF_1_1VFG.html#a85360d0242ea7d2ec7da670f2cc17962">isInterestedPAGNode</a>(cs_arg))</div>
|
|
3069
3069
|
<div class="line"><a name="l00599"></a><span class="lineno"> 599</span>  <a class="code" href="classSVF_1_1SVFG.html#ac1acdf7bc468d7734359591e45f485fe">getInterVFEdgeAtIndCSFromAPToFP</a>(cs_arg, fun_arg, callICFGNode, csId, edges);</div>
|
|
3070
3070
|
<div class="line"><a name="l00600"></a><span class="lineno"> 600</span>  }</div>
|
|
3071
3071
|
<div class="line"><a name="l00601"></a><span class="lineno"> 601</span>  assert(funArgIt == funArgEit && <span class="stringliteral">"function has more arguments than call site"</span>);</div>
|
|
@@ -3073,12 +3073,12 @@ Additional Inherited Members</h2></td></tr>
|
|
|
3073
3073
|
<div class="line"><a name="l00603"></a><span class="lineno"> 603</span>  {</div>
|
|
3074
3074
|
<div class="line"><a name="l00604"></a><span class="lineno"> 604</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> varFunArg = <a class="code" href="classSVF_1_1VFG.html#a25c2bbbc2e966e2aaa59a5b83363557a">pag</a>-><a class="code" href="classSVF_1_1IRGraph.html#a8b10c318674a47035d617b3ade4f069b">getVarargNode</a>(callee);</div>
|
|
3075
3075
|
<div class="line"><a name="l00605"></a><span class="lineno"> 605</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">PAGNode</a>* varFunArgNode = <a class="code" href="classSVF_1_1VFG.html#a25c2bbbc2e966e2aaa59a5b83363557a">pag</a>-><a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(varFunArg);</div>
|
|
3076
|
-
<div class="line"><a name="l00606"></a><span class="lineno"> 606</span>  <span class="keywordflow">if</span> (
|
|
3076
|
+
<div class="line"><a name="l00606"></a><span class="lineno"> 606</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1VFG.html#a85360d0242ea7d2ec7da670f2cc17962">isInterestedPAGNode</a>(varFunArgNode))</div>
|
|
3077
3077
|
<div class="line"><a name="l00607"></a><span class="lineno"> 607</span>  {</div>
|
|
3078
3078
|
<div class="line"><a name="l00608"></a><span class="lineno"> 608</span>  <span class="keywordflow">for</span> (; csArgIt != csArgEit; csArgIt++)</div>
|
|
3079
3079
|
<div class="line"><a name="l00609"></a><span class="lineno"> 609</span>  {</div>
|
|
3080
3080
|
<div class="line"><a name="l00610"></a><span class="lineno"> 610</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">PAGNode</a> *cs_arg = *csArgIt;</div>
|
|
3081
|
-
<div class="line"><a name="l00611"></a><span class="lineno"> 611</span>  <span class="keywordflow">if</span> (
|
|
3081
|
+
<div class="line"><a name="l00611"></a><span class="lineno"> 611</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1VFG.html#a85360d0242ea7d2ec7da670f2cc17962">isInterestedPAGNode</a>(cs_arg))</div>
|
|
3082
3082
|
<div class="line"><a name="l00612"></a><span class="lineno"> 612</span>  <a class="code" href="classSVF_1_1SVFG.html#ac1acdf7bc468d7734359591e45f485fe">getInterVFEdgeAtIndCSFromAPToFP</a>(cs_arg, varFunArgNode, callICFGNode, csId, edges);</div>
|
|
3083
3083
|
<div class="line"><a name="l00613"></a><span class="lineno"> 613</span>  }</div>
|
|
3084
3084
|
<div class="line"><a name="l00614"></a><span class="lineno"> 614</span>  }</div>
|
|
@@ -3090,7 +3090,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
3090
3090
|
<div class="line"><a name="l00620"></a><span class="lineno"> 620</span>  {</div>
|
|
3091
3091
|
<div class="line"><a name="l00621"></a><span class="lineno"> 621</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">PAGNode</a>* cs_return = <a class="code" href="classSVF_1_1VFG.html#a25c2bbbc2e966e2aaa59a5b83363557a">pag</a>-><a class="code" href="classSVF_1_1SVFIR.html#a3145677c7a3763fc0d6aa7e21b264ab6">getCallSiteRet</a>(retICFGNode);</div>
|
|
3092
3092
|
<div class="line"><a name="l00622"></a><span class="lineno"> 622</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">PAGNode</a>* fun_return = <a class="code" href="classSVF_1_1VFG.html#a25c2bbbc2e966e2aaa59a5b83363557a">pag</a>-><a class="code" href="classSVF_1_1SVFIR.html#a34e27b8bcfeaafda190dcdb9169a346f">getFunRet</a>(callee);</div>
|
|
3093
|
-
<div class="line"><a name="l00623"></a><span class="lineno"> 623</span>  <span class="keywordflow">if</span> (
|
|
3093
|
+
<div class="line"><a name="l00623"></a><span class="lineno"> 623</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1VFG.html#a85360d0242ea7d2ec7da670f2cc17962">isInterestedPAGNode</a>(cs_return) && <a class="code" href="classSVF_1_1VFG.html#a85360d0242ea7d2ec7da670f2cc17962">isInterestedPAGNode</a>(fun_return))</div>
|
|
3094
3094
|
<div class="line"><a name="l00624"></a><span class="lineno"> 624</span>  <a class="code" href="classSVF_1_1SVFG.html#ab2b969b7d5922427622dd875e6b8fe14">getInterVFEdgeAtIndCSFromFRToAR</a>(fun_return, cs_return, csId, edges);</div>
|
|
3095
3095
|
<div class="line"><a name="l00625"></a><span class="lineno"> 625</span>  }</div>
|
|
3096
3096
|
<div class="line"><a name="l00626"></a><span class="lineno"> 626</span>  </div>
|
|
@@ -4807,7 +4807,6 @@ Additional Inherited Members</h2></td></tr>
|
|
|
4807
4807
|
<div class="ttc" id="aclassSVF_1_1VFGNode_html_ab98e74dfd4756e70e3e3c5b7d5e5ae27"><div class="ttname"><a href="classSVF_1_1VFGNode.html#ab98e74dfd4756e70e3e3c5b7d5e5ae27">SVF::VFGNode::getFun</a></div><div class="ttdeci">virtual const SVFFunction * getFun() const</div><div class="ttdoc">Get the function of this SVFGNode.</div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00084">VFGNode.h:84</a></div></div>
|
|
4808
4808
|
<div class="ttc" id="aclassSVF_1_1ICFG_html_aa41516cdd2be5066adf22798a4fe2213"><div class="ttname"><a href="classSVF_1_1ICFG.html#aa41516cdd2be5066adf22798a4fe2213">SVF::ICFG::getCallICFGNode</a></div><div class="ttdeci">CallICFGNode * getCallICFGNode(const SVFInstruction *inst)</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#l00237">ICFG.cpp:237</a></div></div>
|
|
4809
4809
|
<div class="ttc" id="aclassSVF_1_1CallCHI_html"><div class="ttname"><a href="classSVF_1_1CallCHI.html">SVF::CallCHI</a></div><div class="ttdef"><b>Definition:</b> <a href="MSSAMuChi_8h_source.html#l00521">MSSAMuChi.h:521</a></div></div>
|
|
4810
|
-
<div class="ttc" id="aclassSVF_1_1SVFVar_html_a3b61042079a6c9dc395f38925c6a1271"><div class="ttname"><a href="classSVF_1_1SVFVar.html#a3b61042079a6c9dc395f38925c6a1271">SVF::SVFVar::isPointer</a></div><div class="ttdeci">virtual bool isPointer() const</div><div class="ttdoc">Whether it is a pointer.</div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00117">SVFVariables.h:117</a></div></div>
|
|
4811
4810
|
<div class="ttc" id="aclassSVF_1_1ICFG_html_a881fe977f3a6fde223bd786121e35fcf"><div class="ttname"><a href="classSVF_1_1ICFG.html#a881fe977f3a6fde223bd786121e35fcf">SVF::ICFG::getRetICFGNode</a></div><div class="ttdeci">RetICFGNode * getRetICFGNode(const SVFInstruction *inst)</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#l00250">ICFG.cpp:250</a></div></div>
|
|
4812
4811
|
<div class="ttc" id="aclassSVF_1_1SVFG_html_a475205e221890204c7770c414ee63975"><div class="ttname"><a href="classSVF_1_1SVFG.html#a475205e221890204c7770c414ee63975">SVF::SVFG::getActualINSVFGNodes</a></div><div class="ttdeci">ActualINSVFGNodeSet & getActualINSVFGNodes(const CallICFGNode *cs)</div><div class="ttdoc">Get SVFGNode set.</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00209">SVFG.h:209</a></div></div>
|
|
4813
4812
|
<div class="ttc" id="aclassSVF_1_1Options_html_a034a83cdac580c1f8b10805e29ca50e4"><div class="ttname"><a href="classSVF_1_1Options.html#a034a83cdac580c1f8b10805e29ca50e4">SVF::Options::ReadSVFG</a></div><div class="ttdeci">static const Option< std::string > ReadSVFG</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00164">Options.h:164</a></div></div>
|
|
@@ -4872,6 +4871,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
4872
4871
|
<div class="ttc" id="aclassSVF_1_1CallMU_html"><div class="ttname"><a href="classSVF_1_1CallMU.html">SVF::CallMU</a></div><div class="ttdef"><b>Definition:</b> <a href="MSSAMuChi_8h_source.html#l00221">MSSAMuChi.h:221</a></div></div>
|
|
4873
4872
|
<div class="ttc" id="aclassSVF_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#l00406">GenericGraph.h:406</a></div></div>
|
|
4874
4873
|
<div class="ttc" id="aclassSVF_1_1SVFGStat_html_a037600bfff11659542f8595d8700dec4"><div class="ttname"><a href="classSVF_1_1SVFGStat.html#a037600bfff11659542f8595d8700dec4">SVF::SVFGStat::performStat</a></div><div class="ttdeci">virtual void performStat() override</div><div class="ttdef"><b>Definition:</b> <a href="SVFGStat_8cpp_source.html#l00178">SVFGStat.cpp:178</a></div></div>
|
|
4874
|
+
<div class="ttc" id="aclassSVF_1_1VFG_html_a85360d0242ea7d2ec7da670f2cc17962"><div class="ttname"><a href="classSVF_1_1VFG.html#a85360d0242ea7d2ec7da670f2cc17962">SVF::VFG::isInterestedPAGNode</a></div><div class="ttdeci">virtual bool isInterestedPAGNode(const SVFVar *node) const</div><div class="ttdef"><b>Definition:</b> <a href="VFG_8h_source.html#l00444">VFG.h:444</a></div></div>
|
|
4875
4875
|
<div class="ttc" id="aclassSVF_1_1MRSVFGNode_html_a28fe266d0e4618aa4448aa218495a332"><div class="ttname"><a href="classSVF_1_1MRSVFGNode.html#a28fe266d0e4618aa4448aa218495a332">SVF::MRSVFGNode::getPointsTo</a></div><div class="ttdeci">const NodeBS & getPointsTo() const</div><div class="ttdoc">Return points-to of the MR.</div><div class="ttdef"><b>Definition:</b> <a href="SVFGNode_8h_source.html#l00052">SVFGNode.h:52</a></div></div>
|
|
4876
4876
|
<div class="ttc" id="aclassSVF_1_1EntryCHI_html"><div class="ttname"><a href="classSVF_1_1EntryCHI.html">SVF::EntryCHI</a></div><div class="ttdef"><b>Definition:</b> <a href="MSSAMuChi_8h_source.html#l00578">MSSAMuChi.h:578</a></div></div>
|
|
4877
4877
|
<div class="ttc" id="aclassSVF_1_1SVFG_html_a804824faa3a042cb1b63edd9e9eb7207"><div class="ttname"><a href="classSVF_1_1SVFG.html#a804824faa3a042cb1b63edd9e9eb7207">SVF::SVFG::addFormalOUTSVFGNode</a></div><div class="ttdeci">void addFormalOUTSVFGNode(const FunExitICFGNode *funExit, const MRVer *ver, const NodeID nodeId)</div><div class="ttdoc">Add memory Function return mu SVFG node.</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00411">SVFG.h:411</a></div></div>
|
|
@@ -2521,7 +2521,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
2521
2521
|
<div class="line"><a name="l00987"></a><span class="lineno"> 987</span>  {</div>
|
|
2522
2522
|
<div class="line"><a name="l00988"></a><span class="lineno"> 988</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">PAGNode</a> *cs_arg = *csArgIt;</div>
|
|
2523
2523
|
<div class="line"><a name="l00989"></a><span class="lineno"> 989</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">PAGNode</a> *fun_arg = *funArgIt;</div>
|
|
2524
|
-
<div class="line"><a name="l00990"></a><span class="lineno"> 990</span>  <span class="keywordflow">if</span> (
|
|
2524
|
+
<div class="line"><a name="l00990"></a><span class="lineno"> 990</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1VFG.html#a85360d0242ea7d2ec7da670f2cc17962">isInterestedPAGNode</a>(cs_arg) && <a class="code" href="classSVF_1_1VFG.html#a85360d0242ea7d2ec7da670f2cc17962">isInterestedPAGNode</a>(fun_arg))</div>
|
|
2525
2525
|
<div class="line"><a name="l00991"></a><span class="lineno"> 991</span>  <a class="code" href="classSVF_1_1VFG.html#a2c508fbf07bad33d5b56d2acc6e012d3">connectAParamAndFParam</a>(cs_arg, fun_arg, callBlockNode, csId, edges);</div>
|
|
2526
2526
|
<div class="line"><a name="l00992"></a><span class="lineno"> 992</span>  }</div>
|
|
2527
2527
|
<div class="line"><a name="l00993"></a><span class="lineno"> 993</span>  assert(funArgIt == funArgEit && <span class="stringliteral">"function has more arguments than call site"</span>);</div>
|
|
@@ -2530,12 +2530,12 @@ Additional Inherited Members</h2></td></tr>
|
|
|
2530
2530
|
<div class="line"><a name="l00996"></a><span class="lineno"> 996</span>  {</div>
|
|
2531
2531
|
<div class="line"><a name="l00997"></a><span class="lineno"> 997</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> varFunArg = <a class="code" href="classSVF_1_1VFG.html#a25c2bbbc2e966e2aaa59a5b83363557a">pag</a>-><a class="code" href="classSVF_1_1IRGraph.html#a8b10c318674a47035d617b3ade4f069b">getVarargNode</a>(callee);</div>
|
|
2532
2532
|
<div class="line"><a name="l00998"></a><span class="lineno"> 998</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">PAGNode</a>* varFunArgNode = <a class="code" href="classSVF_1_1VFG.html#a25c2bbbc2e966e2aaa59a5b83363557a">pag</a>-><a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(varFunArg);</div>
|
|
2533
|
-
<div class="line"><a name="l00999"></a><span class="lineno"> 999</span>  <span class="keywordflow">if</span> (
|
|
2533
|
+
<div class="line"><a name="l00999"></a><span class="lineno"> 999</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1VFG.html#a85360d0242ea7d2ec7da670f2cc17962">isInterestedPAGNode</a>(varFunArgNode))</div>
|
|
2534
2534
|
<div class="line"><a name="l01000"></a><span class="lineno"> 1000</span>  {</div>
|
|
2535
2535
|
<div class="line"><a name="l01001"></a><span class="lineno"> 1001</span>  <span class="keywordflow">for</span> (; csArgIt != csArgEit; csArgIt++)</div>
|
|
2536
2536
|
<div class="line"><a name="l01002"></a><span class="lineno"> 1002</span>  {</div>
|
|
2537
2537
|
<div class="line"><a name="l01003"></a><span class="lineno"> 1003</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">PAGNode</a> *cs_arg = *csArgIt;</div>
|
|
2538
|
-
<div class="line"><a name="l01004"></a><span class="lineno"> 1004</span>  <span class="keywordflow">if</span> (
|
|
2538
|
+
<div class="line"><a name="l01004"></a><span class="lineno"> 1004</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1VFG.html#a85360d0242ea7d2ec7da670f2cc17962">isInterestedPAGNode</a>(cs_arg))</div>
|
|
2539
2539
|
<div class="line"><a name="l01005"></a><span class="lineno"> 1005</span>  <a class="code" href="classSVF_1_1VFG.html#a2c508fbf07bad33d5b56d2acc6e012d3">connectAParamAndFParam</a>(cs_arg, varFunArgNode, callBlockNode, csId, edges);</div>
|
|
2540
2540
|
<div class="line"><a name="l01006"></a><span class="lineno"> 1006</span>  }</div>
|
|
2541
2541
|
<div class="line"><a name="l01007"></a><span class="lineno"> 1007</span>  }</div>
|
|
@@ -2547,7 +2547,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
2547
2547
|
<div class="line"><a name="l01013"></a><span class="lineno"> 1013</span>  {</div>
|
|
2548
2548
|
<div class="line"><a name="l01014"></a><span class="lineno"> 1014</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">PAGNode</a>* cs_return = <a class="code" href="classSVF_1_1VFG.html#a25c2bbbc2e966e2aaa59a5b83363557a">pag</a>-><a class="code" href="classSVF_1_1SVFIR.html#a3145677c7a3763fc0d6aa7e21b264ab6">getCallSiteRet</a>(retBlockNode);</div>
|
|
2549
2549
|
<div class="line"><a name="l01015"></a><span class="lineno"> 1015</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">PAGNode</a>* fun_return = <a class="code" href="classSVF_1_1VFG.html#a25c2bbbc2e966e2aaa59a5b83363557a">pag</a>-><a class="code" href="classSVF_1_1SVFIR.html#a34e27b8bcfeaafda190dcdb9169a346f">getFunRet</a>(callee);</div>
|
|
2550
|
-
<div class="line"><a name="l01016"></a><span class="lineno"> 1016</span>  <span class="keywordflow">if</span> (
|
|
2550
|
+
<div class="line"><a name="l01016"></a><span class="lineno"> 1016</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1VFG.html#a85360d0242ea7d2ec7da670f2cc17962">isInterestedPAGNode</a>(cs_return) && <a class="code" href="classSVF_1_1VFG.html#a85360d0242ea7d2ec7da670f2cc17962">isInterestedPAGNode</a>(fun_return))</div>
|
|
2551
2551
|
<div class="line"><a name="l01017"></a><span class="lineno"> 1017</span>  <a class="code" href="classSVF_1_1VFG.html#ab4e8ab307ad6beb46812a60ebd31ae3b">connectFRetAndARet</a>(fun_return, cs_return, csId, edges);</div>
|
|
2552
2552
|
<div class="line"><a name="l01018"></a><span class="lineno"> 1018</span>  }</div>
|
|
2553
2553
|
<div class="line"><a name="l01019"></a><span class="lineno"> 1019</span> }</div>
|
|
@@ -4837,7 +4837,6 @@ Additional Inherited Members</h2></td></tr>
|
|
|
4837
4837
|
<div class="ttc" id="aclassSVF_1_1SVFVar_html_a9b00f9b5f8ad2422162f4396e2d8fa42"><div class="ttname"><a href="classSVF_1_1SVFVar.html#a9b00f9b5f8ad2422162f4396e2d8fa42">SVF::SVFVar::hasOutgoingEdges</a></div><div class="ttdeci">bool hasOutgoingEdges(SVFStmt::PEDGEK kind) const</div><div class="ttdoc">Has outgoing SVFIR statements (edges)</div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00167">SVFVariables.h:167</a></div></div>
|
|
4838
4838
|
<div class="ttc" id="aclassSVF_1_1SVFStmt_html_a8cd7b6c6fd8b030b1421d95a086359f4"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a8cd7b6c6fd8b030b1421d95a086359f4">SVF::SVFStmt::SVFStmtSetTy</a></div><div class="ttdeci">GenericNode< SVFVar, SVFStmt >::GEdgeSetTy SVFStmtSetTy</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00217">SVFStatements.h:217</a></div></div>
|
|
4839
4839
|
<div class="ttc" id="aclassSVF_1_1ICFG_html_aa41516cdd2be5066adf22798a4fe2213"><div class="ttname"><a href="classSVF_1_1ICFG.html#aa41516cdd2be5066adf22798a4fe2213">SVF::ICFG::getCallICFGNode</a></div><div class="ttdeci">CallICFGNode * getCallICFGNode(const SVFInstruction *inst)</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#l00237">ICFG.cpp:237</a></div></div>
|
|
4840
|
-
<div class="ttc" id="aclassSVF_1_1SVFVar_html_a3b61042079a6c9dc395f38925c6a1271"><div class="ttname"><a href="classSVF_1_1SVFVar.html#a3b61042079a6c9dc395f38925c6a1271">SVF::SVFVar::isPointer</a></div><div class="ttdeci">virtual bool isPointer() const</div><div class="ttdoc">Whether it is a pointer.</div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00117">SVFVariables.h:117</a></div></div>
|
|
4841
4840
|
<div class="ttc" id="aclassSVF_1_1ICFG_html_a881fe977f3a6fde223bd786121e35fcf"><div class="ttname"><a href="classSVF_1_1ICFG.html#a881fe977f3a6fde223bd786121e35fcf">SVF::ICFG::getRetICFGNode</a></div><div class="ttdeci">RetICFGNode * getRetICFGNode(const SVFInstruction *inst)</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#l00250">ICFG.cpp:250</a></div></div>
|
|
4842
4841
|
<div class="ttc" id="aclassSVF_1_1CallPE_html"><div class="ttname"><a href="classSVF_1_1CallPE.html">SVF::CallPE</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00545">SVFStatements.h:545</a></div></div>
|
|
4843
4842
|
<div class="ttc" id="aclassSVF_1_1GenericNode_html_ac3e55ef37aefb411ea4c87b1aa3b1895"><div class="ttname"><a href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">SVF::GenericNode::getId</a></div><div class="ttdeci">NodeID getId() const</div><div class="ttdoc">Get ID.</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00180">GenericGraph.h:180</a></div></div>
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "svf-tools",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.822",
|
|
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": {
|
package/svf/lib/Graphs/SVFG.cpp
CHANGED
|
@@ -595,7 +595,7 @@ void SVFG::getInterVFEdgesForIndirectCallSite(const CallICFGNode* callICFGNode,
|
|
|
595
595
|
{
|
|
596
596
|
const PAGNode *cs_arg = *csArgIt;
|
|
597
597
|
const PAGNode *fun_arg = *funArgIt;
|
|
598
|
-
if (fun_arg
|
|
598
|
+
if (isInterestedPAGNode(fun_arg) && isInterestedPAGNode(cs_arg))
|
|
599
599
|
getInterVFEdgeAtIndCSFromAPToFP(cs_arg, fun_arg, callICFGNode, csId, edges);
|
|
600
600
|
}
|
|
601
601
|
assert(funArgIt == funArgEit && "function has more arguments than call site");
|
|
@@ -603,12 +603,12 @@ void SVFG::getInterVFEdgesForIndirectCallSite(const CallICFGNode* callICFGNode,
|
|
|
603
603
|
{
|
|
604
604
|
NodeID varFunArg = pag->getVarargNode(callee);
|
|
605
605
|
const PAGNode* varFunArgNode = pag->getGNode(varFunArg);
|
|
606
|
-
if (varFunArgNode
|
|
606
|
+
if (isInterestedPAGNode(varFunArgNode))
|
|
607
607
|
{
|
|
608
608
|
for (; csArgIt != csArgEit; csArgIt++)
|
|
609
609
|
{
|
|
610
610
|
const PAGNode *cs_arg = *csArgIt;
|
|
611
|
-
if (cs_arg
|
|
611
|
+
if (isInterestedPAGNode(cs_arg))
|
|
612
612
|
getInterVFEdgeAtIndCSFromAPToFP(cs_arg, varFunArgNode, callICFGNode, csId, edges);
|
|
613
613
|
}
|
|
614
614
|
}
|
|
@@ -620,7 +620,7 @@ void SVFG::getInterVFEdgesForIndirectCallSite(const CallICFGNode* callICFGNode,
|
|
|
620
620
|
{
|
|
621
621
|
const PAGNode* cs_return = pag->getCallSiteRet(retICFGNode);
|
|
622
622
|
const PAGNode* fun_return = pag->getFunRet(callee);
|
|
623
|
-
if (cs_return
|
|
623
|
+
if (isInterestedPAGNode(cs_return) && isInterestedPAGNode(fun_return))
|
|
624
624
|
getInterVFEdgeAtIndCSFromFRToAR(fun_return, cs_return, csId, edges);
|
|
625
625
|
}
|
|
626
626
|
|
package/svf/lib/Graphs/VFG.cpp
CHANGED
|
@@ -987,7 +987,7 @@ void VFG::connectCallerAndCallee(const CallICFGNode* callBlockNode, const SVFFun
|
|
|
987
987
|
{
|
|
988
988
|
const PAGNode *cs_arg = *csArgIt;
|
|
989
989
|
const PAGNode *fun_arg = *funArgIt;
|
|
990
|
-
if (
|
|
990
|
+
if (isInterestedPAGNode(cs_arg) && isInterestedPAGNode(fun_arg))
|
|
991
991
|
connectAParamAndFParam(cs_arg, fun_arg, callBlockNode, csId, edges);
|
|
992
992
|
}
|
|
993
993
|
assert(funArgIt == funArgEit && "function has more arguments than call site");
|
|
@@ -996,12 +996,12 @@ void VFG::connectCallerAndCallee(const CallICFGNode* callBlockNode, const SVFFun
|
|
|
996
996
|
{
|
|
997
997
|
NodeID varFunArg = pag->getVarargNode(callee);
|
|
998
998
|
const PAGNode* varFunArgNode = pag->getGNode(varFunArg);
|
|
999
|
-
if (varFunArgNode
|
|
999
|
+
if (isInterestedPAGNode(varFunArgNode))
|
|
1000
1000
|
{
|
|
1001
1001
|
for (; csArgIt != csArgEit; csArgIt++)
|
|
1002
1002
|
{
|
|
1003
1003
|
const PAGNode *cs_arg = *csArgIt;
|
|
1004
|
-
if (cs_arg
|
|
1004
|
+
if (isInterestedPAGNode(cs_arg))
|
|
1005
1005
|
connectAParamAndFParam(cs_arg, varFunArgNode, callBlockNode, csId, edges);
|
|
1006
1006
|
}
|
|
1007
1007
|
}
|
|
@@ -1013,7 +1013,7 @@ void VFG::connectCallerAndCallee(const CallICFGNode* callBlockNode, const SVFFun
|
|
|
1013
1013
|
{
|
|
1014
1014
|
const PAGNode* cs_return = pag->getCallSiteRet(retBlockNode);
|
|
1015
1015
|
const PAGNode* fun_return = pag->getFunRet(callee);
|
|
1016
|
-
if (cs_return
|
|
1016
|
+
if (isInterestedPAGNode(cs_return) && isInterestedPAGNode(fun_return))
|
|
1017
1017
|
connectFRetAndARet(fun_return, cs_return, csId, edges);
|
|
1018
1018
|
}
|
|
1019
1019
|
}
|