From: Fergus Henderson <fjh@cs.mu.OZ.AU>
To: Andrew Haley <aph@redhat.com>
Cc: Ranjit Mathew <rmathew@hotmail.com>, gcc@gcc.gnu.org
Subject: Re: __attribute__((cleanup(function)) versus try/finally
Date: Fri, 09 May 2003 12:08:00 -0000 [thread overview]
Message-ID: <20030509114149.GA22178@ceres.cs.mu.oz.au> (raw)
In-Reply-To: <16059.32748.60695.113159@cuddles.redhat.com>
On 09-May-2003, Andrew Haley <aph@redhat.com> wrote:
> Actually, the C standard is quite explicit about this: signal handlers
> may return either by a return statement of calling longjmp().
[I think you meant to say "or" instead of "of".]
What you say is true to some extent, but it only applies to signal
handlers for synchronous signals, i.e. those caused by an explicit
call to abort() or raise(). For asynchronous signals, the behaviour
is undefined if the signal handler calls longjmp(), due to
C99 7.14.1.1 paragraph 5, which prohibits such signal handlers
from calling *any* standard library function other than abort(),
_Exit(), or signal():
| If the signal occurs other than as the result of
| calling the abort or raise function, the behavior is
| undefined if the signal handler refers to any object with
| static storage duration other than by assigning a value to
| an object declared as volatile sig_atomic_t, or the signal
| handler calls any function in the standard library other
| than the abort function, the _Exit function, or the signal
| function with the first argument equal to the signal number
| corresponding to the signal that caused the invocation of
| the handler.
--
Fergus Henderson <fjh@cs.mu.oz.au> | "I have always known that the pursuit
The University of Melbourne | of excellence is a lethal habit"
WWW: <http://www.cs.mu.oz.au/~fjh> | -- the last words of T. S. Garp.
next prev parent reply other threads:[~2003-05-09 12:08 UTC|newest]
Thread overview: 52+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-05-09 9:54 Ranjit Mathew
2003-05-09 10:16 ` Andrew Haley
2003-05-09 12:08 ` Fergus Henderson [this message]
2003-05-09 12:49 ` Jamie Lokier
-- strict thread matches above, loose matches on Subject: below --
2003-05-13 21:33 Richard Kenner
2003-05-13 22:11 ` Richard Henderson
2003-05-09 9:23 Ranjit Mathew
2003-05-09 9:31 ` Andrew Haley
2003-05-08 7:49 Ranjit Mathew
2003-05-08 21:21 ` Richard Henderson
2003-05-07 10:18 Ranjit Mathew
2003-05-07 13:54 ` Jason Merrill
2003-05-07 18:23 ` Richard Henderson
2003-05-08 18:02 ` Mike Stump
[not found] <Pine.BSF.4.55.0305061457450.57349@acrux.dbai.tuwien.ac.at>
[not found] ` <1052245742.2583.315.camel@doubledemon.codesourcery.com>
[not found] ` <wvlissnc2e3.fsf@prospero.boston.redhat.com>
[not found] ` <1052249890.31850.338.camel@doubledemon.codesourcery.com>
2003-05-06 21:04 ` Jason Merrill
2003-05-06 21:24 ` Mark Mitchell
2003-05-07 21:21 ` Jason Merrill
2003-05-07 22:18 ` Mark Mitchell
2003-05-07 23:01 ` Jason Merrill
2003-05-08 12:05 ` Gabriel Dos Reis
2003-05-09 5:46 ` Kai Henningsen
2003-05-06 21:52 ` Anthony Green
2003-05-08 17:44 ` Mike Stump
2003-05-08 17:45 ` Jason Merrill
2003-05-08 18:40 ` Mark Mitchell
2003-05-08 19:06 ` Alexandre Oliva
2003-05-08 19:47 ` Mark Mitchell
2003-05-08 20:19 ` Alexandre Oliva
2003-05-08 21:18 ` Jason Merrill
2003-05-13 21:10 ` Mark Mitchell
2003-05-13 21:25 ` Richard Henderson
2003-05-13 21:41 ` Mark Mitchell
2003-05-13 22:16 ` Richard Henderson
2003-05-13 21:31 ` Gabriel Dos Reis
2003-05-15 17:00 ` Jason Merrill
2003-05-15 17:23 ` Mark Mitchell
2003-05-09 19:41 ` Kai Henningsen
2003-05-08 19:37 ` Jason Merrill
2003-05-07 0:14 ` Richard Henderson
2003-05-07 2:32 ` Mark Mitchell
2003-05-06 19:56 Jason Merrill
2003-05-08 11:59 ` Gabriel Dos Reis
2003-05-08 15:02 ` Jason Merrill
2003-05-08 18:30 ` Mike Stump
2003-05-08 20:49 ` Richard Henderson
2003-05-08 22:29 ` Mike Stump
2003-05-13 0:07 ` Geoff Keating
2003-05-13 21:27 ` Richard Henderson
2003-05-14 1:14 ` Geoff Keating
2003-05-14 7:41 ` Richard Henderson
2003-05-14 21:11 ` Geoff Keating
2003-05-14 22:20 ` Richard Henderson
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20030509114149.GA22178@ceres.cs.mu.oz.au \
--to=fjh@cs.mu.oz.au \
--cc=aph@redhat.com \
--cc=gcc@gcc.gnu.org \
--cc=rmathew@hotmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).