On Thu, Jul 18, 2024 at 04:18:56PM -0700, Andi Kleen wrote:
> > > > > +  set_musttail_on_return (retval, xloc, musttail_p);
> > > > > +
> > > > >    if (retval)
> > > > >      {
> > > > >        tree semantic_type = NULL_TREE;
> > > > 
> > > > Is it deliberate that set_musttail_on_return is called outside the
> > > > if (retval) block?  If it can be moved into it, set_musttail_on_return
> > > > can be simplified to assume that retval is always non-null.
> > > 
> > > Yes it can be removed.
> 
> Actually I was wrong here, after double checking. The !retval case is
> needed to diagnose a [[musttail]] set on a plain return (which is not
> allowed following the clang spec)
> 
> So the call has to be outside the check.
> 
> The C frontend did it correctly, but the C++ part did not (fixed now)

Ah, fair enough.  Just make sure we test it somewhere, thanks.

Marek

Reply via email to