On Mon, 2011-11-21 at 12:30 -0800, Richard Henderson wrote:
> On 11/21/2011 12:27 PM, Torvald Riegel wrote:
> > voidify_wrapper_expr didn't handle MUST_NOT_THROW_EXPR before, but was
> > used by the C++ side gimplify function for MUST_NOT_THROW_EXPR.  Handle
> > it like other wrappers which have the inner part in operand 0.
> > 
> > OK for trunk?
> 
> Not ok.  This is a c++ specific name used in a non-c++ file.
> You should have seen a bootstrap failure.

I did not, interestingly.  I also *assumed* that this wouldn't work and
therefore sent you and Jason an email recentl asking how to best handle
this.  But then I just gave it a try and it seemed to do the job.

So, again, what is the alternative?  Quoting my last email:

It still fails when combined
with transaction expressions (noexcept-4.C and noexcept-1.C) because
gimplify_must_not_throw_expr() calls voidify_wrapper_expr() on a
MUST_NOT_THROW_EXPR which it doesn't know to be a wrapper.  What's the
cleanest way to solve that?  Adding handling of MUST_NOT_THROW_EXPR
inside voidify_... will include C++ stuff there, right?  Or should there
be a C++ version of voidify_...?  Or something else?


Torvald

Reply via email to