<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Tue, Nov 11, 2014 at 6:00 PM, 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: Tue Nov 11 20:00:47 2014<br>
New Revision: 221750<br>
<br>
URL: <a href="http://llvm.org/viewvc/llvm-project?rev=221750&view=rev" target="_blank">http://llvm.org/viewvc/llvm-project?rev=221750&view=rev</a><br>
Log:<br>
Instantiate exception specifications when instantiating function types (other<br>
than the type of a function declaration). We previously didn't instantiate<br>
these at all! This also covers the pathological case where the only mention of<br>
a parameter pack is within the exception specification; this gives us a second<br>
way (other than alias templates) to reach the horrible state where a type<br>
contains an unexpanded pack, but its canonical type does not.<br>
<br>
<br>
This is a re-commit of r219977:<br>
<br>
r219977 was reverted in r220038 because it hit a wrong-code bug in GCC 4.7.2.<br>
(That's <a href="http://gcc.gnu.org/PR56135" target="_blank">gcc.gnu.org/PR56135</a>, and affects any implicit lambda-capture of<br>
'this' within a template.)<br>
<br>
<br>
r219977 was a re-commit of r217995, r218011, and r218053:<br>
<br>
r217995 was reverted in r218058 because it hit a rejects-valid bug in MSVC.<br>
(Incorrect overload resolution in the presence of using-declarations.)<br>
It was re-committed in r219977 with a workaround for the MSVC rejects-valid.<br>
<br>
r218011 was a workaround for an MSVC parser bug. (Incorrect desugaring of<br>
unbraced range-based for loop).<br></blockquote><div><br></div><div>... and this causes GCC 4.7.2 to ICE. Hell is other compilers.</div></div></div></div>