Message-ID: <3EECAEA4.16B2EC47@yahoo.com> Date: Sun, 15 Jun 2003 13:36:36 -0400 From: CBFalconer Organization: Ched Research X-Mailer: Mozilla 4.75 [en] (Win98; U) X-Accept-Language: en MIME-Version: 1.0 To: djgpp-workers AT delorie DOT com Subject: Re: Integer Overflow References: <200306151033 DOT h5FAXDJP018725 AT speedy DOT ludd DOT luth DOT se> <3405-Sun15Jun2003184512+0300-eliz AT elta DOT co DOT il> Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Reply-To: djgpp-workers AT delorie DOT com Eli Zaretskii wrote: > > > From: > > Date: Sun, 15 Jun 2003 12:33:13 +0200 (CEST) > > > > Umm, before going any further take note that abort() is declared with > > __attribute((noreturn)) in stdlib.h. This will probably affect how > > much code is generated after a call to it. > > Since `abort' indeed never returns, even if SIGABRT is caught and its > handler returns, the declaration and the code generated by GCC are > correct. > > Programs that want to allow recovery in such situations should not > call `abort, but instead should raise SIGABRT (and include code for > the case that the handler returns). It sounds like libgcc functions > should be modified along these lines. I agree completely. However where I did just that (in nmalloc) I found code generated that did NOT handle the return. I have been unable to generate a short sample so far; everything I tried came out correct!! I doubt that all this is worldshaking, but I felt it should be known and fixed at leisure. -- Chuck F (cbfalconer AT yahoo DOT com) (cbfalconer AT worldnet DOT att DOT net) Available for consulting/temporary embedded and systems. USE worldnet address!