This is the mail archive of the
mailing list for the GCC project.
Re: Bug in implementation of C++ ABI exception handling?
On Mon, Aug 25, 2003 at 10:53:39AM -0500, Chris Lattner wrote:
> My initial idea was just to wrap this call up with a CLEANUP_STMT, where
> CLEANUP_EH_ONLY(r) = 1 and the CLEANUP_EXPR set to free the exception. My
> problem, however, is that the code in build_throw is building an
> expression, not a statement chain.
This is correct.
> Would it be best to hack something together with STMT_EXPR's and
> EXPR_STMT's to get around this, or would it be better to generalize
> MUST_NOT_THROW_EXPR to take an extra argument, which indicates what to do
> if an exception is thrown?
Using MUST_NOT_THROW_EXPR would be wrong, since semantics are that
exceptions do not propagate out of such a region. So you couldn't
let the new exception propagate in this case.