<html><head><meta http-equiv="Content-Type" content="text/html charset=iso-8859-1"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div>I think you mean cross-translation-unit analysis. IPA within one translation unit has been supported for a while. Just to be sure, does your example work if you put definitions of DummyTransaction's methods in the same translation unit?</div><div><br></div><div>Jordan</div><div><br></div><div><br></div><div><div>On May 2, 2013, at 8:16 , Gábor Kozár <<a href="mailto:kozargabor@gmail.com">kozargabor@gmail.com</a>> wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div dir="ltr"><div><div>Hi,<br><br></div>Never mind this e-mail, I realized that tracking this would involve inter-procedural analysis, which the Static Analyzer currently does not support.<br><br></div><div>Sorry for the spam!<br>
</div><div><br></div>Gabor<br></div><div class="gmail_extra"><br><br><div class="gmail_quote">2013/4/30 Gábor Kozár <span dir="ltr"><<a href="mailto:kozargabor@gmail.com" target="_blank">kozargabor@gmail.com</a>></span><br>
<blockquote class="gmail_quote" style="margin: 0px 0px 0px 0.8ex; border-left-width: 1px; border-left-color: rgb(204, 204, 204); border-left-style: solid; padding-left: 1ex; position: static; z-index: auto; "><div dir="ltr"><div><div><div><div>Hi,<br><br></div>I need to write a checker to make sure that the state of the transaction is checked after commit. This is working fine is basic cases, but it seems to fail when I introduce any level of indirection. For example, consider the following:<br>
<br>class TransactionPtr<br>{<br>public:<br> TransactionPtr(DummyTransaction& tr) : m_tr(tr) {}<br><br> DummyTransaction* getTransaction() { return &m_tr; }<br> <br>private:<br> DummyTransaction& m_tr;<br>
};<br><br>int main(int argc, char* argv[])<br>{<br> DummyTransaction tr;<br> TransactionPtr trp(tr);<br> <br> trp.getTransaction()->commit();<br> <br> if(tr.isSuccessful()) return 0;<br> else return 1;<br>
}<br><br></div>Running my checker on this reveals that the analyzer has no idea of the connection between trp.m_tr and tr, and so it fails to detect an issue with the above code.<br><br></div><div>I also tried checkBind(), but it is not called in relation to the TransactionPtr trp(tr); line.<br>
</div><div><br></div>Is this a known limitation, or am I missing something here? I also tried getBaseRegion(), getSuperRegion(), which didn't lead anywhere. getMemorySpace() on the other hand points to UnknownSpaceRegion.<br>
<br></div>Thanks!<br><br>Gabor<br></div>
</blockquote></div><br></div>
_______________________________________________<br>cfe-dev mailing list<br><a href="mailto:cfe-dev@cs.uiuc.edu">cfe-dev@cs.uiuc.edu</a><br>http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev<br></blockquote></div><br></body></html>