Bug in implementation of C++ ABI exception handling?

Richard Henderson rth@redhat.com
Mon Aug 25 23:46:00 GMT 2003


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.


r~



More information about the Gcc mailing list