<html><head><meta http-equiv="Content-Type" content="text/html charset=windows-1252"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;"><br><div><div>On Dec 16, 2013, at 6:57 , Daniel Connelly <<a href="mailto:dconnelly@google.com">dconnelly@google.com</a>> wrote:</div><br><blockquote type="cite"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">
On Fri, Dec 13, 2013 at 7:13 PM, Jordan Rose <span dir="ltr"><<a href="mailto:jordan_rose@apple.com" target="_blank">jordan_rose@apple.com</a>></span> wrote:<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 style="word-wrap:break-word"><div><br></div><div>In discussing the first problem, Ted and Anna realized that the liveness information for nested && and || expressions was still incorrect: the outermost expression may potentially depend on all of the inner expressions, but that means that those sub-expressions are <i>always</i> considered live (since expressions are marked dead, in a reverse analysis, at the point of evaluation, and there are paths that don't evaluate a particular sub-expression in a complex logical expression). This wasn't an issue before because && and || didn't actually use those expressions to compute their value, but it's still incorrect.</div>


</div></blockquote><div><br></div><div>Is this <a href="http://llvm.org/bugs/show_bug.cgi?id=18159">http://llvm.org/bugs/show_bug.cgi?id=18159</a> ?</div></div></div></div></blockquote><div><br></div>Yes.</div><div><br></div><div><blockquote type="cite"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">Thanks for the overview. This is all pretty new to me, so I'm going to dig into the problem for a couple of days and hopefully come up with some intelligent questions.</div></div></div></blockquote><div><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><br></div><div class="gmail_quote">Sorry for the blast of information. If you want an easier place to start playing with the analyzer, you could try hacking on productizing SimpleStreamChecker. (And if you haven't watched our talk from last year's LLVM dev meeting, I definitely suggest taking the time to do so. It's aimed at checker writers, but still describes the general structure of the analyzer. It's linked near the top of <a href="http://clang-analyzer.llvm.org/checker_dev_manual.html">http://clang-analyzer.llvm.org/checker_dev_manual.html</a>)</div><div class="gmail_quote"><br></div><div class="gmail_quote">Jordan</div></div></div></div></div></body></html>