<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css" style="display:none;"><!-- P {margin-top:0;margin-bottom:0;} --></style>
</head>
<body dir="ltr">
<div id="divtagdefaultwrapper" style="font-size:12pt;color:#000000;font-family:Calibri,Helvetica,sans-serif;" dir="ltr">
<p>Dear Soot Developers,</p>
<p>Hope everything fine recently.</p>
<p>I use soot to get method PDG graph from soot-4.2.1-jar-with-dependencies.jar,</p>
<p><br>
</p>
<p>I am using <span>HashMutablePDG of </span>Soot and I use it to get the PDG graph of each method but I get two issues from the method <span style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;">constructPDG</span><span style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;"> of </span><span style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;">HashMutablePDG.java </span>:</p>
<p><span style="font-size: 12pt;">         1. ClassCastException soot.toolkits.graph.Block cannot be cast to soot.toolkits.graph.pdg.Region </span></p>
<div>             It happens in the code lines 432 and 433 in <span style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;">HashMutablePDG.java </span></div>
<div>
<div>             assert (succRPDGNode.getType() == PDGNode.Type.REGION);</div>
<div>             Region succR = (Region) succRPDGNode.getNode();</div>
</div>
<div><br>
</div>
<ol style="margin-bottom: 0px; margin-top: 0px;">
<li><span><span><span style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;">RuntimeException: </span>PDG construction: A and
 B are not supposed to be the same node!</span></span></li></ol>
<div>           It happens in the code line 200<span style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;"> in </span><span style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;">HashMutablePDG.java </span><span style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;"></span>
<div>          if (b.equals(a)) {</div>
<div>            throw new RuntimeException("PDG construction: A and B are not supposed to be the same node!");</div>
<div>          }</div>
<div><br>
</div>
<div>Log message is here:</div>
<div>
<div>java.lang.ClassCastException: soot.toolkits.graph.Block cannot be cast to soot.toolkits.graph.pdg.Region</div>
<div>fj.control.Trampoline</div>
<div>zipWith</div>
<div>java.lang.RuntimeException: PDG construction: A and B are not supposed to be the same node!</div>
<div>fj.test.Property$8$1</div>
<div>f</div>
<div>java.lang.RuntimeException: PDG construction: A and B are not supposed to be the same node!</div>
<div>fj.test.Gen$2</div>
<div>f</div>
<div>java.lang.ClassCastException: soot.toolkits.graph.Block cannot be cast to soot.toolkits.graph.pdg.Region</div>
<div>fj.test.Property</div>
<div>check</div>
<div>java.lang.NullPointerException</div>
<div>com.google.common.collect.Collections2$OrderedPermutationIterator</div>
<div>findNextL</div>
<div>java.lang.NullPointerException</div>
<div>com.google.common.collect.Iterators</div>
</div>
<div>................</div>
<div>................</div>
</div>
<p></p>
</div>
</body>
</html>