[Bug libfortran/39665] New: Fortran IO using unaligned accesses to read/write doubles.

sje at cup dot hp dot com gcc-bugzilla@gcc.gnu.org
Mon Apr 6 16:19:00 GMT 2009


Many fortran tests, like libgfortran.dg/arrayio_9.f90 and
libgfortran.dg/arrayio_10.f90 are failing on IA64 because the IO library is
reading and writing double values to unaligned addresses.

In gdb I see:

(gdb) r
Starting program: /proj/opensrc/nightly/build-ia64-hp-hpux11.23-trunk/x

Program received signal SIGBUS, Bus error
  si_code: 1 - BUS_ADRALN - Invalid address alignment.
0x9fffffffbd717700:0 in *_gfortrani_convert_real (dtp=0x9fffffffffffef80,
    dest=0x9ffffffffffff07c, buffer=0x6000000000021de0 "1", length=8)
    at /proj/opensrc/nightly/src/trunk/libgfortran/io/read.c:154
154           *((GFC_REAL_8*) dest) = strtod (buffer, NULL);

The dest address is not 8 byte aligned which is what is required for writing a
double out to memory on IA64 due to its strong alignment requirement.


-- 
           Summary: Fortran IO using unaligned accesses to read/write
                    doubles.
           Product: gcc
           Version: 4.5.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: libfortran
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: sje at cup dot hp dot com
GCC target triplet: ia64-hp-hpux11.23


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39665



More information about the Gcc-bugs mailing list