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