glibc/stdlib
Joseph Myers 4725d33eed Make strtod raise "inexact" exceptions (bug 19380).
The strtod function should raise the "inexact" exception when its
result is inexact, but fails to do so except in the case of underflow
or overflow.  This patch fixes it to do so for all inexact results.

tst-strtod-round is extended to test for this exception; the generator
is fixed to properly mark inexact results as such in the case where
the inexactness is from the mpfr_subnormalize step.

Tested for x86_64, x86 and powerpc.

	[BZ #19380]
	* stdlib/strtod_l.c (round_and_return): Force "inexact" exception
	for inexact results.
	* stdlib/gen-tst-strtod-round.c (string_to_fp): Return indication
	of inexact result where mpfr_subnormalize is the only inexact
	step.
	* stdlib/tst-strtod-round-data.h: Regenerated.
	* stdlib/tst-strtod-round-skeleton.c [!FE_INEXACT] (FE_INEXACT):
	Define to 0.
	(GEN_ONE_TEST): Test inexact exceptions raised are as expected.
2016-10-28 00:40:23 +00:00
..
bits Add strfromd, strfromf, and strfroml functions 2016-10-25 17:03:54 -02:00
sys
Depend
Makefile Add tests for strfrom functions 2016-10-25 17:11:53 -02:00
Versions Add strfromd, strfromf, and strfroml functions 2016-10-25 17:03:54 -02:00
a64l.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
abort.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
abs.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
add_n.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
addmul_1.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
alloca.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
at_quick_exit.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
atexit.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
atof.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
atoi.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
atol.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
atoll.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
bsearch.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
bug-fmtmsg1.c
bug-getcontext.c
bug-strtod.c Refactor strtod tests 2016-10-25 17:05:47 -02:00
bug-strtod2.c Refactor strtod tests 2016-10-25 17:05:47 -02:00
canonicalize.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
cmp.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
cxa_at_quick_exit.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
cxa_atexit.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
cxa_finalize.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
cxa_thread_atexit_impl.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
dbl2mpn.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
div.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
divmod_1.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
divrem.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
drand48-iter.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
drand48.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
drand48_r.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
erand48.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
erand48_r.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
errno.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
exit.c Bug 20198: quick_exit should not call destructors. 2016-06-06 21:40:25 -04:00
exit.h Bug 20198: quick_exit should not call destructors. 2016-06-06 21:40:25 -04:00
fmtmsg.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
fmtmsg.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
fpioconst.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
fpioconst.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
gen-fpioconst.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
gen-tst-strtod-round.c Make strtod raise "inexact" exceptions (bug 19380). 2016-10-28 00:40:23 +00:00
getcontext.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
getenv.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
getsubopt.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
gmp-impl.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
gmp.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
grouping.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
grouping.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
groupingwc.c
inlines.c
isomac.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
jrand48.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
jrand48_r.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
l64a.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
labs.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
lcong48.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
lcong48_r.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
ldbl2mpn.c
ldiv.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
llabs.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
lldiv.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
longlong.h longlong: fix sh -Wundef builds 2016-01-07 17:29:17 -05:00
lrand48.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
lrand48_r.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
lshift.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
makecontext.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
mblen.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
mbstowcs.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
mbtowc.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
mod_1.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
monetary.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
mp_clz_tab.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
mpn2dbl.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
mpn2flt.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
mpn2ldbl.c
mrand48.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
mrand48_r.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
msort.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
mul.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
mul_1.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
mul_n.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
nrand48.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
nrand48_r.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
old_atexit.c
on_exit.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
putenv.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
qsort.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
quick_exit.c Bug 20198: quick_exit should not call destructors. 2016-06-06 21:40:25 -04:00
rand.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
rand_r.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
random.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
random_r.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
rpmatch.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
rshift.c Fix build failures with -DDEBUG. 2016-01-15 11:07:41 -07:00
secure-getenv.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
seed48.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
seed48_r.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
setcontext.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
setenv.c Suppress GCC 6 warning about ambiguous 'else' with -Wparentheses 2016-04-15 13:30:55 +02:00
srand48.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
srand48_r.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
stdlib.h Add strfromd, strfromf, and strfroml functions 2016-10-25 17:03:54 -02:00
strfmon.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
strfmon_l.c libio: Implement vtable verification [BZ #20191] 2016-06-23 20:01:52 +02:00
strfrom-skeleton.c Add strfromd, strfromf, and strfroml functions 2016-10-25 17:03:54 -02:00
strfromd.c Add strfromd, strfromf, and strfroml functions 2016-10-25 17:03:54 -02:00
strfromf.c Add strfromd, strfromf, and strfroml functions 2016-10-25 17:03:54 -02:00
strfroml.c Add strfromd, strfromf, and strfroml functions 2016-10-25 17:03:54 -02:00
strtod.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
strtod_l.c Make strtod raise "inexact" exceptions (bug 19380). 2016-10-28 00:40:23 +00:00
strtod_nan.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
strtod_nan_double.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
strtod_nan_float.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
strtod_nan_main.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
strtod_nan_narrow.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
strtod_nan_wide.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
strtof.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
strtof_l.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
strtof_nan.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
strtoimax.c
strtol.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
strtol_l.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
strtold.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
strtold_l.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
strtold_nan.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
strtoll.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
strtoll_l.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
strtoul.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
strtoul_l.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
strtoull.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
strtoull_l.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
strtoumax.c
sub_n.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
submul_1.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
swapcontext.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
system.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
tens_in_limb.c
test-a64l.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
test-canon.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
test-canon2.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
testdiv.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
testdiv.input
testmb.c
testmb2.c
testrand.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
testsort.c
tst-atof1.c
tst-atof2.c
tst-bsearch.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
tst-environ.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
tst-fmtmsg.c Modify several tests to use test-skeleton.c 2014-11-05 15:24:08 +05:30
tst-fmtmsg.sh Make shebang interpreter directives consistent 2016-01-07 04:03:21 -05:00
tst-limits.c Fix a couple of -Wundef warnings. 2014-12-29 23:14:38 -05:00
tst-makecontext.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
tst-makecontext2.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
tst-makecontext3.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
tst-putenv.c
tst-putenvmod.c
tst-qsort.c
tst-qsort2.c stdlib/tst-qsort2.c: Fix off-by-one argc interpretation error 2014-06-20 21:29:33 +01:00
tst-quick_exit.cc quick_exit tests: Do not use C++ headers 2016-06-09 12:09:43 +02:00
tst-rand48-2.c Modify several tests to use test-skeleton.c 2014-11-05 15:24:08 +05:30
tst-rand48.c Modify several tests to use test-skeleton.c 2014-11-05 15:24:08 +05:30
tst-random.c Modify several tests to use test-skeleton.c 2014-11-05 15:24:08 +05:30
tst-random2.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
tst-secure-getenv.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
tst-setcontext.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
tst-setcontext2.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
tst-setcontext3.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
tst-setcontext3.sh Make shebang interpreter directives consistent 2016-01-07 04:03:21 -05:00
tst-strfmon_l.c strfmon_l: Use specified locale for number formatting [BZ #19633] 2016-04-04 15:18:13 +02:00
tst-strfrom-locale.c Add tests for strfrom functions 2016-10-25 17:11:53 -02:00
tst-strfrom.c Add tests for strfrom functions 2016-10-25 17:11:53 -02:00
tst-strfrom.h Add tests for strfrom functions 2016-10-25 17:11:53 -02:00
tst-strtod-nan-locale-main.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
tst-strtod-nan-locale.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
tst-strtod-overflow.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
tst-strtod-round-data Fix strtof decimal rounding close to half least subnormal (bug 18247). 2015-04-10 20:45:30 +00:00
tst-strtod-round-data.h Make strtod raise "inexact" exceptions (bug 19380). 2016-10-28 00:40:23 +00:00
tst-strtod-round-skeleton.c Make strtod raise "inexact" exceptions (bug 19380). 2016-10-28 00:40:23 +00:00
tst-strtod-round.c Add tst-wcstod-round 2016-08-19 11:17:07 -05:00
tst-strtod-underflow.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
tst-strtod.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
tst-strtod.h Refactor strtod tests 2016-10-25 17:05:47 -02:00
tst-strtod2.c
tst-strtod3.c
tst-strtod4.c
tst-strtod5.c
tst-strtod6.c Refactor strtod tests 2016-10-25 17:05:47 -02:00
tst-strtol-locale-main.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
tst-strtol-locale.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
tst-strtol.c Convert 703 function definitions to prototype style. 2015-10-16 20:21:49 +00:00
tst-strtoll.c Convert 703 function definitions to prototype style. 2015-10-16 20:21:49 +00:00
tst-system.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
tst-thread-quick_exit.cc quick_exit tests: Do not use C++ headers 2016-06-09 12:09:43 +02:00
tst-tininess.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
tst-tls-atexit-lib.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
tst-tls-atexit-nodelete.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
tst-tls-atexit.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
tst-unsetenv1.c
tst-width-stdint.c Add <stdint.h> integer width macros. 2016-09-21 17:06:36 +00:00
tst-width.c Add <limits.h> integer width macros. 2016-09-19 12:25:36 +00:00
tst-xpg-basename.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
ucontext.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
udiv_qrnnd.c
wcstoimax.c
wcstombs.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
wcstoumax.c
wctomb.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
xpg_basename.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00