diff --git a/CHANGELOG b/CHANGELOG index eb5918a07..30b12fa8e 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -100,6 +100,12 @@ in C code is still referenced in the memory, it's programmer duty to call wait. - The ECL_OPT_SIGALTSTACK_SIZE option has been removed, because it had no effect. +- A false value of the ECL_OPT_TRAP_SIGFPE option now prevents floating + point exception signals from being generated by default. In version + 16.1.3, ECL would not change the options controlling the generation of + such signals and simply not install a signal handler for floating point + exceptions. This could lead to such signals being generated and caught by + another signal handler if ECL was used as an embedded library. * 16.1.3 changes since 16.1.2 ** Announcement Dear Community, diff --git a/src/c/unixint.d b/src/c/unixint.d index fe422abe5..335774273 100644 --- a/src/c/unixint.d +++ b/src/c/unixint.d @@ -1408,6 +1408,8 @@ install_fpe_signal_handlers() /* si_trap_fpe(@'division-by-zero', ECL_NIL); */ /* si_trap_fpe(@'floating-point-overflow', ECL_NIL); */ /* # endif */ + } else { + si_trap_fpe(ECL_T, ECL_NIL); } #endif }