<html><body><div style="color:#000; background-color:#fff; font-family:Courier New, courier, monaco, monospace, sans-serif;font-size:13px"><div id="yui_3_16_0_1_1435795709338_30539"><span>Hi,</span></div><div id="yui_3_16_0_1_1435795709338_30539"><span><br></span></div><div id="yui_3_16_0_1_1435795709338_30539"><span id="yui_3_16_0_1_1435795709338_30739">I am using soot to perform pont-to-set analysis by following code:</span></div><div></div><div id="yui_3_16_0_1_1435795709338_30447"> </div><div id="yui_3_16_0_1_1435795709338_30447">
<div class="" id="yui_3_16_0_1_1435795709338_30538"><span class="" id="yui_3_16_0_1_1435795709338_30874">for</span> (MethodAnalysis <span class="" id="yui_3_16_0_1_1435795709338_30880">methodAnalysis</span> : <span class="">allAnalysis</span>.values()) {</div>
<div class="" id="yui_3_16_0_1_1435795709338_30541"> SootMethod <span class="" id="yui_3_16_0_1_1435795709338_30912">method</span> = <span class="">methodAnalysis</span>.getMethod();</div>
<div class="" id="yui_3_16_0_1_1435795709338_30542"> ExceptionalUnitGraph <span class="">graph</span> = <span class="" id="yui_3_16_0_1_1435795709338_30721">methodAnalysis</span>.getGraph();</div>
<div class="" id="yui_3_16_0_1_1435795709338_30543"><br class=""></div>
<div class="" id="yui_3_16_0_1_1435795709338_30545"> Iterator<Unit> <span class="" id="yui_3_16_0_1_1435795709338_30913">iter</span> = <span class="" id="yui_3_16_0_1_1435795709338_30907">graph</span>.iterator();</div>
<div class="" id="yui_3_16_0_1_1435795709338_30546"> <span class="" id="yui_3_16_0_1_1435795709338_30580">while</span> (<span class="" id="yui_3_16_0_1_1435795709338_30579">iter</span>.hasNext()) {</div>
<div class="" id="yui_3_16_0_1_1435795709338_30548"> Unit <span class="" id="yui_3_16_0_1_1435795709338_30547">unit</span> = <span class="" id="yui_3_16_0_1_1435795709338_30549">iter</span>.next();</div>
<div class="" id="yui_3_16_0_1_1435795709338_30561"> List<ValueBox> <span class="" id="yui_3_16_0_1_1435795709338_30560">valueBoxes</span> = <span class="" id="yui_3_16_0_1_1435795709338_30569">unit</span>.getUseAndDefBoxes();</div>
<div class="" id="yui_3_16_0_1_1435795709338_30568"> <span class="" id="yui_3_16_0_1_1435795709338_30581">for</span> (ValueBox <span class="" id="yui_3_16_0_1_1435795709338_30593">valueBox</span> : <span class="" id="yui_3_16_0_1_1435795709338_30696">valueBoxes</span>) {</div>
<div class="" id="yui_3_16_0_1_1435795709338_30577"> Value <span class="" id="yui_3_16_0_1_1435795709338_30594">value</span> = <span class="" id="yui_3_16_0_1_1435795709338_30595">valueBox</span>.getValue();</div>
<div class="" id="yui_3_16_0_1_1435795709338_30597"> <span class="" id="yui_3_16_0_1_1435795709338_30599">if</span> (<span class="" id="yui_3_16_0_1_1435795709338_30598">value</span> <span class="" id="yui_3_16_0_1_1435795709338_30596">instanceof</span> Local) {</div>
<div class="" id="yui_3_16_0_1_1435795709338_30600"> Local <span class="" id="yui_3_16_0_1_1435795709338_30601">local</span> = (Local) <span class="">value</span>;</div>
<div class="" id="yui_3_16_0_1_1435795709338_30602">
</div><div class="" dir="ltr" id="yui_3_16_0_1_1435795709338_30662"> PointsToSet <span class="" id="yui_3_16_0_1_1435795709338_30663">localPTSet</span> = <span class="" id="yui_3_16_0_1_1435795709338_30664">pta</span>.reachingObjects(local);</div><div class="" dir="ltr" id="yui_3_16_0_1_1435795709338_30662">
</div><div class="" dir="ltr" id="yui_3_16_0_1_1435795709338_30684"> PointsToSet <span class="" id="yui_3_16_0_1_1435795709338_30883">deadlinePTSet</span> = <span class="" id="yui_3_16_0_1_1435795709338_30716">pointsToSetMap</span>.get(<span class="">loc</span>);</div><div class="" dir="ltr" id="yui_3_16_0_1_1435795709338_30684">
</div><div class="" dir="ltr" id="yui_3_16_0_1_1435795709338_30695"><span class="" id="yui_3_16_0_1_1435795709338_30698"> if</span>(<span class="" id="yui_3_16_0_1_1435795709338_30697">localPTSet</span>.hasNonEmptyIntersection(<span class="" id="yui_3_16_0_1_1435795709338_30720">deadlinePTSet</span>)) {}</div>
<div class="" id="yui_3_16_0_1_1435795709338_30603"><span class="" id="yui_3_16_0_1_1435795709338_30604"> </span></div>
<div class="" id="yui_3_16_0_1_1435795709338_30643"> }</div>
<div class="" id="yui_3_16_0_1_1435795709338_30642"> }</div>
<div class="" id="yui_3_16_0_1_1435795709338_30641"><br class=""></div>
<div class="" id="yui_3_16_0_1_1435795709338_30625"> }</div>
<div class="" id="yui_3_16_0_1_1435795709338_30640"> }</div><div class="" id="yui_3_16_0_1_1435795709338_30640"><br></div><div class="" id="yui_3_16_0_1_1435795709338_30640" dir="ltr">The problem is that "<span class="" id="yui_3_16_0_1_1435795709338_30599">if</span> (<span class="" id="yui_3_16_0_1_1435795709338_30598">value</span> <span class="" id="yui_3_16_0_1_1435795709338_30596">instanceof</span> Local){} " statement is never executed. Is there any way to solve this issue? Can you give me a sample code on point-to-set analysis?</div><div class="" id="yui_3_16_0_1_1435795709338_30640" dir="ltr"><br></div><div class="" id="yui_3_16_0_1_1435795709338_30640" dir="ltr">Regards,</div><div class="" id="yui_3_16_0_1_1435795709338_30640" dir="ltr">Marjan</div>
<div class="" dir="ltr" id="yui_3_16_0_1_1435795709338_30624"> </div></div><div class="signature" id="yui_3_16_0_1_1435795709338_30445"><div class="yiv9426486400" id="yiv9426486400yui_3_16_0_1_1426188032239_18320" style="font-size:13px;font-family:'Helvetica Neue', 'Segoe UI', Helvetica, Arial, 'Lucida Grande', sans-serif;background-color:rgb(255, 255, 255);"><div class="yiv9426486400" id="yiv9426486400yui_3_16_0_1_1426188032239_71660" style="margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New Roman', serif;"><br></div></div></div></div></body></html>