This is the mail archive of the fortran@gcc.gnu.org mailing list for the GNU Fortran project.
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
| Other format: | [Raw text] | |
The end= specifier was being ignored on IO data transfer statements when the
iostat= specified was also used. Patch below fixes this.
Tested on i686-linux.
Applied to mainline.
Paul
2004-09-01 Paul Brook <paul@codesourcery.com>
* runtime/error.c (generate_error): Set both iostat and
library_return.
testsuite/
* gfortran.dg/eof_2.f90: New test.
Index: runtime/error.c
===================================================================
RCS file: /var/cvsroot/gcc-cvs/gcc/libgfortran/runtime/error.c,v
retrieving revision 1.4
diff -u -p -r1.4 error.c
--- runtime/error.c 28 Aug 2004 19:48:02 -0000 1.4
+++ runtime/error.c 31 Aug 2004 21:46:13 -0000
@@ -445,13 +445,11 @@ translate_error (int code)
void
generate_error (int family, const char *message)
{
-
+ /* Set the error status. */
if (ioparm.iostat != NULL)
- {
- *ioparm.iostat = family;
- return;
- }
+ *ioparm.iostat = family;
+ /* Report status back to the compiler. */
switch (family)
{
case ERROR_EOR:
@@ -468,10 +466,13 @@ generate_error (int family, const char *
default:
ioparm.library_return = LIBRARY_ERROR;
+ if (ioparm.err != 0)
+ return;
break;
}
- if (ioparm.err != 0)
+ /* Return if the user supplied an iostat variable. */
+ if (ioparm.iostat != NULL)
return;
/* Terminate the program */
Attachment:
eof_2.f90
Description: Text document
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |