From 6e19af7d09b30da02c3e6255185583fb2e64e7e7 Mon Sep 17 00:00:00 2001 From: Rob Browning Date: Fri, 11 Apr 2003 18:32:01 +0000 Subject: [PATCH] * throw.c (scm_ithrow): removed winds "asm" protection in favor of scm_remember_upto_here_1. --- libguile/throw.c | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/libguile/throw.c b/libguile/throw.c index a728bffde..0ad2d1c59 100644 --- a/libguile/throw.c +++ b/libguile/throw.c @@ -622,14 +622,6 @@ scm_ithrow (SCM key, SCM args, int noreturn SCM_UNUSED) } } -#ifdef __GNUC__ - /* Dirk:FIXME:: This bugfix should be removed some time. */ - /* GCC 2.95.2 has a bug in its optimizer that makes it generate - incorrect code sometimes. This barrier stops it from being too - clever. */ - asm volatile ("" : "=g" (winds)); -#endif - /* If we didn't find anything, print a message and abort the process right here. If you don't want this, establish a catch-all around any code that might throw up. */ @@ -640,8 +632,14 @@ scm_ithrow (SCM key, SCM args, int noreturn SCM_UNUSED) } /* If the wind list is malformed, bail. */ + /* remember calls added below to fix segfaults on ia64 and (I think) + powerpc */ if (!SCM_CONSP (winds)) - abort (); + { + scm_remember_upto_here_1 (winds); + abort (); + } + scm_remember_upto_here_1 (winds); jmpbuf = SCM_CDR (dynpair);