mirror of
https://gcc.gnu.org/git/gcc.git
synced 2024-12-03 00:34:21 +08:00
PR libfortran/pr68867
2015-12-14 Jerry DeLisle <jvdelisle@gcc.gnu.org> PR libfortran/pr68867 * io/write.c (set_fnode_default): For kind=16, set the decimal precision depending on the platform binary precision, 106 or 113. From-SVN: r231639
This commit is contained in:
parent
060eb4c9a4
commit
8d3586e4e2
@ -1,3 +1,7 @@
|
||||
2015-12-14svn commit Jerry DeLisle <jvdelisle@gcc.gnu.org>
|
||||
|
||||
* gfortran.dg/quad_2.f90: Update test.
|
||||
|
||||
2015-12-14 Steve Ellcey <sellcey@imgtec.com>
|
||||
|
||||
* gcc.dg/tree-ssa/ssa-fre-4.c: Remove mips*-*-* target.
|
||||
|
@ -49,18 +49,19 @@ program test_qp
|
||||
if (str4 /= "1.41421356237309504876") call abort()
|
||||
|
||||
case (16)
|
||||
if (str1 /= " 1.00000000000000000000000000000000000") call abort()
|
||||
if (str2 /= "1.00000000000000000000000000000000000") call abort()
|
||||
|
||||
if (digits(1.0_qp) == 113) then
|
||||
! IEEE 754 binary 128 format
|
||||
! e.g. libquadmath/__float128 on i686/x86_64/ia64
|
||||
if (str1 /= " 1.00000000000000000000000000000000000") call abort()
|
||||
if (str2 /= "1.00000000000000000000000000000000000") call abort()
|
||||
if (str3 /= " 1.41421356237309504880168872420969798") call abort()
|
||||
if (str4 /= "1.41421356237309504880168872420969798") call abort()
|
||||
else if (digits(1.0_qp) == 106) then
|
||||
! IBM binary 128 format
|
||||
if (str3(1:37) /= " 1.41421356237309504880168872420969") call abort()
|
||||
if (str4(1:34) /= "1.41421356237309504880168872420969") call abort()
|
||||
if (str1 /= " 1.0000000000000000000000000000000") call abort()
|
||||
if (str2 /= "1.0000000000000000000000000000000") call abort()
|
||||
if (str3(1:37) /= " 1.4142135623730950488016887242097") call abort()
|
||||
if (str4(1:34) /= "1.4142135623730950488016887242097") call abort()
|
||||
end if
|
||||
|
||||
! Do a libm run-time test
|
||||
|
@ -1,3 +1,9 @@
|
||||
2015-12-14 Jerry DeLisle <jvdelisle@gcc.gnu.org>
|
||||
|
||||
PR libfortran/pr68867
|
||||
* io/write.c (set_fnode_default): For kind=16, set the decimal precision
|
||||
depending on the platform binary precision, 106 or 113.
|
||||
|
||||
2015-12-05 Juoko Orava <jouko.orava@iki.fi>
|
||||
|
||||
PR fortran/50201
|
||||
|
@ -1405,9 +1405,16 @@ set_fnode_default (st_parameter_dt *dtp, fnode *f, int length)
|
||||
f->u.real.e = 4;
|
||||
break;
|
||||
case 16:
|
||||
/* Adjust decimal precision depending on binary precision, 106 or 113. */
|
||||
#if GFC_REAL_16_DIGITS == 113
|
||||
f->u.real.w = 45;
|
||||
f->u.real.d = 36;
|
||||
f->u.real.e = 4;
|
||||
#else
|
||||
f->u.real.w = 41;
|
||||
f->u.real.d = 32;
|
||||
f->u.real.e = 4;
|
||||
#endif
|
||||
break;
|
||||
default:
|
||||
internal_error (&dtp->common, "bad real kind");
|
||||
|
Loading…
Reference in New Issue
Block a user