On Tue, May 29, 2018 at 10:38:09AM -0400, Jason Merrill wrote:
> >   int a[2] = {1, 2};
> >   int D.2131[2] = a;
> >   int x [value-expr: D.2131[0]];
> >   int y [value-expr: D.2131[1]];
> >
> >   <<cleanup_point   int a[2] = {1, 2};>>;
> >     int D.2131[2] = a;
> >   return <retval> = x + y;
> >
> > is what original dump shows as implemented, so I don't see a being used here
> > as an lvalue, we copy the elements into the temporary and that is all where
> > it is referenced.
> 
> Ah, no, you're right for foo, where the structured binding declaration
> is not a reference.  And it looks like we shouldn't hit this path for
> 
>   auto & [x,y] = a;
> 
> but that should be added to the testcase.

It is already there (in baz).

        Jakub

Reply via email to