From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 13477 invoked by alias); 2 May 2004 02:12:50 -0000 Mailing-List: contact gcc-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-owner@gcc.gnu.org Received: (qmail 13307 invoked from network); 2 May 2004 02:12:49 -0000 Received: from unknown (HELO diogenis.ceid.upatras.gr) (150.140.141.181) by sources.redhat.com with SMTP; 2 May 2004 02:12:49 -0000 Received: (qmail 1419 invoked from network); 2 May 2004 02:12:47 -0000 Received: from zenon.ceid.upatras.gr (150.140.141.182) by diogenis.ceid.upatras.gr with SMTP; 2 May 2004 02:12:47 -0000 Received: (qmail 13832 invoked by uid 2228); 2 May 2004 02:12:47 -0000 Date: Sun, 02 May 2004 02:12:00 -0000 From: Stelios Xanthakis To: Richard Henderson cc: gcc@gcc.gnu.org Subject: Re: Using EH from C In-Reply-To: <20040501181326.GB8634@redhat.com> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-SW-Source: 2004-05/txt/msg00023.txt.bz2 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