C++ PATCH for c++/47049 (ICE with lambda in template)

Jason Merrill jason@redhat.com
Sat May 28 13:28:00 GMT 2011


The problem with this testcase was that we were trying to generate the 
mangled name of an uninstantiated lambda; we shouldn't ever try to 
mangle an uninstantiated template.  So I changed 
start_preparsed_function to avoid that.  After that was fixed, I found 
that I also needed to modify maybe_add_lambda_conv_op so that it would 
get the right comdat group for op() even if it hasn't been instantiated yet.

To guard against similar problems in future I added an assert to 
mangle_decl_string so that we don't try to mangle templates anymore. 
This revealed an issue with the #pragma interface code, also fixed.

Tested x86_64-pc-linux-gnu, applying to trunk.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 47049.patch
Type: text/x-patch
Size: 3778 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20110528/0dc7e262/attachment.bin>


More information about the Gcc-patches mailing list