Is the real problem that we're entering the lambda scope too early? The
scope shoudn't start until we get to the body -- things referenced from
within the parameter-declaration-clause of the inner lambda should not be
captured by it, so the LSI->Lambda pointer for the inner lambda should
never be referenced until we're ready to capture.

On Wed, Apr 29, 2015 at 10:09 AM, Aaron Ballman <[email protected]>
wrote:

> Ping
>
> On Thu, Apr 23, 2015 at 11:31 AM, Aaron Ballman <[email protected]>
> wrote:
> > Ping
> >
> > On Fri, Apr 10, 2015 at 10:08 AM, Aaron Ballman <[email protected]>
> wrote:
> >> PR23021 demonstrates a case where diagnostic reporting on an inner
> >> lambda would crash due to a null pointer dereference. Since captures
> >> happen from calling ParseParameterDeclarationClause, which is before
> >> the semantic lambda object is created, another mechanism is required
> >> to get the lambda introducer location.
> >>
> >> This patch addresses it by storing the introducer location into the
> >> scope object directly, and using that location when reporting the
> >> diagnostics. The result is the same, but no longer relies on a lambda
> >> object being created first.
> >>
> >> ~Aaron
>
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to