diff options
author | Joseph Myers <joseph@codesourcery.com> | 2018-08-29 20:01:57 +0000 |
---|---|---|
committer | Joseph Myers <joseph@codesourcery.com> | 2018-08-29 20:01:57 +0000 |
commit | 09c12efcafd1e08c290e63e2095c772ce35117be (patch) | |
tree | 55129cd389132d57f5866c377464f55fe1f31920 /math | |
parent | Split fenv_private.h out of math_private.h more consistently. (diff) | |
download | glibc-09c12efcafd1e08c290e63e2095c772ce35117be.tar.gz glibc-09c12efcafd1e08c290e63e2095c772ce35117be.tar.bz2 glibc-09c12efcafd1e08c290e63e2095c772ce35117be.zip |
Make gen-libm-test.py treat plus_oflow and minus_oflow as non-finite.
When converting gen-libm-test to Python, in one place I noted a bug in
the old Perl version that I preserved in the Python version so that
the generated output files were the same with both versions, as such
comparisons help give confidence in the correctness of such a rewrite
of a script. Now that the conversion has been done, this patch fixes
that bug, by arranging for tests with plus_oflow or minus_oflow
results (manually written tests in libm-test-*.inc that have
overflowing results that thus depend on the rounding mode) to be
properly treated as having non-finite results, and thus not run for
the __FINITE_MATH_ONLY__ tests. (As the affected tests in fact did
pass for __FINITE_MATH_ONLY__ testing, this is just a matter of
logical correctness in the choice of which tests run for that case,
rather than fixing any actual test failures.)
Tested for x86_64.
* math/gen-libm-test.py (gen_test_args_res): Also treat plus_oflow
and minus_oflow as non-finite.
Diffstat (limited to 'math')
-rwxr-xr-x | math/gen-libm-test.py | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/math/gen-libm-test.py b/math/gen-libm-test.py index 8d156ea8d1..b6879d94f4 100755 --- a/math/gen-libm-test.py +++ b/math/gen-libm-test.py @@ -308,9 +308,7 @@ def apply_lit(arg, macro): def gen_test_args_res(descr_args, descr_res, args, res_rm): """Generate a test given the arguments and per-rounding-mode results.""" # Determine whether any arguments or results, for any rounding - # mode, are non-finite. (For consistency with the old perl - # script, this does not handle infinities resulting from - # ROUNDING_MAP.) + # mode, are non-finite. non_finite = False test_snan = False all_args_res = list(args) @@ -320,7 +318,8 @@ def gen_test_args_res(descr_args, descr_res, args, res_rm): if 'snan_value' in a: test_snan = True non_finite = True - elif 'qnan_value' in a or 'plus_infty' in a or 'minus_infty' in a: + elif ('qnan_value' in a or 'plus_infty' in a or 'minus_infty' in a + or 'plus_oflow' in a or 'minus_oflow' in a): non_finite = True # Process the arguments. args_disp = [] |