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 <[email protected]>
* 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