Hi,<br><br>I believe shouldHaveNodeForValue() should return false for ConstantPointerNullValue. <br><br>Fixed in r121707.<br><br>Arushi<br><br><br><div class="gmail_quote">On Mon, Dec 13, 2010 at 12:10 PM, Kevin Streit <span dir="ltr"><<a href="mailto:kevin.streit@googlemail.com">kevin.streit@googlemail.com</a>></span> wrote:<br>

<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;"><p>I'm using BUDataStructures... But I tried LocalDatastructures and it didn't work either...</p>

<div><div></div><div class="h5">
<div class="gmail_quote">On Dec 13, 2010 6:52 PM, "Arushi Aggarwal" <<a href="mailto:arushi987@gmail.com" target="_blank">arushi987@gmail.com</a>> wrote:<br type="attribution">> Hi,<br>> <br>> Which DSA pass are you using, local/bu/td? I can try looking at this once I<br>


> know that.<br>> <br>> Arushi<br>> <br>> <br>> On Mon, Dec 13, 2010 at 11:26 AM, Kevin Streit<br>> <<a href="mailto:kevin.streit@googlemail.com" target="_blank">kevin.streit@googlemail.com</a>>wrote:<br>

> <br>
>> Hi,<br>>><br>>> I'm using DSAnalysis in order to get some points to information. In my<br>>> particular case for a CallSite.<br>>> Everything is working well except for some special cases. Consider the<br>


>> following example code:<br>>><br>>> // ======================<br>>><br>>>   void m(short *s) {<br>>>       return;<br>>>   }<br>>><br>>>   int main() {<br>>>       m(0);<br>


>>   }<br>>><br>>> // ======================<br>>><br>>> The call to method m in the main method is translated to "call void @m(i16*<br>>> null) nounwind ssp".<br>>> If I try to call getDSCallSiteForCallSite(...) with the above mentioned<br>


>> CallSite as argument on the DSGraph of the main method I get a failing<br>>> assertion when the getDSCallSiteForCallSite method tries to get the DSNode<br>>> (via getNodeForValue(...)) for the "i16* null" argument. So it obviously<br>


>> thinks it should have a node for that value (since<br>>> shouldHaveNodeForValue(i16* null) returns true) and thus calls<br>>> getNodeForValue, which raises the error (The node is not contained in the<br>


>> ScalarMap).<br>>><br>>> I tried to verify if I'm using the analysis correctly by invoking the<br>>> poolalloc tool on the program which raises a completely different error.<br>>><br>>> So under which circumstances is it safe to call getDSCallSiteForCallSite?<br>


>><br>>> Or stated otherwise: Should shouldHaveNodeForValue() return true for a<br>>> ConstantPointerNullValue?<br>>><br>>> Thanks, Kevin<br>>><br>>><br>>> _______________________________________________<br>


>> LLVM Developers mailing list<br>>> <a href="mailto:LLVMdev@cs.uiuc.edu" target="_blank">LLVMdev@cs.uiuc.edu</a>         <a href="http://llvm.cs.uiuc.edu" target="_blank">http://llvm.cs.uiuc.edu</a><br>>> <a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev</a><br>


>><br>>><br></div>
</div></div></blockquote></div><br>