Hi,

The subject test case uses TRANSFER to do a bitcast from real(16) to
integer(16).  For IBM long double, this works OK on big endian, but not
so well on little endian.  The implementation of long double as two
64-bit quantities causes the most significant bits of the value to be in
a different place than the bit-interpretation as integer(16) expects.
So this patch just skips this test for powerpc*le-*-*.

Verified for powerpc64{,le}-unknown-linux-gnu.  Is this ok for trunk?

Thanks,
Bill


2013-11-27  Bill Schmidt  <wschm...@linux.vnet.ibm.com>

        * gfortran.dg/nan_7.f90: Disable for little endian PowerPC.


Index: gcc/testsuite/gfortran.dg/nan_7.f90
===================================================================
--- gcc/testsuite/gfortran.dg/nan_7.f90 (revision 205333)
+++ gcc/testsuite/gfortran.dg/nan_7.f90 (working copy)
@@ -2,6 +2,7 @@
 ! { dg-options "-fno-range-check" }
 ! { dg-require-effective-target fortran_real_16 }
 ! { dg-require-effective-target fortran_integer_16 }
+! { dg-skip-if "" { "powerpc*le-*-*" } { "*" } { "" } }
 ! PR47293 NAN not correctly read
 character(len=200) :: str
 real(16) :: r


Reply via email to