On Fri, Mar 06, 2020 at 07:40:20PM -0500, Jason Merrill wrote:
> On 3/6/20 11:02 AM, Marek Polacek wrote:
> > On Fri, Mar 06, 2020 at 04:58:32PM +0100, Paolo Carlini wrote:
> > > ... the patch ;)
> > > 
> > > Paolo.
> > > 
> > 
> > > Fix "PR c++/94034 Broken diagnostic: 'result_decl' not supported by 
> > > dump_expr"
> > > 
> > > A rather simple diagnostic issue where we failed to handle RESULT_DECL in
> > > dump_expr.
> > > 
> > > Tested x86_64-linux.
> > > 
> > >         /cp
> > >         PR c++/94034
> > >         * error.c (dump_expr): Handle RESULT_DECL like the other *_DECL.
> > > 
> > >         /testsuite
> > >         PR c++/94034
> > >         * g++.dg/cpp0x/pr94034.C: New.
> > > 
> > 
> > LGTM.  In fact, I had the same patch.
> > 
> > I think with this patch we print soemthing like "<result> <anonymous>"
> > which is still kind of ugly, but improving that is out of scope for GCC 10.
> 
> Hmm, is that really so much better?

I would say it's better than 
"'result_decl' not supported by dump_expr<expression error>".  Since dump_expr
already handles a bunch of _DECL codes, we might as well add RESULT_DECL.

> Why do we end up trying to print a RESULT_DECL?

The r10-5821 patch changed a ctor from

  { .ap = &D.2344 }

to

  { .ap = &<retval> }

We should probably avoid printing such exprs altogether; I doubt people
are interested in seeing internal stuff like that.

Marek

Reply via email to