diff options
author | vlefevre <vlefevre@280ebfd0-de03-0410-8827-d642c229c3f4> | 2019-02-04 13:39:17 +0000 |
---|---|---|
committer | vlefevre <vlefevre@280ebfd0-de03-0410-8827-d642c229c3f4> | 2019-02-04 13:39:17 +0000 |
commit | 8f31e2e1eb377b009f6502e8ba954796f1d0a276 (patch) | |
tree | e30363822a4c5b7642a57a6efd271b99ddfe1fa2 | |
parent | 2cd34be6bf7ff2744ab7cdfa176d5423bacb4d13 (diff) | |
download | mpfr-8f31e2e1eb377b009f6502e8ba954796f1d0a276.tar.gz |
[doc/README.dev] Improved description of MPFR_ERRDIVZERO.
[tools/mpfrlint] Added a comment about division by zero.
git-svn-id: svn://scm.gforge.inria.fr/svn/mpfr/trunk@13442 280ebfd0-de03-0410-8827-d642c229c3f4
-rw-r--r-- | doc/README.dev | 11 | ||||
-rwxr-xr-x | tools/mpfrlint | 5 |
2 files changed, 12 insertions, 4 deletions
diff --git a/doc/README.dev b/doc/README.dev index bc532d6d4..17d4ed599 100644 --- a/doc/README.dev +++ b/doc/README.dev @@ -511,10 +511,13 @@ List of macros used for checking MPFR: + HAVE_GETTIMEOFDAY: Define if the function gettimeofday() is available. + HAVE_SETLOCALE: Define if the function setlocale() is available. + MPFR_ERRDIVZERO: Define if the floating-point division by 0 fails - (e.g. because a SIGFPE signal is generated, or - because it is regarded as undefined behavior by - a sanitizer). This disables the tests involving - such operations. + in the MPFR library (e.g., because a SIGFPE signal + is generated, or because it is regarded as undefined + behavior by a sanitizer). This disables the tests + involving such operations. + Note: Tests related to NaN and infinities must not + rely on native FP division by 0, whether this macro + is defined or not. + MPFR_TESTS_FPE_DIV: Define to check whether there has been a FP exception FE_DIVBYZERO or FE_INVALID, which probably comes from 1.0 / 0.0 or 0.0 / 0.0 to diff --git a/tools/mpfrlint b/tools/mpfrlint index 454ec3184..1c5835c55 100755 --- a/tools/mpfrlint +++ b/tools/mpfrlint @@ -362,6 +362,11 @@ err-if-output \ -t "mpfr-impl.h inclusion" grep --exclude=mpfr-test.h \ '^ *# *include *"mpfr-impl.h"' tests/*.{c,h} +# Division by zero yields issues on some platforms, even in the case where +# MPFR_ERRDIVZERO is not defined. See, e.g. +# https://sympa.inria.fr/sympa/arc/mpfr/2019-02/msg00005.html +# The solution is to still allow tests related to NaN and infinities, but +# such tests must avoid division by zero. grep -E '/ *0?\.0([^0-9]|$)' tests/*.{c,h} | \ err-if-output --msg='division by zero yields issues on some platforms' \ -t "division by zero" grep -Ev '/\*.*/ *0?\.0' |