diff options
author | Jerry DeLisle <jvdelisle@gcc.gnu.org> | 2006-07-24 00:17:52 +0000 |
---|---|---|
committer | Jerry DeLisle <jvdelisle@gcc.gnu.org> | 2006-07-24 00:17:52 +0000 |
commit | 566ffce8955401e87e86899239f5bb0a6a5b6b0f (patch) | |
tree | 64315dd185786aaf77ccb1f7529d4d40de5c511b /libgfortran | |
parent | 8a5d9afcd1cbbcef69e2203b34b5fa925a0214d2 (diff) | |
download | gcc-566ffce8955401e87e86899239f5bb0a6a5b6b0f.zip gcc-566ffce8955401e87e86899239f5bb0a6a5b6b0f.tar.gz gcc-566ffce8955401e87e86899239f5bb0a6a5b6b0f.tar.bz2 |
re PR libfortran/25289 (Cannot handle record numbers large than huge(0_4))
2006-07-23 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR libgfortran/25289
* libgfortran.h: Add conditional definition of GFC_LARGE_IO_INT type.
* io/io.h (st_parameter_dt): Define rec as type GFC_LARGE_IO_INT.
From-SVN: r115698
Diffstat (limited to 'libgfortran')
-rw-r--r-- | libgfortran/ChangeLog | 6 | ||||
-rw-r--r-- | libgfortran/io/io.h | 2 | ||||
-rw-r--r-- | libgfortran/libgfortran.h | 12 |
3 files changed, 19 insertions, 1 deletions
diff --git a/libgfortran/ChangeLog b/libgfortran/ChangeLog index c19ac41..58ef0aa 100644 --- a/libgfortran/ChangeLog +++ b/libgfortran/ChangeLog @@ -1,3 +1,9 @@ +2006-07-23 Jerry DeLisle <jvdelisle@gcc.gnu.org> + + PR libgfortran/25289 + * libgfortran.h: Add conditional definition of GFC_LARGE_IO_INT type. + * io/io.h (st_parameter_dt): Define rec as type GFC_LARGE_IO_INT. + 2006-07-21 Jerry DeLisle <jvdelisle@gcc.gnu.org> PR libgfortran/28339 diff --git a/libgfortran/io/io.h b/libgfortran/io/io.h index 822930e..e16d4b6 100644 --- a/libgfortran/io/io.h +++ b/libgfortran/io/io.h @@ -351,7 +351,7 @@ struct format_data; typedef struct st_parameter_dt { st_parameter_common common; - GFC_INTEGER_4 rec; + GFC_LARGE_IO_INT rec; GFC_INTEGER_4 *size, *iolength; gfc_array_char *internal_unit_desc; CHARACTER1 (format); diff --git a/libgfortran/libgfortran.h b/libgfortran/libgfortran.h index 5dd2a51..27abfe8 100644 --- a/libgfortran/libgfortran.h +++ b/libgfortran/libgfortran.h @@ -196,6 +196,18 @@ typedef off_t gfc_offset; #include "kinds.h" +/* Define the type used for the current record number for large file I/O. + The size must be consistent with the size defined on the compiler side. */ +#ifdef HAVE_GFC_INTEGER_8 +typedef GFC_INTEGER_8 GFC_LARGE_IO_INT; +#else +#ifdef HAVE_GFC_INTEGER_4 +typedef GFC_INTEGER_4 GFC_LARGE_IO_INT; +#else +#error "GFC_INTEGER_4 should be available for the library to compile". +#endif +#endif + /* The following two definitions must be consistent with the types used by the compiler. */ /* The type used of array indices, amongst other things. */ |