[Bug libgcc/88931] Inaccurate DI/TI -> SF/DF conversions in libgcc2
hjl at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Wed Jan 23 21:42:00 GMT 2019
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88931
--- Comment #5 from hjl at gcc dot gnu.org <hjl at gcc dot gnu.org> ---
Author: hjl
Date: Wed Jan 23 21:41:59 2019
New Revision: 268216
URL: https://gcc.gnu.org/viewcvs?rev=268216&root=gcc&view=rev
Log:
libgcc2.c: Correct DI/TI -> SF/DF conversions
FSTYPE FUNC (DWtype u) in libgcc2.c, which converts DI/TI to SF/DF, has
/* No leading bits means u == minimum. */
if (count == 0)
return -(Wtype_MAXp1_F * (Wtype_MAXp1_F / 2));
in the third case (where actually count == 0 only means the high part is
minimum). It should be:
/* No leading bits means u == minimum. */
if (count == 0)
return Wtype_MAXp1_F * (FSTYPE) (hi | ((UWtype) u != 0));
instead.
gcc/testsuite/
2019-01-23 H.J. Lu <hongjiu.lu@intel.com>
PR libgcc/88931
* gcc.dg/torture/fp-int-convert-timode-1.c: New test.
* gcc.dg/torture/fp-int-convert-timode-2.c: Likewise.
* gcc.dg/torture/fp-int-convert-timode-3.c: Likewise.
* gcc.dg/torture/fp-int-convert-timode-4.c: Likewise.
libgcc/
2019-01-23 Joseph Myers <joseph@codesourcery.com>
PR libgcc/88931
* libgcc2.c (FSTYPE FUNC (DWtype u)): Correct no leading bits
case.
Added:
trunk/gcc/testsuite/gcc.dg/torture/fp-int-convert-timode-1.c
trunk/gcc/testsuite/gcc.dg/torture/fp-int-convert-timode-2.c
trunk/gcc/testsuite/gcc.dg/torture/fp-int-convert-timode-3.c
trunk/gcc/testsuite/gcc.dg/torture/fp-int-convert-timode-4.c
Modified:
trunk/gcc/testsuite/ChangeLog
trunk/libgcc/ChangeLog
trunk/libgcc/libgcc2.c
More information about the Gcc-bugs
mailing list