This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

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~


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]