glibc/sysdeps/generic
Stefan Liebler c4d17461e0 S/390: Do not raise inexact exception in lrint/lround. [BZ #19486]
I get some math test-failures on s390 for float/double/ldouble for
various lrint/lround functions like:
lrint (0x1p64): Exception "Inexact" set
lrint (-0x1p64): Exception "Inexact" set
lround (0x1p64): Exception "Inexact" set
lround (-0x1p64): Exception "Inexact" set
...

GCC emits "convert to fixed" instructions for casting floating point
values to integer values. These instructions raise invalid and inexact
exceptions if the floating point value exceeds the integer type ranges.

This patch enables the various FIX_DBL_LONG_CONVERT_OVERFLOW macros in
order to avoid a cast from floating point to integer type and raise the
invalid exception with feraiseexcept.
The ldbl-128 rint/round functions are now using the same logic.

ChangeLog:

	[BZ #19486]
	* sysdeps/s390/fix-fp-int-convert-overflow.h: New File.
	* sysdeps/generic/fix-fp-int-convert-overflow.h
	(FIX_LDBL_LONG_CONVERT_OVERFLOW,
	FIX_LDBL_LLONG_CONVERT_OVERFLOW): New define.
	* sysdeps/arm/fix-fp-int-convert-overflow.h: Likewise.
	* sysdeps/mips/mips32/fpu/fix-fp-int-convert-overflow.h:
	Likewise.
	* sysdeps/ieee754/ldbl-128/s_lrintl.c (__lrintl):
	Avoid conversions to long int where inexact exceptions
	could be raised.
	* sysdeps/ieee754/ldbl-128/s_lroundl.c (__lroundl):
	Likewise.
	* sysdeps/ieee754/ldbl-128/s_llrintl.c (__llrintl):
	Avoid conversions to long long int where inexact exceptions
	could be raised.
	* sysdeps/ieee754/ldbl-128/s_llroundl.c (__llroundl):
	Likewise.
2016-01-18 12:48:06 +01:00
..
bits Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
net Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
netinet Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
nfs Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
sys Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
_G_config.h
_itoa.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
a.out.h
abort-instr.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
aio_misc.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
allocalim.h
asm-syntax.h
atomic-machine.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
c++-types.data
confstr.h
device-nrs.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
dirstream.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
dl-cache.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
dl-dtprocnum.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
dl-fileid.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
dl-fptr.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
dl-hash.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
dl-irel.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
dl-librecon.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
dl-lookupcfg.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
dl-machine.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
dl-mman.h Update copyright dates committed in 2016 2016-01-06 14:03:10 -08:00
dl-osinfo.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
dl-procinfo.c
dl-procinfo.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
dl-sysdep.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
dl-tls.h
dl-unistd.h Update copyright dates committed in 2016 2016-01-06 14:03:10 -08:00
dwarf2.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
elide.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
eloop-threshold.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
entry.h
errqueue.h
exit-thread.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
fd_to_filename.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
fips-private.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
fix-fp-int-convert-overflow.h S/390: Do not raise inexact exception in lrint/lround. [BZ #19486] 2016-01-18 12:48:06 +01:00
fix-int-fp-convert-zero.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
fork.h
fpu_control.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
frame.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
framestate.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
gcc-compat.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
gccframe.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
get-rounding-mode.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
gmp-mparam.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
hp-timing-common.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
hp-timing.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
ifreq.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
ifunc-sel.h
intr-msg.h
inttypes.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
ld.abilist Simplify the abilist format 2015-11-06 13:58:53 +01:00
ldconfig.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
ldsodefs.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
libanl.abilist Simplify the abilist format 2015-11-06 13:58:53 +01:00
libBrokenLocale.abilist Simplify the abilist format 2015-11-06 13:58:53 +01:00
libc-lock.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
libc-mmap.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
libc-tsd.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
libc.abilist Simplify the abilist format 2015-11-06 13:58:53 +01:00
libcidn.abilist
libcrypt.abilist Simplify the abilist format 2015-11-06 13:58:53 +01:00
libdl.abilist Simplify the abilist format 2015-11-06 13:58:53 +01:00
libm-test-ulps
libm.abilist Simplify the abilist format 2015-11-06 13:58:53 +01:00
libnss_compat.abilist
libnss_db.abilist
libnss_dns.abilist
libnss_files.abilist
libnss_hesiod.abilist
libnss_nis.abilist
libnss_nisplus.abilist
libpthread.abilist Simplify the abilist format 2015-11-06 13:58:53 +01:00
libresolv.abilist Simplify the abilist format 2015-11-06 13:58:53 +01:00
librt.abilist Simplify the abilist format 2015-11-06 13:58:53 +01:00
linkmap.h Rename bits/linkmap.h to linkmap.h (bug 14912). 2015-09-04 19:44:27 +00:00
local-setxid.h
localplt.data
machine-gmon.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
machine-lock.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
machine-sp.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
Makefile Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
malloc-machine.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
malloc-sysdep.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
math_ldbl_opt.h
math_ldbl.h
math_private.h Fix clog, clog10 inaccuracy (bug 19016). 2015-09-28 22:11:22 +00:00
math-tests-arch.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
math-tests.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
memcopy.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
memusage.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
not-cancel.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
nscd-types.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
pagecopy.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
paths.h
profil-counter.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
pty-private.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
register-dump.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
rtld-lowlevel.h
safe-fatal.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
sigcontextinfo.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
siglist.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
sigset-cvt-mask.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
stackguard-macros.h
stackinfo.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
stdint.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
stdio-lock.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
symbol-hacks.h
sysdep-cancel.h
sysdep.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
thread_state.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
tininess.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
tls-macros.h
tls.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
tst-audit.h
tst-stack-align.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
unsecvars.h
unwind-dw2-fde-glibc.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
unwind-dw2-fde.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
unwind-dw2-fde.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
unwind-dw2.c Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
unwind-pe.c
unwind-pe.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
unwind-resume.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
unwind.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
utmp-equal.h Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00