<div dir="ltr"><br><div class="gmail_extra"><br><br><div class="gmail_quote">On Sun, Jul 27, 2014 at 8:12 AM, Richard Smith <span dir="ltr"><<a href="mailto:richard-llvm@metafoo.co.uk" target="_blank">richard-llvm@metafoo.co.uk</a>></span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Author: rsmith<br>
Date: Sun Jul 27 00:12:49 2014<br>
New Revision: 214050<br>
<br>
URL: <a href="http://llvm.org/viewvc/llvm-project?rev=214050&view=rev" target="_blank">http://llvm.org/viewvc/llvm-project?rev=214050&view=rev</a><br>
Log:<br>
When looking for temporary dtors while building the CFG, do not walk into<br>
lambda expressions (other than their capture initializers) nor blocks. Do walk<br>
into default argument expressions and default initializer expressions.<br>
<br>
These bugs were causing us to produce broken CFGs whenever a lambda expression<br>
was used to initialize a libstdc++ std::function object!<br>
<br>
Modified:<br>
    cfe/trunk/include/clang/AST/ExprCXX.h<br>
    cfe/trunk/lib/Analysis/CFG.cpp<br>
    cfe/trunk/test/SemaCXX/return-noreturn.cpp<br></blockquote><div><br></div><div>I guess this should go in the 3.5 branch.</div><div><br></div><div> </div></div></div></div>