re PR fortran/19194 (Missing RECL parameter in OPEN statement)

gcc/fortran/
PR fortran/19194
* trans-io.c (ADD_STRING): Use gfc_charlen_type_node for string
length parameters.
(gfc_build_io_library_fndecls): 'rec' and 'recl_in' are not
pointer fields.

libgfortran/
PR fortran/19194
* io/io.h (st_parameter): Use 'GFC_INTEGER_4' instead of 'int',
use CHARACTER macro for definition of string valued paramters.

Also fix years in recent ChangeLog entries.

From-SVN: r94065
This commit is contained in:
Tobias Schlüter 2005-01-22 15:37:39 +01:00
parent 1e052c19d5
commit b8d5e92646
4 changed files with 53 additions and 55 deletions

View File

@ -4,6 +4,12 @@
* trans-const.c (gfc_conv_constant_to_tree): Give logical
constants the correct type.
PR fortran/19194
* trans-io.c (ADD_STRING): Use gfc_charlen_type_node for string
length parameters.
(gfc_build_io_library_fndecls): 'rec' and 'recl_in' are not
pointer fields.
2005-01-18 Kazu Hirata <kazu@cs.umass.edu>
* arith.c, array.c, check.c, decl.c, expr.c, f95-lang.c,

View File

@ -147,7 +147,7 @@ static enum { READ, WRITE, IOLENGTH } last_dt;
get_identifier (stringize(name)), pchar_type_node); \
ioparm_ ## name ## _len = gfc_add_field_to_struct \
(&(TYPE_FIELDS (ioparm_type)), ioparm_type, \
get_identifier (stringize(name) "_len"), gfc_int4_type_node)
get_identifier (stringize(name) "_len"), gfc_charlen_type_node)
/* Create function decls for IO library functions. */
@ -181,11 +181,11 @@ gfc_build_io_library_fndecls (void)
ADD_FIELD (opened, gfc_pint4_type_node);
ADD_FIELD (number, gfc_pint4_type_node);
ADD_FIELD (named, gfc_pint4_type_node);
ADD_FIELD (rec, gfc_pint4_type_node);
ADD_FIELD (rec, gfc_int4_type_node);
ADD_FIELD (nextrec, gfc_pint4_type_node);
ADD_FIELD (size, gfc_pint4_type_node);
ADD_FIELD (recl_in, gfc_pint4_type_node);
ADD_FIELD (recl_in, gfc_int4_type_node);
ADD_FIELD (recl_out, gfc_pint4_type_node);
ADD_FIELD (iolength, gfc_pint4_type_node);

View File

@ -1,4 +1,10 @@
2004-01-22 Bud Davis <bdavis9659@comcast.net>
2005-01-22 Tobias Schl"uter <tobias.schlueter@physik.uni-muenchen.de>
PR fortran/19194
* io/io.h (st_parameter): Use 'GFC_INTEGER_4' instead of 'int',
use CHARACTER macro for definition of string valued paramters.
2005-01-22 Bud Davis <bdavis9659@comcast.net>
PR fortran/19314
* io/inquire.c(inquire_via_unit): implement POSITION=.
@ -7,7 +13,7 @@
* io/rewind.c(st_rewind): update position for
INQUIRE.
2004-01-16 Bud Davis <bdavis9659@comcast.net>
2005-01-16 Bud Davis <bdavis9659@comcast.net>
PR fortran/18778
* io/transfer.c (us_read): no bytes available is not a

View File

@ -1,4 +1,4 @@
/* Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc.
/* Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
Contributed by Andy Vaught
This file is part of the GNU Fortran 95 runtime library (libgfortran).
@ -165,8 +165,8 @@ unit_mode;
typedef struct
{
int unit;
int err, end, eor, list_format; /* These are flags, not values. */
GFC_INTEGER_4 unit;
GFC_INTEGER_4 err, end, eor, list_format; /* These are flags, not values. */
/* Return values from library statements. These are returned only if
the labels are specified in the statement itself and the condition
@ -183,58 +183,44 @@ typedef struct
}
library_return;
int *iostat, *exist, *opened, *number, *named, rec, *nextrec, *size;
GFC_INTEGER_4 *iostat, *exist, *opened, *number, *named;
GFC_INTEGER_4 rec;
GFC_INTEGER_4 *nextrec, *size;
int recl_in;
int *recl_out;
GFC_INTEGER_4 recl_in;
GFC_INTEGER_4 *recl_out;
int *iolength;
GFC_INTEGER_4 *iolength;
char *file;
int file_len;
char *status;
int status_len;
char *access;
int access_len;
char *form;
int form_len;
char *blank;
int blank_len;
char *position;
int position_len;
char *action;
int action_len;
char *delim;
int delim_len;
char *pad;
int pad_len;
char *format;
int format_len;
char *advance;
int advance_len;
char *name;
int name_len;
char *internal_unit;
int internal_unit_len;
char *sequential;
int sequential_len;
char *direct;
int direct_len;
char *formatted;
int formatted_len;
char *unformatted;
int unformatted_len;
char *read;
int read_len;
char *write;
int write_len;
char *readwrite;
int readwrite_len;
#define CHARACTER(name) \
char * name; \
gfc_charlen_type name ## _len
CHARACTER (file);
CHARACTER (status);
CHARACTER (access);
CHARACTER (form);
CHARACTER (blank);
CHARACTER (position);
CHARACTER (action);
CHARACTER (delim);
CHARACTER (pad);
CHARACTER (format);
CHARACTER (advance);
CHARACTER (name);
CHARACTER (internal_unit);
CHARACTER (sequential);
CHARACTER (direct);
CHARACTER (formatted);
CHARACTER (unformatted);
CHARACTER (read);
CHARACTER (write);
CHARACTER (readwrite);
/* namelist related data */
char * namelist_name;
int namelist_name_len;
int namelist_read_mode;
CHARACTER (namelist_name);
GFC_INTEGER_4 namelist_read_mode;
#undef CHARACTER
}
st_parameter;