<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 10pt;
font-family:Tahoma
}
--></style>
</head>
<body class='hmmessage'>
Tony et. al. do you have much idea already in mind of what using gcc exception and/or unwind support would look like?<br><br><br>In particular, do you think we could/should/would use<br>TRY_CATCH_EXPR, TRY_FINALLY_EXPR? I'm not sure (see below).<br><br><br>Do you understand the difference between WITH_CLEANUP_EXPR and TRY_FINALLY_EXPR?<br>I don't. Maybe WITH_CLEANUP_EXPR captures a common case is very similar?<br><br><br>Regarding TRY_CATCH_EXPR, TRY_FINALLY_EXPR, they sound very promising.<br>But does CATCH_EXPR provide the right construct for deciding to catch or not,<br>and passing the exception properly to the handler?<br><br><br>Or should we use RTExStack nearly or completely unchanged, but:<br> 1) have it call libgcc/libunwind, via interface RTStack.<br> 2) in the backend mimic TRY_CATCH_EXPR, TRY_FINALLY_EXPR's affects/pessimisations<br> on the control flow graph and such?<br> <br><br>Related question is how to model throwing an exception in the backend.<br>This I had looked at even less (e.g. trying to understand how g++ uses this stuff) but is clearly important.<br>g++ clearly sometimes calls __cxa_throw, not clear if it always does.<br>Not clear it does anything else in terms of informing the backend. It looks like not.<br><br><br> - Jay<br><br> </body>
</html>