[Openmcl-cvs-notifications] r13943 - /trunk/source/lisp-kernel/x86-exceptions.c
rme at clozure.com
rme at clozure.com
Thu Jul 8 23:08:20 CDT 2010
Author: rme
Date: Thu Jul 8 23:08:20 2010
New Revision: 13943
Log:
When we get EXC_ARITHMETIC in catch_exception_raise(), translate a
code of EXC_I386_DIV (1) to FPE_INTDIV (7).
This apparently worked by luck before because FPE_FLTDIV happens to
be 1, and the error callback looked for either FPE_FLTDIV or
FPE_INTDIV.
This change also causes the lisp to enter the kernel debugger right
away when foreign code does an integer /0 (before the change, we would
attempt to invoke the error callback, which got confused.)
(This is all Darwin-specific, of course.)
Modified:
trunk/source/lisp-kernel/x86-exceptions.c
Modified: trunk/source/lisp-kernel/x86-exceptions.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/source/lisp-kernel/x86-exceptions.c (original)
+++ trunk/source/lisp-kernel/x86-exceptions.c Thu Jul 8 23:08:20 2010
@@ -3368,6 +3368,8 @@
=
case EXC_ARITHMETIC:
signum =3D SIGFPE;
+ if (code =3D=3D EXC_I386_DIV)
+ code =3D FPE_INTDIV;
break;
=
default:
More information about the Openmcl-cvs-notifications
mailing list