This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: ia64 unwind thoughts
On Fri, Feb 23, 2001 at 10:52:13AM +0000, Jason Merrill wrote:
> I believe that the intent is that a pure cleanup will have no action
> record, just a landing pad.
How? "A missing entry in the call-site table indicates that a call
is not supposed to throw." Now consider
f1 ();
try {
f2 ();
} catch (...) {
}
Clearly f1 must have a call-site entry, because it may throw. But
there are no cleanups to perform, so surely this is what "no action"
is intended to represent?
I wonder about the wisdom of the missing entry decision. In HP's
own document they mention that inlining a descructor can screw up
the destructor in cleanup not allowed to throw detection. Seems
like a better choice would have been an action record with an
exception specification with an empty list of types.
> The cleanups don't became handlers; call sites within the inlined function
> gain action records that refer to the handlers for the enclosing try
> blocks.
If there are no enclosing try blocks? Say if f1 got inlined
in the above example?
r~