<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">Hi Chandler,<div><br></div><div>This looks great to me. Please apply!</div><div><br><div><div>On Jan 7, 2011, at 1:07 AM, Chandler Carruth wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite">Sorry for the flurry of emails... I got interested in this.<br><br><div class="gmail_quote">On Thu, Jan 6, 2011 at 11:09 PM, Chandler Carruth <span dir="ltr"><<a href="mailto:chandlerc@google.com" target="_blank">chandlerc@google.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">I tried just turning on the implicit dtor support in the CFGBuilder, since we actually have at least some support for it now, and indeed that made all of the warnings in this file go away, but it did very very bad things to the unreachable code warning test, so I fear the explosion in CFG size is just too much.</blockquote>
</div><br><div>So, I thought this was just the CFG size, but when it didn't finish after quite some time, I started to think bug. Turns out it was a pretty trivial inf-loop in the -Wunreachable-code implementation. I've attached a patch that both fixes the inf-loop, and turns on implicit destructor CFG elements (as well as initialzers), completely fixing these issues. It survived the test suite, and running over some large codebases.</div>
<div><br></div><div>I've done some initial benchmarking on the all-std-headers.cpp file, as well as two very large C++ files from our codebase, and I'm seeing little to no impact, any measurements come out below 1%, and into the noise floor.</div>
<div><br></div><div>Does this look viable to you?</div>
<span><fix-noreturn-dtors.patch></span></blockquote></div><br></div></body></html>