diff options
author | Björn Gustavsson <bjorn@erlang.org> | 2010-08-20 14:30:31 +0200 |
---|---|---|
committer | Björn Gustavsson <bjorn@erlang.org> | 2010-08-20 14:30:31 +0200 |
commit | cafb4c1df8a76031f992a019b6d6ada5dbadbf53 (patch) | |
tree | b6872d2ea825918b495e4e5007a55274ae46bd40 /erts | |
parent | 2d8c9cdba0109971fe8ae7341385beecda8de7b0 (diff) | |
parent | 0f4b1294f51983f834dbca750b3ad271d72f740a (diff) | |
download | otp-cafb4c1df8a76031f992a019b6d6ada5dbadbf53.tar.gz otp-cafb4c1df8a76031f992a019b6d6ada5dbadbf53.tar.bz2 otp-cafb4c1df8a76031f992a019b6d6ada5dbadbf53.zip |
Merge branch 'bjorn/solaris-fp-exception' into dev
* bjorn/solaris-fp-exception:
Solaris/x86: Handle floating point exceptions properly in driver threads
Diffstat (limited to 'erts')
-rw-r--r-- | erts/emulator/sys/unix/sys_float.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/erts/emulator/sys/unix/sys_float.c b/erts/emulator/sys/unix/sys_float.c index c59c99f65e..d6d06d0036 100644 --- a/erts/emulator/sys/unix/sys_float.c +++ b/erts/emulator/sys/unix/sys_float.c @@ -810,7 +810,9 @@ int matherr(struct exception *exc) { #if !defined(NO_FPE_SIGNALS) - set_current_fp_exception((unsigned long)__builtin_return_address(0)); + volatile unsigned long *fpexnp = erts_get_current_fp_exception(); + if (fpexnp != NULL) + *fpexnp = (unsigned long)__builtin_return_address(0); #endif return 1; } |