delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp-workers/2003/06/15/14:08:11

Message-ID: <3EECAEA4.16B2EC47@yahoo.com>
Date: Sun, 15 Jun 2003 13:36:36 -0400
From: CBFalconer <cbfalconer AT yahoo DOT com>
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>
Reply-To: djgpp-workers AT delorie DOT com

Eli Zaretskii wrote:
> 
> > From: <ams AT ludd DOT luth DOT se>
> > 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.
   <http://cbfalconer.home.att.net>  USE worldnet address!


- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019