From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Neil Jerram Newsgroups: gmane.lisp.guile.devel Subject: Re: [PATCH] Fix continuation problems on IA64. Date: Mon, 12 May 2008 23:18:13 +0100 Message-ID: <87y76ftbdm.fsf@ossau.uklinux.net> References: <87k5i5d6ei.fsf@ossau.uklinux.net> <87y76ksglg.fsf@gnu.org> <8763tomqn7.fsf@ossau.uklinux.net> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: quoted-printable X-Trace: ger.gmane.org 1210630726 13861 80.91.229.12 (12 May 2008 22:18:46 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Mon, 12 May 2008 22:18:46 +0000 (UTC) Cc: guile-devel@gnu.org To: ludo@gnu.org (Ludovic =?iso-8859-1?Q?Court=E8s?=) Original-X-From: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Tue May 13 00:19:23 2008 Return-path: Envelope-to: guile-devel@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by lo.gmane.org with esmtp (Exim 4.50) id 1JvgMa-0008Q2-MQ for guile-devel@m.gmane.org; Tue, 13 May 2008 00:19:20 +0200 Original-Received: from localhost ([127.0.0.1]:41580 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1JvgLr-0007Cc-L6 for guile-devel@m.gmane.org; Mon, 12 May 2008 18:18:35 -0400 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1JvgLm-0007CF-2E for guile-devel@gnu.org; Mon, 12 May 2008 18:18:30 -0400 Original-Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1JvgLj-0007Bi-I7 for guile-devel@gnu.org; Mon, 12 May 2008 18:18:28 -0400 Original-Received: from [199.232.76.173] (port=59132 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1JvgLj-0007Bd-CN for guile-devel@gnu.org; Mon, 12 May 2008 18:18:27 -0400 Original-Received: from mail3.uklinux.net ([80.84.72.33]:53608) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1JvgLe-0002gT-19; Mon, 12 May 2008 18:18:22 -0400 Original-Received: from arudy (host81-129-100-189.range81-129.btcentralplus.com [81.129.100.189]) by mail3.uklinux.net (Postfix) with ESMTP id C05A01F6660; Mon, 12 May 2008 23:18:15 +0100 (BST) Original-Received: from laruns (laruns [192.168.0.10]) by arudy (Postfix) with ESMTP id 402103800D; Mon, 12 May 2008 23:18:14 +0100 (BST) In-Reply-To: <8763tomqn7.fsf@ossau.uklinux.net> (Neil Jerram's message of "Thu, 08 May 2008 22:29:00 +0100") User-Agent: Gnus/5.110006 (No Gnus v0.6) Emacs/21.4 (gnu/linux) X-detected-kernel: by monty-python.gnu.org: Linux 2.4-2.6 X-BeenThere: guile-devel@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Developers list for Guile, the GNU extensibility library" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Errors-To: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.lisp.guile.devel:7243 Archived-At: Neil Jerram writes: > ludo@gnu.org (Ludovic Court=E8s) writes: > >> Neil Jerram writes: >> >>> + void scm_ia64_longjmp (jmp_buf *, int); >> >> Add `SCM_API' at the beginning and `SCM_NORETURN' at the end. The >> latter should fix this: >> >>> +#ifdef __ia64__ >>> + /* On IA64, we #define longjmp as setcontext, and GCC appears not to >>> + know that that doesn't return. */ >>> + return SCM_UNSPECIFIED; >>> +#endif > > I'm happy with adding SCM_NORETURN [...] Actually, I tried that, and then got GCC complaining that "scm_ia64_longjmp: function does return" - which is wrong, but I guess occurs because the declaration (in a system header file somewhere) of setcontext() does _not_ have __attribute__(noreturn). So I've committed for now without this SCM_NORETURN change - but I'm happy to update it if there is a further solution. Is there a way of adding __attribute__(noreturn) to a declaration (from a system header file) that should have this attribute, but doesn't? Also, can it be done in a way that will work for compilers other than GCC? Thanks, Neil