[Bug c++/80767] Eager instantiation of generic lambda body when not required

jason at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Tue Aug 29 04:14:00 GMT 2017


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80767

Jason Merrill <jason at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2017-08-28
                 CC|                            |jason at gcc dot gnu.org
     Ever confirmed|0                           |1

--- Comment #2 from Jason Merrill <jason at gcc dot gnu.org> ---
(In reply to TC from comment #1)
> This is another manifestation of bug 71117.

It looks similar, but is actually a different bug.  In this case, we are
building a surrogate call function for the conversion operator of the
non-generic lambda (which CallFoo doesn't have).

The bug is that in generating the candidate for the surrogate call function, we
consider how overloader would convert to that target type, which means we
consider the conversion template of the generic lambda.

The standard seems to say that we shouldn't try to figure out that conversion
unless the surrogate call function is actually chosen by overload resolution.


More information about the Gcc-bugs mailing list