diff --git a/src/c/unixint.d b/src/c/unixint.d index 9d375e956..e8243ced1 100644 --- a/src/c/unixint.d +++ b/src/c/unixint.d @@ -1361,9 +1361,9 @@ install_fpe_signal_handlers() if (ecl_option_values[ECL_OPT_TRAP_SIGFPE]) { mysignal(SIGFPE, fpe_signal_handler); si_trap_fpe(ECL_T, ECL_T); -# ifdef ECL_IEEE_FP - /* By default deactivate errors and accept - * denormals in floating point computations */ +# if 0 /* defined(ECL_IEEE_FP) */ + /* By default deactivate errors and accept denormals + * in floating point computations. */ si_trap_fpe(@'floating-point-invalid-operation', ECL_NIL); si_trap_fpe(@'division-by-zero', ECL_NIL); si_trap_fpe(@'floating-point-overflow', ECL_NIL); diff --git a/src/lsp/top.lsp b/src/lsp/top.lsp index 5f9dd8496..d3a9c8c59 100644 --- a/src/lsp/top.lsp +++ b/src/lsp/top.lsp @@ -398,6 +398,7 @@ The top-level loop of ECL. It is called by default when ECL is invoked." (in-package "CL-USER") (unless (or *lisp-initialized* (null process-command-line)) + (si:trap-fpe :last t) (process-command-args) (format t "ECL (Embeddable Common-Lisp) ~A (git:~D)" (lisp-implementation-version)