diff options
Diffstat (limited to 'libgfortran')
-rw-r--r-- | libgfortran/ChangeLog | 5 | ||||
-rw-r--r-- | libgfortran/runtime/error.c | 13 |
2 files changed, 12 insertions, 6 deletions
diff --git a/libgfortran/ChangeLog b/libgfortran/ChangeLog index 50ad7a6..891c74e 100644 --- a/libgfortran/ChangeLog +++ b/libgfortran/ChangeLog @@ -1,3 +1,8 @@ +2004-09-01 Paul Brook <paul@codesourcery.com> + + * runtime/error.c (generate_error): Set both iostat and + library_return. + 2004-08-31 Paul Brook <paul@codesourcery.com> PR libfortran/16805 diff --git a/libgfortran/runtime/error.c b/libgfortran/runtime/error.c index 74670b5..5eb5b0b 100644 --- a/libgfortran/runtime/error.c +++ b/libgfortran/runtime/error.c @@ -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 *message) 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 */ |