Using EH from C

Stelios Xanthakis sxanth@ceid.upatras.gr
Sun May 2 02:12:00 GMT 2004



On Sat, 1 May 2004, Richard Henderson wrote:

> On Sat, May 01, 2004 at 05:09:23PM +0300, Stelios Xanthakis wrote:
> > But of little use without another extension to create landing pads...:(
> 
> Why in the world would you need that?

Because if there's no landing pad, _Unwind_RaiseException
ends up on abort()?

I may be totally wrong, but what I'm trying to do is implement
"stack unwind with cost-free cleanups from C".

That's three things

1. register destructors on EH
  Done: attribute(cleanup(function))

2. call 'throw'
  Done: libgcc_eh and unwind.h

3. set up a landing pad somewhere (try-catch).
  ???

Where does _Unwind stop otherwise? main()?

~S



More information about the Gcc mailing list