diff options
author | Jerry DeLisle <jvdelisle@gcc.gnu.org> | 2006-07-24 00:19:45 +0000 |
---|---|---|
committer | Jerry DeLisle <jvdelisle@gcc.gnu.org> | 2006-07-24 00:19:45 +0000 |
commit | 4fec64b07b9da385b80e89f86c603cb13c90c56c (patch) | |
tree | cafb4ddf881a103f1c23303872bd9960d3b3d653 /gcc/fortran/trans-io.c | |
parent | 566ffce8955401e87e86899239f5bb0a6a5b6b0f (diff) | |
download | gcc-4fec64b07b9da385b80e89f86c603cb13c90c56c.zip gcc-4fec64b07b9da385b80e89f86c603cb13c90c56c.tar.gz gcc-4fec64b07b9da385b80e89f86c603cb13c90c56c.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 fortran/25289
* gfortran.h: Declare gfc_large_io_int_kind.
* trans-types.c (gfc_init_kinds): Set gfc_large_io_int_kind
to size 8 or 4.
* trans-io.c (enum iofield_type): Add large_io_int type.
(gfc_build_st_parameter): Same.
(gfc_build_io_library_fndecls): Same.
* ioparm_def: Use large_io_int to define rec.
From-SVN: r115700
Diffstat (limited to 'gcc/fortran/trans-io.c')
-rw-r--r-- | gcc/fortran/trans-io.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/gcc/fortran/trans-io.c b/gcc/fortran/trans-io.c index 70b9368..2c8e3e6 100644 --- a/gcc/fortran/trans-io.c +++ b/gcc/fortran/trans-io.c @@ -52,6 +52,7 @@ enum ioparam_type enum iofield_type { IOPARM_type_int4, + IOPARM_type_large_io_int, IOPARM_type_pint4, IOPARM_type_pchar, IOPARM_type_parray, @@ -168,6 +169,7 @@ gfc_build_st_parameter (enum ioparam_type ptype, tree *types) switch (p->type) { case IOPARM_type_int4: + case IOPARM_type_large_io_int: case IOPARM_type_pint4: case IOPARM_type_parray: case IOPARM_type_pchar: @@ -214,12 +216,15 @@ void gfc_build_io_library_fndecls (void) { tree types[IOPARM_type_num], pad_idx, gfc_int4_type_node; + tree gfc_large_io_int_type_node; tree parm_type, dt_parm_type; tree gfc_c_int_type_node; HOST_WIDE_INT pad_size; enum ioparam_type ptype; types[IOPARM_type_int4] = gfc_int4_type_node = gfc_get_int_type (4); + types[IOPARM_type_large_io_int] = gfc_large_io_int_type_node + = gfc_get_int_type (gfc_large_io_int_kind); types[IOPARM_type_pint4] = build_pointer_type (gfc_int4_type_node); types[IOPARM_type_parray] = pchar_type_node; types[IOPARM_type_pchar] = pchar_type_node; |