<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 Oct 29, 2012, at 16:19 , Jordan Rose <<a href="mailto:jordan_rose@apple.com">jordan_rose@apple.com</a>> wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><meta http-equiv="Content-Type" content="text/html charset=windows-1252"><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;"><br><div><div>On Oct 29, 2012, at 15:51 , Anna Zaks <<a href="mailto:ganna@apple.com">ganna@apple.com</a>> wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite">+ExplodedNode *SimpleStreamChecker::reportLeaks(SymbolVector LeakedStreams,</blockquote><blockquote type="cite">+                                               CheckerContext &C) const {<br>+  ExplodedNode *Pred = C.getPredecessor();<br>+  if (LeakedStreams.empty())<br>+    return Pred;<br>+<br>+  // Generate an intermediate node representing the leak point.<br>+  static SimpleProgramPointTag Tag("StreamChecker : Leak");<br>+  ExplodedNode *ErrNode = C.addTransition(Pred->getState(), Pred, &Tag);<br>+  if (!ErrNode)<br>+    return Pred;<br></blockquote><div><br></div><div>Why generate an intermediate node at all? I feel like we could just generate the transition in the caller and then report all the leaks here.</div></div></div></blockquote><br></div><div>Oops, actually this is a bug, even in the final version (next commit). Two addTransition calls = bifurcation.</div><br></body></html>